diff -Nru sphinxbase-0.8/aclocal.m4 sphinxbase-0.8+5prealpha/aclocal.m4 --- sphinxbase-0.8/aclocal.m4 2012-12-12 17:28:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/aclocal.m4 2015-05-14 15:58:09.000000000 +0000 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- +# generated automatically by aclocal 1.13.4 -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# 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. @@ -11,15 +11,16 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, -[m4_warning([this file was generated for autoconf 2.65. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically `autoreconf'.])]) +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -31,10 +32,10 @@ # 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' +[am__api_version='1.13' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], +m4_if([$1], [1.13.4], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -50,22 +51,22 @@ # 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 +[AM_AUTOMAKE_VERSION([1.13.4])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# $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 @@ -84,7 +85,7 @@ # # 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 +# 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, @@ -110,22 +111,19 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# 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_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl @@ -144,16 +142,14 @@ 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. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 10 -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# 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 @@ -163,7 +159,7 @@ # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was @@ -176,12 +172,13 @@ 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=]) +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], @@ -189,8 +186,9 @@ # 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'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -229,16 +227,16 @@ : > 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 + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # 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 + # 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 @@ -247,16 +245,16 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # 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 + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -304,7 +302,7 @@ # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES +# 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 @@ -314,34 +312,39 @@ # 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]) +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -354,7 +357,7 @@ # 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 + # 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. @@ -366,21 +369,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # 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 + 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 + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` @@ -398,7 +399,7 @@ # 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 +# 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], @@ -408,15 +409,12 @@ # 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. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# 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. @@ -432,7 +430,7 @@ # 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 +[AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl @@ -461,31 +459,40 @@ # 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_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl +[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) +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 +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl @@ -496,28 +503,32 @@ [_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 + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [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. + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl 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], @@ -545,7 +556,7 @@ 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. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -564,16 +575,14 @@ install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi -AC_SUBST(install_sh)]) +AC_SUBST([install_sh])]) -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# 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], @@ -589,14 +598,12 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 - # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. @@ -614,7 +621,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# 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 @@ -641,15 +648,12 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 6 - # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], @@ -657,11 +661,10 @@ $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. +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl @@ -674,63 +677,35 @@ esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) + 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. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# 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)]) +[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)])]) @@ -741,24 +716,270 @@ 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) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# --------------------------------------------------------------------------- +# Adds support for distributing Python modules and packages. To +# install modules, copy them to $(pythondir), using the python_PYTHON +# automake variable. To install a package with the same name as the +# automake package, install to $(pkgpythondir), or use the +# pkgpython_PYTHON automake variable. +# +# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as +# locations to install python extension modules (shared libraries). +# Another macro is required to find the appropriate flags to compile +# extension modules. +# +# If your package is configured with a different prefix to python, +# users will have to add the install directory to the PYTHONPATH +# environment variable, or create a .pth file (see the python +# documentation for details). +# +# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will +# cause an error if the version of python installed on the system +# doesn't meet the requirement. MINIMUM-VERSION should consist of +# numbers and dots only. +AC_DEFUN([AM_PATH_PYTHON], + [ + dnl Find a Python interpreter. Python versions prior to 2.0 are not + dnl supported. (2.0 was released on October 16, 2000). + m4_define_default([_AM_PYTHON_INTERPRETER_LIST], +[python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl + python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0]) + + AC_ARG_VAR([PYTHON], [the Python interpreter]) + + m4_if([$1],[],[ + dnl No version check is needed. + # Find any Python interpreter. + if test -z "$PYTHON"; then + AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) + fi + am_display_PYTHON=python + ], [ + dnl A version check is needed. + if test -n "$PYTHON"; then + # If the user set $PYTHON, use it and don't search something else. + AC_MSG_CHECKING([whether $PYTHON version is >= $1]) + AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([Python interpreter is too old])]) + am_display_PYTHON=$PYTHON + else + # Otherwise, try each interpreter until we find one that satisfies + # VERSION. + AC_CACHE_CHECK([for a Python interpreter with version >= $1], + [am_cv_pathless_PYTHON],[ + for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do + test "$am_cv_pathless_PYTHON" = none && break + AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) + done]) + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. + if test "$am_cv_pathless_PYTHON" = none; then + PYTHON=: + else + AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) + fi + am_display_PYTHON=$am_cv_pathless_PYTHON + fi + ]) + + if test "$PYTHON" = :; then + dnl Run any user-specified action, or abort. + m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) + else + + dnl Query Python for its version number. Getting [:3] seems to be + dnl the best way to do this; it's what "site.py" does in the standard + dnl library. + + AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], + [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) + AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) + + dnl Use the values of $prefix and $exec_prefix for the corresponding + dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made + dnl distinct variables so they can be overridden if need be. However, + dnl general consensus is that you shouldn't need this ability. + + AC_SUBST([PYTHON_PREFIX], ['${prefix}']) + AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) + + dnl At times (like when building shared libraries) you may want + dnl to know which OS platform Python thinks this is. + + AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], + [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) + AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) + + # Just factor out some code duplication. + am_python_setup_sysconfig="\ +import sys +# Prefer sysconfig over distutils.sysconfig, for better compatibility +# with python 3.x. See automake bug#10227. +try: + import sysconfig +except ImportError: + can_use_sysconfig = 0 +else: + can_use_sysconfig = 1 +# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: +# +try: + from platform import python_implementation + if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7': + can_use_sysconfig = 0 +except ImportError: + pass" + + dnl Set up 4 directories: + + dnl pythondir -- where to install python scripts. This is the + dnl site-packages directory, not the python standard library + dnl directory like in previous automake betas. This behavior + dnl is more consistent with lispdir.m4 for example. + dnl Query distutils for this directory. + AC_CACHE_CHECK([for $am_display_PYTHON script directory], + [am_cv_python_pythondir], + [if test "x$prefix" = xNONE + then + am_py_prefix=$ac_default_prefix + else + am_py_prefix=$prefix + fi + am_cv_python_pythondir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pythondir in + $am_py_prefix*) + am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` + am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` + ;; + *) + case $am_py_prefix in + /usr|/System*) ;; + *) + am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + ]) + AC_SUBST([pythondir], [$am_cv_python_pythondir]) + + dnl pkgpythondir -- $PACKAGE directory under pythondir. Was + dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is + dnl more consistent with the rest of automake. + + AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) + + dnl pyexecdir -- directory for installing python extension modules + dnl (shared libraries) + dnl Query distutils for this directory. + AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], + [am_cv_python_pyexecdir], + [if test "x$exec_prefix" = xNONE + then + am_py_exec_prefix=$am_py_prefix + else + am_py_exec_prefix=$exec_prefix + fi + am_cv_python_pyexecdir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pyexecdir in + $am_py_exec_prefix*) + am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` + am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` + ;; + *) + case $am_py_exec_prefix in + /usr|/System*) ;; + *) + am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + ]) + AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. + dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) + + AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) + + dnl Run any user-specified action. + $2 + fi + +]) + + +# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +# --------------------------------------------------------------------------- +# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. +# Run ACTION-IF-FALSE otherwise. +# This test uses sys.hexversion instead of the string equivalent (first +# word of sys.version), in order to cope with versions such as 2.2c1. +# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). +AC_DEFUN([AM_PYTHON_CHECK_VERSION], + [prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] +minverhex = 0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] +sys.exit(sys.hexversion < minverhex)" + AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) -# 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=' @@ -769,32 +990,40 @@ esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac -# Do `set' in a subshell so we don't clobber the current shell's +# 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 - + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$[2]" = conftest.file ) then @@ -804,9 +1033,85 @@ AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT(yes)]) +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -814,34 +1119,32 @@ # AM_PROG_INSTALL_STRIP # --------------------- -# One issue with vendor `install' (even GNU) is that you can't +# 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 +# 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 +# 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'. +# 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. +# Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. @@ -849,24 +1152,22 @@ 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. +# Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. +# 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 @@ -876,86 +1177,122 @@ # 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. +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_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 +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - # 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]) + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done rm -rf conftest.dir - 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_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR -m4_include([m4/iconv.m4]) -m4_include([m4/lib-ld.m4]) -m4_include([m4/lib-link.m4]) -m4_include([m4/lib-prefix.m4]) +m4_include([m4/ax_pkg_swig.m4]) +m4_include([m4/ax_python_devel.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) -m4_include([m4/pkg.m4]) diff -Nru sphinxbase-0.8/AUTHORS sphinxbase-0.8+5prealpha/AUTHORS --- sphinxbase-0.8/AUTHORS 2012-12-05 14:04:48.000000000 +0000 +++ sphinxbase-0.8+5prealpha/AUTHORS 2015-03-24 17:26:36.000000000 +0000 @@ -16,3 +16,5 @@ Alex Acero Xuedong Huang Eric Thayer +Vyacheslav Klimkov +Alexander Solovets diff -Nru sphinxbase-0.8/autogen.sh sphinxbase-0.8+5prealpha/autogen.sh --- sphinxbase-0.8/autogen.sh 2012-12-05 14:04:48.000000000 +0000 +++ sphinxbase-0.8+5prealpha/autogen.sh 2015-03-24 17:26:37.000000000 +0000 @@ -6,6 +6,8 @@ DIE=0 +# Check tools + (autoconf --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`autoconf' installed to." @@ -14,7 +16,7 @@ DIE=1 } -(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && { +(grep "^LT_INIT" $srcdir/configure.ac >/dev/null) && { if libtoolize --version /dev/null 2>&1; then LIBTOOLIZE=libtoolize elif glibtoolize --version /dev/null 2>&1; then @@ -22,38 +24,16 @@ else echo echo "**Error**: You must have \`libtool' installed." - echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" + echo "Get ftp://ftp.gnu.org/pub/gnu/libtool/libtool-2.2.6b.tar.gz" echo "(or a newer version if it is available)" DIE=1 fi } -grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && { - grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ - (gettext --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "**Error**: You must have \`gettext' installed." - echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" - echo "(or a newer version if it is available)" - DIE=1 - } -} - -grep "^AM_GNOME_GETTEXT" $srcdir/configure.in >/dev/null && { - grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ - (gettext --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "**Error**: You must have \`gettext' installed." - echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" - echo "(or a newer version if it is available)" - DIE=1 - } -} - (automake --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`automake' installed." - echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" + echo "Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.11.tar.gz" echo "(or a newer version if it is available)" DIE=1 NO_AUTOMAKE=yes @@ -65,7 +45,7 @@ echo echo "**Error**: Missing \`aclocal'. The version of \`automake'" echo "installed doesn't appear recent enough." - echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" + echo "Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.11.tar.gz" echo "(or a newer version if it is available)" DIE=1 } @@ -86,7 +66,7 @@ am_opt=--include-deps;; esac -for coin in `find $srcdir -name configure.in -print` +for coin in `find $srcdir -name configure.ac -print` do dr=`dirname $coin` if test -f $dr/NO-AUTO-GEN; then @@ -103,38 +83,18 @@ ## echo "**Warning**: No such directory \`$k'. Ignored." fi done - if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then - if grep "sed.*POTFILES" configure.in >/dev/null; then - : do nothing -- we still have an old unmodified configure.in - else - echo "Creating $dr/aclocal.m4 ..." - test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 - echo "Running gettextize... Ignore non-fatal messages." - echo "no" | gettextize --force --copy - echo "Making $dr/aclocal.m4 writable ..." - test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 - fi - fi - if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then - echo "Creating $dr/aclocal.m4 ..." - test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 - echo "Running gettextize... Ignore non-fatal messages." - echo "no" | gettextize --force --copy - echo "Making $dr/aclocal.m4 writable ..." - test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 - fi - if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then + if grep "^LT_INIT" configure.ac >/dev/null; then echo "Running $LIBTOOLIZE..." $LIBTOOLIZE --force --copy fi echo "Running aclocal $aclocalinclude ..." aclocal -I m4 $aclocalinclude - if grep "^AC_CONFIG_HEADER" configure.in >/dev/null; then + if grep "^AC_CONFIG_HEADER" configure.ac >/dev/null; then echo "Running autoheader..." autoheader fi - echo "Running automake --gnu --copy $am_opt ..." - automake --add-missing --gnu --copy $am_opt + echo "Running automake --foreign --copy $am_opt ..." + automake --add-missing --foreign --copy $am_opt echo "Running autoconf ..." autoconf ) diff -Nru sphinxbase-0.8/ChangeLog sphinxbase-0.8+5prealpha/ChangeLog --- sphinxbase-0.8/ChangeLog 2012-12-05 14:04:48.000000000 +0000 +++ sphinxbase-0.8+5prealpha/ChangeLog 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -2007-01-26 David Huggins-Daines - - * all: SphinxBase 0.2 - * all: New feature extraction API needed for PS/S3 merge - -2005-11-19 David Huggins-Daines - - * all: Initial refactoring of SphinxTrain, Sphinx2, Sphinx3, - PocketSphinx into sphinx-common - diff -Nru sphinxbase-0.8/config.guess sphinxbase-0.8+5prealpha/config.guess --- sphinxbase-0.8/config.guess 2012-12-05 14:08:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/config.guess 2015-03-24 17:27:12.000000000 +0000 @@ -1,14 +1,12 @@ #! /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, 2009 -# Free Software Foundation, Inc. +# Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2009-11-20' +timestamp='2013-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -17,26 +15,22 @@ # 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. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). # -# 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. +# Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches with a ChangeLog entry to config-patches@gnu.org. + me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,8 +50,7 @@ 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. +Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -139,12 +132,33 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + ;; +esac + # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward @@ -180,7 +194,7 @@ fi ;; *) - os=netbsd + os=netbsd ;; esac # The OS release @@ -201,6 +215,10 @@ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} @@ -223,7 +241,7 @@ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on @@ -269,7 +287,10 @@ # 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 ;; + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead @@ -295,12 +316,12 @@ echo s390-ibm-zvmoe exit ;; *:OS400:*:*) - echo powerpc-ibm-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:*:*) + arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -394,23 +415,23 @@ # 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} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; @@ -480,8 +501,8 @@ echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` + # 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 ] || \ @@ -494,7 +515,7 @@ else echo i586-dg-dgux${UNAME_RELEASE} fi - exit ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; @@ -551,7 +572,7 @@ echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[456]) + *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -594,52 +615,52 @@ 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" ;; + 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 + esac ;; + esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include - #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); - } + 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 @@ -730,22 +751,22 @@ exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; @@ -769,14 +790,14 @@ 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 ;; + 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}" + 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} @@ -788,30 +809,35 @@ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; @@ -848,15 +874,22 @@ exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -866,52 +899,56 @@ EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; - esac + esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) - echo cris-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build @@ -930,51 +967,63 @@ #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + or1k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; or32:Linux:*:*) - echo or32-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-gnu + echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu + echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu + echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -983,11 +1032,11 @@ 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, + # 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. + # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) @@ -1019,7 +1068,7 @@ fi exit ;; i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; @@ -1047,13 +1096,13 @@ 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. + # 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 ;; + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; @@ -1088,8 +1137,8 @@ /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; } ;; + /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 \ @@ -1132,10 +1181,10 @@ echo ns32k-sni-sysv fi exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - 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 @@ -1161,11 +1210,11 @@ exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv${UNAME_RELEASE} else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv${UNAME_RELEASE} fi - exit ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; @@ -1178,6 +1227,9 @@ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1204,19 +1256,21 @@ exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) @@ -1230,7 +1284,10 @@ *:QNX:*:4*) echo i386-pc-qnx exit ;; - NSE-?:NONSTOP_KERNEL:*:*) + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) @@ -1275,13 +1332,13 @@ echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + 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` + UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; @@ -1299,11 +1356,11 @@ i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + 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 < printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 - "4" + "4" #else - "" + "" #endif - ); exit (0); + ); exit (0); #endif #endif diff -Nru sphinxbase-0.8/config.rpath sphinxbase-0.8+5prealpha/config.rpath --- sphinxbase-0.8/config.rpath 2012-12-05 14:04:48.000000000 +0000 +++ sphinxbase-0.8+5prealpha/config.rpath 1970-01-01 00:00:00.000000000 +0000 @@ -1,614 +0,0 @@ -#! /bin/sh -# Output a system dependent set of variables, describing how to set the -# run time search path of shared libraries in an executable. -# -# Copyright 1996-2006 Free Software Foundation, Inc. -# Taken from GNU libtool, 2001 -# Originally 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. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld -# should be set by the caller. -# -# The set of defined variables is at the end of this script. - -# Known limitations: -# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer -# than 256 bytes, otherwise the compiler driver will dump core. The only -# known workaround is to choose shorter directory names for the build -# directory and/or the installation directory. - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a -shrext=.so - -host="$1" -host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -# Code taken from libtool.m4's _LT_CC_BASENAME. - -for cc_temp in $CC""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` - -# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. - -wl= -if test "$GCC" = yes; then - wl='-Wl,' -else - case "$host_os" in - aix*) - wl='-Wl,' - ;; - darwin*) - case $cc_basename in - xlc*) - wl='-Wl,' - ;; - esac - ;; - mingw* | pw32* | os2*) - ;; - hpux9* | hpux10* | hpux11*) - wl='-Wl,' - ;; - irix5* | irix6* | nonstopux*) - wl='-Wl,' - ;; - newsos6) - ;; - linux*) - case $cc_basename in - icc* | ecc*) - wl='-Wl,' - ;; - pgcc | pgf77 | pgf90) - wl='-Wl,' - ;; - ccc*) - wl='-Wl,' - ;; - como) - wl='-lopt=' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - wl='-Wl,' - ;; - esac - ;; - esac - ;; - osf3* | osf4* | osf5*) - wl='-Wl,' - ;; - sco3.2v5*) - ;; - solaris*) - wl='-Wl,' - ;; - sunos4*) - wl='-Qoption ld ' - ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - wl='-Wl,' - ;; - sysv4*MP*) - ;; - unicos*) - wl='-Wl,' - ;; - uts4*) - ;; - esac -fi - -# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. - -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no - -case "$host_os" in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # 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. - # Unlike libtool, we use -rpath here, not --rpath, since the documented - # option of GNU ld is called -rpath, not --rpath. - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - case "$host_os" in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - fi - ;; - amigaos*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we cannot use - # them. - ld_shlibs=no - ;; - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - cygwin* | mingw* | pw32*) - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - interix3*) - hardcode_direct=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - netbsd*) - ;; - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - 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 - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - else - ld_shlibs=no - fi - ;; - esac - ;; - sunos4*) - hardcode_direct=yes - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - esac - if test "$ld_shlibs" = no; then - hardcode_libdir_flag_spec= - fi -else - case "$host_os" in - aix3*) - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - aix4* | aix5*) - 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 - 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].*|aix5*) - 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 - fi - hardcode_direct=yes - hardcode_libdir_separator=':' - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct=yes - else - # We have old collect2 - hardcode_direct=unsupported - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - fi - # Begin _LT_AC_SYS_LIBPATH_AIX. - echo 'int main () { return 0; }' > conftest.c - ${CC} ${LDFLAGS} conftest.c -o conftest - aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` - if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` - fi - if test -z "$aix_libpath"; then - aix_libpath="/usr/lib:/lib" - fi - rm -f conftest.c conftest - # End _LT_AC_SYS_LIBPATH_AIX. - if test "$aix_use_runtimelinking" = yes; then - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - else - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - fi - fi - ;; - amigaos*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - bsdi[45]*) - ;; - cygwin* | mingw* | pw32*) - # 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=' ' - libext=lib - ;; - darwin* | rhapsody*) - hardcode_direct=no - if test "$GCC" = yes ; then - : - else - case $cc_basename in - xlc*) - ;; - *) - ld_shlibs=no - ;; - esac - fi - ;; - dgux*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - freebsd1*) - ld_shlibs=no - ;; - freebsd2.2*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - freebsd2*) - hardcode_direct=yes - hardcode_minus_L=yes - ;; - freebsd* | kfreebsd*-gnu | dragonfly*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - hpux9*) - 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 - ;; - hpux10*) - if test "$with_gnu_ld" = no; then - 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 - fi - ;; - hpux11*) - 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_direct=yes - # 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*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - netbsd*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - newsos6) - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - openbsd*) - hardcode_direct=yes - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - else - case "$host_os" in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - osf3*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - osf4* | osf5*) - if test "$GCC" = yes; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - # Both cc and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - solaris*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - sunos4*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - ;; - sysv4) - case $host_vendor in - sni) - hardcode_direct=yes # is this really true??? - ;; - siemens) - hardcode_direct=no - ;; - motorola) - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - ;; - sysv4.3*) - ;; - sysv4*MP*) - if test -d /usr/nec; then - ld_shlibs=yes - fi - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) - ;; - sysv5* | sco3.2v5* | sco5v6*) - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator=':' - ;; - uts4*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - *) - ld_shlibs=no - ;; - esac -fi - -# Check dynamic linker characteristics -# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. -libname_spec='lib$name' -case "$host_os" in - aix3*) - ;; - aix4* | aix5*) - ;; - amigaos*) - ;; - beos*) - ;; - bsdi[45]*) - ;; - cygwin* | mingw* | pw32*) - shrext=.dll - ;; - darwin* | rhapsody*) - shrext=.dylib - ;; - dgux*) - ;; - freebsd1*) - ;; - kfreebsd*-gnu) - ;; - freebsd* | dragonfly*) - ;; - gnu*) - ;; - hpux9* | hpux10* | hpux11*) - case $host_cpu in - ia64*) - shrext=.so - ;; - hppa*64*) - shrext=.sl - ;; - *) - shrext=.sl - ;; - esac - ;; - interix3*) - ;; - irix5* | irix6* | nonstopux*) - case "$host_os" in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; - *) libsuff= shlibsuff= ;; - esac - ;; - esac - ;; - linux*oldld* | linux*aout* | linux*coff*) - ;; - linux*) - ;; - knetbsd*-gnu) - ;; - netbsd*) - ;; - newsos6) - ;; - nto-qnx*) - ;; - openbsd*) - ;; - os2*) - libname_spec='$name' - shrext=.dll - ;; - osf3* | osf4* | osf5*) - ;; - solaris*) - ;; - sunos4*) - ;; - sysv4 | sysv4.3*) - ;; - sysv4*MP*) - ;; - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - ;; - uts4*) - ;; -esac - -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' -escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` -shlibext=`echo "$shrext" | sed -e 's,^\.,,'` -escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` - -LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # # 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. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. +# Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -75,8 +68,7 @@ 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. +Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -123,13 +115,18 @@ # 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* | \ + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -152,12 +149,12 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) + -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; - -bluegene*) - os=-cnk + -bluegene*) + os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= @@ -173,10 +170,10 @@ os=-chorusos basic_machine=$1 ;; - -chorusrdb) - os=-chorusrdb + -chorusrdb) + os=-chorusrdb basic_machine=$1 - ;; + ;; -hiux*) os=-hiuxwe2 ;; @@ -221,6 +218,12 @@ -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; -lynx*) os=-lynxos ;; @@ -245,20 +248,27 @@ # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ + | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -276,34 +286,45 @@ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ - | nios | nios2 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ - | or32 \ + | open8 \ + | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ - | rx \ + | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ - | v850 | v850e \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -313,6 +334,21 @@ basic_machine=mt-unknown ;; + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. @@ -327,25 +363,30 @@ # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | be32-* | be64-* \ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -363,29 +404,34 @@ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ - | nios-* | nios2-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ - | romp-* | rs6000-* | rx-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ | tron-* \ | ubicom32-* \ - | v850-* | v850e-* | vax-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) @@ -410,7 +456,7 @@ basic_machine=a29k-amd os=-udi ;; - abacus) + abacus) basic_machine=abacus-unknown ;; adobe68k) @@ -480,11 +526,20 @@ basic_machine=powerpc-ibm os=-cnk ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; c90) basic_machine=c90-cray os=-unicos ;; - cegcc) + cegcc) basic_machine=arm-unknown os=-cegcc ;; @@ -516,7 +571,7 @@ basic_machine=craynv-cray os=-unicosmp ;; - cr16) + cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; @@ -674,7 +729,6 @@ 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 @@ -732,9 +786,13 @@ basic_machine=ns32k-utek os=-sysv ;; - microblaze) + microblaze*) basic_machine=microblaze-xilinx ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; mingw32) basic_machine=i386-pc os=-mingw32 @@ -771,10 +829,18 @@ ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; + msys) + basic_machine=i386-pc + os=-msys + ;; mvs) basic_machine=i370-ibm os=-mvs ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 @@ -839,6 +905,12 @@ np1) basic_machine=np1-gould ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -921,9 +993,10 @@ ;; power) basic_machine=power-ibm ;; - ppc) basic_machine=powerpc-unknown + ppc | ppcbe) basic_machine=powerpc-unknown ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown @@ -933,7 +1006,7 @@ ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown @@ -948,7 +1021,11 @@ basic_machine=i586-unknown os=-pw32 ;; - rdos) + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) basic_machine=i386-pc os=-rdos ;; @@ -1017,6 +1094,9 @@ basic_machine=i860-stratus os=-sysv4 ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; @@ -1073,20 +1153,8 @@ 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 + basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) @@ -1156,6 +1224,9 @@ xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; ymp) basic_machine=ymp-cray os=-unicos @@ -1253,11 +1324,11 @@ if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases + # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux + -auroraux) + os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` @@ -1281,20 +1352,21 @@ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ + | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1341,7 +1413,7 @@ -opened*) os=-openedition ;; - -os400*) + -os400*) os=-os400 ;; -wince*) @@ -1390,7 +1462,7 @@ -sinix*) os=-sysv4 ;; - -tpf*) + -tpf*) os=-tpf ;; -triton*) @@ -1426,15 +1498,14 @@ -aros*) os=-aros ;; - -kaos*) - os=-kaos - ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; + -nacl*) + ;; -none) ;; *) @@ -1457,10 +1528,10 @@ # system, and we'll never get to this point. case $basic_machine in - score-*) + score-*) os=-elf ;; - spu-*) + spu-*) os=-elf ;; *-acorn) @@ -1472,8 +1543,20 @@ arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff + c4x-* | tic4x-*) + os=-coff + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff ;; # This must come before the *-dec entry. pdp10-*) @@ -1493,14 +1576,11 @@ ;; m68000-sun) os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 ;; m68*-cisco) os=-aout ;; - mep-*) + mep-*) os=-elf ;; mips*-cisco) @@ -1509,6 +1589,9 @@ mips*-*) os=-elf ;; + or1k-*) + os=-elf + ;; or32-*) os=-coff ;; @@ -1527,7 +1610,7 @@ *-ibm) os=-aix ;; - *-knuth) + *-knuth) os=-mmixware ;; *-wec) diff -Nru sphinxbase-0.8/configure sphinxbase-0.8+5prealpha/configure --- sphinxbase-0.8/configure 2012-12-12 17:28:57.000000000 +0000 +++ sphinxbase-0.8+5prealpha/configure 2015-05-14 15:58:11.000000000 +0000 @@ -1,11 +1,9 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.65 for sphinxbase 0.8. +# Generated by GNU Autoconf 2.69 for sphinxbase 5prealpha. # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -89,6 +87,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -133,6 +132,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -166,11 +190,20 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes @@ -211,14 +244,25 @@ 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+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -316,10 +360,18 @@ 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" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -356,19 +408,19 @@ fi # as_fn_arith -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# 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 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -441,6 +493,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -475,16 +531,16 @@ # ... 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'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -496,28 +552,8 @@ 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 +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -525,161 +561,14 @@ # 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 - - - test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -698,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='sphinxbase' PACKAGE_TARNAME='sphinxbase' -PACKAGE_VERSION='0.8' -PACKAGE_STRING='sphinxbase 0.8' +PACKAGE_VERSION='5prealpha' +PACKAGE_STRING='sphinxbase 5prealpha' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -743,30 +632,50 @@ am__EXEEXT_TRUE LTLIBOBJS LIBOBJS -SAMPLERATE_LIBS -SAMPLERATE_CFLAGS -SNDFILE_LIBS -SNDFILE_CFLAGS -PKG_CONFIG -HAVE_PKGCONFIG -BUILD_CYTHON_FALSE -BUILD_CYTHON_TRUE -HAVE_CYTHON -BUILD_PYTHON_FALSE -BUILD_PYTHON_TRUE -PYTHON_CONFIG +BUILD_SWIG_FALSE +BUILD_SWIG_TRUE +SWIG_LIB +SWIG +PYTHON_EXTRA_LDFLAGS +PYTHON_EXTRA_LIBS +PYTHON_SITE_PKG +PYTHON_LDFLAGS +PYTHON_CPPFLAGS +pkgpyexecdir +pyexecdir +pkgpythondir +pythondir +PYTHON_PLATFORM +PYTHON_EXEC_PREFIX +PYTHON_PREFIX +PYTHON_VERSION PYTHON BUILD_DOXYGEN_FALSE BUILD_DOXYGEN_TRUE HAVE_DOXYGEN +ad_libs +ad_files +ad_cppflags +FIXED_POINT_FALSE +FIXED_POINT_TRUE +USE_THREADS_FALSE +USE_THREADS_TRUE +USE_LAPACK_FALSE +USE_LAPACK_TRUE +LAPACK_LITE_FALSE +LAPACK_LITE_TRUE +YACC +CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL -lt_ECHO +MANIFEST_TOOL RANLIB +ac_ct_AR AR +DLLTOOL OBJDUMP LN_S NM @@ -774,28 +683,14 @@ DUMPBIN LD FGREP -SED -LIBTOOL -ad_backend -ad_libs -ad_files -FIXED_POINT_FALSE -FIXED_POINT_TRUE -USE_THREADS_FALSE -USE_THREADS_TRUE -USE_LAPACK_FALSE -USE_LAPACK_TRUE -LAPACK_LITE_FALSE -LAPACK_LITE_TRUE -LTLIBICONV -LIBICONV EGREP GREP -CPP -YACC +SED +LIBTOOL am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE +am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE @@ -817,6 +712,10 @@ build_vendor build_cpu build +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V am__untar am__tar AMTAR @@ -881,20 +780,19 @@ ac_subst_files='' ac_user_opts=' enable_option_checking +enable_silent_rules enable_dependency_tracking -with_gnu_ld -enable_rpath -with_libiconv_prefix -with_lapack -enable_threads -enable_fixed -enable_fixed16 -enable_debug enable_shared enable_static with_pic enable_fast_install +with_gnu_ld +with_sysroot enable_libtool_lock +with_lapack +enable_threads +enable_fixed +enable_debug with_python ' ac_precious_vars='build_alias @@ -905,13 +803,10 @@ LDFLAGS LIBS CPPFLAGS -YACC CPP -PKG_CONFIG -SNDFILE_CFLAGS -SNDFILE_LIBS -SAMPLERATE_CFLAGS -SAMPLERATE_LIBS' +YACC +PYTHON +PYTHON_VERSION' # Initialize some variables set by options. @@ -974,8 +869,9 @@ fi case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -1020,7 +916,7 @@ 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" + 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 @@ -1046,7 +942,7 @@ 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" + 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 @@ -1250,7 +1146,7 @@ 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" + 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 @@ -1266,7 +1162,7 @@ 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" + 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 @@ -1296,8 +1192,8 @@ | --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." + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" ;; *=*) @@ -1305,7 +1201,7 @@ # 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'" ;; + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1315,7 +1211,7 @@ $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} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1323,13 +1219,13 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error "missing argument to $ac_option" + 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" ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1352,7 +1248,7 @@ [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" + 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' @@ -1366,8 +1262,6 @@ 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 @@ -1382,9 +1276,9 @@ 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" + 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" + as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. @@ -1423,11 +1317,11 @@ 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" + 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" + 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 @@ -1453,7 +1347,7 @@ # 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 sphinxbase 0.8 to adapt to many kinds of systems. +\`configure' configures sphinxbase 5prealpha to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1467,7 +1361,7 @@ --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 + -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 @@ -1523,7 +1417,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sphinxbase 0.8:";; + short | recursive ) echo "Configuration of sphinxbase 5prealpha:";; esac cat <<\_ACEOF @@ -1531,32 +1425,34 @@ --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] - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --disable-rpath do not hardcode runtime library paths - --disable-threads Disable thread-safe versions of memory allocation - functions (default: check) - --enable-fixed=RADIX Use 32-bit fixed-point for MFCC and GMM computation, - optionally specifying a radix point - --enable-fixed16 Use 16-bit fixed-point for MFCC computation - --enable-debug Enable debugging output + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) + --disable-threads Disable thread-safe versions of memory allocation + functions (default: check) + --enable-fixed=RADIX Use 32-bit fixed-point for MFCC and GMM computation, + optionally specifying a radix point + --enable-debug Enable debugging output Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-gnu-ld assume the C compiler uses GNU ld default=no - --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib - --without-libiconv-prefix don't search for libiconv in includedir and libdir - --without-lapack Disable matrix algebra support (depends on LAPACK) - --with-pic try to use only PIC/non-PIC objects [default=use + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --without-python Disable Python extension + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + --without-lapack Disable matrix algebra support (depends on LAPACK) + --with-python Enable Python extension, built with swig, enabled by + default Some influential environment variables: CC C compiler command @@ -1566,17 +1462,13 @@ LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory - YACC Bison command CPP C preprocessor - PKG_CONFIG path to pkg-config utility - SNDFILE_CFLAGS - C compiler flags for SNDFILE, overriding pkg-config - SNDFILE_LIBS - linker flags for SNDFILE, overriding pkg-config - SAMPLERATE_CFLAGS - C compiler flags for SAMPLERATE, overriding pkg-config - SAMPLERATE_LIBS - linker flags for SAMPLERATE, overriding pkg-config + YACC Bison command + PYTHON the Python interpreter + PYTHON_VERSION + The installed Python version to use, for example '2.3'. This + string will be appended to the Python interpreter canonical + name. Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1644,10 +1536,10 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sphinxbase configure 0.8 -generated by GNU Autoconf 2.65 +sphinxbase configure 5prealpha +generated by GNU Autoconf 2.69 -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1691,7 +1583,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1723,7 +1615,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -1737,11 +1629,42 @@ # 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. @@ -1763,7 +1686,7 @@ mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } >/dev/null && { + test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : @@ -1774,7 +1697,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -1816,41 +1739,77 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () +# 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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$4 -#include <$2> +/* 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_compile "$LINENO"; then : +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_ext +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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_header_compile +} # ac_fn_c_check_func # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- @@ -1861,7 +1820,7 @@ 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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -1902,7 +1861,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -1923,7 +1882,8 @@ main () { static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -1939,7 +1899,8 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -1965,7 +1926,8 @@ main () { static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -1981,7 +1943,8 @@ main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2015,7 +1978,8 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2079,112 +2043,45 @@ rm -f conftest.val fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_compute_int -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # 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. */ -/* 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_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; } +$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 @@ -2198,7 +2095,7 @@ else ac_header_preproc=no fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } @@ -2225,7 +2122,7 @@ 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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -2234,15 +2131,15 @@ { $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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel 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 sphinxbase $as_me 0.8, which was -generated by GNU Autoconf 2.65. Invocation command line was +It was created by sphinxbase $as_me 5prealpha, which was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2352,11 +2249,9 @@ { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -2390,11 +2285,9 @@ ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do @@ -2407,11 +2300,9 @@ echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do @@ -2425,11 +2316,9 @@ fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo @@ -2484,7 +2373,12 @@ ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -2499,7 +2393,11 @@ { $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" + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } fi done @@ -2575,7 +2473,7 @@ $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 + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2590,20 +2488,26 @@ ac_config_headers="$ac_config_headers include/config.h include/sphinx_config.h" -am__api_version='1.11' +am__api_version='1.13' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; 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 + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi done if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -2632,7 +2536,7 @@ { $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 : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2652,7 +2556,7 @@ # 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 as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -2710,56 +2614,71 @@ { $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;; + 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;; + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac -# Do `set' in a subshell so we don't clobber the current shell's +# 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 + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$2" = conftest.file ) then # Ok. : else - as_fn_error "newly created file is older than distributed files! + as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -2782,12 +2701,12 @@ esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $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 @@ -2799,17 +2718,17 @@ esac fi -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# 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. +# 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 : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -2821,7 +2740,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2849,7 +2768,7 @@ 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 : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -2861,7 +2780,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2902,7 +2821,7 @@ { $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 : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2912,7 +2831,7 @@ 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 + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ @@ -2941,19 +2860,13 @@ { $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 : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2965,7 +2878,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2993,7 +2906,7 @@ $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 : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -3001,7 +2914,7 @@ all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +# 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;; @@ -3029,13 +2942,52 @@ fi rmdir .tst 2>/dev/null +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi @@ -3051,7 +3003,7 @@ # Define the identity of the package. PACKAGE='sphinxbase' - VERSION='0.8' + VERSION='5prealpha' # Some tools Automake needs. @@ -3070,13 +3022,24 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + # We need awk for the "check" target. The system "awk" is bad on # some platforms. -# Always define AMTAR for backward compatibility. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + -AMTAR=${AMTAR-"${am_missing_run}tar"} +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' @@ -3088,27 +3051,27 @@ # 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_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 : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 + 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 + 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;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -3126,14 +3089,14 @@ { $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 : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi @@ -3141,7 +3104,7 @@ $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -3157,21 +3120,6 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - -case $host in - arm-wince-pe*) - CFLAGS=${CFLAGS:--march=armv4 -mapcs-32 -malignment-traps} - LIBS='-lc -lgcc -lwinsock -lcoredll' - CFLAGS="$CFLAGS -DNEWLIB -DSARM -DWIN32 -DGNUWINCE" - ;; - *uclinux*) - # uClinux needs special "flat" binaries - LDFLAGS="$LDFLAGS -Wl,-elf2flt" - ;; - *) - ;; -esac - DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" @@ -3191,7 +3139,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# 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 @@ -3224,6 +3172,7 @@ if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= @@ -3244,7 +3193,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3256,7 +3205,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3284,7 +3233,7 @@ 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3296,7 +3245,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3337,7 +3286,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3349,7 +3298,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3377,7 +3326,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3390,7 +3339,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -3436,7 +3385,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3448,7 +3397,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3480,7 +3429,7 @@ 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3492,7 +3441,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3534,8 +3483,8 @@ 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; } +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 @@ -3649,9 +3598,8 @@ { { $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; }; } +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -3693,8 +3641,8 @@ 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; } +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 @@ -3751,9 +3699,9 @@ 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. +as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. -See \`config.log' for more details." "$LINENO" 5; } +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -3764,7 +3712,7 @@ ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3804,8 +3752,8 @@ { { $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; } +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 @@ -3815,7 +3763,7 @@ 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_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3852,7 +3800,7 @@ 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 : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3930,7 +3878,7 @@ 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 : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3939,8 +3887,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4029,15 +3976,16 @@ { $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 : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -4071,16 +4019,16 @@ : > 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 + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # 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 + # 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 @@ -4089,16 +4037,16 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # 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 + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4155,7 +4103,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } -if test "${ac_cv_search_strerror+set}" = set; then : +if ${ac_cv_search_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -4189,11 +4137,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_strerror+set}" = set; then : + if ${ac_cv_search_strerror+:} false; then : break fi done -if test "${ac_cv_search_strerror+set}" = set; then : +if ${ac_cv_search_strerror+:} false; then : else ac_cv_search_strerror=no @@ -4219,7 +4167,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4231,7 +4179,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4259,7 +4207,7 @@ 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -4271,7 +4219,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4312,7 +4260,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4324,7 +4272,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4352,7 +4300,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4365,7 +4313,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -4411,7 +4359,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4423,7 +4371,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4455,7 +4403,7 @@ 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -4467,7 +4415,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4509,8 +4457,8 @@ 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; } +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 @@ -4539,7 +4487,7 @@ { $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 : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4576,7 +4524,7 @@ 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 : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -4654,7 +4602,7 @@ 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 : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -4663,8 +4611,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4753,15 +4700,16 @@ { $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 : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -4795,16 +4743,16 @@ : > 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 + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # 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 + # 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 @@ -4813,16 +4761,16 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # 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 + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4882,7 +4830,7 @@ *) : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } -if test "${ac_cv_prog_cc_c99+set}" = set; then : +if ${ac_cv_prog_cc_c99+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no @@ -5026,7 +4974,7 @@ return 0; } _ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : @@ -5057,7 +5005,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -5066,8 +5014,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -5153,7 +5100,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } - if test "${ac_cv_prog_cc_stdc+set}" = set; then : + if ${ac_cv_prog_cc_stdc+:} false; then : $as_echo_n "(cached) " >&6 fi @@ -5170,193 +5117,185 @@ esac -# We don't bother ourselves with flex checks until the rest of the world has an up-to-date Flex -# We need specific bison extensions, so check for bison -# Extract the first word of "bison", so it can be a program name with args. -set dummy bison; 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 +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' else - if test -n "$YACC"; then - ac_cv_prog_YACC="$YACC" # Let the user override the test. + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + 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 - 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="bison -y" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break done -IFS=$as_save_IFS + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac - test -z "$ac_cv_prog_YACC" && ac_cv_prog_YACC="no" -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; } + $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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_path_SED=$SED fi - -if test "x$YACC" = "xno"; -then - as_fn_error "You need to install bison" "$LINENO" 5 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//" -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 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 : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -5370,7 +5309,7 @@ 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 + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -5405,7 +5344,7 @@ 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 + 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 @@ -5419,7 +5358,7 @@ { $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 : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -5436,7 +5375,7 @@ 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 + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -5471,7 +5410,7 @@ 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 + 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 @@ -5484,1898 +5423,1611 @@ EGREP="$ac_cv_path_EGREP" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes + $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_header_stdc=no + ac_cv_path_FGREP=$FGREP 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 + 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" -_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* +test -z "$GREP" && GREP=grep -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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if test "${ac_cv_c_bigendian+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include +# 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 -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } else - ac_cv_c_bigendian=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi + 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 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +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 - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_cv_c_bigendian=yes + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - ;; #( - *) - as_fn_error "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if test "${ac_cv_type_signal+set}" = set; then : + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -int -main () -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int +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 - ac_cv_type_signal=void + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + + 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm -ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" -if test "x$ac_cv_type_long_long" = x""yes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_LONG_LONG 1 -_ACEOF -fi -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if test "${ac_cv_sizeof_long_long+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 else - if test "$ac_cv_type_long_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long long) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_long_long=0 - fi + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF + 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; + ;; -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_long=0 - fi 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } +max_cmd_len=$lt_cv_sys_max_cmd_len -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF -for ac_func in popen perror snprintf -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 +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} -ac_fn_c_check_header_mongrel "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default" -if test "x$ac_cv_header_errno_h" = x""yes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false fi - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi +# 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 -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -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 GCC" >&5 -$as_echo_n "checking for ld used by GCC... " >&6; } + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else case $host in - *-*-mingw*) - # 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. - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path 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 + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop ;; - esac -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 "${acl_cv_path_LD+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in - *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break ;; - *) - test "$with_gnu_ld" != yes && break ;; - esac - fi - done - IFS="$ac_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$acl_cv_path_LD" -if test -n "$LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&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 "${acl_cv_prog_gnu_ld+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$acl_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$acl_cv_prog_gnu_ld +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 -$as_echo_n "checking for shared library run path origin... " >&6; } -if test "${acl_cv_rpath+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 -$as_echo "$acl_cv_rpath" >&6; } - wl="$acl_cv_wl" - libext="$acl_cv_libext" - shlibext="$acl_cv_shlibext" - hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - hardcode_direct="$acl_cv_hardcode_direct" - hardcode_minus_L="$acl_cv_hardcode_minus_L" - # Check whether --enable-rpath was given. -if test "${enable_rpath+set}" = set; then : - enableval=$enable_rpath; : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 else - enable_rpath=yes -fi - - + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac - acl_libdirstem=lib - searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi +fi +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac - use_additional=yes - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" -# Check whether --with-libiconv-prefix was given. -if test "${with_libiconv_prefix+set}" = set; then : - withval=$with_libiconv_prefix; - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" +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 - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - fi - fi fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - LIBICONV= - LTLIBICONV= - INCICONV= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='iconv ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" \ - && { test -f "$additional_libdir/lib$name.$shlibext" \ - || { test "$shlibext" = dll \ - && test -f "$additional_libdir/lib$name.dll.a"; }; }; then - found_dir="$additional_libdir" - if test -f "$additional_libdir/lib$name.$shlibext"; then - found_so="$additional_libdir/lib$name.$shlibext" - else - found_so="$additional_libdir/lib$name.dll.a" - fi - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" \ - && { test -f "$dir/lib$name.$shlibext" \ - || { test "$shlibext" = dll \ - && test -f "$dir/lib$name.dll.a"; }; }; then - found_dir="$dir" - if test -f "$dir/lib$name.$shlibext"; then - found_so="$dir/lib$name.$shlibext" - else - found_so="$dir/lib$name.dll.a" - fi - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$hardcode_direct" = yes; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBICONV; do +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 - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" - ;; - esac - done - fi - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" - done + 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 - am_save_CPPFLAGS="$CPPFLAGS" - - for element in $INCICONV; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 -$as_echo_n "checking for iconv... " >&6; } -if test "${am_cv_func_iconv+set}" = set; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 -$as_echo "$am_cv_func_iconv" >&6; } - if test "$am_cv_func_iconv" = yes; then +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 + ;; -$as_echo "#define HAVE_ICONV 1" >>confdefs.h +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' fi - if test "$am_cv_lib_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 -$as_echo_n "checking how to link with libiconv... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 -$as_echo "$LIBICONV" >&6; } + ;; + +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 - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= + lt_cv_deplibs_check_method=pass_all fi + ;; +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; - if test "$am_cv_func_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 -$as_echo_n "checking for iconv declaration... " >&6; } - if test "${am_cv_proto_iconv+set}" = set; then : - $as_echo_n "(cached) " >&6 -else +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +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)$' + ;; -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif +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 + ;; -int -main () -{ +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - am_cv_proto_iconv_arg1="" -else - am_cv_proto_iconv_arg1="const" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" -fi +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; - am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- - }$am_cv_proto_iconv" >&5 -$as_echo "${ac_t:- - }$am_cv_proto_iconv" >&6; } +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 + ;; -cat >>confdefs.h <<_ACEOF -#define ICONV_CONST $am_cv_proto_iconv_arg1 -_ACEOF +*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 + ;; -use_lapack=true -use_internal_lapack=false +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; -# Check whether --with-lapack was given. -if test "${with_lapack+set}" = set; then : - withval=$with_lapack; -if test x$withval = xno; then - use_lapack=false -fi +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; -fi +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; -if test x$use_lapack = xtrue; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgesv_ in -llapack" >&5 -$as_echo_n "checking for sgesv_ in -llapack... " >&6; } -if test "${ac_cv_lib_lapack_sgesv_+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-llapack $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +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 -/* 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 sgesv_ (); -int -main () -{ -return sgesv_ (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lapack_sgesv_=yes -else - ac_cv_lib_lapack_sgesv_=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lapack_sgesv_" >&5 -$as_echo "$ac_cv_lib_lapack_sgesv_" >&6; } -if test "x$ac_cv_lib_lapack_sgesv_" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBLAPACK 1 -_ACEOF - LIBS="-llapack $LIBS" +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 -else - use_internal_lapack=true -fi - if test x$use_internal_lapack != xtrue; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm_ in -lblas" >&5 -$as_echo_n "checking for sgemm_ in -lblas... " >&6; } -if test "${ac_cv_lib_blas_sgemm_+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblas $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 sgemm_ (); -int -main () -{ -return sgemm_ (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_blas_sgemm_=yes -else - ac_cv_lib_blas_sgemm_=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_blas_sgemm_" >&5 -$as_echo "$ac_cv_lib_blas_sgemm_" >&6; } -if test "x$ac_cv_lib_blas_sgemm_" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBBLAS 1 -_ACEOF - LIBS="-lblas $LIBS" -else - use_internal_lapack=true -fi - fi -$as_echo "#define WITH_LAPACK /**/" >>confdefs.h -fi - if test x$use_internal_lapack = xtrue; then - LAPACK_LITE_TRUE= - LAPACK_LITE_FALSE='#' -else - LAPACK_LITE_TRUE='#' - LAPACK_LITE_FALSE= -fi - if test x$use_lapack = xtrue; then - USE_LAPACK_TRUE= - USE_LAPACK_FALSE='#' -else - USE_LAPACK_TRUE='#' - USE_LAPACK_FALSE= -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for log in -lm" >&5 -$as_echo_n "checking for log in -lm... " >&6; } -if test "${ac_cv_lib_m_log+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* 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 log (); -int -main () -{ -return log (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_m_log=yes -else - ac_cv_lib_m_log=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_log" >&5 -$as_echo "$ac_cv_lib_m_log" >&6; } -if test "x$ac_cv_lib_m_log" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBM 1 -_ACEOF - LIBS="-lm $LIBS" -fi -threadsafe=auto -# Check whether --enable-threads was given. -if test "${enable_threads+set}" = set; then : - enableval=$enable_threads; -if test x$enableval != x; then - threadsafe=$enableval -fi -fi -if test x$threadsafe != xno; then - threads=false - case $host in - *cygwin*|*mingw*|*wince*) - threads=true - ;; - *) - for ac_header in pthread.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_H 1 -_ACEOF - threads=true -fi -done - { $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 : + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else - 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 + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else - ac_cv_lib_pthread_pthread_create=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + fi -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" - +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - ;; - esac - if test x$threads = xtrue; then -$as_echo "#define ENABLE_THREADS /**/" >>confdefs.h +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - threadsafe=yes - elif test x$threadsafe = xyes; then - as_fn_error "--enable-threads was given but test for thread functions failed!" "$LINENO" 5 - else - threadsafe=no - fi fi - if test x$threadsafe = xyes; then - USE_THREADS_TRUE= - USE_THREADS_FALSE='#' +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } else - USE_THREADS_TRUE='#' - USE_THREADS_FALSE= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi -fixed_point=false -# Check whether --enable-fixed was given. -if test "${enable_fixed+set}" = set; then : - enableval=$enable_fixed; -if test x$enableval = xyes; then - $as_echo "#define FIXED_POINT 1" >>confdefs.h +test -z "$DLLTOOL" && DLLTOOL=dlltool - fixed_point=true -else -$as_echo "#define FIXED_POINT /**/" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define DEFAULT_RADIX $enableval -_ACEOF -fi -fi - if test x$fixed_point = xtrue; then - FIXED_POINT_TRUE= - FIXED_POINT_FALSE='#' -else - FIXED_POINT_TRUE='#' - FIXED_POINT_FALSE= -fi -# Check whether --enable-fixed16 was given. -if test "${enable_fixed16+set}" = set; then : - enableval=$enable_fixed16; -if test x$enableval = xyes; then -$as_echo "#define FIXED_POINT /**/" >>confdefs.h +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' -$as_echo "#define FIXED16 /**/" >>confdefs.h +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac fi -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -# Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; -$as_echo "#define SPHINX_DEBUG /**/" >>confdefs.h -fi -case $host in - *-*-linux*|*-*-uclinux*|*-*-freebsd*|*-*-netbsd*|*-*-openbsd*) - # Check for PulseAudio, JACK, then fallback ALSA, then fall back to OSS - ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default" -if test "x$ac_cv_header_pulse_pulseaudio_h" = x""yes; then : - -$as_echo "#define AD_BACKEND_PULSEAUDIO /**/" >>confdefs.h - ad_files="ad_pulse.lo" - ad_backend="AD_BACKEND_PULSEAUDIO" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_simple_new in -lpulse-simple" >&5 -$as_echo_n "checking for pa_simple_new in -lpulse-simple... " >&6; } -if test "${ac_cv_lib_pulse_simple_pa_simple_new+set}" = set; then : +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpulse-simple $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 pa_simple_new (); -int -main () -{ -return pa_simple_new (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pulse_simple_pa_simple_new=yes + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. else - ac_cv_lib_pulse_simple_pa_simple_new=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + fi -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_pulse_simple_pa_simple_new" >&5 -$as_echo "$ac_cv_lib_pulse_simple_pa_simple_new" >&6; } -if test "x$ac_cv_lib_pulse_simple_pa_simple_new" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPULSE_SIMPLE 1 -_ACEOF +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 - LIBS="-lpulse-simple $LIBS" + test -n "$AR" && break + done fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_strerror in -lpulse" >&5 -$as_echo_n "checking for pa_strerror in -lpulse... " >&6; } -if test "${ac_cv_lib_pulse_pa_strerror+set}" = set; then : +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpulse $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 pa_strerror (); -int -main () -{ -return pa_strerror (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pulse_pa_strerror=yes + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else - ac_cv_lib_pulse_pa_strerror=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + fi -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_pulse_pa_strerror" >&5 -$as_echo "$ac_cv_lib_pulse_pa_strerror" >&6; } -if test "x$ac_cv_lib_pulse_pa_strerror" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPULSE 1 -_ACEOF - - LIBS="-lpulse $LIBS" - +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 -else + test -n "$ac_ct_AR" && break +done - ac_fn_c_check_header_mongrel "$LINENO" "jack/jack.h" "ac_cv_header_jack_jack_h" "$ac_includes_default" -if test "x$ac_cv_header_jack_jack_h" = x""yes; then : + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi +: ${AR=ar} +: ${AR_FLAGS=cru} -$as_echo "#define AD_BACKEND_JACK /**/" >>confdefs.h - ad_files="ad_jack.lo" - ad_backend="AD_BACKEND_JACK" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jack_connect in -ljack" >&5 -$as_echo_n "checking for jack_connect in -ljack... " >&6; } -if test "${ac_cv_lib_jack_jack_connect+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ljack $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 jack_connect (); -int -main () -{ -return jack_connect (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_jack_jack_connect=yes -else - ac_cv_lib_jack_jack_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_jack_jack_connect" >&5 -$as_echo "$ac_cv_lib_jack_jack_connect" >&6; } -if test "x$ac_cv_lib_jack_jack_connect" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBJACK 1 -_ACEOF - LIBS="-ljack $LIBS" -fi -else - ac_fn_c_check_header_mongrel "$LINENO" "alsa/asoundlib.h" "ac_cv_header_alsa_asoundlib_h" "$ac_includes_default" -if test "x$ac_cv_header_alsa_asoundlib_h" = x""yes; then : -$as_echo "#define AD_BACKEND_ALSA /**/" >>confdefs.h - ad_files="ad_alsa.lo" - ad_backend="AD_BACKEND_ALSA" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_pcm_open in -lasound" >&5 -$as_echo_n "checking for snd_pcm_open in -lasound... " >&6; } -if test "${ac_cv_lib_asound_snd_pcm_open+set}" = set; then : + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lasound $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + lt_cv_ar_at_file=no + 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 snd_pcm_open (); int main () { -return snd_pcm_open (); + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_asound_snd_pcm_open=yes -else - ac_cv_lib_asound_snd_pcm_open=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_asound_snd_pcm_open" >&5 -$as_echo "$ac_cv_lib_asound_snd_pcm_open" >&6; } -if test "x$ac_cv_lib_asound_snd_pcm_open" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBASOUND 1 -_ACEOF - - LIBS="-lasound $LIBS" - -fi - -else - - -$as_echo "#define AD_BACKEND_OSS /**/" >>confdefs.h - - ad_files="ad_oss.lo" - ad_backend="AD_BACKEND_OSS" +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a fi - - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } - - +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file fi - ;; - *-*-*cygwin*|*-*-*mingw*) - ad_files="play_win32.lo rec_win32.lo" - ad_libs="-lwinmm" - ad_backend="AD_BACKEND_WIN32" -$as_echo "#define AD_BACKEND_WIN32 /**/" >>confdefs.h - ;; - *) - ad_files="ad_base.lo" - ad_backend="AD_BACKEND_NONE" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: No audio interface for host type $host." >&5 -$as_echo "No audio interface for host type $host." >&6; } -$as_echo "#define AD_BACKEND_NONE /**/" >>confdefs.h - - ;; -esac - - - - - -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 +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -macro_version='2.2.6b' -macro_revision='1.3017' +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi +test -z "$STRIP" && STRIP=: +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -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 : +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else - 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 + 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_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 + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done done IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 + +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 - ac_cv_path_SED=$SED + RANLIB="$ac_cv_prog_RANLIB" fi +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi -{ $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//" +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac @@ -7387,74 +7039,10 @@ -{ $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 @@ -7474,554 +7062,549 @@ -# 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 : + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else - # 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 +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + # Check to see that the pipe works correctly. + pipe_works=no -{ $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 + 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 - 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 + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif +#ifdef __cplusplus +extern "C" { +#endif - 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 +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= fi done - done -IFS=$as_save_IFS fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= 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; } +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: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } fi +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi - 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:7762: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:7765: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:7768: 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; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; else - lt_unset=false + with_sysroot=no 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' - ;; +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -{ $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' +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac else - reload_cmds='$LD$reload_flag -o $output$reload_objs' + 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 - ;; -esac - - - - - - - - + fi + rm -rf conftest* + ;; -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 +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 ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -8029,8 +7612,8 @@ 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" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -8040,10 +7623,10 @@ 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; } +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -8051,17 +7634,17 @@ 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 +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -8069,8 +7652,8 @@ 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" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -8080,17 +7663,17 @@ 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; } +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) @@ -8098,245 +7681,142 @@ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - OBJDUMP=$ac_ct_OBJDUMP + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else - OBJDUMP="$ac_cv_prog_OBJDUMP" + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi -test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -{ $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 : +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else - 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 - ;; + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -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 - ;; +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 -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*) - 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)$' + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" 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 - ;; + 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 -{ $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 + 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_AR+set}" = set; then : +if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. + 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 @@ -8344,8 +7824,8 @@ 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" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -8355,10 +7835,10 @@ 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; } +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; } @@ -8366,17 +7846,17 @@ 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 +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_AR+set}" = set; then : +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. + 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 @@ -8384,8 +7864,8 @@ 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" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -8395,17 +7875,17 @@ 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; } +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_AR" = x; then - AR="false" + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) @@ -8413,35 +7893,22 @@ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - AR=$ac_ct_AR + NMEDIT=$ac_ct_NMEDIT fi else - AR="$ac_cv_prog_AR" + NMEDIT="$ac_cv_prog_NMEDIT" 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 + 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_STRIP+set}" = set; then : +if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. + 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 @@ -8449,8 +7916,8 @@ 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" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -8460,10 +7927,10 @@ 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; } +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; } @@ -8471,17 +7938,17 @@ 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 +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_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. + 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 @@ -8489,8 +7956,8 @@ 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" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -8500,17 +7967,17 @@ 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; } +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_STRIP" = x; then - STRIP=":" + if test "x$ac_ct_LIPO" = x; then + LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) @@ -8518,29 +7985,22 @@ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - STRIP=$ac_ct_STRIP + LIPO=$ac_ct_LIPO fi else - STRIP="$ac_cv_prog_STRIP" + LIPO="$ac_cv_prog_LIPO" 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 + 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_RANLIB+set}" = set; then : +if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. + 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 @@ -8548,8 +8008,8 @@ 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" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -8559,10 +8019,10 @@ 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; } +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; } @@ -8570,17 +8030,17 @@ 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 +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_RANLIB+set}" = set; then : +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. + 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 @@ -8588,8 +8048,8 @@ 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" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -8599,17 +8059,17 @@ 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; } +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_RANLIB" = x; then - RANLIB=":" + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) @@ -8617,39 +8077,103 @@ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - RANLIB=$ac_ct_RANLIB + OTOOL=$ac_ct_OTOOL fi else - RANLIB="$ac_cv_prog_RANLIB" + OTOOL="$ac_cv_prog_OTOOL" 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 "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -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 +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi @@ -8677,245 +8201,490 @@ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int +main () +{ -# 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 + ; + 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; } -# 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 "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM -# 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]' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : -# 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 +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext -# 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'" +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi -# 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'" + done + ac_cv_prog_CPP=$CPP -# 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 +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 : -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext - # 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 +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : - # Check to see that the pipe works correctly. - pipe_works=no +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 - 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 +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 ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; } -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF +_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 { { 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 +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 - # 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 +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' +else + ac_cv_header_stdc=no +fi +rm -f conftest* - cat <<_LT_EOF >> conftest.$ac_ext +fi -/* 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} -}; +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 -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} +_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 -#ifdef __cplusplus +#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; } -#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 +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + 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 - 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* + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + - # 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; } + # 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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } + enable_static=yes fi @@ -8927,8 +8696,30 @@ +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi +test -z "$pic_mode" && pic_mode=default @@ -8936,672 +8727,329 @@ + # 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 -# 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 8973 "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 +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' -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 + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST 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 "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_OTOOL"; then - ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs 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 + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs 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; } +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 - 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 + + + + +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 -else - OTOOL="$ac_cv_prog_OTOOL" -fi + ;; +esac - 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 : +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else - 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 + 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 -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; } + +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 -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 + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi done -IFS=$as_save_IFS - -fi + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac 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; } + +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 "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 + MAGIC_CMD=: fi -else - OTOOL64="$ac_cv_prog_OTOOL64" 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);}' @@ -9609,284 +9057,475 @@ +# 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 + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking 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 "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else - lt_cv_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 - -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 + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } -done - - - -# 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 +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 - enable_shared=yes + : fi +fi + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= - # 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 - - + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : - withval=$with_pic; pic_mode="$withval" -else - pic_mode=default -fi + 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 + ;; -test -z "$pic_mode" && pic_mode=default + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; - # 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" + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac ;; - 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' - - - - - - - - - + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* -test -z "$LN_S" && LN_S="ln -s" +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 @@ -9898,390 +9537,782 @@ +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST 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; } -{ $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 +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null + lt_prog_compiler_static= 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 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } -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 +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 - ;; -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 + need_locks=no +fi -*** 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 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= -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 + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac -*** 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 + ld_shlibs=yes -_LT_EOF - fi ;; + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; esac - fi - break + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac -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 + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. - else - MAGIC_CMD=: - fi -fi +_LT_EOF + fi + ;; - fi - ;; -esac + 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 + ;; -# Use C for the default configuration in the libtool script + 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 + ;; -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 + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; -# Source file extension for C test sources. -ac_ext=c + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; -# Object file extension for compiled C test sources. -objext=o -objext=$objext + 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' + ;; -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} +_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 + ;; -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; -# Allow CC to be a program name with arguments. -compiler=$CC + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac -# 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 + 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 + ;; -# 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* + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no -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* + # 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 -## 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 + # 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_prog_compiler_no_builtin_flag= + 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 - lt_prog_compiler_no_builtin_flag=' -fno-builtin' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi - { $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 : + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else - 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:10235: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:10239: \$? = $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* + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -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; } +int +main () +{ -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 + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi +fi + aix_libpath=$lt_cv_aix_libpath_ +fi + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi -{ $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; } +fi - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' + aix_libpath=$lt_cv_aix_libpath_ +fi - 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' + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi fi ;; @@ -10289,260 +10320,572 @@ case $host_cpu in powerpc) # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' ;; 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' + 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* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic ;; - 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' + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac ;; darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + ;; - 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 + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no ;; - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes ;; - 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 + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no ;; - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' + 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 ;; - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi + *nto* | *qnx*) ;; - *) - 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' + 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 - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + ld_shlibs=no 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' + 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' ;; - 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' + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: ;; - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: ;; - 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,' + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; - *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='' + *) + 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 ;; - 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' + 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 ;; - 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,';; + 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 ;; - 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.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 - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' + 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 ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' + 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 ;; - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no + 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*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no ;; *) - lt_prog_compiler_can_build_shared=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 -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; } +{ $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 + + + + + + + + + @@ -10550,104 +10893,136 @@ # -# Check to make sure the PIC flag actually works. +# Do we need to explicitly link libc? # -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 : +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else - 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:10574: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:10578: \$? = $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* + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext -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 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* -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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -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 @@ -10655,1235 +11030,840 @@ - { $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:10679: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:10683: \$? = $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:10734: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:10738: \$? = $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 - ;; - 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*) - 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 - 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*) - 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 - ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } - 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 - ;; +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no - *nto* | *qnx*) - ;; +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown - 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 - ;; +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH - 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' - ;; + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; - 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' +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : else - 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' + can_build_shared=no fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: ;; + 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 + ;; - 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' +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - archive_cmds_need_lc='no' - hardcode_libdir_separator=: - ;; +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; - 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 - ;; +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; - 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 - ;; +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=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 - ;; + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; + 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}' - 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 + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; - 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' + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else - 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' + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") ;; + esac - 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' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; - 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 - ;; + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; +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`' - *) - ld_shlibs=no - ;; - esac + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; - 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 +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=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[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; -with_gnu_ld=$with_gnu_ld +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir +fi + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" -# -# 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 + fi - 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 + # 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' + ;; - 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 +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 ;; -esac - - - - - - - - - - +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; +rdos*) + dynamic_linker=no + ;; +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi @@ -11976,719 +11956,658 @@ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes +fi + ;; + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi +fi +fi +fi +fi +fi + ;; + esac + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" +#if HAVE_DLFCN_H +#include +#endif - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } +#include -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 +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown +/* 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 -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; -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 - : + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; 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 - ;; + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; + 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* -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 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } - 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 + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" - 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 - ;; +#if HAVE_DLFCN_H +#include +#endif - *) - 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 - ;; +#include -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`' +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; +/* 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 -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 - ;; +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif -freebsd1*) - dynamic_linker=no - ;; +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; -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` + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; + 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 - 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 - ;; +fi +rm -fr conftest* -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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } 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' + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" ;; 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 ;; + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; 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 - ;; + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; 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 - ;; +fi -# 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 - # Add ABI-specific directories to the system library path. - sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - fi - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; -newsos6) - version_type=linux - 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. + + + + + +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 - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; + 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 - 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 - ;; +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 + # 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; } -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 + { $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 -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 + # 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" @@ -12704,150 +12623,545 @@ + ac_config_commands="$ac_config_commands libtool" +# Only expand once: +# We don't bother ourselves with flex checks until the rest of the world has an up-to-date Flex +# We need specific bison extensions, so check for bison +# Extract the first word of "bison", so it can be a program name with args. +set dummy bison; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_YACC+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_YACC="bison -y" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + test -z "$ac_cv_prog_YACC" && ac_cv_prog_YACC="no" +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 +if test "x$YACC" = "xno"; +then + as_fn_error $? "You need to install bison" "$LINENO" 5 +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 ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : +else + ac_cv_header_stdc=no +fi +rm -f conftest* +fi +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : +else + ac_cv_header_stdc=no +fi +rm -f conftest* +fi +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then +$as_echo "#define STDC_HEADERS 1" >>confdefs.h +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 +$as_echo_n "checking return type of signal handlers... " >&6; } +if ${ac_cv_type_signal+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int +main () +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_signal=int +else + ac_cv_type_signal=void +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE $ac_cv_type_signal +_ACEOF +ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" +if test "x$ac_cv_type_long_long" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_LONG_LONG 1 +_ACEOF +fi +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 +$as_echo_n "checking size of long long... " >&6; } +if ${ac_cv_sizeof_long_long+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : +else + if test "$ac_cv_type_long_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (long long) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_long_long=0 + fi +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 +$as_echo "$ac_cv_sizeof_long_long" >&6; } +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long +_ACEOF +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 +$as_echo_n "checking size of long... " >&6; } +if ${ac_cv_sizeof_long+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : +else + if test "$ac_cv_type_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (long) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_long=0 + fi +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +$as_echo "$ac_cv_sizeof_long" >&6; } +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long +_ACEOF - { $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; } +for ac_func in popen perror snprintf +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -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 +done +ac_fn_c_check_header_mongrel "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default" +if test "x$ac_cv_header_errno_h" = xyes; then : +fi +use_lapack=true +use_internal_lapack=false - 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= - ;; +# Check whether --with-lapack was given. +if test "${with_lapack+set}" = set; then : + withval=$with_lapack; +if test x$withval = xno; then + use_lapack=false +fi - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; +fi - 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 : +if test x$use_lapack = xtrue; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgesv_ in -llapack" >&5 +$as_echo_n "checking for sgesv_ in -llapack... " >&6; } +if ${ac_cv_lib_lapack_sgesv_+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" +LIBS="-llapack $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12857,50 +13171,45 @@ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char sgesv_ (); int main () { -return dlopen (); +return sgesv_ (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes + ac_cv_lib_lapack_sgesv_=yes else - ac_cv_lib_dl_dlopen=no + ac_cv_lib_lapack_sgesv_=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}: result: $ac_cv_lib_lapack_sgesv_" >&5 +$as_echo "$ac_cv_lib_lapack_sgesv_" >&6; } +if test "x$ac_cv_lib_lapack_sgesv_" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLAPACK 1 +_ACEOF - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes + LIBS="-llapack $LIBS" +else + use_internal_lapack=true 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 : + if test x$use_internal_lapack != xtrue; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm_ in -lblas" >&5 +$as_echo_n "checking for sgemm_ in -lblas... " >&6; } +if ${ac_cv_lib_blas_sgemm_+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" +LIBS="-lblas $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12910,79 +13219,66 @@ #ifdef __cplusplus extern "C" #endif -char shl_load (); +char sgemm_ (); int main () { -return shl_load (); +return sgemm_ (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes + ac_cv_lib_blas_sgemm_=yes else - ac_cv_lib_dld_shl_load=no + ac_cv_lib_blas_sgemm_=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; -} +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blas_sgemm_" >&5 +$as_echo "$ac_cv_lib_blas_sgemm_" >&6; } +if test "x$ac_cv_lib_blas_sgemm_" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBBLAS 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes + + LIBS="-lblas $LIBS" + else - ac_cv_lib_dl_dlopen=no + use_internal_lapack=true fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + + fi + +$as_echo "#define WITH_LAPACK /**/" >>confdefs.h + 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" + if test x$use_internal_lapack = xtrue; then + LAPACK_LITE_TRUE= + LAPACK_LITE_FALSE='#' 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 : + LAPACK_LITE_TRUE='#' + LAPACK_LITE_FALSE= +fi + + if test x$use_lapack = xtrue; then + USE_LAPACK_TRUE= + USE_LAPACK_FALSE='#' +else + USE_LAPACK_TRUE='#' + USE_LAPACK_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for log in -lm" >&5 +$as_echo_n "checking for log in -lm... " >&6; } +if ${ac_cv_lib_m_log+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" +LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12992,36 +13288,72 @@ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char log (); int main () { -return dlopen (); +return log (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_svld_dlopen=yes + ac_cv_lib_m_log=yes else - ac_cv_lib_svld_dlopen=no + ac_cv_lib_m_log=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 "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_log" >&5 +$as_echo "$ac_cv_lib_m_log" >&6; } +if test "x$ac_cv_lib_m_log" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBM 1 +_ACEOF + + LIBS="-lm $LIBS" + +fi + + +threadsafe=auto +# Check whether --enable-threads was given. +if test "${enable_threads+set}" = set; then : + enableval=$enable_threads; +if test x$enableval != x; then + threadsafe=$enableval +fi + +fi + +if test x$threadsafe != xno; then + threads=false + case $host in + *cygwin*|*mingw*|*wince*) + threads=true + ;; + *) + for ac_header in pthread.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_H 1 +_ACEOF + threads=true +fi + +done + + { $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 ${ac_cv_lib_pthread_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" +LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13031,397 +13363,342 @@ #ifdef __cplusplus extern "C" #endif -char dld_link (); +char pthread_create (); int main () { -return dld_link (); +return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_dld_link=yes + ac_cv_lib_pthread_pthread_create=yes else - ac_cv_lib_dld_dld_link=no + 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_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 13104 "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 13200 "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 +{ $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" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF + + LIBS="-lpthread $LIBS" - 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 + ;; + esac + if test x$threads = xtrue; then +$as_echo "#define ENABLE_THREADS /**/" >>confdefs.h + threadsafe=yes + elif test x$threadsafe = xyes; then + as_fn_error $? "--enable-threads was given but test for thread functions failed!" "$LINENO" 5 + else + threadsafe=no + fi +fi + if test x$threadsafe = xyes; then + USE_THREADS_TRUE= + USE_THREADS_FALSE='#' +else + USE_THREADS_TRUE='#' + USE_THREADS_FALSE= +fi +fixed_point=false +# Check whether --enable-fixed was given. +if test "${enable_fixed+set}" = set; then : + enableval=$enable_fixed; +if test x$enableval = xyes; then + $as_echo "#define FIXED_POINT 1" >>confdefs.h + fixed_point=true +else +$as_echo "#define FIXED_POINT /**/" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define DEFAULT_RADIX $enableval +_ACEOF +fi +fi + if test x$fixed_point = xtrue; then + FIXED_POINT_TRUE= + FIXED_POINT_FALSE='#' +else + FIXED_POINT_TRUE='#' + FIXED_POINT_FALSE= +fi +# Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; +$as_echo "#define SPHINX_DEBUG /**/" >>confdefs.h +fi +case $host in + *-*-linux*|*-*-uclinux*|*-*-freebsd*|*-*-netbsd*|*-*-openbsd*) + # Check for PulseAudio, JACK, then fallback ALSA, then fall back to OSS + ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default" +if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then : -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; } + ad_files="ad_pulse.lo" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_simple_new in -lpulse-simple" >&5 +$as_echo_n "checking for pa_simple_new in -lpulse-simple... " >&6; } +if ${ac_cv_lib_pulse_simple_pa_simple_new+:} false; then : + $as_echo_n "(cached) " >&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 - - + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpulse-simple $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 pa_simple_new (); +int +main () +{ +return pa_simple_new (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pulse_simple_pa_simple_new=yes +else + ac_cv_lib_pulse_simple_pa_simple_new=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_pulse_simple_pa_simple_new" >&5 +$as_echo "$ac_cv_lib_pulse_simple_pa_simple_new" >&6; } +if test "x$ac_cv_lib_pulse_simple_pa_simple_new" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPULSE_SIMPLE 1 +_ACEOF + LIBS="-lpulse-simple $LIBS" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_strerror in -lpulse" >&5 +$as_echo_n "checking for pa_strerror in -lpulse... " >&6; } +if ${ac_cv_lib_pulse_pa_strerror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpulse $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 pa_strerror (); +int +main () +{ +return pa_strerror (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pulse_pa_strerror=yes +else + ac_cv_lib_pulse_pa_strerror=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_pulse_pa_strerror" >&5 +$as_echo "$ac_cv_lib_pulse_pa_strerror" >&6; } +if test "x$ac_cv_lib_pulse_pa_strerror" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPULSE 1 +_ACEOF + LIBS="-lpulse $LIBS" +fi +else - # 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; } + ac_fn_c_check_header_mongrel "$LINENO" "jack/jack.h" "ac_cv_header_jack_jack_h" "$ac_includes_default" +if test "x$ac_cv_header_jack_jack_h" = xyes; then : - { $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 + ad_files="ad_jack.lo" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jack_connect in -ljack" >&5 +$as_echo_n "checking for jack_connect in -ljack... " >&6; } +if ${ac_cv_lib_jack_jack_connect+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ljack $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # 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 - ;; +/* 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 jack_connect (); +int +main () +{ +return jack_connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_jack_jack_connect=yes +else + ac_cv_lib_jack_jack_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_jack_jack_connect" >&5 +$as_echo "$ac_cv_lib_jack_jack_connect" >&6; } +if test "x$ac_cv_lib_jack_jack_connect" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBJACK 1 +_ACEOF - 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; } + LIBS="-ljack $LIBS" - { $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 +else + ac_fn_c_check_header_mongrel "$LINENO" "alsa/asoundlib.h" "ac_cv_header_alsa_asoundlib_h" "$ac_includes_default" +if test "x$ac_cv_header_alsa_asoundlib_h" = xyes; then : + ad_files="ad_alsa.lo" + ad_backend="AD_BACKEND_ALSA" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_pcm_open in -lasound" >&5 +$as_echo_n "checking for snd_pcm_open in -lasound... " >&6; } +if ${ac_cv_lib_asound_snd_pcm_open+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lasound $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 snd_pcm_open (); +int +main () +{ +return snd_pcm_open (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_asound_snd_pcm_open=yes +else + ac_cv_lib_asound_snd_pcm_open=no 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 +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_asound_snd_pcm_open" >&5 +$as_echo "$ac_cv_lib_asound_snd_pcm_open" >&6; } +if test "x$ac_cv_lib_asound_snd_pcm_open" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBASOUND 1 +_ACEOF -CC="$lt_save_CC" + LIBS="-lasound $LIBS" +fi +else + ad_files="ad_oss.lo" +fi +fi +fi + ;; + *-*-*cygwin*|*-*-*mingw*) + ad_files="ad_win32.lo" + ad_libs="-lwinmm" + ;; + *-apple-*darwin*) + sdkparam=`xcodebuild -showsdks | awk '/^$/{p=0};p; /OS X SDKs:/{p=1}' | tail -1 | cut -f3` + sdkpath=`xcodebuild -version $sdkparam Path` + ad_cppflags="-I$sdkpath/System/Library/Frameworks/OpenAL.framework/Versions/A/Headers/" + backup_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ad_cppflags" + as_ac_Header=`$as_echo "ac_cv_header_"alc.h"" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" ""alc.h"" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - ac_config_commands="$ac_config_commands libtool" +else + as_fn_error $? "OpenAL not found" "$LINENO" 5 +fi + CPPFLAGS="$backup_CPPFLAGS" + ad_files="ad_openal.lo" + ad_libs="-framework OpenAL" + ;; + *) + ad_files="ad_base.lo" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: No audio interface for host type $host." >&5 +$as_echo "No audio interface for host type $host." >&6; } + ;; +esac -# Only expand once: @@ -13429,7 +13706,7 @@ set dummy doxygen; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_HAVE_DOXYGEN+set}" = set; then : +if ${ac_cv_prog_HAVE_DOXYGEN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_DOXYGEN"; then @@ -13441,7 +13718,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_DOXYGEN="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13472,34 +13749,87 @@ fi -use_python=true -PYTHON=python + # Check whether --with-python was given. if test "${with_python+set}" = set; then : withval=$with_python; -if test x$withval = xno; then - use_python=false - PYTHON=bogus -elif test x$withval = xyes; then - # No specific python binary was given, so check for it in PATH - use_python=true - PYTHON=python -else - # A python was given, assume it is in the user's PATH or is fully qualified - use_python=true - PYTHON="$withval" - PYTHON_CONFIG="$withval"-config fi + +if test "x${with_python}" != "xno"; then + + + + + + + if test -n "$PYTHON"; then + # If the user set $PYTHON, use it and don't search something else. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.6" >&5 +$as_echo_n "checking whether $PYTHON version is >= 2.6... " >&6; } + prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '2.6'.split('.'))) + [0, 0, 0] +minverhex = 0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] +sys.exit(sys.hexversion < minverhex)" + if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 + ($PYTHON -c "$prog") >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "Python interpreter is too old" "$LINENO" 5 fi + am_display_PYTHON=$PYTHON + else + # Otherwise, try each interpreter until we find one that satisfies + # VERSION. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.6" >&5 +$as_echo_n "checking for a Python interpreter with version >= 2.6... " >&6; } +if ${am_cv_pathless_PYTHON+:} false; then : + $as_echo_n "(cached) " >&6 +else -if test "x$use_python" = xtrue -a "x$PYTHON" = xpython; then - # Extract the first word of "python", so it can be a program name with args. -set dummy python; ac_word=$2 + for am_cv_pathless_PYTHON in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do + test "$am_cv_pathless_PYTHON" = none && break + prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '2.6'.split('.'))) + [0, 0, 0] +minverhex = 0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] +sys.exit(sys.hexversion < minverhex)" + if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 + ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then : + break +fi + done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5 +$as_echo "$am_cv_pathless_PYTHON" >&6; } + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. + if test "$am_cv_pathless_PYTHON" = none; then + PYTHON=: + else + # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. +set dummy $am_cv_pathless_PYTHON; 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_path_PYTHON+set}" = set; then : +if ${ac_cv_path_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else case $PYTHON in @@ -13513,7 +13843,7 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13522,7 +13852,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="bogus" ;; esac fi @@ -13536,180 +13865,176 @@ fi - # Extract the first word of "python-config", so it can be a program name with args. -set dummy python-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PYTHON_CONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PYTHON_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PYTHON_CONFIG="$PYTHON_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PYTHON_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + fi + am_display_PYTHON=$am_cv_pathless_PYTHON + fi - test -z "$ac_cv_path_PYTHON_CONFIG" && ac_cv_path_PYTHON_CONFIG="bogus" - ;; -esac -fi -PYTHON_CONFIG=$ac_cv_path_PYTHON_CONFIG -if test -n "$PYTHON_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CONFIG" >&5 -$as_echo "$PYTHON_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + + if test "$PYTHON" = :; then + as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 + else -fi -if test "x$use_python" = xtrue -a "x$PYTHON" != xbogus -a "x$PYTHON_CONFIG" != xbogus; then - PYTHON_INCLUDES=`"$PYTHON_CONFIG" --includes` - CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" - ac_fn_c_check_header_mongrel "$LINENO" "Python.h" "ac_cv_header_Python_h" "$ac_includes_default" -if test "x$ac_cv_header_Python_h" = x""yes; then : - use_python=true + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 +$as_echo_n "checking for $am_display_PYTHON version... " >&6; } +if ${am_cv_python_version+:} false; then : + $as_echo_n "(cached) " >&6 else - use_python=false + am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"` fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 +$as_echo "$am_cv_python_version" >&6; } + PYTHON_VERSION=$am_cv_python_version + + PYTHON_PREFIX='${prefix}' + + PYTHON_EXEC_PREFIX='${exec_prefix}' + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 +$as_echo_n "checking for $am_display_PYTHON platform... " >&6; } +if ${am_cv_python_platform+:} false; then : + $as_echo_n "(cached) " >&6 else - use_python=false - PYTHON=bogus -fi -if test "x$use_python" != xtrue ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling python since development headers were not found" >&5 -$as_echo "$as_me: WARNING: Disabling python since development headers were not found" >&2;} -fi - if test "x$use_python" = "xtrue"; then - BUILD_PYTHON_TRUE= - BUILD_PYTHON_FALSE='#' -else - BUILD_PYTHON_TRUE='#' - BUILD_PYTHON_FALSE= + am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 +$as_echo "$am_cv_python_platform" >&6; } + PYTHON_PLATFORM=$am_cv_python_platform + # Just factor out some code duplication. + am_python_setup_sysconfig="\ +import sys +# Prefer sysconfig over distutils.sysconfig, for better compatibility +# with python 3.x. See automake bug#10227. +try: + import sysconfig +except ImportError: + can_use_sysconfig = 0 +else: + can_use_sysconfig = 1 +# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: +# +try: + from platform import python_implementation + if python_implementation() == 'CPython' and sys.version[:3] == '2.7': + can_use_sysconfig = 0 +except ImportError: + pass" -if test "x$PYTHON" != xbogus; then - # Extract the first word of "cython", so it can be a program name with args. -set dummy cython; 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_HAVE_CYTHON+set}" = set; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 +$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } +if ${am_cv_python_pythondir+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$HAVE_CYTHON"; then - ac_cv_prog_HAVE_CYTHON="$HAVE_CYTHON" # 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_HAVE_CYTHON="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + if test "x$prefix" = xNONE + then + am_py_prefix=$ac_default_prefix + else + am_py_prefix=$prefix + fi + am_cv_python_pythondir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pythondir in + $am_py_prefix*) + am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` + am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` + ;; + *) + case $am_py_prefix in + /usr|/System*) ;; + *) + am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac - test -z "$ac_cv_prog_HAVE_CYTHON" && ac_cv_prog_HAVE_CYTHON="no" -fi -fi -HAVE_CYTHON=$ac_cv_prog_HAVE_CYTHON -if test -n "$HAVE_CYTHON"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_CYTHON" >&5 -$as_echo "$HAVE_CYTHON" >&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: $am_cv_python_pythondir" >&5 +$as_echo "$am_cv_python_pythondir" >&6; } + pythondir=$am_cv_python_pythondir -fi - if test "x$HAVE_CYTHON" = "xyes"; then - BUILD_CYTHON_TRUE= - BUILD_CYTHON_FALSE='#' -else - BUILD_CYTHON_TRUE='#' - BUILD_CYTHON_FALSE= -fi + pkgpythondir=\${pythondir}/$PACKAGE -# Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_HAVE_PKGCONFIG+set}" = set; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 +$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } +if ${am_cv_python_pyexecdir+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$HAVE_PKGCONFIG"; then - ac_cv_prog_HAVE_PKGCONFIG="$HAVE_PKGCONFIG" # 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_HAVE_PKGCONFIG="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + if test "x$exec_prefix" = xNONE + then + am_py_exec_prefix=$am_py_prefix + else + am_py_exec_prefix=$exec_prefix + fi + am_cv_python_pyexecdir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pyexecdir in + $am_py_exec_prefix*) + am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` + am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` + ;; + *) + case $am_py_exec_prefix in + /usr|/System*) ;; + *) + am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac - test -z "$ac_cv_prog_HAVE_PKGCONFIG" && ac_cv_prog_HAVE_PKGCONFIG="no" -fi -fi -HAVE_PKGCONFIG=$ac_cv_prog_HAVE_PKGCONFIG -if test -n "$HAVE_PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_PKGCONFIG" >&5 -$as_echo "$HAVE_PKGCONFIG" >&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: $am_cv_python_pyexecdir" >&5 +$as_echo "$am_cv_python_pyexecdir" >&6; } + pyexecdir=$am_cv_python_pyexecdir -if test "x$HAVE_PKGCONFIG" = "xyes"; then + pkgpyexecdir=\${pyexecdir}/$PACKAGE -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 + + fi + + + + # + # Allow the use of a (user set) custom python version + # + + + # Extract the first word of "python[$PYTHON_VERSION]", so it can be a program name with args. +set dummy python$PYTHON_VERSION; 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_path_PKG_CONFIG+set}" = set; then : +if ${ac_cv_path_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else - case $PKG_CONFIG in + case $PYTHON in [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -13718,8 +14043,8 @@ 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_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -13730,29 +14055,329 @@ ;; esac fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +$as_echo "$PYTHON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + if test -z "$PYTHON"; then + as_fn_error $? "Cannot find python$PYTHON_VERSION in your system path" "$LINENO" 5 + PYTHON_VERSION="" + fi + + # + # Check for a version of Python >= 2.1.0 + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a version of Python >= '2.1.0'" >&5 +$as_echo_n "checking for a version of Python >= '2.1.0'... " >&6; } + ac_supports_python_ver=`$PYTHON -c "import sys; \ + ver = sys.version.split ()[0]; \ + print (ver >= '2.1.0')"` + if test "$ac_supports_python_ver" != "True"; then + if test -z "$PYTHON_NOVERSIONCHECK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? " +This version of the AC_PYTHON_DEVEL macro +doesn't work properly with versions of Python before +2.1.0. You may need to re-run configure, setting the +variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG, +PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand. +Moreover, to disable this check, set PYTHON_NOVERSIONCHECK +to something else than an empty string. + +See \`config.log' for more details" "$LINENO" 5; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: skip at user request" >&5 +$as_echo "skip at user request" >&6; } + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + fi + + # + # if the macro parameter ``version'' is set, honour it + # + if test -n ""; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a version of Python " >&5 +$as_echo_n "checking for a version of Python ... " >&6; } + ac_supports_python_ver=`$PYTHON -c "import sys; \ + ver = sys.version.split ()[0]; \ + print (ver )"` + if test "$ac_supports_python_ver" = "True"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "this package requires Python . +If you have it installed, but it isn't the default Python +interpreter in your system path, please pass the PYTHON_VERSION +variable to configure. See \`\`configure --help'' for reference. +" "$LINENO" 5 + PYTHON_VERSION="" + fi + fi + + # + # Check if you have distutils, else fail + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5 +$as_echo_n "checking for the distutils Python package... " >&6; } + ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` + if test -z "$ac_distutils_result"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "cannot import Python module \"distutils\". +Please check your Python installation. The error was: +$ac_distutils_result" "$LINENO" 5 + PYTHON_VERSION="" + fi + + # + # Check for Python include path + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 +$as_echo_n "checking for Python include path... " >&6; } + if test -z "$PYTHON_CPPFLAGS"; then + python_path=`$PYTHON -c "import distutils.sysconfig; \ + print (distutils.sysconfig.get_python_inc ());"` + plat_python_path=`$PYTHON -c "import distutils.sysconfig; \ + print (distutils.sysconfig.get_python_inc (plat_specific=1));"` + if test -n "${python_path}"; then + if test "${plat_python_path}" != "${python_path}"; then + python_path="-I$python_path -I$plat_python_path" + else + python_path="-I$python_path" + fi + fi + PYTHON_CPPFLAGS=$python_path + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CPPFLAGS" >&5 +$as_echo "$PYTHON_CPPFLAGS" >&6; } + + + # + # Check for Python library path + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5 +$as_echo_n "checking for Python library path... " >&6; } + if test -z "$PYTHON_LDFLAGS"; then + # (makes two attempts to ensure we've got a version number + # from the interpreter) + ac_python_version=`cat<>confdefs.h <<_ACEOF +#define HAVE_PYTHON "$ac_python_version" +_ACEOF + + + # First, the library directory: + ac_python_libdir=`cat<&5 +$as_echo "$PYTHON_LDFLAGS" >&6; } + + + # + # Check for site packages + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5 +$as_echo_n "checking for Python site-packages path... " >&6; } + if test -z "$PYTHON_SITE_PKG"; then + PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \ + print (distutils.sysconfig.get_python_lib(0,0));"` + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5 +$as_echo "$PYTHON_SITE_PKG" >&6; } + + + # + # libraries which must be linked in when embedding + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra libraries" >&5 +$as_echo_n "checking python extra libraries... " >&6; } + if test -z "$PYTHON_EXTRA_LIBS"; then + PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ + conf = distutils.sysconfig.get_config_var; \ + print (conf('LIBS') + ' ' + conf('SYSLIBS'))"` + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5 +$as_echo "$PYTHON_EXTRA_LIBS" >&6; } + + + # + # linking flags needed when embedding + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra linking flags" >&5 +$as_echo_n "checking python extra linking flags... " >&6; } + if test -z "$PYTHON_EXTRA_LDFLAGS"; then + PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ + conf = distutils.sysconfig.get_config_var; \ + print (conf('LINKFORSHARED'))"` + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LDFLAGS" >&5 +$as_echo "$PYTHON_EXTRA_LDFLAGS" >&6; } + + + # + # final check to see if everything compiles alright + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking consistency of all components of python development environment" >&5 +$as_echo_n "checking consistency of all components of python development environment... " >&6; } + # save current global flags + ac_save_LIBS="$LIBS" + ac_save_CPPFLAGS="$CPPFLAGS" + LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS" + CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include +int +main () +{ +Py_Initialize(); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + pythonexists=yes +else + pythonexists=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 + + # turn back to default flags + CPPFLAGS="$ac_save_CPPFLAGS" + LIBS="$ac_save_LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pythonexists" >&5 +$as_echo "$pythonexists" >&6; } + + if test ! "x$pythonexists" = "xyes"; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? " + Could not link test program to Python. Maybe the main Python library has been + installed in some non-standard library path. If so, pass it to configure, + via the LDFLAGS environment variable. + Example: ./configure LDFLAGS=\"-L/usr/non-standard-path/python/lib\" + ============================================================================ + ERROR! + You probably have to install the development version of the Python package + for your distribution. The exact name of this package varies among them. + ============================================================================ + +See \`config.log' for more details" "$LINENO" 5; } + PYTHON_VERSION="" + fi + + # + # all done! + # + + + # Ubuntu has swig 2.0 as /usr/bin/swig2.0 + for ac_prog in swig swig2.0 +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_path_ac_pt_PKG_CONFIG+set}" = set; then : +if ${ac_cv_path_SWIG+:} false; then : $as_echo_n "(cached) " >&6 else - case $ac_pt_PKG_CONFIG in + case $SWIG in [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -13761,8 +14386,8 @@ 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_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -13773,218 +14398,104 @@ ;; esac fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } +SWIG=$ac_cv_path_SWIG +if test -n "$SWIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5 +$as_echo "$SWIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi - -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5 -$as_echo_n "checking for SNDFILE... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$SNDFILE_CFLAGS"; then - pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile\""; } >&5 - ($PKG_CONFIG --exists --print-errors "sndfile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SNDFILE_CFLAGS=`$PKG_CONFIG --cflags "sndfile" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$SNDFILE_LIBS"; then - pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile\""; } >&5 - ($PKG_CONFIG --exists --print-errors "sndfile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SNDFILE_LIBS=`$PKG_CONFIG --libs "sndfile" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sndfile"` - else - SNDFILE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sndfile"` - fi - # Put the nasty error message in config.log where it belongs - echo "$SNDFILE_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - true -elif test $pkg_failed = untried; then - true -else - SNDFILE_CFLAGS=$pkg_cv_SNDFILE_CFLAGS - SNDFILE_LIBS=$pkg_cv_SNDFILE_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -fi - for ac_header in sndfile.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "sndfile.h" "ac_cv_header_sndfile_h" "$ac_includes_default" -if test "x$ac_cv_header_sndfile_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SNDFILE_H 1 -_ACEOF - -fi + test -n "$SWIG" && break done + if test -z "$SWIG" ; then + as_fn_error $? "swig not found" "$LINENO" 5 + elif test -n "2.0" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking SWIG version" >&5 +$as_echo_n "checking SWIG version... " >&6; } + swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5 +$as_echo "$swig_version" >&6; } + if test -n "$swig_version" ; then + # Calculate the required version number components + required=2.0 + required_major=`echo $required | sed 's/[^0-9].*//'` + if test -z "$required_major" ; then + required_major=0 + fi + required=`echo $required | sed 's/[0-9]*[^0-9]//'` + required_minor=`echo $required | sed 's/[^0-9].*//'` + if test -z "$required_minor" ; then + required_minor=0 + fi + required=`echo $required | sed 's/[0-9]*[^0-9]//'` + required_patch=`echo $required | sed 's/[^0-9].*//'` + if test -z "$required_patch" ; then + required_patch=0 + fi + # Calculate the available version number components + available=$swig_version + available_major=`echo $available | sed 's/[^0-9].*//'` + if test -z "$available_major" ; then + available_major=0 + fi + available=`echo $available | sed 's/[0-9]*[^0-9]//'` + available_minor=`echo $available | sed 's/[^0-9].*//'` + if test -z "$available_minor" ; then + available_minor=0 + fi + available=`echo $available | sed 's/[0-9]*[^0-9]//'` + available_patch=`echo $available | sed 's/[^0-9].*//'` + if test -z "$available_patch" ; then + available_patch=0 + fi + # Convert the version tuple into a single number for easier comparison. + # Using base 100 should be safe since SWIG internally uses BCD values + # to encode its version number. + required_swig_vernum=`expr $required_major \* 10000 \ + \+ $required_minor \* 100 \+ $required_patch` + available_swig_vernum=`expr $available_major \* 10000 \ + \+ $available_minor \* 100 \+ $available_patch` + + if test $available_swig_vernum -lt $required_swig_vernum; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 2.0 is required. You have $swig_version." >&5 +$as_echo "$as_me: WARNING: SWIG version >= 2.0 is required. You have $swig_version." >&2;} + SWIG='' + as_fn_error $? "swig not found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SWIG library" >&5 +$as_echo_n "checking for SWIG library... " >&6; } + SWIG_LIB=`$SWIG -swiglib` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG_LIB" >&5 +$as_echo "$SWIG_LIB" >&6; } -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SAMPLERATE" >&5 -$as_echo_n "checking for SAMPLERATE... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$SAMPLERATE_CFLAGS"; then - pkg_cv_SAMPLERATE_CFLAGS="$SAMPLERATE_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate\""; } >&5 - ($PKG_CONFIG --exists --print-errors "samplerate") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SAMPLERATE_CFLAGS=`$PKG_CONFIG --cflags "samplerate" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$SAMPLERATE_LIBS"; then - pkg_cv_SAMPLERATE_LIBS="$SAMPLERATE_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate\""; } >&5 - ($PKG_CONFIG --exists --print-errors "samplerate") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SAMPLERATE_LIBS=`$PKG_CONFIG --libs "samplerate" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - SAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "samplerate"` - else - SAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "samplerate"` + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5 +$as_echo "$as_me: WARNING: cannot determine SWIG version" >&2;} + SWIG='' + as_fn_error $? "swig not found" "$LINENO" 5 + fi fi - # Put the nasty error message in config.log where it belongs - echo "$SAMPLERATE_PKG_ERRORS" >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - true -elif test $pkg_failed = untried; then - true -else - SAMPLERATE_CFLAGS=$pkg_cv_SAMPLERATE_CFLAGS - SAMPLERATE_LIBS=$pkg_cv_SAMPLERATE_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -fi - for ac_header in samplerate.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "samplerate.h" "ac_cv_header_samplerate_h" "$ac_includes_default" -if test "x$ac_cv_header_samplerate_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SAMPLERATE_H 1 -_ACEOF fi -done + if test "x$SWIG" != "x"; then + BUILD_SWIG_TRUE= + BUILD_SWIG_FALSE='#' +else + BUILD_SWIG_TRUE='#' + BUILD_SWIG_FALSE= fi - - -ac_config_files="$ac_config_files sphinxbase.pc Makefile include/Makefile include/sphinxbase/Makefile python/Makefile python/setup.py src/Makefile src/libsphinxad/Makefile src/libsphinxbase/Makefile src/libsphinxbase/util/Makefile src/libsphinxbase/feat/Makefile src/libsphinxbase/fe/Makefile src/libsphinxbase/lm/Makefile src/sphinx_fe/Makefile src/sphinx_cepview/Makefile src/sphinx_jsgf2fsg/Makefile src/sphinx_adtools/Makefile src/sphinx_lmtools/Makefile doc/Makefile doc/doxyfile test/Makefile test/unit/testfuncs.sh test/unit/Makefile test/unit/test_ad/Makefile test/unit/test_alloc/Makefile test/unit/test_bitvec/Makefile test/unit/test_case/Makefile test/unit/test_string/Makefile test/unit/test_cmdln/Makefile test/unit/test_hash/Makefile test/unit/test_matrix/Makefile test/unit/test_feat/Makefile test/unit/test_fe/Makefile test/unit/test_logmath/Makefile test/unit/test_lineiter/Makefile test/unit/test_ngram/Makefile test/unit/test_fsg/Makefile test/unit/test_thread/Makefile test/unit/test_util/Makefile test/regression/testfuncs.sh test/regression/Makefile" +ac_config_files="$ac_config_files sphinxbase.pc Makefile include/Makefile include/sphinxbase/Makefile src/Makefile src/libsphinxad/Makefile src/libsphinxbase/Makefile src/libsphinxbase/util/Makefile src/libsphinxbase/feat/Makefile src/libsphinxbase/fe/Makefile src/libsphinxbase/lm/Makefile src/sphinx_fe/Makefile src/sphinx_cepview/Makefile src/sphinx_jsgf2fsg/Makefile src/sphinx_adtools/Makefile src/sphinx_lmtools/Makefile doc/Makefile doc/doxyfile test/Makefile test/unit/testfuncs.sh test/unit/Makefile test/unit/test_alloc/Makefile test/unit/test_bitvec/Makefile test/unit/test_case/Makefile test/unit/test_string/Makefile test/unit/test_cmdln/Makefile test/unit/test_hash/Makefile test/unit/test_matrix/Makefile test/unit/test_feat/Makefile test/unit/test_fe/Makefile test/unit/test_logmath/Makefile test/unit/test_lineiter/Makefile test/unit/test_ngram/Makefile test/unit/test_fsg/Makefile test/unit/test_thread/Makefile test/unit/test_util/Makefile test/regression/testfuncs.sh test/regression/Makefile swig/Makefile swig/python/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -14050,10 +14561,21 @@ :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" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -14069,6 +14591,7 @@ ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' @@ -14083,6 +14606,14 @@ LTLIBOBJS=$ac_ltlibobjs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -14092,48 +14623,44 @@ fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error "conditional \"AMDEP\" was never defined. + as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error "conditional \"am__fastdepCC\" was never defined. + 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__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error "conditional \"am__fastdepCC\" was never defined. + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LAPACK_LITE_TRUE}" && test -z "${LAPACK_LITE_FALSE}"; then - as_fn_error "conditional \"LAPACK_LITE\" was never defined. + as_fn_error $? "conditional \"LAPACK_LITE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_LAPACK_TRUE}" && test -z "${USE_LAPACK_FALSE}"; then - as_fn_error "conditional \"USE_LAPACK\" was never defined. + as_fn_error $? "conditional \"USE_LAPACK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_THREADS_TRUE}" && test -z "${USE_THREADS_FALSE}"; then - as_fn_error "conditional \"USE_THREADS\" was never defined. + as_fn_error $? "conditional \"USE_THREADS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${FIXED_POINT_TRUE}" && test -z "${FIXED_POINT_FALSE}"; then - as_fn_error "conditional \"FIXED_POINT\" was never defined. + as_fn_error $? "conditional \"FIXED_POINT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${BUILD_DOXYGEN_TRUE}" && test -z "${BUILD_DOXYGEN_FALSE}"; then - as_fn_error "conditional \"BUILD_DOXYGEN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BUILD_PYTHON_TRUE}" && test -z "${BUILD_PYTHON_FALSE}"; then - as_fn_error "conditional \"BUILD_PYTHON\" was never defined. + as_fn_error $? "conditional \"BUILD_DOXYGEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${BUILD_CYTHON_TRUE}" && test -z "${BUILD_CYTHON_FALSE}"; then - as_fn_error "conditional \"BUILD_CYTHON\" was never defined. +if test -z "${BUILD_SWIG_TRUE}" && test -z "${BUILD_SWIG_FALSE}"; then + as_fn_error $? "conditional \"BUILD_SWIG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -14234,6 +14761,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14279,19 +14807,19 @@ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# 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 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -14429,16 +14957,16 @@ # ... 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'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -14487,7 +15015,7 @@ 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" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -14498,28 +15026,16 @@ 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 + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -14540,8 +15056,8 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sphinxbase $as_me 0.8, which was -generated by GNU Autoconf 2.65. Invocation command line was +This file was extended by sphinxbase $as_me 5prealpha, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -14606,11 +15122,11 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -sphinxbase config.status 0.8 -configured by $0, generated by GNU Autoconf 2.65, +sphinxbase config.status 5prealpha +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -14628,11 +15144,16 @@ while test $# != 0 do case $1 in - --*=*) + --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; *) ac_option=$1 ac_optarg=$2 @@ -14654,6 +15175,7 @@ $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; @@ -14666,7 +15188,7 @@ ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - as_fn_error "ambiguous option: \`$1' + as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; @@ -14675,7 +15197,7 @@ ac_cs_silent=: ;; # This is an error. - -*) as_fn_error "unrecognized option: \`$1' + -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" @@ -14695,7 +15217,7 @@ _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 + 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' @@ -14729,131 +15251,154 @@ 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"`' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + # Quote evaled strings. -for var in SED \ +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ GREP \ EGREP \ FGREP \ @@ -14866,8 +15411,13 @@ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ +archiver_list_spec \ STRIP \ RANLIB \ CC \ @@ -14877,14 +15427,14 @@ 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 \ +nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_wl \ lt_prog_compiler_pic \ +lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ +MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ @@ -14898,9 +15448,7 @@ 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 \ @@ -14908,12 +15456,13 @@ libname_spec \ library_names_spec \ soname_spec \ +install_override_mode \ finish_eval \ old_striplib \ striplib; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -14935,14 +15484,15 @@ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ +postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -14950,12 +15500,6 @@ 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' @@ -14992,8 +15536,6 @@ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "include/sphinxbase/Makefile") CONFIG_FILES="$CONFIG_FILES include/sphinxbase/Makefile" ;; - "python/Makefile") CONFIG_FILES="$CONFIG_FILES python/Makefile" ;; - "python/setup.py") CONFIG_FILES="$CONFIG_FILES python/setup.py" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/libsphinxad/Makefile") CONFIG_FILES="$CONFIG_FILES src/libsphinxad/Makefile" ;; "src/libsphinxbase/Makefile") CONFIG_FILES="$CONFIG_FILES src/libsphinxbase/Makefile" ;; @@ -15011,7 +15553,6 @@ "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/unit/testfuncs.sh") CONFIG_FILES="$CONFIG_FILES test/unit/testfuncs.sh" ;; "test/unit/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/Makefile" ;; - "test/unit/test_ad/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/test_ad/Makefile" ;; "test/unit/test_alloc/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/test_alloc/Makefile" ;; "test/unit/test_bitvec/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/test_bitvec/Makefile" ;; "test/unit/test_case/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/test_case/Makefile" ;; @@ -15029,8 +15570,10 @@ "test/unit/test_util/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/test_util/Makefile" ;; "test/regression/testfuncs.sh") CONFIG_FILES="$CONFIG_FILES test/regression/testfuncs.sh" ;; "test/regression/Makefile") CONFIG_FILES="$CONFIG_FILES test/regression/Makefile" ;; + "swig/Makefile") CONFIG_FILES="$CONFIG_FILES swig/Makefile" ;; + "swig/python/Makefile") CONFIG_FILES="$CONFIG_FILES swig/python/Makefile" ;; - *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -15053,9 +15596,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -15063,12 +15607,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -15085,12 +15630,12 @@ 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' + ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -15099,18 +15644,18 @@ 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 '$'` + 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 + 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 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -15118,7 +15663,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -15166,7 +15711,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -15198,21 +15743,29 @@ 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 +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi @@ -15224,7 +15777,7 @@ # 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 || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -15236,11 +15789,11 @@ # 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 + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -15325,7 +15878,7 @@ _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error "could not setup config headers machinery" "$LINENO" 5 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" @@ -15338,7 +15891,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -15357,7 +15910,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -15366,7 +15919,7 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -15392,8 +15945,8 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -15529,23 +16082,24 @@ 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 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 +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;} +which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # @@ -15554,21 +16108,21 @@ 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 + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error "could not create -" "$LINENO" 5 + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" @@ -15614,7 +16168,7 @@ 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 + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -15627,7 +16181,7 @@ # 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 + # 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. @@ -15661,21 +16215,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # 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 + 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 + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || @@ -15729,7 +16281,8 @@ # 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. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -15777,6 +16330,15 @@ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + # The host system. host_alias=$host_alias host=$host @@ -15826,9 +16388,11 @@ # turn newlines into spaces. NL2SP=$lt_lt_NL2SP -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP @@ -15836,13 +16400,30 @@ # 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". +# Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + # The archiver. AR=$lt_AR + +# Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + # A symbol stripping program. STRIP=$lt_STRIP @@ -15851,6 +16432,9 @@ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + # A C compiler. LTCC=$lt_CC @@ -15869,14 +16453,14 @@ # 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 +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot -# An echo program that does not interpret backslashes. -ECHO=$lt_ECHO +# The name of the directory that contains temporary libtool files. +objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD @@ -15884,6 +16468,9 @@ # Must we lock files when doing compilation? need_locks=$lt_need_locks +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL @@ -15940,6 +16527,9 @@ # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds @@ -15979,6 +16569,10 @@ # The linker used to build libraries. LD=$lt_LD +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds @@ -15991,12 +16585,12 @@ # 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 +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static @@ -16046,10 +16640,6 @@ # 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 @@ -16083,9 +16673,6 @@ # 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 @@ -16101,6 +16688,9 @@ # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + # Specify filename containing input files. file_list_spec=$lt_file_list_spec @@ -16133,212 +16723,169 @@ # 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 '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - mv -f "$cfgfile" "$ofile" || + mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" @@ -16353,7 +16900,7 @@ ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -16374,7 +16921,7 @@ 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 $? + $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 diff -Nru sphinxbase-0.8/configure.ac sphinxbase-0.8+5prealpha/configure.ac --- sphinxbase-0.8/configure.ac 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/configure.ac 2015-05-01 21:25:45.000000000 +0000 @@ -0,0 +1,239 @@ +dnl Welcome to the Sphinx automated build system. +dnl try not to hurt yourself ;) + +AC_INIT([sphinxbase], 5prealpha) +AC_CONFIG_HEADERS([include/config.h include/sphinx_config.h]) +AM_INIT_AUTOMAKE([no-define foreign]) +AC_CONFIG_MACRO_DIR([m4]) + +CFLAGS=${CFLAGS:--g -O2 -Wall} + +AC_CANONICAL_HOST +AC_ISC_POSIX +AC_PROG_CC +AC_PROG_CC_STDC + +LT_INIT + +# We don't bother ourselves with flex checks until the rest of the world has an up-to-date Flex +# We need specific bison extensions, so check for bison +AC_CHECK_PROG(YACC, bison, [bison -y], no) +if test "x$YACC" = "xno"; +then + AC_MSG_ERROR([You need to install bison]) +fi +AC_ARG_VAR(YACC,[Bison command]) + +AC_HEADER_STDC +AC_C_BIGENDIAN +AC_TYPE_SIGNAL +AC_CHECK_TYPES(long long) +AC_CHECK_SIZEOF(long long) +AC_CHECK_SIZEOF(long) +AC_CHECK_FUNCS([popen perror snprintf]) +AC_CHECK_HEADER(errno.h) + +dnl +dnl Check for Lapack stuff unless disabled +dnl +use_lapack=true +use_internal_lapack=false +AC_ARG_WITH(lapack, + AS_HELP_STRING([--without-lapack], + [Disable matrix algebra support (depends on LAPACK)]),[ +if test x$withval = xno; then + use_lapack=false +fi +]) +if test x$use_lapack = xtrue; then + AC_CHECK_LIB(lapack, sgesv_,,use_internal_lapack=true) + if test x$use_internal_lapack != xtrue; then + AC_CHECK_LIB(blas, sgemm_,,use_internal_lapack=true) + fi + AC_DEFINE(WITH_LAPACK, [], [Enable matrix algebra with LAPACK]) +fi +AM_CONDITIONAL(LAPACK_LITE, test x$use_internal_lapack = xtrue) +AM_CONDITIONAL(USE_LAPACK, test x$use_lapack = xtrue) + +dnl +dnl Just make sure we have this... +dnl +AC_CHECK_LIB(m, log) + +dnl +dnl Enable thread-safe versions of some internal functions +dnl +threadsafe=auto +AC_ARG_ENABLE(threads, + AS_HELP_STRING([--disable-threads], + [Disable thread-safe versions of memory allocation functions (default: check)]),[ +if test x$enableval != x; then + threadsafe=$enableval +fi +]) +if test x$threadsafe != xno; then + threads=false + dnl + dnl Can't seem to check for Windows API functions, but that's okay + dnl because we know they will be there... + dnl + case $host in + *cygwin*|*mingw*|*wince*) + threads=true + ;; + *) + AC_CHECK_HEADERS([pthread.h], [threads=true]) + AC_CHECK_LIB(pthread, pthread_create) + ;; + esac + if test x$threads = xtrue; then + AC_DEFINE(ENABLE_THREADS, [], [Enable thread safety]) + threadsafe=yes + elif test x$threadsafe = xyes; then + AC_MSG_ERROR(--enable-threads was given but test for thread functions failed!) + else + threadsafe=no + fi +fi +AM_CONDITIONAL(USE_THREADS, test x$threadsafe = xyes) + +dnl +dnl Allow compilation for fixed or floating-point MFCC and GMM computation +dnl +fixed_point=false +AC_ARG_ENABLE(fixed, + AS_HELP_STRING([--enable-fixed=RADIX], + [Use 32-bit fixed-point for MFCC and GMM computation, + optionally specifying a radix point]),[ +if test x$enableval = xyes; then + AC_DEFINE(FIXED_POINT) + fixed_point=true +else + AC_DEFINE(FIXED_POINT, [], [Use fixed-point computation]) + AC_DEFINE_UNQUOTED(DEFAULT_RADIX,$enableval,[Default radix point for fixed-point]) +fi]) +AM_CONDITIONAL(FIXED_POINT, test x$fixed_point = xtrue) + +dnl +dnl Enable debugging +dnl +AC_ARG_ENABLE(debug, + AS_HELP_STRING([--enable-debug], + [Enable debugging output]), + AC_DEFINE(SPHINX_DEBUG, [], + [Enable debugging output])) + +dnl +dnl determine audio type or use none if none supported on this platform +dnl +case $host in + *-*-linux*|*-*-uclinux*|*-*-freebsd*|*-*-netbsd*|*-*-openbsd*) + # Check for PulseAudio, JACK, then fallback ALSA, then fall back to OSS + AC_CHECK_HEADER(pulse/pulseaudio.h,[ + ad_files="ad_pulse.lo" + AC_CHECK_LIB(pulse-simple, pa_simple_new) + AC_CHECK_LIB(pulse, pa_strerror) + ],[ + AC_CHECK_HEADER(jack/jack.h,[ + ad_files="ad_jack.lo" + AC_CHECK_LIB(jack, jack_connect)],[ + AC_CHECK_HEADER(alsa/asoundlib.h,[ + ad_files="ad_alsa.lo" + ad_backend="AD_BACKEND_ALSA" + AC_CHECK_LIB(asound, snd_pcm_open)],[ + ad_files="ad_oss.lo" + ]) + ]) + ]) + ;; + *-*-*cygwin*|*-*-*mingw*) + ad_files="ad_win32.lo" + ad_libs="-lwinmm" + ;; + *-apple-*darwin*) + sdkparam=`xcodebuild -showsdks | awk '/^$/{p=0};p; /OS X SDKs:/{p=1}' | tail -1 | cut -f3` + sdkpath=`xcodebuild -version $sdkparam Path` + ad_cppflags="-I$sdkpath/System/Library/Frameworks/OpenAL.framework/Versions/A/Headers/" + backup_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ad_cppflags" + AC_CHECK_HEADER("alc.h", [], AC_MSG_ERROR([OpenAL not found])) + CPPFLAGS="$backup_CPPFLAGS" + ad_files="ad_openal.lo" + ad_libs="-framework OpenAL" + ;; + *) + ad_files="ad_base.lo" + AC_MSG_RESULT([No audio interface for host type $host.]) + ;; +esac + +AC_SUBST(ad_cppflags) +AC_SUBST(ad_files) +AC_SUBST(ad_libs) + +dnl +dnl Check for Doxygen, and build dox if present +dnl +AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, yes, no) +AM_CONDITIONAL(BUILD_DOXYGEN, test "x$HAVE_DOXYGEN" = "xyes") + + +dnl Check for SWIG and Python +AC_ARG_WITH(python, + AS_HELP_STRING([--with-python], + [Enable Python extension, built with swig, enabled by default])) + +if test "x${with_python}" != "xno"; then + AM_PATH_PYTHON([2.6]) + AX_PYTHON_DEVEL() + AX_PKG_SWIG(2.0, [], [AC_MSG_ERROR([swig not found])]) +fi + +AC_SUBST([PYTHON_CPPFLAGS]) +AM_CONDITIONAL(BUILD_SWIG, test "x$SWIG" != "x") +dnl swig python check + + +AC_CONFIG_FILES([ +sphinxbase.pc +Makefile +include/Makefile +include/sphinxbase/Makefile +src/Makefile +src/libsphinxad/Makefile +src/libsphinxbase/Makefile +src/libsphinxbase/util/Makefile +src/libsphinxbase/feat/Makefile +src/libsphinxbase/fe/Makefile +src/libsphinxbase/lm/Makefile +src/sphinx_fe/Makefile +src/sphinx_cepview/Makefile +src/sphinx_jsgf2fsg/Makefile +src/sphinx_adtools/Makefile +src/sphinx_lmtools/Makefile +doc/Makefile +doc/doxyfile +test/Makefile +test/unit/testfuncs.sh +test/unit/Makefile +test/unit/test_alloc/Makefile +test/unit/test_bitvec/Makefile +test/unit/test_case/Makefile +test/unit/test_string/Makefile +test/unit/test_cmdln/Makefile +test/unit/test_hash/Makefile +test/unit/test_matrix/Makefile +test/unit/test_feat/Makefile +test/unit/test_fe/Makefile +test/unit/test_logmath/Makefile +test/unit/test_lineiter/Makefile +test/unit/test_ngram/Makefile +test/unit/test_fsg/Makefile +test/unit/test_thread/Makefile +test/unit/test_util/Makefile +test/regression/testfuncs.sh +test/regression/Makefile +swig/Makefile +swig/python/Makefile +]) +AC_OUTPUT diff -Nru sphinxbase-0.8/configure.in sphinxbase-0.8+5prealpha/configure.in --- sphinxbase-0.8/configure.in 2012-12-12 17:28:32.000000000 +0000 +++ sphinxbase-0.8+5prealpha/configure.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,324 +0,0 @@ -dnl Welcome to the Sphinx automated build system. -dnl try not to hurt yourself ;) - -AC_INIT([sphinxbase], 0.8) -AC_CONFIG_HEADERS([include/config.h include/sphinx_config.h]) -AM_INIT_AUTOMAKE([no-define]) -AC_CONFIG_MACRO_DIR([m4]) - -CFLAGS=${CFLAGS:--g -O2 -Wall} - -AC_CANONICAL_HOST - -dnl -dnl Set proper compiler flags and such for some platforms -dnl -case $host in - arm-wince-pe*) - CFLAGS=${CFLAGS:--march=armv4 -mapcs-32 -malignment-traps} - LIBS='-lc -lgcc -lwinsock -lcoredll' - CFLAGS="$CFLAGS -DNEWLIB -DSARM -DWIN32 -DGNUWINCE" - ;; - *uclinux*) - # uClinux needs special "flat" binaries - LDFLAGS="$LDFLAGS -Wl,-elf2flt" - ;; - *) - ;; -esac - -AC_ISC_POSIX -AC_PROG_CC -AC_PROG_CC_STDC - -# We don't bother ourselves with flex checks until the rest of the world has an up-to-date Flex -# We need specific bison extensions, so check for bison -AC_CHECK_PROG(YACC, bison, [bison -y], no) -if test "x$YACC" = "xno"; -then - AC_MSG_ERROR([You need to install bison]) -fi -AC_ARG_VAR(YACC,[Bison command]) - -AC_HEADER_STDC -AC_C_BIGENDIAN -AC_TYPE_SIGNAL -AC_CHECK_TYPES(long long) -AC_CHECK_SIZEOF(long long) -AC_CHECK_SIZEOF(long) -AC_CHECK_FUNCS([popen perror snprintf]) -AC_CHECK_HEADER(errno.h) -AM_ICONV - -dnl -dnl Check for Lapack stuff unless disabled -dnl -use_lapack=true -use_internal_lapack=false -AC_ARG_WITH(lapack, - AS_HELP_STRING([--without-lapack], - [Disable matrix algebra support (depends on LAPACK)]),[ -if test x$withval = xno; then - use_lapack=false -fi -]) -if test x$use_lapack = xtrue; then - AC_CHECK_LIB(lapack, sgesv_,,use_internal_lapack=true) - if test x$use_internal_lapack != xtrue; then - AC_CHECK_LIB(blas, sgemm_,,use_internal_lapack=true) - fi - AC_DEFINE(WITH_LAPACK, [], [Enable matrix algebra with LAPACK]) -fi -AM_CONDITIONAL(LAPACK_LITE, test x$use_internal_lapack = xtrue) -AM_CONDITIONAL(USE_LAPACK, test x$use_lapack = xtrue) - -dnl -dnl Just make sure we have this... -dnl -AC_CHECK_LIB(m, log) - -dnl -dnl Enable thread-safe versions of some internal functions -dnl -threadsafe=auto -AC_ARG_ENABLE(threads, - AS_HELP_STRING([--disable-threads], - [Disable thread-safe versions of memory allocation functions (default: check)]),[ -if test x$enableval != x; then - threadsafe=$enableval -fi -]) -if test x$threadsafe != xno; then - threads=false - dnl - dnl Can't seem to check for Windows API functions, but that's okay - dnl because we know they will be there... - dnl - case $host in - *cygwin*|*mingw*|*wince*) - threads=true - ;; - *) - AC_CHECK_HEADERS([pthread.h], [threads=true]) - AC_CHECK_LIB(pthread, pthread_create) - ;; - esac - if test x$threads = xtrue; then - AC_DEFINE(ENABLE_THREADS, [], [Enable thread safety]) - threadsafe=yes - elif test x$threadsafe = xyes; then - AC_MSG_ERROR(--enable-threads was given but test for thread functions failed!) - else - threadsafe=no - fi -fi -AM_CONDITIONAL(USE_THREADS, test x$threadsafe = xyes) - -dnl -dnl Allow compilation for fixed or floating-point MFCC and GMM computation -dnl -fixed_point=false -AC_ARG_ENABLE(fixed, - AS_HELP_STRING([--enable-fixed=RADIX], - [Use 32-bit fixed-point for MFCC and GMM computation, - optionally specifying a radix point]),[ -if test x$enableval = xyes; then - AC_DEFINE(FIXED_POINT) - fixed_point=true -else - AC_DEFINE(FIXED_POINT, [], [Use fixed-point computation]) - AC_DEFINE_UNQUOTED(DEFAULT_RADIX,$enableval,[Default radix point for fixed-point]) -fi]) -AM_CONDITIONAL(FIXED_POINT, test x$fixed_point = xtrue) - -dnl -dnl Enable 16-bit fixed-point (Q15) format for MFCC (less accurate, more fast) -dnl -AC_ARG_ENABLE(fixed16, - AS_HELP_STRING([--enable-fixed16], - [Use 16-bit fixed-point for MFCC computation]),[ -if test x$enableval = xyes; then - AC_DEFINE(FIXED_POINT, [], [Use fixed-point computation]) - AC_DEFINE(FIXED16, [], [Use Q15 fixed-point computation]) -fi]) - -dnl -dnl Enable debugging -dnl -AC_ARG_ENABLE(debug, - AS_HELP_STRING([--enable-debug], - [Enable debugging output]), - AC_DEFINE(SPHINX_DEBUG, [], - [Enable debugging output])) - -dnl -dnl determine audio type or use none if none supported on this platform -dnl -case $host in - *-*-linux*|*-*-uclinux*|*-*-freebsd*|*-*-netbsd*|*-*-openbsd*) - # Check for PulseAudio, JACK, then fallback ALSA, then fall back to OSS - AC_CHECK_HEADER(pulse/pulseaudio.h,[ - AC_DEFINE(AD_BACKEND_PULSEAUDIO, [], - [Use PulseAudio library for sound I/O]) - ad_files="ad_pulse.lo" - ad_backend="AD_BACKEND_PULSEAUDIO" - AC_CHECK_LIB(pulse-simple, pa_simple_new) - AC_CHECK_LIB(pulse, pa_strerror) - ],[ - AC_CHECK_HEADER(jack/jack.h,[ - AC_DEFINE(AD_BACKEND_JACK, [], - [Use Jack library for sound I/O]) - ad_files="ad_jack.lo" - ad_backend="AD_BACKEND_JACK" - AC_CHECK_LIB(jack, jack_connect)],[ - AC_CHECK_HEADER(alsa/asoundlib.h,[ - AC_DEFINE(AD_BACKEND_ALSA, [], - [Use ALSA library for sound I/O]) - ad_files="ad_alsa.lo" - ad_backend="AD_BACKEND_ALSA" - AC_CHECK_LIB(asound, snd_pcm_open)],[ - AC_DEFINE(AD_BACKEND_OSS, [], - [Use OSS for sound I/O]) - ad_files="ad_oss.lo" - ad_backend="AD_BACKEND_OSS" - ]) - ]) - ]) - ;; - *-*-*cygwin*|*-*-*mingw*) - ad_files="play_win32.lo rec_win32.lo" - ad_libs="-lwinmm" - ad_backend="AD_BACKEND_WIN32" - AC_DEFINE(AD_BACKEND_WIN32, [], [Use WinMM interface for sound I/O]) - ;; - *) - ad_files="ad_base.lo" - ad_backend="AD_BACKEND_NONE" - AC_MSG_RESULT([No audio interface for host type $host.]) - AC_DEFINE(AD_BACKEND_NONE, [], [No interface for sound I/O]) - ;; -esac - -AC_SUBST(ad_files) -AC_SUBST(ad_libs) -AC_SUBST(ad_backend) - -AM_PROG_LIBTOOL - -dnl -dnl Check for Doxygen, and build dox if present -dnl -AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, yes, no) -AM_CONDITIONAL(BUILD_DOXYGEN, test "x$HAVE_DOXYGEN" = "xyes") - -dnl -dnl Check for Python, and build python module if present -dnl -use_python=true -PYTHON=python -AC_ARG_WITH(python, - AS_HELP_STRING([--without-python], - [Disable Python extension]),[ -if test x$withval = xno; then - use_python=false - PYTHON=bogus -elif test x$withval = xyes; then - # No specific python binary was given, so check for it in PATH - use_python=true - PYTHON=python -else - # A python was given, assume it is in the user's PATH or is fully qualified - use_python=true - PYTHON="$withval" - PYTHON_CONFIG="$withval"-config -fi -]) -if test "x$use_python" = xtrue -a "x$PYTHON" = xpython; then - AC_PATH_PROG(PYTHON, python, bogus) - AC_PATH_PROG(PYTHON_CONFIG, python-config, bogus) -fi -if test "x$use_python" = xtrue -a "x$PYTHON" != xbogus -a "x$PYTHON_CONFIG" != xbogus; then - PYTHON_INCLUDES=`"$PYTHON_CONFIG" --includes` - CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" - AC_CHECK_HEADER(Python.h,use_python=true,use_python=false) -else - use_python=false - PYTHON=bogus -fi -if test "x$use_python" != xtrue ; then - AC_WARN([Disabling python since development headers were not found]) -fi -AM_CONDITIONAL(BUILD_PYTHON, test "x$use_python" = "xtrue") -AC_SUBST(PYTHON) - -dnl -dnl Check for Cython, and rebuild python module if present -dnl -if test "x$PYTHON" != xbogus; then - AC_CHECK_PROG(HAVE_CYTHON, cython, yes, no) -fi -AM_CONDITIONAL(BUILD_CYTHON, test "x$HAVE_CYTHON" = "xyes") - -dnl -dnl Check for pkgconfig -dnl -AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, yes, no) - -dnl -dnl Check for libsndfile -dnl -if test "x$HAVE_PKGCONFIG" = "xyes"; then - PKG_CHECK_MODULES(SNDFILE,sndfile,,true) - AC_CHECK_HEADERS([sndfile.h]) - PKG_CHECK_MODULES(SAMPLERATE,samplerate,,true) - AC_CHECK_HEADERS([samplerate.h]) -fi -AC_SUBST(SNDFILE_LIBS) -AC_SUBST(SNDFILE_CFLAGS) -AC_SUBST(SAMPLERATE_LIBS) -AC_SUBST(SAMPLERATE_CFLAGS) - -AC_CONFIG_FILES([ -sphinxbase.pc -Makefile -include/Makefile -include/sphinxbase/Makefile -python/Makefile -python/setup.py -src/Makefile -src/libsphinxad/Makefile -src/libsphinxbase/Makefile -src/libsphinxbase/util/Makefile -src/libsphinxbase/feat/Makefile -src/libsphinxbase/fe/Makefile -src/libsphinxbase/lm/Makefile -src/sphinx_fe/Makefile -src/sphinx_cepview/Makefile -src/sphinx_jsgf2fsg/Makefile -src/sphinx_adtools/Makefile -src/sphinx_lmtools/Makefile -doc/Makefile -doc/doxyfile -test/Makefile -test/unit/testfuncs.sh -test/unit/Makefile -test/unit/test_ad/Makefile -test/unit/test_alloc/Makefile -test/unit/test_bitvec/Makefile -test/unit/test_case/Makefile -test/unit/test_string/Makefile -test/unit/test_cmdln/Makefile -test/unit/test_hash/Makefile -test/unit/test_matrix/Makefile -test/unit/test_feat/Makefile -test/unit/test_fe/Makefile -test/unit/test_logmath/Makefile -test/unit/test_lineiter/Makefile -test/unit/test_ngram/Makefile -test/unit/test_fsg/Makefile -test/unit/test_thread/Makefile -test/unit/test_util/Makefile -test/regression/testfuncs.sh -test/regression/Makefile -]) -AC_OUTPUT diff -Nru sphinxbase-0.8/COPYING sphinxbase-0.8+5prealpha/COPYING --- sphinxbase-0.8/COPYING 2012-12-05 14:04:48.000000000 +0000 +++ sphinxbase-0.8+5prealpha/COPYING 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ -main copyright: - -/* ==================================================================== - * Copyright (c) 1999-2011 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ - -dtoa.c: -/**************************************************************** - * - * The author of this software is David M. Gay. - * - * Copyright (c) 1991, 2000, 2001 by Lucent Technologies. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software and in all copies of the supporting - * documentation for such software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY - * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY - * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - ***************************************************************/ - -utf8.c: - -/************************************************************** - * - * Copyright (c) 2008-2009 Bjoern Hoehrmann - * - * 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. - * - ***************************************************************/ diff -Nru sphinxbase-0.8/debian/changelog sphinxbase-0.8+5prealpha/debian/changelog --- sphinxbase-0.8/debian/changelog 2013-12-22 15:05:41.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/changelog 2015-12-22 05:59:45.000000000 +0000 @@ -1,101 +1,86 @@ -sphinxbase (0.8-0ubuntu10) trusty; urgency=medium +sphinxbase (0.8+5prealpha-2ubuntu1) xenial; urgency=medium - * Patch m4/libtool.m4 and configure to support ppc64el. + * Build-depend on libpulse-dev instead of libasound2-dev, and remove it from + Build-Conflicts. + * Have libsphinxbase-dev depend on libpulse-dev instead of libasound2-dev. - -- Matthias Klose Sun, 22 Dec 2013 16:05:18 +0100 + -- Logan Rosen Tue, 22 Dec 2015 00:45:02 -0500 -sphinxbase (0.8-0ubuntu9) saucy; urgency=low +sphinxbase (0.8+5prealpha-2) unstable; urgency=medium - * Use dh_autotools-dev to update config.{sub,guess} for AArch64. + * patches/non-linux: Fix build on non-Linux. + * patches/float: Fix bogus float type. - -- Matthias Klose Thu, 10 Oct 2013 18:23:52 +0200 + -- Samuel Thibault Mon, 26 Oct 2015 19:35:12 +0100 -sphinxbase (0.8-0ubuntu8) saucy; urgency=low +sphinxbase (0.8+5prealpha-1) unstable; urgency=medium - * debian/patches/approximate_tests: - - Backport patch from Debian's packaging to relax test checks a bit, - fixing FTBFS on i386 due to newer glib float handling. - * debian/rules: - - Disable tests on powerpc, fixing FTBFS on powerpc. - - -- Michael Terry Wed, 03 Jul 2013 09:51:56 -0400 - -sphinxbase (0.8-0ubuntu7) saucy; urgency=low - - * debian/rules: - - Run tests during builds - - -- Michael Terry Thu, 06 Jun 2013 13:08:52 -0400 - -sphinxbase (0.8-0ubuntu6) saucy; urgency=low - - [ Lukasz 'sil2100' Zemczak ] - * debian/control, debian/rules: - - Switch from python-support to dh_python2 - * Remove debian/pycompat - - [ Didier Roche ] - * Don't install the .la files - - -- Didier Roche Thu, 06 Jun 2013 18:22:31 +0200 - -sphinxbase (0.8-0ubuntu5) raring; urgency=low - - * Stop building with --enable-fixed on ARM, to resolve sphinx3 FTBFS. - - -- Adam Conrad Tue, 23 Apr 2013 08:34:23 -0600 - -sphinxbase (0.8-0ubuntu4) raring; urgency=low - - * Patch pulse driver to improve recognition latency (lp: #1132927). - - This patch has also been accepted upstream. - - -- Pete Woods Wed, 27 Feb 2013 10:23:36 +0000 - -sphinxbase (0.8-0ubuntu2) raring; urgency=low + * New upstream release. + - Add swig-sphinxbase package. + - Remove python-sphinxbase-dbg package. + - Rename libsphinxbase1 package to libsphinxbase3 according to soname + bump. + - patches/approximate_tests: Drop. + - patches/autoreconf: Merged. + - patches/spurious-link: Refresh. + - patches/tests: Merged. + - control: Replace cython with swig. Add dh-python build-dep. Drop + multiarch-support pre-depend. + - rules: Remove ad-hoc python rules. + - python-sphinxbase.install: Install files. + - debian/sphinx_lm_eval.1: Merged. + * Ignore testsuite failure on hppa too, as it is big-endian too + (Closes: #759743). + * Bump Standards-Version to 3.9.6 (no changes). - * Add libpulse as a dependency. (lp: #1112404) - * Remove --with-alsa flag from build rules. + -- Samuel Thibault Sat, 24 Oct 2015 16:22:20 +0200 - -- Pete Woods Fri, 01 Feb 2013 11:30:35 +0000 +sphinxbase (0.8-6) unstable; urgency=medium -sphinxbase (0.8-0ubuntu1) raring; urgency=low + * patches/autoreconf: Fix Makefile.am into not using $(srcdir). + * patches/tests: Fix enabling tests. + * Use dh-autoreconf (Closes: #727272) - * New upstream release. - * debian/control: - - Add bison to Build-Depends. - - Bump Standards-Version to 3.9.4. - * debian/libsphinxbase1.symbols: Update with new symbols. + -- Samuel Thibault Fri, 22 Aug 2014 00:04:19 +0200 - -- Logan Rosen Tue, 08 Jan 2013 00:54:22 -0500 +sphinxbase (0.8-5) unstable; urgency=medium -sphinxbase (0.4.1-0ubuntu4) precise; urgency=low + * debian/control: Switch to ALSA, blacklist pulseaudio and jack + (Closes: #737754). - * Rebuild to drop python2.6 dependencies and provides. + -- Samuel Thibault Sun, 09 Feb 2014 23:22:42 +0100 - -- Matthias Klose Sat, 14 Apr 2012 13:45:35 +0000 +sphinxbase (0.8-4) unstable; urgency=low -sphinxbase (0.4.1-0ubuntu3) oneiric; urgency=low + * Bump Standards-Version to 3.9.5 (no changes). + * Ignore testsuite result on big-endian archs. They are supposed to be + supported, just seemingly have some (already reported) bugs + (Closes: #734215). - * Update watch file. - * Lintian cleanup. Bump Standards-Version to 3.9.2. - * Use source format 3.0 (quilt). - * Remove useless index.html file. - * Drop changes to python/setup.py.in because setuptools aren't available - during the build process anyway. + -- Samuel Thibault Sun, 05 Jan 2014 03:05:54 +0100 - -- Ilya Barygin Sat, 03 Sep 2011 16:11:37 +0400 +sphinxbase (0.8-3) unstable; urgency=low -sphinxbase (0.4.1-0ubuntu2) natty; urgency=low + * Add libsphinxbase-doc package containing the documentation + (Closes: #709601). + * rules: + - Make includedir arch-specific (Closes: #709601). + - Pass --install-layout=deb to setup.py. + * patches/approximate_tests: Relax tests a bit (Closes: #711550). - * Rebuild to add support for python 2.7. + -- Samuel Thibault Sun, 30 Jun 2013 22:06:30 +0200 - -- Matthias Klose Fri, 03 Dec 2010 00:14:52 +0000 +sphinxbase (0.8-2) unstable; urgency=low -sphinxbase (0.4.1-0ubuntu1) karmic; urgency=low + * control: Make libsphinxbase-dev Multi-Arch: same. + * Remove useless README file. + * rules: remove python/sphinxbase.c on clean to make it regenerated with + fixed cython (Closes: #706664) - * Initial release (LP: #134925). + -- Samuel Thibault Thu, 23 May 2013 01:07:47 +0200 - -- Michael Nelson Wed, 19 Aug 2009 12:12:23 +0200 +sphinxbase (0.8-1) unstable; urgency=low + * Initial release (Closes: #697151) + -- Samuel Thibault Fri, 04 Jan 2013 17:00:31 +0100 diff -Nru sphinxbase-0.8/debian/compat sphinxbase-0.8+5prealpha/debian/compat --- sphinxbase-0.8/debian/compat 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/compat 2013-01-01 23:48:25.000000000 +0000 @@ -1 +1 @@ -5 +8 diff -Nru sphinxbase-0.8/debian/control sphinxbase-0.8+5prealpha/debian/control --- sphinxbase-0.8/debian/control 2013-10-10 16:23:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/control 2015-12-22 06:00:01.000000000 +0000 @@ -1,66 +1,78 @@ Source: sphinxbase Priority: optional Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: David Huggins-Daines -Build-Depends: debhelper (>= 5), autotools-dev, libasound2-dev, gettext, - python-all-dev (>= 2.6.6-3~), python-all-dbg (>= 2.6.6-3~), bison, libpulse-dev, autotools-dev -Standards-Version: 3.9.4 -X-Python-Version: >= 2.4 -Section: libs +XSBC-Original-Maintainer: Debian Accessibility Team +Uploaders: Samuel Thibault +Build-Depends: debhelper (>= 8.0.0), dh-autoreconf, bison, pkg-config, + libpulse-dev, libsndfile1-dev, libsamplerate0-dev, libblas-dev, liblapack-dev, + doxygen, python-all-dev (>= 2.6.6-3~), python-all-dbg, dh-python, swig +Build-Conflicts: libjack-dev +Standards-Version: 3.9.6 +Section: sound +Homepage: http://cmusphinx.sourceforge.net/ +Vcs-Git: git://git.debian.org/pkg-a11y/sphinxbase.git +Vcs-Browser: http://git.debian.org/?p=pkg-a11y/sphinxbase.git;a=summary + +Package: libsphinxbase-doc +Section: doc +Architecture: all +Depends: ${misc:Depends} +Description: Speech recognition tool - development documentation + CMU Sphinx is a large vocabulary, speaker-independent continuous speech + recognition engine. + . + This package contains documentation for developing programs that use Sphinx. Package: libsphinxbase-dev Section: libdevel Architecture: any -Depends: libsphinxbase1 (= ${binary:Version}), libasound2-dev, - libpulse-dev, ${misc:Depends} -Description: Sphinx base libraries - development files - This package contains development files (headers and static - libraries) for the audio processing and utility libraries used by - Sphinx speech recognition engines (PocketSphinx and Sphinx3). +Multi-Arch: same +Depends: libsphinxbase3 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, libpulse-dev, libjs-jquery +Description: Speech recognition tool - development files + CMU Sphinx is a large vocabulary, speaker-independent continuous speech + recognition engine. + . + This package contains header files and static libraries for developing programs + that use Sphinx. -Package: libsphinxbase1 +Package: sphinxbase-utils +Section: sound Architecture: any +Multi-Arch: foreign Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Sphinx base libraries - This package contains the audio processing and utility libraries used - by the Sphinx speech recognition engines (PocketSphinx and Sphinx3). The - Sphinx Group at Carnegie Mellon University is committed to releasing the - long-time, DARPA-funded Sphinx projects widely, in order to stimulate the - creation of speech-using tools and applications, and to advance the state - of the art both directly in speech recognition, as well as in related - areas including dialog systems and speech synthesis. +Description: Speech recognition tool - development files + CMU Sphinx is a large vocabulary, speaker-independent continuous speech + recognition engine. + . + This package contains tools to manipulate Sphinx files. -Package: sphinxbase-utils -Section: sound +Package: libsphinxbase3 +Section: libs Architecture: any -Depends: ${shlibs:Depends}, perl, ${misc:Depends} -Description: Sphinx base libraries - utilities - This package contains a number of utilities, such as sphinx_pitch, - sphinx_fe and sphinx_lm_sort, which are useful for all Sphinx speech - recognition engines. +Multi-Arch: same +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Speech recognition tool - shared library + CMU Sphinx is a large vocabulary, speaker-independent continuous speech + recognition engine. + . + This package contains the shared library. Package: python-sphinxbase Section: python Architecture: any -Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends} -Provides: ${python:Provides} -XB-Python-Version: ${python:Versions} -Description: Sphinx base libraries - Python module - This package contains a Python module which provides access to the - audio processing and utility libraries used by the Sphinx speech - recognition engines (PocketSphinx and Sphinx3). The Python module - is currently is limited to language models. +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends} +Description: Speech recognition tool - python bindings + CMU Sphinx is a large vocabulary, speaker-independent continuous speech + recognition engine. + . + This package contains python bindings for libsphinxbase. -Package: python-sphinxbase-dbg -Section: debug -Architecture: any -Priority: extra -Depends: ${python:Depends}, ${shlibs:Depends}, python-dbg, python-sphinxbase, - ${misc:Depends} -Provides: ${python:Provides} -XB-Python-Version: ${python:Versions} -Description: Sphinx base libraries - Python module (debug version) - This package contains a Python module which provides access to Sphinx - base functionality, which currently is limited to language models. +Package: swig-sphinxbase +Section: interpreters +Architecture: all +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends} +Description: Speech recognition tool - swig helpers + CMU Sphinx is a large vocabulary, speaker-independent continuous speech + recognition engine. . - This package contains the extension built for the Python debug interpreter. + This package contains swig helpers for building sphinx-related swig bindings. diff -Nru sphinxbase-0.8/debian/copyright sphinxbase-0.8+5prealpha/debian/copyright --- sphinxbase-0.8/debian/copyright 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/copyright 2015-10-24 13:04:52.000000000 +0000 @@ -1,136 +1,201 @@ -This package was debianized by David Huggins-Daines on -Wed, 22 Aug 2007 16:40:17 -0400. - -It was downloaded from http://downloads.sourceforge.net/cmusphinx/ - -Upstream Authors: - -Evandro Gouvêa -Arthur Chan -Mosur Ravishankar -Yitao Sun -David Huggins-Daines - -Copyright: © 1994-2008 Carnegie Mellon University - -License: - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: sphinxbase +Source: http://cmusphinx.sourceforge.net/ + +Files: * +Copyright: 1994-2015 Carnegie Mellon University +License: BSD-2 + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + This work was supported in part by funding from the Defense Advanced + Research Projects Agency and the National Science Foundation of the + United States of America, and the CMU Sphinx Speech Consortium. + . + THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + NOR ITS EMPLOYEES 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. + +Files: include/sphinxbase/genrand.h src/libsphinxbase/util/genrand.c +Copyright: 1997 - 2002, Makoto Matsumoto and Takuji Nishimura + 1999-2004 Carnegie Mellon University. All rights reserved. +License: BSD-3 + 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. - + notice, this list of conditions and the following disclaimer. + . 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - This work was supported in part by funding from the Defense Advanced - Research Projects Agency and the National Science Foundation of the - United States of America, and the CMU Sphinx Speech Consortium. - - THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - NOR ITS EMPLOYEES 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. - -dtoa.c: -/**************************************************************** - * - * The author of this software is David M. Gay. - * - * Copyright © 1991, 2000, 2001 by Lucent Technologies. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software and in all copies of the supporting - * documentation for such software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY - * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY - * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - ***************************************************************/ - -fe/yin.c -/* - * Copyright © 2008 Beyond Access, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY BEYOND ACCESS, INC. ``AS IS'' AND ANY - * EXPRESSED 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 BEYOND ACCESS, INC. NOR - * ITS EMPLOYEES 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. - */ - -utils/genrand.c -/* - A C-program for MT19937, with initialization improved 2002/1/26. - Coded by Takuji Nishimura and Makoto Matsumoto. - - Copyright © 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright -` notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not 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. - - - Any feedback is very welcome. - http://www.math.keio.ac.jp/matumoto/emt.html - email: matumoto@math.keio.ac.jp -*/ + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + 3. The names of its contributors may not 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. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + This work was supported in part by funding from the Defense Advanced + Research Projects Agency and the National Science Foundation of the + United States of America, and the CMU Sphinx Speech Consortium. + . + THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + NOR ITS EMPLOYEES 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. + +Files: src/libsphinxad/ad_jack.c +Copyright: 2011 Glenn Pierce. All rights reserved. +License: BSD-2 + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer.$ + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + THIS SOFTWARE IS PROVIDED BY GLENN PIERCE ``AS IS'' AND$ + ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + NOR ITS EMPLOYEES 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. + +Files: src/libsphinxbase/fe/yin.c +Copyright: 2008 Beyond Access, Inc. All rights reserved. +License: BSD-2 + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + THIS SOFTWARE IS PROVIDED BY BEYOND ACCESS, INC. ``AS IS'' AND ANY + EXPRESSED 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 BEYOND ACCESS, INC. NOR + ITS EMPLOYEES 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. + +Files: include/sphinxbase/clapack_lite.h src/libsphinxbase/util/slapack_lite.c + src/libsphinxbase/util/slamch.c src/libsphinxbase/util/blas_lite.c + include/sphinxbase/f2c.h src/libsphinxbase/util/f2c_lite.c +Copyright: 1992-2007 The University of Tennessee. All rights reserved. +License: + LAPACK is a freely-available software package. It is available from + netlib via anonymous ftp and the World Wide Web. Thus, it can be + included in commercial software packages (and has been). We only ask + that proper credit be given to the authors. + . + Like all software, it is copyrighted. It is not trademarked, but we do + ask the following: + . + If you modify the source for these routines we ask that you change the + name of the routine and comment the changes made to the original. -The Debian packaging is © 2008, David Huggins-Daines and -is licensed under the GPL, see `/usr/share/common-licenses/GPL'. +Files: src/libsphinxbase/util/dtoa.c +Copyright: 1991, 2000, 2001 by Lucent Technologies. +License: + Permission to use, copy, modify, and distribute this software for any + purpose without fee is hereby granted, provided that this entire notice + is included in all copies of any software which is or includes a copy + or modification of this software and in all copies of the supporting + documentation for such software. + . + THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY + REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +Files: doc/doxy2swig.py +Copyright: Prabhu Ramachandran +License: BSD + License: BSD style + +Files: debian/* +Copyright: 2013 Samuel Thibault +License: GPL-2+ + This package 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 package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". diff -Nru sphinxbase-0.8/debian/docs sphinxbase-0.8+5prealpha/debian/docs --- sphinxbase-0.8/debian/docs 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/docs 2013-06-18 20:37:50.000000000 +0000 @@ -0,0 +1,3 @@ +AUTHORS +NEWS +doc/html diff -Nru sphinxbase-0.8/debian/libsphinxbase1.install sphinxbase-0.8+5prealpha/debian/libsphinxbase1.install --- sphinxbase-0.8/debian/libsphinxbase1.install 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/libsphinxbase1.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/lib*.so.* diff -Nru sphinxbase-0.8/debian/libsphinxbase1.symbols sphinxbase-0.8+5prealpha/debian/libsphinxbase1.symbols --- sphinxbase-0.8/debian/libsphinxbase1.symbols 2013-01-17 14:14:17.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/libsphinxbase1.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,531 +0,0 @@ -libsphinxad.so.0 libsphinxbase1 #MINVER# - ad_close@Base 0.4.1 - ad_open@Base 0.4.1 - ad_open_dev@Base 0.4.1 - ad_open_sps@Base 0.4.1 - ad_read@Base 0.4.1 - ad_start_rec@Base 0.4.1 - ad_stop_rec@Base 0.4.1 - cont_ad_attach@Base 0.4.1 - cont_ad_buffer_space@Base 0.4.1 - cont_ad_calib@Base 0.4.1 - cont_ad_calib_loop@Base 0.4.1 - cont_ad_calib_size@Base 0.4.1 - cont_ad_classify@Base 0.4.1 - cont_ad_close@Base 0.4.1 - cont_ad_detach@Base 0.4.1 - cont_ad_frame_pow@Base 0.4.1 - cont_ad_get_params@Base 0.4.1 - cont_ad_init@Base 0.4.1 - cont_ad_init_rawmode@Base 0.4.1 - cont_ad_powhist_dump@Base 0.4.1 - cont_ad_read@Base 0.4.1 - cont_ad_reset@Base 0.4.1 - cont_ad_set_logfp@Base 0.4.1 - cont_ad_set_params@Base 0.4.1 - cont_ad_set_rawfp@Base 0.4.1 - cont_ad_set_thresh@Base 0.4.1 - cont_set_thresh@Base 0.4.1 -libsphinxbase.so.1 libsphinxbase1 #MINVER# - _E__abort_error@Base 0.4.1 - _E__die_error@Base 0.4.1 - _E__fatal_sys_error@Base 0.4.1 - _E__pr_header@Base 0.4.1 - _E__pr_info@Base 0.4.1 - _E__pr_info_header@Base 0.4.1 - _E__pr_info_header_wofn@Base 0.4.1 - _E__pr_warn@Base 0.4.1 - _E__sys_error@Base 0.4.1 - __ckd_alloc_2d_ptr@Base 0.4.1 - __ckd_alloc_3d_ptr@Base 0.4.1 - __ckd_calloc_2d__@Base 0.4.1 - __ckd_calloc_3d__@Base 0.4.1 - __ckd_calloc_4d__@Base 0.8 - __ckd_calloc__@Base 0.4.1 - __ckd_malloc__@Base 0.4.1 - __ckd_realloc__@Base 0.4.1 - __ckd_salloc__@Base 0.4.1 - __listelem_free__@Base 0.4.1 - __listelem_malloc__@Base 0.4.1 - __listelem_malloc_id__@Base 0.8 - accum_3d@Base 0.8 - agc_emax@Base 0.4.1 - agc_emax_get@Base 0.4.1 - agc_emax_set@Base 0.4.1 - agc_emax_update@Base 0.4.1 - agc_free@Base 0.4.1 - agc_get_threshold@Base 0.4.1 - agc_init@Base 0.4.1 - agc_max@Base 0.4.1 - agc_noise@Base 0.4.1 - agc_set_threshold@Base 0.4.1 - agc_type_from_str@Base 0.4.1 - agc_type_str@Base 0.4.1 - atof_c@Base 0.4.1 - band_nz_1d@Base 0.8 - bio_fread@Base 0.4.1 - bio_fread_1d@Base 0.4.1 - bio_fread_2d@Base 0.4.1 - bio_fread_3d@Base 0.4.1 - bio_fwrite@Base 0.4.1 - bio_hdrarg_free@Base 0.4.1 - bio_readhdr@Base 0.4.1 - bio_read_wavfile@Base 0.8 - bio_verify_chksum@Base 0.4.1 - bio_writehdr@Base 0.8 - bio_writehdr_version@Base 0.4.1 - bit_encode_attach@Base 0.8 - bit_encode_flush@Base 0.8 - bit_encode_free@Base 0.8 - bit_encode_retain@Base 0.8 - bit_encode_write@Base 0.8 - bit_encode_write_cw@Base 0.8 - bitvec_count_set@Base 0.4.1 - bitvec_realloc@Base 0.8 - build_directory@Base 0.8 - ckd_fail@Base 0.4.1 - ckd_free@Base 0.4.1 - ckd_free_2d@Base 0.4.1 - ckd_free_3d@Base 0.4.1 - ckd_free_4d@Base 0.8 - ckd_set_jump@Base 0.4.1 - classdef_free@Base 0.4.1 - cmd_ln_access_r@Base 0.4.1 - cmd_ln_appl_enter@Base 0.4.1 - cmd_ln_appl_exit@Base 0.4.1 - cmd_ln_exists_r@Base 0.4.1 - cmd_ln_float_r@Base 0.4.1 - cmd_ln_free@Base 0.4.1 - cmd_ln_free_r@Base 0.4.1 - cmd_ln_get@Base 0.4.1 - cmd_ln_init@Base 0.4.1 - cmd_ln_int_r@Base 0.4.1 - cmd_ln_parse@Base 0.4.1 - cmd_ln_parse_file@Base 0.4.1 - cmd_ln_parse_file_r@Base 0.4.1 - cmd_ln_parse_r@Base 0.4.1 - cmd_ln_print_help_r@Base 0.4.1 - cmd_ln_retain@Base 0.4.1 - cmd_ln_set_float_r@Base 0.4.1 - cmd_ln_set_int_r@Base 0.4.1 - cmd_ln_set_str_r@Base 0.4.1 - cmd_ln_str_list_r@Base 0.8 - cmd_ln_str_r@Base 0.4.1 - cmd_ln_val_free@Base 0.4.1 - cmn@Base 0.4.1 - cmn_free@Base 0.4.1 - cmn_init@Base 0.4.1 - cmn_prior@Base 0.4.1 - cmn_prior_get@Base 0.4.1 - cmn_prior_set@Base 0.4.1 - cmn_prior_update@Base 0.4.1 - cmn_type_from_str@Base 0.4.1 - cmn_type_str@Base 0.4.1 - determinant@Base 0.4.1 - err_get_debug_level@Base 0.8 - err_get_logfp@Base 0.4.1 - err_set_debug_level@Base 0.8 - err_set_logfile@Base 0.4.1 - err_set_logfp@Base 0.4.1 - fclose_comp@Base 0.4.1 - fe_build_melfilters@Base 0.4.1 - fe_compute_melcosine@Base 0.4.1 - fe_create_2d@Base 0.4.1 - fe_create_hamming@Base 0.4.1 - fe_create_twiddle@Base 0.4.1 - fe_dct2@Base 0.4.1 - fe_dct3@Base 0.4.1 - fe_end_utt@Base 0.4.1 - fe_float_to_mfcc@Base 0.4.1 - fe_free@Base 0.4.1 - fe_free_2d@Base 0.4.1 - fe_get_args@Base 0.4.1 - fe_get_config@Base 0.4.1 - fe_get_input_size@Base 0.4.1 - fe_get_output_size@Base 0.4.1 - fe_init_auto@Base 0.4.1 - fe_init_auto_r@Base 0.4.1 - fe_init_dither@Base 0.4.1 - fe_lifter@Base 0.4.1 - fe_logspec_dct2@Base 0.4.1 - fe_logspec_to_mfcc@Base 0.4.1 - fe_mfcc_dct3@Base 0.4.1 - fe_mfcc_to_float@Base 0.4.1 - fe_parse_general_params@Base 0.4.1 - fe_print_current@Base 0.4.1 - fe_process_frame@Base 0.4.1 - fe_process_frames@Base 0.4.1 - fe_process_utt@Base 0.4.1 - fe_read_frame@Base 0.4.1 - fe_retain@Base 0.4.1 - fe_shift_frame@Base 0.4.1 - fe_spec2cep@Base 0.4.1 - fe_start_utt@Base 0.4.1 - fe_warp_affine_doc@Base 0.4.1 - fe_warp_affine_id@Base 0.4.1 - fe_warp_affine_n_param@Base 0.4.1 - fe_warp_affine_print@Base 0.4.1 - fe_warp_affine_set_parameters@Base 0.4.1 - fe_warp_affine_unwarped_to_warped@Base 0.4.1 - fe_warp_affine_warped_to_unwarped@Base 0.4.1 - fe_warp_doc@Base 0.4.1 - fe_warp_id@Base 0.4.1 - fe_warp_inverse_linear_doc@Base 0.4.1 - fe_warp_inverse_linear_id@Base 0.4.1 - fe_warp_inverse_linear_n_param@Base 0.4.1 - fe_warp_inverse_linear_print@Base 0.4.1 - fe_warp_inverse_linear_set_parameters@Base 0.4.1 - fe_warp_inverse_linear_unwarped_to_warped@Base 0.4.1 - fe_warp_inverse_linear_warped_to_unwarped@Base 0.4.1 - fe_warp_n_param@Base 0.4.1 - fe_warp_piecewise_linear_doc@Base 0.4.1 - fe_warp_piecewise_linear_id@Base 0.4.1 - fe_warp_piecewise_linear_n_param@Base 0.4.1 - fe_warp_piecewise_linear_print@Base 0.4.1 - fe_warp_piecewise_linear_set_parameters@Base 0.4.1 - fe_warp_piecewise_linear_unwarped_to_warped@Base 0.4.1 - fe_warp_piecewise_linear_warped_to_unwarped@Base 0.4.1 - fe_warp_print@Base 0.4.1 - fe_warp_set@Base 0.4.1 - fe_warp_set_parameters@Base 0.4.1 - fe_warp_unwarped_to_warped@Base 0.4.1 - fe_warp_warped_to_unwarped@Base 0.4.1 - fe_write_frame@Base 0.4.1 - feat_array_alloc@Base 0.4.1 - feat_array_free@Base 0.4.1 - feat_array_realloc@Base 0.8 - feat_free@Base 0.4.1 - feat_init@Base 0.4.1 - feat_lda_transform@Base 0.4.1 - feat_print@Base 0.4.1 - feat_read_lda@Base 0.4.1 - feat_report@Base 0.4.1 - feat_retain@Base 0.4.1 - feat_s2mfc2feat@Base 0.4.1 - feat_s2mfc2feat_live@Base 0.4.1 - feat_set_subvecs@Base 0.4.1 - fixlog2@Base 0.4.1 - fixlog@Base 0.4.1 - floor_nz_1d@Base 0.8 - floor_nz_3d@Base 0.8 - fopen_comp@Base 0.4.1 - fopen_compchk@Base 0.4.1 - fread_line@Base 0.4.1 - fread_retry@Base 0.4.1 - free_sorted_list@Base 0.8 - fsg_arciter_free@Base 0.8 - fsg_arciter_get@Base 0.8 - fsg_arciter_next@Base 0.8 - fsg_model_add_alt@Base 0.4.1 - fsg_model_add_silence@Base 0.4.1 - fsg_model_arcs@Base 0.8 - fsg_model_free@Base 0.4.1 - fsg_model_init@Base 0.4.1 - fsg_model_null_trans@Base 0.8 - fsg_model_null_trans_add@Base 0.4.1 - fsg_model_null_trans_closure@Base 0.4.1 - fsg_model_read@Base 0.4.1 - fsg_model_readfile@Base 0.4.1 - fsg_model_retain@Base 0.4.1 - fsg_model_tag_trans_add@Base 0.8 - fsg_model_trans@Base 0.8 - fsg_model_trans_add@Base 0.4.1 - fsg_model_word_add@Base 0.4.1 - fsg_model_word_id@Base 0.4.1 - fsg_model_write@Base 0.4.1 - fsg_model_write_fsm@Base 0.8 - fsg_model_write_symtab@Base 0.8 - fsg_model_writefile@Base 0.4.1 - fsg_model_writefile_fsm@Base 0.8 - fsg_model_writefile_symtab@Base 0.8 - genrand_int31@Base 0.4.1 - genrand_int32@Base 0.4.1 - genrand_real1@Base 0.4.1 - genrand_real2@Base 0.4.1 - genrand_real3@Base 0.4.1 - genrand_res53@Base 0.4.1 - genrand_seed@Base 0.4.1 - glist_add_float32@Base 0.4.1 - glist_add_float64@Base 0.4.1 - glist_add_int32@Base 0.4.1 - glist_add_ptr@Base 0.4.1 - glist_add_uint32@Base 0.4.1 - glist_count@Base 0.4.1 - glist_free@Base 0.4.1 - glist_insert_float32@Base 0.4.1 - glist_insert_float64@Base 0.4.1 - glist_insert_int32@Base 0.4.1 - glist_insert_ptr@Base 0.4.1 - glist_insert_uint32@Base 0.4.1 - glist_reverse@Base 0.4.1 - glist_tail@Base 0.4.1 - global_cmdln@Base 0.4.1 - gnode_free@Base 0.4.1 - hash_table_delete@Base 0.4.1 - hash_table_delete_bkey@Base 0.8 - hash_table_display@Base 0.4.1 - hash_table_empty@Base 0.4.1 - hash_table_enter@Base 0.4.1 - hash_table_enter_bkey@Base 0.4.1 - hash_table_free@Base 0.4.1 - hash_table_iter@Base 0.4.1 - hash_table_iter_free@Base 0.4.1 - hash_table_iter_next@Base 0.4.1 - hash_table_lookup@Base 0.4.1 - hash_table_lookup_bkey@Base 0.4.1 - hash_table_lookup_bkey_int32@Base 0.4.1 - hash_table_lookup_int32@Base 0.4.1 - hash_table_new@Base 0.4.1 - hash_table_replace@Base 0.4.1 - hash_table_replace_bkey@Base 0.8 - hash_table_tolist@Base 0.4.1 - heap_destroy@Base 0.4.1 - heap_insert@Base 0.4.1 - heap_new@Base 0.4.1 - heap_pop@Base 0.4.1 - heap_remove@Base 0.8 - heap_size@Base 0.8 - heap_top@Base 0.4.1 - host_endian@Base 0.4.1 - huff_code_attach@Base 0.8 - huff_code_build_int@Base 0.8 - huff_code_build_str@Base 0.8 - huff_code_decode_int@Base 0.8 - huff_code_decode_str@Base 0.8 - huff_code_detach@Base 0.8 - huff_code_dump@Base 0.8 - huff_code_dump_codebits@Base 0.8 - huff_code_encode_int@Base 0.8 - huff_code_encode_str@Base 0.8 - huff_code_free@Base 0.8 - huff_code_read@Base 0.8 - huff_code_retain@Base 0.8 - huff_code_write@Base 0.8 - init_genrand@Base 0.4.1 - init_sorted_list@Base 0.8 - invert@Base 0.4.1 - jsgf_add_link@Base 0.4.1 - jsgf_atom_free@Base 0.4.1 - jsgf_atom_new@Base 0.4.1 - jsgf_build_fsg@Base 0.4.1 - jsgf_build_fsg_raw@Base 0.8 - jsgf_define_rule@Base 0.4.1 - jsgf_get_rule@Base 0.4.1 - jsgf_grammar_free@Base 0.4.1 - jsgf_grammar_name@Base 0.8 - jsgf_grammar_new@Base 0.4.1 - jsgf_import_rule@Base 0.4.1 - jsgf_kleene_new@Base 0.4.1 - jsgf_optional_new@Base 0.4.1 - jsgf_parse_file@Base 0.4.1 - jsgf_read_file@Base 0.8 - jsgf_rule_free@Base 0.4.1 - jsgf_rule_iter@Base 0.4.1 - jsgf_rule_name@Base 0.4.1 - jsgf_rule_public@Base 0.4.1 - jsgf_rule_retain@Base 0.4.1 - jsgf_write_fsg@Base 0.4.1 - lcase@Base 0.4.1 - lineiter_free@Base 0.4.1 - lineiter_lineno@Base 0.8 - lineiter_next@Base 0.4.1 - lineiter_start@Base 0.4.1 - lineiter_start_clean@Base 0.8 - listelem_alloc_free@Base 0.4.1 - listelem_alloc_init@Base 0.4.1 - listelem_get_item@Base 0.8 - listelem_stats@Base 0.4.1 - lm3g_add_ug@Base 0.4.1 - lm3g_apply_weights@Base 0.4.1 - lm3g_tginfo_free@Base 0.4.1 - lm3g_tginfo_reset@Base 0.4.1 - logfp_index_alloc@Base 0.4.1 - logmath_add@Base 0.4.1 - logmath_add_exact@Base 0.4.1 - logmath_exp@Base 0.4.1 - logmath_free@Base 0.4.1 - logmath_get_base@Base 0.4.1 - logmath_get_shift@Base 0.4.1 - logmath_get_table_shape@Base 0.4.1 - logmath_get_width@Base 0.4.1 - logmath_get_zero@Base 0.4.1 - logmath_init@Base 0.4.1 - logmath_ln_to_log@Base 0.4.1 - logmath_log10_to_log@Base 0.4.1 - logmath_log@Base 0.4.1 - logmath_log_to_ln@Base 0.4.1 - logmath_log_to_log10@Base 0.4.1 - logmath_read@Base 0.4.1 - logmath_retain@Base 0.4.1 - logmath_write@Base 0.4.1 - matrixadd@Base 0.4.1 - matrixmultiply@Base 0.4.1 - mmio_file_ptr@Base 0.4.1 - mmio_file_read@Base 0.4.1 - mmio_file_unmap@Base 0.4.1 - nextword@Base 0.4.1 - ngram_add_word_internal@Base 0.4.1 - ngram_bg_score@Base 0.4.1 - ngram_class_add_word@Base 0.4.1 - ngram_class_free@Base 0.4.1 - ngram_class_new@Base 0.4.1 - ngram_class_prob@Base 0.4.1 - ngram_file_name_to_type@Base 0.4.1 - ngram_iter@Base 0.8 - ngram_iter_free@Base 0.8 - ngram_iter_get@Base 0.8 - ngram_iter_init@Base 0.8 - ngram_iter_next@Base 0.8 - ngram_iter_successors@Base 0.8 - ngram_model_add_class@Base 0.4.1 - ngram_model_add_class_word@Base 0.4.1 - ngram_model_add_word@Base 0.4.1 - ngram_model_apply_weights@Base 0.4.1 - ngram_model_arpa_read@Base 0.4.1 - ngram_model_arpa_write@Base 0.4.1 - ngram_model_casefold@Base 0.8 - ngram_model_dmp32_read@Base 0.4.1 - ngram_model_dmp32_write@Base 0.4.1 - ngram_model_dmp_build@Base 0.8 - ngram_model_dmp_read@Base 0.4.1 - ngram_model_dmp_write@Base 0.4.1 - ngram_model_flush@Base 0.4.1 - ngram_model_free@Base 0.4.1 - ngram_model_get_counts@Base 0.4.1 - ngram_model_get_size@Base 0.4.1 - ngram_model_get_weights@Base 0.4.1 - ngram_model_init@Base 0.4.1 - ngram_model_mgrams@Base 0.8 - ngram_model_read@Base 0.4.1 - ngram_model_read_classdef@Base 0.4.1 - ngram_model_recode@Base 0.4.1 - ngram_model_retain@Base 0.4.1 - ngram_model_set_add@Base 0.4.1 - ngram_model_set_count@Base 0.4.1 - ngram_model_set_current@Base 0.4.1 - ngram_model_set_current_wid@Base 0.4.1 - ngram_model_set_init@Base 0.4.1 - ngram_model_set_interp@Base 0.4.1 - ngram_model_set_iter@Base 0.4.1 - ngram_model_set_iter_free@Base 0.4.1 - ngram_model_set_iter_model@Base 0.4.1 - ngram_model_set_iter_next@Base 0.4.1 - ngram_model_set_known_wid@Base 0.4.1 - ngram_model_set_lookup@Base 0.4.1 - ngram_model_set_map_words@Base 0.4.1 - ngram_model_set_read@Base 0.4.1 - ngram_model_set_remove@Base 0.4.1 - ngram_model_set_select@Base 0.4.1 - ngram_model_write@Base 0.4.1 - ngram_ng_iter@Base 0.8 - ngram_ng_prob@Base 0.4.1 - ngram_ng_score@Base 0.4.1 - ngram_prob@Base 0.4.1 - ngram_score@Base 0.4.1 - ngram_score_to_prob@Base 0.4.1 - ngram_str_to_type@Base 0.8 - ngram_tg_score@Base 0.4.1 - ngram_type_to_str@Base 0.8 - ngram_unknown_wid@Base 0.4.1 - ngram_wid@Base 0.4.1 - ngram_word@Base 0.4.1 - ngram_zero@Base 0.4.1 - norm_3d@Base 0.8 - outerproduct@Base 0.4.1 - parse_subvecs@Base 0.4.1 - path2basename@Base 0.4.1 - path2dirname@Base 0.8 - path_is_absolute@Base 0.4.1 - pctr_free@Base 0.4.1 - pctr_increment@Base 0.4.1 - pctr_new@Base 0.4.1 - pctr_print@Base 0.4.1 - pctr_reset@Base 0.4.1 - prime@Base 0.4.1 - print_appl_info@Base 0.4.1 - ptmr_init@Base 0.4.1 - ptmr_print_all@Base 0.4.1 - ptmr_reset@Base 0.4.1 - ptmr_reset_all@Base 0.4.1 - ptmr_start@Base 0.4.1 - ptmr_stop@Base 0.4.1 - read_classdef_file@Base 0.4.1 - sb_strtod@Base 0.4.1 - sbevent_free@Base 0.4.1 - sbevent_init@Base 0.4.1 - sbevent_signal@Base 0.4.1 - sbevent_wait@Base 0.4.1 - sbmsgq_free@Base 0.4.1 - sbmsgq_init@Base 0.4.1 - sbmsgq_send@Base 0.4.1 - sbmsgq_wait@Base 0.4.1 - sbmtx_free@Base 0.4.1 - sbmtx_init@Base 0.4.1 - sbmtx_lock@Base 0.4.1 - sbmtx_trylock@Base 0.4.1 - sbmtx_unlock@Base 0.4.1 - sbthread_arg@Base 0.4.1 - sbthread_config@Base 0.4.1 - sbthread_free@Base 0.4.1 - sbthread_msgq@Base 0.4.1 - sbthread_send@Base 0.4.1 - sbthread_start@Base 0.4.1 - sbthread_wait@Base 0.4.1 - scalarmultiply@Base 0.4.1 - solve@Base 0.4.1 - sorted_id@Base 0.8 - stat_mtime@Base 0.4.1 - stat_retry@Base 0.4.1 - str2words@Base 0.4.1 - strcmp_nocase@Base 0.4.1 - string_join@Base 0.4.1 - string_trim@Base 0.4.1 - strip_fileext@Base 0.4.1 - strncmp_nocase@Base 0.4.1 - subvecs_free@Base 0.4.1 - thresholded_search@Base 0.4.1 - ucase@Base 0.4.1 - unlimit@Base 0.4.1 - utf8_decode@Base 0.8 - vals_in_sorted_list@Base 0.8 - yin_end@Base 0.4.1 - yin_free@Base 0.4.1 - yin_init@Base 0.4.1 - yin_read@Base 0.4.1 - yin_start@Base 0.4.1 - yin_write@Base 0.4.1 - yy_create_buffer@Base 0.4.1 - yy_delete_buffer@Base 0.4.1 - yy_flush_buffer@Base 0.4.1 - yy_scan_buffer@Base 0.4.1 - yy_scan_bytes@Base 0.4.1 - yy_scan_string@Base 0.4.1 - yy_switch_to_buffer@Base 0.4.1 - yyalloc@Base 0.4.1 - yyerror@Base 0.4.1 - yyfree@Base 0.4.1 - yyget_column@Base 0.4.1 - yyget_debug@Base 0.4.1 - yyget_extra@Base 0.4.1 - yyget_in@Base 0.4.1 - yyget_leng@Base 0.4.1 - yyget_lineno@Base 0.4.1 - yyget_lval@Base 0.4.1 - yyget_out@Base 0.4.1 - yyget_text@Base 0.4.1 - yylex@Base 0.4.1 - yylex_destroy@Base 0.4.1 - yylex_init@Base 0.4.1 - yylex_init_extra@Base 0.4.1 - yyparse@Base 0.4.1 - yypop_buffer_state@Base 0.4.1 - yypush_buffer_state@Base 0.4.1 - yyrealloc@Base 0.4.1 - yyrestart@Base 0.4.1 - yyset_column@Base 0.4.1 - yyset_debug@Base 0.4.1 - yyset_extra@Base 0.4.1 - yyset_in@Base 0.4.1 - yyset_lineno@Base 0.4.1 - yyset_lval@Base 0.4.1 - yyset_out@Base 0.4.1 diff -Nru sphinxbase-0.8/debian/libsphinxbase3.dirs sphinxbase-0.8+5prealpha/debian/libsphinxbase3.dirs --- sphinxbase-0.8/debian/libsphinxbase3.dirs 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/libsphinxbase3.dirs 2013-01-01 23:48:25.000000000 +0000 @@ -0,0 +1 @@ +usr/lib diff -Nru sphinxbase-0.8/debian/libsphinxbase3.install sphinxbase-0.8+5prealpha/debian/libsphinxbase3.install --- sphinxbase-0.8/debian/libsphinxbase3.install 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/libsphinxbase3.install 2013-01-02 00:10:36.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/*/lib*.so.* diff -Nru sphinxbase-0.8/debian/libsphinxbase-dev.dirs sphinxbase-0.8+5prealpha/debian/libsphinxbase-dev.dirs --- sphinxbase-0.8/debian/libsphinxbase-dev.dirs 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/libsphinxbase-dev.dirs 2013-01-01 23:48:25.000000000 +0000 @@ -0,0 +1,2 @@ +usr/lib +usr/include diff -Nru sphinxbase-0.8/debian/libsphinxbase-dev.install sphinxbase-0.8+5prealpha/debian/libsphinxbase-dev.install --- sphinxbase-0.8/debian/libsphinxbase-dev.install 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/libsphinxbase-dev.install 2013-01-02 00:10:56.000000000 +0000 @@ -1,5 +1,4 @@ -usr/include/sphinxbase/* -usr/lib/lib*.a -usr/lib/lib*.so -usr/lib/pkgconfig/* -usr/lib/*.la +usr/include/* +usr/lib/*/lib*.a +usr/lib/*/lib*.so +usr/lib/*/pkgconfig/* diff -Nru sphinxbase-0.8/debian/patches/000_svn_r11709_reduce_pulseaudio_latency sphinxbase-0.8+5prealpha/debian/patches/000_svn_r11709_reduce_pulseaudio_latency --- sphinxbase-0.8/debian/patches/000_svn_r11709_reduce_pulseaudio_latency 2013-02-27 11:22:37.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/patches/000_svn_r11709_reduce_pulseaudio_latency 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -Description: Reduce pulseaudio latency -Author: Pete Woods -Origin: other -Applied-Upstream: r11709 -Last-Update: 2013-02-25 ---- a/src/libsphinxad/ad_pulse.c -+++ b/src/libsphinxad/ad_pulse.c -@@ -124,6 +124,10 @@ - if (!r->recording) - return AD_EOF; - -+ if (max > 2048) { -+ max = 2048; -+ } -+ - if (pa_simple_read(r->pa, (void*)buf, max * 2, &error) < 0) { - fprintf(stderr, "Failed to read speech: %s\n", pa_strerror(error)); - } diff -Nru sphinxbase-0.8/debian/patches/approximate_tests sphinxbase-0.8+5prealpha/debian/patches/approximate_tests --- sphinxbase-0.8/debian/patches/approximate_tests 2013-07-03 13:53:09.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/patches/approximate_tests 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -diff --git a/test/unit/test_ngram/test_lm_mmap.c b/test/unit/test_ngram/test_lm_mmap.c -index 968ad56..cbff5dd 100644 ---- a/test/unit/test_ngram/test_lm_mmap.c -+++ b/test/unit/test_ngram/test_lm_mmap.c -@@ -16,6 +16,8 @@ static const arg_t defn[] = { - { NULL, 0, NULL, NULL } - }; - -+#define TEST_ALMOST_EQUAL(val1, val2) (abs((val1) - (val2)) <= 1) -+ - int - main(int argc, char *argv[]) - { -@@ -36,12 +38,12 @@ main(int argc, char *argv[]) - TEST_EQUAL(ngram_wid(model, "absolute"), 13); - TEST_EQUAL(strcmp(ngram_word(model, 13), "absolute"), 0); - /* Test unigrams. */ -- TEST_EQUAL(ngram_score(model, "", NULL), -75346); -- TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, ""), -+ TEST_ALMOST_EQUAL(ngram_score(model, "", NULL), -75346); -+ TEST_ALMOST_EQUAL(ngram_bg_score(model, ngram_wid(model, ""), - NGRAM_INVALID_WID, &n_used), -75346); - TEST_EQUAL(n_used, 1); -- TEST_EQUAL(ngram_score(model, "sphinxtrain", NULL), -64208); -- TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, "sphinxtrain"), -+ TEST_ALMOST_EQUAL(ngram_score(model, "sphinxtrain", NULL), -64208); -+ TEST_ALMOST_EQUAL(ngram_bg_score(model, ngram_wid(model, "sphinxtrain"), - NGRAM_INVALID_WID, &n_used), -64208); - TEST_EQUAL(n_used, 1); - /* Test bigrams. */ -@@ -59,12 +61,12 @@ main(int argc, char *argv[]) - TEST_EQUAL(ngram_wid(model, "absolute"), 13); - TEST_EQUAL(strcmp(ngram_word(model, 13), "absolute"), 0); - /* Test unigrams. */ -- TEST_EQUAL(ngram_score(model, "", NULL), -75346); -- TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, ""), -+ TEST_ALMOST_EQUAL(ngram_score(model, "", NULL), -75346); -+ TEST_ALMOST_EQUAL(ngram_bg_score(model, ngram_wid(model, ""), - NGRAM_INVALID_WID, &n_used), -75346); - TEST_EQUAL(n_used, 1); -- TEST_EQUAL(ngram_score(model, "sphinxtrain", NULL), -64208); -- TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, "sphinxtrain"), -+ TEST_ALMOST_EQUAL(ngram_score(model, "sphinxtrain", NULL), -64208); -+ TEST_ALMOST_EQUAL(ngram_bg_score(model, ngram_wid(model, "sphinxtrain"), - NGRAM_INVALID_WID, &n_used), -64208); - TEST_EQUAL(n_used, 1); - /* Test bigrams. */ -@@ -83,15 +85,15 @@ main(int argc, char *argv[]) - TEST_EQUAL(ngram_wid(model, "absolute"), 13); - TEST_EQUAL(strcmp(ngram_word(model, 13), "absolute"), 0); - /* Test unigrams. */ -- TEST_EQUAL(ngram_score(model, "", NULL), -75346 -+ TEST_ALMOST_EQUAL(ngram_score(model, "", NULL), -75346 - * 2 + logmath_log(lmath, 0.5)); -- TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, ""), -+ TEST_ALMOST_EQUAL(ngram_bg_score(model, ngram_wid(model, ""), - NGRAM_INVALID_WID, &n_used), -75346 - * 2 + logmath_log(lmath, 0.5)); - TEST_EQUAL(n_used, 1); -- TEST_EQUAL(ngram_score(model, "sphinxtrain", NULL), -64208 -+ TEST_ALMOST_EQUAL(ngram_score(model, "sphinxtrain", NULL), -64208 - * 2 + logmath_log(lmath, 0.5)); -- TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, "sphinxtrain"), -+ TEST_ALMOST_EQUAL(ngram_bg_score(model, ngram_wid(model, "sphinxtrain"), - NGRAM_INVALID_WID, &n_used), -64208 - * 2 + logmath_log(lmath, 0.5)); - TEST_EQUAL(n_used, 1); diff -Nru sphinxbase-0.8/debian/patches/float sphinxbase-0.8+5prealpha/debian/patches/float --- sphinxbase-0.8/debian/patches/float 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/patches/float 2015-10-26 18:33:04.000000000 +0000 @@ -0,0 +1,12 @@ +--- a/test/unit/test_fe/test_pitch.c ++++ b/test/unit/test_fe/test_pitch.c +@@ -14,7 +14,8 @@ main(int argc, char *argv[]) + yin_t *pe; + int16 *buf; + size_t nsamp, start; +- uint16 period, bestdiff; ++ uint16 period; ++ float bestdiff; + int nfr; + + /* To make life easier, read the whole thing. */ diff -Nru sphinxbase-0.8/debian/patches/license sphinxbase-0.8+5prealpha/debian/patches/license --- sphinxbase-0.8/debian/patches/license 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/patches/license 2015-09-19 14:41:10.000000000 +0000 @@ -0,0 +1,35 @@ +Add license text forgotten in upstream tarball. + +--- /dev/null ++++ b/LICENSE +@@ -0,0 +1,30 @@ ++Copyright (c) 1999-2015 Carnegie Mellon University. All rights ++reserved. ++ ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions ++are met: ++ ++1. Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ ++2. Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in ++ the documentation and/or other materials provided with the ++ distribution. ++ ++This work was supported in part by funding from the Defense Advanced ++Research Projects Agency and the National Science Foundation of the ++United States of America, and the CMU Sphinx Speech Consortium. ++ ++THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND ++ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY ++NOR ITS EMPLOYEES 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. diff -Nru sphinxbase-0.8/debian/patches/non-linux sphinxbase-0.8+5prealpha/debian/patches/non-linux --- sphinxbase-0.8/debian/patches/non-linux 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/patches/non-linux 2015-10-26 18:23:14.000000000 +0000 @@ -0,0 +1,11 @@ +--- a/src/libsphinxad/ad_base.c ++++ b/src/libsphinxad/ad_base.c +@@ -55,7 +55,7 @@ + #include "prim_type.h" + #include "ad.h" + +-ad_rec_s { ++struct ad_rec_s { + int32 sps; /**< Samples/sec */ + int32 bps; /**< Bytes/sample */ + }; diff -Nru sphinxbase-0.8/debian/patches/ppc64el.diff sphinxbase-0.8+5prealpha/debian/patches/ppc64el.diff --- sphinxbase-0.8/debian/patches/ppc64el.diff 2013-12-22 15:05:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/patches/ppc64el.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -Index: b/configure -=================================================================== ---- a/configure -+++ b/configure -@@ -9023,7 +9023,10 @@ - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; -- ppc64-*linux*|powerpc64-*linux*) -+ powerpc64le-*) -+ LD="${LD-ld} -m elf32lppclinux" -+ ;; -+ powerpc64-*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) -@@ -9042,7 +9045,10 @@ - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; -- ppc*-*linux*|powerpc*-*linux*) -+ powerpcle-*) -+ LD="${LD-ld} -m elf64lppc" -+ ;; -+ powerpc-*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) -Index: b/m4/libtool.m4 -=================================================================== ---- a/m4/libtool.m4 -+++ b/m4/libtool.m4 -@@ -1281,7 +1281,10 @@ - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; -- ppc64-*linux*|powerpc64-*linux*) -+ powerpc64le-*) -+ LD="${LD-ld} -m elf32lppclinux" -+ ;; -+ powerpc64-*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) -@@ -1300,7 +1303,10 @@ - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; -- ppc*-*linux*|powerpc*-*linux*) -+ powerpcle-*) -+ LD="${LD-ld} -m elf64lppc" -+ ;; -+ powerpc-*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) diff -Nru sphinxbase-0.8/debian/patches/series sphinxbase-0.8+5prealpha/debian/patches/series --- sphinxbase-0.8/debian/patches/series 2013-12-22 15:05:02.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/patches/series 2015-10-26 18:32:47.000000000 +0000 @@ -1,3 +1,4 @@ -000_svn_r11709_reduce_pulseaudio_latency -approximate_tests -ppc64el.diff +spurious-link +license +non-linux +float diff -Nru sphinxbase-0.8/debian/patches/spurious-link sphinxbase-0.8+5prealpha/debian/patches/spurious-link --- sphinxbase-0.8/debian/patches/spurious-link 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/patches/spurious-link 2015-09-19 14:04:19.000000000 +0000 @@ -0,0 +1,11 @@ +--- sphinxbase/sphinxbase.pc.in ++++ sphinxbase/sphinxbase.pc.in +@@ -8,7 +8,7 @@ Name: SphinxBase + Description: Shared components for Sphinx speech recognition + Version: @VERSION@ + URL: http://www.cmusphinx.org/ +-Libs: -L${libdir} -lsphinxbase -lsphinxad @LIBS@ ++Libs: -L${libdir} -lsphinxbase -lsphinxad + Libs.private: ${libs} + Cflags: -I${includedir} -I${includedir}/sphinxbase + diff -Nru sphinxbase-0.8/debian/python-sphinxbase.install sphinxbase-0.8+5prealpha/debian/python-sphinxbase.install --- sphinxbase-0.8/debian/python-sphinxbase.install 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/python-sphinxbase.install 2015-09-19 14:35:52.000000000 +0000 @@ -0,0 +1 @@ +debian/tmp/usr/lib/python2* usr/lib diff -Nru sphinxbase-0.8/debian/rules sphinxbase-0.8+5prealpha/debian/rules --- sphinxbase-0.8/debian/rules 2013-10-10 16:23:38.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/rules 2015-09-19 15:14:19.000000000 +0000 @@ -1,105 +1,31 @@ #!/usr/bin/make -f -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +export DEB_BUILD_HARDENING=1 +%: + dh $@ --with autoreconf,python2 -# These are used for cross-compiling and for saving the configure script -# from having to guess our platform (since we know it already) -DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) - -CFLAGS = -Wall -g - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 +override_dh_auto_configure: + dh_auto_configure -- --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) --includedir=\$${prefix}/include/$(DEB_HOST_MULTIARCH) + +# Ignore testsuite failure on big-endian archs +ifneq (,$(filter $(shell dpkg-architecture -qDEB_HOST_ARCH),hppa mips powerpc powerpcspe ppc64 s390x sparc sparc64)) +override_dh_auto_test: + -dh_auto_test endif -PYVERS=$(shell pyversions -r) -config.status: configure - dh_testdir - dh_autotools-dev_updateconfig - ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --without-lapack $(BUILD_FIXED) CFLAGS="$(CFLAGS)" - - -build: build-arch build-indep -build-arch: build-stamp -build-indep: build-stamp -build-stamp: config.status - dh_testdir - $(MAKE) -ifneq ($(DEB_HOST_ARCH),powerpc) - $(MAKE) check -endif - $(RM) -r python/build - set -e; \ - for PYTHON in $(PYVERS); do \ - (cd python && $$PYTHON setup.py build); \ - done - set -e; \ - for PYTHON in $(PYVERS); do \ - (cd python && $$PYTHON-dbg setup.py build); \ - done - touch $@ +override_dh_clean: + dh_clean + -rm src/libsphinxbase/lm/jsgf_parser.h src/libsphinxbase/lm/jsgf_parser.c -clean: - dh_testdir - dh_testroot - rm -f build-stamp - [ ! -f Makefile ] || $(MAKE) distclean - dh_autotools-dev_restoreconfig - dh_clean - $(RM) -r debian/python-sphinxbase debian/python-sphinxbase-dbg - $(RM) -r python/build - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install - set -e; \ - for PYTHON in $(PYVERS); do \ - (cd python && $$PYTHON setup.py install --root=$(CURDIR)/debian/python-sphinxbase --install-layout=deb) ; \ - done - set -e; \ - for PYTHON in $(PYVERS); do \ - (cd python && $$PYTHON-dbg setup.py install --root=$(CURDIR)/debian/python-sphinxbase-dbg --install-layout=deb) ; \ - done - find debian/python-*-dbg ! -type d ! -name '*.so' | xargs rm -f - find debian/python-*-dbg -depth -empty -exec rmdir {} \; - -find debian -name '*.py[co]' | xargs rm -f - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - dh_installchangelogs ChangeLog +override_dh_installdocs: dh_installdocs - dh_installexamples - dh_install --sourcedir=debian/tmp -X.la - dh_installman - dh_link - dh_strip --exclude=_d.so - rm -rf debian/python-sphinxbase-dbg/usr/share/doc/python-sphinxbase-dbg - ln -s python-sphinxbase debian/python-sphinxbase-dbg/usr/share/doc/python-sphinxbase-dbg - dh_compress -X.py - dh_fixperms - dh_python2 - dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb + -ln -sf /usr/share/javascript/jquery/jquery.js debian/libsphinxbase-doc/usr/share/doc/libsphinxbase-doc/html/jquery.js -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install +override_dh_auto_install: + dh_auto_install + for file in $$(find debian/tmp/usr/lib/ -name "*.la"); do \ + rm $$file ; \ + done diff -Nru sphinxbase-0.8/debian/sphinxbase-utils.install sphinxbase-0.8+5prealpha/debian/sphinxbase-utils.install --- sphinxbase-0.8/debian/sphinxbase-utils.install 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/sphinxbase-utils.install 2013-01-02 00:09:04.000000000 +0000 @@ -1 +1 @@ -usr/bin/* +usr/bin diff -Nru sphinxbase-0.8/debian/sphinxbase-utils.manpages sphinxbase-0.8+5prealpha/debian/sphinxbase-utils.manpages --- sphinxbase-0.8/debian/sphinxbase-utils.manpages 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/sphinxbase-utils.manpages 2015-09-19 16:27:13.000000000 +0000 @@ -1,8 +1,3 @@ -debian/sphinx_fe.1 -debian/sphinx_pitch.1 -debian/sphinx_cepview.1 debian/sphinx_jsgf2fsg.1 -debian/sphinx_lm_eval.1 -doc/sphinx_lm_sort.1 -doc/sphinx_cont_adseg.1 -doc/sphinx_cont_fileseg.1 +doc/*.1 +doc/*.1.in diff -Nru sphinxbase-0.8/debian/sphinx_cepview.1 sphinxbase-0.8+5prealpha/debian/sphinx_cepview.1 --- sphinxbase-0.8/debian/sphinx_cepview.1 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/sphinx_cepview.1 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -.TH SPHINX_CEPVIEW 1 "2007-08-27" -.SH NAME -sphinx_cepview \- View acoustic feature files -.SH SYNOPSIS -.B sphinx_cepview -[\fI options \fR]... -.SH DESCRIPTION -.PP -This program reads acoustic feature files in Sphinx format and -displays their contents as text for inspection. -.TP -.B \-b -The beginning frame 0-based. -.TP -.B \-d -Number of displayed coefficients. -.TP -.B \-describe -Whether description will be shown. -.TP -.B \-e -The ending frame. -.TP -.B \-f -feature file. -.TP -.B \-header -Whether header is shown. -.TP -.B \-i -Number of coefficients in the feature vector. -.TP -.B \-logfn -file (default stdout/stderr) -.SH AUTHOR -Written by numerous people at CMU from 1994 onwards. This manual page -by David Huggins-Daines -.SH COPYRIGHT -Copyright \(co 1994-2007 Carnegie Mellon University. See the file -\fICOPYING\fR included with this package for more information. -.br diff -Nru sphinxbase-0.8/debian/sphinx_fe.1 sphinxbase-0.8+5prealpha/debian/sphinx_fe.1 --- sphinxbase-0.8/debian/sphinx_fe.1 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/sphinx_fe.1 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ -.TH SPHINX_FE 1 "2007-08-27" -.SH NAME -sphinx_fe \- Convert audio files to acoustic feature files -.SH SYNOPSIS -.B sphinx_fe -[\fI options \fR]... -.SH DESCRIPTION -.PP -This program converts audio files (in either Microsoft WAV, NIST -Sphere, or raw format) to acoustic feature files for input to -batch-mode speech recognition. The resulting files are also useful -for various other things. A list of options follows: -.TP -.B \-alpha -Preemphasis parameter -.TP -.B \-blocksize -Block size, used to limit the number of samples used at a time when reading very large audio files -.TP -.B \-c -file for batch processing -.TP -.B \-cep2spec -Input is cepstral files, output is log spectral files -.TP -.B \-di -directory, input file names are relative to this, if defined -.TP -.B \-dither -Add 1/2-bit noise -.TP -.B \-do -directory, output files are relative to this -.TP -.B \-doublebw -Use double bandwidth filters (same center freq) -.TP -.B \-ei -extension to be applied to all input files -.TP -.B \-eo -extension to be applied to all output files -.TP -.B \-example -Shows example of how to use the tool -.TP -.B \-fbtype -FB Type of mel_scale or log_linear -.TP -.B \-feat -SPHINX format - big endian -.TP -.B \-frate -Frame rate -.TP -.B \-help -Shows the usage of the tool -.TP -.B \-i -audio input file -.TP -.B \-input_endian -Endianness of input data, big or little, ignored if NIST or MS Wav -.TP -.B \-lifter -Length of sin-curve for liftering, or 0 for no liftering. -.TP -.B \-logspec -Write out logspectral files instead of cepstra -.TP -.B \-lowerf -Lower edge of filters -.TP -.B \-mach_endian -Endianness of machine, big or little -.TP -.B \-mswav -Defines input format as Microsoft Wav (RIFF) -.TP -.B \-ncep -Number of cep coefficients -.TP -.B \-nchans -Number of channels of data (interlaced samples assumed) -.TP -.B \-nfft -Size of FFT -.TP -.B \-nfilt -Number of filter banks -.TP -.B \-nist -Defines input format as NIST sphere -.TP -.B \-nskip -a control file was specified, the number of utterances to skip at the head of the file -.TP -.B \-o -cepstral output file -.TP -.B \-raw -Defines input format as raw binary data -.TP -.B \-remove_dc -Remove DC offset from each frame -.TP -.B \-round_filters -Round mel filter frequencies to DFT points -.TP -.B \-runlen -a control file was specified, the number of utterances to process (see \fB\-nskip\fR too) -.TP -.B \-samprate -Sampling rate -.TP -.B \-seed -Seed for random number generator; if less than zero, pick our own -.TP -.B \-smoothspec -Write out cepstral-smoothed logspectral files -.TP -.B \-spec2cep -Input is log spectral files, output is cepstral files -.TP -.B \-transform -Which type of transform to use to calculate cepstra (legacy, dct, or htk) -.TP -.B \-unit_area -Normalize mel filters to unit area -.TP -.B \-upperf -Upper edge of filters -.TP -.B \-verbose -Show input filenames -.TP -.B \-warp_params -defining the warping function -.TP -.B \-warp_type -Warping function type (or shape) -.TP -.B \-whichchan -Channel to process -.TP -.B \-wlen -Hamming window length -.PP -Currently the only kind of features supported are MFCCs (mel-frequency -cepstral coefficients). There are numerous options which control the -properties of the output features. It is \fBVERY\fR important that -you document the specific set of flags used to create any given set of -feature files, since this information is \fBNOT\fR recorded in the -files themselves, and any mismatch between the parameters used to -extract features for recognition and those used to extract features -for training will cause recognition to fail. -.SH AUTHOR -Written by numerous people at CMU from 1994 onwards. This manual page -by David Huggins-Daines -.SH COPYRIGHT -Copyright \(co 1994-2007 Carnegie Mellon University. See the file -\fICOPYING\fR included with this package for more information. -.br diff -Nru sphinxbase-0.8/debian/sphinx_lm_eval.1 sphinxbase-0.8+5prealpha/debian/sphinx_lm_eval.1 --- sphinxbase-0.8/debian/sphinx_lm_eval.1 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/sphinx_lm_eval.1 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -.TH SPHINX_LM_EVAL 1 "2008-05-12" -.SH NAME -sphinx_lm_eval \- Evaluate perplexity of a transcription -.SH SYNOPSIS -.B sphinx_lm_eval -[\fI options \fR]... -.SH DESCRIPTION -.PP -This program evaluates the perplexity of a text file according to a -given language model. The text file is assumed to be in transcript -format, i.e. one utterance per line, delimited by and . -.TP -.B \-help -Shows the usage of the tool -.TP -.B \-lm -model file -.TP -.B \-lmctlfn -file listing a set of language models -.TP -.B \-lmname -of language model in \fB\-lmctlfn\fR to use for all utterances -.TP -.B \-logbase -Base in which all log-likelihoods calculated -.TP -.B \-lsn -file to evaluate -.TP -.B \-lw -Language model weight -.TP -.B \-mmap -Use memory-mapped I/O for reading binary LM files -.TP -.B \-probdef -definition file for classes in LM -.TP -.B \-text -string to evaluate -.TP -.B \-uw -Unigram probability weight (interpolated with uniform distribution) -.TP -.B \-wip -Word insertion probability -.SH AUTHOR -David Huggins-Daines -.SH COPYRIGHT -Copyright \(co 2007-2008 Carnegie Mellon University. See the file -\fICOPYING\fR included with this package for more information. -.br diff -Nru sphinxbase-0.8/debian/sphinx_pitch.1 sphinxbase-0.8+5prealpha/debian/sphinx_pitch.1 --- sphinxbase-0.8/debian/sphinx_pitch.1 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/sphinx_pitch.1 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -.TH SPHINX_PITCH 1 "2007-05-12" -.SH NAME -sphinx_pitch \- Extract pitch from audio files -.SH SYNOPSIS -.B sphinx_pitch -[\fI options \fR]... -.SH DESCRIPTION -.PP -This program reads audio files and analyzes them for pitch and voicing. -.TP -.B \-c -file for batch processing -.TP -.B \-di -directory, input file names are relative to this, if defined -.TP -.B \-do -directory, output files are relative to this -.TP -.B \-ei -extension to be applied to all input files -.TP -.B \-eo -extension to be applied to all output files -.TP -.B \-flen -Number of seconds in each analysis frame (needs to be greater than twice the longest period you wish to detect - to detect down to 80Hz you need a frame length of 2.0/80 = 0.025). -.TP -.B \-fshift -Frame shift: number of seconds between each analysis frame. -.TP -.B \-i -audio input file -.TP -.B \-input_endian -of audio data (will be determined automatically if not given) -.TP -.B \-mswav -Defines input format as Microsoft Wav (RIFF) -.TP -.B \-nist -Defines input format as NIST sphere -.TP -.B \-nskip -If a control file was specified, the number of utterances to skip at the head of the file -.TP -.B \-o -text output file (standard output will be used if not given) -.TP -.B \-raw -Defines input format as raw binary data -.TP -.B \-runlen -If a control file was specified, the number of utterances to process (see \fB\-nskip\fR too) -.TP -.B \-samprate -Sampling rate of audio data (will be determined automatically if 0) -.TP -.B \-search_range -Fraction of the best local estimate to use as a search range for smoothing. -.TP -.B \-smooth_window -Number of frames on either side of the current frame to use for smoothing. -.TP -.B \-voice_thresh -Threshold of normalized difference under which to search for the fundamental period. -.SH AUTHOR -David Huggins-Daines -.SH COPYRIGHT -Copyright \(co 2007-2008 Carnegie Mellon University. See the file -\fICOPYING\fR included with this package for more information. -.br diff -Nru sphinxbase-0.8/debian/swig-sphinxbase.install sphinxbase-0.8+5prealpha/debian/swig-sphinxbase.install --- sphinxbase-0.8/debian/swig-sphinxbase.install 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/swig-sphinxbase.install 2015-09-19 15:31:45.000000000 +0000 @@ -0,0 +1 @@ +usr/share/sphinxbase/swig diff -Nru sphinxbase-0.8/debian/watch sphinxbase-0.8+5prealpha/debian/watch --- sphinxbase-0.8/debian/watch 2013-01-17 14:14:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/debian/watch 2013-01-02 00:08:14.000000000 +0000 @@ -1,3 +1,2 @@ version=3 - -http://sf.net/cmusphinx/sphinxbase-(.+)\.tar\.gz +http://sf.net/cmusphinx/sphinxbase-(.*)\.tar\.gz diff -Nru sphinxbase-0.8/depcomp sphinxbase-0.8+5prealpha/depcomp --- sphinxbase-0.8/depcomp 2012-12-05 14:08:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/depcomp 2015-03-24 17:27:12.000000000 +0000 @@ -1,10 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2009-04-28.21; # UTC +scriptversion=2013-05-30.07; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,9 +27,9 @@ case $1 in '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] @@ -40,11 +39,11 @@ Environment variables: depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. + 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. + tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . @@ -57,6 +56,66 @@ ;; esac +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 @@ -69,6 +128,9 @@ rm -f "$tmpdepfile" +# Avoid interferences from the environment. +gccflag= dashmflag= + # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case @@ -80,18 +142,32 @@ fi if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" - depmode=msvisualcpp + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc fi case "$depmode" in @@ -114,8 +190,7 @@ done "$@" stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -123,13 +198,17 @@ ;; gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then @@ -137,31 +216,31 @@ fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then 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. + # 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. +## 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 +## 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. +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -179,8 +258,7 @@ "$@" -MDupdate "$tmpdepfile" fi stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -188,43 +266,41 @@ 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 + # 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" + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" + make_dummy_depfile fi rm -f "$tmpdepfile" ;; +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the + # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + set_dir_from "$object" + set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u @@ -237,9 +313,7 @@ "$@" -M fi stat=$? - - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi @@ -248,44 +322,100 @@ do test -f "$tmpdepfile" && break done - if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; -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 +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : + # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -297,8 +427,8 @@ 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" + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -309,9 +439,8 @@ # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + set_dir_from "$object" + set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d @@ -322,8 +451,7 @@ "$@" +Maked fi stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi @@ -333,77 +461,107 @@ test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add `dependent.h:' lines. + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" else - echo "#dummy" > "$depfile" + make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi - 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" - ;; + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; #nosideeffect) # This comment above is used by automake to tell side-effect @@ -422,7 +580,7 @@ shift fi - # Remove `-o $object'. + # Remove '-o $object'. IFS=" " for arg do @@ -442,18 +600,18 @@ done test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' + # 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. + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$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" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -503,12 +661,15 @@ 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" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; @@ -525,7 +686,7 @@ shift fi - # Remove `-o $object'. + # Remove '-o $object'. IFS=" " for arg do @@ -544,10 +705,10 @@ 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" + "$@" -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" @@ -579,23 +740,23 @@ shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; + set fnord "$@" + shift + shift + ;; *) - set fnord "$@" "$arg" - shift - shift - ;; + set fnord "$@" "$arg" + shift + shift + ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; diff -Nru sphinxbase-0.8/doc/doxy2swig.py sphinxbase-0.8+5prealpha/doc/doxy2swig.py --- sphinxbase-0.8/doc/doxy2swig.py 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/doxy2swig.py 2015-05-14 16:38:44.000000000 +0000 @@ -0,0 +1,488 @@ +#!/usr/bin/env python +"""Doxygen XML to SWIG docstring converter. + +Usage: + + doxy2swig.py [options] input.xml output.i + +Converts Doxygen generated XML files into a file containing docstrings +that can be used by SWIG-1.3.x. Note that you need to get SWIG +version > 1.3.23 or use Robin Dunn's docstring patch to be able to use +the resulting output. + +input.xml is your doxygen generated XML file and output.i is where the +output will be written (the file will be clobbered). + +""" +###################################################################### +# +# This code is implemented using Mark Pilgrim's code as a guideline: +# http://www.faqs.org/docs/diveintopython/kgp_divein.html +# +# Author: Prabhu Ramachandran +# License: BSD style +# +# Thanks: +# Johan Hake: the include_function_definition feature +# Bill Spotz: bug reports and testing. +# Sebastian Henschel: Misc. enhancements. +# +###################################################################### + +from xml.dom import minidom +import re +import textwrap +import sys +import types +import os.path +import optparse + +# TODO: do not process unnecessary files + +TYPEMAP = { + 'cmd_ln_t': ('Config', 'cmd_ln_'), + 'fe_t': ('FrontEnd', 'fe_'), + 'feat_t': ('Feature', 'feat_'), + 'fsg_model_t': ('FsgModel', 'fsg_model_'), + 'jsgf_t': ('Jsgf', 'jsgf_'), + 'ngram_model_set_t': ('NGramModelSet', 'ngram_model_set_'), + 'ngram_model_t': ('NGramModel', 'ngram_model_'), +} + +USE_PREFIXES = [ + 'cmd__ln_8', + 'fe_8', + 'feat_', + 'fsg__model_', + 'jsgf_8', + 'ngram__model_' +] + +def my_open_read(source): + if hasattr(source, "read"): + return source + else: + return open(source) + +def my_open_write(dest): + if hasattr(dest, "write"): + return dest + else: + return open(dest, 'w') + + +class Doxy2SWIG: + """Converts Doxygen generated XML files into a file containing + docstrings that can be used by SWIG-1.3.x that have support for + feature("docstring"). Once the data is parsed it is stored in + self.pieces. + + """ + + def __init__(self, src, include_function_definition=True, quiet=False): + """Initialize the instance given a source object. `src` can + be a file or filename. If you do not want to include function + definitions from doxygen then set + `include_function_definition` to `False`. This is handy since + this allows you to use the swig generated function definition + using %feature("autodoc", [0,1]). + + """ + f = my_open_read(src) + self.my_dir = os.path.dirname(f.name) + self.xmldoc = minidom.parse(f).documentElement + f.close() + + self.pieces = [] + self.pieces.append('\n// File: %s\n'%\ + os.path.basename(f.name)) + + self.space_re = re.compile(r'\s+') + self.lead_spc = re.compile(r'^(%feature\S+\s+\S+\s*?)"\s+(\S)') + self.multi = 0 + self.ignores = ['inheritancegraph', 'param', 'listofallmembers', + 'innerclass', 'name', 'declname', 'incdepgraph', + 'invincdepgraph', 'programlisting', 'type', + 'references', 'referencedby', 'location', + 'collaborationgraph', 'reimplements', + 'reimplementedby', 'derivedcompoundref', + 'basecompoundref'] + #self.generics = [] + self.include_function_definition = include_function_definition + if not include_function_definition: + self.ignores.append('argsstring') + + self.quiet = quiet + + + def generate(self): + """Parses the file set in the initialization. The resulting + data is stored in `self.pieces`. + + """ + self.parse(self.xmldoc) + + def parse(self, node): + """Parse a given node. This function in turn calls the + `parse_` functions which handle the respective + nodes. + + """ + pm = getattr(self, "parse_%s"%node.__class__.__name__) + pm(node) + + def parse_Document(self, node): + self.parse(node.documentElement) + + def parse_Text(self, node): + txt = node.data + txt = txt.replace('\\', r'\\\\') + txt = txt.replace('"', r'\"') + # ignore pure whitespace + m = self.space_re.match(txt) + if m and len(m.group()) == len(txt): + pass + else: + self.add_text(textwrap.fill(txt, break_long_words=False)) + + def parse_Element(self, node): + """Parse an `ELEMENT_NODE`. This calls specific + `do_` handers for different elements. If no handler + is available the `generic_parse` method is called. All + tagNames specified in `self.ignores` are simply ignored. + + """ + name = node.tagName + ignores = self.ignores + if name in ignores: + return + attr = "do_%s" % name + if hasattr(self, attr): + handlerMethod = getattr(self, attr) + handlerMethod(node) + else: + self.generic_parse(node) + #if name not in self.generics: self.generics.append(name) + + def parse_Comment(self, node): + """Parse a `COMMENT_NODE`. This does nothing for now.""" + return + + def add_text(self, value): + """Adds text corresponding to `value` into `self.pieces`.""" + if isinstance(value, tuple) or isinstance(value, list): + self.pieces.extend(value) + else: + self.pieces.append(value) + + def get_specific_nodes(self, node, names): + """Given a node and a sequence of strings in `names`, return a + dictionary containing the names as keys and child + `ELEMENT_NODEs`, that have a `tagName` equal to the name. + + """ + nodes = [(x.tagName, x) for x in node.childNodes \ + if x.nodeType == x.ELEMENT_NODE and \ + x.tagName in names] + return dict(nodes) + + def generic_parse(self, node, pad=0): + """A Generic parser for arbitrary tags in a node. + + Parameters: + + - node: A node in the DOM. + - pad: `int` (default: 0) + + If 0 the node data is not padded with newlines. If 1 it + appends a newline after parsing the childNodes. If 2 it + pads before and after the nodes are processed. Defaults to + 0. + + """ + npiece = 0 + if pad: + npiece = len(self.pieces) + if pad == 2: + self.add_text('\n') + for n in node.childNodes: + self.parse(n) + if pad: + if len(self.pieces) > npiece: + self.add_text('\n') + + def space_parse(self, node): + self.add_text(' ') + self.generic_parse(node) + + do_ref = space_parse + do_emphasis = space_parse + do_bold = space_parse + do_computeroutput = space_parse + do_formula = space_parse + + def do_compoundname(self, node): + self.add_text('\n\n') + data = node.firstChild.data + self.add_text('%%feature("docstring") %s "\n' % data) + + def do_compounddef(self, node): + kind = node.attributes['kind'].value + if kind in ('class', 'struct'): + prot = node.attributes['prot'].value + if prot != 'public': + return + names = ('compoundname', 'briefdescription', + 'detaileddescription', 'includes') + first = self.get_specific_nodes(node, names) + for n in names: + if first.has_key(n): + self.parse(first[n]) + self.add_text(['";','\n']) + for n in node.childNodes: + if n not in first.values(): + self.parse(n) + elif kind in ('file', 'namespace'): + nodes = node.getElementsByTagName('sectiondef') + for n in nodes: + self.parse(n) + + def do_includes(self, node): + self.add_text('C++ includes: ') + self.generic_parse(node, pad=1) + + def do_parameterlist(self, node): + text='unknown' + for key, val in node.attributes.items(): + if key == 'kind': + if val == 'param': text = 'Parameters' + elif val == 'exception': text = 'Exceptions' + else: text = val + break + self.add_text(['\n', '\n', text, ':', '\n']) + self.generic_parse(node, pad=1) + + def do_para(self, node): + self.add_text('\n') + self.generic_parse(node, pad=1) + + def do_parametername(self, node): + self.add_text('\n') + try: + data=node.firstChild.data + except AttributeError: # perhaps a tag in it + data=node.firstChild.firstChild.data + if data.find('Exception') != -1: + self.add_text(data) + else: + self.add_text("%s: "%data) + + def do_parameterdefinition(self, node): + self.generic_parse(node, pad=1) + + def do_detaileddescription(self, node): + self.generic_parse(node, pad=1) + + def do_briefdescription(self, node): + self.generic_parse(node, pad=1) + + def do_memberdef(self, node): + prot = node.attributes['prot'].value + id = node.attributes['id'].value + kind = node.attributes['kind'].value + tmp = node.parentNode.parentNode.parentNode + compdef = tmp.getElementsByTagName('compounddef')[0] + cdef_kind = compdef.attributes['kind'].value + + if prot == 'public': + first = self.get_specific_nodes(node, ('definition', 'name')) + name = first['name'].firstChild.data + + for n in node.getElementsByTagName('param'): + arg_type = n.getElementsByTagName('type')[0] + ref = self.get_specific_nodes(arg_type, ('ref')) + if 'ref' in ref: + type_name = ref['ref'].firstChild.data + # TODO: check argument position + if type_name in TYPEMAP: + alias, prefix = TYPEMAP[type_name] + short_name = name.replace(prefix, '') + if not re.match(r'^\d', short_name): + name = alias + '::' + name.replace(prefix, '') + break + + if name[:8] == 'operator': # Don't handle operators yet. + return + + if not ('definition' in first) or \ + kind in ['variable', 'typedef']: + return + + if self.include_function_definition: + defn = first['definition'].firstChild.data + else: + defn = "" + self.add_text('\n') + self.add_text('%feature("docstring") ') + + anc = node.parentNode.parentNode + if cdef_kind in ('file', 'namespace'): + ns_node = anc.getElementsByTagName('innernamespace') + if not ns_node and cdef_kind == 'namespace': + ns_node = anc.getElementsByTagName('compoundname') + if ns_node: + ns = ns_node[0].firstChild.data + self.add_text(' %s::%s "\n%s'%(ns, name, defn)) + else: + self.add_text(' %s "\n%s'%(name, defn)) + elif cdef_kind in ('class', 'struct'): + # Get the full function name. + anc_node = anc.getElementsByTagName('compoundname') + cname = anc_node[0].firstChild.data + self.add_text(' %s::%s "\n%s'%(cname, name, defn)) + + for n in node.childNodes: + if n not in first.values(): + self.parse(n) + self.add_text(['";', '\n']) + + def do_definition(self, node): + data = node.firstChild.data + self.add_text('%s "\n%s'%(data, data)) + + def do_sectiondef(self, node): + kind = node.attributes['kind'].value + if kind in ('public-func', 'func', 'user-defined', ''): + self.generic_parse(node) + + def do_header(self, node): + """For a user defined section def a header field is present + which should not be printed as such, so we comment it in the + output.""" + data = node.firstChild.data + self.add_text('\n/*\n %s \n*/\n'%data) + # If our immediate sibling is a 'description' node then we + # should comment that out also and remove it from the parent + # node's children. + parent = node.parentNode + idx = parent.childNodes.index(node) + if len(parent.childNodes) >= idx + 2: + nd = parent.childNodes[idx+2] + if nd.nodeName == 'description': + nd = parent.removeChild(nd) + self.add_text('\n/*') + self.generic_parse(nd) + self.add_text('\n*/\n') + + def do_simplesect(self, node): + kind = node.attributes['kind'].value + if kind in ('date', 'rcs', 'version'): + pass + elif kind == 'warning': + self.add_text(['\n', 'WARNING: ']) + self.generic_parse(node) + elif kind == 'see': + self.add_text('\n') + self.add_text('See: ') + self.generic_parse(node) + else: + self.generic_parse(node) + + def do_argsstring(self, node): + self.generic_parse(node, pad=1) + + def do_member(self, node): + kind = node.attributes['kind'].value + refid = node.attributes['refid'].value + if kind == 'function' and refid[:9] == 'namespace': + self.generic_parse(node) + + def do_doxygenindex(self, node): + self.multi = 1 + comps = node.getElementsByTagName('compound') + for c in comps: + refid = c.attributes['refid'].value + fname = refid + '.xml' + for prefix in USE_PREFIXES: + if fname.startswith(prefix): + if not os.path.exists(fname): + fname = os.path.join(self.my_dir, fname) + if not self.quiet: + print ("parsing file: %s" % fname) + p = Doxy2SWIG(fname, self.include_function_definition, self.quiet) + p.generate() + self.pieces.extend(self.clean_pieces(p.pieces)) + break + + def write(self, fname): + o = my_open_write(fname) + if self.multi: + o.write("".join(self.pieces)) + else: + o.write("".join(self.clean_pieces(self.pieces))) + o.close() + + def clean_pieces(self, pieces): + """Cleans the list of strings given as `pieces`. It replaces + multiple newlines by a maximum of 2 and returns a new list. + It also wraps the paragraphs nicely. + + """ + ret = [] + count = 0 + for i in pieces: + if i == '\n': + count = count + 1 + else: + if i == '";': + if count: + ret.append('\n') + elif count > 2: + ret.append('\n\n') + elif count: + ret.append('\n'*count) + count = 0 + ret.append(i) + + _data = "".join(ret) + ret = [] + for i in _data.split('\n\n'): + if i == 'Parameters:' or i == 'Exceptions:': + ret.extend([i, '\n-----------', '\n\n']) + elif i.find('// File:') > -1: # leave comments alone. + ret.extend([i, '\n']) + else: + _tmp = textwrap.fill(i.strip(), break_long_words=False) + _tmp = self.lead_spc.sub(r'\1"\2', _tmp) + ret.extend([_tmp, '\n\n']) + return ret + + +def convert(input, output, include_function_definition=True, quiet=False): + p = Doxy2SWIG(input, include_function_definition, quiet) + p.generate() + p.write(output) + +def main(): + usage = __doc__ + parser = optparse.OptionParser(usage) + parser.add_option("-n", '--no-function-definition', + action='store_true', + default=False, + dest='func_def', + help='do not include doxygen function definitions') + parser.add_option("-q", '--quiet', + action='store_true', + default=False, + dest='quiet', + help='be quiet and minimize output') + + options, args = parser.parse_args() + if len(args) != 2: + parser.error("error: no input and output specified") + + convert(args[0], args[1], not options.func_def, options.quiet) + + +if __name__ == '__main__': + main() diff -Nru sphinxbase-0.8/doc/doxyfile.in sphinxbase-0.8+5prealpha/doc/doxyfile.in --- sphinxbase-0.8/doc/doxyfile.in 2012-12-05 14:06:18.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/doxyfile.in 2015-06-09 19:31:07.000000000 +0000 @@ -31,7 +31,7 @@ # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.6 +PROJECT_NUMBER = @VERSION@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. @@ -908,7 +908,7 @@ # generate an XML file that captures the structure of # the code including all documentation. -GENERATE_XML = NO +GENERATE_XML = YES # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be diff -Nru sphinxbase-0.8/doc/Makefile.am sphinxbase-0.8+5prealpha/doc/Makefile.am --- sphinxbase-0.8/doc/Makefile.am 2012-12-05 14:06:18.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/Makefile.am 2015-05-14 19:36:42.000000000 +0000 @@ -1,52 +1,72 @@ -EXTRA_DIST = args2man.pl \ +man_MANS = \ + sphinx_cepview.1 \ + sphinx_cont_seg.1 \ + sphinx_fe.1 \ + sphinx_lm_convert.1 \ + sphinx_lm_eval.1 \ + sphinx_lm_sort.1 \ + sphinx_pitch.1 + +EXTRA_DIST = \ + args2man.pl \ + doxy2swig.py \ sphinx_cepview.1.in \ + sphinx_cont_seg.1.in \ sphinx_fe.1.in \ sphinx_pitch.1.in \ - sphinx_cont_adseg.1 \ - sphinx_cont_fileseg.1 \ - sphinx_lm_sort.1 + sphinx_cepview.1 \ + sphinx_cont_seg.1 \ + sphinx_fe.1 \ + sphinx_lm_convert.1 \ + sphinx_lm_eval.1 \ + sphinx_lm_sort.1 \ + sphinx_pitch.1 + +if BUILD_SWIG +SWIG_DOC = pydoc.i + +pydoc.i: html/index.html + $(PYTHON) $(srcdir)/doxy2swig.py -n xml/index.xml pydoc.i +endif if BUILD_DOXYGEN -all-local: html/index.html +all-local: html/index.html $(SWIG_DOC) endif -headers = \ - $(top_srcdir)/include/sphinxbase/ad.h \ - $(top_srcdir)/include/sphinxbase/agc.h \ - $(top_srcdir)/include/sphinxbase/bio.h \ - $(top_srcdir)/include/sphinxbase/bitvec.h \ - $(top_srcdir)/include/sphinxbase/byteorder.h \ - $(top_srcdir)/include/sphinxbase/case.h \ - $(top_srcdir)/include/sphinxbase/ckd_alloc.h \ - $(top_srcdir)/include/sphinxbase/clapack_lite.h \ - $(top_srcdir)/include/sphinxbase/cmd_ln.h \ - $(top_srcdir)/include/sphinxbase/cmn.h \ - $(top_srcdir)/include/sphinxbase/cont_ad.h \ - $(top_srcdir)/include/sphinxbase/err.h \ - $(top_srcdir)/include/sphinxbase/f2c.h \ - $(top_srcdir)/include/sphinxbase/feat.h \ - $(top_srcdir)/include/sphinxbase/fe.h \ - $(top_srcdir)/include/sphinxbase/filename.h \ - $(top_srcdir)/include/sphinxbase/fixpoint.h \ - $(top_srcdir)/include/sphinxbase/fsg_model.h \ - $(top_srcdir)/include/sphinxbase/genrand.h \ - $(top_srcdir)/include/sphinxbase/glist.h \ - $(top_srcdir)/include/sphinxbase/hash_table.h \ - $(top_srcdir)/include/sphinxbase/heap.h \ - $(top_srcdir)/include/sphinxbase/info.h \ - $(top_srcdir)/include/sphinxbase/jsgf.h \ - $(top_srcdir)/include/sphinxbase/listelem_alloc.h \ - $(top_srcdir)/include/sphinxbase/logmath.h \ - $(top_srcdir)/include/sphinxbase/matrix.h \ - $(top_srcdir)/include/sphinxbase/mmio.h \ - $(top_srcdir)/include/sphinxbase/mulaw.h \ - $(top_srcdir)/include/sphinxbase/ngram_model.h \ - $(top_srcdir)/include/sphinxbase/pio.h \ - $(top_srcdir)/include/sphinxbase/prim_type.h \ - $(top_srcdir)/include/sphinxbase/profile.h \ - $(top_srcdir)/include/sphinxbase/sphinxbase_export.h \ - $(top_srcdir)/include/sphinxbase/strfuncs.h \ - $(top_srcdir)/include/sphinxbase/unlimit.h \ +headers = \ + $(top_srcdir)/include/sphinxbase/ad.h \ + $(top_srcdir)/include/sphinxbase/agc.h \ + $(top_srcdir)/include/sphinxbase/bio.h \ + $(top_srcdir)/include/sphinxbase/bitvec.h \ + $(top_srcdir)/include/sphinxbase/byteorder.h \ + $(top_srcdir)/include/sphinxbase/case.h \ + $(top_srcdir)/include/sphinxbase/ckd_alloc.h \ + $(top_srcdir)/include/sphinxbase/clapack_lite.h \ + $(top_srcdir)/include/sphinxbase/cmd_ln.h \ + $(top_srcdir)/include/sphinxbase/cmn.h \ + $(top_srcdir)/include/sphinxbase/err.h \ + $(top_srcdir)/include/sphinxbase/f2c.h \ + $(top_srcdir)/include/sphinxbase/fe.h \ + $(top_srcdir)/include/sphinxbase/feat.h \ + $(top_srcdir)/include/sphinxbase/filename.h \ + $(top_srcdir)/include/sphinxbase/fixpoint.h \ + $(top_srcdir)/include/sphinxbase/fsg_model.h \ + $(top_srcdir)/include/sphinxbase/genrand.h \ + $(top_srcdir)/include/sphinxbase/glist.h \ + $(top_srcdir)/include/sphinxbase/hash_table.h \ + $(top_srcdir)/include/sphinxbase/heap.h \ + $(top_srcdir)/include/sphinxbase/jsgf.h \ + $(top_srcdir)/include/sphinxbase/listelem_alloc.h \ + $(top_srcdir)/include/sphinxbase/logmath.h \ + $(top_srcdir)/include/sphinxbase/matrix.h \ + $(top_srcdir)/include/sphinxbase/mmio.h \ + $(top_srcdir)/include/sphinxbase/mulaw.h \ + $(top_srcdir)/include/sphinxbase/ngram_model.h \ + $(top_srcdir)/include/sphinxbase/pio.h \ + $(top_srcdir)/include/sphinxbase/prim_type.h \ + $(top_srcdir)/include/sphinxbase/profile.h \ + $(top_srcdir)/include/sphinxbase/sphinxbase_export.h \ + $(top_srcdir)/include/sphinxbase/strfuncs.h \ $(top_srcdir)/include/sphinxbase/yin.h latex/refman.pdf: doxyfile $(headers) @@ -57,8 +77,5 @@ doxygen clean-local: - -rm -rf html latex doxytags + -rm -rf html latex xml doxytags $(SWIG_DOC) -# Totally CMU-specific rule for uploading documentation -upload: html/index.html - rsync -av html/ fife:/usr12/apache2/htdocs/sphinx/doc/doxygen/sphinxbase/ diff -Nru sphinxbase-0.8/doc/Makefile.in sphinxbase-0.8+5prealpha/doc/Makefile.in --- sphinxbase-0.8/doc/Makefile.in 2012-12-12 17:28:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/Makefile.in 2015-05-14 19:36:53.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -34,15 +78,14 @@ build_triplet = @build@ host_triplet = @host@ subdir = doc -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/doxyfile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -50,11 +93,61 @@ $(top_builddir)/include/sphinx_config.h CONFIG_CLEAN_FILES = doxyfile CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +man1dir = $(mandir)/man1 +am__installdirs = "$(DESTDIR)$(man1dir)" +NROFF = nroff +MANS = $(man_MANS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -68,6 +161,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -77,9 +171,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -87,15 +179,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -111,27 +202,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -164,14 +261,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -180,51 +280,65 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = args2man.pl \ +man_MANS = \ + sphinx_cepview.1 \ + sphinx_cont_seg.1 \ + sphinx_fe.1 \ + sphinx_lm_convert.1 \ + sphinx_lm_eval.1 \ + sphinx_lm_sort.1 \ + sphinx_pitch.1 + +EXTRA_DIST = \ + args2man.pl \ + doxy2swig.py \ sphinx_cepview.1.in \ + sphinx_cont_seg.1.in \ sphinx_fe.1.in \ sphinx_pitch.1.in \ - sphinx_cont_adseg.1 \ - sphinx_cont_fileseg.1 \ - sphinx_lm_sort.1 + sphinx_cepview.1 \ + sphinx_cont_seg.1 \ + sphinx_fe.1 \ + sphinx_lm_convert.1 \ + sphinx_lm_eval.1 \ + sphinx_lm_sort.1 \ + sphinx_pitch.1 +@BUILD_SWIG_TRUE@SWIG_DOC = pydoc.i headers = \ - $(top_srcdir)/include/sphinxbase/ad.h \ - $(top_srcdir)/include/sphinxbase/agc.h \ - $(top_srcdir)/include/sphinxbase/bio.h \ - $(top_srcdir)/include/sphinxbase/bitvec.h \ - $(top_srcdir)/include/sphinxbase/byteorder.h \ - $(top_srcdir)/include/sphinxbase/case.h \ - $(top_srcdir)/include/sphinxbase/ckd_alloc.h \ - $(top_srcdir)/include/sphinxbase/clapack_lite.h \ - $(top_srcdir)/include/sphinxbase/cmd_ln.h \ - $(top_srcdir)/include/sphinxbase/cmn.h \ - $(top_srcdir)/include/sphinxbase/cont_ad.h \ - $(top_srcdir)/include/sphinxbase/err.h \ - $(top_srcdir)/include/sphinxbase/f2c.h \ - $(top_srcdir)/include/sphinxbase/feat.h \ - $(top_srcdir)/include/sphinxbase/fe.h \ - $(top_srcdir)/include/sphinxbase/filename.h \ - $(top_srcdir)/include/sphinxbase/fixpoint.h \ - $(top_srcdir)/include/sphinxbase/fsg_model.h \ - $(top_srcdir)/include/sphinxbase/genrand.h \ - $(top_srcdir)/include/sphinxbase/glist.h \ - $(top_srcdir)/include/sphinxbase/hash_table.h \ - $(top_srcdir)/include/sphinxbase/heap.h \ - $(top_srcdir)/include/sphinxbase/info.h \ - $(top_srcdir)/include/sphinxbase/jsgf.h \ - $(top_srcdir)/include/sphinxbase/listelem_alloc.h \ - $(top_srcdir)/include/sphinxbase/logmath.h \ - $(top_srcdir)/include/sphinxbase/matrix.h \ - $(top_srcdir)/include/sphinxbase/mmio.h \ - $(top_srcdir)/include/sphinxbase/mulaw.h \ - $(top_srcdir)/include/sphinxbase/ngram_model.h \ - $(top_srcdir)/include/sphinxbase/pio.h \ - $(top_srcdir)/include/sphinxbase/prim_type.h \ - $(top_srcdir)/include/sphinxbase/profile.h \ - $(top_srcdir)/include/sphinxbase/sphinxbase_export.h \ - $(top_srcdir)/include/sphinxbase/strfuncs.h \ - $(top_srcdir)/include/sphinxbase/unlimit.h \ + $(top_srcdir)/include/sphinxbase/ad.h \ + $(top_srcdir)/include/sphinxbase/agc.h \ + $(top_srcdir)/include/sphinxbase/bio.h \ + $(top_srcdir)/include/sphinxbase/bitvec.h \ + $(top_srcdir)/include/sphinxbase/byteorder.h \ + $(top_srcdir)/include/sphinxbase/case.h \ + $(top_srcdir)/include/sphinxbase/ckd_alloc.h \ + $(top_srcdir)/include/sphinxbase/clapack_lite.h \ + $(top_srcdir)/include/sphinxbase/cmd_ln.h \ + $(top_srcdir)/include/sphinxbase/cmn.h \ + $(top_srcdir)/include/sphinxbase/err.h \ + $(top_srcdir)/include/sphinxbase/f2c.h \ + $(top_srcdir)/include/sphinxbase/fe.h \ + $(top_srcdir)/include/sphinxbase/feat.h \ + $(top_srcdir)/include/sphinxbase/filename.h \ + $(top_srcdir)/include/sphinxbase/fixpoint.h \ + $(top_srcdir)/include/sphinxbase/fsg_model.h \ + $(top_srcdir)/include/sphinxbase/genrand.h \ + $(top_srcdir)/include/sphinxbase/glist.h \ + $(top_srcdir)/include/sphinxbase/hash_table.h \ + $(top_srcdir)/include/sphinxbase/heap.h \ + $(top_srcdir)/include/sphinxbase/jsgf.h \ + $(top_srcdir)/include/sphinxbase/listelem_alloc.h \ + $(top_srcdir)/include/sphinxbase/logmath.h \ + $(top_srcdir)/include/sphinxbase/matrix.h \ + $(top_srcdir)/include/sphinxbase/mmio.h \ + $(top_srcdir)/include/sphinxbase/mulaw.h \ + $(top_srcdir)/include/sphinxbase/ngram_model.h \ + $(top_srcdir)/include/sphinxbase/pio.h \ + $(top_srcdir)/include/sphinxbase/prim_type.h \ + $(top_srcdir)/include/sphinxbase/profile.h \ + $(top_srcdir)/include/sphinxbase/sphinxbase_export.h \ + $(top_srcdir)/include/sphinxbase/strfuncs.h \ $(top_srcdir)/include/sphinxbase/yin.h all: all-am @@ -239,9 +353,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/Makefile + $(AUTOMAKE) --foreign doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -268,11 +382,54 @@ clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +install-man1: $(man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(man_MANS)'; \ + test -n "$(man1dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.1[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -308,8 +465,11 @@ check-am: all-am check: check-am @BUILD_DOXYGEN_FALSE@all-local: -all-am: Makefile all-local +all-am: Makefile $(MANS) all-local installdirs: + for dir in "$(DESTDIR)$(man1dir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install: install-am install-exec: install-exec-am install-data: install-data-am @@ -320,10 +480,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -355,7 +520,7 @@ info-am: -install-data-am: +install-data-am: install-man install-dvi: install-dvi-am @@ -371,7 +536,7 @@ install-info-am: -install-man: +install-man: install-man1 install-pdf: install-pdf-am @@ -399,24 +564,30 @@ ps-am: -uninstall-am: +uninstall-am: uninstall-man + +uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ - clean-libtool clean-local distclean distclean-generic \ - distclean-libtool distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am + clean-libtool clean-local cscopelist-am ctags-am distclean \ + distclean-generic distclean-libtool distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man1 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-man uninstall-man1 -@BUILD_DOXYGEN_TRUE@all-local: html/index.html +@BUILD_SWIG_TRUE@pydoc.i: html/index.html +@BUILD_SWIG_TRUE@ $(PYTHON) $(srcdir)/doxy2swig.py -n xml/index.xml pydoc.i + +@BUILD_DOXYGEN_TRUE@all-local: html/index.html $(SWIG_DOC) latex/refman.pdf: doxyfile $(headers) doxygen @@ -426,11 +597,7 @@ doxygen clean-local: - -rm -rf html latex doxytags - -# Totally CMU-specific rule for uploading documentation -upload: html/index.html - rsync -av html/ fife:/usr12/apache2/htdocs/sphinx/doc/doxygen/sphinxbase/ + -rm -rf html latex xml doxytags $(SWIG_DOC) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru sphinxbase-0.8/doc/sphinx_cepview.1 sphinxbase-0.8+5prealpha/doc/sphinx_cepview.1 --- sphinxbase-0.8/doc/sphinx_cepview.1 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/sphinx_cepview.1 2015-05-14 19:36:42.000000000 +0000 @@ -0,0 +1,41 @@ +.TH SPHINX_CEPVIEW 1 "2007-08-27" +.SH NAME +sphinx_cepview \- View acoustic feature files +.SH SYNOPSIS +.B sphinx_cepview +[\fI options \fR]... +.SH DESCRIPTION +.PP +This program reads acoustic feature files in Sphinx format and +displays their contents as text for inspection. +.TP +.B \-b +The beginning frame 0-based. +.TP +.B \-d +Number of displayed coefficients. +.TP +.B \-describe +Whether description will be shown. +.TP +.B \-e +The ending frame. +.TP +.B \-f +feature file. +.TP +.B \-header +Whether header is shown. +.TP +.B \-i +Number of coefficients in the feature vector. +.TP +.B \-logfn +file (default stdout/stderr) +.SH AUTHOR +Written by numerous people at CMU from 1994 onwards. This manual page +by David Huggins-Daines +.SH COPYRIGHT +Copyright \(co 1994-2007 Carnegie Mellon University. See the file +\fICOPYING\fR included with this package for more information. +.br diff -Nru sphinxbase-0.8/doc/sphinx_cont_adseg.1 sphinxbase-0.8+5prealpha/doc/sphinx_cont_adseg.1 --- sphinxbase-0.8/doc/sphinx_cont_adseg.1 2012-12-05 14:06:18.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/sphinx_cont_adseg.1 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -.TH SPHINX_CONT_ADSEG 1 "2008-05-12" -.SH NAME -sphinx_cont_adseg \- Read audio from the audio device and segment it -.SH SYNOPSIS -.B sphinx_cont_adseg -.I sampling-rate -.I silence-threshold -.SH DESCRIPTION -.PP -This program reads audio from the system audio device and segments it -into individual non-silence regions. The argument -.I sampling-rate -is the sampling rate to read audio at (e.g. 16000), while the argument -.I silence-threshold -is the number of seconds to wait before deciding that a non-silence -region is done (e.g. 1.0). -.SH AUTHOR -Written by M. K. Ravishankar . This manual page -by David Huggins-Daines -.SH COPYRIGHT -Copyright \(co 1999-2001 Carnegie Mellon University. See the file -\fICOPYING\fR included with this package for more information. -.br diff -Nru sphinxbase-0.8/doc/sphinx_cont_fileseg.1 sphinxbase-0.8+5prealpha/doc/sphinx_cont_fileseg.1 --- sphinxbase-0.8/doc/sphinx_cont_fileseg.1 2012-12-05 14:06:18.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/sphinx_cont_fileseg.1 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ -.TH SPHINX_CONT_ADSEG 1 "2008-05-12" -.SH NAME -sphinx_cont_fileseg \- Segment a waveform file into non-silence regions -.SH SYNOPSIS -.B sphinx_cont_fileseg -[ -.B -? | -h -] -[ -.B \-d | \-debug -] -[ -.B \-sps -.I sampling-rate (16000) -] -[ -.B \-b | \-byteswap -] -[ -{ -.B \-s | \-silsep -} -.I length-silence-separator(sec) (0.5) -] -[ -.B \-w | \-writeseg -] -[ -.B \-min-noise -.I min-noise -] -[ -.B \-max-noise -.I max-noise -] -[ -.B \-delta-sil -.I delta-sil -] -[ -.B \-delta-speech -.I delta-speech -] -[ -.B \-sil-onset -.I sil-onset -] -[ -.B -speech-onset -.I speech-onset -] -[ -.B \-adapt-rate -.I adapt-rate -] -[ -.B \-max-adreadsize -.I ad_read_blksize -] -[ -.B -c -.I copy-input-file -] -[ -.B -r | -rawmode -] -.B -i -.I input-file -.SH DESCRIPTION -.PP -This program reads an input file and segments it -into individual non-silence regions. -.SH AUTHOR -Written by M. K. Ravishankar . This (rather lousy) manual page -by David Huggins-Daines -.SH COPYRIGHT -Copyright \(co 1999-2001 Carnegie Mellon University. See the file -\fICOPYING\fR included with this package for more information. -.br diff -Nru sphinxbase-0.8/doc/sphinx_cont_seg.1 sphinxbase-0.8+5prealpha/doc/sphinx_cont_seg.1 --- sphinxbase-0.8/doc/sphinx_cont_seg.1 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/sphinx_cont_seg.1 2015-05-14 19:36:42.000000000 +0000 @@ -0,0 +1,117 @@ +.TH SPHINX_CONT_SEG 1 "2008-05-12" +.SH NAME +sphinx_cont_seg \- Segment a waveform file into non-silence regions +.SH SYNOPSIS +.B sphinx_cont_seg +[\fI options \fR]... +.SH DESCRIPTION +.PP +This program reads an input file and segments it into individual +non-silence regions. It can process either file or read data from +microphone. Use following arguments: +.TP +.B \-adcdev +of audio device to use for input. +.TP +.B \-alpha +Preemphasis parameter +.TP +.B \-argfile +file giving extra arguments. +.TP +.B \-dither +Add 1/2-bit noise +.TP +.B \-doublebw +Use double bandwidth filters (same center freq) +.TP +.B \-frate +Frame rate +.TP +.B \-infile +of audio file to use for input. +.TP +.B \-input_endian +Endianness of input data, big or little, ignored if NIST or MS Wav +.TP +.B \-lifter +Length of sin-curve for liftering, or 0 for no liftering. +.TP +.B \-logspec +Write out logspectral files instead of cepstra +.TP +.B \-lowerf +Lower edge of filters +.TP +.B \-ncep +Number of cep coefficients +.TP +.B \-nfft +Size of FFT +.TP +.B \-nfilt +Number of filter banks +.TP +.B \-remove_dc +Remove DC offset from each frame +.TP +.B \-remove_noise +Remove noise with spectral subtraction in mel-energies +.TP +.B \-remove_silence +Enables VAD, removes silence frames from processing +.TP +.B \-round_filters +Round mel filter frequencies to DFT points +.TP +.B \-samprate +Sampling rate +.TP +.B \-seed +Seed for random number generator; if less than zero, pick our own +.TP +.B \-singlefile +a single cleaned file. +.TP +.B \-smoothspec +Write out cepstral-smoothed logspectral files +.TP +.B \-transform +Which type of transform to use to calculate cepstra (legacy, dct, or htk) +.TP +.B \-unit_area +Normalize mel filters to unit area +.TP +.B \-upperf +Upper edge of filters +.TP +.B \-vad_postspeech +Num of silence frames to keep after from speech to silence. +.TP +.B \-vad_prespeech +Num of speech frames to keep before silence to speech. +.TP +.B \-vad_startspeech +Num of speech frames to trigger vad from silence to speech. +.TP +.B \-vad_threshold +Threshold for decision between noise and silence frames. Log-ratio between signal level and noise level. +.TP +.B \-verbose +Show input filenames +.TP +.B \-warp_params +defining the warping function +.TP +.B \-warp_type +Warping function type (or shape) +.TP +.B \-wlen +Hamming window length +.SH AUTHOR +Written by M. K. Ravishankar . This (rather lousy) manual page +by David Huggins-Daines +.SH COPYRIGHT +Copyright \(co 1999-2001 Carnegie Mellon University. See the file +\fICOPYING\fR included with this package for more information. +.br diff -Nru sphinxbase-0.8/doc/sphinx_cont_seg.1.in sphinxbase-0.8+5prealpha/doc/sphinx_cont_seg.1.in --- sphinxbase-0.8/doc/sphinx_cont_seg.1.in 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/sphinx_cont_seg.1.in 2015-05-14 19:36:42.000000000 +0000 @@ -0,0 +1,19 @@ +.TH SPHINX_CONT_SEG 1 "2008-05-12" +.SH NAME +sphinx_cont_seg \- Segment a waveform file into non-silence regions +.SH SYNOPSIS +.B sphinx_cont_seg +[\fI options \fR]... +.SH DESCRIPTION +.PP +This program reads an input file and segments it into individual +non-silence regions. It can process either file or read data from +microphone. Use following arguments: +.\" ### ARGUMENTS ### +.SH AUTHOR +Written by M. K. Ravishankar . This (rather lousy) manual page +by David Huggins-Daines +.SH COPYRIGHT +Copyright \(co 1999-2001 Carnegie Mellon University. See the file +\fICOPYING\fR included with this package for more information. +.br diff -Nru sphinxbase-0.8/doc/sphinx_fe.1 sphinxbase-0.8+5prealpha/doc/sphinx_fe.1 --- sphinxbase-0.8/doc/sphinx_fe.1 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/sphinx_fe.1 2015-05-14 19:36:42.000000000 +0000 @@ -0,0 +1,193 @@ +.TH SPHINX_FE 1 "2007-08-27" +.SH NAME +sphinx_fe \- Convert audio files to acoustic feature files +.SH SYNOPSIS +.B sphinx_fe +[\fI options \fR]... +.SH DESCRIPTION +.PP +This program converts audio files (in either Microsoft WAV, NIST +Sphere, or raw format) to acoustic feature files for input to +batch-mode speech recognition. The resulting files are also useful +for various other things. A list of options follows: +.TP +.B \-alpha +Preemphasis parameter +.TP +.B \-argfile +file (e.g. feat.params from an acoustic model) to read parameters from. This will override anything set in other command line arguments. +.TP +.B \-blocksize +Number of samples to read at a time. +.TP +.B \-build_outdirs +Create missing subdirectories in output directory +.TP +.B \-c +file for batch processing +.TP +.B \-cep2spec +Input is cepstral files, output is log spectral files +.TP +.B \-di +directory, input file names are relative to this, if defined +.TP +.B \-dither +Add 1/2-bit noise +.TP +.B \-do +directory, output files are relative to this +.TP +.B \-doublebw +Use double bandwidth filters (same center freq) +.TP +.B \-ei +extension to be applied to all input files +.TP +.B \-eo +extension to be applied to all output files +.TP +.B \-example +Shows example of how to use the tool +.TP +.B \-frate +Frame rate +.TP +.B \-help +Shows the usage of the tool +.TP +.B \-i +audio input file +.TP +.B \-input_endian +Endianness of input data, big or little, ignored if NIST or MS Wav +.TP +.B \-lifter +Length of sin-curve for liftering, or 0 for no liftering. +.TP +.B \-logspec +Write out logspectral files instead of cepstra +.TP +.B \-lowerf +Lower edge of filters +.TP +.B \-mach_endian +Endianness of machine, big or little +.TP +.B \-mswav +Defines input format as Microsoft Wav (RIFF) +.TP +.B \-ncep +Number of cep coefficients +.TP +.B \-nchans +Number of channels of data (interlaced samples assumed) +.TP +.B \-nfft +Size of FFT +.TP +.B \-nfilt +Number of filter banks +.TP +.B \-nist +Defines input format as NIST sphere +.TP +.B \-npart +Number of parts to run in (supersedes \fB\-nskip\fR and \fB\-runlen\fR if non-zero) +.TP +.B \-nskip +If a control file was specified, the number of utterances to skip at the head of the file +.TP +.B \-o +cepstral output file +.TP +.B \-ofmt +Format of output files - one of sphinx, htk, text. +.TP +.B \-part +Index of the part to run (supersedes \fB\-nskip\fR and \fB\-runlen\fR if non-zero) +.TP +.B \-raw +Defines input format as raw binary data +.TP +.B \-remove_dc +Remove DC offset from each frame +.TP +.B \-remove_noise +Remove noise with spectral subtraction in mel-energies +.TP +.B \-remove_silence +Enables VAD, removes silence frames from processing +.TP +.B \-round_filters +Round mel filter frequencies to DFT points +.TP +.B \-runlen +If a control file was specified, the number of utterances to process, or \fB\-1\fR for all +.TP +.B \-samprate +Sampling rate +.TP +.B \-seed +Seed for random number generator; if less than zero, pick our own +.TP +.B \-smoothspec +Write out cepstral-smoothed logspectral files +.TP +.B \-spec2cep +Input is log spectral files, output is cepstral files +.TP +.B \-sph2pipe +Input is NIST sphere (possibly with Shorten), use sph2pipe to convert +.TP +.B \-transform +Which type of transform to use to calculate cepstra (legacy, dct, or htk) +.TP +.B \-unit_area +Normalize mel filters to unit area +.TP +.B \-upperf +Upper edge of filters +.TP +.B \-vad_postspeech +Num of silence frames to keep after from speech to silence. +.TP +.B \-vad_prespeech +Num of speech frames to keep before silence to speech. +.TP +.B \-vad_startspeech +Num of speech frames to trigger vad from silence to speech. +.TP +.B \-vad_threshold +Threshold for decision between noise and silence frames. Log-ratio between signal level and noise level. +.TP +.B \-verbose +Show input filenames +.TP +.B \-warp_params +defining the warping function +.TP +.B \-warp_type +Warping function type (or shape) +.TP +.B \-whichchan +Channel to process (numbered from 1), or 0 to mix all channels +.TP +.B \-wlen +Hamming window length +.PP +Currently the only kind of features supported are MFCCs (mel-frequency +cepstral coefficients). There are numerous options which control the +properties of the output features. It is \fBVERY\fR important that +you document the specific set of flags used to create any given set of +feature files, since this information is \fBNOT\fR recorded in the +files themselves, and any mismatch between the parameters used to +extract features for recognition and those used to extract features +for training will cause recognition to fail. +.SH AUTHOR +Written by numerous people at CMU from 1994 onwards. This manual page +by David Huggins-Daines +.SH COPYRIGHT +Copyright \(co 1994-2007 Carnegie Mellon University. See the file +\fICOPYING\fR included with this package for more information. +.br diff -Nru sphinxbase-0.8/doc/sphinx_lm_convert.1 sphinxbase-0.8+5prealpha/doc/sphinx_lm_convert.1 --- sphinxbase-0.8/doc/sphinx_lm_convert.1 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/sphinx_lm_convert.1 2015-05-14 19:36:42.000000000 +0000 @@ -0,0 +1,45 @@ +.TH SPHINX_LM_CONVERT 1 "2010-03-18" +.SH NAME +sphinx_lm_convert \- Convert and manipulate language model files +.SH SYNOPSIS +.B sphinx_lm_convert +[\fI options \fR]... +.SH DESCRIPTION +.PP +This program converts language model files from one format to +another. It can also be used to change the character encoding +of the text in a language model file and to force word strings +to upper or lower case. +.TP +.B \-case +'lower' or 'upper' - case fold to lower/upper case (NOT UNICODE AWARE) +.TP +.B \-debug +level for debugging messages +.TP +.B \-help +Shows the usage of the tool +.TP +.B \-i +language model file (required) +.TP +.B \-ifmt +language model format (will guess if not specified) +.TP +.B \-logbase +Base in which all log-likelihoods calculated +.TP +.B \-mmap +Use memory-mapped I/O for reading binary LM files +.TP +.B \-o +language model file (required) +.TP +.B \-ofmt +language model file (will guess if not specified) +.SH AUTHOR +David Huggins-Daines +.SH COPYRIGHT +Copyright \(co 2010 Carnegie Mellon University. See the file +\fICOPYING\fR included with this package for more information. +.br diff -Nru sphinxbase-0.8/doc/sphinx_lm_eval.1 sphinxbase-0.8+5prealpha/doc/sphinx_lm_eval.1 --- sphinxbase-0.8/doc/sphinx_lm_eval.1 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/sphinx_lm_eval.1 2015-05-14 19:36:42.000000000 +0000 @@ -0,0 +1,56 @@ +.TH SPHINX_LM_EVAL 1 "2008-05-12" +.SH NAME +sphinx_lm_eval \- Evaluate perplexity of a transcription +.SH SYNOPSIS +.B sphinx_lm_eval +[\fI options \fR]... +.SH DESCRIPTION +.PP +This program evaluates the perplexity of a text file according to a +given language model. The text file is assumed to be in transcript +format, i.e. one utterance per line, delimited by and . +.TP +.B \-help +Shows the usage of the tool +.TP +.B \-lm +model file +.TP +.B \-lmctlfn +file listing a set of language models +.TP +.B \-lmname +of language model in \fB\-lmctlfn\fR to use for all utterances +.TP +.B \-logbase +Base in which all log-likelihoods calculated +.TP +.B \-lsn +file to evaluate +.TP +.B \-lw +Language model weight +.TP +.B \-mmap +Use memory-mapped I/O for reading binary LM files +.TP +.B \-probdef +definition file for classes in LM +.TP +.B \-text +string to evaluate +.TP +.B \-uw +Unigram probability weight (interpolated with uniform distribution) +.TP +.B \-verbose +Print details of perplexity calculation +.TP +.B \-wip +Word insertion probability +.SH AUTHOR +David Huggins-Daines +.SH COPYRIGHT +Copyright \(co 2007-2008 Carnegie Mellon University. See the file +\fICOPYING\fR included with this package for more information. +.br diff -Nru sphinxbase-0.8/doc/sphinx_pitch.1 sphinxbase-0.8+5prealpha/doc/sphinx_pitch.1 --- sphinxbase-0.8/doc/sphinx_pitch.1 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/doc/sphinx_pitch.1 2015-05-14 19:36:42.000000000 +0000 @@ -0,0 +1,72 @@ +.TH SPHINX_PITCH 1 "2007-05-12" +.SH NAME +sphinx_pitch \- Extract pitch from audio files +.SH SYNOPSIS +.B sphinx_pitch +[\fI options \fR]... +.SH DESCRIPTION +.PP +This program reads audio files and analyzes them for pitch and voicing. +.TP +.B \-c +file for batch processing +.TP +.B \-di +directory, input file names are relative to this, if defined +.TP +.B \-do +directory, output files are relative to this +.TP +.B \-ei +extension to be applied to all input files +.TP +.B \-eo +extension to be applied to all output files +.TP +.B \-flen +Number of seconds in each analysis frame (needs to be greater than twice the longest period you wish to detect - to detect down to 80Hz you need a frame length of 2.0/80 = 0.025). +.TP +.B \-fshift +Frame shift: number of seconds between each analysis frame. +.TP +.B \-i +audio input file +.TP +.B \-input_endian +of audio data (will be determined automatically if not given) +.TP +.B \-mswav +Defines input format as Microsoft Wav (RIFF) +.TP +.B \-nist +Defines input format as NIST sphere +.TP +.B \-nskip +If a control file was specified, the number of utterances to skip at the head of the file +.TP +.B \-o +text output file (standard output will be used if not given) +.TP +.B \-raw +Defines input format as raw binary data +.TP +.B \-runlen +If a control file was specified, the number of utterances to process (see \fB\-nskip\fR too) +.TP +.B \-samprate +Sampling rate of audio data (will be determined automatically if 0) +.TP +.B \-search_range +Fraction of the best local estimate to use as a search range for smoothing. +.TP +.B \-smooth_window +Number of frames on either side of the current frame to use for smoothing. +.TP +.B \-voice_thresh +Threshold of normalized difference under which to search for the fundamental period. +.SH AUTHOR +David Huggins-Daines +.SH COPYRIGHT +Copyright \(co 2007-2008 Carnegie Mellon University. See the file +\fICOPYING\fR included with this package for more information. +.br diff -Nru sphinxbase-0.8/group/ABLD.BAT sphinxbase-0.8+5prealpha/group/ABLD.BAT --- sphinxbase-0.8/group/ABLD.BAT 2012-12-05 14:06:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/group/ABLD.BAT 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -@ECHO OFF - -REM Bldmake-generated batch file - ABLD.BAT -REM ** DO NOT EDIT ** - -perl -S ABLD.PL "\sphinx\sphinxbase\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9 -if errorlevel==1 goto CheckPerl -goto End - -:CheckPerl -perl -v >NUL -if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed? -goto End - -:End diff -Nru sphinxbase-0.8/group/bld.inf sphinxbase-0.8+5prealpha/group/bld.inf --- sphinxbase-0.8/group/bld.inf 2012-12-05 14:06:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/group/bld.inf 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -/* -============================================================================ - Name : bld.inf - Author : - Copyright : Your copyright notice - Description : This file provides the information required for building the - whole of a sphinxbase_s60. -============================================================================ -*/ - -PRJ_PLATFORMS -DEFAULT - -PRJ_MMPFILES -sphinxbase.mmp diff -Nru sphinxbase-0.8/group/sphinxbase.mmp sphinxbase-0.8+5prealpha/group/sphinxbase.mmp --- sphinxbase-0.8/group/sphinxbase.mmp 2012-12-05 14:06:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/group/sphinxbase.mmp 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -/* -============================================================================ - Name : sphinxbase.mmp - Author : - Copyright : Your copyright notice - Description : This is the project specification file for sphinxbase. -============================================================================ -*/ - -TARGET sphinxbase.dll -TARGETTYPE STDDLL -EPOCALLOWDLLDATA -UID 0x20004c45 0xe000acd4 -EPOCSTACKSIZE 0x14000 - -USERINCLUDE ..\include ..\include\sphinxbase ..\include\s60 -SYSTEMINCLUDE \epoc32\include \epoc32\include\stdapis \epoc32\include\stdapis\sys -SYSTEMINCLUDE \epoc32\include\mmf\server \epoc32\include\platform - -#ifdef ENABLE_ABIV2_MODE -DEBUGGABLE_UDEBONLY -#endif -SOURCEPATH ..\src\libsphinxad -SOURCE cont_ad_base.c -SOURCEPATH ..\src\libsphinxbase\fe -SOURCE fe_interface.c fe_sigproc.c fe_warp.c fe_warp_affine.c fe_warp_inverse_linear.c fe_warp_piecewise_linear.c fixlog.c yin.c -SOURCEPATH ..\src\libsphinxbase\feat -SOURCE agc.c cmn.c cmn_prior.c feat.c lda.c -SOURCEPATH ..\src\libsphinxbase\lm -SOURCE fsg_model.c jsgf.c jsgf_parser.c jsgf_scanner.c lm3g_model.c ngram_model.c ngram_model_arpa.c ngram_model_dmp.c ngram_model_dmp32.c ngram_model_set.c -SOURCEPATH ..\src\libsphinxbase\util -SOURCE bio.c bitvec.c blas_lite.c case.c ckd_alloc.c cmd_ln.c dtoa.c err.c f2c_lite.c filename.c genrand.c glist.c hash_table.c heap.c huff_code.c info.c listelem_alloc.c logmath.c matrix.c mmio.c pio.c profile.c sbthread.c slamch.c slapack_lite.c strfuncs.c unlimit.c utf8.c -SOURCEPATH ..\src\libsphinxad -SOURCE ad_s60.cpp - - -/*EXPORTUNFROZEN*/ /*comment to release*/ - -LIBRARY libm.lib libpthread.lib mediaclientaudioinputstream.lib -CAPABILITY AllFiles MultimediaDD UserEnvironment diff -Nru sphinxbase-0.8/include/android/config.h sphinxbase-0.8+5prealpha/include/android/config.h --- sphinxbase-0.8/include/android/config.h 2012-12-05 14:05:45.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/android/config.h 2015-05-02 19:38:35.000000000 +0000 @@ -1,32 +1,14 @@ /* include/config.h. Generated from config.h.in by configure. */ /* include/config.h.in. Generated from configure.in by autoheader. */ -/* Define if building universal (internal helper macro) */ -/* #undef AC_APPLE_UNIVERSAL_BUILD */ - -/* Use ALSA library for sound I/O */ -/* #define AD_BACKEND_ALSA */ - -/* No interface for sound I/O */ -#undef AD_BACKEND_NONE - -/* Use OSS for sound I/O */ -/* #undef AD_BACKEND_OSS */ - -/* Use WinMM interface for sound I/O */ -/* #undef AD_BACKEND_WIN32 */ - /* Default radix point for fixed-point */ /* #undef DEFAULT_RADIX */ /* Enable thread safety */ #define ENABLE_THREADS /**/ -/* Use Q15 fixed-point computation */ -/* #undef FIXED16 */ - /* Use fixed-point computation */ -#define FIXED_POINT +/* #undef FIXED_POINT */ /* Define to 1 if you have the header file. */ #define HAVE_DLFCN_H 1 @@ -67,9 +49,6 @@ /* Define to 1 if you have the header file. */ #define HAVE_PTHREAD_H 1 -/* Define to 1 if you have the header file. */ -#define HAVE_SNDFILE_H 1 - /* Define to 1 if you have the `snprintf' function. */ #define HAVE_SNPRINTF 1 diff -Nru sphinxbase-0.8/include/android/sphinx_config.h sphinxbase-0.8+5prealpha/include/android/sphinx_config.h --- sphinxbase-0.8/include/android/sphinx_config.h 2012-12-05 14:05:45.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/android/sphinx_config.h 2015-05-01 21:16:08.000000000 +0000 @@ -1,38 +1,11 @@ /* include/sphinx_config.h. Generated from sphinx_config.h.in by configure. */ /* sphinx_config.h: Externally visible configuration parameters */ -/* Use ALSA library for sound I/O */ -/* #define AD_BACKEND_ALSA */ - -/* Use IRIX interface for sound I/O */ -/* #undef AD_BACKEND_IRIX */ - -/* No interface for sound I/O */ -#undef AD_BACKEND_NONE - -/* Use OSF interface for sound I/O */ -/* #undef AD_BACKEND_OSF */ - -/* Use OSS interface for sound I/O */ -/* #undef AD_BACKEND_OSS */ - -/* Use OSS interface for sound I/O */ -/* #undef AD_BACKEND_OSS_BSD */ - -/* Use SunOS interface for sound I/O */ -/* #undef AD_BACKEND_SUNOS */ - -/* Use WinMM interface for sound I/O */ -/* #undef AD_BACKEND_WIN32 */ - /* Default radix point for fixed-point */ /* #undef DEFAULT_RADIX */ -/* Use Q15 fixed-point computation */ -/* #undef FIXED16 */ - /* Use fixed-point computation */ -#define FIXED_POINT +/* #undef FIXED_POINT */ /* The size of `long', as computed by sizeof. */ #define SIZEOF_LONG 8 diff -Nru sphinxbase-0.8/include/config.h.in sphinxbase-0.8+5prealpha/include/config.h.in --- sphinxbase-0.8/include/config.h.in 2012-12-12 17:29:59.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/config.h.in 2015-05-14 19:36:53.000000000 +0000 @@ -1,44 +1,20 @@ -/* include/config.h.in. Generated from configure.in by autoheader. */ +/* include/config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD -/* Use ALSA library for sound I/O */ -#undef AD_BACKEND_ALSA - -/* Use Jack library for sound I/O */ -#undef AD_BACKEND_JACK - -/* No interface for sound I/O */ -#undef AD_BACKEND_NONE - -/* Use OSS for sound I/O */ -#undef AD_BACKEND_OSS - -/* Use PulseAudio library for sound I/O */ -#undef AD_BACKEND_PULSEAUDIO - -/* Use WinMM interface for sound I/O */ -#undef AD_BACKEND_WIN32 - /* Default radix point for fixed-point */ #undef DEFAULT_RADIX /* Enable thread safety */ #undef ENABLE_THREADS -/* Use Q15 fixed-point computation */ -#undef FIXED16 - /* Use fixed-point computation */ #undef FIXED_POINT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Define if you have the iconv() function. */ -#undef HAVE_ICONV - /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H @@ -81,11 +57,8 @@ /* Define to 1 if you have the header file. */ #undef HAVE_PTHREAD_H -/* Define to 1 if you have the header file. */ -#undef HAVE_SAMPLERATE_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SNDFILE_H +/* If available, contains the Python version number currently in use. */ +#undef HAVE_PYTHON /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF @@ -111,9 +84,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H -/* Define as const if the declaration of iconv() needs const. */ -#undef ICONV_CONST - /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR diff -Nru sphinxbase-0.8/include/Makefile.am sphinxbase-0.8+5prealpha/include/Makefile.am --- sphinxbase-0.8/include/Makefile.am 2012-12-05 14:06:03.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/Makefile.am 2015-03-24 17:26:36.000000000 +0000 @@ -8,7 +8,5 @@ wince/config.h \ win32/sphinx_config.h \ win32/config.h \ - s60/config.h \ - s60/sphinx_config.h \ android/config.h \ android/sphinx_config.h diff -Nru sphinxbase-0.8/include/Makefile.in sphinxbase-0.8+5prealpha/include/Makefile.in --- sphinxbase-0.8/include/Makefile.in 2012-12-12 17:28:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/Makefile.in 2015-05-14 15:58:09.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,31 +79,48 @@ build_triplet = @build@ host_triplet = @host@ subdir = include -DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(srcdir)/sphinx_config.h.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(srcdir)/config.h.in $(srcdir)/sphinx_config.h.in \ + $(pkginclude_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h sphinx_config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive 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_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -81,13 +142,40 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(pkgincludedir)" HEADERS = $(pkginclude_HEADERS) 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 \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in sphinx_config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -119,6 +207,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -132,6 +221,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -141,9 +231,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -151,15 +239,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -175,27 +262,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -228,14 +321,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -253,8 +349,6 @@ wince/config.h \ win32/sphinx_config.h \ win32/config.h \ - s60/config.h \ - s60/sphinx_config.h \ android/config.h \ android/sphinx_config.h @@ -271,9 +365,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/Makefile + $(AUTOMAKE) --foreign include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -294,10 +388,8 @@ $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ - else :; fi + @if test ! -f $@; then rm -f stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -308,10 +400,8 @@ touch $@ sphinx_config.h: stamp-h2 - @if test ! -f $@; then \ - rm -f stamp-h2; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h2; \ - else :; fi + @if test ! -f $@; then rm -f stamp-h2; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h2; else :; fi stamp-h2: $(srcdir)/sphinx_config.h.in $(top_builddir)/config.status @rm -f stamp-h2 @@ -327,8 +417,11 @@ -rm -rf .libs _libs install-pkgincludeHEADERS: $(pkginclude_HEADERS) @$(NORMAL_INSTALL) - test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -342,27 +435,28 @@ @$(NORMAL_UNINSTALL) @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files + dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -377,57 +471,12 @@ $(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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in sphinx_config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -443,12 +492,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) config.h.in sphinx_config.h.in $(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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -460,15 +504,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in sphinx_config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) config.h.in sphinx_config.h.in $(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; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -477,6 +517,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -513,13 +568,10 @@ 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 \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -557,10 +609,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -638,23 +695,22 @@ uninstall-am: uninstall-pkgincludeHEADERS -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ - ctags-recursive install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) all install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-hdr distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-pkgincludeHEADERS install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-pkgincludeHEADERS +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pkgincludeHEADERS install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/include/s60/config.h sphinxbase-0.8+5prealpha/include/s60/config.h --- sphinxbase-0.8/include/s60/config.h 2012-12-05 14:06:02.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/s60/config.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -/* Silvio Moioli: keep only one configuration file */ - -#include "sphinx_config.h" diff -Nru sphinxbase-0.8/include/s60/sphinx_config.h sphinxbase-0.8+5prealpha/include/s60/sphinx_config.h --- sphinxbase-0.8/include/s60/sphinx_config.h 2012-12-05 14:06:02.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/s60/sphinx_config.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ -/* include/sphinx_config.h, defaults for S60. */ -/* sphinx_config.h: Externally visible configuration parameters for - * SphinxBase. - */ - -/* Use S60 interface for sound I/O */ -#define AD_BACKEND_S60 - -/* The size of `long', as computed by sizeof. */ -#define SIZEOF_LONG 4 - -/* Define to 1 if the system has the type `long long'. */ -#define HAVE_LONG_LONG 1 - -/* The size of `long long', as computed by sizeof. */ -#define SIZEOF_LONG_LONG 8 - -/* Enable debugging output */ -#undef SPHINX_DEBUG - -/* Extension for executables */ -#define EXEEXT ".exe" - -/* Enable thread safety */ -#define ENABLE_THREADS 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_DLFCN_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Define to 1 if you have the `m' library (-lm). */ -#define HAVE_LIBM 1 - -/* Define to 1 if you have the `pthread' library (-lpthread). */ -#define HAVE_LIBPTHREAD 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - -/* Define to 1 if you have the `perror' function. */ -#define HAVE_PERROR 1 - -/* Define to 1 if you have the `popen' function. */ -#define HAVE_POPEN 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_PTHREAD_H 1 - -/* Define to 1 if you have the `snprintf' function. */ -#define HAVE_SNPRINTF 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define as the return type of signal handlers (`int' or `void'). */ -#define RETSIGTYPE void - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Enable matrix algebra with LAPACK */ -#define WITH_LAPACK 1 diff -Nru sphinxbase-0.8/include/sphinxbase/ad.h sphinxbase-0.8+5prealpha/include/sphinxbase/ad.h --- sphinxbase-0.8/include/sphinxbase/ad.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/ad.h 2015-03-24 17:26:36.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ /* ==================================================================== - * Copyright (c) 1999-2004 Carnegie Mellon University. All rights + * Copyright (c) 1999-2014 Carnegie Mellon University. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,68 +34,6 @@ * ==================================================================== * */ -/* - * ad.h -- generic live audio interface for recording and playback - * - * ********************************************** - * CMU ARPA Speech Project - * - * Copyright (c) 1996 Carnegie Mellon University. - * ALL RIGHTS RESERVED. - * ********************************************** - * - * HISTORY - * - * $Log: ad.h,v $ - * Revision 1.8 2005/06/22 08:00:06 arthchan2003 - * Completed all doxygen documentation on file description for libs3decoder/libutil/libs3audio and programs. - * - * Revision 1.7 2004/12/14 00:39:49 arthchan2003 - * add to the code, change some comments to doxygen style - * - * Revision 1.6 2004/12/06 11:17:55 arthchan2003 - * Update the copyright information of ad.h, *sigh* start to feel tired of updating documentation system. Anyone who has time, please take up libs3audio. That is the last place which is undocumented - * - * Revision 1.5 2004/07/23 23:44:46 egouvea - * Changed the cygwin code to use the same audio files as the MS Visual code, removed unused variables from fe_interface.c - * - * Revision 1.4 2004/02/29 23:48:31 egouvea - * Updated configure.in to the recent automake/autoconf, fixed win32 - * references in audio files. - * - * Revision 1.3 2002/11/10 19:27:38 egouvea - * Fixed references to sun's implementation of audio interface, - * referring to the correct .h file, and replacing sun4 with sunos. - * - * Revision 1.2 2001/12/11 04:40:55 lenzo - * License cleanup. - * - * Revision 1.1.1.1 2001/12/03 16:01:45 egouvea - * Initial import of sphinx3 - * - * Revision 1.1.1.1 2001/01/17 05:17:14 ricky - * Initial Import of the s3.3 decoder, has working decodeaudiofile, s3.3_live - * - * - * 19-Jan-1999 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added AD_ return codes. Added ad_open_sps_bufsize(), and - * ad_rec_t.n_buf. - * - * 17-Apr-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added ad_open_play_sps(). - * - * 07-Mar-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added ad_open_sps(). - * - * 10-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added ad_wbuf_t, ad_rec_t, and ad_play_t types, and augmented all - * recording functions with ad_rec_t, and playback functions with - * ad_play_t. - * - * 06-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Created. - */ - /** \file ad.h * \brief generic live audio interface for recording and playback */ @@ -105,28 +43,7 @@ #include -#if defined (__CYGWIN__) -#include -#include -#elif (defined(WIN32) && !defined(GNUWINCE)) || defined(_WIN32_WCE) -#include -#include -#elif defined(AD_BACKEND_JACK) -#include -#include -#ifdef HAVE_SAMPLERATE_H -#include -#endif -#elif defined(AD_BACKEND_PULSEAUDIO) -#include -#include -#elif defined(AD_BACKEND_ALSA) -#include -#endif - -/* Win32/WinCE DLL gunk */ #include - #include #ifdef __cplusplus @@ -137,7 +54,6 @@ } #endif -#define AD_SAMPLE_SIZE (sizeof(int16)) #define DEFAULT_SAMPLES_PER_SEC 16000 /* Return codes */ @@ -147,119 +63,7 @@ #define AD_ERR_NOT_OPEN -2 #define AD_ERR_WAVE -3 - -#if (defined(WIN32) || defined(AD_BACKEND_WIN32)) && !defined(GNUWINCE) -typedef struct { - HGLOBAL h_whdr; - LPWAVEHDR p_whdr; - HGLOBAL h_buf; - LPSTR p_buf; -} ad_wbuf_t; -#endif - - -/* ------------ RECORDING -------------- */ - -/* - * NOTE: ad_rec_t and ad_play_t are READ-ONLY structures for the user. - */ - -#if (defined(WIN32) || defined(AD_BACKEND_WIN32)) && !defined(GNUWINCE) - -#define DEFAULT_DEVICE (char*)DEV_MAPPER - -/** - * Audio recording structure. - */ -typedef struct ad_rec_s { - HWAVEIN h_wavein; /* "HANDLE" to the audio input device */ - ad_wbuf_t *wi_buf; /* Recording buffers provided to system */ - int32 n_buf; /* #Recording buffers provided to system */ - int32 opened; /* Flag; A/D opened for recording */ - int32 recording; - int32 curbuf; /* Current buffer with data for application */ - int32 curoff; /* Start of data for application in curbuf */ - int32 curlen; /* #samples of data from curoff in curbuf */ - int32 lastbuf; /* Last buffer containing data after recording stopped */ - int32 sps; /* Samples/sec */ - int32 bps; /* Bytes/sample */ -} ad_rec_t; - -#elif defined(AD_BACKEND_OSS) - -#define DEFAULT_DEVICE "/dev/dsp" - -/** \struct ad_rec_t - * \brief Audio recording structure. - */ -typedef struct { - int32 dspFD; /* Audio device descriptor */ - int32 recording; - int32 sps; /* Samples/sec */ - int32 bps; /* Bytes/sample */ -} ad_rec_t; - -#elif defined(AD_BACKEND_PULSEAUDIO) - -#define DEFAULT_DEVICE NULL - -typedef struct { - pa_simple* pa; - int32 recording; - int32 sps; - int32 bps; -} ad_rec_t; - -#elif defined(AD_BACKEND_ALSA) - -#define DEFAULT_DEVICE "default" -typedef struct { - snd_pcm_t *dspH; - int32 recording; - int32 sps; - int32 bps; -} ad_rec_t; - -#elif defined(AD_BACKEND_JACK) - -typedef struct { - jack_client_t *client; - jack_port_t *input_port; - jack_port_t *output_port; - jack_ringbuffer_t* rbuffer; - jack_default_audio_sample_t* sample_buffer; - int32 recording; - int32 sps; - int32 bps; -#ifdef HAVE_SAMPLERATE_H - SRC_STATE *resample_state; - jack_default_audio_sample_t *resample_buffer; -#endif -} ad_rec_t; - -#elif defined(AD_BACKEND_S60) - -typedef struct ad_rec_s { - void* recorder; - int32 recording; - int32 sps; - int32 bps; -} ad_rec_t; - -SPHINXBASE_EXPORT -ad_rec_t *ad_open_sps_bufsize (int32 samples_per_sec, int32 bufsize_msec); - -#else - -#define DEFAULT_DEVICE NULL -typedef struct { - int32 sps; /**< Samples/sec */ - int32 bps; /**< Bytes/sample */ -} ad_rec_t; - - -#endif - +typedef struct ad_rec_s ad_rec_t; /** * Open a specific audio device for recording. @@ -292,16 +96,6 @@ ad_rec_t *ad_open ( void ); -#if defined(WIN32) && !defined(GNUWINCE) -/* - * Like ad_open_sps but specifies buffering required within driver. This function is - * useful if the default (5000 msec worth) is too small and results in loss of data. - */ -SPHINXBASE_EXPORT -ad_rec_t *ad_open_sps_bufsize (int32 samples_per_sec, int32 bufsize_msec); -#endif - - /* Start audio recording. Return value: 0 if successful, <0 otherwise */ SPHINXBASE_EXPORT int32 ad_start_rec (ad_rec_t *); @@ -316,7 +110,6 @@ SPHINXBASE_EXPORT int32 ad_close (ad_rec_t *); - /* * Read next block of audio samples while recording; read upto max samples into buf. * Return value: # samples actually read (could be 0 since non-blocking); -1 if not @@ -326,72 +119,8 @@ int32 ad_read (ad_rec_t *, int16 *buf, int32 max); -/* ------ PLAYBACK; SIMILAR TO RECORDING ------- */ - -#if defined(WIN32) && !defined(GNUWINCE) - -typedef struct { - HWAVEOUT h_waveout; /* "HANDLE" to the audio output device */ - ad_wbuf_t *wo_buf; /* Playback buffers given to the system */ - int32 opened; /* Flag; A/D opened for playback */ - int32 playing; - char *busy; /* flags [N_WO_BUF] indicating whether given to system */ - int32 nxtbuf; /* Next buffer [0..N_WO_BUF-1] to be used for playback data */ - int32 sps; /* Samples/sec */ - int32 bps; /* Bytes/sample */ -} ad_play_t; - -#else - -typedef struct { - int32 sps; /* Samples/sec */ - int32 bps; /* Bytes/sample */ -} ad_play_t; /* Dummy definition for systems without A/D stuff */ - -#endif - - -SPHINXBASE_EXPORT -ad_play_t *ad_open_play_sps (int32 samples_per_sec); - -SPHINXBASE_EXPORT -ad_play_t *ad_open_play ( void ); - -SPHINXBASE_EXPORT -int32 ad_start_play (ad_play_t *); - -SPHINXBASE_EXPORT -int32 ad_stop_play (ad_play_t *); - -SPHINXBASE_EXPORT -int32 ad_close_play (ad_play_t *); - - -/** - * Queue a block of audio samples for playback. - * - * Write the next block of [len] samples from rawbuf to the A/D device for playback. - * The device may queue less than len samples, possibly 0, since it is non-blocking. - * The application should resubmit the remaining data to be played. - * Return value: # samples accepted for playback; -1 if error. - */ -SPHINXBASE_EXPORT -int32 ad_write (ad_play_t *, int16 *buf, int32 len); - - -/* ------ MISCELLANEOUS ------- */ - -/** - * Convert mu-law data to int16 linear PCM format. - */ -SPHINXBASE_EXPORT -void ad_mu2li (int16 *outbuf, /* Out: PCM data placed here (allocated by user) */ - unsigned char *inbuf, /* In: Input buffer with mulaw data */ - int32 n_samp); /* In: #Samples in inbuf */ - #ifdef __cplusplus } #endif - #endif diff -Nru sphinxbase-0.8/include/sphinxbase/bio.h sphinxbase-0.8+5prealpha/include/sphinxbase/bio.h --- sphinxbase-0.8/include/sphinxbase/bio.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/bio.h 2015-03-24 17:26:36.000000000 +0000 @@ -119,7 +119,7 @@ * * Lines beginning with # are ignored. * Memory for name and val allocated by this function; use bio_hdrarg_free to free them. - * @return: 0 if successful, -1 otherwise. + * @return 0 if successful, -1 otherwise. */ SPHINXBASE_EXPORT int32 bio_readhdr (FILE *fp, /**< In: File to read */ @@ -130,7 +130,7 @@ /** * Write a simple binary file header, containing only the version string. Also write * the byte order magic word. - * @return: 0 if successful, -1 otherwise. + * @return 0 if successful, -1 otherwise. */ SPHINXBASE_EXPORT int32 bio_writehdr_version (FILE *fp, /**< Output: File to write */ @@ -138,6 +138,10 @@ ); +/** + * Write a simple binary file header with only byte order magic word. + * @return 0 if successful, -1 otherwise. + */ SPHINXBASE_EXPORT int32 bio_writehdr(FILE *fp, ...); @@ -151,13 +155,14 @@ /** * Like fread but perform byteswapping and accumulate checksum (the 2 extra arguments). - * But unlike fread, returns -1 if required number of elements (n_el) not read; also, + * + * @return unlike fread, returns -1 if required number of elements (n_el) not read; also, * no byteswapping or checksum accumulation is performed in that case. */ SPHINXBASE_EXPORT -int32 bio_fread (void *buf, - int32 el_sz, - int32 n_el, +int32 bio_fread (void *buf, /**< In: buffer to write */ + int32 el_sz, /**< In: element size */ + int32 n_el, /**< In: number of elements */ FILE *fp, /**< In: An input file pointer */ int32 swap, /**< In: Byteswap iff (swap != 0) */ uint32 *chksum /**< In/Out: Accumulated checksum */ @@ -165,12 +170,13 @@ /** * Like fwrite but perform byteswapping and accumulate checksum (the 2 extra arguments). + * * @return the number of elemens written (like fwrite). */ SPHINXBASE_EXPORT -int32 bio_fwrite(void *buf, - int32 el_sz, - int32 n_el, +int32 bio_fwrite(const void *buf, /**< In: buffer to write */ + int32 el_sz, /**< In: element size */ + int32 n_el, /**< In: number of elements */ FILE *fp, /**< In: An input file pointer */ int32 swap, /**< In: Byteswap iff (swap != 0) */ uint32 *chksum /**< In/Out: Accumulated checksum */ @@ -184,7 +190,7 @@ * * Byteswapping and checksum accumulation performed as necessary. * Fails fatally if expected data not read. - * Return value: number of array elements allocated and read; -1 if error. + * @return number of array elements allocated and read; -1 if error. */ SPHINXBASE_EXPORT int32 bio_fread_1d (void **buf, /**< Out: contains array data; allocated by this @@ -204,7 +210,7 @@ * * Byteswapping and checksum accumulation performed as necessary. * Fails fatally if expected data not read. - * Return value: number of array elements allocated and read; -1 if error. + * @return number of array elements allocated and read; -1 if error. */ SPHINXBASE_EXPORT int32 bio_fread_2d(void ***arr, @@ -223,7 +229,7 @@ * * Byteswapping and checksum accumulation performed as necessary. * Fails fatally if expected data not read. - * Return value: number of array elements allocated and read; -1 if error. + * @return number of array elements allocated and read; -1 if error. */ SPHINXBASE_EXPORT int32 bio_fread_3d(void ****arr, @@ -246,24 +252,50 @@ ); + +/** + * Write a 1-d array. + * Checksum accumulation performed as necessary. + * + * @return number of array elements successfully written or -1 if error. + */ +SPHINXBASE_EXPORT +int bio_fwrite_1d(void *arr, /**< In: Data to write */ + size_t e_sz, /**< In: Size of the elements in bytes */ + uint32 d1, /**< In: First dimension */ + FILE *fp, /**< In: File to write to */ + uint32 *chksum /**< In/Out: Checksum accumulator */ + ); + +/** + * Write a 3-d array (set of matrices). + * Checksum accumulation performed as necessary. + * + * @return number of array elements successfully written or -1 if error. + */ +SPHINXBASE_EXPORT +int bio_fwrite_3d(void ***arr, /**< In: Data to write */ + size_t e_sz, /**< In: Size of the elements in bytes */ + uint32 d1, /**< In: First dimension */ + uint32 d2, /**< In: Second dimension */ + uint32 d3, /**< In: Third dimension */ + FILE *fp, /**< In: File to write to */ + uint32 *chksum /**< In/Out: Checksum accumulator */ + ); + /** * Read raw data from the wav file. * - * @param directory the folder where the file is located - * @param filename the name of the file - * @param extension file extension - * @param header the size of the header to skip usually 44 bytes. - * @param endian Endian of the data - * @param nsamps number of samples read - * @return pointer to the data + * @return pointer to the data. */ SPHINXBASE_EXPORT -int16* bio_read_wavfile(char const *directory, - char const *filename, - char const *extension, - int32 header, - int32 endian, - int32 *nsamps); +int16* bio_read_wavfile(char const *directory, /**< In: the folder where the file is located */ + char const *filename, /**< In: the name of the file */ + char const *extension, /**< In: file extension */ + int32 header, /**< In: the size of the header to skip usually 44 bytes */ + int32 endian, /**< In: endian of the data */ + size_t *nsamps /**< Out: number of samples read */ + ); #ifdef __cplusplus } diff -Nru sphinxbase-0.8/include/sphinxbase/bitarr.h sphinxbase-0.8+5prealpha/include/sphinxbase/bitarr.h --- sphinxbase-0.8/include/sphinxbase/bitarr.h 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/bitarr.h 2015-07-05 00:26:49.000000000 +0000 @@ -0,0 +1,188 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 _LIBUTIL_BITARR_H_ +#define _LIBUTIL_BITARR_H_ + +#include +#include +#include + +#include +/* Win32/WinCE DLL gunk */ +#include + +/** + * @file bitarr.h + * @brief An implementation bit array - memory efficient storage for digit int and float data. + * + * Implementation of basic operations of read/write digits consuming as little space as possible. + */ + +#ifdef __cplusplus +extern "C" { +#endif +#if 0 +/* Fool Emacs. */ +} +#endif + +/** + * Structure that specifies bits required to efficiently store certain data + */ +typedef struct bitarr_mask_s { + uint8 bits; + uint32 mask; +}bitarr_mask_t; + +/** + * Structure that stores address of certain value in bit array + */ +typedef struct bitarr_address_s { + void *base; + uint32 offset; +}bitarr_address_t; + +/** + * Read uint64 value from bit array. + * Assumes mask == (1 << length) - 1 where length <= 57 + * @param address to read from + * @param length number of bits for value + * @param mask of read value + * @return uint64 value that was read + */ +SPHINXBASE_EXPORT +uint64 +bitarr_read_int57(bitarr_address_t address, uint8 length, uint64 mask); + +/** + * Write specified value into bit array. + * Assumes value < (1 << length) and length <= 57. + * Assumes the memory is zero initially. + * @param address to write to + * @param length amount of active bytes in value to write + * @param value integer to write + */ +SPHINXBASE_EXPORT +void +bitarr_write_int57(bitarr_address_t address, uint8 length, uint64 value); + +/** + * Read uint32 value from bit array. + * Assumes mask == (1 << length) - 1 where length <= 25 + * @param address to read from + * @param length number of bits for value + * @param mask of read value + * @return uint32 value that was read + */ +SPHINXBASE_EXPORT +uint32 +bitarr_read_int25(bitarr_address_t address, uint8 length, uint32 mask); + +/** + * Write specified value into bit array. + * Assumes value < (1 << length) and length <= 25. + * Assumes the memory is zero initially. + * @param address in bit array ti write to + * @param length amount of active bytes in value to write + * @param value integer to write + */ +SPHINXBASE_EXPORT +void +bitarr_write_int25(bitarr_address_t address, uint8 length, uint32 value); + +/** + * Read non positive float32 from bit array. + * Probability [0, 1) in log domain can be stored like this. + * @param address of value in bit array + * @return float value taht was read + */ +SPHINXBASE_EXPORT +float +bitarr_read_negfloat(bitarr_address_t address); + +/** + * Writes non positive float32 to bit array. + * Probability [0, 1) in log domain can be stored like this + * @param address where to write + * @param value what to write + */ +SPHINXBASE_EXPORT +void +bitarr_write_negfloat(bitarr_address_t address, float value); + +/** + * Reads float32 from bit array + * @param address in bit array from where to read + * @return value float32 that was read + */ +SPHINXBASE_EXPORT +float +bitarr_read_float(bitarr_address_t address); + +/** + * Writes float32 to bit array + * @param address in bit array where to write + * @param value float32 to write + */ +SPHINXBASE_EXPORT +void +bitarr_write_float(bitarr_address_t address, float value); + +/** + * Fills mask for certain int range according to provided max value + * @param bit_mask mask that is filled + * @param max_value bigest integer that is going to be stored using this mask + */ +SPHINXBASE_EXPORT +void +bitarr_mask_from_max(bitarr_mask_t *bit_mask, uint32 max_value); + +/** + * Computes amount of bits required ti store integers upto value provided. + * @param max_value bigest integer that going to be stored using this amount of bits + * @return amount of bits required to store integers from range with maximum provided + */ +SPHINXBASE_EXPORT +uint8 +bitarr_required_bits(uint32 max_value); + +#ifdef __cplusplus +} +#endif + +#endif /* _LIBUTIL_BITARR_H_ */ \ No newline at end of file diff -Nru sphinxbase-0.8/include/sphinxbase/ckd_alloc.h sphinxbase-0.8+5prealpha/include/sphinxbase/ckd_alloc.h --- sphinxbase-0.8/include/sphinxbase/ckd_alloc.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/ckd_alloc.h 2015-03-24 17:26:36.000000000 +0000 @@ -8,27 +8,27 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the * United States of America, and the CMU Sphinx Speech Consortium. * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY * NOR ITS EMPLOYEES 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 + * 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. * * ==================================================================== @@ -43,7 +43,7 @@ * Copyright (c) 1999 Carnegie Mellon University. * ALL RIGHTS RESERVED. * ********************************************** - * + * * HISTORY * $Log: ckd_alloc.h,v $ * Revision 1.10 2005/06/22 02:59:25 arthchan2003 @@ -52,10 +52,10 @@ * Revision 1.3 2005/03/30 01:22:48 archan * Fixed mistakes in last updates. Add * - * + * * 19-Jun-97 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University * Removed file,line arguments from free functions. - * + * * 01-Jan-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University * Created. */ @@ -73,13 +73,13 @@ ********************************************************************* * * file: ckd_alloc.h - * - * traceability: - * - * description: - * - * author: - * + * + * traceability: + * + * description: + * + * author: + * *********************************************************************/ @@ -94,11 +94,11 @@ #include /** \file ckd_alloc.h - *\brief Sphinx's memory allocation/deallocation routines. - * + *\brief Sphinx's memory allocation/deallocation routines. + * *Implementation of efficient memory allocation deallocation for *multiple dimensional arrays. - * + * */ #ifdef __cplusplus @@ -152,8 +152,8 @@ const char *caller_file, int caller_line); /** - * Like strdup, except that if an error occurs it prints a diagnostic message - * and exits. + * Like strdup, except that if an error occurs it prints a diagnostic message and + * exits. If origin in NULL the function also returns NULL. */ SPHINXBASE_EXPORT char *__ckd_salloc__(const char *origstr, @@ -214,25 +214,25 @@ int caller_line); /** - * Test and free a 1-D array + * Test and free a 1-D array */ SPHINXBASE_EXPORT void ckd_free(void *ptr); /** - * Free a 2-D array (ptr) previously allocated by ckd_calloc_2d + * Free a 2-D array (ptr) previously allocated by ckd_calloc_2d */ SPHINXBASE_EXPORT void ckd_free_2d(void *ptr); -/** - * Free a 3-D array (ptr) previously allocated by ckd_calloc_3d +/** + * Free a 3-D array (ptr) previously allocated by ckd_calloc_3d */ SPHINXBASE_EXPORT void ckd_free_3d(void *ptr); -/** - * Free a 4-D array (ptr) previously allocated by ckd_calloc_4d +/** + * Free a 4-D array (ptr) previously allocated by ckd_calloc_4d */ SPHINXBASE_EXPORT void ckd_free_4d(void *ptr); diff -Nru sphinxbase-0.8/include/sphinxbase/cmd_ln.h sphinxbase-0.8+5prealpha/include/sphinxbase/cmd_ln.h --- sphinxbase-0.8/include/sphinxbase/cmd_ln.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/cmd_ln.h 2015-07-05 00:26:49.000000000 +0000 @@ -391,12 +391,21 @@ /** * Print a help message listing the valid argument names, and the associated * attributes as given in defn. + * + * @param fp output stream + * @param defn Array of argument name definitions. */ SPHINXBASE_EXPORT -void cmd_ln_print_help_r (cmd_ln_t *cmdln, - FILE *fp, /**< In: File to which to print */ - const arg_t *defn /**< In: Array of argument name definitions */ - ); +void cmd_ln_print_help_r (cmd_ln_t *cmdln, FILE *fp, const arg_t *defn); + +/** + * Print current configuration values and defaults. + * + * @param fp output stream + * @param defn Array of argument name definitions. + */ +SPHINXBASE_EXPORT +void cmd_ln_print_values_r (cmd_ln_t *cmdln, FILE *fp, const arg_t *defn); /** * Non-reentrant version of cmd_ln_parse(). @@ -583,5 +592,3 @@ #endif #endif - - diff -Nru sphinxbase-0.8/include/sphinxbase/cont_ad.h sphinxbase-0.8+5prealpha/include/sphinxbase/cont_ad.h --- sphinxbase-0.8/include/sphinxbase/cont_ad.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/cont_ad.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,492 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2001 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * cont_ad.h -- Continuous A/D listening and silence filtering module. - * - * ********************************************** - * CMU ARPA Speech Project - * - * Copyright (c) 1996 Carnegie Mellon University. - * ALL RIGHTS RESERVED. - * ********************************************** - * - * HISTORY - * - * 13-Jul-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added spf and adbufsize to cont_ad_t in order to support variable - * frame sizes depending on audio sampling rate. - * - * 30-Jun-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added FILE* argument to cont_ad_powhist_dump(). - * - * 16-Jan-98 Paul Placeway (pwp@cs.cmu.edu) at Carnegie Mellon University - * Changed to use dB instead of the weird power measure. - * Added most system parameters to cont_ad_t instead of hardwiring - * them in cont_ad.c. - * Added cont_ad_set_params() and cont_ad_get_params(). - * - * 28-Jul-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added cont_ad_t.siglvl. - * - * 27-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added the option for cont_ad_read to return -1 on EOF. - * - * 21-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added cont_ad_set_thresh(). - * - * 20-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Separated thresholds for speech and silence. - * - * 17-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Created, based loosely on Steve Reed's original implementation. - */ - - -#ifndef _CONT_AD_H_ -#define _CONT_AD_H_ - -/* Win32/WinCE DLL gunk */ -#include -#include -#include - -/** - * \file cont_ad.h - * \brief Continuous A/D listening and silence filtering module. - * - * This module is intended to be interposed as a filter between any - * raw A/D source and the application to remove silence regions. Its - * main purpose is to remove regions of silence from the raw input - * speech. It is initialized with a raw A/D source function (during - * the cont_ad_init call). The application is responsible for setting - * up the A/D source, turning recording on and off as it desires. - * Filtered A/D data can be read by the application using the - * cont_ad_read function. - * - * In other words, the application calls cont_ad_read instead of the - * raw A/D source function (e.g., ad_read in libad) to obtain filtered - * A/D data with silence regions removed. This module itself does not - * enforce any other structural changes to the application. - * - * The cont_ad_read function also updates an "absolute" timestamp (see - * cont_ad_t.read_ts) at the end of each invocation. The timestamp - * indicates the total number of samples of A/D data read until this - * point, including data discarded as silence frames. The application - * is responsible for using this timestamp to make any policy - * decisions regarding utterance boundaries or whatever. - */ - - -#include - - -#ifdef __cplusplus -extern "C" { -#endif -#if 0 -/* Fool Emacs. */ -} -#endif - -/* States of continuous listening module */ -#define CONT_AD_STATE_SIL 0 -#define CONT_AD_STATE_SPEECH 1 - - -/** - * \struct spseg_t - * \brief (FOR INTERNAL USE ) Data structure for maintaining speech (non-silence) segments not yet consumed by the - * application. - */ -typedef struct spseg_s { - int32 startfrm; /**< Frame-id in adbuf (see below) of start of this segment */ - int32 nfrm; /**< Number of frames in segment (may wrap around adbuf) */ - struct spseg_s *next; /**< Next speech segment (with some intervening silence) */ -} spseg_t; - - -/** - * \struct cont_ad_t - * \brief Continuous listening module or object - * Continuous listening module or object. An application can open and maintain several - * such objects, if necessary. - * FYI: Module always in one of two states: SILENCE or SPEECH. Transitions between the - * two detected by sliding a window spanning several frames and looking for some minimum - * number of frames of the other type. - */ -typedef struct { - /* Function to be called for obtaining A/D data (see prototype for ad_read in ad.h) */ - int32 (*adfunc)(ad_rec_t *ad, int16 *buf, int32 max); - ad_rec_t *ad; /**< A/D device argument for adfunc. Also, ad->sps used to - determine frame size (spf, see below) */ - int32 rawmode; /**< Pass all input data through, without filtering silence */ - - int16 *adbuf; /**< Circular buffer for maintaining A/D data read until consumed */ - - /* ************************************************************************** - * state, read_ts, and siglvl are provided for READ-ONLY use by client - * applications, and are updated by calls to cont_ad_read() (see below). All - * other variables should be left alone. - */ - int32 state; /**< State of data returned by most recent cont_ad_read call; - CONT_AD_STATE_SIL or CONT_AD_STATE_SPEECH. */ - int32 read_ts; /**< Absolute timestamp (total no. of raw samples consumed - upto the most recent cont_ad_read call, starting from - the very beginning). Note that this is a 32-bit - integer; applications should guard against overflow. */ - int32 seglen; /**< Total no. of raw samples consumed in the segment - returned by the most recent cont_ad_read call. Can be - used to detect silence segments that have stretched long - enough to terminate an utterance */ - int32 siglvl; /**< Max signal level for the data consumed by the most recent - cont_ad_read call (dB range: 0-99). Can be used to - update a V-U meter, for example. */ - /* ************************************************************************ */ - - int32 sps; /**< Samples/sec; moved from ad->sps to break dependence on - ad by N. Roy.*/ - - int32 eof; /**< Whether the source ad device has encountered EOF */ - - int32 spf; /**< Samples/frame; audio level is analyzed within frames */ - int32 adbufsize; /**< Buffer size (Number of samples) */ - int32 prev_sample; /**< For pre-emphasis filter */ - int32 headfrm; /**< Frame number in adbuf with unconsumed A/D data */ - int32 n_frm; /**< Number of complete frames of unconsumed A/D data in adbuf */ - int32 n_sample; /**< Number of samples of unconsumed data in adbuf */ - int32 tot_frm; /**< Total number of frames of A/D data read, including consumed ones */ - int32 noise_level; /**< PWP: what we claim as the "current" noise level */ - - int32 *pow_hist; /**< Histogram of frame power, moving window, decayed */ - char *frm_pow; /**< Frame power */ - - int32 auto_thresh; /**< Do automatic threshold adjustment or not */ - int32 delta_sil; /**< Max silence power/frame ABOVE noise level */ - int32 delta_speech; /**< Min speech power/frame ABOVE noise level */ - int32 min_noise; /**< noise lower than this we ignore */ - int32 max_noise; /**< noise higher than this signals an error */ - int32 winsize; /**< how many frames to look at for speech det */ - int32 speech_onset; /**< start speech on >= these many frames out of winsize, of >= delta_speech */ - int32 sil_onset; /**< end speech on >= these many frames out of winsize, of <= delta_sil */ - int32 leader; /**< pad beggining of speech with this many extra frms */ - int32 trailer; /**< pad end of speech with this many extra frms */ - - int32 thresh_speech;/**< Frame considered to be speech if power >= thresh_speech - (for transitioning from SILENCE to SPEECH state) */ - int32 thresh_sil; /**< Frame considered to be silence if power <= thresh_sil - (for transitioning from SPEECH to SILENCE state) */ - int32 thresh_update;/**< Number of frames before next update to pow_hist/thresholds */ - float32 adapt_rate; /**< Linear interpolation constant for rate at which noise level adapted - to each estimate; - range: 0-1; 0=> no adaptation, 1=> instant adaptation */ - - int32 tail_state; /**< State at the end of its internal buffer (internal use): - CONT_AD_STATE_SIL or CONT_AD_STATE_SPEECH. Note: This is - different from cont_ad_t.state. */ - int32 win_startfrm; /**< Where next analysis window begins */ - int32 win_validfrm; /**< Number of frames currently available from win_startfrm for analysis */ - int32 n_other; /**< If in SILENCE state, number of frames in analysis window considered to - be speech; otherwise number of frames considered to be silence */ - spseg_t *spseg_head;/**< First of unconsumed speech segments */ - spseg_t *spseg_tail;/**< Last of unconsumed speech segments */ - - FILE *rawfp; /**< If non-NULL, raw audio input data processed by cont_ad - is dumped to this file. Controlled by user application - via cont_ad_set_rawfp(). NULL when cont_ad object is - initially created. */ - FILE *logfp; /**< If non-NULL, write detailed logs of this object's - progress to the file. Controlled by user application - via cont_ad_set_logfp(). NULL when cont_ad object is - initially created. */ - - int32 n_calib_frame; /**< Number of frames of calibration data seen so far. */ -} cont_ad_t; - - -/** - * Initialize a continuous listening/silence filtering object. - * - * One time initialization of a continuous listening/silence filtering - * object/module. This can work in either "stream mode", where it - * reads data from an audio device represented by - * ad_rec_t, or in "block mode", where it filters out - * silence regions from blocks of data passed into it. - * - * @param ad An audio device to read from, or NULL to operate in block mode. - * @param adfunc The function used to read audio from ad, - * or NULL to operate in block mode. This is usually ad_read(). - * @return A pointer to a READ-ONLY structure used in other calls to - * the object. If any error occurs, the return value is NULL. - */ -SPHINXBASE_EXPORT -cont_ad_t *cont_ad_init (ad_rec_t *ad, /**< In: The A/D source object to be filtered */ - int32 (*adfunc)(ad_rec_t *ad, int16 *buf, int32 max) - /**< In: adfunc = source function to be invoked - to obtain raw A/D data. See ad.h for the - required prototype definition. */ - ); - -/** - * Initializes a continuous listening object which simply passes data through (!) - * - * Like cont_ad_init, but put the module in raw mode; i.e., all data is passed - * through, unfiltered. (By special request.) - */ -SPHINXBASE_EXPORT -cont_ad_t *cont_ad_init_rawmode (ad_rec_t *ad, - int32 (*adfunc)(ad_rec_t *ad, int16 *buf, int32 max)); - - -/** - * Read raw audio data into the silence filter. - * - * The main read routine for reading speech/silence segmented audio data. Audio - * data is copied into the caller provided buffer, much like a file read routine. - * - * In "block mode", i.e. if NULL was passed as a read function to - * cont_ad_init, the data in buf is taken as - * input, and any non-silence data is written back to buf - * on exit. In this case, you must take care that max - * does not overflow the internal buffer of the silence filter. The - * available number of samples can be obtained by calling - * cont_ad_buffer_space(). Any excess data will be discarded. - * - * In normal mode, only speech segments are copied; silence segments are dropped. - * In rawmode (cont_ad module initialized using cont_ad_init_rawmode()), all data - * are passed through to the caller. But, in either case, any single call to - * cont_ad_read will never return data that crosses a speech/silence segment - * boundary. - * - * The following variables are updated for use by the caller (see cont_ad_t above): - * cont_ad_t.state, - * cont_ad_t.read_ts, - * cont_ad_t.seglen, - * cont_ad_t.siglvl. - * - * Return value: Number of samples actually read, possibly 0; <0 if EOF on A/D source. - */ -SPHINXBASE_EXPORT -int32 cont_ad_read (cont_ad_t *r, /**< In: Object pointer returned by cont_ad_init */ - int16 *buf, /**< In/Out: In block mode, contains input data. - On return, buf contains A/D data returned - by this function, if any. */ - int32 max /**< In: Maximum number of samples to be filled into buf. - NOTE: max must be at least 256; otherwise - the functions returns -1. */ - ); - -/** - * Get the maximum number of samples which can be passed into cont_ad_read(). - */ -SPHINXBASE_EXPORT -int32 cont_ad_buffer_space(cont_ad_t *r); - -/** - * Calibrate the silence filter. - * - * Calibration to determine an initial silence threshold. This function can be called - * any number of times. It should be called at least once immediately after cont_ad_init. - * The silence threshold is also updated internally once in a while, so this function - * only needs to be called in the middle if there is a definite change in the recording - * environment. - * The application is responsible for making sure that the raw audio source is turned on - * before the calibration. - * Return value: 0 if successful, <0 otherwise. - */ -SPHINXBASE_EXPORT -int32 cont_ad_calib (cont_ad_t *cont /**< In: object pointer returned by cont_ad_init */ - ); - -/** - * Calibrate the silence filter without an audio device. - * - * If the application has not passed an audio device into the silence filter - * at initialisation, this routine can be used to calibrate the filter. The - * buf (of length max samples) should contain audio data for calibration. This - * data is assumed to be completely consumed. More than one call may be - * necessary to fully calibrate. - * Return value: 0 if successful, <0 on failure, >0 if calibration not - * complete. - */ -SPHINXBASE_EXPORT -int32 cont_ad_calib_loop (cont_ad_t *r, int16 *buf, int32 max); - -/** - * Get the number of samples required to calibrate the silence filter. - * - * Since, as mentioned above, the calibration data is assumed to be - * fully consumed, it may be desirable to "hold onto" this data in - * case it contains useful speech. This function returns the number - * of samples required to calibrate the silence filter, which is - * useful in allocating a buffer to store this data. - * - * @return Number of samples required for successful calibration. - */ -SPHINXBASE_EXPORT -int32 cont_ad_calib_size(cont_ad_t *r); - -/** - * Set silence and speech threshold parameters. - * - * The silence threshold is the max power - * level, RELATIVE to the peak background noise level, in any silence frame. Similarly, - * the speech threshold is the min power level, RELATIVE to the peak background noise - * level, in any speech frame. In general, silence threshold <= speech threshold. - * Increasing the thresholds (say, from the default value of 2 to 3 or 4) reduces the - * sensitivity to background noise, but may also increase the chances of clipping actual - * speech. - * @return: 0 if successful, <0 otherwise. - */ -SPHINXBASE_EXPORT -int32 cont_ad_set_thresh (cont_ad_t *cont, /**< In: Object ptr from cont_ad_init */ - int32 sil, /**< In: silence threshold (default 2) */ - int32 sp /**< In: speech threshold (default 2) */ - ); - - -/** - * Set the changable parameters. - * - * delta_sil, delta_speech, min_noise, and max_noise are in dB, - * winsize, speech_onset, sil_onset, leader and trailer are in frames of - * 16 ms length (256 samples @ 16kHz sampling). - */ -SPHINXBASE_EXPORT -int32 cont_ad_set_params (cont_ad_t *r, int32 delta_sil, int32 delta_speech, - int32 min_noise, int32 max_noise, - int32 winsize, int32 speech_onset, int32 sil_onset, - int32 leader, int32 trailer, - float32 adapt_rate); - -/** - * PWP 1/14/98 -- get the changable params. - * - * delta_sil, delta_speech, min_noise, and max_noise are in dB, - * winsize, speech_onset, sil_onset, leader and trailer are in frames of - * 16 ms length (256 samples @ 16kHz sampling). - */ -SPHINXBASE_EXPORT -int32 cont_ad_get_params (cont_ad_t *r, int32 *delta_sil, int32 *delta_speech, - int32 *min_noise, int32 *max_noise, - int32 *winsize, int32 *speech_onset, int32 *sil_onset, - int32 *leader, int32 *trailer, - float32 *adapt_rate); - -/** - * Reset, discarding any accumulated speech segments. - * @return 0 if successful, <0 otherwise. - */ -SPHINXBASE_EXPORT -int32 cont_ad_reset (cont_ad_t *cont); /* In: Object pointer from cont_ad_init */ - - -/** - * Close the continuous listening object. - */ -SPHINXBASE_EXPORT -int32 cont_ad_close (cont_ad_t *cont); /* In: Object pointer from cont_ad_init */ - - -/** - * Dump the power histogram. For debugging... - */ -SPHINXBASE_EXPORT -void cont_ad_powhist_dump (FILE *fp, cont_ad_t *cont); - - -/** - * Detach the given continuous listening module from the associated audio device. - * @return 0 if successful, -1 otherwise. - */ -SPHINXBASE_EXPORT -int32 cont_ad_detach (cont_ad_t *c); - - -/** - * Attach the continuous listening module to the given audio device/function. - * (Like cont_ad_init, but without the calibration.) - * @return 0 if successful, -1 otherwise. - */ -SPHINXBASE_EXPORT -int32 cont_ad_attach (cont_ad_t *c, ad_rec_t *a, int32 (*func)(ad_rec_t *, int16 *, int32)); - - -/** - * Set a file for dumping raw audio input. - * - * The application can ask cont_ad to dump the raw audio input that cont_ad - * processes to a file. Use this function to give the FILE* to the cont_ad - * object. If invoked with fp == NULL, dumping is turned off. The application - * is responsible for opening and closing the file. If fp is non-NULL, cont_ad - * assumes the file pointer is valid and opened for writing. - * - * @return 0 if successful, -1 otherwise. - */ -SPHINXBASE_EXPORT -int32 cont_ad_set_rawfp (cont_ad_t *c, /* The cont_ad object being addressed */ - FILE *fp); /* File to which raw audio data is to - be dumped; NULL to stop dumping. */ - -/** - * Set the file to which cont_ad logs its progress. - * - * Mainly for debugging. If fp is NULL, logging is turned off. - * - * @return 0 if successful, -1 otherwise. - */ -SPHINXBASE_EXPORT -int32 cont_ad_set_logfp (cont_ad_t *c, /* The cont_ad object being addressed */ - FILE *fp); /* File to which logs are written; - NULL to stop logging. */ - -/** - * Set the silence and speech thresholds. - * - * For this to remain permanently in effect, the auto_thresh field of - * the continuous listening module should be set to FALSE or 0. - * Otherwise the thresholds may be modified by the noise- level - * adaptation. - */ -SPHINXBASE_EXPORT -int32 cont_set_thresh(cont_ad_t *r, int32 silence, int32 speech); - -#ifdef __cplusplus -} -#endif - - -#endif diff -Nru sphinxbase-0.8/include/sphinxbase/err.h sphinxbase-0.8+5prealpha/include/sphinxbase/err.h --- sphinxbase-0.8/include/sphinxbase/err.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/err.h 2015-03-24 17:26:36.000000000 +0000 @@ -8,27 +8,27 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the * United States of America, and the CMU Sphinx Speech Consortium. * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY * NOR ITS EMPLOYEES 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 + * 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. * * ==================================================================== @@ -40,24 +40,23 @@ #include #include -#ifndef _WIN32_WCE +#include #include -#endif /* Win32/WinCE DLL gunk */ #include /** * @file err.h - * @brief Implementation of logging routines. + * @brief Implementation of logging routines. * * Logging, warning, debug and error message output funtionality is provided in this file. * Sphinxbase defines several level of logging messages - INFO, WARNING, ERROR, FATAL. By * default output goes to standard error output. * - * Logging is implemented through macros. They take same arguments as printf: format string and - * values. By default source file name and source line are prepended to the message. Log output - * could be redirected to any file using err_set_logfp() and err_set_logfile() functions. To disable + * Logging is implemented through macros. They take same arguments as printf: format string and + * values. By default source file name and source line are prepended to the message. Log output + * could be redirected to any file using err_set_logfp() and err_set_logfile() functions. To disable * logging in your application, call err_set_logfp(NULL). * * It's possible to log multiline info messages, to do that you need to start message with @@ -72,101 +71,138 @@ } #endif -SPHINXBASE_EXPORT -void _E__pr_header(char const *file, long line, char const *msg); -SPHINXBASE_EXPORT -void _E__pr_debug_header(char const *file, long line, int level); -SPHINXBASE_EXPORT -void _E__pr_info_header(char const *file, long line, char const *tag); -SPHINXBASE_EXPORT -void _E__pr_info_header_wofn(char const *msg); -SPHINXBASE_EXPORT -void _E__pr_warn(char const *fmt, ...); -SPHINXBASE_EXPORT -void _E__pr_info(char const *fmt, ...); -SPHINXBASE_EXPORT -void _E__die_error(char const *fmt, ...); -SPHINXBASE_EXPORT -void _E__abort_error(char const *fmt, ...); -SPHINXBASE_EXPORT -void _E__sys_error(char const *fmt, ...); -SPHINXBASE_EXPORT -void _E__fatal_sys_error(char const *fmt, ...); +#define E_SYSCALL(stmt, ...) if (stmt) E_FATAL_SYSTEM(__VA_ARGS__); + +#define FILELINE __FILE__ , __LINE__ /** - * Direct all logging to a given filehandle. - * - * @param logfp Filehandle to send log messages to, or NULL to disable logging. - * @return Previous logging filehandle, if any. + * Exit with non-zero status after error message */ -SPHINXBASE_EXPORT -FILE *err_set_logfp(FILE *logfp); +#define E_FATAL(...) \ + do { \ + err_msg(ERR_FATAL, FILELINE, __VA_ARGS__); \ + exit(EXIT_FAILURE); \ + } while (0) /** - * Get the current logging filehandle. - * @return Current logging filehandle, NULL if disabled. + * Print error text; Call perror(""); exit(errno); */ -SPHINXBASE_EXPORT -FILE * err_get_logfp(void); - +#define E_FATAL_SYSTEM(...) \ + do { \ + err_msg_system(ERR_FATAL, FILELINE, __VA_ARGS__); \ + exit(EXIT_FAILURE); \ + } while (0) /** - * Append all log messages to a given file. - * - * Previous logging filehandle is closed (unless it was stdout or stderr). - * - * @param file File to send log messages to, or NULL to disable logging. - * @return 0 for success, <0 for failure (e.g. if file does not exist) + * Print error text; Call perror(""); */ -SPHINXBASE_EXPORT -int err_set_logfile(char const *file); +#define E_ERROR_SYSTEM(...) err_msg_system(ERR_ERROR, FILELINE, __VA_ARGS__) /** - * Exit with non-zero status after error message + * Print error message to error log */ -#define E_FATAL _E__pr_header(__FILE__, __LINE__, "FATAL_ERROR"),_E__die_error +#define E_ERROR(...) err_msg(ERR_ERROR, FILELINE, __VA_ARGS__) /** - * Print error text; Call perror(""); exit(errno); + * Print warning message to error log */ -#define E_FATAL_SYSTEM _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__fatal_sys_error +#define E_WARN(...) err_msg(ERR_WARN, FILELINE, __VA_ARGS__) /** - * Print error text; Call perror(""); + * Print logging information to standard error stream */ -#define E_WARN_SYSTEM _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__sys_error +#define E_INFO(...) err_msg(ERR_INFO, FILELINE, __VA_ARGS__) /** - * Print error text; Call perror(""); + * Continue printing the information to standard error stream */ -#define E_ERROR_SYSTEM _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__sys_error +#define E_INFOCONT(...) err_msg(ERR_INFOCONT, NULL, 0, __VA_ARGS__) /** - * Print logging information to standard error stream + * Print logging information without filename. */ -#define E_INFO _E__pr_info_header(__FILE__, __LINE__, "INFO"),_E__pr_info +#define E_INFO_NOFN(...) err_msg(ERR_INFO, NULL, 0, __VA_ARGS__) /** - * Print logging information without header, to standard error stream + * Print debugging information to standard error stream. + * + * This will only print a message if: + * 1. Debugging is enabled at compile time + * 2. The debug level is greater than or equal to \a level + * + * Note that for portability reasons the format and arguments must be + * enclosed in an extra set of parentheses. */ +#ifdef SPHINX_DEBUG +#define E_DEBUG(level, ...) \ + if (err_get_debug_level() >= level) \ + err_msg(ERR_DEBUG, FILELINE, __VA_ARGS__) +#define E_DEBUGCONT(level, ...) \ + if (err_get_debug_level() >= level) \ + err_msg(ERR_DEBUG, NULL, 0, __VA_ARGS__) +#else +#define E_DEBUG(level,x) +#define E_DEBUGCONT(level,x) +#endif + +typedef enum err_e { + ERR_DEBUG, + ERR_INFO, + ERR_INFOCONT, + ERR_WARN, + ERR_ERROR, + ERR_FATAL, + ERR_MAX +} err_lvl_t; + +SPHINXBASE_EXPORT void +err_msg(err_lvl_t lvl, const char *path, long ln, const char *fmt, ...); + +SPHINXBASE_EXPORT void +err_msg_system(err_lvl_t lvl, const char *path, long ln, const char *fmt, ...); -#define E_INFOCONT _E__pr_info +SPHINXBASE_EXPORT void +err_logfp_cb(void * user_data, err_lvl_t level, const char *fmt, ...); + +typedef void (*err_cb_f)(void* user_data, err_lvl_t, const char *, ...); /** - * Print logging information without filename. + * Sets function to output error messages. Use it to redirect the logging + * to your application. By default the handler which dumps messages to + * stderr is set. + * + * @param - callback to pass messages too. */ -#define E_INFO_NOFN _E__pr_info_header_wofn("INFO"),_E__pr_info +SPHINXBASE_EXPORT void +err_set_callback(err_cb_f callback, void *user_data); +/** + * Direct all logging to a given filehandle if default logfp callback is set. + * + * @param logfp Filehandle to send log messages to, or NULL to disable logging. + */ +SPHINXBASE_EXPORT void +err_set_logfp(FILE *stream); /** - * Print warning information to standard error stream + * Get the current logging filehandle. + * + * @return Current logging filehandle, NULL if logging is disabled. Initially + * it returns stderr */ -#define E_WARN _E__pr_header(__FILE__, __LINE__, "WARNING"),_E__pr_warn +SPHINXBASE_EXPORT FILE * +err_get_logfp(void); /** - * Print error message to standard error stream + * Append all log messages to a given file. + * + * Previous logging filehandle is closed (unless it was stdout or stderr). + * + * @param file File path to send log messages to + * @return 0 for success, <0 for failure (e.g. if file does not exist) */ -#define E_ERROR _E__pr_header(__FILE__, __LINE__, "ERROR"),_E__pr_warn +SPHINXBASE_EXPORT int +err_set_logfile(const char *path); /** * Set debugging verbosity level. @@ -186,38 +222,8 @@ SPHINXBASE_EXPORT int err_get_debug_level(void); -/** - * Print debugging information to standard error stream. - * - * This will only print a message if: - * 1. Debugging is enabled at compile time - * 2. The debug level is greater than or equal to \a level - * - * Note that for portability reasons the format and arguments must be - * enclosed in an extra set of parentheses. - */ -#ifdef SPHINX_DEBUG -#define E_DEBUG(level,x) { \ - if (err_get_debug_level() >= level) { \ - _E__pr_header(__FILE__, __LINE__, "DEBUG"); \ - _E__pr_info x; \ - } \ - } -#define E_DEBUGCONT(level,x) { \ - if (err_get_debug_level() >= level) { \ - _E__pr_info x; \ - } \ - } -#else -#define E_DEBUG(level,x) -#define E_DEBUGCONT(level,x) -#endif - #ifdef __cplusplus } #endif - #endif /* !_ERR_H */ - - diff -Nru sphinxbase-0.8/include/sphinxbase/feat.h sphinxbase-0.8+5prealpha/include/sphinxbase/feat.h --- sphinxbase-0.8/include/sphinxbase/feat.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/feat.h 2015-03-24 17:26:36.000000000 +0000 @@ -36,46 +36,8 @@ */ /* * feat.h -- Cepstral features computation. - * - * ********************************************** - * CMU ARPA Speech Project - * - * Copyright (c) 1999 Carnegie Mellon University. - * ALL RIGHTS RESERVED. - * ********************************************** - * - * HISTORY - * $Log$ - * Revision 1.1 2006/04/05 20:27:30 dhdfu - * A Great Reorganzation of header files and executables - * - * Revision 1.17 2006/02/23 03:59:40 arthchan2003 - * Merged from branch SPHINX3_5_2_RCI_IRII_BRANCH: a, Free buffers correctly. b, Fixed dox-doc. - * - * Revision 1.16.4.1 2005/07/05 06:25:08 arthchan2003 - * Fixed dox-doc. - * - * Revision 1.16 2005/06/22 03:29:35 arthchan2003 - * Makefile.am s for all subdirectory of libs3decoder/ - * - * Revision 1.5 2005/06/13 04:02:56 archan - * Fixed most doxygen-style documentation under libs3decoder. - * - * Revision 1.4 2005/04/21 23:50:26 archan - * Some more refactoring on the how reporting of structures inside kbcore_t is done, it is now 50% nice. Also added class-based LM test case into test-decode.sh.in. At this moment, everything in search mode 5 is already done. It is time to test the idea whether the search can really be used. - * - * Revision 1.3 2005/03/30 01:22:46 archan - * Fixed mistakes in last updates. Add - * - * - * 20.Apr.2001 RAH (rhoughton@mediasite.com, ricky.houghton@cs.cmu.edu) - * Adding feat_free() to free allocated memory - * - * 04-Jan-1999 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Started. */ - #ifndef _S3_FEAT_H_ #define _S3_FEAT_H_ @@ -469,6 +431,14 @@ /** + * Update the normalization stats, possibly in the end of utterance + * + */ +SPHINXBASE_EXPORT +void feat_update_stats(feat_t *fcb); + + +/** * Retain ownership of feat_t. * * @return pointer to retained feat_t. diff -Nru sphinxbase-0.8/include/sphinxbase/fe.h sphinxbase-0.8+5prealpha/include/sphinxbase/fe.h --- sphinxbase-0.8/include/sphinxbase/fe.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/fe.h 2015-03-26 16:52:50.000000000 +0000 @@ -48,7 +48,7 @@ * */ -#if defined(WIN32) && !defined(GNUWINCE) +#if defined(_WIN32) && !defined(GNUWINCE) #define srand48(x) srand(x) #define lrand48() rand() #endif @@ -91,6 +91,14 @@ #define DEFAULT_NUM_CEPSTRA 13 /** Default number of filter bands used to generate MFCCs. */ #define DEFAULT_NUM_FILTERS 40 + +/** Default prespeech length */ +#define DEFAULT_PRE_SPEECH 20 +/** Default postspeech length */ +#define DEFAULT_POST_SPEECH 50 +/** Default postspeech length */ +#define DEFAULT_START_SPEECH 10 + /** Default lower edge of mel filter bank. */ #define DEFAULT_LOWER_FILT_FREQ 133.33334 /** Default upper edge of mel filter bank. */ @@ -183,6 +191,26 @@ "0", \ "Length of sin-curve for liftering, or 0 for no liftering." }, \ \ + { "-vad_prespeech", \ + ARG_INT32, \ + ARG_STRINGIFY(DEFAULT_PRE_SPEECH), \ + "Num of speech frames to keep before silence to speech." }, \ + \ + { "-vad_startspeech", \ + ARG_INT32, \ + ARG_STRINGIFY(DEFAULT_START_SPEECH), \ + "Num of speech frames to trigger vad from silence to speech." }, \ + \ + { "-vad_postspeech", \ + ARG_INT32, \ + ARG_STRINGIFY(DEFAULT_POST_SPEECH), \ + "Num of silence frames to keep after from speech to silence." }, \ + \ + { "-vad_threshold", \ + ARG_FLOAT32, \ + "2.0", \ + "Threshold for decision between noise and silence frames. Log-ratio between signal level and noise level." }, \ + \ { "-input_endian", \ ARG_STRING, \ NATIVE_ENDIAN, \ @@ -213,6 +241,16 @@ "no", \ "Remove DC offset from each frame" }, \ \ + { "-remove_noise", \ + ARG_BOOLEAN, \ + "yes", \ + "Remove noise with spectral subtraction in mel-energies" }, \ + \ + { "-remove_silence", \ + ARG_BOOLEAN, \ + "yes", \ + "Enables VAD, removes silence frames from processing" }, \ + \ { "-verbose", \ ARG_BOOLEAN, \ "no", \ @@ -310,6 +348,12 @@ const cmd_ln_t *fe_get_config(fe_t *fe); /** + * Start processing of the stream, resets processed frame counter + */ +SPHINXBASE_EXPORT +void fe_start_stream(fe_t *fe); + +/** * Start processing an utterance. * @return 0 for success, <0 for error (see enum fe_error_e) */ @@ -320,8 +364,8 @@ * Get the dimensionality of the output of this front-end object. * * This is guaranteed to be the number of values in one frame of - * output from fe_end_utt(), fe_process_frame(), and - * fe_process_frames(). It is usually the number of MFCC + * output from fe_end_utt() and fe_process_frames(). + * It is usually the number of MFCC * coefficients, but it might be the number of log-spectrum bins, if * the -logspec or -smoothspec options to * fe_init_auto() were true. @@ -348,6 +392,14 @@ int *out_frame_size); /** + * Get vad state for the last processed frame + * + * @return 1 if speech, 0 if silence + */ +SPHINXBASE_EXPORT +uint8 fe_get_vad_state(fe_t *fe); + +/** * Finish processing an utterance. * * This function also collects any remaining samples and calculates a @@ -382,17 +434,28 @@ SPHINXBASE_EXPORT int fe_free(fe_t *fe); -/** - * Process one frame of samples. +/* + * Do same as fe_process_frames, but also returns + * voiced audio. Output audio is valid till next + * fe_process_frames call. * - * @param spch Speech samples (signed 16-bit linear PCM) - * @param nsamps Number of samples in spch - * @param buf_cep Buffer which will receive one frame of features. - * @return 0 for success, <0 for error (see enum fe_error_e) + * DO NOT MIX fe_process_frames calls + * + * @param voiced_spch Output: obtain voiced audio samples here + * + * @param voiced_spch_nsamps Output: shows voiced_spch length + * + * @param out_frameidx Output: index of the utterance start */ SPHINXBASE_EXPORT -int fe_process_frame(fe_t *fe, int16 const *spch, - int32 nsamps, mfcc_t *out_cep); +int fe_process_frames_ext(fe_t *fe, + int16 const **inout_spch, + size_t *inout_nsamps, + mfcc_t **buf_cep, + int32 *inout_nframes, + int16 *voiced_spch, + int32 *voiced_spch_nsamps, + int32 *out_frameidx); /** * Process a block of samples. @@ -439,6 +502,8 @@ * @param inout_nframes Input: Pointer to maximum number of frames to * generate. * Output: Number of frames actually generated. + * @param out_frameidx Index of the first frame returned in a stream + * * @return 0 for success, <0 for failure (see enum fe_error_e) */ SPHINXBASE_EXPORT @@ -446,7 +511,8 @@ int16 const **inout_spch, size_t *inout_nsamps, mfcc_t **buf_cep, - int32 *inout_nframes); + int32 *inout_nframes, + int32 *out_frameidx); /** * Process a block of samples, returning as many frames as possible. diff -Nru sphinxbase-0.8/include/sphinxbase/filename.h sphinxbase-0.8+5prealpha/include/sphinxbase/filename.h --- sphinxbase-0.8/include/sphinxbase/filename.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/filename.h 2015-03-24 17:26:36.000000000 +0000 @@ -77,11 +77,10 @@ #endif /** - * Strip off leading path components from the given path and copy the base into base. - * Caller must have allocated base (hint: it's always shorter than path). + * Returns the last part of the path, without modifying anything in memory. */ SPHINXBASE_EXPORT -void path2basename(const char *path, char *base); +const char *path2basename(const char *path); /** * Strip off filename from the given path and copy the directory name into dir diff -Nru sphinxbase-0.8/include/sphinxbase/fixpoint.h sphinxbase-0.8+5prealpha/include/sphinxbase/fixpoint.h --- sphinxbase-0.8/include/sphinxbase/fixpoint.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/fixpoint.h 2015-03-24 17:26:36.000000000 +0000 @@ -79,13 +79,12 @@ * the fastest ones... */ - +#if defined(__arm__) && !defined(__thumb__) /* * This works on most modern ARMs but *only* in ARM mode (for obvious * reasons), so don't use it in Thumb mode (but why are you building * signal processing code in Thumb mode?!) */ -#if defined(__arm__) && !defined(__thumb__) #define FIXMUL(a,b) FIXMUL_ANY(a,b,DEFAULT_RADIX) #define FIXMUL_ANY(a,b,r) ({ \ int cl, ch, _a = a, _b = b; \ @@ -95,33 +94,27 @@ : "=&r" (cl), "=&r" (ch) \ : "r" (_a), "r" (_b), "i" (r), "i" (32-(r)));\ cl; }) -#elif defined(BFIN) && DEFAULT_RADIX == 16 -/* Blackfin magic */ -#undef FIXMUL -/* Use the accumulators for the 16.16 case (probably not as efficient as it could be). */ -#define FIXMUL(a,b) ({ \ - int c, _a = a, _b = b; \ - __asm__("%0.L = %1.l * %2.l (FU);\n\t" \ - "%0.H = %1.h * %2.h (IS);\n\t" \ - "A1 = %0;\n\t" \ - "A1 += %1.h * %2.l (IS, M);\n\t" \ - "%0 = (A1 += %2.h * %1.l) (IS, M);\n\t" \ - : "=&W" (c) \ - : "d" (_a), "d" (_b) \ - : "A1", "cc"); \ - c; }) -#define FIXMUL_ANY(a,b,radix) ((fixed32)(((int64)(a)*(b))>>(radix))) -#elif defined(_MSC_VER) || (defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG == 8) + +#elif defined(_MSC_VER) || (defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG == 8) +/* Standard systems*/ #define FIXMUL(a,b) FIXMUL_ANY(a,b,DEFAULT_RADIX) #define FIXMUL_ANY(a,b,radix) ((fixed32)(((int64)(a)*(b))>>(radix))) -#else /* Most general case where 'long long' doesn't exist or is slow. */ + +#else +/* Most general case where 'long long' doesn't exist or is slow. */ #define FIXMUL(a,b) FIXMUL_ANY(a,b,DEFAULT_RADIX) -#define FIXMUL_ANY(a,b,radix) \ - (fixed32)(((((uint32)(a))&((1<<(radix))-1)) \ - * (((uint32)(b))&((1<<(radix))-1)) >> (radix)) \ - + (((((int32)(a))>>(radix)) * (((int32)(b))>>(radix))) << (radix)) \ - + ((((uint32)(a))&((1<<(radix))-1)) * (((int32)(b))>>(radix))) \ - + ((((uint32)(b))&((1<<(radix))-1)) * (((int32)(a))>>(radix)))) +#define FIXMUL_ANY(a,b,radix) ({ \ + int32 _ah, _bh; \ + uint32 _al, _bl, _t, c; \ + _ah = ((int32)(a)) >> 16; \ + _bh = ((int32)(b)) >> 16; \ + _al = ((uint32)(a)) & 0xffff; \ + _bl = ((uint32)(b)) & 0xffff; \ + _t = _ah * _bl + _al * _bh; \ + c = (fixed32)(((_al * _bl) >> (radix)) \ + + ((_ah * _bh) << (32 - (radix))) \ + + ((radix) > 16 ? (_t >> (radix - 16)) : (_t << (16 - radix)))); \ + c;}) #endif /* Various fixed-point logarithmic functions that we need. */ @@ -132,6 +125,7 @@ #define FIXLN_2 ((fixed32)(0.693147180559945 * (1< -#include -#include -#include - -/* HISTORY - * $Log$ - * Revision 1.1 2006/04/05 20:27:30 dhdfu - * A Great Reorganzation of header files and executables - * - * Revision 1.3 2005/06/22 03:06:46 arthchan2003 - * Add keyword. - * - * Revision 1.2 2005/06/15 04:21:46 archan - * 1, Fixed doxygen-documentation, 2, Add keyword such that changes will be logged into a file. - * - */ - -/** \file info.h - * \brief Print hostname, directory name, compile time and date. - */ -#ifdef __cplusplus -extern "C" { -#endif -#if 0 -/* Fool Emacs. */ -} -#endif - -/* Win32/WinCE DLL gunk */ -#include - - -/** - This function prints the hostname, the directory, compile time - and date . */ - -SPHINXBASE_EXPORT -void print_appl_info(char* appl_name); - -#ifdef __cplusplus -} -#endif - -#endif /* _LIBUTIL_INFO_H_ */ - diff -Nru sphinxbase-0.8/include/sphinxbase/jsgf.h sphinxbase-0.8+5prealpha/include/sphinxbase/jsgf.h --- sphinxbase-0.8/include/sphinxbase/jsgf.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/jsgf.h 2015-03-24 17:26:36.000000000 +0000 @@ -84,6 +84,16 @@ jsgf_t *jsgf_parse_file(const char *filename, jsgf_t *parent); /** + * Parse a JSGF grammar from a string. + * + * @param 0-terminated string with grammar. + * @param parent optional parent grammar for this one (NULL, usually). + * @return new JSGF grammar object, or NULL on failure. + */ +SPHINXBASE_EXPORT +jsgf_t *jsgf_parse_string(const char *string, jsgf_t *parent); + +/** * Get the grammar name from the file. */ SPHINXBASE_EXPORT @@ -122,10 +132,16 @@ #define jsgf_rule_iter_free(itor) hash_table_iter_free(itor) /** - * Get a rule by name from a grammar. + * Get a rule by name from a grammar. Name should not contain brackets. */ SPHINXBASE_EXPORT -jsgf_rule_t *jsgf_get_rule(jsgf_t *grammar, char const *name); +jsgf_rule_t *jsgf_get_rule(jsgf_t *grammar, const char *name); + +/** + * Returns the first public rule of the grammar + */ +SPHINXBASE_EXPORT +jsgf_rule_t *jsgf_get_public_rule(jsgf_t *grammar); /** * Get the rule name from a rule. @@ -168,6 +184,15 @@ fsg_model_t *jsgf_read_file(const char *file, logmath_t * lmath, float32 lw); /** + * Read JSGF from string and return FSG object from it. + * + * This function looks for a first public rule in jsgf and constructs JSGF from it. + */ +SPHINXBASE_EXPORT +fsg_model_t *jsgf_read_string(const char *string, logmath_t * lmath, float32 lw); + + +/** * Convert a JSGF rule to Sphinx FSG text form. * * This does a direct conversion without doing transitive closure on diff -Nru sphinxbase-0.8/include/sphinxbase/logmath.h sphinxbase-0.8+5prealpha/include/sphinxbase/logmath.h --- sphinxbase-0.8/include/sphinxbase/logmath.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/logmath.h 2015-07-05 00:26:49.000000000 +0000 @@ -224,11 +224,23 @@ int logmath_log10_to_log(logmath_t *lmath, float64 log_p); /** + * Convert base 10 log (in floating point) to float log in base B. + */ +SPHINXBASE_EXPORT +float logmath_log10_to_log_float(logmath_t *lmath, float64 log_p); + +/** * Convert integer log in base B to base 10 log (in floating point). */ SPHINXBASE_EXPORT float64 logmath_log_to_log10(logmath_t *lmath, int logb_p); +/** + * Convert float log in base B to base 10 log. + */ +SPHINXBASE_EXPORT +float64 logmath_log_float_to_log10(logmath_t *lmath, float log_p); + #ifdef __cplusplus } #endif diff -Nru sphinxbase-0.8/include/sphinxbase/Makefile.am sphinxbase-0.8+5prealpha/include/sphinxbase/Makefile.am --- sphinxbase-0.8/include/sphinxbase/Makefile.am 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/Makefile.am 2015-07-05 00:26:49.000000000 +0000 @@ -2,6 +2,7 @@ ad.h \ agc.h \ bio.h \ + bitarr.h \ bitvec.h \ byteorder.h \ case.h \ @@ -9,7 +10,6 @@ clapack_lite.h \ cmd_ln.h \ cmn.h \ - cont_ad.h \ err.h \ f2c.h \ feat.h \ @@ -22,7 +22,6 @@ hash_table.h \ heap.h \ huff_code.h \ - info.h \ jsgf.h \ listelem_alloc.h \ logmath.h \ @@ -33,8 +32,9 @@ pio.h \ yin.h \ prim_type.h \ + priority_queue.h \ profile.h \ sbthread.h \ sphinxbase_export.h \ - strfuncs.h \ - unlimit.h + strfuncs.h + diff -Nru sphinxbase-0.8/include/sphinxbase/Makefile.in sphinxbase-0.8+5prealpha/include/sphinxbase/Makefile.in --- sphinxbase-0.8/include/sphinxbase/Makefile.in 2012-12-12 17:28:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/Makefile.in 2015-07-05 00:28:17.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,15 +79,14 @@ build_triplet = @build@ host_triplet = @host@ subdir = include/sphinxbase -DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(pkginclude_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -51,8 +94,25 @@ $(top_builddir)/include/sphinx_config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -74,13 +134,37 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(pkgincludedir)" HEADERS = $(pkginclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -94,6 +178,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -103,9 +188,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -113,15 +196,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -137,27 +219,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -190,14 +278,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -210,6 +301,7 @@ ad.h \ agc.h \ bio.h \ + bitarr.h \ bitvec.h \ byteorder.h \ case.h \ @@ -217,7 +309,6 @@ clapack_lite.h \ cmd_ln.h \ cmn.h \ - cont_ad.h \ err.h \ f2c.h \ feat.h \ @@ -230,7 +321,6 @@ hash_table.h \ heap.h \ huff_code.h \ - info.h \ jsgf.h \ listelem_alloc.h \ logmath.h \ @@ -241,11 +331,11 @@ pio.h \ yin.h \ prim_type.h \ + priority_queue.h \ profile.h \ sbthread.h \ sphinxbase_export.h \ - strfuncs.h \ - unlimit.h + strfuncs.h all: all-am @@ -259,9 +349,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/sphinxbase/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/sphinxbase/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/sphinxbase/Makefile + $(AUTOMAKE) --foreign include/sphinxbase/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -288,8 +378,11 @@ -rm -rf .libs _libs install-pkgincludeHEADERS: $(pkginclude_HEADERS) @$(NORMAL_INSTALL) - test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -303,30 +396,17 @@ @$(NORMAL_UNINSTALL) @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgincludedir)" && 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 + dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -338,15 +418,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -355,6 +431,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -406,10 +497,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -489,18 +585,19 @@ .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-pdf install-pdf-am \ - install-pkgincludeHEADERS 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-pkgincludeHEADERS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgincludeHEADERS 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 tags-am uninstall uninstall-am \ + uninstall-pkgincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/include/sphinxbase/matrix.h sphinxbase-0.8+5prealpha/include/sphinxbase/matrix.h --- sphinxbase-0.8/include/sphinxbase/matrix.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/matrix.h 2015-07-05 00:26:49.000000000 +0000 @@ -207,26 +207,3 @@ #endif #endif /* MATRIX_H */ - - -/* - * Log record. Maintained by RCS. - * - * $Log$ - * Revision 1.4 2004/07/21 17:46:09 egouvea - * Changed the license terms to make it the same as sphinx2 and sphinx3. - * - * Revision 1.3 2001/04/05 20:02:30 awb - * *** empty log message *** - * - * Revision 1.2 2000/09/29 22:35:12 awb - * *** empty log message *** - * - * Revision 1.1 2000/09/24 21:38:30 awb - * *** empty log message *** - * - * Revision 1.1 97/07/16 11:39:10 eht - * Initial revision - * - * - */ diff -Nru sphinxbase-0.8/include/sphinxbase/ngram_model.h sphinxbase-0.8+5prealpha/include/sphinxbase/ngram_model.h --- sphinxbase-0.8/include/sphinxbase/ngram_model.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/ngram_model.h 2015-07-05 00:26:49.000000000 +0000 @@ -77,8 +77,7 @@ NGRAM_INVALID = -1, /**< Not a valid file type. */ NGRAM_AUTO, /**< Determine file type automatically. */ NGRAM_ARPA, /**< ARPABO text format (the standard). */ - NGRAM_DMP, /**< Sphinx .DMP format. */ - NGRAM_DMP32, /**< Sphinx .DMP32 format (NOT SUPPORTED) */ + NGRAM_BIN, /**< Sphinx .DMP format. */ } ngram_file_type_t; #define NGRAM_INVALID_WID -1 /**< Impossible word ID */ @@ -92,7 +91,6 @@ * - -mmap (boolean) whether to use memory-mapped I/O * - -lw (float32) language weight to apply to the model * - -wip (float32) word insertion penalty to apply to the model - * - -uw (float32) unigram weight to apply to the model * * @param file_name path to the file to read. * @param file_type type of the file, or NGRAM_AUTO to determine automatically. @@ -160,25 +158,6 @@ int ngram_model_free(ngram_model_t *model); /** - * Re-encode word strings in an N-Gram model. - * - * Character set names are the same as those passed to iconv(1). If - * your system does not have iconv, this function may fail. Also, - * because all file formats consist of 8-bit character streams, - * attempting to convert to or from UTF-16 (or any other encoding - * which contains null bytes) is a recipe for total desaster. - * - * We have no interest in supporting UTF-16, so don't ask. - * - * Note that this does not affect any pronunciation dictionary you - * might currently be using in conjunction with this N-Gram model, so - * the effect of calling this during decoding is undefined. That's a - * bug! - */ -SPHINXBASE_EXPORT -int ngram_model_recode(ngram_model_t *model, const char *from, const char *to); - -/** * Constants for case folding. */ typedef enum ngram_case_e { @@ -204,23 +183,21 @@ * values we actually need. Call ngram_prob() if you want the "raw" * N-Gram probability estimate. * - * To remove all weighting, call ngram_apply_weights(model, 1.0, 1.0, 1.0). + * To remove all weighting, call ngram_apply_weights(model, 1.0, 1.0). */ SPHINXBASE_EXPORT int ngram_model_apply_weights(ngram_model_t *model, - float32 lw, float32 wip, float32 uw); + float32 lw, float32 wip); /** * Get the current weights from a language model. * * @param model The model in question. * @param out_log_wip Output: (optional) logarithm of word insertion penalty. - * @param out_log_uw Output: (optional) logarithm of unigram weight. * @return language weight. */ SPHINXBASE_EXPORT -float32 ngram_model_get_weights(ngram_model_t *model, int32 *out_log_wip, - int32 *out_log_uw); +float32 ngram_model_get_weights(ngram_model_t *model, int32 *out_log_wip); /** * Get the score (scaled, interpolated log-probability) for a general @@ -291,7 +268,20 @@ * unigram weight (interpolation with uniform) is not removed. */ SPHINXBASE_EXPORT -int32 ngram_prob(ngram_model_t *model, const char *word, ...); +int32 ngram_probv(ngram_model_t *model, const char *word, ...); + +/** + * Get the "raw" log-probability for a general N-Gram. + * + * This returns the log-probability of an N-Gram, as defined in the + * language model file, before any language weighting, interpolation, + * or insertion penalty has been applied. + * + * @note When backing off to a unigram from a bigram or trigram, the + * unigram weight (interpolation with uniform) is not removed. + */ +SPHINXBASE_EXPORT +int32 ngram_prob(ngram_model_t *model, const char *const *words, int32 n); /** * Quick "raw" probability lookup for a general N-Gram. @@ -361,7 +351,7 @@ * Get the counts of the various N-grams in the model. */ SPHINXBASE_EXPORT -int32 const *ngram_model_get_counts(ngram_model_t *model); +uint32 const *ngram_model_get_counts(ngram_model_t *model); /** * M-gram iterator object. @@ -445,7 +435,7 @@ * * This function assumes that the class tags have already been defined * as unigrams in the language model. All words in the class - * definition will be added to the lexicon as special in-class words. + * definition will be added to the vocabulary as special in-class words. * For this reason is is necessary that they not have the same names * as any words in the general unigram distribution. The convention * is to suffix them with ":class_tag", where class_tag is the class @@ -700,11 +690,7 @@ int32 ngram_model_set_known_wid(ngram_model_t *set, int32 set_wid); /** - * Flush any cached N-Gram information - * - * Some types of models cache trigram or other N-Gram information to - * speed repeated access to N-Grams with shared histories. This - * function flushes the cache so as to avoid dynamic memory leaks. + * Flush any cached N-Gram information */ SPHINXBASE_EXPORT void ngram_model_flush(ngram_model_t *lm); diff -Nru sphinxbase-0.8/include/sphinxbase/pio.h sphinxbase-0.8+5prealpha/include/sphinxbase/pio.h --- sphinxbase-0.8/include/sphinxbase/pio.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/pio.h 2015-03-24 17:26:36.000000000 +0000 @@ -175,12 +175,12 @@ * Line iterator for files. */ typedef struct lineiter_t { - char *buf; - size_t bsiz; - size_t len; - FILE *fh; - int32 clean; - int32 lineno; + char *buf; + FILE *fh; + int32 bsiz; + int32 len; + int32 clean; + int32 lineno; } lineiter_t; /** diff -Nru sphinxbase-0.8/include/sphinxbase/prim_type.h sphinxbase-0.8+5prealpha/include/sphinxbase/prim_type.h --- sphinxbase-0.8/include/sphinxbase/prim_type.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/prim_type.h 2015-03-24 17:26:36.000000000 +0000 @@ -172,9 +172,7 @@ #define MIN_IEEE_NORM_NEG_FLOAT64 -1.8e+307 /* Will the following really work?? */ -#define MAX_NEG_FLOAT32 ((float32) (-MAX_POS_FLOAT32)) #define MIN_NEG_FLOAT32 ((float32) (-MIN_POS_FLOAT32)) -#define MAX_NEG_FLOAT64 ((float64) (-MAX_POS_FLOAT64)) #define MIN_NEG_FLOAT64 ((float64) (-MIN_POS_FLOAT64)) diff -Nru sphinxbase-0.8/include/sphinxbase/priority_queue.h sphinxbase-0.8+5prealpha/include/sphinxbase/priority_queue.h --- sphinxbase-0.8/include/sphinxbase/priority_queue.h 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/priority_queue.h 2015-07-05 00:26:49.000000000 +0000 @@ -0,0 +1,45 @@ +#ifndef __PRIORITY_QUEUE_H__ +#define __PRIORITY_QUEUE_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif +#if 0 +/* Fool Emacs. */ +} +#endif + +/** + * Priority queue for max element tracking. + * The one expects heap here, but for current application + * (sorting of ngram entries one per order, i.e. maximum 10) + * i'll put just and array here, so each operation takes linear time. + * I swear to rework it some day! + * TODOTODOTODOTODOTODOTODOTODOTODOTODOTODOTODOTODOTODOTODO!!!!! + */ + +typedef struct priority_queue_s priority_queue_t; + +SPHINXBASE_EXPORT +priority_queue_t* priority_queue_create(size_t len, int (*compare)(void *a, void *b)); + +SPHINXBASE_EXPORT +void* priority_queue_poll(priority_queue_t *queue); + +SPHINXBASE_EXPORT +void priority_queue_add(priority_queue_t *queue, void *element); + +SPHINXBASE_EXPORT +size_t priority_queue_size(priority_queue_t *queue); + +SPHINXBASE_EXPORT +void priority_queue_free(priority_queue_t *queue, void (*free_ptr)(void *a)); + +#ifdef __cplusplus +} +#endif + +#endif /* __PRIORITY_QUEUE_H__ */ \ No newline at end of file diff -Nru sphinxbase-0.8/include/sphinxbase/sphinxbase_export.h sphinxbase-0.8+5prealpha/include/sphinxbase/sphinxbase_export.h --- sphinxbase-0.8/include/sphinxbase/sphinxbase_export.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/sphinxbase_export.h 2015-03-24 17:26:36.000000000 +0000 @@ -2,7 +2,7 @@ #define __SPHINXBASE_EXPORT_H__ /* Win32/WinCE DLL gunk */ -#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(__WINSCW__) && !defined(__SYMBIAN32__) +#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(_WIN32_WP) && !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(__WINSCW__) && !defined(__SYMBIAN32__) #if defined(SPHINXBASE_EXPORTS) /* Visual Studio */ #define SPHINXBASE_EXPORT __declspec(dllexport) #else diff -Nru sphinxbase-0.8/include/sphinxbase/strfuncs.h sphinxbase-0.8+5prealpha/include/sphinxbase/strfuncs.h --- sphinxbase-0.8/include/sphinxbase/strfuncs.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/strfuncs.h 2015-03-24 17:26:36.000000000 +0000 @@ -92,9 +92,6 @@ SPHINXBASE_EXPORT double atof_c(char const *str); -SPHINXBASE_EXPORT -uint32 utf8_decode(uint32 *state, uint32 *codep, uint32 *byte); - /* FIXME: Both of these string splitting functions basically suck. I have attempted to fix them as best I can. (dhuggins@cs, 20070808) */ diff -Nru sphinxbase-0.8/include/sphinxbase/unlimit.h sphinxbase-0.8+5prealpha/include/sphinxbase/unlimit.h --- sphinxbase-0.8/include/sphinxbase/unlimit.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/unlimit.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2004 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * unlimit.h -- "unlimit" the memory usage of program. - * - * ********************************************** - * CMU ARPA Speech Project - * - * Copyright (c) 1999 Carnegie Mellon University. - * ALL RIGHTS RESERVED. - * ********************************************** - * - * HISTORY - * $Log$ - * Revision 1.1 2006/04/05 20:27:30 dhdfu - * A Great Reorganzation of header files and executables - * - * Revision 1.6 2005/06/22 03:12:31 arthchan2003 - * 1, Fixed doxygen documentation, 2, Added keyword. - * - * Revision 1.3 2005/03/30 01:22:48 archan - * Fixed mistakes in last updates. Add - * - * - * 03-Oct-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University. - * Copied from Sphinx-II sources. - */ - - -#ifndef _LIBUTIL_UNLIMIT_H_ -#define _LIBUTIL_UNLIMIT_H_ - -/** \file unlimit.h - \brief (Obsolete, keep it for compilation purposes) -*/ - -#ifdef __cplusplus -extern "C" { -#endif -#if 0 -} /* Fool Emacs into not indenting things. */ -#endif - -/* Win32/WinCE DLL gunk */ -#include - -/* To remove resource (memory) usage restrictions */ -SPHINXBASE_EXPORT -void unlimit ( void ); - -#ifdef __cplusplus -} -#endif - - -#endif diff -Nru sphinxbase-0.8/include/sphinxbase/yin.h sphinxbase-0.8+5prealpha/include/sphinxbase/yin.h --- sphinxbase-0.8/include/sphinxbase/yin.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinxbase/yin.h 2015-07-05 00:26:49.000000000 +0000 @@ -84,6 +84,16 @@ void yin_end(yin_t *pe); /** + * Store a frame of data to the pitch estimator. + * + * @param pe Pitch estimator. + * @param frame Frame of frame_size (see + * yin_init()) samples of audio data. + */ +SPHINXBASE_EXPORT +void yin_store(yin_t *pe, int16 const *frame); + +/** * Feed a frame of data to the pitch estimator. * * @param pe Pitch estimator. @@ -94,6 +104,15 @@ void yin_write(yin_t *pe, int16 const *frame); /** + * Feed stored frame of data to the pitch estimator. + * (see yin_store()) + * + * @param pe Pitch estimator. + */ +SPHINXBASE_EXPORT +void yin_write_stored(yin_t *pe); + +/** * Read a raw estimated pitch value from the pitch estimator. * * @param pe Pitch estimator. @@ -107,11 +126,10 @@ * estimate, zero otherwise. */ SPHINXBASE_EXPORT -int yin_read(yin_t *pe, uint16 *out_period, uint16 *out_bestdiff); +int yin_read(yin_t *pe, uint16 *out_period, float *out_bestdiff); #ifdef __cplusplus } #endif #endif /* __YIN_H__ */ - diff -Nru sphinxbase-0.8/include/sphinx_config.h sphinxbase-0.8+5prealpha/include/sphinx_config.h --- sphinxbase-0.8/include/sphinx_config.h 2012-12-05 14:08:35.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinx_config.h 2015-05-02 19:40:07.000000000 +0000 @@ -1,47 +1,14 @@ /* include/sphinx_config.h. Generated from sphinx_config.h.in by configure. */ /* sphinx_config.h: Externally visible configuration parameters */ -/* Use ALSA library for sound I/O */ -/* #undef AD_BACKEND_ALSA */ - -/* Use ALSA library for sound I/O */ -#define AD_BACKEND_PULSEAUDIO /**/ - -/* Use JACK library for sound I/O */ -/* #undef AD_BACKEND_JACK */ - -/* Use IRIX interface for sound I/O */ -/* #undef AD_BACKEND_IRIX */ - -/* No interface for sound I/O */ -/* #undef AD_BACKEND_NONE */ - -/* Use OSF interface for sound I/O */ -/* #undef AD_BACKEND_OSF */ - -/* Use OSS interface for sound I/O */ -/* #undef AD_BACKEND_OSS */ - -/* Use OSS interface for sound I/O */ -/* #undef AD_BACKEND_OSS_BSD */ - -/* Use SunOS interface for sound I/O */ -/* #undef AD_BACKEND_SUNOS */ - -/* Use WinMM interface for sound I/O */ -/* #undef AD_BACKEND_WIN32 */ +/* Use fixed-point computation */ +/* #undef FIXED_POINT */ /* Default radix point for fixed-point */ /* #undef DEFAULT_RADIX */ -/* Use Q15 fixed-point computation */ -/* #undef FIXED16 */ - -/* Use fixed-point computation */ -/* #undef FIXED_POINT */ - /* The size of `long', as computed by sizeof. */ -#define SIZEOF_LONG 4 +#define SIZEOF_LONG 8 /* Define to 1 if the system has the type `long long'. */ #define HAVE_LONG_LONG 1 diff -Nru sphinxbase-0.8/include/sphinx_config.h.in sphinxbase-0.8+5prealpha/include/sphinx_config.h.in --- sphinxbase-0.8/include/sphinx_config.h.in 2012-12-05 14:06:03.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/sphinx_config.h.in 2015-05-01 21:16:08.000000000 +0000 @@ -1,44 +1,11 @@ /* sphinx_config.h: Externally visible configuration parameters */ -/* Use ALSA library for sound I/O */ -#undef AD_BACKEND_ALSA - -/* Use ALSA library for sound I/O */ -#undef AD_BACKEND_PULSEAUDIO - -/* Use JACK library for sound I/O */ -#undef AD_BACKEND_JACK - -/* Use IRIX interface for sound I/O */ -#undef AD_BACKEND_IRIX - -/* No interface for sound I/O */ -#undef AD_BACKEND_NONE - -/* Use OSF interface for sound I/O */ -#undef AD_BACKEND_OSF - -/* Use OSS interface for sound I/O */ -#undef AD_BACKEND_OSS - -/* Use OSS interface for sound I/O */ -#undef AD_BACKEND_OSS_BSD - -/* Use SunOS interface for sound I/O */ -#undef AD_BACKEND_SUNOS - -/* Use WinMM interface for sound I/O */ -#undef AD_BACKEND_WIN32 +/* Use fixed-point computation */ +#undef FIXED_POINT /* Default radix point for fixed-point */ #undef DEFAULT_RADIX -/* Use Q15 fixed-point computation */ -#undef FIXED16 - -/* Use fixed-point computation */ -#undef FIXED_POINT - /* The size of `long', as computed by sizeof. */ #undef SIZEOF_LONG diff -Nru sphinxbase-0.8/include/win32/config.h sphinxbase-0.8+5prealpha/include/win32/config.h --- sphinxbase-0.8/include/win32/config.h 2012-12-05 14:05:45.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/win32/config.h 2015-05-01 21:16:08.000000000 +0000 @@ -3,54 +3,21 @@ * SphinxBase. */ -/* Use ALSA library for sound I/O */ -/* #undef AD_BACKEND_ALSA */ - -/* Use IRIX interface for sound I/O */ -/* #undef AD_BACKEND_IRIX */ - -/* No interface for sound I/O */ -/* #undef AD_BACKEND_NONE */ - -/* Use OSF interface for sound I/O */ -/* #undef AD_BACKEND_OSF */ - -/* Use OSS interface for sound I/O */ -/* #define AD_BACKEND_OSS */ - -/* Use OSS interface for sound I/O */ -/* #undef AD_BACKEND_OSS_BSD */ - -/* Use SunOS interface for sound I/O */ -/* #undef AD_BACKEND_SUNOS */ - -/* Use WinMM interface for sound I/O */ -#undef AD_BACKEND_WIN32 - /* Default radix point for fixed-point */ /* #undef DEFAULT_RADIX */ /* Enable thread safety */ #define ENABLE_THREADS -/* The Thread Local Storage class */ -#define SPHINXBASE_TLS __declspec(thread) - -/* Use Q15 fixed-point computation */ -/* #undef FIXED16 */ - /* Use fixed-point computation */ /* #undef FIXED_POINT */ /* Enable matrix algebra with LAPACK */ -#define WITH_LAPACK +/* #undef WITH_LAPACK */ /* The size of `long', as computed by sizeof. */ #define SIZEOF_LONG 4 -/* Yes, we have errno.h */ -#define HAVE_ERRNO_H 1 - /* We don't have popen, but we do have _popen */ /* #define HAVE_POPEN 1 */ diff -Nru sphinxbase-0.8/include/win32/sphinx_config.h sphinxbase-0.8+5prealpha/include/win32/sphinx_config.h --- sphinxbase-0.8/include/win32/sphinx_config.h 2012-12-05 14:05:45.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/win32/sphinx_config.h 2015-05-01 21:16:08.000000000 +0000 @@ -3,36 +3,9 @@ * SphinxBase. */ -/* Use ALSA library for sound I/O */ -/* #undef AD_BACKEND_ALSA */ - -/* Use IRIX interface for sound I/O */ -/* #undef AD_BACKEND_IRIX */ - -/* No interface for sound I/O */ -/* #undef AD_BACKEND_NONE */ - -/* Use OSF interface for sound I/O */ -/* #undef AD_BACKEND_OSF */ - -/* Use OSS interface for sound I/O */ -/* #define AD_BACKEND_OSS */ - -/* Use OSS interface for sound I/O */ -/* #undef AD_BACKEND_OSS_BSD */ - -/* Use SunOS interface for sound I/O */ -/* #undef AD_BACKEND_SUNOS */ - -/* Use WinMM interface for sound I/O */ -#undef AD_BACKEND_WIN32 - /* Default radix point for fixed-point */ /* #undef DEFAULT_RADIX */ -/* Use Q15 fixed-point computation */ -/* #undef FIXED16 */ - /* Use fixed-point computation */ /* #undef FIXED_POINT */ diff -Nru sphinxbase-0.8/include/wince/config.h sphinxbase-0.8+5prealpha/include/wince/config.h --- sphinxbase-0.8/include/wince/config.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/wince/config.h 2015-03-24 17:26:36.000000000 +0000 @@ -1,3 +1,3 @@ -/* Silvio Moioli: keep only one configuration file */ +/* Keep only one configuration file */ #include "sphinx_config.h" diff -Nru sphinxbase-0.8/include/wince/sphinx_config.h sphinxbase-0.8+5prealpha/include/wince/sphinx_config.h --- sphinxbase-0.8/include/wince/sphinx_config.h 2012-12-05 14:06:01.000000000 +0000 +++ sphinxbase-0.8+5prealpha/include/wince/sphinx_config.h 2015-05-01 21:16:08.000000000 +0000 @@ -3,36 +3,9 @@ * SphinxBase. */ -/* Use ALSA library for sound I/O */ -/* #undef AD_BACKEND_ALSA */ - -/* Use IRIX interface for sound I/O */ -/* #undef AD_BACKEND_IRIX */ - -/* No interface for sound I/O */ -/* #undef AD_BACKEND_NONE */ - -/* Use OSF interface for sound I/O */ -/* #undef AD_BACKEND_OSF */ - -/* Use OSS interface for sound I/O */ -/* #define AD_BACKEND_OSS */ - -/* Use OSS interface for sound I/O */ -/* #undef AD_BACKEND_OSS_BSD */ - -/* Use SunOS interface for sound I/O */ -/* #undef AD_BACKEND_SUNOS */ - -/* Use WinMM interface for sound I/O */ -#undef AD_BACKEND_WIN32 - /* Default radix point for fixed-point */ /* #undef DEFAULT_RADIX */ -/* Use Q15 fixed-point computation */ -/* #undef FIXED16 */ - /* Use fixed-point computation */ /* #define FIXED_POINT 1 */ diff -Nru sphinxbase-0.8/INSTALL sphinxbase-0.8+5prealpha/INSTALL --- sphinxbase-0.8/INSTALL 2012-12-05 14:08:11.000000000 +0000 +++ sphinxbase-0.8+5prealpha/INSTALL 1970-01-01 00:00:00.000000000 +0000 @@ -1,365 +0,0 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008, 2009 Free Software Foundation, Inc. - - Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. This file is offered as-is, -without warranty of any kind. - -Basic Installation -================== - - Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following -more-detailed instructions are generic; see the `README' file for -instructions specific to this package. Some packages provide this -`INSTALL' file but do not implement all of the features documented -below. The lack of an optional feature in a given package is not -necessarily a bug. More recommendations for GNU packages can be found -in *note Makefile Conventions: (standards)Makefile Conventions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. Caching is -disabled by default to prevent problems with accidental use of stale -cache files. - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You need `configure.ac' if -you want to change it or regenerate `configure' using a newer version -of `autoconf'. - - The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. - - Running `configure' might take a while. While running, it prints - some messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package, generally using the just-built uninstalled binaries. - - 4. Type `make install' to install the programs and any data files and - documentation. When installing into a prefix owned by root, it is - recommended that the package be configured and built as a regular - user, and only the `make install' phase executed with root - privileges. - - 5. Optionally, type `make installcheck' to repeat any self-tests, but - this time using the binaries in their final installed location. - This target does not install anything. Running this target as a - regular user, particularly if the prior `make install' required - root privileges, verifies that the installation completed - correctly. - - 6. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - - 7. Often, you can also type `make uninstall' to remove the installed - files again. In practice, not all packages have tested that - uninstallation works correctly, even though it is required by the - GNU Coding Standards. - - 8. Some packages, particularly those that use Automake, provide `make - distcheck', which can by used by developers to test that all other - targets like `make install' and `make uninstall' work correctly. - This target is generally not run by end users. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' -for details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c99 CFLAGS=-g LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you can use GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. This -is known as a "VPATH" build. - - With a non-GNU `make', it is safer to compile the package for one -architecture at a time in the source code directory. After you have -installed the package for one architecture, use `make distclean' before -reconfiguring for another architecture. - - On MacOS X 10.5 and later systems, you can create libraries and -executables that work on multiple system types--known as "fat" or -"universal" binaries--by specifying multiple `-arch' options to the -compiler but only a single `-arch' option to the preprocessor. Like -this: - - ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CPP="gcc -E" CXXCPP="g++ -E" - - This is not guaranteed to produce working output in all cases, you -may have to build one architecture at a time and combine the results -using the `lipo' tool if you have problems. - -Installation Names -================== - - By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX', where PREFIX must be an -absolute file name. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses -PREFIX as the prefix for installing programs and libraries. -Documentation and other data files still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. In general, the -default for these options is expressed in terms of `${prefix}', so that -specifying just `--prefix' will affect all of the other directory -specifications that were not explicitly provided. - - The most portable way to affect installation locations is to pass the -correct locations to `configure'; however, many packages provide one or -both of the following shortcuts of passing variable assignments to the -`make install' command line to change installation locations without -having to reconfigure or recompile. - - The first method involves providing an override variable for each -affected directory. For example, `make install -prefix=/alternate/directory' will choose an alternate location for all -directory configuration variables that were expressed in terms of -`${prefix}'. Any directories that were specified during `configure', -but not in terms of `${prefix}', must each be overridden at install -time for the entire installation to be relocated. The approach of -makefile variable overrides for each directory variable is required by -the GNU Coding Standards, and ideally causes no recompilation. -However, some platforms have known limitations with the semantics of -shared libraries that end up requiring recompilation when using this -method, particularly noticeable in packages that use GNU Libtool. - - The second method involves providing the `DESTDIR' variable. For -example, `make install DESTDIR=/alternate/directory' will prepend -`/alternate/directory' before all installation names. The approach of -`DESTDIR' overrides is not required by the GNU Coding Standards, and -does not work on platforms that have drive letters. On the other hand, -it does better at avoiding recompilation issues, and works well even -when some directory options were not specified in terms of `${prefix}' -at `configure' time. - -Optional Features -================= - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - - Some packages offer the ability to configure how verbose the -execution of `make' will be. For these packages, running `./configure ---enable-silent-rules' sets the default to minimal output, which can be -overridden with `make V=1'; while running `./configure ---disable-silent-rules' sets the default to verbose, which can be -overridden with `make V=0'. - -Particular systems -================== - - On HP-UX, the default C compiler is not ANSI C compatible. If GNU -CC is not installed, it is recommended to use the following options in -order to use an ANSI C compiler: - - ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" - -and if that doesn't work, install pre-built binaries of GCC for HP-UX. - - On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot -parse its `' header file. The option `-nodtk' can be used as -a workaround. If GNU CC is not installed, it is therefore recommended -to try - - ./configure CC="cc" - -and if that doesn't work, try - - ./configure CC="cc -nodtk" - - On Solaris, don't put `/usr/ucb' early in your `PATH'. This -directory contains several dysfunctional programs; working variants of -these programs are available in `/usr/bin'. So, if you need `/usr/ucb' -in your `PATH', put it _after_ `/usr/bin'. - - On Haiku, software installed for all users goes in `/boot/common', -not `/usr/local'. It is recommended to use the following options: - - ./configure --prefix=/boot/common - -Specifying the System Type -========================== - - There may be some features `configure' cannot figure out -automatically, but needs to determine by the type of machine the package -will run on. Usually, assuming the package is built to be run on the -_same_ architectures, `configure' can figure that out, but if it prints -a message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS - KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the option `--target=TYPE' to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - - Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). - -Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: - - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of all of the options to `configure', and exit. - -`--help=short' -`--help=recursive' - Print a summary of the options unique to this package's - `configure', and exit. The `short' variant lists options used - only in the top level, while the `recursive' variant lists options - also present in any nested packages. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--prefix=DIR' - Use DIR as the installation prefix. *note Installation Names:: - for more details, including other options available for fine-tuning - the installation locations. - -`--no-create' -`-n' - Run the configure checks, but stop before creating any output - files. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff -Nru sphinxbase-0.8/install-sh sphinxbase-0.8+5prealpha/install-sh --- sphinxbase-0.8/install-sh 2012-12-05 14:08:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/install-sh 2015-03-24 17:27:12.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,7 +35,7 @@ # 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 +# '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 @@ -156,6 +156,10 @@ -s) stripcmd=$stripprog;; -t) dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac shift;; -T) no_target_directory=true;; @@ -186,6 +190,10 @@ fi shift # arg dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac done fi @@ -194,13 +202,17 @@ echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call `install-sh -d' without argument. + # 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 + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -228,9 +240,9 @@ for src do - # Protect names starting with `-'. + # Protect names problematic for 'test' and other utilities. case $src in - -*) src=./$src;; + -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then @@ -252,12 +264,7 @@ 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. @@ -347,7 +354,7 @@ 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. + # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in @@ -385,7 +392,7 @@ case $dstdir in /*) prefix='/';; - -*) prefix='./';; + [-=\(\)!]*) prefix='./';; *) prefix='';; esac @@ -403,7 +410,7 @@ for d do - test -z "$d" && continue + test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then diff -Nru sphinxbase-0.8/ltmain.sh sphinxbase-0.8+5prealpha/ltmain.sh --- sphinxbase-0.8/ltmain.sh 2012-12-05 14:07:59.000000000 +0000 +++ sphinxbase-0.8+5prealpha/ltmain.sh 2015-05-14 15:58:06.000000000 +0000 @@ -1,9 +1,9 @@ -# Generated from ltmain.m4sh. -# ltmain.sh (GNU libtool) 2.2.6b +# libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -32,50 +32,57 @@ # # 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 +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory +# 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. +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.2.6b -# automake: $automake_version -# autoconf: $autoconf_version +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 +# automake: $automake_version +# autoconf: $autoconf_version # # Report bugs to . +# GNU libtool home page: . +# General help using GNU software: . -PROGRAM=ltmain.sh +PROGRAM=libtool PACKAGE=libtool -VERSION=2.2.6b +VERSION=2.4.2 TIMESTAMP="" -package_revision=1.3017 +package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then @@ -91,10 +98,15 @@ BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + # NLS nuisances: We save the old values to restore during execute mode. -# 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 @@ -107,24 +119,28 @@ lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL $lt_unset CDPATH +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" : ${CP="cp -f"} -: ${ECHO="echo"} -: ${EGREP="/bin/grep -E"} -: ${FGREP="/bin/grep -F"} -: ${GREP="/bin/grep"} -: ${LN_S="ln -s"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} -: ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} @@ -144,6 +160,27 @@ dirname="s,/[^/]*$,," basename="s,^.*/,," +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: @@ -158,33 +195,183 @@ # 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"` + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } -# Generated shell functions inserted here. +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done -# 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" + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} # The name of this program: -# 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 @@ -196,7 +383,7 @@ ;; *) save_IFS="$IFS" - IFS=: + IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break @@ -215,6 +402,15 @@ # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. @@ -243,7 +439,7 @@ # name if it has been set yet. func_echo () { - $ECHO "$progname${mode+: }$mode: $*" + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... @@ -258,18 +454,25 @@ : } +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + # func_error arg... # Echo program name prefixed message to standard error. func_error () { - $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { - $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : @@ -326,9 +529,9 @@ 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"` + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done - my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do @@ -378,7 +581,7 @@ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi - $ECHO "X$my_tmpdir" | $Xsed + $ECHO "$my_tmpdir" } @@ -392,7 +595,7 @@ { case $1 in *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac @@ -419,7 +622,7 @@ { case $1 in *[\\\`\"]*) - my_arg=`$ECHO "X$1" | $Xsed \ + my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; @@ -488,15 +691,39 @@ fi } - - +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} # func_version # Echo version message to standard output and exit. func_version () { - $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ @@ -509,22 +736,28 @@ # Echo short help message to standard output and exit. func_usage () { - $SED -n '/^# Usage:/,/# -h/ { + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" - $ECHO + echo $ECHO "run \`$progname --help | more' for full usage" exit $? } -# func_help -# Echo long help message to standard output and exit. +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. func_help () { + $opt_debug + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print s/^# // s/^# *$// s*\$progname*'$progname'* @@ -534,11 +767,18 @@ 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`"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p - }' < "$progpath" - exit $? + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi } # func_missing_arg argname @@ -546,63 +786,106 @@ # exit_cmd. func_missing_arg () { - func_error "missing argument for $1" + $opt_debug + + func_error "missing argument for $1." exit_cmd=exit } -exit_cmd=: +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation +exit_cmd=: -# 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 || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. @@ -636,16 +919,16 @@ # Display the features supported by this script. func_features () { - $ECHO "host: $host" + echo "host: $host" if test "$build_libtool_libs" = yes; then - $ECHO "enable shared libraries" + echo "enable shared libraries" else - $ECHO "disable shared libraries" + echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - $ECHO "enable static libraries" + echo "enable static libraries" else - $ECHO "disable static libraries" + echo "disable static libraries" fi exit $? @@ -692,117 +975,209 @@ esac } -# Parse options once, thoroughly. This comes as soon as possible in -# the script to make things like `libtool --version' happen quickly. +# 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 - # 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 + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac - # Parse non-mode specific arguments: - while test "$#" -gt 0; do + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false + + +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do opt="$1" shift - case $opt in - --config) func_config ;; - - --debug) preserve_args="$preserve_args $opt" + --debug|-x) opt_debug='set -x' 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|--dryrun|-n) + opt_dry_run=: ;; - - --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" + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" shift ;; - --preserve-dup-deps) - opt_duplicate_deps=: ;; - - --quiet|--silent) preserve_args="$preserve_args $opt" - opt_silent=: + opt_preserve_dup_deps=: ;; - - --verbose| -v) preserve_args="$preserve_args $opt" + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) opt_silent=false +func_append preserve_args " $opt" ;; - - --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break - preserve_args="$preserve_args $opt $1" - func_enable_tag "$1" # tagname is set here + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" shift ;; + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + # Separate optargs to long options: - -dlopen=*|--mode=*|--tag=*) - func_opt_split "$opt" - set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; - -\?|-h) func_usage ;; - --help) opt_help=: ;; - --version) func_version ;; - - -*) func_fatal_help "unrecognized option \`$opt'" ;; - - *) nonopt="$opt" - break + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) @@ -810,82 +1185,44 @@ opt_duplicate_compiler_generated_deps=: ;; *) - opt_duplicate_compiler_generated_deps=$opt_duplicate_deps + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac - # Having warned about all mis-specified options, bail out if - # anything was wrong. - $exit_cmd $EXIT_FAILURE -} + $opt_help || { + # Sanity checks first: + func_check_version_match -# 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 + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" fi - exit $EXIT_MISMATCH - fi -} - + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" -## ----------- ## -## 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 + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi - test -z "$mode" && func_fatal_error "error: you must specify a MODE." + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} - # 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." -} +## ----------- ## +## Main. ## +## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. @@ -950,12 +1287,9 @@ # 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_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file @@ -1001,6 +1335,37 @@ } +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. @@ -1013,13 +1378,15 @@ 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" + func_append_quoted CC_quoted "$arg" done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) @@ -1030,11 +1397,13 @@ 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" + func_append_quoted CC_quoted "$arg" done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in - " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. @@ -1097,6 +1466,486 @@ } } + +################################################## +# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # +################################################## + +# func_convert_core_file_wine_to_w32 ARG +# Helper function used by file name conversion functions when $build is *nix, +# and $host is mingw, cygwin, or some other w32 environment. Relies on a +# correctly configured wine environment available, with the winepath program +# in $build's $PATH. +# +# ARG is the $build file name to be converted to w32 format. +# Result is available in $func_convert_core_file_wine_to_w32_result, and will +# be empty on error (or when ARG is empty) +func_convert_core_file_wine_to_w32 () +{ + $opt_debug + func_convert_core_file_wine_to_w32_result="$1" + if test -n "$1"; then + # 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_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + # func_mode_compile arg... func_mode_compile () { @@ -1137,12 +1986,12 @@ ;; -pie | -fpie | -fPIE) - pie_flag="$pie_flag $arg" + func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) - later="$later $arg" + func_append later " $arg" continue ;; @@ -1163,15 +2012,14 @@ save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" - func_quote_for_eval "$arg" - lastarg="$lastarg $func_quote_for_eval_result" + func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" + func_append base_compile " $lastarg" continue ;; @@ -1187,8 +2035,7 @@ esac # case $arg_mode # Aesthetically quote the previous argument. - func_quote_for_eval "$lastarg" - base_compile="$base_compile $func_quote_for_eval_result" + func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in @@ -1213,7 +2060,7 @@ *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.obj | *.sx) + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; @@ -1288,7 +2135,7 @@ # 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} + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= @@ -1319,17 +2166,16 @@ $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi - removelist="$removelist $output_obj" + func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist - removelist="$removelist $lockfile" + func_append 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_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result @@ -1349,7 +2195,7 @@ if test -z "$output_obj"; then # Place PIC objects in $objdir - command="$command -o $lobj" + func_append command " -o $lobj" fi func_show_eval_locale "$command" \ @@ -1396,11 +2242,11 @@ command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then - command="$command -o $obj" + func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. - command="$command$suppress_output" + func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' @@ -1445,13 +2291,13 @@ } $opt_help || { -test "$mode" = compile && func_mode_compile ${1+"$@"} + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. - case $mode in + case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. @@ -1482,10 +2328,11 @@ -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 + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. @@ -1538,7 +2385,7 @@ The following components of INSTALL-COMMAND are treated specially: - -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." @@ -1558,6 +2405,8 @@ -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) @@ -1586,6 +2435,11 @@ -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. @@ -1619,18 +2473,44 @@ ;; *) - func_fatal_help "invalid operation mode \`$mode'" + func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac - $ECHO + 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 +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi # func_mode_execute arg... @@ -1643,13 +2523,16 @@ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do + for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" @@ -1671,7 +2554,7 @@ dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" + func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" @@ -1712,7 +2595,7 @@ for file do case $file in - -*) ;; + -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then @@ -1728,8 +2611,7 @@ ;; esac # Quote arguments (to preserve shell metacharacters). - func_quote_for_eval "$file" - args="$args $func_quote_for_eval_result" + func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then @@ -1754,29 +2636,66 @@ # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - $ECHO "export $shlibpath_var" + echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } -test "$mode" = execute && func_mode_execute ${1+"$@"} +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi -# func_mode_finish arg... -func_mode_finish () -{ - $opt_debug - libdirs="$nonopt" - admincmds= + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. @@ -1786,7 +2705,7 @@ if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || admincmds="$admincmds + $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done @@ -1795,53 +2714,55 @@ # 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\" + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" - $ECHO " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - $ECHO + $ECHO " - 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 + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi exit $EXIT_SUCCESS } -test "$mode" = finish && func_mode_finish ${1+"$@"} +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... @@ -1852,7 +2773,7 @@ # 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 + case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " @@ -1866,7 +2787,12 @@ # 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" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac # We need to accept at least all the BSD install flags. dest= @@ -1876,10 +2802,12 @@ install_type= isdir=no stripme= + no_mode=: for arg do + arg2= if test -n "$dest"; then - files="$files $dest" + func_append files " $dest" dest=$arg continue fi @@ -1887,10 +2815,9 @@ case $arg in -d) isdir=yes ;; -f) - case " $install_prog " in - *[\\\ /]cp\ *) ;; - *) prev=$arg ;; - esac + if $install_cp; then :; else + prev=$arg + fi ;; -g | -m | -o) prev=$arg @@ -1904,6 +2831,10 @@ *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi prev= else dest=$arg @@ -1914,7 +2845,11 @@ # Aesthetically quote the argument. func_quote_for_eval "$arg" - install_prog="$install_prog $func_quote_for_eval_result" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ @@ -1923,6 +2858,13 @@ test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" @@ -1977,10 +2919,13 @@ case $file in *.$libext) # Do the static libraries later. - staticlibs="$staticlibs $file" + func_append staticlibs " $file" ;; *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" @@ -1994,23 +2939,23 @@ if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; + *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; + *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" - dir="$dir$objdir" + func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that @@ -2023,9 +2968,9 @@ 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%"` + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else - relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" @@ -2043,7 +2988,7 @@ test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. - func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in @@ -2083,7 +3028,7 @@ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) @@ -2183,7 +3128,7 @@ if test -f "$lib"; then func_source "$lib" fi - libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no @@ -2202,7 +3147,7 @@ file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. - relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" @@ -2221,7 +3166,7 @@ } else # Install the binary that we compiled earlier. - file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi @@ -2257,11 +3202,13 @@ # Set up the ranlib parameters. oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $oldlib" 'exit $?' + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. @@ -2280,7 +3227,7 @@ fi } -test "$mode" = install && func_mode_install ${1+"$@"} +test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p @@ -2323,6 +3270,22 @@ extern \"C\" { #endif +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + /* External symbol declarations for the compiler. */\ " @@ -2332,10 +3295,11 @@ $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` + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$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'" + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then @@ -2371,7 +3335,7 @@ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in - *cygwin | *mingw* | *cegcc* ) + *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; @@ -2384,10 +3348,52 @@ 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'" - } + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename" ; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac done $opt_dry_run || { @@ -2415,36 +3421,19 @@ if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else - $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi - $ECHO >> "$output_objdir/$my_dlsyms" "\ + 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 +extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; -$lt_dlsym_const lt_dlsymlist +LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," @@ -2457,7 +3446,7 @@ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac - $ECHO >> "$output_objdir/$my_dlsyms" "\ + echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; @@ -2484,7 +3473,7 @@ # 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*) + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; @@ -2500,7 +3489,7 @@ for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; - *) symtab_cflags="$symtab_cflags $arg" ;; + *) func_append symtab_cflags " $arg" ;; esac done @@ -2515,16 +3504,16 @@ 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%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "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%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; @@ -2538,8 +3527,8 @@ # 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@%%"` + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } @@ -2549,6 +3538,7 @@ # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug @@ -2559,9 +3549,11 @@ win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then - win32_nmres=`eval $NM -f posix -A $1 | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ @@ -2590,6 +3582,131 @@ $ECHO "$win32_libid_type" } +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} # func_extract_an_archive dir oldlib @@ -2598,7 +3715,18 @@ $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 test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else @@ -2669,7 +3797,7 @@ darwin_file= darwin_files= for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ @@ -2684,25 +3812,30 @@ func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } - -# func_emit_wrapper_part1 [arg=no] +# func_emit_wrapper [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 +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL @@ -2718,7 +3851,6 @@ # 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 @@ -2749,31 +3881,135 @@ 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\ + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ " - $ECHO "\ + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. - thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do - destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then @@ -2783,30 +4019,13 @@ esac fi - file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + file=\`\$ECHO \"\$file\" | $SED '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 + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then @@ -2814,7 +4033,7 @@ fi # remove .libs from thisdir case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi @@ -2869,6 +4088,18 @@ if test -f \"\$progdir/\$program\"; then" + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ @@ -2877,253 +4108,28 @@ # 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/::*\$//'\` + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED '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 + func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + \$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 @@ -3141,31 +4147,23 @@ This wrapper executable should never be moved out of the build directory. If it is, it will not operate correctly. - - Currently, it simply execs the wrapper *script* "$SHELL $output", - but could eventually absorb all of the scripts functionality and - exec $objdir/$outputname directly. */ EOF cat <<"EOF" +#ifdef _MSC_VER +# define _CRT_SECURE_NO_DEPRECATE 1 +#endif #include #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 @@ -3177,6 +4175,44 @@ #include #include +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) @@ -3192,14 +4228,7 @@ # 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 - +/* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' @@ -3230,10 +4259,6 @@ # 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 @@ -3246,22 +4271,13 @@ 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); -} +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; #else -# define LTWRAPPER_DEBUGPRINTF(args) +static int lt_debug = 0; #endif -const char *program_name = NULL; +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); @@ -3271,41 +4287,27 @@ 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_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_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 <"))); + lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", + nonnull (lt_argv_zero)); for (i = 0; i < newargc; i++) { - LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); + lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", + i, nonnull (newargz[i])); } EOF @@ -3560,11 +4523,14 @@ mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ + newargz = prepare_spawn (newargz); 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)); + lt_debugprintf (__FILE__, __LINE__, + "(main) failed to launch target \"%s\": %s\n", + lt_argv_zero, nonnull (strerror (errno))); return 127; } return rval; @@ -3586,7 +4552,7 @@ { void *p = (void *) malloc (num); if (!p) - lt_fatal ("Memory exhausted"); + lt_fatal (__FILE__, __LINE__, "memory exhausted"); return p; } @@ -3620,8 +4586,8 @@ { struct stat st; - LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", - path ? (*path ? path : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", + nonempty (path)); if ((!path) || (!*path)) return 0; @@ -3638,8 +4604,8 @@ int rval = 0; struct stat st; - LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", - path ? (*path ? path : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); if ((!path) || (!*path)) return 0; @@ -3665,8 +4631,8 @@ int tmp_len; char *concat_name; - LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", - wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; @@ -3719,7 +4685,8 @@ { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); @@ -3744,7 +4711,8 @@ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); @@ -3770,8 +4738,9 @@ int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { - LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", - tmp_pathspec)); + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) @@ -3793,8 +4762,9 @@ } else { - char *errstr = strerror (errno); - lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); @@ -3807,7 +4777,8 @@ tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { - lt_fatal ("Could not follow symlinks for %s", pathspec); + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif @@ -3833,11 +4804,25 @@ return str; } +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + static void -lt_error_core (int exit_status, const char *mode, +lt_error_core (int exit_status, const char *file, + int line, const char *mode, const char *message, va_list ap) { - fprintf (stderr, "%s: %s: ", program_name, mode); + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); @@ -3846,20 +4831,32 @@ } void -lt_fatal (const char *message, ...) +lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + void lt_setenv (const char *name, const char *value) { - LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", - (name ? name : ""), - (value ? value : ""))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ @@ -3904,95 +4901,12 @@ 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 : ""))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); if (name && *name && value && *value) { @@ -4011,9 +4925,9 @@ 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 : ""))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); if (name && *name && value && *value) { @@ -4023,11 +4937,158 @@ } } +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} EOF } # end: func_emit_cwrapperexe_src +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + # func_mode_link arg... func_mode_link () { @@ -4072,6 +5133,7 @@ new_inherited_linker_flags= avoid_version=no + bindir= dlfiles= dlprefiles= dlself=no @@ -4164,6 +5226,11 @@ esac case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. @@ -4195,9 +5262,9 @@ ;; *) if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" + func_append dlfiles " $arg" else - dlprefiles="$dlprefiles $arg" + func_append dlprefiles " $arg" fi prev= continue @@ -4221,7 +5288,7 @@ *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; - *) deplibs="$deplibs $qarg.ltframework" # this is fixed later + *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; @@ -4240,7 +5307,7 @@ moreargs= for fil in `cat "$save_arg"` do -# moreargs="$moreargs $fil" +# func_append moreargs " $fil" arg=$fil # A libtool-controlled object. @@ -4269,7 +5336,7 @@ if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" + func_append dlfiles " $pic_object" prev= continue else @@ -4281,7 +5348,7 @@ # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" + func_append dlprefiles " $pic_object" prev= fi @@ -4351,12 +5418,12 @@ if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; - *) rpath="$rpath $arg" ;; + *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; + *) func_append xrpath " $arg" ;; esac fi prev= @@ -4368,28 +5435,28 @@ continue ;; weak) - weak_libs="$weak_libs $arg" + func_append weak_libs " $arg" prev= continue ;; xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) - compiler_flags="$compiler_flags $qarg" + func_append 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" + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" @@ -4425,6 +5492,11 @@ continue ;; + -bindir) + prev=bindir + continue + ;; + -dlopen) prev=dlfiles continue @@ -4475,15 +5547,16 @@ ;; -L*) - func_stripname '-L' '' "$arg" - dir=$func_stripname_result - if test -z "$dir"; then + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; @@ -4495,24 +5568,30 @@ ;; esac case "$deplibs " in - *" -L$dir "*) ;; + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; - *) dllsearchpath="$dllsearchpath:$dir";; + *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; + *) func_append dllsearchpath ":$testbindir";; esac ;; esac @@ -4522,7 +5601,7 @@ -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; @@ -4536,7 +5615,7 @@ ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework - deplibs="$deplibs System.ltframework" + func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) @@ -4556,7 +5635,7 @@ ;; esac fi - deplibs="$deplibs $arg" + func_append deplibs " $arg" continue ;; @@ -4568,21 +5647,22 @@ # 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" + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - compiler_flags="$compiler_flags $arg" + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; + * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; @@ -4649,13 +5729,17 @@ # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; + *) func_append xrpath " $dir" ;; esac continue ;; @@ -4708,8 +5792,8 @@ 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" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" @@ -4724,9 +5808,9 @@ 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" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" @@ -4754,23 +5838,27 @@ 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 + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" - compiler_flags="$compiler_flags $arg" + func_append compiler_flags " $arg" continue ;; @@ -4782,7 +5870,7 @@ *.$objext) # A standard object. - objs="$objs $arg" + func_append objs " $arg" ;; *.lo) @@ -4813,7 +5901,7 @@ if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" + func_append dlfiles " $pic_object" prev= continue else @@ -4825,7 +5913,7 @@ # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" + func_append dlprefiles " $pic_object" prev= fi @@ -4870,24 +5958,25 @@ *.$libext) # An archive. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" + func_append deplibs " $arg" + func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. + func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" + func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" + func_append dlprefiles " $func_resolve_sysroot_result" prev= else - deplibs="$deplibs $arg" + func_append deplibs " $func_resolve_sysroot_result" fi continue ;; @@ -4925,7 +6014,7 @@ 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\'\` + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi @@ -4934,6 +6023,8 @@ func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" @@ -4954,12 +6045,12 @@ # 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 + if $opt_preserve_dup_deps ; then case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - libs="$libs $deplib" + func_append libs " $deplib" done if test "$linkmode" = lib; then @@ -4972,9 +6063,9 @@ 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" ;; + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac - pre_post_deps="$pre_post_deps $pre_post_dep" + func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= @@ -5041,17 +6132,19 @@ for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= + func_resolve_sysroot "$lib" case $lib in - *.la) func_source "$lib" ;; + *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do - deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` + func_basename "$deplib" + deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; - *) deplibs="$deplibs $deplib" ;; + *) func_append deplibs " $deplib" ;; esac done done @@ -5067,16 +6160,17 @@ lib= found=no case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else - compiler_flags="$compiler_flags $deplib" + func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi @@ -5161,7 +6255,7 @@ if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi @@ -5174,7 +6268,8 @@ test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then @@ -5188,7 +6283,8 @@ finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" @@ -5199,17 +6295,21 @@ -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" - dir=$func_stripname_result + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; + *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; - *.la) lib="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" @@ -5227,7 +6327,7 @@ 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 \ + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi @@ -5237,15 +6337,15 @@ ;; esac if test "$valid_a_lib" != yes; then - $ECHO + 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." + 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 $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" @@ -5272,11 +6372,11 @@ 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" + func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else - newdlfiles="$newdlfiles $deplib" + func_append newdlfiles " $deplib" fi fi continue @@ -5318,20 +6418,20 @@ # 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'` + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; - *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi - dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then @@ -5342,20 +6442,20 @@ 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" + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $deplib" done continue fi # $pass = conv @@ -5363,9 +6463,15 @@ # Get the name of the library we link against. linklib= - for l in $old_library $library_names; do - linklib="$l" - done + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi @@ -5382,9 +6488,9 @@ # 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" + func_append dlprefiles " $lib $dependency_libs" else - newdlfiles="$newdlfiles $lib" + func_append newdlfiles " $lib" fi continue fi # $pass = dlopen @@ -5406,14 +6512,14 @@ # 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 + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else - dir="$libdir" - absdir="$libdir" + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else @@ -5421,12 +6527,12 @@ dir="$ladir" absdir="$abs_ladir" # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" @@ -5437,20 +6543,46 @@ 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 + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac fi # $pass = dlpreopen if test -z "$libdir"; then @@ -5468,7 +6600,7 @@ if test "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" + func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no @@ -5481,7 +6613,8 @@ for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? @@ -5492,12 +6625,12 @@ # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... @@ -5512,7 +6645,7 @@ # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; - *) temp_rpath="$temp_rpath$absdir:" ;; + *) func_append temp_rpath "$absdir:" ;; esac fi @@ -5524,7 +6657,7 @@ *) case "$compile_rpath " in *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" + *) func_append compile_rpath " $absdir" ;; esac ;; esac @@ -5533,7 +6666,7 @@ *) case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" + *) func_append finalize_rpath " $libdir" ;; esac ;; esac @@ -5558,12 +6691,12 @@ case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded - notinst_deplibs="$notinst_deplibs $lib" + func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" + func_append notinst_deplibs " $lib" need_relink=yes fi ;; @@ -5580,7 +6713,7 @@ fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then - $ECHO + echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else @@ -5598,7 +6731,7 @@ *) case "$compile_rpath " in *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" + *) func_append compile_rpath " $absdir" ;; esac ;; esac @@ -5607,7 +6740,7 @@ *) case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" + *) func_append finalize_rpath " $libdir" ;; esac ;; esac @@ -5661,7 +6794,7 @@ linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" - if test "$linkmode" = prog || test "$mode" != relink; then + if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= @@ -5683,9 +6816,9 @@ 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" + 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 @@ -5712,12 +6845,12 @@ test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" + add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" + func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi @@ -5739,7 +6872,7 @@ if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then @@ -5753,13 +6886,13 @@ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi - if test "$linkmode" = prog || test "$mode" = relink; then + if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= @@ -5773,7 +6906,7 @@ elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then @@ -5790,7 +6923,7 @@ if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" + func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi @@ -5825,21 +6958,21 @@ # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. - $ECHO + 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." + 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." + 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." + 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 @@ -5867,37 +7000,46 @@ temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; + *) func_append xrpath " $temp_xrpath";; esac;; - *) temp_deplibs="$temp_deplibs $libdir";; + *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi - newlib_search_path="$newlib_search_path $absdir" + func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" - if $opt_duplicate_deps ; then + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do + path= case $deplib in -L*) path="$deplib" ;; *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." - dir="$func_dirname_result" + dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; @@ -5924,8 +7066,8 @@ 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}" + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi @@ -5958,7 +7100,7 @@ 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'` + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" @@ -5975,7 +7117,7 @@ for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; + *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= @@ -6033,10 +7175,10 @@ -L*) case " $tmp_libs " in *" $deplib "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; + *) func_append tmp_libs " $deplib" ;; esac ;; - *) tmp_libs="$tmp_libs $deplib" ;; + *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" @@ -6052,7 +7194,7 @@ ;; esac if test -n "$i" ; then - tmp_libs="$tmp_libs $i" + func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs @@ -6093,7 +7235,7 @@ # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" - objs="$objs$old_deplibs" + func_append objs "$old_deplibs" ;; lib) @@ -6126,10 +7268,10 @@ 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 $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" - libobjs="$libobjs $objs" + func_append libobjs " $objs" fi fi @@ -6188,13 +7330,14 @@ # which has an extra 1 added just for fun # case $version_type in + # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; - freebsd-aout|freebsd-elf|sunos) + freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" @@ -6304,7 +7447,7 @@ versuffix="$major.$revision" ;; - linux) + linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" @@ -6327,7 +7470,7 @@ done # Make executables depend on our current version. - verstring="$verstring:${current}.0" + func_append verstring ":${current}.0" ;; qnx) @@ -6395,10 +7538,10 @@ fi func_generate_dlsyms "$libname" "$libname" "yes" - libobjs="$libobjs $symfileobj" + func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= - if test "$mode" != relink; then + if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= @@ -6414,7 +7557,7 @@ continue fi fi - removelist="$removelist $p" + func_append removelist " $p" ;; *) ;; esac @@ -6425,27 +7568,28 @@ # 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" + func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do - # lib_search_path=`$ECHO "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"` + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do - temp_xrpath="$temp_xrpath -R$libdir" + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; + *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then @@ -6459,7 +7603,7 @@ for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; - *) dlfiles="$dlfiles $lib" ;; + *) func_append dlfiles " $lib" ;; esac done @@ -6469,19 +7613,19 @@ for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; + *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework - deplibs="$deplibs System.ltframework" + func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. @@ -6498,7 +7642,7 @@ *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then - deplibs="$deplibs -lc" + func_append deplibs " -lc" fi ;; esac @@ -6547,7 +7691,7 @@ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" i="" ;; esac @@ -6558,21 +7702,21 @@ set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." - $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 I believe you do not have" - $ECHO "*** because a test_compile did reveal that the linker did not use it for" - $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." + 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 I believe you do not have" + echo "*** because a test_compile did reveal that the linker did not use it for" + echo "*** its dynamic dependency list that programs get resolved with at runtime." fi fi ;; *) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" ;; esac done @@ -6590,7 +7734,7 @@ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" i="" ;; esac @@ -6601,29 +7745,29 @@ set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." - $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 a test_compile did reveal that the linker did not use this one" - $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." + 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 a test_compile did reveal that the linker did not use this one" + echo "*** as a dynamic dependency that programs can get resolved with at runtime." fi fi else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning! Library $i is needed by this library but I was not able to" - $ECHO "*** make it link in! You will probably need to install it or some" - $ECHO "*** library that it depends on before this library will be fully" - $ECHO "*** functional. Installing it before continuing would be even better." + echo "*** make it link in! You will probably need to install it or some" + echo "*** library that it depends on before this library will be fully" + echo "*** functional. Installing it before continuing would be even better." fi ;; *) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" ;; esac done @@ -6640,15 +7784,27 @@ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` + if test -n "$file_magic_glob"; then + libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` + else + libnameglob=$libname + fi + test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + if test "$want_nocaseglob" = yes; then + shopt -s nocaseglob + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | @@ -6665,13 +7821,13 @@ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi @@ -6680,12 +7836,12 @@ fi if test -n "$a_deplib" ; then droppeddeps=yes - $ECHO + 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" + 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 @@ -6696,7 +7852,7 @@ ;; *) # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. @@ -6712,7 +7868,7 @@ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" ;; esac @@ -6723,9 +7879,9 @@ 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 | \ + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi @@ -6734,12 +7890,12 @@ fi if test -n "$a_deplib" ; then droppeddeps=yes - $ECHO + 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" + 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 @@ -6750,32 +7906,32 @@ ;; *) # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" + func_append 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'` + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi - if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | - $GREP . >/dev/null; then - $ECHO + case $tmp_deplibs in + *[!\ \ ]*) + echo if test "X$deplibs_check_method" = "Xnone"; then - $ECHO "*** Warning: inter-library dependencies are not supported in this platform." + echo "*** Warning: inter-library dependencies are not supported in this platform." else - $ECHO "*** Warning: inter-library dependencies are not known to be supported." + echo "*** Warning: inter-library dependencies are not known to be supported." fi - $ECHO "*** All declared inter-library dependencies are being dropped." + echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes - fi + ;; + esac ;; esac versuffix=$versuffix_save @@ -6787,23 +7943,23 @@ 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 /'` + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then - $ECHO - $ECHO "*** Warning: libtool could not satisfy all declared inter-library" + echo + 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." + 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." + 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" @@ -6813,16 +7969,16 @@ 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." + 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." + 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 @@ -6839,9 +7995,9 @@ # 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'` + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac @@ -6854,7 +8010,7 @@ *) case " $deplibs " in *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; + func_append new_libs " -L$path/$objdir" ;; esac ;; esac @@ -6864,10 +8020,10 @@ -L*) case " $new_libs " in *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" @@ -6879,15 +8035,22 @@ # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else @@ -6896,18 +8059,18 @@ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" + func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi done @@ -6915,17 +8078,13 @@ 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 + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi @@ -6933,7 +8092,7 @@ fi shlibpath="$finalize_shlibpath" - test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi @@ -6959,18 +8118,18 @@ linknames= for link do - linknames="$linknames $link" + func_append linknames " $link" done # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" - delfiles="$delfiles $export_symbols" + func_append delfiles " $export_symbols" fi orig_export_symbols= @@ -7001,13 +8160,45 @@ $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do + for cmd1 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 + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. @@ -7029,7 +8220,7 @@ 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"' + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then @@ -7041,7 +8232,7 @@ # 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" + func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi @@ -7051,7 +8242,7 @@ case " $convenience " in *" $test_deplib "*) ;; *) - tmp_deplibs="$tmp_deplibs $test_deplib" + func_append tmp_deplibs " $test_deplib" ;; esac done @@ -7071,21 +8262,21 @@ test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $convenience - libobjs="$libobjs $func_extract_archives_result" + func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" + func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then + if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi @@ -7130,7 +8321,8 @@ save_libobjs=$libobjs fi save_output=$output - output_la=`$ECHO "X$output" | $Xsed -e "$basename"` + func_basename "$output" + output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. @@ -7143,13 +8335,16 @@ 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 + echo 'INPUT (' > $output for obj in $save_libobjs do - $ECHO "$obj" >> $output + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output done - $ECHO ')' >> $output - delfiles="$delfiles $output" + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" @@ -7163,10 +8358,12 @@ fi for obj do - $ECHO "$obj" >> $output + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output done - delfiles="$delfiles $output" - output=$firstobj\"$file_list_spec$output\" + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." @@ -7190,17 +8387,19 @@ # 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\" + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" 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\" + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext - objlist=$obj + objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result @@ -7210,11 +8409,12 @@ # 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\" + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi - delfiles="$delfiles $output" + func_append delfiles " $output" else output= @@ -7248,7 +8448,7 @@ lt_exit=$? # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -7269,7 +8469,7 @@ 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"' + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then @@ -7281,7 +8481,7 @@ # 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" + func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi @@ -7322,10 +8522,10 @@ # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $dlprefiles - libobjs="$libobjs $func_extract_archives_result" + func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi @@ -7341,7 +8541,7 @@ lt_exit=$? # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -7353,7 +8553,7 @@ IFS="$save_ifs" # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then @@ -7434,18 +8634,21 @@ 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'` + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' @@ -7505,8 +8708,8 @@ 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 /'` + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac @@ -7517,14 +8720,14 @@ 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" + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac @@ -7538,7 +8741,7 @@ *) case " $compile_deplibs " in *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; + func_append new_libs " -L$path/$objdir" ;; esac ;; esac @@ -7548,17 +8751,17 @@ -L*) case " $new_libs " in *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" - compile_command="$compile_command $compile_deplibs" - finalize_command="$finalize_command $finalize_deplibs" + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. @@ -7566,7 +8769,7 @@ # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; + *) func_append finalize_rpath " $libdir" ;; esac done fi @@ -7585,18 +8788,18 @@ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" + func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi case $host in @@ -7605,12 +8808,12 @@ case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; - *) dllsearchpath="$dllsearchpath:$libdir";; + *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; + *) func_append dllsearchpath ":$testbindir";; esac ;; esac @@ -7636,18 +8839,18 @@ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" + func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; - *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + *) func_append finalize_perm_rpath " $libdir" ;; esac fi done @@ -7661,8 +8864,8 @@ 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` + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" @@ -7674,15 +8877,15 @@ wrappers_required=yes case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; - *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 @@ -7691,13 +8894,19 @@ esac if test "$wrappers_required" = no; then # Replace the output file specification. - compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' @@ -7720,7 +8929,7 @@ # We should set the runpath_var. rpath= for dir in $perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi @@ -7728,7 +8937,7 @@ # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi @@ -7738,11 +8947,18 @@ # 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'` + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + exit $EXIT_SUCCESS fi @@ -7757,7 +8973,7 @@ 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'` + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= @@ -7769,13 +8985,19 @@ fi # Replace the output file specification. - link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + # Now create the wrapper script. func_verbose "creating $output" @@ -7793,18 +9015,7 @@ 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"` + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. @@ -7884,7 +9095,7 @@ else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then - oldobjs="$oldobjs $symfileobj" + func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" @@ -7892,10 +9103,10 @@ if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $addlibs - oldobjs="$oldobjs $func_extract_archives_result" + func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. @@ -7906,10 +9117,10 @@ # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $dlprefiles - oldobjs="$oldobjs $func_extract_archives_result" + func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have @@ -7925,9 +9136,9 @@ done | sort | sort -uc >/dev/null 2>&1); then : else - $ECHO "copying selected object files to avoid basename conflicts..." + echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= @@ -7951,18 +9162,30 @@ esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - oldobjs="$oldobjs $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" ;; - *) oldobjs="$oldobjs $obj" ;; + *) func_append oldobjs " $obj" ;; esac done fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." @@ -8036,7 +9259,7 @@ 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"` + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi @@ -8056,12 +9279,23 @@ *.la) func_basename "$deplib" name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" - newdependency_libs="$newdependency_libs $libdir/$name" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" ;; - *) newdependency_libs="$newdependency_libs $deplib" ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" @@ -8075,9 +9309,9 @@ 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" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; - *) newdlfiles="$newdlfiles $lib" ;; + *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" @@ -8094,7 +9328,7 @@ 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" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done @@ -8106,7 +9340,7 @@ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac - newdlfiles="$newdlfiles $abs" + func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= @@ -8115,15 +9349,33 @@ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac - newdlprefiles="$newdlprefiles $abs" + func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; esac $ECHO > $output "\ # $outputname - a libtool library file @@ -8182,7 +9434,7 @@ exit $EXIT_SUCCESS } -{ test "$mode" = link || test "$mode" = relink; } && +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} @@ -8202,9 +9454,9 @@ for arg do case $arg in - -f) RM="$RM $arg"; rmforce=yes ;; - -*) RM="$RM $arg" ;; - *) files="$files $arg" ;; + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; esac done @@ -8213,24 +9465,23 @@ rmdirs= - origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then - objdir="$origobjdir" + odir="$objdir" else - objdir="$dir/$origobjdir" + odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" - test "$mode" = uninstall && objdir="$dir" + test "$opt_mode" = uninstall && odir="$dir" - # Remember objdir for removal later, being careful to avoid duplicates - if test "$mode" = clean; then + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; esac fi @@ -8256,18 +9507,17 @@ # Delete the libtool libraries and symlinks. for n in $library_names; do - rmfiles="$rmfiles $objdir/$n" + func_append rmfiles " $odir/$n" done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + test -n "$old_library" && func_append rmfiles " $odir/$old_library" - case "$mode" in + case "$opt_mode" in clean) - case " $library_names " in - # " " in the beginning catches empty $dlname + case " $library_names " in *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac - test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then @@ -8295,19 +9545,19 @@ # 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" + func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" + func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) - if test "$mode" = clean ; then + if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) @@ -8317,7 +9567,7 @@ noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe - rmfiles="$rmfiles $file" + func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. @@ -8326,7 +9576,7 @@ func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result - rmfiles="$rmfiles $func_ltwrapper_scriptname_result" + func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename @@ -8334,12 +9584,12 @@ # 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}" + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" + func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then - rmfiles="$rmfiles $objdir/lt-${noexename}.c" + func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi @@ -8347,7 +9597,6 @@ 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 @@ -8359,16 +9608,16 @@ exit $exit_status } -{ test "$mode" = uninstall || test "$mode" = clean; } && +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} -test -z "$mode" && { +test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$mode'" + func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" diff -Nru sphinxbase-0.8/m4/ax_pkg_swig.m4 sphinxbase-0.8+5prealpha/m4/ax_pkg_swig.m4 --- sphinxbase-0.8/m4/ax_pkg_swig.m4 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/m4/ax_pkg_swig.m4 2015-03-24 17:26:35.000000000 +0000 @@ -0,0 +1,135 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_pkg_swig.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PKG_SWIG([major.minor.micro], [action-if-found], [action-if-not-found]) +# +# DESCRIPTION +# +# This macro searches for a SWIG installation on your system. If found, +# then SWIG is AC_SUBST'd; if not found, then $SWIG is empty. If SWIG is +# found, then SWIG_LIB is set to the SWIG library path, and AC_SUBST'd. +# +# You can use the optional first argument to check if the version of the +# available SWIG is greater than or equal to the value of the argument. It +# should have the format: N[.N[.N]] (N is a number between 0 and 999. Only +# the first N is mandatory.) If the version argument is given (e.g. +# 1.3.17), AX_PKG_SWIG checks that the swig package is this version number +# or higher. +# +# As usual, action-if-found is executed if SWIG is found, otherwise +# action-if-not-found is executed. +# +# In configure.in, use as: +# +# AX_PKG_SWIG(1.3.17, [], [ AC_MSG_ERROR([SWIG is required to build..]) ]) +# AX_SWIG_ENABLE_CXX +# AX_SWIG_MULTI_MODULE_SUPPORT +# AX_SWIG_PYTHON +# +# LICENSE +# +# Copyright (c) 2008 Sebastian Huber +# Copyright (c) 2008 Alan W. Irwin +# Copyright (c) 2008 Rafael Laboissiere +# Copyright (c) 2008 Andrew Collier +# Copyright (c) 2011 Murray Cumming +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 11 + +AC_DEFUN([AX_PKG_SWIG],[ + # Ubuntu has swig 2.0 as /usr/bin/swig2.0 + AC_PATH_PROGS([SWIG],[swig swig2.0]) + if test -z "$SWIG" ; then + m4_ifval([$3],[$3],[:]) + elif test -n "$1" ; then + AC_MSG_CHECKING([SWIG version]) + [swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`] + AC_MSG_RESULT([$swig_version]) + if test -n "$swig_version" ; then + # Calculate the required version number components + [required=$1] + [required_major=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_major" ; then + [required_major=0] + fi + [required=`echo $required | sed 's/[0-9]*[^0-9]//'`] + [required_minor=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_minor" ; then + [required_minor=0] + fi + [required=`echo $required | sed 's/[0-9]*[^0-9]//'`] + [required_patch=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_patch" ; then + [required_patch=0] + fi + # Calculate the available version number components + [available=$swig_version] + [available_major=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_major" ; then + [available_major=0] + fi + [available=`echo $available | sed 's/[0-9]*[^0-9]//'`] + [available_minor=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_minor" ; then + [available_minor=0] + fi + [available=`echo $available | sed 's/[0-9]*[^0-9]//'`] + [available_patch=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_patch" ; then + [available_patch=0] + fi + # Convert the version tuple into a single number for easier comparison. + # Using base 100 should be safe since SWIG internally uses BCD values + # to encode its version number. + required_swig_vernum=`expr $required_major \* 10000 \ + \+ $required_minor \* 100 \+ $required_patch` + available_swig_vernum=`expr $available_major \* 10000 \ + \+ $available_minor \* 100 \+ $available_patch` + + if test $available_swig_vernum -lt $required_swig_vernum; then + AC_MSG_WARN([SWIG version >= $1 is required. You have $swig_version.]) + SWIG='' + m4_ifval([$3],[$3],[]) + else + AC_MSG_CHECKING([for SWIG library]) + SWIG_LIB=`$SWIG -swiglib` + AC_MSG_RESULT([$SWIG_LIB]) + m4_ifval([$2],[$2],[]) + fi + else + AC_MSG_WARN([cannot determine SWIG version]) + SWIG='' + m4_ifval([$3],[$3],[]) + fi + fi + AC_SUBST([SWIG_LIB]) +]) diff -Nru sphinxbase-0.8/m4/ax_python_devel.m4 sphinxbase-0.8+5prealpha/m4/ax_python_devel.m4 --- sphinxbase-0.8/m4/ax_python_devel.m4 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/m4/ax_python_devel.m4 2015-05-01 21:13:35.000000000 +0000 @@ -0,0 +1,324 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_python_devel.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PYTHON_DEVEL([version]) +# +# DESCRIPTION +# +# Note: Defines as a precious variable "PYTHON_VERSION". Don't override it +# in your configure.ac. +# +# This macro checks for Python and tries to get the include path to +# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS) +# output variables. It also exports $(PYTHON_EXTRA_LIBS) and +# $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code. +# +# You can search for some particular version of Python by passing a +# parameter to this macro, for example ">= '2.3.1'", or "== '2.4'". Please +# note that you *have* to pass also an operator along with the version to +# match, and pay special attention to the single quotes surrounding the +# version number. Don't use "PYTHON_VERSION" for this: that environment +# variable is declared as precious and thus reserved for the end-user. +# +# This macro should work for all versions of Python >= 2.1.0. As an end +# user, you can disable the check for the python version by setting the +# PYTHON_NOVERSIONCHECK environment variable to something else than the +# empty string. +# +# If you need to use this macro for an older Python version, please +# contact the authors. We're always open for feedback. +# +# LICENSE +# +# Copyright (c) 2009 Sebastian Huber +# Copyright (c) 2009 Alan W. Irwin +# Copyright (c) 2009 Rafael Laboissiere +# Copyright (c) 2009 Andrew Collier +# Copyright (c) 2009 Matteo Settenvini +# Copyright (c) 2009 Horst Knorr +# Copyright (c) 2013 Daniel Mullner +# +# 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 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 17 + +AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL]) +AC_DEFUN([AX_PYTHON_DEVEL],[ + # + # Allow the use of a (user set) custom python version + # + AC_ARG_VAR([PYTHON_VERSION],[The installed Python + version to use, for example '2.3'. This string + will be appended to the Python interpreter + canonical name.]) + + AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]]) + if test -z "$PYTHON"; then + AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path]) + PYTHON_VERSION="" + fi + + # + # Check for a version of Python >= 2.1.0 + # + AC_MSG_CHECKING([for a version of Python >= '2.1.0']) + ac_supports_python_ver=`$PYTHON -c "import sys; \ + ver = sys.version.split ()[[0]]; \ + print (ver >= '2.1.0')"` + if test "$ac_supports_python_ver" != "True"; then + if test -z "$PYTHON_NOVERSIONCHECK"; then + AC_MSG_RESULT([no]) + AC_MSG_FAILURE([ +This version of the AC@&t@_PYTHON_DEVEL macro +doesn't work properly with versions of Python before +2.1.0. You may need to re-run configure, setting the +variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG, +PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand. +Moreover, to disable this check, set PYTHON_NOVERSIONCHECK +to something else than an empty string. +]) + else + AC_MSG_RESULT([skip at user request]) + fi + else + AC_MSG_RESULT([yes]) + fi + + # + # if the macro parameter ``version'' is set, honour it + # + if test -n "$1"; then + AC_MSG_CHECKING([for a version of Python $1]) + ac_supports_python_ver=`$PYTHON -c "import sys; \ + ver = sys.version.split ()[[0]]; \ + print (ver $1)"` + if test "$ac_supports_python_ver" = "True"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([this package requires Python $1. +If you have it installed, but it isn't the default Python +interpreter in your system path, please pass the PYTHON_VERSION +variable to configure. See ``configure --help'' for reference. +]) + PYTHON_VERSION="" + fi + fi + + # + # Check if you have distutils, else fail + # + AC_MSG_CHECKING([for the distutils Python package]) + ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` + if test -z "$ac_distutils_result"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot import Python module "distutils". +Please check your Python installation. The error was: +$ac_distutils_result]) + PYTHON_VERSION="" + fi + + # + # Check for Python include path + # + AC_MSG_CHECKING([for Python include path]) + if test -z "$PYTHON_CPPFLAGS"; then + python_path=`$PYTHON -c "import distutils.sysconfig; \ + print (distutils.sysconfig.get_python_inc ());"` + plat_python_path=`$PYTHON -c "import distutils.sysconfig; \ + print (distutils.sysconfig.get_python_inc (plat_specific=1));"` + if test -n "${python_path}"; then + if test "${plat_python_path}" != "${python_path}"; then + python_path="-I$python_path -I$plat_python_path" + else + python_path="-I$python_path" + fi + fi + PYTHON_CPPFLAGS=$python_path + fi + AC_MSG_RESULT([$PYTHON_CPPFLAGS]) + AC_SUBST([PYTHON_CPPFLAGS]) + + # + # Check for Python library path + # + AC_MSG_CHECKING([for Python library path]) + if test -z "$PYTHON_LDFLAGS"; then + # (makes two attempts to ensure we've got a version number + # from the interpreter) + ac_python_version=`cat<]], + [[Py_Initialize();]]) + ],[pythonexists=yes],[pythonexists=no]) + AC_LANG_POP([C]) + # turn back to default flags + CPPFLAGS="$ac_save_CPPFLAGS" + LIBS="$ac_save_LIBS" + + AC_MSG_RESULT([$pythonexists]) + + if test ! "x$pythonexists" = "xyes"; then + AC_MSG_FAILURE([ + Could not link test program to Python. Maybe the main Python library has been + installed in some non-standard library path. If so, pass it to configure, + via the LDFLAGS environment variable. + Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib" + ============================================================================ + ERROR! + You probably have to install the development version of the Python package + for your distribution. The exact name of this package varies among them. + ============================================================================ + ]) + PYTHON_VERSION="" + fi + + # + # all done! + # +]) diff -Nru sphinxbase-0.8/m4/iconv.m4 sphinxbase-0.8+5prealpha/m4/iconv.m4 --- sphinxbase-0.8/m4/iconv.m4 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/m4/iconv.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ -# iconv.m4 serial AM4 (gettext-0.11.3) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], -[ - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([iconv]) -]) - -AC_DEFUN([AM_ICONV_LINK], -[ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) - - dnl Add $INCICONV to CPPFLAGS before performing the following checks, - dnl because if the user has installed libiconv and not disabled its use - dnl via --without-libiconv-prefix, he wants to use it. The first - dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. - am_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) - - AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_func_iconv=yes) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_lib_iconv=yes - am_cv_func_iconv=yes) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) - fi - if test "$am_cv_lib_iconv" = yes; then - AC_MSG_CHECKING([how to link with libiconv]) - AC_MSG_RESULT([$LIBICONV]) - else - dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV - dnl either. - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - AC_SUBST(LIBICONV) - AC_SUBST(LTLIBICONV) -]) - -AC_DEFUN([AM_ICONV], -[ - AM_ICONV_LINK - if test "$am_cv_func_iconv" = yes; then - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL(am_cv_proto_iconv, [ - AC_TRY_COMPILE([ -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif -], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([$]{ac_t:- - }[$]am_cv_proto_iconv) - AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, - [Define as const if the declaration of iconv() needs const.]) - fi -]) diff -Nru sphinxbase-0.8/m4/lib-ld.m4 sphinxbase-0.8+5prealpha/m4/lib-ld.m4 --- sphinxbase-0.8/m4/lib-ld.m4 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/m4/lib-ld.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ -# lib-ld.m4 serial 3 (gettext-0.13) -dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl Subroutines of libtool.m4, -dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision -dnl with libtool.m4. - -dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. -AC_DEFUN([AC_LIB_PROG_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, -[# I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by GCC]) - 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. - [[\\/]* | [A-Za-z]:[\\/]*)] - [re_direlt='/[^/][^/]*/\.\./'] - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(acl_cv_path_LD, -[if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in - *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break ;; - *) - test "$with_gnu_ld" != yes && break ;; - esac - fi - done - IFS="$ac_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$acl_cv_path_LD" -if test -n "$LD"; then - AC_MSG_RESULT($LD) -else - AC_MSG_RESULT(no) -fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_LIB_PROG_LD_GNU -]) diff -Nru sphinxbase-0.8/m4/lib-link.m4 sphinxbase-0.8+5prealpha/m4/lib-link.m4 --- sphinxbase-0.8/m4/lib-link.m4 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/m4/lib-link.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,644 +0,0 @@ -# lib-link.m4 serial 9 (gettext-0.16) -dnl Copyright (C) 2001-2006 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -AC_PREREQ(2.50) - -dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and -dnl augments the CPPFLAGS variable. -AC_DEFUN([AC_LIB_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - define([Name],[translit([$1],[./-], [___])]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - ac_cv_lib[]Name[]_libs="$LIB[]NAME" - ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" - ac_cv_lib[]Name[]_cppflags="$INC[]NAME" - ]) - LIB[]NAME="$ac_cv_lib[]Name[]_libs" - LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" - INC[]NAME="$ac_cv_lib[]Name[]_cppflags" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the - dnl results of this search when this library appears as a dependency. - HAVE_LIB[]NAME=yes - undefine([Name]) - undefine([NAME]) -]) - -dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) -dnl searches for libname and the libraries corresponding to explicit and -dnl implicit dependencies, together with the specified include files and -dnl the ability to compile and link the specified testcode. If found, it -dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and -dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and -dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs -dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. -AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - define([Name],[translit([$1],[./-], [___])]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - - dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - - dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, - dnl because if the user has installed lib[]Name and not disabled its use - dnl via --without-lib[]Name-prefix, he wants to use it. - ac_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - - AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ - ac_save_LIBS="$LIBS" - LIBS="$LIBS $LIB[]NAME" - AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) - LIBS="$ac_save_LIBS" - ]) - if test "$ac_cv_lib[]Name" = yes; then - HAVE_LIB[]NAME=yes - AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) - AC_MSG_CHECKING([how to link with lib[]$1]) - AC_MSG_RESULT([$LIB[]NAME]) - else - HAVE_LIB[]NAME=no - dnl If $LIB[]NAME didn't lead to a usable library, we don't need - dnl $INC[]NAME either. - CPPFLAGS="$ac_save_CPPFLAGS" - LIB[]NAME= - LTLIB[]NAME= - fi - AC_SUBST([HAVE_LIB]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - undefine([Name]) - undefine([NAME]) -]) - -dnl Determine the platform dependent parameters needed to use rpath: -dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, -dnl hardcode_direct, hardcode_minus_L. -AC_DEFUN([AC_LIB_RPATH], -[ - dnl Tell automake >= 1.10 to complain if config.rpath is missing. - m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) - AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS - AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld - AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host - AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir - AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - ]) - wl="$acl_cv_wl" - libext="$acl_cv_libext" - shlibext="$acl_cv_shlibext" - hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - hardcode_direct="$acl_cv_hardcode_direct" - hardcode_minus_L="$acl_cv_hardcode_minus_L" - dnl Determine whether the user wants rpath handling at all. - AC_ARG_ENABLE(rpath, - [ --disable-rpath do not hardcode runtime library paths], - :, enable_rpath=yes) -]) - -dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. -AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -[ - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_LIB_ARG_WITH([lib$1-prefix], -[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib - --without-lib$1-prefix don't search for lib$1 in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - fi - fi -]) - dnl Search the library and its dependencies in $additional_libdir and - dnl $LDFLAGS. Using breadth-first-seach. - LIB[]NAME= - LTLIB[]NAME= - INC[]NAME= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='$1 $2' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - dnl See if it was already located by an earlier AC_LIB_LINKFLAGS - dnl or AC_LIB_HAVE_LINKFLAGS call. - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" - else - dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined - dnl that this library doesn't exist. So just drop it. - : - fi - else - dnl Search the library lib$name in $additional_libdir and $LDFLAGS - dnl and the already constructed $LIBNAME/$LTLIBNAME. - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" \ - && { test -f "$additional_libdir/lib$name.$shlibext" \ - || { test "$shlibext" = dll \ - && test -f "$additional_libdir/lib$name.dll.a"; }; }; then - found_dir="$additional_libdir" - if test -f "$additional_libdir/lib$name.$shlibext"; then - found_so="$additional_libdir/lib$name.$shlibext" - else - found_so="$additional_libdir/lib$name.dll.a" - fi - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" \ - && { test -f "$dir/lib$name.$shlibext" \ - || { test "$shlibext" = dll \ - && test -f "$dir/lib$name.dll.a"; }; }; then - found_dir="$dir" - if test -f "$dir/lib$name.$shlibext"; then - found_so="$dir/lib$name.$shlibext" - else - found_so="$dir/lib$name.dll.a" - fi - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - dnl Found the library. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - dnl Linking with a shared library. We attempt to hardcode its - dnl directory into the executable's runpath, unless it's the - dnl standard /usr/lib. - if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then - dnl No hardcoding is needed. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - dnl The hardcoding into $LIBNAME is system dependent. - if test "$hardcode_direct" = yes; then - dnl Using DIR/libNAME.so during linking hardcodes DIR into the - dnl resulting binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - dnl Rely on "-L$found_dir". - dnl But don't add it if it's already contained in the LDFLAGS - dnl or the already constructed $LIBNAME - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH - dnl here, because this doesn't fit in flags passed to the - dnl compiler. So give up. No hardcoding. This affects only - dnl very old systems. - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - dnl Linking with a static library. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" - else - dnl We shouldn't come here, but anyway it's good to have a - dnl fallback. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" - fi - fi - dnl Assume the include files are nearby. - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - dnl Potentially add $additional_includedir to $INCNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's /usr/local/include and we are using GCC on Linux, - dnl 3. if it's already present in $CPPFLAGS or the already - dnl constructed $INCNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INC[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $INCNAME. - INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - dnl Look for dependencies. - if test -n "$found_la"; then - dnl Read the .la file. It defines the variables - dnl dlname, library_names, old_library, dependency_libs, current, - dnl age, revision, installed, dlopen, dlpreopen, libdir. - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - dnl We use only dependency_libs. - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's /usr/local/lib and we are using GCC on Linux, - dnl 3. if it's already present in $LDFLAGS or the already - dnl constructed $LIBNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LIBNAME. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LTLIBNAME. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - dnl Handle this in the next round. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - dnl Handle this in the next round. Throw away the .la's - dnl directory; it is already contained in a preceding -L - dnl option. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - dnl Most likely an immediate library name. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" - ;; - esac - done - fi - else - dnl Didn't find the library; assume it is in the system directories - dnl known to the linker and runtime loader. (All the system - dnl directories known to the linker should also be known to the - dnl runtime loader, otherwise the system is severely misconfigured.) - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user must - dnl pass all path elements in one option. We can arrange that for a - dnl single library, but not when more than one $LIBNAMEs are used. - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" - done - dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - else - dnl The -rpath options are cumulative. - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - dnl When using libtool, the option that works for both libraries and - dnl executables is -R. The -R options are cumulative. - for found_dir in $ltrpathdirs; do - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" - done - fi -]) - -dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, -dnl unless already present in VAR. -dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes -dnl contains two or three consecutive elements that belong together. -AC_DEFUN([AC_LIB_APPENDTOVAR], -[ - for element in [$2]; do - haveit= - for x in $[$1]; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - [$1]="${[$1]}${[$1]:+ }$element" - fi - done -]) - -dnl For those cases where a variable contains several -L and -l options -dnl referring to unknown libraries and directories, this macro determines the -dnl necessary additional linker options for the runtime path. -dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) -dnl sets LDADDVAR to linker options needed together with LIBSVALUE. -dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, -dnl otherwise linking without libtool is assumed. -AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], -[ - AC_REQUIRE([AC_LIB_RPATH]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - $1= - if test "$enable_rpath" != no; then - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode directories into the resulting - dnl binary. - rpathdirs= - next= - for opt in $2; do - if test -n "$next"; then - dir="$next" - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem"; then - rpathdirs="$rpathdirs $dir" - fi - next= - else - case $opt in - -L) next=yes ;; - -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem"; then - rpathdirs="$rpathdirs $dir" - fi - next= ;; - *) next= ;; - esac - fi - done - if test "X$rpathdirs" != "X"; then - if test -n ""$3""; then - dnl libtool is used for linking. Use -R options. - for dir in $rpathdirs; do - $1="${$1}${$1:+ }-R$dir" - done - else - dnl The linker is used for linking directly. - if test -n "$hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user - dnl must pass all path elements in one option. - alldirs= - for dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - $1="$flag" - else - dnl The -rpath options are cumulative. - for dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - $1="${$1}${$1:+ }$flag" - done - fi - fi - fi - fi - fi - AC_SUBST([$1]) -]) diff -Nru sphinxbase-0.8/m4/lib-prefix.m4 sphinxbase-0.8+5prealpha/m4/lib-prefix.m4 --- sphinxbase-0.8/m4/lib-prefix.m4 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/m4/lib-prefix.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,185 +0,0 @@ -# lib-prefix.m4 serial 5 (gettext-0.15) -dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and -dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't -dnl require excessive bracketing. -ifdef([AC_HELP_STRING], -[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], -[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) - -dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed -dnl to access previously installed libraries. The basic assumption is that -dnl a user will want packages to use other packages he previously installed -dnl with the same --prefix option. -dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate -dnl libraries, but is otherwise very convenient. -AC_DEFUN([AC_LIB_PREFIX], -[ - AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_LIB_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - fi - fi -]) - if test $use_additional = yes; then - dnl Potentially add $additional_includedir to $CPPFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's already present in $CPPFLAGS, - dnl 3. if it's /usr/local/include and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - for x in $CPPFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $CPPFLAGS. - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" - fi - fi - fi - fi - dnl Potentially add $additional_libdir to $LDFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's already present in $LDFLAGS, - dnl 3. if it's /usr/local/lib and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then - haveit= - for x in $LDFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LDFLAGS. - LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" - fi - fi - fi - fi - fi -]) - -dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, -dnl acl_final_exec_prefix, containing the values to which $prefix and -dnl $exec_prefix will expand at the end of the configure script. -AC_DEFUN([AC_LIB_PREPARE_PREFIX], -[ - dnl Unfortunately, prefix and exec_prefix get only finally determined - dnl at the end of configure. - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the -dnl variables prefix and exec_prefix bound to the values they will have -dnl at the end of the configure script. -AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], -[ - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - $1 - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing -dnl the basename of the libdir, either "lib" or "lib64". -AC_DEFUN([AC_LIB_PREPARE_MULTILIB], -[ - dnl There is no formal standard regarding lib and lib64. The current - dnl practice is that on a system supporting 32-bit and 64-bit instruction - dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit - dnl libraries go under $prefix/lib. We determine the compiler's default - dnl mode by looking at the compiler's library search path. If at least - dnl of its elements ends in /lib64 or points to a directory whose absolute - dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the - dnl default, namely "lib". - acl_libdirstem=lib - searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi -]) diff -Nru sphinxbase-0.8/m4/libtool.m4 sphinxbase-0.8+5prealpha/m4/libtool.m4 --- sphinxbase-0.8/m4/libtool.m4 2012-12-05 14:07:59.000000000 +0000 +++ sphinxbase-0.8+5prealpha/m4/libtool.m4 2015-05-14 15:58:07.000000000 +0000 @@ -1,7 +1,8 @@ # 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. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -10,7 +11,8 @@ m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -37,7 +39,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) -# serial 56 LT_INIT +# serial 57 LT_INIT # LT_PREREQ(VERSION) @@ -66,6 +68,7 @@ # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl @@ -82,6 +85,8 @@ AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) @@ -118,7 +123,7 @@ *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) @@ -138,6 +143,11 @@ m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl @@ -160,10 +170,13 @@ dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our @@ -179,7 +192,6 @@ _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl -_LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) @@ -193,23 +205,6 @@ ;; 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 @@ -250,6 +245,28 @@ ])# _LT_SETUP +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' @@ -408,7 +425,7 @@ # 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"`']) +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS @@ -418,7 +435,7 @@ # 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"`' +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) @@ -517,12 +534,20 @@ LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -533,9 +558,9 @@ # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -543,16 +568,38 @@ 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_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- @@ -562,20 +609,11 @@ 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 +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF -AS_SHELL_SANITIZE -_AS_PREPARE - -exec AS_MESSAGE_FD>&1 +lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo @@ -601,7 +639,7 @@ m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. -Copyright (C) 2008 Free Software Foundation, Inc. +Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." @@ -646,15 +684,13 @@ # 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_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT @@ -717,15 +753,12 @@ # 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 '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) + _LT_PROG_REPLACE_SHELLFNS - mv -f "$cfgfile" "$ofile" || + mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], @@ -770,6 +803,7 @@ m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], @@ -791,6 +825,31 @@ ])# _LT_LANG +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], @@ -821,6 +880,10 @@ m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) @@ -831,11 +894,13 @@ AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER @@ -921,7 +986,13 @@ $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 + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -929,6 +1000,7 @@ 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 @@ -940,6 +1012,34 @@ [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -967,7 +1067,7 @@ else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi - if test "$DSYMUTIL" != ":"; then + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -977,8 +1077,8 @@ ]) -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ @@ -987,7 +1087,13 @@ _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)='' + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in @@ -995,7 +1101,7 @@ *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" @@ -1011,203 +1117,142 @@ fi ]) -# _LT_SYS_MODULE_PATH_AIX -# ----------------------- +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl -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 +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_SHELL_INIT +[m4_divert_text([M4SH-INIT], [$1 +])])# _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. +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], -[_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! - : +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' else - # 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 + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' 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 +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} - 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 +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac -# 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 +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) -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_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], @@ -1236,7 +1281,7 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in @@ -1329,14 +1374,27 @@ CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*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" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -1354,14 +1412,47 @@ ])# _LT_ENABLE_LOCK +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], -[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]) +[_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: @@ -1380,18 +1471,27 @@ 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 -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE @@ -1416,15 +1516,15 @@ -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 echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes @@ -1464,7 +1564,7 @@ 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 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes @@ -1527,6 +1627,11 @@ lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. @@ -1552,6 +1657,11 @@ lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -1591,8 +1701,8 @@ # 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 && + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` @@ -1643,7 +1753,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -[#line __oline__ "configure" +[#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -1684,7 +1794,13 @@ # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -1693,7 +1809,11 @@ if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -1869,16 +1989,16 @@ -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 echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes @@ -2037,6 +2157,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ @@ -2045,16 +2166,23 @@ 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 + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= @@ -2067,7 +2195,7 @@ 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 ' + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; @@ -2087,7 +2215,13 @@ 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` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) @@ -2113,7 +2247,7 @@ case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -2122,7 +2256,7 @@ ;; aix[[4-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -2175,7 +2309,7 @@ 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' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; @@ -2187,7 +2321,7 @@ ;; bsdi[[45]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -2206,8 +2340,9 @@ need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -2228,36 +2363,83 @@ 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" +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - 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 + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -2278,7 +2460,7 @@ ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -2286,10 +2468,6 @@ 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. @@ -2297,7 +2475,7 @@ objformat=`/usr/bin/objformat` else case $host_os in - freebsd[[123]]*) objformat=aout ;; + freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -2315,7 +2493,7 @@ esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) @@ -2335,12 +2513,26 @@ ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -2386,12 +2578,14 @@ soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[[3-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -2407,7 +2601,7 @@ nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -2444,9 +2638,9 @@ dynamic_linker=no ;; -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2454,16 +2648,21 @@ 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 + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -2475,8 +2674,9 @@ # 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' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi # We used to test for /lib/ld.so.1 and disable shared libraries on @@ -2507,7 +2707,7 @@ ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -2576,7 +2776,7 @@ ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2601,7 +2801,7 @@ ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2625,7 +2825,7 @@ sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -2656,7 +2856,7 @@ tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2666,7 +2866,7 @@ ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2708,6 +2908,8 @@ The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], @@ -2820,6 +3022,7 @@ AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], @@ -2941,6 +3144,11 @@ esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' @@ -2949,8 +3157,8 @@ fi ;; esac -_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl -_LT_DECL([], [reload_cmds], [2])dnl +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl ])# _LT_CMD_RELOAD @@ -3002,16 +3210,18 @@ # 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 + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -cegcc) +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' @@ -3041,6 +3251,10 @@ lt_cv_deplibs_check_method=pass_all ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in @@ -3049,11 +3263,11 @@ 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_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_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 @@ -3074,8 +3288,8 @@ lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. -linux* | k*bsd*-gnu) +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -3153,6 +3367,21 @@ ;; esac ]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -3160,7 +3389,11 @@ _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"]) + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD @@ -3217,7 +3450,19 @@ 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"], :) + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" @@ -3230,13 +3475,13 @@ 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 echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -3251,15 +3496,76 @@ dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' -# LT_LIB_M -# -------- +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# LT_LIB_M +# -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -3287,7 +3593,12 @@ _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' + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, @@ -3304,6 +3615,7 @@ m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl @@ -3371,8 +3683,8 @@ 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'" +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= @@ -3396,6 +3708,7 @@ # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -3408,6 +3721,7 @@ else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -3429,7 +3743,7 @@ 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 + 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" @@ -3441,6 +3755,18 @@ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + #ifdef __cplusplus extern "C" { #endif @@ -3452,7 +3778,7 @@ cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ -const struct { +LT@&t@_DLSYM_CONST struct { const char *name; void *address; } @@ -3478,15 +3804,15 @@ _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi @@ -3519,6 +3845,13 @@ AC_MSG_RESULT(ok) fi +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], @@ -3529,6 +3862,8 @@ _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS @@ -3540,7 +3875,6 @@ _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 @@ -3591,6 +3925,11 @@ # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. @@ -3640,6 +3979,12 @@ ;; esac ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; dgux*) case $cc_basename in ec++*) @@ -3696,7 +4041,7 @@ ;; esac ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler @@ -3729,8 +4074,8 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - xlc* | xlC*) - # IBM XL 8.0 on PPC + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' @@ -3792,7 +4137,7 @@ ;; solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' @@ -3896,6 +4241,12 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag @@ -3938,6 +4289,15 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in @@ -3980,7 +4340,7 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) @@ -4001,7 +4361,13 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; - pgcc* | pgf77* | pgf90* | pgf95*) + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' @@ -4013,25 +4379,40 @@ # 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 + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; @@ -4063,7 +4444,7 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in - f77* | f90* | f95*) + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; @@ -4120,9 +4501,11 @@ _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]) + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. @@ -4141,6 +4524,8 @@ _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # @@ -4161,6 +4546,7 @@ m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl @@ -4169,27 +4555,37 @@ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; + ;; cygwin* | mingw* | cegcc*) - _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' - ;; + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; + ;; esac - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= @@ -4204,7 +4600,6 @@ _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 @@ -4252,7 +4647,33 @@ esac _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' @@ -4270,6 +4691,7 @@ fi supports_anon_versioning=no case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... @@ -4285,11 +4707,12 @@ _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 +*** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. _LT_EOF fi @@ -4325,10 +4748,12 @@ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' @@ -4346,6 +4771,11 @@ fi ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -4361,7 +4791,7 @@ _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) + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in @@ -4371,15 +4801,16 @@ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then - tmp_addflag= + tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* | pgf95*) # 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' + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -4390,13 +4821,17 @@ 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) + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 @@ -4412,17 +4847,16 @@ fi case $cc_basename in - xlf*) + xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _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' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -4436,8 +4870,8 @@ _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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -4455,8 +4889,8 @@ _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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4502,8 +4936,8 @@ *) 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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4543,8 +4977,10 @@ else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi @@ -4631,9 +5067,9 @@ _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_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' @@ -4642,14 +5078,19 @@ else # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' @@ -4681,20 +5122,64 @@ # 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 + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac ;; darwin* | rhapsody*) @@ -4707,10 +5192,6 @@ _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 @@ -4723,7 +5204,7 @@ ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + 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 @@ -4732,7 +5213,7 @@ # 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(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -4740,7 +5221,7 @@ 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' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi @@ -4755,14 +5236,13 @@ ;; 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' + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_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 @@ -4774,16 +5254,16 @@ ;; hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then + if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else @@ -4795,7 +5275,14 @@ _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' + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi @@ -4823,19 +5310,34 @@ 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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. - 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" + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' @@ -4897,17 +5399,17 @@ _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(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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' @@ -4917,13 +5419,13 @@ 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(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' @@ -4936,9 +5438,9 @@ _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_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) @@ -5114,36 +5616,38 @@ # 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)]) + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi @@ -5180,9 +5684,6 @@ _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], @@ -5208,8 +5709,6 @@ 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], @@ -5220,6 +5719,8 @@ [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented @@ -5313,37 +5814,22 @@ ])# _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_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no @@ -5355,7 +5841,6 @@ _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 @@ -5365,6 +5850,8 @@ _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -5396,6 +5883,7 @@ # Allow CC to be a program name with arguments. lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX @@ -5413,6 +5901,7 @@ fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -5434,8 +5923,8 @@ # 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(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5467,7 +5956,7 @@ # 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"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no @@ -5576,10 +6065,10 @@ _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_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' @@ -5588,14 +6077,19 @@ else # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. @@ -5625,28 +6119,75 @@ ;; 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 - ;; + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; @@ -5669,7 +6210,7 @@ esac ;; - freebsd[[12]]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no @@ -5688,6 +6229,11 @@ gnu*) ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: @@ -5712,11 +6258,11 @@ # 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' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -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' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no @@ -5777,7 +6323,7 @@ # 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' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then @@ -5787,10 +6333,10 @@ _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 $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi @@ -5820,7 +6366,7 @@ 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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is @@ -5831,9 +6377,9 @@ *) 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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes @@ -5844,7 +6390,7 @@ _LT_TAGVAR(inherit_rpath, $1)=yes ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler @@ -5862,7 +6408,7 @@ # 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' + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5899,26 +6445,26 @@ pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in - *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + *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`"' + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; - *) # Version 6 will use weak symbols + *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; @@ -5926,7 +6472,7 @@ _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' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ @@ -5945,9 +6491,9 @@ # 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' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; - xl*) + xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5967,13 +6513,13 @@ _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(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -6042,7 +6588,7 @@ _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 + output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -6077,15 +6623,15 @@ 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(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; @@ -6101,17 +6647,17 @@ # 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' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $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}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac @@ -6121,7 +6667,7 @@ # 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"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support @@ -6157,7 +6703,7 @@ solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' @@ -6178,7 +6724,7 @@ esac _LT_TAGVAR(link_all_deplibs, $1)=yes - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -6198,14 +6744,14 @@ 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_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. @@ -6216,7 +6762,7 @@ # 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"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' @@ -6270,6 +6816,10 @@ CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' @@ -6325,6 +6875,7 @@ fi # test -n "$compiler" CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC @@ -6339,6 +6890,29 @@ ])# _LT_LANG_CXX_CONFIG +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose @@ -6347,6 +6921,7 @@ # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= @@ -6396,7 +6971,20 @@ } }; _LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF ]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then @@ -6408,7 +6996,7 @@ pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do - case $p in + case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. @@ -6417,13 +7005,22 @@ test $p = "-R"; then prev=$p continue - else - prev= fi + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) + case ${prev} in + -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. @@ -6443,8 +7040,10 @@ _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi + prev= ;; + *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. @@ -6480,6 +7079,7 @@ fi $RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], @@ -6516,7 +7116,7 @@ solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as @@ -6560,32 +7160,16 @@ ])# _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) +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= @@ -6595,7 +7179,6 @@ _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 @@ -6604,6 +7187,8 @@ _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -6643,7 +7228,9 @@ # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} + CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -6697,38 +7284,24 @@ GCC=$lt_save_GCC CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG -# _LT_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) +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= @@ -6738,7 +7311,6 @@ _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 @@ -6747,6 +7319,8 @@ _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -6786,7 +7360,9 @@ # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} + CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu @@ -6842,7 +7418,8 @@ fi # test -n "$compiler" GCC=$lt_save_GCC - CC="$lt_save_CC" + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP @@ -6879,10 +7456,12 @@ _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. -lt_save_CC="$CC" +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" @@ -6892,6 +7471,8 @@ _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change @@ -6911,10 +7492,82 @@ AC_LANG_RESTORE GCC=$lt_save_GCC -CC="$lt_save_CC" +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## 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 +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler @@ -6946,9 +7599,11 @@ # Allow CC to be a program name with arguments. lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} +CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -6961,7 +7616,8 @@ GCC=$lt_save_GCC AC_LANG_RESTORE -CC="$lt_save_CC" +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG @@ -6981,6 +7637,13 @@ dnl AC_DEFUN([LT_AC_PROG_GCJ], []) +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], @@ -7020,6 +7683,15 @@ AC_SUBST([OBJDUMP]) ]) +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) # _LT_DECL_SED # ------------ @@ -7113,8 +7785,8 @@ # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes @@ -7153,208 +7825,162 @@ ])# _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 -} +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) -# 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_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) -# 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"` -} + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) -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. + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) -# 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 -} + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) -# sed scripts: -my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[[^=]]*=//' + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) -# 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"` -} + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -} + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` -} +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$[@]"` -} + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` -} + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi -_LT_EOF -esac +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) -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 +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac ;; - *) - 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 + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac ;; - esac + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac ]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff -Nru sphinxbase-0.8/m4/lt~obsolete.m4 sphinxbase-0.8+5prealpha/m4/lt~obsolete.m4 --- sphinxbase-0.8/m4/lt~obsolete.m4 2012-12-05 14:08:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/m4/lt~obsolete.m4 2015-05-14 15:58:07.000000000 +0000 @@ -1,13 +1,13 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 4 lt~obsolete.m4 +# serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # @@ -77,7 +77,6 @@ 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])]) @@ -90,3 +89,10 @@ m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff -Nru sphinxbase-0.8/m4/ltoptions.m4 sphinxbase-0.8+5prealpha/m4/ltoptions.m4 --- sphinxbase-0.8/m4/ltoptions.m4 2012-12-05 14:07:59.000000000 +0000 +++ sphinxbase-0.8+5prealpha/m4/ltoptions.m4 2015-05-14 15:58:07.000000000 +0000 @@ -1,13 +1,14 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 6 ltoptions.m4 +# serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) @@ -125,7 +126,7 @@ [enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) @@ -133,13 +134,13 @@ esac test -z "$AS" && AS=as -_LT_DECL([], [AS], [0], [Assembler program])dnl +_LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], @@ -325,9 +326,24 @@ # 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], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) diff -Nru sphinxbase-0.8/m4/ltversion.m4 sphinxbase-0.8+5prealpha/m4/ltversion.m4 --- sphinxbase-0.8/m4/ltversion.m4 2012-12-05 14:08:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/m4/ltversion.m4 2015-05-14 15:58:07.000000000 +0000 @@ -7,17 +7,17 @@ # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# Generated from ltversion.in. +# @configure_input@ -# serial 3017 ltversion.m4 +# serial 3337 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.2.6b]) -m4_define([LT_PACKAGE_REVISION], [1.3017]) +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.2.6b' -macro_revision='1.3017' +[macro_version='2.4.2' +macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff -Nru sphinxbase-0.8/Makefile.am sphinxbase-0.8+5prealpha/Makefile.am --- sphinxbase-0.8/Makefile.am 2012-12-13 18:18:58.000000000 +0000 +++ sphinxbase-0.8+5prealpha/Makefile.am 2015-08-05 11:17:26.000000000 +0000 @@ -1,32 +1,25 @@ -SUBDIRS = src \ - doc \ - include \ - test \ - python +SUBDIRS = src doc include test swig -EXTRA_DIST = autogen.sh \ - sphinxbase.sln \ - sphinxbase.pc.in \ - win32/sphinx_fe/sphinx_fe.vcxproj \ - win32/sphinxbase/sphinxbase.vcxproj \ - win32/sphinx_cepview/sphinx_cepview.vcxproj \ - win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj \ - win32/sphinx_lm_convert/sphinx_lm_convert.vcxproj \ - win32/sphinx_pitch/sphinx_pitch.vcxproj \ - win32/sphinx_fe/sphinx_fe.vcxproj.filters \ - win32/sphinxbase/sphinxbase.vcxproj.filters \ - win32/sphinx_cepview/sphinx_cepview.vcxproj.filters \ - win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj.filters \ +EXTRA_DIST = \ + autogen.sh \ + m4/ax_pkg_swig.m4 \ + m4/pkg.m4 \ + sphinxbase.pc.in \ + sphinxbase.sln \ + win32/sphinx_cepview/sphinx_cepview.vcxproj \ + win32/sphinx_cepview/sphinx_cepview.vcxproj.filters \ + win32/sphinx_fe/sphinx_fe.vcxproj \ + win32/sphinx_fe/sphinx_fe.vcxproj.filters \ + win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj \ + win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj.filters \ + win32/sphinx_lm_convert/sphinx_lm_convert.vcxproj \ win32/sphinx_lm_convert/sphinx_lm_convert.vcxproj.filters \ - win32/sphinx_pitch/sphinx_pitch.vcxproj.filters \ - m4/pkg.m4 \ - m4/iconv.m4 \ - m4/lib-ld.m4 \ - m4/lib-link.m4 \ - m4/lib-prefix.m4 \ - group/ABLD.BAT \ - group/bld.inf \ - group/sphinxbase.mmp + win32/sphinx_pitch/sphinx_pitch.vcxproj \ + win32/sphinx_pitch/sphinx_pitch.vcxproj.filters \ + win32/sphinx_seg/sphinx_seg.vcxproj \ + win32/sphinx_seg/sphinx_seg.vcxproj.filters \ + win32/sphinxbase/sphinxbase.vcxproj \ + win32/sphinxbase/sphinxbase.vcxproj.filters pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = sphinxbase.pc @@ -34,11 +27,5 @@ ACLOCAL_AMFLAGS = -I m4 -etags: - etags `find . -name "*.[ch]"` - -ctags: - ctags `find . -name "*.[ch]"` - doxygen: doxygen ./doc/doxygen.cfg diff -Nru sphinxbase-0.8/Makefile.in sphinxbase-0.8+5prealpha/Makefile.in --- sphinxbase-0.8/Makefile.in 2012-12-13 18:20:16.000000000 +0000 +++ sphinxbase-0.8+5prealpha/Makefile.in 2015-08-05 11:17:42.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,18 +79,17 @@ build_triplet = @build@ host_triplet = @host@ subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/sphinxbase.pc.in \ - $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ - config.guess config.rpath config.sub depcomp install-sh \ - ltmain.sh missing ylwrap +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) \ + $(srcdir)/sphinxbase.pc.in AUTHORS NEWS README config.guess \ + config.sub depcomp install-sh missing py-compile ylwrap \ + ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -56,15 +99,33 @@ $(top_builddir)/include/sphinx_config.h CONFIG_CLEAN_FILES = sphinxbase.pc CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive 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_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -86,23 +147,53 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir dist dist-all distcheck +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -130,10 +221,14 @@ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best +DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -147,6 +242,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -156,9 +252,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -166,15 +260,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -190,27 +283,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -243,14 +342,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -259,35 +361,27 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = src \ - doc \ - include \ - test \ - python - -EXTRA_DIST = autogen.sh \ - sphinxbase.sln \ - sphinxbase.pc.in \ - win32/sphinx_fe/sphinx_fe.vcxproj \ - win32/sphinxbase/sphinxbase.vcxproj \ - win32/sphinx_cepview/sphinx_cepview.vcxproj \ - win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj \ - win32/sphinx_lm_convert/sphinx_lm_convert.vcxproj \ - win32/sphinx_pitch/sphinx_pitch.vcxproj \ - win32/sphinx_fe/sphinx_fe.vcxproj.filters \ - win32/sphinxbase/sphinxbase.vcxproj.filters \ - win32/sphinx_cepview/sphinx_cepview.vcxproj.filters \ - win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj.filters \ +SUBDIRS = src doc include test swig +EXTRA_DIST = \ + autogen.sh \ + m4/ax_pkg_swig.m4 \ + m4/pkg.m4 \ + sphinxbase.pc.in \ + sphinxbase.sln \ + win32/sphinx_cepview/sphinx_cepview.vcxproj \ + win32/sphinx_cepview/sphinx_cepview.vcxproj.filters \ + win32/sphinx_fe/sphinx_fe.vcxproj \ + win32/sphinx_fe/sphinx_fe.vcxproj.filters \ + win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj \ + win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj.filters \ + win32/sphinx_lm_convert/sphinx_lm_convert.vcxproj \ win32/sphinx_lm_convert/sphinx_lm_convert.vcxproj.filters \ - win32/sphinx_pitch/sphinx_pitch.vcxproj.filters \ - m4/pkg.m4 \ - m4/iconv.m4 \ - m4/lib-ld.m4 \ - m4/lib-link.m4 \ - m4/lib-prefix.m4 \ - group/ABLD.BAT \ - group/bld.inf \ - group/sphinxbase.mmp + win32/sphinx_pitch/sphinx_pitch.vcxproj \ + win32/sphinx_pitch/sphinx_pitch.vcxproj.filters \ + win32/sphinx_seg/sphinx_seg.vcxproj \ + win32/sphinx_seg/sphinx_seg.vcxproj.filters \ + win32/sphinxbase/sphinxbase.vcxproj \ + win32/sphinxbase/sphinxbase.vcxproj.filters pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = sphinxbase.pc @@ -296,21 +390,21 @@ all: all-recursive .SUFFIXES: -am--refresh: +am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu Makefile + $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -343,8 +437,11 @@ -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) - test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -358,27 +455,28 @@ @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -393,57 +491,12 @@ $(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: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -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) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -459,12 +512,7 @@ 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -476,14 +524,11 @@ $$unique; \ fi; \ fi -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; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -492,9 +537,31 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) @@ -530,13 +597,10 @@ 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 \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -565,36 +629,36 @@ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz - $(am__remove_distdir) + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) + $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) + $(am__post_remove_distdir) -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another @@ -605,8 +669,8 @@ 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.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -616,9 +680,9 @@ *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ @@ -626,6 +690,7 @@ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ @@ -649,13 +714,21 @@ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 - $(am__remove_distdir) + $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ @@ -689,10 +762,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -775,32 +853,25 @@ uninstall-am: uninstall-pkgconfigDATA -.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-generic \ - clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-libtool \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-pkgconfigDATA - +.MAKE: $(am__recursive_targets) install-am install-strip -etags: - etags `find . -name "*.[ch]"` +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pkgconfigDATA install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pkgconfigDATA -ctags: - ctags `find . -name "*.[ch]"` doxygen: doxygen ./doc/doxygen.cfg diff -Nru sphinxbase-0.8/missing sphinxbase-0.8+5prealpha/missing --- sphinxbase-0.8/missing 2012-12-05 14:08:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/missing 2015-03-24 17:27:12.000000000 +0000 @@ -1,11 +1,10 @@ #! /bin/sh -# Common stub for a few missing GNU programs while installing. +# Common wrapper for a few potentially missing GNU programs. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-06-26.16; # UTC -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -26,69 +25,40 @@ # 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" + echo 1>&2 "Try '$0 --help' for more information" exit 1 fi -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi +case $1 in -msg="missing on your system" + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; -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 - ;; + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; -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. +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man -Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and -\`g' are ignored when checking the name. +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. Send bug reports to ." exit $? @@ -100,272 +70,141 @@ ;; -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac -# normalize program name to check for. -program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). This is about non-GNU programs, so use $1 not -# $program. -case $1 in - lex*|yacc*) - # Not GNU programs, they don't have --version. - ;; - - 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 - ;; +# Run the given program, remember its exit status. +"$@"; st=$? - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $program in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; +# If it succeeded, we are done. +test $st -eq 0 && exit 0 - autom4te*) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison*|yacc*) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex*|flex*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit $? - fi - ;; - - makeinfo*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - 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 +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi -exit 0 +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'automa4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -Nru sphinxbase-0.8/py-compile sphinxbase-0.8+5prealpha/py-compile --- sphinxbase-0.8/py-compile 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/py-compile 2015-03-24 17:27:13.000000000 +0000 @@ -0,0 +1,170 @@ +#!/bin/sh +# py-compile - Compile a Python program + +scriptversion=2011-06-08.12; # UTC + +# Copyright (C) 2000-2013 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +if [ -z "$PYTHON" ]; then + PYTHON=python +fi + +me=py-compile + +usage_error () +{ + echo "$me: $*" >&2 + echo "Try '$me --help' for more information." >&2 + exit 1 +} + +basedir= +destdir= +while test $# -ne 0; do + case "$1" in + --basedir) + if test $# -lt 2; then + usage_error "option '--basedir' requires an argument" + else + basedir=$2 + fi + shift + ;; + --destdir) + if test $# -lt 2; then + usage_error "option '--destdir' requires an argument" + else + destdir=$2 + fi + shift + ;; + -h|--help) + cat <<\EOF +Usage: py-compile [--help] [--version] [--basedir DIR] [--destdir DIR] FILES..." + +Byte compile some python scripts FILES. Use --destdir to specify any +leading directory path to the FILES that you don't want to include in the +byte compiled file. Specify --basedir for any additional path information you +do want to be shown in the byte compiled file. + +Example: + py-compile --destdir /tmp/pkg-root --basedir /usr/share/test test.py test2.py + +Report bugs to . +EOF + exit $? + ;; + -v|--version) + echo "$me $scriptversion" + exit $? + ;; + --) + shift + break + ;; + -*) + usage_error "unrecognized option '$1'" + ;; + *) + break + ;; + esac + shift +done + +files=$* +if test -z "$files"; then + usage_error "no files given" +fi + +# if basedir was given, then it should be prepended to filenames before +# byte compilation. +if [ -z "$basedir" ]; then + pathtrans="path = file" +else + pathtrans="path = os.path.join('$basedir', file)" +fi + +# if destdir was given, then it needs to be prepended to the filename to +# byte compile but not go into the compiled file. +if [ -z "$destdir" ]; then + filetrans="filepath = path" +else + filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)" +fi + +$PYTHON -c " +import sys, os, py_compile, imp + +files = '''$files''' + +sys.stdout.write('Byte-compiling python modules...\n') +for file in files.split(): + $pathtrans + $filetrans + if not os.path.exists(filepath) or not (len(filepath) >= 3 + and filepath[-3:] == '.py'): + continue + sys.stdout.write(file) + sys.stdout.flush() + if hasattr(imp, 'get_tag'): + py_compile.compile(filepath, imp.cache_from_source(filepath), path) + else: + py_compile.compile(filepath, filepath + 'c', path) +sys.stdout.write('\n')" || exit $? + +# this will fail for python < 1.5, but that doesn't matter ... +$PYTHON -O -c " +import sys, os, py_compile, imp + +# pypy does not use .pyo optimization +if hasattr(sys, 'pypy_translation_info'): + sys.exit(0) + +files = '''$files''' +sys.stdout.write('Byte-compiling python modules (optimized versions) ...\n') +for file in files.split(): + $pathtrans + $filetrans + if not os.path.exists(filepath) or not (len(filepath) >= 3 + and filepath[-3:] == '.py'): + continue + sys.stdout.write(file) + sys.stdout.flush() + if hasattr(imp, 'get_tag'): + py_compile.compile(filepath, imp.cache_from_source(filepath, False), path) + else: + py_compile.compile(filepath, filepath + 'o', path) +sys.stdout.write('\n')" 2>/dev/null || : + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -Nru sphinxbase-0.8/python/hufftest2.py sphinxbase-0.8+5prealpha/python/hufftest2.py --- sphinxbase-0.8/python/hufftest2.py 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/python/hufftest2.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -import sphinxbase -import sys - -hc = sphinxbase.HuffCode(((1, 42), (2, 4), (3, 5), (4, 6), (5, 225), (6, 15001), (7, 3), (8, 2), (9, 87), (10, 1003))) -hc.dump(sys.stdout) -data, bits = hc.encode((1,2,3,4,5)) -dstr = "".join([("%02x" % ord(b)) for b in data]) -print "encoding", (1,2,3,4,5), "=>", (dstr, bits) -print "decoded to", hc.decode(data) diff -Nru sphinxbase-0.8/python/Makefile.am sphinxbase-0.8+5prealpha/python/Makefile.am --- sphinxbase-0.8/python/Makefile.am 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/python/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -EXTRA_DIST = sphinxbase.c \ - sphinxbase.pyx \ - setup_win32.py \ - sb_test.py \ - hufftest2.py - -pkginclude_HEADERS = sphinxbase.pxd - -if BUILD_PYTHON -# Setuptools isn't really compatible with distutils, unfortunately -SETUPTOOLS_CRAP = `python -c 'import setuptools' 2>/dev/null \ - && echo --single-version-externally-managed --record filelist.txt` - -all-local: pymod-build-stamp - -install-exec-local: pymod-build-stamp - $(PYTHON) setup.py install --prefix $(DESTDIR)$(prefix) $(SETUPTOOLS_CRAP) - -uninstall-local: - $(PYTHON) setup.py bogus_uninstall --prefix $(DESTDIR)$(prefix) - -clean-local: - $(PYTHON) setup.py clean --all -# This is dumb, but distutils is completely incapable of VPATH building - test -z "$(VPATH)" || $(RM) sphinxbase.c - $(RM) -r *.egg-info - $(RM) pymod-build-stamp filelist.txt - -pymod-build-stamp: $(srcdir)/sphinxbase.c -# This is dumb, but distutils is completely incapable of VPATH building - test -z "$(VPATH)" || cp "$(srcdir)/sphinxbase.c" sphinxbase.c - $(PYTHON) setup.py build - touch $@ -endif - -if BUILD_CYTHON -$(srcdir)/sphinxbase.c: $(srcdir)/sphinxbase.pyx $(srcdir)/sphinxbase.pxd - cython -o $@ $< -endif diff -Nru sphinxbase-0.8/python/Makefile.in sphinxbase-0.8+5prealpha/python/Makefile.in --- sphinxbase-0.8/python/Makefile.in 2012-12-12 17:28:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/python/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,510 +0,0 @@ -# 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@ -subdir = python -DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/setup.py.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/include/config.h \ - $(top_builddir)/include/sphinx_config.h -CONFIG_CLEAN_FILES = setup.py -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)$(pkgincludedir)" -HEADERS = $(pkginclude_HEADERS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -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@ -HAVE_CYTHON = @HAVE_CYTHON@ -HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBOBJS = @LTLIBOBJS@ -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@ -PKG_CONFIG = @PKG_CONFIG@ -PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ -RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ -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_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ -ad_files = @ad_files@ -ad_libs = @ad_libs@ -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@ -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_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -EXTRA_DIST = sphinxbase.c \ - sphinxbase.pyx \ - setup_win32.py \ - sb_test.py \ - hufftest2.py - -pkginclude_HEADERS = sphinxbase.pxd - -# Setuptools isn't really compatible with distutils, unfortunately -@BUILD_PYTHON_TRUE@SETUPTOOLS_CRAP = `python -c 'import setuptools' 2>/dev/null \ -@BUILD_PYTHON_TRUE@ && echo --single-version-externally-managed --record filelist.txt` - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu python/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu python/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -setup.py: $(top_builddir)/config.status $(srcdir)/setup.py.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgincludeHEADERS: $(pkginclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" - @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \ - done - -uninstall-pkgincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgincludedir)" && 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 -@BUILD_PYTHON_FALSE@all-local: -all-am: Makefile $(HEADERS) all-local -installdirs: - for dir in "$(DESTDIR)$(pkgincludedir)"; 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." -@BUILD_PYTHON_FALSE@uninstall-local: -@BUILD_PYTHON_FALSE@install-exec-local: -@BUILD_PYTHON_FALSE@clean-local: -clean: clean-am - -clean-am: clean-generic clean-libtool clean-local mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-pkgincludeHEADERS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-exec-local - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-local uninstall-pkgincludeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \ - clean-generic clean-libtool clean-local 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-exec-local install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pkgincludeHEADERS \ - 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-local uninstall-pkgincludeHEADERS - - -@BUILD_PYTHON_TRUE@all-local: pymod-build-stamp - -@BUILD_PYTHON_TRUE@install-exec-local: pymod-build-stamp -@BUILD_PYTHON_TRUE@ $(PYTHON) setup.py install --prefix $(DESTDIR)$(prefix) $(SETUPTOOLS_CRAP) - -@BUILD_PYTHON_TRUE@uninstall-local: -@BUILD_PYTHON_TRUE@ $(PYTHON) setup.py bogus_uninstall --prefix $(DESTDIR)$(prefix) - -@BUILD_PYTHON_TRUE@clean-local: -@BUILD_PYTHON_TRUE@ $(PYTHON) setup.py clean --all -# This is dumb, but distutils is completely incapable of VPATH building -@BUILD_PYTHON_TRUE@ test -z "$(VPATH)" || $(RM) sphinxbase.c -@BUILD_PYTHON_TRUE@ $(RM) -r *.egg-info -@BUILD_PYTHON_TRUE@ $(RM) pymod-build-stamp filelist.txt - -@BUILD_PYTHON_TRUE@pymod-build-stamp: $(srcdir)/sphinxbase.c -# This is dumb, but distutils is completely incapable of VPATH building -@BUILD_PYTHON_TRUE@ test -z "$(VPATH)" || cp "$(srcdir)/sphinxbase.c" sphinxbase.c -@BUILD_PYTHON_TRUE@ $(PYTHON) setup.py build -@BUILD_PYTHON_TRUE@ touch $@ - -@BUILD_CYTHON_TRUE@$(srcdir)/sphinxbase.c: $(srcdir)/sphinxbase.pyx $(srcdir)/sphinxbase.pxd -@BUILD_CYTHON_TRUE@ cython -o $@ $< - -# 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: diff -Nru sphinxbase-0.8/python/sb_test.py sphinxbase-0.8+5prealpha/python/sb_test.py --- sphinxbase-0.8/python/sb_test.py 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/python/sb_test.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -#!/usr/bin/env python - -import sphinxbase -import sys - -lm = sphinxbase.NGramModel("../test/unit/test_ngram/100.arpa.DMP") -for ng in lm.mgrams(0): - print ng.log_prob, ng.log_bowt -lm.write("100.arpa.DMP") -lm.casefold(sphinxbase.UPPER) -lm.write("100.arpa") - -hc = sphinxbase.HuffCode((("foo", 42), ("bar", 4), ("baz", 5), ("quux", 6), ("argh", 225), ("hurf", 15001), ("burf", 3), ("blatz", 2), ("unf", 87), ("woof", 1003))) -hc.dump(sys.stdout) -data, bits = hc.encode(("hurf", "burf", "blatz", "unf", "woof")) -dstr = "".join([("%02x" % ord(b)) for b in data]) -print "encoding", ("hurf", "burf", "blatz", "unf", "woof"), "=>", (dstr, bits) -print "decoded to", hc.decode(data) - -hc.write("foo.huff") -hc = sphinxbase.HuffCode(infile="foo.huff") -data, bits = hc.encode(("hurf", "burf", "blatz", "unf", "woof")) -dstr = "".join([("%02x" % ord(b)) for b in data]) -print "encoding", ("hurf", "burf", "blatz", "unf", "woof"), "=>", (dstr, bits) -print "decoded to", hc.decode(data) - -hc.attach("foo.bin", "wb") -hc.encode_to_file(("hurf", "burf", "blatz", "unf", "woof")) -hc.encode_to_file(("burf", "blatz", "woof", "unf", "woof")) -hc.detach() - -hc.attach("foo.bin", "rb") -syms = [] -while True: - sym = hc.decode_from_file() - if sym == None: - break - syms.append(sym) -print "decoded", syms -hc.detach() diff -Nru sphinxbase-0.8/python/setup.py.in sphinxbase-0.8+5prealpha/python/setup.py.in --- sphinxbase-0.8/python/setup.py.in 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/python/setup.py.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -try: - from setuptools import setup, Extension -except: - from distutils.core import setup, Extension - -import distutils.command.install -import os -import sys - -class bogus_uninstall(distutils.command.install.install): - """ - Slightly bogus uninstall, just here to satisfy automake's make - distcheck. Do NOT actually use this to uninstall the module! - """ - def run(self): - # I believe the word 'bogus' is operative here. When we run - # get_outputs() it will create subcommands, which will try to - # create the original 'install' object, which does not exist - # at this point. We need to make sure that the --prefix - # argument gets propagated to said object. This is not the - # right way to do that, but it works, for now. - install = self.distribution.get_command_obj('install') - install.prefix = self.prefix - install.ensure_finalized() - dirs = {} - for f in self.get_outputs(): - dirs[os.path.dirname(f)] = 1 - if os.path.isdir(f): - dirs[f] = 1 - continue - print "Trying to remove file", f - try: - os.unlink(f) - except: - pass - # Gently try to remove any empty directories. - # This is really not guaranteed to work!!! - for d in dirs: - while d != self.prefix: - print "Trying to remove dir", d - try: - if d.endswith(".egg-info"): - files=[os.path.join(d,f) for f in os.listdir(d)] - print "Trying to remove:", " ".join(files) - for f in files: os.unlink(f) - os.rmdir(d) - except: - pass - d = os.path.dirname(d) - -libraries = ['sphinxbase'] -if sys.platform == "cygwin": - libraries.append("iconv") - -setup(name = 'SphinxBase', - version = '@VERSION@', - author = 'David Huggins-Daines', - author_email = 'dhuggins@cs.cmu.edu', - description = 'Python interface to CMU Sphinx base libraries', - license = 'BSD', - url = 'http://cmusphinx.org', - ext_modules = [ - Extension('sphinxbase', - sources=['sphinxbase.c'], - libraries=libraries, - include_dirs=['@top_builddir@/include', - '@top_srcdir@/include'], - library_dirs=['@top_builddir@/src/libsphinxbase/.libs']) - ], - cmdclass = {'bogus_uninstall' : bogus_uninstall} - ) diff -Nru sphinxbase-0.8/python/setup_win32.py sphinxbase-0.8+5prealpha/python/setup_win32.py --- sphinxbase-0.8/python/setup_win32.py 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/python/setup_win32.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -try: - from setuptools import setup, Extension -except: - from distutils.core import setup, Extension - -import os - -setup(name = 'SphinxBase', - version = '0.6', - author = 'David Huggins-Daines', - author_email = 'dhuggins@cs.cmu.edu', - description = 'Python interface to CMU Sphinx base libraries', - license = 'BSD', - url = 'http://cmusphinx.org', - ext_modules = [ - Extension('sphinxbase', - sources=['sphinxbase.c'], - libraries=['sphinxbase'], - define_macros = [('WIN32', '1')], - include_dirs=['../include', - '../include/win32'], - library_dirs=['../lib/debug']) - ], - ) diff -Nru sphinxbase-0.8/python/sphinxbase.c sphinxbase-0.8+5prealpha/python/sphinxbase.c --- sphinxbase-0.8/python/sphinxbase.c 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/python/sphinxbase.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,8140 +0,0 @@ -/* Generated by Cython 0.12.1 on Fri Nov 25 07:43:24 2011 */ - -#define PY_SSIZE_T_CLEAN -#include "Python.h" -#include "structmember.h" -#ifndef Py_PYTHON_H - #error Python headers needed to compile C extensions, please install development version of Python. -#else - -#ifndef PY_LONG_LONG - #define PY_LONG_LONG LONG_LONG -#endif -#ifndef DL_EXPORT - #define DL_EXPORT(t) t -#endif -#if PY_VERSION_HEX < 0x02040000 - #define METH_COEXIST 0 - #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type) - #define PyDict_Contains(d,o) PySequence_Contains(d,o) -#endif - -#if PY_VERSION_HEX < 0x02050000 - typedef int Py_ssize_t; - #define PY_SSIZE_T_MAX INT_MAX - #define PY_SSIZE_T_MIN INT_MIN - #define PY_FORMAT_SIZE_T "" - #define PyInt_FromSsize_t(z) PyInt_FromLong(z) - #define PyInt_AsSsize_t(o) PyInt_AsLong(o) - #define PyNumber_Index(o) PyNumber_Int(o) - #define PyIndex_Check(o) PyNumber_Check(o) - #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message) -#endif - -#if PY_VERSION_HEX < 0x02060000 - #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt) - #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) - #define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size) - #define PyVarObject_HEAD_INIT(type, size) \ - PyObject_HEAD_INIT(type) size, - #define PyType_Modified(t) - - typedef struct { - void *buf; - PyObject *obj; - Py_ssize_t len; - Py_ssize_t itemsize; - int readonly; - int ndim; - char *format; - Py_ssize_t *shape; - Py_ssize_t *strides; - Py_ssize_t *suboffsets; - void *internal; - } Py_buffer; - - #define PyBUF_SIMPLE 0 - #define PyBUF_WRITABLE 0x0001 - #define PyBUF_FORMAT 0x0004 - #define PyBUF_ND 0x0008 - #define PyBUF_STRIDES (0x0010 | PyBUF_ND) - #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES) - #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES) - #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES) - #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES) - -#endif - -#if PY_MAJOR_VERSION < 3 - #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" -#else - #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#endif - -#if PY_MAJOR_VERSION >= 3 - #define Py_TPFLAGS_CHECKTYPES 0 - #define Py_TPFLAGS_HAVE_INDEX 0 -#endif - -#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3) - #define Py_TPFLAGS_HAVE_NEWBUFFER 0 -#endif - -#if PY_MAJOR_VERSION >= 3 - #define PyBaseString_Type PyUnicode_Type - #define PyString_Type PyUnicode_Type - #define PyString_CheckExact PyUnicode_CheckExact -#else - #define PyBytes_Type PyString_Type - #define PyBytes_CheckExact PyString_CheckExact -#endif - -#if PY_MAJOR_VERSION >= 3 - #define PyInt_Type PyLong_Type - #define PyInt_Check(op) PyLong_Check(op) - #define PyInt_CheckExact(op) PyLong_CheckExact(op) - #define PyInt_FromString PyLong_FromString - #define PyInt_FromUnicode PyLong_FromUnicode - #define PyInt_FromLong PyLong_FromLong - #define PyInt_FromSize_t PyLong_FromSize_t - #define PyInt_FromSsize_t PyLong_FromSsize_t - #define PyInt_AsLong PyLong_AsLong - #define PyInt_AS_LONG PyLong_AS_LONG - #define PyInt_AsSsize_t PyLong_AsSsize_t - #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask - #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask - #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) -#else - #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) - -#endif - -#if PY_MAJOR_VERSION >= 3 - #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func) -#endif - -#if !defined(WIN32) && !defined(MS_WINDOWS) - #ifndef __stdcall - #define __stdcall - #endif - #ifndef __cdecl - #define __cdecl - #endif - #ifndef __fastcall - #define __fastcall - #endif -#else - #define _USE_MATH_DEFINES -#endif - -#if PY_VERSION_HEX < 0x02050000 - #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n))) - #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a)) - #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n))) -#else - #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n)) - #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a)) - #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n)) -#endif - -#if PY_VERSION_HEX < 0x02050000 - #define __Pyx_NAMESTR(n) ((char *)(n)) - #define __Pyx_DOCSTR(n) ((char *)(n)) -#else - #define __Pyx_NAMESTR(n) (n) - #define __Pyx_DOCSTR(n) (n) -#endif -#ifdef __cplusplus -#define __PYX_EXTERN_C extern "C" -#else -#define __PYX_EXTERN_C extern -#endif -#include -#define __PYX_HAVE_API__sphinxbase -#include "sphinxbase/logmath.h" -#include "sphinxbase/cmd_ln.h" -#include "sphinxbase/ckd_alloc.h" -#include "sphinxbase/fsg_model.h" -#include "sphinxbase/ngram_model.h" -#include "sphinxbase/huff_code.h" - -#ifndef CYTHON_INLINE - #if defined(__GNUC__) - #define CYTHON_INLINE __inline__ - #elif defined(_MSC_VER) - #define CYTHON_INLINE __inline - #else - #define CYTHON_INLINE - #endif -#endif - -typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/ - - -/* Type Conversion Predeclarations */ - -#if PY_MAJOR_VERSION < 3 -#define __Pyx_PyBytes_FromString PyString_FromString -#define __Pyx_PyBytes_FromStringAndSize PyString_FromStringAndSize -#define __Pyx_PyBytes_AsString PyString_AsString -#else -#define __Pyx_PyBytes_FromString PyBytes_FromString -#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize -#define __Pyx_PyBytes_AsString PyBytes_AsString -#endif - -#define __Pyx_PyBytes_FromUString(s) __Pyx_PyBytes_FromString((char*)s) -#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) __Pyx_PyBytes_AsString(s)) - -#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False)) -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x); - -#if !defined(T_PYSSIZET) -#if PY_VERSION_HEX < 0x02050000 -#define T_PYSSIZET T_INT -#elif !defined(T_LONGLONG) -#define T_PYSSIZET \ - ((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \ - ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : -1)) -#else -#define T_PYSSIZET \ - ((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \ - ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : \ - ((sizeof(Py_ssize_t) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1))) -#endif -#endif - - -#if !defined(T_ULONGLONG) -#define __Pyx_T_UNSIGNED_INT(x) \ - ((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \ - ((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \ - ((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \ - ((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : -1)))) -#else -#define __Pyx_T_UNSIGNED_INT(x) \ - ((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \ - ((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \ - ((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \ - ((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : \ - ((sizeof(x) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1))))) -#endif -#if !defined(T_LONGLONG) -#define __Pyx_T_SIGNED_INT(x) \ - ((sizeof(x) == sizeof(char)) ? T_BYTE : \ - ((sizeof(x) == sizeof(short)) ? T_SHORT : \ - ((sizeof(x) == sizeof(int)) ? T_INT : \ - ((sizeof(x) == sizeof(long)) ? T_LONG : -1)))) -#else -#define __Pyx_T_SIGNED_INT(x) \ - ((sizeof(x) == sizeof(char)) ? T_BYTE : \ - ((sizeof(x) == sizeof(short)) ? T_SHORT : \ - ((sizeof(x) == sizeof(int)) ? T_INT : \ - ((sizeof(x) == sizeof(long)) ? T_LONG : \ - ((sizeof(x) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1))))) -#endif - -#define __Pyx_T_FLOATING(x) \ - ((sizeof(x) == sizeof(float)) ? T_FLOAT : \ - ((sizeof(x) == sizeof(double)) ? T_DOUBLE : -1)) - -#if !defined(T_SIZET) -#if !defined(T_ULONGLONG) -#define T_SIZET \ - ((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \ - ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : -1)) -#else -#define T_SIZET \ - ((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \ - ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : \ - ((sizeof(size_t) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1))) -#endif -#endif - -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); -static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*); - -#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) - - -#ifdef __GNUC__ -/* Test for GCC > 2.95 */ -#if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) -#define likely(x) __builtin_expect(!!(x), 1) -#define unlikely(x) __builtin_expect(!!(x), 0) -#else /* __GNUC__ > 2 ... */ -#define likely(x) (x) -#define unlikely(x) (x) -#endif /* __GNUC__ > 2 ... */ -#else /* __GNUC__ */ -#define likely(x) (x) -#define unlikely(x) (x) -#endif /* __GNUC__ */ - -static PyObject *__pyx_m; -static PyObject *__pyx_b; -static PyObject *__pyx_empty_tuple; -static PyObject *__pyx_empty_bytes; -static int __pyx_lineno; -static int __pyx_clineno = 0; -static const char * __pyx_cfilenm= __FILE__; -static const char *__pyx_filename; -static const char **__pyx_f; - - -typedef float __pyx_t_10sphinxbase_float32; - -typedef int __pyx_t_10sphinxbase_int32; - -typedef double __pyx_t_10sphinxbase_float64; - -/* Type declarations */ - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pxd":161 - * cdef logmath_t *lmath - * - * cdef class NGramIter: # <<<<<<<<<<<<<< - * cdef NGramModel lm - * cdef ngram_iter_t *itor - */ - -struct __pyx_obj_10sphinxbase_NGramIter { - PyObject_HEAD - struct __pyx_vtabstruct_10sphinxbase_NGramIter *__pyx_vtab; - struct __pyx_obj_10sphinxbase_NGramModel *lm; - ngram_iter_t *itor; - int first_item; - int m; - float log_prob; - float log_bowt; - PyObject *words; -}; - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pxd":171 - * cdef set_iter(NGramIter self, ngram_iter_t *itor) - * - * cdef class HuffCode: # <<<<<<<<<<<<<< - * cdef huff_code_t *hc - * cdef object fh - */ - -struct __pyx_obj_10sphinxbase_HuffCode { - PyObject_HEAD - huff_code_t *hc; - PyObject *fh; -}; - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pxd":150 - * - * # Extension classes - * cdef class NGramModel: # <<<<<<<<<<<<<< - * cdef ngram_model_t *lm - * cdef logmath_t *lmath - */ - -struct __pyx_obj_10sphinxbase_NGramModel { - PyObject_HEAD - struct __pyx_vtabstruct_10sphinxbase_NGramModel *__pyx_vtab; - ngram_model_t *lm; - logmath_t *lmath; - float lw; - float wip; - float uw; -}; - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pxd":158 - * cdef set_lmath(NGramModel self, logmath_t *lmath) - * - * cdef class LogMath: # <<<<<<<<<<<<<< - * cdef logmath_t *lmath - * - */ - -struct __pyx_obj_10sphinxbase_LogMath { - PyObject_HEAD - logmath_t *lmath; -}; - - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":414 - * raise ValueError, "Write %s to file failed" % file_name - * - * cdef class NGramIter: # <<<<<<<<<<<<<< - * """ - * N-Gram language model iterator class. - */ - -struct __pyx_vtabstruct_10sphinxbase_NGramIter { - PyObject *(*set_iter)(struct __pyx_obj_10sphinxbase_NGramIter *, ngram_iter_t *); -}; -static struct __pyx_vtabstruct_10sphinxbase_NGramIter *__pyx_vtabptr_10sphinxbase_NGramIter; - - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":128 - * LOWER = NGRAM_LOWER - * - * cdef class NGramModel: # <<<<<<<<<<<<<< - * """ - * N-Gram language model class. - */ - -struct __pyx_vtabstruct_10sphinxbase_NGramModel { - PyObject *(*set_lm)(struct __pyx_obj_10sphinxbase_NGramModel *, ngram_model_t *); - PyObject *(*set_lmath)(struct __pyx_obj_10sphinxbase_NGramModel *, logmath_t *); -}; -static struct __pyx_vtabstruct_10sphinxbase_NGramModel *__pyx_vtabptr_10sphinxbase_NGramModel; - -#ifndef CYTHON_REFNANNY - #define CYTHON_REFNANNY 0 -#endif - -#if CYTHON_REFNANNY - typedef struct { - void (*INCREF)(void*, PyObject*, int); - void (*DECREF)(void*, PyObject*, int); - void (*GOTREF)(void*, PyObject*, int); - void (*GIVEREF)(void*, PyObject*, int); - void* (*SetupContext)(const char*, int, const char*); - void (*FinishContext)(void**); - } __Pyx_RefNannyAPIStruct; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; - static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI(const char *modname) { - PyObject *m = NULL, *p = NULL; - void *r = NULL; - m = PyImport_ImportModule((char *)modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); - if (!p) goto end; - r = PyLong_AsVoidPtr(p); - end: - Py_XDECREF(p); - Py_XDECREF(m); - return (__Pyx_RefNannyAPIStruct *)r; - } - #define __Pyx_RefNannySetupContext(name) void *__pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) - #define __Pyx_RefNannyFinishContext() __Pyx_RefNanny->FinishContext(&__pyx_refnanny) - #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r);} } while(0) -#else - #define __Pyx_RefNannySetupContext(name) - #define __Pyx_RefNannyFinishContext() - #define __Pyx_INCREF(r) Py_INCREF(r) - #define __Pyx_DECREF(r) Py_DECREF(r) - #define __Pyx_GOTREF(r) - #define __Pyx_GIVEREF(r) - #define __Pyx_XDECREF(r) Py_XDECREF(r) -#endif /* CYTHON_REFNANNY */ -#define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);} } while(0) -#define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r);} } while(0) - -static void __Pyx_RaiseDoubleKeywordsError( - const char* func_name, PyObject* kw_name); /*proto*/ - -static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, - Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/ - -static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /*proto*/ - -static CYTHON_INLINE PyObject* __Pyx_PyObject_Append(PyObject* L, PyObject* x) { - if (likely(PyList_CheckExact(L))) { - if (PyList_Append(L, x) < 0) return NULL; - Py_INCREF(Py_None); - return Py_None; /* this is just to have an accurate signature */ - } - else { - PyObject *r, *m; - m = __Pyx_GetAttrString(L, "append"); - if (!m) return NULL; - r = PyObject_CallFunctionObjArgs(m, x, NULL); - Py_DECREF(m); - return r; - } -} - -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); - -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(void); - -static PyObject *__Pyx_UnpackItem(PyObject *, Py_ssize_t index); /*proto*/ -static int __Pyx_EndUnpack(PyObject *); /*proto*/ - - -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { - PyObject *r; - if (!j) return NULL; - r = PyObject_GetItem(o, j); - Py_DECREF(j); - return r; -} - - -#define __Pyx_GetItemInt_List(o, i, size, to_py_func) ((size <= sizeof(Py_ssize_t)) ? \ - __Pyx_GetItemInt_List_Fast(o, i, size <= sizeof(long)) : \ - __Pyx_GetItemInt_Generic(o, to_py_func(i))) - -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int fits_long) { - if (likely(o != Py_None)) { - if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) { - PyObject *r = PyList_GET_ITEM(o, i); - Py_INCREF(r); - return r; - } - else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) { - PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i); - Py_INCREF(r); - return r; - } - } - return __Pyx_GetItemInt_Generic(o, fits_long ? PyInt_FromLong(i) : PyLong_FromLongLong(i)); -} - -#define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) ((size <= sizeof(Py_ssize_t)) ? \ - __Pyx_GetItemInt_Tuple_Fast(o, i, size <= sizeof(long)) : \ - __Pyx_GetItemInt_Generic(o, to_py_func(i))) - -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int fits_long) { - if (likely(o != Py_None)) { - if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { - PyObject *r = PyTuple_GET_ITEM(o, i); - Py_INCREF(r); - return r; - } - else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) { - PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i); - Py_INCREF(r); - return r; - } - } - return __Pyx_GetItemInt_Generic(o, fits_long ? PyInt_FromLong(i) : PyLong_FromLongLong(i)); -} - - -#define __Pyx_GetItemInt(o, i, size, to_py_func) ((size <= sizeof(Py_ssize_t)) ? \ - __Pyx_GetItemInt_Fast(o, i, size <= sizeof(long)) : \ - __Pyx_GetItemInt_Generic(o, to_py_func(i))) - -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int fits_long) { - PyObject *r; - if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) { - r = PyList_GET_ITEM(o, i); - Py_INCREF(r); - } - else if (PyTuple_CheckExact(o) && ((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { - r = PyTuple_GET_ITEM(o, i); - Py_INCREF(r); - } - else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0))) { - r = PySequence_GetItem(o, i); - } - else { - r = __Pyx_GetItemInt_Generic(o, fits_long ? PyInt_FromLong(i) : PyLong_FromLongLong(i)); - } - return r; -} - -static CYTHON_INLINE long __Pyx_div_long(long, long); /* proto */ - -static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact); /*proto*/ - -static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ - -static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ -static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ - -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ - -static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *); - -static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *); - -static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *); - -static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *); - -static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *); - -static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *); - -static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *); - -static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *); - -static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *); - -static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *); - -static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *); - -static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *); - -static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *); - -static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *); - -static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *); - -static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/ - -static void __Pyx_AddTraceback(const char *funcname); /*proto*/ - -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ -/* Module declarations from sphinxbase */ - -static PyTypeObject *__pyx_ptype_10sphinxbase_NGramModel = 0; -static PyTypeObject *__pyx_ptype_10sphinxbase_LogMath = 0; -static PyTypeObject *__pyx_ptype_10sphinxbase_NGramIter = 0; -static PyTypeObject *__pyx_ptype_10sphinxbase_HuffCode = 0; -#define __Pyx_MODULE_NAME "sphinxbase" -int __pyx_module_is_main_sphinxbase = 0; - -/* Implementation of sphinxbase */ -static PyObject *__pyx_builtin_range; -static PyObject *__pyx_builtin_ValueError; -static PyObject *__pyx_builtin_StopIteration; -static PyObject *__pyx_builtin_ord; -static PyObject *__pyx_builtin_min; -static PyObject *__pyx_builtin_enumerate; -static PyObject *__pyx_builtin_RuntimeError; -static char __pyx_k_9[] = "Recode from %s to %s failed"; -static char __pyx_k_10[] = "Casefolding failed"; -static char __pyx_k_12[] = "Write %s to file failed"; -static char __pyx_k_13[] = ""; -static char __pyx_k_14[] = "%d"; -static char __pyx_k_15[] = "%s"; -static char __pyx_k_16[] = "One of alphabet or infile must be passed to constructor"; -static char __pyx_k_17[] = "Only one of alphabet or infile must be passed to constructor"; -static char __pyx_k_18[] = "Invalid data at position %d"; -static char __pyx_k_19[] = "No file is attached"; -static char __pyx_k__a[] = "a"; -static char __pyx_k__b[] = "b"; -static char __pyx_k__m[] = "m"; -static char __pyx_k__w[] = "w"; -static char __pyx_k__cw[] = "cw"; -static char __pyx_k__fh[] = "fh"; -static char __pyx_k__hc[] = "hc"; -static char __pyx_k__lm[] = "lm"; -static char __pyx_k__lw[] = "lw"; -static char __pyx_k__rb[] = "rb"; -static char __pyx_k__uw[] = "uw"; -static char __pyx_k__wb[] = "wb"; -static char __pyx_k__DMP[] = "DMP"; -static char __pyx_k__min[] = "min"; -static char __pyx_k__ord[] = "ord"; -static char __pyx_k__too[] = "too"; -static char __pyx_k__val[] = "val"; -static char __pyx_k__wip[] = "wip"; -static char __pyx_k__ARPA[] = "ARPA"; -static char __pyx_k__AUTO[] = "AUTO"; -static char __pyx_k__base[] = "base"; -static char __pyx_k__file[] = "file"; -static char __pyx_k__frum[] = "frum"; -static char __pyx_k__itor[] = "itor"; -static char __pyx_k__mode[] = "mode"; -static char __pyx_k__name[] = "name"; -static char __pyx_k__read[] = "read"; -static char __pyx_k__word[] = "word"; -static char __pyx_k__LOWER[] = "LOWER"; -static char __pyx_k__UPPER[] = "UPPER"; -static char __pyx_k__lmath[] = "lmath"; -static char __pyx_k__lmctl[] = "lmctl"; -static char __pyx_k__nbits[] = "nbits"; -static char __pyx_k__range[] = "range"; -static char __pyx_k__shift[] = "shift"; -static char __pyx_k__words[] = "words"; -static char __pyx_k__detach[] = "detach"; -static char __pyx_k__format[] = "format"; -static char __pyx_k__infile[] = "infile"; -static char __pyx_k__weight[] = "weight"; -static char __pyx_k____main__[] = "__main__"; -static char __pyx_k__alphabet[] = "alphabet"; -static char __pyx_k__log_bowt[] = "log_bowt"; -static char __pyx_k__log_prob[] = "log_prob"; -static char __pyx_k__set_iter[] = "set_iter"; -static char __pyx_k__enumerate[] = "enumerate"; -static char __pyx_k__file_name[] = "file_name"; -static char __pyx_k__use_table[] = "use_table"; -static char __pyx_k__ValueError[] = "ValueError"; -static char __pyx_k__first_item[] = "first_item"; -static char __pyx_k__RuntimeError[] = "RuntimeError"; -static char __pyx_k__reuse_widmap[] = "reuse_widmap"; -static char __pyx_k__StopIteration[] = "StopIteration"; -static PyObject *__pyx_kp_s_10; -static PyObject *__pyx_kp_s_12; -static PyObject *__pyx_kp_s_13; -static PyObject *__pyx_kp_s_14; -static PyObject *__pyx_kp_s_15; -static PyObject *__pyx_kp_s_16; -static PyObject *__pyx_kp_s_17; -static PyObject *__pyx_kp_s_18; -static PyObject *__pyx_kp_s_19; -static PyObject *__pyx_kp_s_9; -static PyObject *__pyx_n_s__ARPA; -static PyObject *__pyx_n_s__AUTO; -static PyObject *__pyx_n_s__DMP; -static PyObject *__pyx_n_s__LOWER; -static PyObject *__pyx_n_s__RuntimeError; -static PyObject *__pyx_n_s__StopIteration; -static PyObject *__pyx_n_s__UPPER; -static PyObject *__pyx_n_s__ValueError; -static PyObject *__pyx_n_s____main__; -static PyObject *__pyx_n_s__a; -static PyObject *__pyx_n_s__alphabet; -static PyObject *__pyx_n_s__b; -static PyObject *__pyx_n_s__base; -static PyObject *__pyx_n_s__cw; -static PyObject *__pyx_n_s__detach; -static PyObject *__pyx_n_s__enumerate; -static PyObject *__pyx_n_s__fh; -static PyObject *__pyx_n_s__file; -static PyObject *__pyx_n_s__file_name; -static PyObject *__pyx_n_s__first_item; -static PyObject *__pyx_n_s__format; -static PyObject *__pyx_n_s__frum; -static PyObject *__pyx_n_s__hc; -static PyObject *__pyx_n_s__infile; -static PyObject *__pyx_n_s__itor; -static PyObject *__pyx_n_s__lm; -static PyObject *__pyx_n_s__lmath; -static PyObject *__pyx_n_s__lmctl; -static PyObject *__pyx_n_s__log_bowt; -static PyObject *__pyx_n_s__log_prob; -static PyObject *__pyx_n_s__lw; -static PyObject *__pyx_n_s__m; -static PyObject *__pyx_n_s__min; -static PyObject *__pyx_n_s__mode; -static PyObject *__pyx_n_s__name; -static PyObject *__pyx_n_s__nbits; -static PyObject *__pyx_n_s__ord; -static PyObject *__pyx_n_s__range; -static PyObject *__pyx_n_s__rb; -static PyObject *__pyx_n_s__read; -static PyObject *__pyx_n_s__reuse_widmap; -static PyObject *__pyx_n_s__set_iter; -static PyObject *__pyx_n_s__shift; -static PyObject *__pyx_n_s__too; -static PyObject *__pyx_n_s__use_table; -static PyObject *__pyx_n_s__uw; -static PyObject *__pyx_n_s__val; -static PyObject *__pyx_n_s__w; -static PyObject *__pyx_n_s__wb; -static PyObject *__pyx_n_s__weight; -static PyObject *__pyx_n_s__wip; -static PyObject *__pyx_n_s__word; -static PyObject *__pyx_n_s__words; -static PyObject *__pyx_int_0; -static PyObject *__pyx_int_1; -static PyObject *__pyx_int_8; -static PyObject *__pyx_k_1; -static PyObject *__pyx_k_2; -static PyObject *__pyx_k_3; -static PyObject *__pyx_k_4; -static PyObject *__pyx_k_5; -static PyObject *__pyx_k_6; -static PyObject *__pyx_k_7; -static PyObject *__pyx_k_8; -static PyObject *__pyx_k_11; - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":24 - * @type use_table: bool - * """ - * def __init__(self, base=1.0001, shift=0, use_table=1): # <<<<<<<<<<<<<< - * self.lmath = logmath_init(base, shift, use_table) - * - */ - -static int __pyx_pf_10sphinxbase_7LogMath___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pf_10sphinxbase_7LogMath___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_base = 0; - PyObject *__pyx_v_shift = 0; - PyObject *__pyx_v_use_table = 0; - int __pyx_r; - __pyx_t_10sphinxbase_float64 __pyx_t_1; - int __pyx_t_2; - int __pyx_t_3; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__base,&__pyx_n_s__shift,&__pyx_n_s__use_table,0}; - __Pyx_RefNannySetupContext("__init__"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[3] = {0,0,0}; - values[0] = __pyx_k_1; - values[1] = ((PyObject *)__pyx_int_0); - values[2] = ((PyObject *)__pyx_int_1); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__base); - if (unlikely(value)) { values[0] = value; kw_args--; } - } - case 1: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__shift); - if (unlikely(value)) { values[1] = value; kw_args--; } - } - case 2: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__use_table); - if (unlikely(value)) { values[2] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_base = values[0]; - __pyx_v_shift = values[1]; - __pyx_v_use_table = values[2]; - } else { - __pyx_v_base = __pyx_k_1; - __pyx_v_shift = ((PyObject *)__pyx_int_0); - __pyx_v_use_table = ((PyObject *)__pyx_int_1); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 3: __pyx_v_use_table = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: __pyx_v_shift = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: __pyx_v_base = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.LogMath.__init__"); - return -1; - __pyx_L4_argument_unpacking_done:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":25 - * """ - * def __init__(self, base=1.0001, shift=0, use_table=1): - * self.lmath = logmath_init(base, shift, use_table) # <<<<<<<<<<<<<< - * - * def __dealloc__(self): - */ - __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_base); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_shift); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_v_use_table); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ((struct __pyx_obj_10sphinxbase_LogMath *)__pyx_v_self)->lmath = logmath_init(__pyx_t_1, __pyx_t_2, __pyx_t_3); - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("sphinxbase.LogMath.__init__"); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":27 - * self.lmath = logmath_init(base, shift, use_table) - * - * def __dealloc__(self): # <<<<<<<<<<<<<< - * """ - * Destructor for LogMath class. - */ - -static void __pyx_pf_10sphinxbase_7LogMath___dealloc__(PyObject *__pyx_v_self); /*proto*/ -static char __pyx_doc_10sphinxbase_7LogMath___dealloc__[] = "\n Destructor for LogMath class.\n "; -static void __pyx_pf_10sphinxbase_7LogMath___dealloc__(PyObject *__pyx_v_self) { - __Pyx_RefNannySetupContext("__dealloc__"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":31 - * Destructor for LogMath class. - * """ - * logmath_free(self.lmath) # <<<<<<<<<<<<<< - * - * def get_zero(self): - */ - logmath_free(((struct __pyx_obj_10sphinxbase_LogMath *)__pyx_v_self)->lmath); - - __Pyx_RefNannyFinishContext(); -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":33 - * logmath_free(self.lmath) - * - * def get_zero(self): # <<<<<<<<<<<<<< - * """ - * Get the log-zero value. - */ - -static PyObject *__pyx_pf_10sphinxbase_7LogMath_get_zero(PyObject *__pyx_v_self, PyObject *unused); /*proto*/ -static char __pyx_doc_10sphinxbase_7LogMath_get_zero[] = "\n Get the log-zero value.\n\n @return: Smallest number representable by this object.\n @rtype: int\n "; -static PyObject *__pyx_pf_10sphinxbase_7LogMath_get_zero(PyObject *__pyx_v_self, PyObject *unused) { - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_zero"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":40 - * @rtype: int - * """ - * return logmath_get_zero(self.lmath) # <<<<<<<<<<<<<< - * - * def add(self, a, b): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyInt_FromLong(logmath_get_zero(((struct __pyx_obj_10sphinxbase_LogMath *)__pyx_v_self)->lmath)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("sphinxbase.LogMath.get_zero"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":42 - * return logmath_get_zero(self.lmath) - * - * def add(self, a, b): # <<<<<<<<<<<<<< - * """ - * Add two numbers in log-space. - */ - -static PyObject *__pyx_pf_10sphinxbase_7LogMath_add(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_10sphinxbase_7LogMath_add[] = "\n Add two numbers in log-space.\n\n @param a: Logarithm A.\n @type a: int\n @param b: Logarithm B.\n @type b: int\n @return: log(exp(a)+exp(b))\n @rtype: int\n "; -static PyObject *__pyx_pf_10sphinxbase_7LogMath_add(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_a = 0; - PyObject *__pyx_v_b = 0; - PyObject *__pyx_r = NULL; - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__a,&__pyx_n_s__b,0}; - __Pyx_RefNannySetupContext("add"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[2] = {0,0}; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__b); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("add", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "add") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_a = values[0]; - __pyx_v_b = values[1]; - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - __pyx_v_a = PyTuple_GET_ITEM(__pyx_args, 0); - __pyx_v_b = PyTuple_GET_ITEM(__pyx_args, 1); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("add", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.LogMath.add"); - return NULL; - __pyx_L4_argument_unpacking_done:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":53 - * @rtype: int - * """ - * return logmath_add(self.lmath, a, b) # <<<<<<<<<<<<<< - * - * def log(self, x): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_a); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_b); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_3 = PyInt_FromLong(logmath_add(((struct __pyx_obj_10sphinxbase_LogMath *)__pyx_v_self)->lmath, __pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("sphinxbase.LogMath.add"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":55 - * return logmath_add(self.lmath, a, b) - * - * def log(self, x): # <<<<<<<<<<<<<< - * """ - * Return log-value of a number. - */ - -static PyObject *__pyx_pf_10sphinxbase_7LogMath_log(PyObject *__pyx_v_self, PyObject *__pyx_v_x); /*proto*/ -static char __pyx_doc_10sphinxbase_7LogMath_log[] = "\n Return log-value of a number.\n\n @param x: Number (in linear space)\n @type x: float\n @return: Log-value of x.\n @rtype: int\n "; -static PyObject *__pyx_pf_10sphinxbase_7LogMath_log(PyObject *__pyx_v_self, PyObject *__pyx_v_x) { - PyObject *__pyx_r = NULL; - __pyx_t_10sphinxbase_float64 __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("log"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":64 - * @rtype: int - * """ - * return logmath_log(self.lmath, x) # <<<<<<<<<<<<<< - * - * def exp(self, x): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_x); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = PyInt_FromLong(logmath_log(((struct __pyx_obj_10sphinxbase_LogMath *)__pyx_v_self)->lmath, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.LogMath.log"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":66 - * return logmath_log(self.lmath, x) - * - * def exp(self, x): # <<<<<<<<<<<<<< - * """ - * Return linear of a log-value - */ - -static PyObject *__pyx_pf_10sphinxbase_7LogMath_exp(PyObject *__pyx_v_self, PyObject *__pyx_v_x); /*proto*/ -static char __pyx_doc_10sphinxbase_7LogMath_exp[] = "\n Return linear of a log-value\n\n @param x: Logarithm X (in this object's base)\n @type x: int\n @return: Exponent (linear value) of X.\n @rtype: float\n "; -static PyObject *__pyx_pf_10sphinxbase_7LogMath_exp(PyObject *__pyx_v_self, PyObject *__pyx_v_x) { - PyObject *__pyx_r = NULL; - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("exp"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":75 - * @rtype: float - * """ - * return logmath_exp(self.lmath, x) # <<<<<<<<<<<<<< - * - * def log_to_ln(self, x): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_x); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = PyFloat_FromDouble(logmath_exp(((struct __pyx_obj_10sphinxbase_LogMath *)__pyx_v_self)->lmath, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.LogMath.exp"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":77 - * return logmath_exp(self.lmath, x) - * - * def log_to_ln(self, x): # <<<<<<<<<<<<<< - * """ - * Return natural logarithm of a log-value. - */ - -static PyObject *__pyx_pf_10sphinxbase_7LogMath_log_to_ln(PyObject *__pyx_v_self, PyObject *__pyx_v_x); /*proto*/ -static char __pyx_doc_10sphinxbase_7LogMath_log_to_ln[] = "\n Return natural logarithm of a log-value.\n\n @param x: Logarithm X (in this object's base)\n @type x: int\n @return: Natural log equivalent of x.\n @rtype: float\n "; -static PyObject *__pyx_pf_10sphinxbase_7LogMath_log_to_ln(PyObject *__pyx_v_self, PyObject *__pyx_v_x) { - PyObject *__pyx_r = NULL; - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("log_to_ln"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":86 - * @rtype: float - * """ - * return logmath_log_to_ln(self.lmath, x) # <<<<<<<<<<<<<< - * - * def log_to_log10(self, x): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_x); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = PyFloat_FromDouble(logmath_log_to_ln(((struct __pyx_obj_10sphinxbase_LogMath *)__pyx_v_self)->lmath, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.LogMath.log_to_ln"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":88 - * return logmath_log_to_ln(self.lmath, x) - * - * def log_to_log10(self, x): # <<<<<<<<<<<<<< - * """ - * Return logarithm in base 10 of a log-value. - */ - -static PyObject *__pyx_pf_10sphinxbase_7LogMath_log_to_log10(PyObject *__pyx_v_self, PyObject *__pyx_v_x); /*proto*/ -static char __pyx_doc_10sphinxbase_7LogMath_log_to_log10[] = "\n Return logarithm in base 10 of a log-value.\n\n @param x: Logarithm X (in this object's base)\n @type x: int\n @return: log10 equivalent of x.\n @rtype: float\n "; -static PyObject *__pyx_pf_10sphinxbase_7LogMath_log_to_log10(PyObject *__pyx_v_self, PyObject *__pyx_v_x) { - PyObject *__pyx_r = NULL; - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("log_to_log10"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":97 - * @rtype: float - * """ - * return logmath_log_to_log10(self.lmath, x) # <<<<<<<<<<<<<< - * - * def ln_to_log(self, x): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_x); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = PyFloat_FromDouble(logmath_log_to_log10(((struct __pyx_obj_10sphinxbase_LogMath *)__pyx_v_self)->lmath, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.LogMath.log_to_log10"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":99 - * return logmath_log_to_log10(self.lmath, x) - * - * def ln_to_log(self, x): # <<<<<<<<<<<<<< - * """ - * Return log-value of a natural logarithm. - */ - -static PyObject *__pyx_pf_10sphinxbase_7LogMath_ln_to_log(PyObject *__pyx_v_self, PyObject *__pyx_v_x); /*proto*/ -static char __pyx_doc_10sphinxbase_7LogMath_ln_to_log[] = "\n Return log-value of a natural logarithm.\n\n @param x: Logarithm X (in base e)\n @type x: float\n @return: Log-value equivalent of x.\n @rtype: int\n "; -static PyObject *__pyx_pf_10sphinxbase_7LogMath_ln_to_log(PyObject *__pyx_v_self, PyObject *__pyx_v_x) { - PyObject *__pyx_r = NULL; - __pyx_t_10sphinxbase_float64 __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("ln_to_log"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":108 - * @rtype: int - * """ - * return logmath_ln_to_log(self.lmath, x) # <<<<<<<<<<<<<< - * - * def log10_to_log(self, x): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_x); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = PyInt_FromLong(logmath_ln_to_log(((struct __pyx_obj_10sphinxbase_LogMath *)__pyx_v_self)->lmath, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.LogMath.ln_to_log"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":110 - * return logmath_ln_to_log(self.lmath, x) - * - * def log10_to_log(self, x): # <<<<<<<<<<<<<< - * """ - * Return log-value of a base 10 logarithm. - */ - -static PyObject *__pyx_pf_10sphinxbase_7LogMath_log10_to_log(PyObject *__pyx_v_self, PyObject *__pyx_v_x); /*proto*/ -static char __pyx_doc_10sphinxbase_7LogMath_log10_to_log[] = "\n Return log-value of a base 10 logarithm.\n\n @param x: Logarithm X (in base 10)\n @type x: float\n @return: Log-value equivalent of x.\n @rtype: int\n "; -static PyObject *__pyx_pf_10sphinxbase_7LogMath_log10_to_log(PyObject *__pyx_v_self, PyObject *__pyx_v_x) { - PyObject *__pyx_r = NULL; - __pyx_t_10sphinxbase_float64 __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("log10_to_log"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":119 - * @rtype: int - * """ - * return logmath_log10_to_log(self.lmath, x) # <<<<<<<<<<<<<< - * - * # Unfortunately, Cython doesn't actually export enums to Python... - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_x); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = PyInt_FromLong(logmath_log10_to_log(((struct __pyx_obj_10sphinxbase_LogMath *)__pyx_v_self)->lmath, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.LogMath.log10_to_log"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":146 - * @type uw: float - * """ - * def __init__(self, file=None, lw=1.0, wip=1.0, uw=1.0, lmctl=None): # <<<<<<<<<<<<<< - * self.lmath = logmath_init(1.0001, 0, 0) - * if file: - */ - -static int __pyx_pf_10sphinxbase_10NGramModel___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pf_10sphinxbase_10NGramModel___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_file = 0; - PyObject *__pyx_v_lw = 0; - PyObject *__pyx_v_wip = 0; - PyObject *__pyx_v_uw = 0; - PyObject *__pyx_v_lmctl = 0; - int __pyx_r; - int __pyx_t_1; - char *__pyx_t_2; - __pyx_t_10sphinxbase_float32 __pyx_t_3; - __pyx_t_10sphinxbase_float32 __pyx_t_4; - __pyx_t_10sphinxbase_float32 __pyx_t_5; - float __pyx_t_6; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file,&__pyx_n_s__lw,&__pyx_n_s__wip,&__pyx_n_s__uw,&__pyx_n_s__lmctl,0}; - __Pyx_RefNannySetupContext("__init__"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[5] = {0,0,0,0,0}; - values[0] = ((PyObject *)Py_None); - values[1] = __pyx_k_2; - values[2] = __pyx_k_3; - values[3] = __pyx_k_4; - values[4] = ((PyObject *)Py_None); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__file); - if (unlikely(value)) { values[0] = value; kw_args--; } - } - case 1: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lw); - if (unlikely(value)) { values[1] = value; kw_args--; } - } - case 2: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__wip); - if (unlikely(value)) { values[2] = value; kw_args--; } - } - case 3: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__uw); - if (unlikely(value)) { values[3] = value; kw_args--; } - } - case 4: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lmctl); - if (unlikely(value)) { values[4] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_file = values[0]; - __pyx_v_lw = values[1]; - __pyx_v_wip = values[2]; - __pyx_v_uw = values[3]; - __pyx_v_lmctl = values[4]; - } else { - __pyx_v_file = ((PyObject *)Py_None); - __pyx_v_lw = __pyx_k_2; - __pyx_v_wip = __pyx_k_3; - __pyx_v_uw = __pyx_k_4; - __pyx_v_lmctl = ((PyObject *)Py_None); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 5: __pyx_v_lmctl = PyTuple_GET_ITEM(__pyx_args, 4); - case 4: __pyx_v_uw = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: __pyx_v_wip = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: __pyx_v_lw = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: __pyx_v_file = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.__init__"); - return -1; - __pyx_L4_argument_unpacking_done:; - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_file); - __Pyx_INCREF(__pyx_v_lw); - __Pyx_INCREF(__pyx_v_wip); - __Pyx_INCREF(__pyx_v_uw); - __Pyx_INCREF(__pyx_v_lmctl); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":147 - * """ - * def __init__(self, file=None, lw=1.0, wip=1.0, uw=1.0, lmctl=None): - * self.lmath = logmath_init(1.0001, 0, 0) # <<<<<<<<<<<<<< - * if file: - * self.lm = ngram_model_read(NULL, file, NGRAM_AUTO, self.lmath) - */ - ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lmath = logmath_init(1.0001, 0, 0); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":148 - * def __init__(self, file=None, lw=1.0, wip=1.0, uw=1.0, lmctl=None): - * self.lmath = logmath_init(1.0001, 0, 0) - * if file: # <<<<<<<<<<<<<< - * self.lm = ngram_model_read(NULL, file, NGRAM_AUTO, self.lmath) - * ngram_model_apply_weights(self.lm, lw, wip, uw) - */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_file); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__pyx_t_1) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":149 - * self.lmath = logmath_init(1.0001, 0, 0) - * if file: - * self.lm = ngram_model_read(NULL, file, NGRAM_AUTO, self.lmath) # <<<<<<<<<<<<<< - * ngram_model_apply_weights(self.lm, lw, wip, uw) - * elif lmctl: - */ - __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_file); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm = ngram_model_read(NULL, __pyx_t_2, NGRAM_AUTO, ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lmath); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":150 - * if file: - * self.lm = ngram_model_read(NULL, file, NGRAM_AUTO, self.lmath) - * ngram_model_apply_weights(self.lm, lw, wip, uw) # <<<<<<<<<<<<<< - * elif lmctl: - * self.lm = ngram_model_set_read(NULL, lmctl, self.lmath) - */ - __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_lw); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_wip); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_uw); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ngram_model_apply_weights(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_3, __pyx_t_4, __pyx_t_5); - goto __pyx_L6; - } - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":151 - * self.lm = ngram_model_read(NULL, file, NGRAM_AUTO, self.lmath) - * ngram_model_apply_weights(self.lm, lw, wip, uw) - * elif lmctl: # <<<<<<<<<<<<<< - * self.lm = ngram_model_set_read(NULL, lmctl, self.lmath) - * else: - */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_lmctl); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__pyx_t_1) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":152 - * ngram_model_apply_weights(self.lm, lw, wip, uw) - * elif lmctl: - * self.lm = ngram_model_set_read(NULL, lmctl, self.lmath) # <<<<<<<<<<<<<< - * else: - * self.lm = NULL - */ - __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_lmctl); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm = ngram_model_set_read(NULL, __pyx_t_2, ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lmath); - goto __pyx_L6; - } - /*else*/ { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":154 - * self.lm = ngram_model_set_read(NULL, lmctl, self.lmath) - * else: - * self.lm = NULL # <<<<<<<<<<<<<< - * self.lw = lw - * self.wip = wip - */ - ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm = NULL; - } - __pyx_L6:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":155 - * else: - * self.lm = NULL - * self.lw = lw # <<<<<<<<<<<<<< - * self.wip = wip - * self.uw = uw - */ - __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_lw); if (unlikely((__pyx_t_6 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lw = __pyx_t_6; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":156 - * self.lm = NULL - * self.lw = lw - * self.wip = wip # <<<<<<<<<<<<<< - * self.uw = uw - * - */ - __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_wip); if (unlikely((__pyx_t_6 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->wip = __pyx_t_6; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":157 - * self.lw = lw - * self.wip = wip - * self.uw = uw # <<<<<<<<<<<<<< - * - * cdef set_lm(NGramModel self, ngram_model_t *lm): - */ - __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_uw); if (unlikely((__pyx_t_6 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->uw = __pyx_t_6; - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.__init__"); - __pyx_r = -1; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_file); - __Pyx_DECREF(__pyx_v_lw); - __Pyx_DECREF(__pyx_v_wip); - __Pyx_DECREF(__pyx_v_uw); - __Pyx_DECREF(__pyx_v_lmctl); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":159 - * self.uw = uw - * - * cdef set_lm(NGramModel self, ngram_model_t *lm): # <<<<<<<<<<<<<< - * ngram_model_retain(lm) - * ngram_model_free(self.lm) - */ - -static PyObject *__pyx_f_10sphinxbase_10NGramModel_set_lm(struct __pyx_obj_10sphinxbase_NGramModel *__pyx_v_self, ngram_model_t *__pyx_v_lm) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannySetupContext("set_lm"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":160 - * - * cdef set_lm(NGramModel self, ngram_model_t *lm): - * ngram_model_retain(lm) # <<<<<<<<<<<<<< - * ngram_model_free(self.lm) - * self.lm = lm - */ - ngram_model_retain(__pyx_v_lm); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":161 - * cdef set_lm(NGramModel self, ngram_model_t *lm): - * ngram_model_retain(lm) - * ngram_model_free(self.lm) # <<<<<<<<<<<<<< - * self.lm = lm - * - */ - ngram_model_free(__pyx_v_self->lm); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":162 - * ngram_model_retain(lm) - * ngram_model_free(self.lm) - * self.lm = lm # <<<<<<<<<<<<<< - * - * cdef set_lmath(NGramModel self, logmath_t *lmath): - */ - __pyx_v_self->lm = __pyx_v_lm; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":164 - * self.lm = lm - * - * cdef set_lmath(NGramModel self, logmath_t *lmath): # <<<<<<<<<<<<<< - * logmath_retain(lmath) - * logmath_free(self.lmath) - */ - -static PyObject *__pyx_f_10sphinxbase_10NGramModel_set_lmath(struct __pyx_obj_10sphinxbase_NGramModel *__pyx_v_self, logmath_t *__pyx_v_lmath) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannySetupContext("set_lmath"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":165 - * - * cdef set_lmath(NGramModel self, logmath_t *lmath): - * logmath_retain(lmath) # <<<<<<<<<<<<<< - * logmath_free(self.lmath) - * self.lmath = lmath - */ - logmath_retain(__pyx_v_lmath); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":166 - * cdef set_lmath(NGramModel self, logmath_t *lmath): - * logmath_retain(lmath) - * logmath_free(self.lmath) # <<<<<<<<<<<<<< - * self.lmath = lmath - * - */ - logmath_free(__pyx_v_self->lmath); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":167 - * logmath_retain(lmath) - * logmath_free(self.lmath) - * self.lmath = lmath # <<<<<<<<<<<<<< - * - * def set_add(NGramModel self, NGramModel lm, name, float weight=1.0, int reuse_widmap=1): - */ - __pyx_v_self->lmath = __pyx_v_lmath; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":169 - * self.lmath = lmath - * - * def set_add(NGramModel self, NGramModel lm, name, float weight=1.0, int reuse_widmap=1): # <<<<<<<<<<<<<< - * """ - * Adds an language model to the lmset - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_set_add(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_set_add[] = "\n Adds an language model to the lmset\n\n @param lm: language model to add\n @type lm: sphinxbase.NGramModel\n @param name: name of the language model \n @type name: string\n @param weight: language model weight (defaults to 1.0)\n @type weight: float\n @param reuse_widmap: whether to reuse the word ip mapping\n @type reuse_widmap: int\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_set_add(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_10sphinxbase_NGramModel *__pyx_v_lm = 0; - PyObject *__pyx_v_name = 0; - float __pyx_v_weight; - int __pyx_v_reuse_widmap; - PyObject *__pyx_r = NULL; - char *__pyx_t_1; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lm,&__pyx_n_s__name,&__pyx_n_s__weight,&__pyx_n_s__reuse_widmap,0}; - __Pyx_RefNannySetupContext("set_add"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[4] = {0,0,0,0}; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lm); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("set_add", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - case 2: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weight); - if (unlikely(value)) { values[2] = value; kw_args--; } - } - case 3: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__reuse_widmap); - if (unlikely(value)) { values[3] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "set_add") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_lm = ((struct __pyx_obj_10sphinxbase_NGramModel *)values[0]); - __pyx_v_name = values[1]; - if (values[2]) { - __pyx_v_weight = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_weight == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else { - __pyx_v_weight = ((float)1.0); - } - if (values[3]) { - __pyx_v_reuse_widmap = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_reuse_widmap == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else { - __pyx_v_reuse_widmap = ((int)1); - } - } else { - __pyx_v_weight = ((float)1.0); - __pyx_v_reuse_widmap = ((int)1); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 4: - __pyx_v_reuse_widmap = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 3)); if (unlikely((__pyx_v_reuse_widmap == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - case 3: - __pyx_v_weight = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 2)); if (unlikely((__pyx_v_weight == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - case 2: - __pyx_v_name = PyTuple_GET_ITEM(__pyx_args, 1); - __pyx_v_lm = ((struct __pyx_obj_10sphinxbase_NGramModel *)PyTuple_GET_ITEM(__pyx_args, 0)); - break; - default: goto __pyx_L5_argtuple_error; - } - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_add", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.set_add"); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lm), __pyx_ptype_10sphinxbase_NGramModel, 1, "lm", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":182 - * @type reuse_widmap: int - * """ - * ngram_model_set_add(self.lm, lm.lm, name, weight, reuse_widmap) # <<<<<<<<<<<<<< - * - * def set_select(NGramModel self, name): - */ - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ngram_model_set_add(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_v_lm->lm, __pyx_t_1, __pyx_v_weight, __pyx_v_reuse_widmap); - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.set_add"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":184 - * ngram_model_set_add(self.lm, lm.lm, name, weight, reuse_widmap) - * - * def set_select(NGramModel self, name): # <<<<<<<<<<<<<< - * """ - * Instructs the LMSet to switch to the LM specified by the name param - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_set_select(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_set_select[] = "\n Instructs the LMSet to switch to the LM specified by the name param\n\n @param name: the name associated with the language model\n @type name: string\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_set_select(PyObject *__pyx_v_self, PyObject *__pyx_v_name) { - PyObject *__pyx_r = NULL; - char *__pyx_t_1; - __Pyx_RefNannySetupContext("set_select"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":191 - * @type name: string - * """ - * ngram_model_set_select(self.lm, name) # <<<<<<<<<<<<<< - * - * def __dealloc__(self): - */ - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ngram_model_set_select(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1); - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.set_select"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":193 - * ngram_model_set_select(self.lm, name) - * - * def __dealloc__(self): # <<<<<<<<<<<<<< - * """ - * Destructor for N-Gram model class. - */ - -static void __pyx_pf_10sphinxbase_10NGramModel___dealloc__(PyObject *__pyx_v_self); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel___dealloc__[] = "\n Destructor for N-Gram model class.\n "; -static void __pyx_pf_10sphinxbase_10NGramModel___dealloc__(PyObject *__pyx_v_self) { - __Pyx_RefNannySetupContext("__dealloc__"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":197 - * Destructor for N-Gram model class. - * """ - * logmath_free(self.lmath) # <<<<<<<<<<<<<< - * ngram_model_free(self.lm) - * - */ - logmath_free(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lmath); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":198 - * """ - * logmath_free(self.lmath) - * ngram_model_free(self.lm) # <<<<<<<<<<<<<< - * - * def apply_weights(self, lw=1.0, wip=1.0, uw=1.0): - */ - ngram_model_free(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm); - - __Pyx_RefNannyFinishContext(); -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":200 - * ngram_model_free(self.lm) - * - * def apply_weights(self, lw=1.0, wip=1.0, uw=1.0): # <<<<<<<<<<<<<< - * """ - * Change the language model weights applied in L{score}. - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_apply_weights(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_apply_weights[] = "\n Change the language model weights applied in L{score}.\n \n @param lw: Language weight to apply to model probabilities.\n @type lw: float\n @param wip: Word insertion penalty to add to model probabilities\n @type wip: float\n @param uw: Weight to give unigrams when interpolating with uniform distribution.\n @type uw: float\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_apply_weights(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_lw = 0; - PyObject *__pyx_v_wip = 0; - PyObject *__pyx_v_uw = 0; - PyObject *__pyx_r = NULL; - float __pyx_t_1; - __pyx_t_10sphinxbase_float32 __pyx_t_2; - __pyx_t_10sphinxbase_float32 __pyx_t_3; - __pyx_t_10sphinxbase_float32 __pyx_t_4; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lw,&__pyx_n_s__wip,&__pyx_n_s__uw,0}; - __Pyx_RefNannySetupContext("apply_weights"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[3] = {0,0,0}; - values[0] = __pyx_k_5; - values[1] = __pyx_k_6; - values[2] = __pyx_k_7; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lw); - if (unlikely(value)) { values[0] = value; kw_args--; } - } - case 1: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__wip); - if (unlikely(value)) { values[1] = value; kw_args--; } - } - case 2: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__uw); - if (unlikely(value)) { values[2] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "apply_weights") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_lw = values[0]; - __pyx_v_wip = values[1]; - __pyx_v_uw = values[2]; - } else { - __pyx_v_lw = __pyx_k_5; - __pyx_v_wip = __pyx_k_6; - __pyx_v_uw = __pyx_k_7; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 3: __pyx_v_uw = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: __pyx_v_wip = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: __pyx_v_lw = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("apply_weights", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.apply_weights"); - return NULL; - __pyx_L4_argument_unpacking_done:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":211 - * @type uw: float - * """ - * self.lw = lw # <<<<<<<<<<<<<< - * self.wip = wip - * self.uw = uw - */ - __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_lw); if (unlikely((__pyx_t_1 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lw = __pyx_t_1; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":212 - * """ - * self.lw = lw - * self.wip = wip # <<<<<<<<<<<<<< - * self.uw = uw - * ngram_model_apply_weights(self.lm, lw, wip, uw) - */ - __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_wip); if (unlikely((__pyx_t_1 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->wip = __pyx_t_1; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":213 - * self.lw = lw - * self.wip = wip - * self.uw = uw # <<<<<<<<<<<<<< - * ngram_model_apply_weights(self.lm, lw, wip, uw) - * - */ - __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_uw); if (unlikely((__pyx_t_1 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->uw = __pyx_t_1; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":214 - * self.wip = wip - * self.uw = uw - * ngram_model_apply_weights(self.lm, lw, wip, uw) # <<<<<<<<<<<<<< - * - * def get_size(self): - */ - __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_lw); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_wip); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_uw); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ngram_model_apply_weights(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_2, __pyx_t_3, __pyx_t_4); - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.apply_weights"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":216 - * ngram_model_apply_weights(self.lm, lw, wip, uw) - * - * def get_size(self): # <<<<<<<<<<<<<< - * """ - * Get the order of this model (i.e. the 'N' in 'N-gram') - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_get_size(PyObject *__pyx_v_self, PyObject *unused); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_get_size[] = "\n Get the order of this model (i.e. the 'N' in 'N-gram')\n\n @return: Order of this model\n @rtype: int\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_get_size(PyObject *__pyx_v_self, PyObject *unused) { - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("get_size"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":223 - * @rtype: int - * """ - * return ngram_model_get_size(self.lm) # <<<<<<<<<<<<<< - * - * def get_counts(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyInt_FromLong(ngram_model_get_size(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("sphinxbase.NGramModel.get_size"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":225 - * return ngram_model_get_size(self.lm) - * - * def get_counts(self): # <<<<<<<<<<<<<< - * """ - * Get the counts of each size of N-gram. - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_get_counts(PyObject *__pyx_v_self, PyObject *unused); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_get_counts[] = "\n Get the counts of each size of N-gram.\n\n @return: Counts of 1, 2, ..., N grams\n @rtype: tuple(int)\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_get_counts(PyObject *__pyx_v_self, PyObject *unused) { - const int* __pyx_v_counts; - PyObject *__pyx_v_i; - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - Py_ssize_t __pyx_t_5; - int __pyx_t_6; - __Pyx_RefNannySetupContext("get_counts"); - __pyx_v_i = Py_None; __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":233 - * """ - * cdef const_int_ptr counts - * counts = ngram_model_get_counts(self.lm) # <<<<<<<<<<<<<< - * return tuple([counts[i] for i in range(ngram_model_get_size(self.lm))]) - * - */ - __pyx_v_counts = ngram_model_get_counts(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":234 - * cdef const_int_ptr counts - * counts = ngram_model_get_counts(self.lm) - * return tuple([counts[i] for i in range(ngram_model_get_size(self.lm))]) # <<<<<<<<<<<<<< - * - * def unknown_wid(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_3 = PyInt_FromLong(ngram_model_get_size(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_3 = PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) { - __pyx_t_2 = 0; __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); - } else { - __pyx_t_2 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - for (;;) { - if (likely(PyList_CheckExact(__pyx_t_4))) { - if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_4)) break; - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; - } else if (likely(PyTuple_CheckExact(__pyx_t_4))) { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_4)) break; - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; - } else { - __pyx_t_3 = PyIter_Next(__pyx_t_4); - if (!__pyx_t_3) { - if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_t_3; - __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_3 = PyInt_FromLong((__pyx_v_counts[__pyx_t_5])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_3); if (unlikely(__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = ((PyObject *)PyList_AsTuple(__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_4)); - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_r = ((PyObject *)__pyx_t_4); - __pyx_t_4 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("sphinxbase.NGramModel.get_counts"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_i); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":236 - * return tuple([counts[i] for i in range(ngram_model_get_size(self.lm))]) - * - * def unknown_wid(self): # <<<<<<<<<<<<<< - * """ - * Get the ID for an unknown word. - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_unknown_wid(PyObject *__pyx_v_self, PyObject *unused); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_unknown_wid[] = "\n Get the ID for an unknown word.\n\n In the case of a closed-vocabulary language model this will be -1.\n\n @return: Word ID for the unknown word.\n @rtype: int\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_unknown_wid(PyObject *__pyx_v_self, PyObject *unused) { - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("unknown_wid"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":245 - * @rtype: int - * """ - * return ngram_unknown_wid(self.lm) # <<<<<<<<<<<<<< - * - * def zero(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyInt_FromLong(ngram_unknown_wid(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("sphinxbase.NGramModel.unknown_wid"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":247 - * return ngram_unknown_wid(self.lm) - * - * def zero(self): # <<<<<<<<<<<<<< - * """ - * Get the log-zero value for this language model. - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_zero(PyObject *__pyx_v_self, PyObject *unused); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_zero[] = "\n Get the log-zero value for this language model.\n\n @return: Log value used to represent zero.\n @rtype: float\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_zero(PyObject *__pyx_v_self, PyObject *unused) { - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - __Pyx_RefNannySetupContext("zero"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":254 - * @rtype: float - * """ - * return logmath_log_to_ln(self.lmath, ngram_zero(self.lm)) # <<<<<<<<<<<<<< - * - * def wid(self, word): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(logmath_log_to_ln(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lmath, ngram_zero(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("sphinxbase.NGramModel.zero"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":256 - * return logmath_log_to_ln(self.lmath, ngram_zero(self.lm)) - * - * def wid(self, word): # <<<<<<<<<<<<<< - * """ - * Get the internal ID for a word. - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_wid(PyObject *__pyx_v_self, PyObject *__pyx_v_word); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_wid[] = "\n Get the internal ID for a word.\n \n @param word: Word in question\n @type word: string\n @return: Internal ID for word, or -1 if not present\n @rtype: int\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_wid(PyObject *__pyx_v_self, PyObject *__pyx_v_word) { - PyObject *__pyx_r = NULL; - char *__pyx_t_1; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("wid"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":265 - * @rtype: int - * """ - * return ngram_wid(self.lm, word) # <<<<<<<<<<<<<< - * - * def word(self, wid): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_word); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = PyInt_FromLong(ngram_wid(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.NGramModel.wid"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":267 - * return ngram_wid(self.lm, word) - * - * def word(self, wid): # <<<<<<<<<<<<<< - * """ - * Get the string corresponding to an internal word ID. - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_word(PyObject *__pyx_v_self, PyObject *__pyx_v_wid); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_word[] = "\n Get the string corresponding to an internal word ID.\n \n @param word: Word ID in question\n @type word: int\n @return: String for word, or None if not present\n @rtype: string\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_word(PyObject *__pyx_v_self, PyObject *__pyx_v_wid) { - PyObject *__pyx_r = NULL; - __pyx_t_10sphinxbase_int32 __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("word"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":276 - * @rtype: string - * """ - * return ngram_word(self.lm, wid) # <<<<<<<<<<<<<< - * - * # Note that this and prob() are almost exactly the same... - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_wid); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = __Pyx_PyBytes_FromString(ngram_word(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_2)); - __pyx_r = ((PyObject *)__pyx_t_2); - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.NGramModel.word"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":279 - * - * # Note that this and prob() are almost exactly the same... - * def score(self, word, *args): # <<<<<<<<<<<<<< - * """ - * Get the score for an N-Gram. - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_score(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_score[] = "\n Get the score for an N-Gram.\n\n The argument list consists of the history words (as\n null-terminated strings) of the N-Gram, in reverse order.\n Therefore, if you wanted to get the N-Gram score for 'a whole\n joy', you would call::\n\n score, n_used = model.score('joy', 'whole', 'a')\n\n This function returns a tuple, consisting of the score and the\n number of words used in computing it (i.e. the effective size\n of the N-Gram). The score is returned in logarithmic form,\n using base e.\n\n If one of the words is not in the LM's vocabulary, the result\n will depend on whether this is an open or closed vocabulary\n language model. For an open-vocabulary model, unknown words\n are all mapped to the unigram which has a non-zero\n probability and also participates in higher-order N-Grams.\n Therefore, you will get a score of some sort in this case.\n\n For a closed-vocabulary model, unknown words are impossible\n and thus have zero probability. Therefore, if C{word} is\n unknown, this function will return a 'zero' log-probability,\n i.e. a large negative number.\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_score(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_word = 0; - PyObject *__pyx_v_args = 0; - __pyx_t_10sphinxbase_int32 __pyx_v_wid; - __pyx_t_10sphinxbase_int32 *__pyx_v_hist; - __pyx_t_10sphinxbase_int32 __pyx_v_n_hist; - __pyx_t_10sphinxbase_int32 __pyx_v_n_used; - __pyx_t_10sphinxbase_int32 __pyx_v_score; - PyObject *__pyx_v_i; - PyObject *__pyx_v_spam; - PyObject *__pyx_r = NULL; - char *__pyx_t_1; - Py_ssize_t __pyx_t_2; - __pyx_t_10sphinxbase_int32 __pyx_t_3; - long __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__word,0}; - __Pyx_RefNannySetupContext("score"); - if (PyTuple_GET_SIZE(__pyx_args) > 1) { - __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); __Pyx_GOTREF(__pyx_v_args); - if (unlikely(!__pyx_v_args)) return NULL; - } else { - __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple); - } - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[1] = {0}; - switch (PyTuple_GET_SIZE(__pyx_args)) { - default: - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__word); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t used_pos_args = (PyTuple_GET_SIZE(__pyx_args) < 1) ? PyTuple_GET_SIZE(__pyx_args) : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "score") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_word = values[0]; - } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { - goto __pyx_L5_argtuple_error; - } else { - __pyx_v_word = PyTuple_GET_ITEM(__pyx_args, 0); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("score", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_DECREF(__pyx_v_args); - __Pyx_AddTraceback("sphinxbase.NGramModel.score"); - return NULL; - __pyx_L4_argument_unpacking_done:; - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_word); - __pyx_v_i = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_spam = Py_None; __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":312 - * cdef int32 n_used - * cdef int32 score - * wid = ngram_wid(self.lm, word) # <<<<<<<<<<<<<< - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) - */ - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_word); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_wid = ngram_wid(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":313 - * cdef int32 score - * wid = ngram_wid(self.lm, word) - * n_hist = len(args) # <<<<<<<<<<<<<< - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: - */ - __pyx_t_2 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_n_hist = __pyx_t_2; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":314 - * wid = ngram_wid(self.lm, word) - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) # <<<<<<<<<<<<<< - * for i from 0 <= i < n_hist: - * spam = args[i] - */ - __pyx_v_hist = ((__pyx_t_10sphinxbase_int32 *)ckd_calloc(__pyx_v_n_hist, (sizeof(__pyx_t_10sphinxbase_int32)))); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":315 - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: # <<<<<<<<<<<<<< - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) - */ - __pyx_t_3 = __pyx_v_n_hist; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { - __pyx_t_5 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_t_5; - __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":316 - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: - * spam = args[i] # <<<<<<<<<<<<<< - * hist[i] = ngram_wid(self.lm, spam) - * score = ngram_ng_score(self.lm, wid, hist, n_hist, &n_used) - */ - __pyx_t_5 = PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_v_spam); - __pyx_v_spam = __pyx_t_5; - __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":317 - * for i from 0 <= i < n_hist: - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) # <<<<<<<<<<<<<< - * score = ngram_ng_score(self.lm, wid, hist, n_hist, &n_used) - * ckd_free(hist) - */ - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_spam); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - (__pyx_v_hist[__pyx_t_2]) = ngram_wid(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1); - __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_v_i); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":315 - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: # <<<<<<<<<<<<<< - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) - */ - __pyx_t_5 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_t_5; - __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":318 - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) - * score = ngram_ng_score(self.lm, wid, hist, n_hist, &n_used) # <<<<<<<<<<<<<< - * ckd_free(hist) - * return logmath_log_to_ln(self.lmath, score), n_used - */ - __pyx_v_score = ngram_ng_score(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_v_wid, __pyx_v_hist, __pyx_v_n_hist, (&__pyx_v_n_used)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":319 - * hist[i] = ngram_wid(self.lm, spam) - * score = ngram_ng_score(self.lm, wid, hist, n_hist, &n_used) - * ckd_free(hist) # <<<<<<<<<<<<<< - * return logmath_log_to_ln(self.lmath, score), n_used - * - */ - ckd_free(__pyx_v_hist); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":320 - * score = ngram_ng_score(self.lm, wid, hist, n_hist, &n_used) - * ckd_free(hist) - * return logmath_log_to_ln(self.lmath, score), n_used # <<<<<<<<<<<<<< - * - * def prob(self, word, *args): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = PyFloat_FromDouble(logmath_log_to_ln(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lmath, __pyx_v_score)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyInt_FromLong(__pyx_v_n_used); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_6); - __pyx_t_5 = 0; - __pyx_t_6 = 0; - __pyx_r = __pyx_t_7; - __pyx_t_7 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("sphinxbase.NGramModel.score"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_i); - __Pyx_DECREF(__pyx_v_spam); - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_word); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":322 - * return logmath_log_to_ln(self.lmath, score), n_used - * - * def prob(self, word, *args): # <<<<<<<<<<<<<< - * """ - * Get the log-probability for an N-Gram. - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_prob(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_prob[] = "\n Get the log-probability for an N-Gram.\n\n This works effectively the same way as L{score}, except that\n any weights (language weight, insertion penalty) applied to\n the language model are ignored and the 'raw' probability value\n is returned.\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_prob(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_word = 0; - PyObject *__pyx_v_args = 0; - __pyx_t_10sphinxbase_int32 __pyx_v_wid; - __pyx_t_10sphinxbase_int32 *__pyx_v_hist; - __pyx_t_10sphinxbase_int32 __pyx_v_n_hist; - __pyx_t_10sphinxbase_int32 __pyx_v_n_used; - __pyx_t_10sphinxbase_int32 __pyx_v_score; - PyObject *__pyx_v_i; - PyObject *__pyx_v_spam; - PyObject *__pyx_r = NULL; - char *__pyx_t_1; - Py_ssize_t __pyx_t_2; - __pyx_t_10sphinxbase_int32 __pyx_t_3; - long __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__word,0}; - __Pyx_RefNannySetupContext("prob"); - if (PyTuple_GET_SIZE(__pyx_args) > 1) { - __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); __Pyx_GOTREF(__pyx_v_args); - if (unlikely(!__pyx_v_args)) return NULL; - } else { - __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple); - } - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[1] = {0}; - switch (PyTuple_GET_SIZE(__pyx_args)) { - default: - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__word); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t used_pos_args = (PyTuple_GET_SIZE(__pyx_args) < 1) ? PyTuple_GET_SIZE(__pyx_args) : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "prob") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_word = values[0]; - } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { - goto __pyx_L5_argtuple_error; - } else { - __pyx_v_word = PyTuple_GET_ITEM(__pyx_args, 0); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("prob", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_DECREF(__pyx_v_args); - __Pyx_AddTraceback("sphinxbase.NGramModel.prob"); - return NULL; - __pyx_L4_argument_unpacking_done:; - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_word); - __pyx_v_i = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_spam = Py_None; __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":336 - * cdef int32 n_used - * cdef int32 score - * wid = ngram_wid(self.lm, word) # <<<<<<<<<<<<<< - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) - */ - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_word); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_wid = ngram_wid(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":337 - * cdef int32 score - * wid = ngram_wid(self.lm, word) - * n_hist = len(args) # <<<<<<<<<<<<<< - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: - */ - __pyx_t_2 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_n_hist = __pyx_t_2; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":338 - * wid = ngram_wid(self.lm, word) - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) # <<<<<<<<<<<<<< - * for i from 0 <= i < n_hist: - * spam = args[i] - */ - __pyx_v_hist = ((__pyx_t_10sphinxbase_int32 *)ckd_calloc(__pyx_v_n_hist, (sizeof(__pyx_t_10sphinxbase_int32)))); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":339 - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: # <<<<<<<<<<<<<< - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) - */ - __pyx_t_3 = __pyx_v_n_hist; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { - __pyx_t_5 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_t_5; - __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":340 - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: - * spam = args[i] # <<<<<<<<<<<<<< - * hist[i] = ngram_wid(self.lm, spam) - * score = ngram_ng_prob(self.lm, wid, hist, n_hist, &n_used) - */ - __pyx_t_5 = PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_v_spam); - __pyx_v_spam = __pyx_t_5; - __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":341 - * for i from 0 <= i < n_hist: - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) # <<<<<<<<<<<<<< - * score = ngram_ng_prob(self.lm, wid, hist, n_hist, &n_used) - * ckd_free(hist) - */ - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_spam); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - (__pyx_v_hist[__pyx_t_2]) = ngram_wid(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1); - __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_v_i); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":339 - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: # <<<<<<<<<<<<<< - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) - */ - __pyx_t_5 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_t_5; - __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":342 - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) - * score = ngram_ng_prob(self.lm, wid, hist, n_hist, &n_used) # <<<<<<<<<<<<<< - * ckd_free(hist) - * return logmath_log_to_ln(self.lmath, score), n_used - */ - __pyx_v_score = ngram_ng_prob(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_v_wid, __pyx_v_hist, __pyx_v_n_hist, (&__pyx_v_n_used)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":343 - * hist[i] = ngram_wid(self.lm, spam) - * score = ngram_ng_prob(self.lm, wid, hist, n_hist, &n_used) - * ckd_free(hist) # <<<<<<<<<<<<<< - * return logmath_log_to_ln(self.lmath, score), n_used - * - */ - ckd_free(__pyx_v_hist); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":344 - * score = ngram_ng_prob(self.lm, wid, hist, n_hist, &n_used) - * ckd_free(hist) - * return logmath_log_to_ln(self.lmath, score), n_used # <<<<<<<<<<<<<< - * - * def mgrams(self, m): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = PyFloat_FromDouble(logmath_log_to_ln(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lmath, __pyx_v_score)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyInt_FromLong(__pyx_v_n_used); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_6); - __pyx_t_5 = 0; - __pyx_t_6 = 0; - __pyx_r = __pyx_t_7; - __pyx_t_7 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("sphinxbase.NGramModel.prob"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_i); - __Pyx_DECREF(__pyx_v_spam); - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_word); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":346 - * return logmath_log_to_ln(self.lmath, score), n_used - * - * def mgrams(self, m): # <<<<<<<<<<<<<< - * """ - * Return an iterator over each N-gram of order m+1. - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_mgrams(PyObject *__pyx_v_self, PyObject *__pyx_v_m); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_mgrams[] = "\n Return an iterator over each N-gram of order m+1.\n\n This allows Pythonic iteration over the parameters of an\n N-Gram model.\n\n @param m: Order of requested N-grams minus one\n @type m: int\n @return: Iterator over M+1-grams\n @rtype: NGramIter\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_mgrams(PyObject *__pyx_v_self, PyObject *__pyx_v_m) { - struct __pyx_obj_10sphinxbase_NGramIter *__pyx_v_itor; - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - __Pyx_RefNannySetupContext("mgrams"); - __pyx_v_itor = ((struct __pyx_obj_10sphinxbase_NGramIter *)Py_None); __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":359 - * """ - * cdef NGramIter itor - * itor = NGramIter(self, m) # <<<<<<<<<<<<<< - * itor.itor = ngram_model_mgrams(self.lm, m) - * return itor - */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_self); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self); - __Pyx_GIVEREF(__pyx_v_self); - __Pyx_INCREF(__pyx_v_m); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_m); - __Pyx_GIVEREF(__pyx_v_m); - __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_10sphinxbase_NGramIter)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(((PyObject *)__pyx_v_itor)); - __pyx_v_itor = ((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":360 - * cdef NGramIter itor - * itor = NGramIter(self, m) - * itor.itor = ngram_model_mgrams(self.lm, m) # <<<<<<<<<<<<<< - * return itor - * - */ - __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_v_m); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_itor->itor = ngram_model_mgrams(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_3); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":361 - * itor = NGramIter(self, m) - * itor.itor = ngram_model_mgrams(self.lm, m) - * return itor # <<<<<<<<<<<<<< - * - * def ngram(self, word, *args): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_itor)); - __pyx_r = ((PyObject *)__pyx_v_itor); - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.NGramModel.mgrams"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_itor); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":363 - * return itor - * - * def ngram(self, word, *args): # <<<<<<<<<<<<<< - * """ - * Return an N-Gram iterator pointing to a given N-gram. - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_ngram(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_10sphinxbase_10NGramModel_ngram[] = "\n Return an N-Gram iterator pointing to a given N-gram.\n\n This allows you to iterate over its successors among other\n things.\n\n @param word: Head word of requested N-gram.\n @type word: str\n @param args: History words of requested N-gram\n @type args: str\n @return: Iterator pointing to N-gram.\n "; -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_ngram(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_word = 0; - PyObject *__pyx_v_args = 0; - struct __pyx_obj_10sphinxbase_NGramIter *__pyx_v_itor; - __pyx_t_10sphinxbase_int32 __pyx_v_wid; - __pyx_t_10sphinxbase_int32 *__pyx_v_hist; - __pyx_t_10sphinxbase_int32 __pyx_v_n_hist; - PyObject *__pyx_v_i; - PyObject *__pyx_v_spam; - PyObject *__pyx_r = NULL; - char *__pyx_t_1; - Py_ssize_t __pyx_t_2; - __pyx_t_10sphinxbase_int32 __pyx_t_3; - long __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__word,0}; - __Pyx_RefNannySetupContext("ngram"); - if (PyTuple_GET_SIZE(__pyx_args) > 1) { - __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); __Pyx_GOTREF(__pyx_v_args); - if (unlikely(!__pyx_v_args)) return NULL; - } else { - __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple); - } - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[1] = {0}; - switch (PyTuple_GET_SIZE(__pyx_args)) { - default: - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__word); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t used_pos_args = (PyTuple_GET_SIZE(__pyx_args) < 1) ? PyTuple_GET_SIZE(__pyx_args) : 1; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "ngram") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_word = values[0]; - } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { - goto __pyx_L5_argtuple_error; - } else { - __pyx_v_word = PyTuple_GET_ITEM(__pyx_args, 0); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ngram", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_DECREF(__pyx_v_args); - __Pyx_AddTraceback("sphinxbase.NGramModel.ngram"); - return NULL; - __pyx_L4_argument_unpacking_done:; - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_word); - __pyx_v_itor = ((struct __pyx_obj_10sphinxbase_NGramIter *)Py_None); __Pyx_INCREF(Py_None); - __pyx_v_i = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_spam = Py_None; __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":380 - * cdef int32 *hist - * cdef int32 n_hist - * wid = ngram_wid(self.lm, word) # <<<<<<<<<<<<<< - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) - */ - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_word); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_wid = ngram_wid(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":381 - * cdef int32 n_hist - * wid = ngram_wid(self.lm, word) - * n_hist = len(args) # <<<<<<<<<<<<<< - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: - */ - __pyx_t_2 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_n_hist = __pyx_t_2; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":382 - * wid = ngram_wid(self.lm, word) - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) # <<<<<<<<<<<<<< - * for i from 0 <= i < n_hist: - * spam = args[i] - */ - __pyx_v_hist = ((__pyx_t_10sphinxbase_int32 *)ckd_calloc(__pyx_v_n_hist, (sizeof(__pyx_t_10sphinxbase_int32)))); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":383 - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: # <<<<<<<<<<<<<< - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) - */ - __pyx_t_3 = __pyx_v_n_hist; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { - __pyx_t_5 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_t_5; - __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":384 - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: - * spam = args[i] # <<<<<<<<<<<<<< - * hist[i] = ngram_wid(self.lm, spam) - * itor = NGramIter(self, n_hist) - */ - __pyx_t_5 = PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_v_spam); - __pyx_v_spam = __pyx_t_5; - __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":385 - * for i from 0 <= i < n_hist: - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) # <<<<<<<<<<<<<< - * itor = NGramIter(self, n_hist) - * # We do set_iter here, because we're returning something the - */ - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_spam); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - (__pyx_v_hist[__pyx_t_2]) = ngram_wid(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1); - __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_v_i); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":383 - * n_hist = len(args) - * hist = ckd_calloc(n_hist, sizeof(int32)) - * for i from 0 <= i < n_hist: # <<<<<<<<<<<<<< - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) - */ - __pyx_t_5 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_t_5; - __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":386 - * spam = args[i] - * hist[i] = ngram_wid(self.lm, spam) - * itor = NGramIter(self, n_hist) # <<<<<<<<<<<<<< - * # We do set_iter here, because we're returning something the - * # user is immediately going to do stuff with. - */ - __pyx_t_5 = PyInt_FromLong(__pyx_v_n_hist); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __Pyx_INCREF(__pyx_v_self); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_self); - __Pyx_GIVEREF(__pyx_v_self); - PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); - __Pyx_GIVEREF(__pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_10sphinxbase_NGramIter)), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(((PyObject *)__pyx_v_itor)); - __pyx_v_itor = ((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_t_5); - __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":389 - * # We do set_iter here, because we're returning something the - * # user is immediately going to do stuff with. - * itor.set_iter(ngram_ng_iter(self.lm, wid, hist, n_hist)) # <<<<<<<<<<<<<< - * ckd_free(hist) - * return itor - */ - __pyx_t_5 = ((struct __pyx_vtabstruct_10sphinxbase_NGramIter *)__pyx_v_itor->__pyx_vtab)->set_iter(__pyx_v_itor, ngram_ng_iter(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_v_wid, __pyx_v_hist, __pyx_v_n_hist)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":390 - * # user is immediately going to do stuff with. - * itor.set_iter(ngram_ng_iter(self.lm, wid, hist, n_hist)) - * ckd_free(hist) # <<<<<<<<<<<<<< - * return itor - * - */ - ckd_free(__pyx_v_hist); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":391 - * itor.set_iter(ngram_ng_iter(self.lm, wid, hist, n_hist)) - * ckd_free(hist) - * return itor # <<<<<<<<<<<<<< - * - * def add_word(self, word, weight=1.0): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_itor)); - __pyx_r = ((PyObject *)__pyx_v_itor); - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("sphinxbase.NGramModel.ngram"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF((PyObject *)__pyx_v_itor); - __Pyx_DECREF(__pyx_v_i); - __Pyx_DECREF(__pyx_v_spam); - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_word); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":393 - * return itor - * - * def add_word(self, word, weight=1.0): # <<<<<<<<<<<<<< - * return ngram_model_add_word(self.lm, word, weight) - * - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_add_word(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_add_word(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_word = 0; - PyObject *__pyx_v_weight = 0; - PyObject *__pyx_r = NULL; - char *__pyx_t_1; - __pyx_t_10sphinxbase_float32 __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__word,&__pyx_n_s__weight,0}; - __Pyx_RefNannySetupContext("add_word"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[2] = {0,0}; - values[1] = __pyx_k_8; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__word); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weight); - if (unlikely(value)) { values[1] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "add_word") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_word = values[0]; - __pyx_v_weight = values[1]; - } else { - __pyx_v_weight = __pyx_k_8; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: __pyx_v_weight = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: __pyx_v_word = PyTuple_GET_ITEM(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("add_word", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.add_word"); - return NULL; - __pyx_L4_argument_unpacking_done:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":394 - * - * def add_word(self, word, weight=1.0): - * return ngram_model_add_word(self.lm, word, weight) # <<<<<<<<<<<<<< - * - * def recode(self, frum, too): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_word); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_weight); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_3 = PyInt_FromLong(ngram_model_add_word(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1, __pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("sphinxbase.NGramModel.add_word"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":396 - * return ngram_model_add_word(self.lm, word, weight) - * - * def recode(self, frum, too): # <<<<<<<<<<<<<< - * cdef int rv - * rv = ngram_model_recode(self.lm, frum, too) - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_recode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_recode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_frum = 0; - PyObject *__pyx_v_too = 0; - int __pyx_v_rv; - PyObject *__pyx_r = NULL; - char *__pyx_t_1; - char *__pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__frum,&__pyx_n_s__too,0}; - __Pyx_RefNannySetupContext("recode"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[2] = {0,0}; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__frum); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__too); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("recode", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "recode") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_frum = values[0]; - __pyx_v_too = values[1]; - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - __pyx_v_frum = PyTuple_GET_ITEM(__pyx_args, 0); - __pyx_v_too = PyTuple_GET_ITEM(__pyx_args, 1); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("recode", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.recode"); - return NULL; - __pyx_L4_argument_unpacking_done:; - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_frum); - __Pyx_INCREF(__pyx_v_too); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":398 - * def recode(self, frum, too): - * cdef int rv - * rv = ngram_model_recode(self.lm, frum, too) # <<<<<<<<<<<<<< - * if rv == -1: - * raise ValueError, "Recode from %s to %s failed" % (frum, too) - */ - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_frum); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_too); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_rv = ngram_model_recode(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1, __pyx_t_2); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":399 - * cdef int rv - * rv = ngram_model_recode(self.lm, frum, too) - * if rv == -1: # <<<<<<<<<<<<<< - * raise ValueError, "Recode from %s to %s failed" % (frum, too) - * - */ - __pyx_t_3 = (__pyx_v_rv == -1); - if (__pyx_t_3) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":400 - * rv = ngram_model_recode(self.lm, frum, too) - * if rv == -1: - * raise ValueError, "Recode from %s to %s failed" % (frum, too) # <<<<<<<<<<<<<< - * - * def casefold(self, kase): - */ - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF(__pyx_v_frum); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_frum); - __Pyx_GIVEREF(__pyx_v_frum); - __Pyx_INCREF(__pyx_v_too); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_too); - __Pyx_GIVEREF(__pyx_v_too); - __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_9), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_5, 0); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L6; - } - __pyx_L6:; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("sphinxbase.NGramModel.recode"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_frum); - __Pyx_DECREF(__pyx_v_too); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":402 - * raise ValueError, "Recode from %s to %s failed" % (frum, too) - * - * def casefold(self, kase): # <<<<<<<<<<<<<< - * cdef int rv - * rv = ngram_model_casefold(self.lm, kase) - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_casefold(PyObject *__pyx_v_self, PyObject *__pyx_v_kase); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_casefold(PyObject *__pyx_v_self, PyObject *__pyx_v_kase) { - int __pyx_v_rv; - PyObject *__pyx_r = NULL; - ngram_case_t __pyx_t_1; - int __pyx_t_2; - __Pyx_RefNannySetupContext("casefold"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_kase); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":404 - * def casefold(self, kase): - * cdef int rv - * rv = ngram_model_casefold(self.lm, kase) # <<<<<<<<<<<<<< - * if rv == -1: - * raise ValueError, "Casefolding failed" - */ - __pyx_t_1 = ((ngram_case_t)PyInt_AsLong(__pyx_v_kase)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_rv = ngram_model_casefold(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":405 - * cdef int rv - * rv = ngram_model_casefold(self.lm, kase) - * if rv == -1: # <<<<<<<<<<<<<< - * raise ValueError, "Casefolding failed" - * - */ - __pyx_t_2 = (__pyx_v_rv == -1); - if (__pyx_t_2) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":406 - * rv = ngram_model_casefold(self.lm, kase) - * if rv == -1: - * raise ValueError, "Casefolding failed" # <<<<<<<<<<<<<< - * - * def write(self, file_name, format=NGRAM_AUTO): - */ - __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_10), 0); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L5; - } - __pyx_L5:; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.casefold"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_kase); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":408 - * raise ValueError, "Casefolding failed" - * - * def write(self, file_name, format=NGRAM_AUTO): # <<<<<<<<<<<<<< - * cdef int rv - * rv = ngram_model_write(self.lm, file_name, format) - */ - -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_write(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_10NGramModel_write(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_file_name = 0; - PyObject *__pyx_v_format = 0; - int __pyx_v_rv; - PyObject *__pyx_r = NULL; - char *__pyx_t_1; - ngram_file_type_t __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file_name,&__pyx_n_s__format,0}; - __Pyx_RefNannySetupContext("write"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[2] = {0,0}; - values[1] = __pyx_k_11; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__file_name); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__format); - if (unlikely(value)) { values[1] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "write") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_file_name = values[0]; - __pyx_v_format = values[1]; - } else { - __pyx_v_format = __pyx_k_11; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: __pyx_v_format = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: __pyx_v_file_name = PyTuple_GET_ITEM(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("write", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.NGramModel.write"); - return NULL; - __pyx_L4_argument_unpacking_done:; - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_file_name); - __Pyx_INCREF(__pyx_v_format); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":410 - * def write(self, file_name, format=NGRAM_AUTO): - * cdef int rv - * rv = ngram_model_write(self.lm, file_name, format) # <<<<<<<<<<<<<< - * if rv == -1: - * raise ValueError, "Write %s to file failed" % file_name - */ - __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_file_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = ((ngram_file_type_t)PyInt_AsLong(__pyx_v_format)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_rv = ngram_model_write(((struct __pyx_obj_10sphinxbase_NGramModel *)__pyx_v_self)->lm, __pyx_t_1, __pyx_t_2); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":411 - * cdef int rv - * rv = ngram_model_write(self.lm, file_name, format) - * if rv == -1: # <<<<<<<<<<<<<< - * raise ValueError, "Write %s to file failed" % file_name - * - */ - __pyx_t_3 = (__pyx_v_rv == -1); - if (__pyx_t_3) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":412 - * rv = ngram_model_write(self.lm, file_name, format) - * if rv == -1: - * raise ValueError, "Write %s to file failed" % file_name # <<<<<<<<<<<<<< - * - * cdef class NGramIter: - */ - __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_12), __pyx_v_file_name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_4, 0); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L6; - } - __pyx_L6:; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("sphinxbase.NGramModel.write"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_file_name); - __Pyx_DECREF(__pyx_v_format); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":421 - * language model. - * """ - * def __cinit__(self, NGramModel lm, int m): # <<<<<<<<<<<<<< - * self.itor = NULL - * self.lm = lm - */ - -static int __pyx_pf_10sphinxbase_9NGramIter___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pf_10sphinxbase_9NGramIter___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_10sphinxbase_NGramModel *__pyx_v_lm = 0; - int __pyx_v_m; - int __pyx_r; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lm,&__pyx_n_s__m,0}; - __Pyx_RefNannySetupContext("__cinit__"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[2] = {0,0}; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lm); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__m); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_lm = ((struct __pyx_obj_10sphinxbase_NGramModel *)values[0]); - __pyx_v_m = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_m == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - __pyx_v_lm = ((struct __pyx_obj_10sphinxbase_NGramModel *)PyTuple_GET_ITEM(__pyx_args, 0)); - __pyx_v_m = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_m == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.NGramIter.__cinit__"); - return -1; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lm), __pyx_ptype_10sphinxbase_NGramModel, 1, "lm", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":422 - * """ - * def __cinit__(self, NGramModel lm, int m): - * self.itor = NULL # <<<<<<<<<<<<<< - * self.lm = lm - * self.m = m - */ - ((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->itor = NULL; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":423 - * def __cinit__(self, NGramModel lm, int m): - * self.itor = NULL - * self.lm = lm # <<<<<<<<<<<<<< - * self.m = m - * self.first_item = True - */ - __Pyx_INCREF(((PyObject *)__pyx_v_lm)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_lm)); - __Pyx_GOTREF(((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->lm); - __Pyx_DECREF(((PyObject *)((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->lm)); - ((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->lm = __pyx_v_lm; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":424 - * self.itor = NULL - * self.lm = lm - * self.m = m # <<<<<<<<<<<<<< - * self.first_item = True - * - */ - ((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->m = __pyx_v_m; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":425 - * self.lm = lm - * self.m = m - * self.first_item = True # <<<<<<<<<<<<<< - * - * def __iter__(self): - */ - ((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->first_item = 1; - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("sphinxbase.NGramIter.__cinit__"); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":427 - * self.first_item = True - * - * def __iter__(self): # <<<<<<<<<<<<<< - * self.first_item = True - * return self - */ - -static PyObject *__pyx_pf_10sphinxbase_9NGramIter___iter__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_9NGramIter___iter__(PyObject *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannySetupContext("__iter__"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":428 - * - * def __iter__(self): - * self.first_item = True # <<<<<<<<<<<<<< - * return self - * - */ - ((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->first_item = 1; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":429 - * def __iter__(self): - * self.first_item = True - * return self # <<<<<<<<<<<<<< - * - * cdef set_iter(NGramIter self, ngram_iter_t *itor): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_self); - __pyx_r = __pyx_v_self; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":431 - * return self - * - * cdef set_iter(NGramIter self, ngram_iter_t *itor): # <<<<<<<<<<<<<< - * cdef int32 prob, bowt - * cdef const_int32_ptr wids - */ - -static PyObject *__pyx_f_10sphinxbase_9NGramIter_set_iter(struct __pyx_obj_10sphinxbase_NGramIter *__pyx_v_self, ngram_iter_t *__pyx_v_itor) { - __pyx_t_10sphinxbase_int32 __pyx_v_prob; - __pyx_t_10sphinxbase_int32 __pyx_v_bowt; - const int32* __pyx_v_wids; - PyObject *__pyx_v_i; - PyObject *__pyx_r = NULL; - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - Py_ssize_t __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - __Pyx_RefNannySetupContext("set_iter"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - __pyx_v_i = Py_None; __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":435 - * cdef const_int32_ptr wids - * - * if itor == NULL: # <<<<<<<<<<<<<< - * raise StopIteration - * self.itor = itor - */ - __pyx_t_1 = (__pyx_v_itor == NULL); - if (__pyx_t_1) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":436 - * - * if itor == NULL: - * raise StopIteration # <<<<<<<<<<<<<< - * self.itor = itor - * if self.first_item: - */ - __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L3; - } - __pyx_L3:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":437 - * if itor == NULL: - * raise StopIteration - * self.itor = itor # <<<<<<<<<<<<<< - * if self.first_item: - * self.first_item = False - */ - __pyx_v_self->itor = __pyx_v_itor; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":438 - * raise StopIteration - * self.itor = itor - * if self.first_item: # <<<<<<<<<<<<<< - * self.first_item = False - * wids = ngram_iter_get(itor, &prob, &bowt) - */ - __pyx_t_2 = __pyx_v_self->first_item; - if (__pyx_t_2) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":439 - * self.itor = itor - * if self.first_item: - * self.first_item = False # <<<<<<<<<<<<<< - * wids = ngram_iter_get(itor, &prob, &bowt) - * self.log_prob = logmath_log_to_ln(self.lm.lmath, prob) - */ - __pyx_v_self->first_item = 0; - goto __pyx_L4; - } - __pyx_L4:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":440 - * if self.first_item: - * self.first_item = False - * wids = ngram_iter_get(itor, &prob, &bowt) # <<<<<<<<<<<<<< - * self.log_prob = logmath_log_to_ln(self.lm.lmath, prob) - * self.log_bowt = logmath_log_to_ln(self.lm.lmath, bowt) - */ - __pyx_v_wids = ngram_iter_get(__pyx_v_itor, (&__pyx_v_prob), (&__pyx_v_bowt)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":441 - * self.first_item = False - * wids = ngram_iter_get(itor, &prob, &bowt) - * self.log_prob = logmath_log_to_ln(self.lm.lmath, prob) # <<<<<<<<<<<<<< - * self.log_bowt = logmath_log_to_ln(self.lm.lmath, bowt) - * self.words = [] - */ - __pyx_v_self->log_prob = logmath_log_to_ln(__pyx_v_self->lm->lmath, __pyx_v_prob); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":442 - * wids = ngram_iter_get(itor, &prob, &bowt) - * self.log_prob = logmath_log_to_ln(self.lm.lmath, prob) - * self.log_bowt = logmath_log_to_ln(self.lm.lmath, bowt) # <<<<<<<<<<<<<< - * self.words = [] - * for i in range(0, self.m+1): - */ - __pyx_v_self->log_bowt = logmath_log_to_ln(__pyx_v_self->lm->lmath, __pyx_v_bowt); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":443 - * self.log_prob = logmath_log_to_ln(self.lm.lmath, prob) - * self.log_bowt = logmath_log_to_ln(self.lm.lmath, bowt) - * self.words = [] # <<<<<<<<<<<<<< - * for i in range(0, self.m+1): - * self.words.append(ngram_word(self.lm.lm, wids[i])) - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); - __Pyx_GOTREF(__pyx_v_self->words); - __Pyx_DECREF(__pyx_v_self->words); - __pyx_v_self->words = ((PyObject *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":444 - * self.log_bowt = logmath_log_to_ln(self.lm.lmath, bowt) - * self.words = [] - * for i in range(0, self.m+1): # <<<<<<<<<<<<<< - * self.words.append(ngram_word(self.lm.lm, wids[i])) - * - */ - __pyx_t_3 = PyInt_FromLong((__pyx_v_self->m + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_3 = PyObject_Call(__pyx_builtin_range, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) { - __pyx_t_4 = 0; __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); - } else { - __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - for (;;) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break; - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; - } else if (likely(PyTuple_CheckExact(__pyx_t_5))) { - if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break; - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; - } else { - __pyx_t_3 = PyIter_Next(__pyx_t_5); - if (!__pyx_t_3) { - if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_t_3; - __pyx_t_3 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":445 - * self.words = [] - * for i in range(0, self.m+1): - * self.words.append(ngram_word(self.lm.lm, wids[i])) # <<<<<<<<<<<<<< - * - * def __next__(self): - */ - __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_3 = __Pyx_PyBytes_FromString(ngram_word(__pyx_v_self->lm->lm, (__pyx_v_wids[__pyx_t_6]))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_self->words, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("sphinxbase.NGramIter.set_iter"); - __pyx_r = 0; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_i); - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":447 - * self.words.append(ngram_word(self.lm.lm, wids[i])) - * - * def __next__(self): # <<<<<<<<<<<<<< - * if self.first_item: - * self.set_iter(self.itor) - */ - -static PyObject *__pyx_pf_10sphinxbase_9NGramIter___next__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_9NGramIter___next__(PyObject *__pyx_v_self) { - PyObject *__pyx_r = NULL; - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("__next__"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":448 - * - * def __next__(self): - * if self.first_item: # <<<<<<<<<<<<<< - * self.set_iter(self.itor) - * else: - */ - __pyx_t_1 = ((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->first_item; - if (__pyx_t_1) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":449 - * def __next__(self): - * if self.first_item: - * self.set_iter(self.itor) # <<<<<<<<<<<<<< - * else: - * self.set_iter(ngram_iter_next(self.itor)) - */ - __pyx_t_2 = ((struct __pyx_vtabstruct_10sphinxbase_NGramIter *)((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->__pyx_vtab)->set_iter(((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self), ((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->itor); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L5; - } - /*else*/ { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":451 - * self.set_iter(self.itor) - * else: - * self.set_iter(ngram_iter_next(self.itor)) # <<<<<<<<<<<<<< - * return self - * - */ - __pyx_t_2 = ((struct __pyx_vtabstruct_10sphinxbase_NGramIter *)((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->__pyx_vtab)->set_iter(((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self), ngram_iter_next(((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->itor)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __pyx_L5:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":452 - * else: - * self.set_iter(ngram_iter_next(self.itor)) - * return self # <<<<<<<<<<<<<< - * - * def successors(self): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_self); - __pyx_r = __pyx_v_self; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.NGramIter.__next__"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":454 - * return self - * - * def successors(self): # <<<<<<<<<<<<<< - * """ - * Get an iterator over N+1-gram successors of an N-gram. - */ - -static PyObject *__pyx_pf_10sphinxbase_9NGramIter_successors(PyObject *__pyx_v_self, PyObject *unused); /*proto*/ -static char __pyx_doc_10sphinxbase_9NGramIter_successors[] = "\n Get an iterator over N+1-gram successors of an N-gram.\n "; -static PyObject *__pyx_pf_10sphinxbase_9NGramIter_successors(PyObject *__pyx_v_self, PyObject *unused) { - struct __pyx_obj_10sphinxbase_NGramIter *__pyx_v_itor; - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("successors"); - __pyx_v_itor = ((struct __pyx_obj_10sphinxbase_NGramIter *)Py_None); __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":459 - * """ - * cdef NGramIter itor - * itor = NGramIter(self.lm, self.m + 1) # <<<<<<<<<<<<<< - * itor.itor = ngram_iter_successors(self.itor) - * return itor - */ - __pyx_t_1 = PyInt_FromLong((((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->m + 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(((PyObject *)((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->lm)); - PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->lm)); - __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->lm)); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_10sphinxbase_NGramIter)), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(((PyObject *)__pyx_v_itor)); - __pyx_v_itor = ((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":460 - * cdef NGramIter itor - * itor = NGramIter(self.lm, self.m + 1) - * itor.itor = ngram_iter_successors(self.itor) # <<<<<<<<<<<<<< - * return itor - * - */ - __pyx_v_itor->itor = ngram_iter_successors(((struct __pyx_obj_10sphinxbase_NGramIter *)__pyx_v_self)->itor); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":461 - * itor = NGramIter(self.lm, self.m + 1) - * itor.itor = ngram_iter_successors(self.itor) - * return itor # <<<<<<<<<<<<<< - * - * def binstr(str val, int nbits): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_itor)); - __pyx_r = ((PyObject *)__pyx_v_itor); - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("sphinxbase.NGramIter.successors"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_itor); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":463 - * return itor - * - * def binstr(str val, int nbits): # <<<<<<<<<<<<<< - * """ - * Silly function to format a string as a binary string - */ - -static PyObject *__pyx_pf_10sphinxbase_binstr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_10sphinxbase_binstr[] = "\n Silly function to format a string as a binary string\n "; -static PyObject *__pyx_pf_10sphinxbase_binstr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_val = 0; - int __pyx_v_nbits; - int __pyx_v_i; - PyObject *__pyx_v_outstr; - PyObject *__pyx_v_c; - PyObject *__pyx_v_cval; - PyObject *__pyx_v_cnb; - PyObject *__pyx_r = NULL; - Py_ssize_t __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - long __pyx_t_5; - int __pyx_t_6; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__val,&__pyx_n_s__nbits,0}; - __Pyx_RefNannySetupContext("binstr"); - __pyx_self = __pyx_self; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[2] = {0,0}; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__val); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nbits); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("binstr", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "binstr") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_val = ((PyObject *)values[0]); - __pyx_v_nbits = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_nbits == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - __pyx_v_val = ((PyObject *)PyTuple_GET_ITEM(__pyx_args, 0)); - __pyx_v_nbits = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_nbits == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("binstr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.binstr"); - return NULL; - __pyx_L4_argument_unpacking_done:; - __Pyx_INCREF(__pyx_v_val); - __pyx_v_outstr = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_c = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_cval = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_cnb = Py_None; __Pyx_INCREF(Py_None); - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_val), &PyString_Type, 1, "val", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":468 - * """ - * cdef int i - * outstr = "" # <<<<<<<<<<<<<< - * for c in val: - * cval = ord(c) - */ - __Pyx_INCREF(((PyObject *)__pyx_kp_s_13)); - __Pyx_DECREF(__pyx_v_outstr); - __pyx_v_outstr = ((PyObject *)__pyx_kp_s_13); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":469 - * cdef int i - * outstr = "" - * for c in val: # <<<<<<<<<<<<<< - * cval = ord(c) - * cnb = min(8, nbits) - */ - __pyx_t_1 = -1; __pyx_t_2 = PyObject_GetIter(((PyObject *)__pyx_v_val)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - for (;;) { - { - __pyx_t_3 = PyIter_Next(__pyx_t_2); - if (!__pyx_t_3) { - if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_DECREF(__pyx_v_c); - __pyx_v_c = __pyx_t_3; - __pyx_t_3 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":470 - * outstr = "" - * for c in val: - * cval = ord(c) # <<<<<<<<<<<<<< - * cnb = min(8, nbits) - * for i in range(0,cnb): - */ - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v_c); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_c); - __Pyx_GIVEREF(__pyx_v_c); - __pyx_t_4 = PyObject_Call(__pyx_builtin_ord, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_v_cval); - __pyx_v_cval = __pyx_t_4; - __pyx_t_4 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":471 - * for c in val: - * cval = ord(c) - * cnb = min(8, nbits) # <<<<<<<<<<<<<< - * for i in range(0,cnb): - * outstr += "%d" % ((cval & (1 << 7-i)) != 0) - */ - __pyx_t_4 = PyInt_FromLong(__pyx_v_nbits); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_int_8); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_8); - __Pyx_GIVEREF(__pyx_int_8); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_4 = PyObject_Call(__pyx_builtin_min, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_v_cnb); - __pyx_v_cnb = __pyx_t_4; - __pyx_t_4 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":472 - * cval = ord(c) - * cnb = min(8, nbits) - * for i in range(0,cnb): # <<<<<<<<<<<<<< - * outstr += "%d" % ((cval & (1 << 7-i)) != 0) - * nbits -= 8 - */ - __pyx_t_5 = __Pyx_PyInt_AsLong(__pyx_v_cnb); if (unlikely((__pyx_t_5 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { - __pyx_v_i = __pyx_t_6; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":473 - * cnb = min(8, nbits) - * for i in range(0,cnb): - * outstr += "%d" % ((cval & (1 << 7-i)) != 0) # <<<<<<<<<<<<<< - * nbits -= 8 - * return outstr - */ - __pyx_t_4 = PyInt_FromLong((1 << (7 - __pyx_v_i))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyNumber_And(__pyx_v_cval, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_int_0, Py_NE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_14), __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_outstr, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_v_outstr); - __pyx_v_outstr = __pyx_t_4; - __pyx_t_4 = 0; - } - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":474 - * for i in range(0,cnb): - * outstr += "%d" % ((cval & (1 << 7-i)) != 0) - * nbits -= 8 # <<<<<<<<<<<<<< - * return outstr - * - */ - __pyx_v_nbits -= 8; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":475 - * outstr += "%d" % ((cval & (1 << 7-i)) != 0) - * nbits -= 8 - * return outstr # <<<<<<<<<<<<<< - * - * def bincw(int cw, int nbits): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_outstr); - __pyx_r = __pyx_v_outstr; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("sphinxbase.binstr"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_outstr); - __Pyx_DECREF(__pyx_v_c); - __Pyx_DECREF(__pyx_v_cval); - __Pyx_DECREF(__pyx_v_cnb); - __Pyx_DECREF(__pyx_v_val); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":477 - * return outstr - * - * def bincw(int cw, int nbits): # <<<<<<<<<<<<<< - * """ - * Silly function to format an int as a binary string - */ - -static PyObject *__pyx_pf_10sphinxbase_bincw(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_10sphinxbase_bincw[] = "\n Silly function to format an int as a binary string\n "; -static PyObject *__pyx_pf_10sphinxbase_bincw(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - int __pyx_v_cw; - int __pyx_v_nbits; - int __pyx_v_i; - PyObject *__pyx_v_outstr; - PyObject *__pyx_r = NULL; - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__cw,&__pyx_n_s__nbits,0}; - __Pyx_RefNannySetupContext("bincw"); - __pyx_self = __pyx_self; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[2] = {0,0}; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cw); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nbits); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("bincw", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "bincw") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_cw = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_cw == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_nbits = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_nbits == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - __pyx_v_cw = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_cw == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_nbits = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_nbits == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("bincw", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.bincw"); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_v_outstr = Py_None; __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":482 - * """ - * cdef int i - * outstr = "" # <<<<<<<<<<<<<< - * for i in range(0,nbits): - * outstr = "%s" % (cw & 1) + outstr - */ - __Pyx_INCREF(((PyObject *)__pyx_kp_s_13)); - __Pyx_DECREF(__pyx_v_outstr); - __pyx_v_outstr = ((PyObject *)__pyx_kp_s_13); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":483 - * cdef int i - * outstr = "" - * for i in range(0,nbits): # <<<<<<<<<<<<<< - * outstr = "%s" % (cw & 1) + outstr - * cw >>= 1 - */ - __pyx_t_1 = __pyx_v_nbits; - for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { - __pyx_v_i = __pyx_t_2; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":484 - * outstr = "" - * for i in range(0,nbits): - * outstr = "%s" % (cw & 1) + outstr # <<<<<<<<<<<<<< - * cw >>= 1 - * return outstr - */ - __pyx_t_3 = PyInt_FromLong((__pyx_v_cw & 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_15), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyNumber_Add(__pyx_t_4, __pyx_v_outstr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_v_outstr); - __pyx_v_outstr = __pyx_t_3; - __pyx_t_3 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":485 - * for i in range(0,nbits): - * outstr = "%s" % (cw & 1) + outstr - * cw >>= 1 # <<<<<<<<<<<<<< - * return outstr - * - */ - __pyx_v_cw >>= 1; - } - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":486 - * outstr = "%s" % (cw & 1) + outstr - * cw >>= 1 - * return outstr # <<<<<<<<<<<<<< - * - * # FIXME: Due to the style of IO in huff_code API this part of the code - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_outstr); - __pyx_r = __pyx_v_outstr; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("sphinxbase.bincw"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_outstr); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":506 - * @type infile: file | str - * """ - * def __init__(self, alphabet=None, infile=None): # <<<<<<<<<<<<<< - * cdef char **symbols - * cdef int *frequencies - */ - -static int __pyx_pf_10sphinxbase_8HuffCode___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pf_10sphinxbase_8HuffCode___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_alphabet = 0; - PyObject *__pyx_v_infile = 0; - char **__pyx_v_symbols; - int *__pyx_v_frequencies; - int __pyx_v_nsym; - PyObject *__pyx_v_bogus; - PyObject *__pyx_v_i; - PyObject *__pyx_v_spam; - PyObject *__pyx_v_sym; - PyObject *__pyx_v_freq; - int __pyx_r; - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - Py_ssize_t __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - int __pyx_t_10; - Py_ssize_t __pyx_t_11; - char *__pyx_t_12; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__alphabet,&__pyx_n_s__infile,0}; - __Pyx_RefNannySetupContext("__init__"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[2] = {0,0}; - values[0] = ((PyObject *)Py_None); - values[1] = ((PyObject *)Py_None); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__alphabet); - if (unlikely(value)) { values[0] = value; kw_args--; } - } - case 1: - if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__infile); - if (unlikely(value)) { values[1] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_alphabet = values[0]; - __pyx_v_infile = values[1]; - } else { - __pyx_v_alphabet = ((PyObject *)Py_None); - __pyx_v_infile = ((PyObject *)Py_None); - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: __pyx_v_infile = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: __pyx_v_alphabet = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.HuffCode.__init__"); - return -1; - __pyx_L4_argument_unpacking_done:; - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_alphabet); - __Pyx_INCREF(__pyx_v_infile); - __pyx_v_bogus = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_i = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_spam = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_sym = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_freq = Py_None; __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":511 - * cdef int nsym - * - * if alphabet == None and infile == None: # <<<<<<<<<<<<<< - * raise ValueError, "One of alphabet or infile must be passed to constructor" - * if alphabet != None and infile != None: - */ - __pyx_t_1 = PyObject_RichCompare(__pyx_v_alphabet, Py_None, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - __pyx_t_1 = PyObject_RichCompare(__pyx_v_infile, Py_None, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_t_3; - } else { - __pyx_t_4 = __pyx_t_2; - } - if (__pyx_t_4) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":512 - * - * if alphabet == None and infile == None: - * raise ValueError, "One of alphabet or infile must be passed to constructor" # <<<<<<<<<<<<<< - * if alphabet != None and infile != None: - * raise ValueError, "Only one of alphabet or infile must be passed to constructor" - */ - __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_16), 0); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L6; - } - __pyx_L6:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":513 - * if alphabet == None and infile == None: - * raise ValueError, "One of alphabet or infile must be passed to constructor" - * if alphabet != None and infile != None: # <<<<<<<<<<<<<< - * raise ValueError, "Only one of alphabet or infile must be passed to constructor" - * - */ - __pyx_t_1 = PyObject_RichCompare(__pyx_v_alphabet, Py_None, Py_NE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_4) { - __pyx_t_1 = PyObject_RichCompare(__pyx_v_infile, Py_None, Py_NE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_2; - } else { - __pyx_t_3 = __pyx_t_4; - } - if (__pyx_t_3) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":514 - * raise ValueError, "One of alphabet or infile must be passed to constructor" - * if alphabet != None and infile != None: - * raise ValueError, "Only one of alphabet or infile must be passed to constructor" # <<<<<<<<<<<<<< - * - * self.fh = None - */ - __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_s_17), 0); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L7; - } - __pyx_L7:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":516 - * raise ValueError, "Only one of alphabet or infile must be passed to constructor" - * - * self.fh = None # <<<<<<<<<<<<<< - * if infile: - * self.read(infile) - */ - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - __Pyx_GOTREF(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh); - __Pyx_DECREF(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh); - ((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh = Py_None; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":517 - * - * self.fh = None - * if infile: # <<<<<<<<<<<<<< - * self.read(infile) - * return - */ - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_infile); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__pyx_t_3) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":518 - * self.fh = None - * if infile: - * self.read(infile) # <<<<<<<<<<<<<< - * return - * - */ - __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF(__pyx_v_infile); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_infile); - __Pyx_GIVEREF(__pyx_v_infile); - __pyx_t_6 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":519 - * if infile: - * self.read(infile) - * return # <<<<<<<<<<<<<< - * - * nsym = len(alphabet) - */ - __pyx_r = 0; - goto __pyx_L0; - goto __pyx_L8; - } - __pyx_L8:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":521 - * return - * - * nsym = len(alphabet) # <<<<<<<<<<<<<< - * frequencies = ckd_calloc(nsym, sizeof(int)) - * symbols = ckd_calloc(nsym, sizeof(char *)) - */ - __pyx_t_7 = PyObject_Length(__pyx_v_alphabet); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_nsym = __pyx_t_7; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":522 - * - * nsym = len(alphabet) - * frequencies = ckd_calloc(nsym, sizeof(int)) # <<<<<<<<<<<<<< - * symbols = ckd_calloc(nsym, sizeof(char *)) - * # Need to create separate Python objects for each string, - */ - __pyx_v_frequencies = ((int *)ckd_calloc(__pyx_v_nsym, (sizeof(int)))); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":523 - * nsym = len(alphabet) - * frequencies = ckd_calloc(nsym, sizeof(int)) - * symbols = ckd_calloc(nsym, sizeof(char *)) # <<<<<<<<<<<<<< - * # Need to create separate Python objects for each string, - * # otherwise we get random duplicates of the codewords... - */ - __pyx_v_symbols = ((char **)ckd_calloc(__pyx_v_nsym, (sizeof(char *)))); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":526 - * # Need to create separate Python objects for each string, - * # otherwise we get random duplicates of the codewords... - * bogus = [] # <<<<<<<<<<<<<< - * for i, spam in enumerate(alphabet): - * sym, freq = spam - */ - __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_6)); - __Pyx_DECREF(__pyx_v_bogus); - __pyx_v_bogus = ((PyObject *)__pyx_t_6); - __pyx_t_6 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":527 - * # otherwise we get random duplicates of the codewords... - * bogus = [] - * for i, spam in enumerate(alphabet): # <<<<<<<<<<<<<< - * sym, freq = spam - * bogus.append(repr(sym)) - */ - __Pyx_INCREF(__pyx_int_0); - __pyx_t_6 = __pyx_int_0; - if (PyList_CheckExact(__pyx_v_alphabet) || PyTuple_CheckExact(__pyx_v_alphabet)) { - __pyx_t_7 = 0; __pyx_t_5 = __pyx_v_alphabet; __Pyx_INCREF(__pyx_t_5); - } else { - __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_alphabet); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - } - for (;;) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break; - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; - } else if (likely(PyTuple_CheckExact(__pyx_t_5))) { - if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break; - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; - } else { - __pyx_t_1 = PyIter_Next(__pyx_t_5); - if (!__pyx_t_1) { - if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - break; - } - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_DECREF(__pyx_v_spam); - __pyx_v_spam = __pyx_t_1; - __pyx_t_1 = 0; - __Pyx_INCREF(__pyx_t_6); - __Pyx_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_t_6; - __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); - __pyx_t_6 = __pyx_t_1; - __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":528 - * bogus = [] - * for i, spam in enumerate(alphabet): - * sym, freq = spam # <<<<<<<<<<<<<< - * bogus.append(repr(sym)) - * frequencies[i] = freq - */ - if (PyTuple_CheckExact(__pyx_v_spam) && likely(PyTuple_GET_SIZE(__pyx_v_spam) == 2)) { - PyObject* tuple = __pyx_v_spam; - __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1); - __pyx_t_8 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_8); - __Pyx_DECREF(__pyx_v_sym); - __pyx_v_sym = __pyx_t_1; - __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_v_freq); - __pyx_v_freq = __pyx_t_8; - __pyx_t_8 = 0; - } else { - __pyx_t_9 = PyObject_GetIter(__pyx_v_spam); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_9, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_UnpackItem(__pyx_t_9, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_EndUnpack(__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_v_sym); - __pyx_v_sym = __pyx_t_1; - __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_v_freq); - __pyx_v_freq = __pyx_t_8; - __pyx_t_8 = 0; - } - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":529 - * for i, spam in enumerate(alphabet): - * sym, freq = spam - * bogus.append(repr(sym)) # <<<<<<<<<<<<<< - * frequencies[i] = freq - * symbols[i] = bogus[-1] - */ - __pyx_t_8 = PyObject_Repr(__pyx_v_sym); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_bogus, __pyx_t_8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":530 - * sym, freq = spam - * bogus.append(repr(sym)) - * frequencies[i] = freq # <<<<<<<<<<<<<< - * symbols[i] = bogus[-1] - * self.hc = huff_code_build_str(symbols, frequencies, nsym) - */ - __pyx_t_10 = __Pyx_PyInt_AsInt(__pyx_v_freq); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - (__pyx_v_frequencies[__pyx_t_11]) = __pyx_t_10; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":531 - * bogus.append(repr(sym)) - * frequencies[i] = freq - * symbols[i] = bogus[-1] # <<<<<<<<<<<<<< - * self.hc = huff_code_build_str(symbols, frequencies, nsym) - * ckd_free(frequencies) - */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_bogus, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_12) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - (__pyx_v_symbols[__pyx_t_11]) = __pyx_t_12; - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":532 - * frequencies[i] = freq - * symbols[i] = bogus[-1] - * self.hc = huff_code_build_str(symbols, frequencies, nsym) # <<<<<<<<<<<<<< - * ckd_free(frequencies) - * ckd_free(symbols) - */ - ((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc = huff_code_build_str(__pyx_v_symbols, __pyx_v_frequencies, __pyx_v_nsym); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":533 - * symbols[i] = bogus[-1] - * self.hc = huff_code_build_str(symbols, frequencies, nsym) - * ckd_free(frequencies) # <<<<<<<<<<<<<< - * ckd_free(symbols) - * - */ - ckd_free(__pyx_v_frequencies); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":534 - * self.hc = huff_code_build_str(symbols, frequencies, nsym) - * ckd_free(frequencies) - * ckd_free(symbols) # <<<<<<<<<<<<<< - * - * def read(self, infile): - */ - ckd_free(__pyx_v_symbols); - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("sphinxbase.HuffCode.__init__"); - __pyx_r = -1; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_bogus); - __Pyx_DECREF(__pyx_v_i); - __Pyx_DECREF(__pyx_v_spam); - __Pyx_DECREF(__pyx_v_sym); - __Pyx_DECREF(__pyx_v_freq); - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_alphabet); - __Pyx_DECREF(__pyx_v_infile); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":536 - * ckd_free(symbols) - * - * def read(self, infile): # <<<<<<<<<<<<<< - * if not isinstance(infile, file): - * infile = file(infile, "rb") - */ - -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_read(PyObject *__pyx_v_self, PyObject *__pyx_v_infile); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_read(PyObject *__pyx_v_self, PyObject *__pyx_v_infile) { - PyObject *__pyx_r = NULL; - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - huff_code_t *__pyx_t_5; - __Pyx_RefNannySetupContext("read"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_infile); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":537 - * - * def read(self, infile): - * if not isinstance(infile, file): # <<<<<<<<<<<<<< - * infile = file(infile, "rb") - * huff_code_free(self.hc) - */ - __pyx_t_1 = PyObject_TypeCheck(__pyx_v_infile, ((PyTypeObject *)((PyObject*)&PyFile_Type))); - __pyx_t_2 = (!__pyx_t_1); - if (__pyx_t_2) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":538 - * def read(self, infile): - * if not isinstance(infile, file): - * infile = file(infile, "rb") # <<<<<<<<<<<<<< - * huff_code_free(self.hc) - * self.hc = huff_code_read(PyFile_AsFile(infile)) - */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v_infile); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_infile); - __Pyx_GIVEREF(__pyx_v_infile); - __Pyx_INCREF(((PyObject *)__pyx_n_s__rb)); - PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__rb)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__rb)); - __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)&PyFile_Type)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_v_infile); - __pyx_v_infile = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L5; - } - __pyx_L5:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":539 - * if not isinstance(infile, file): - * infile = file(infile, "rb") - * huff_code_free(self.hc) # <<<<<<<<<<<<<< - * self.hc = huff_code_read(PyFile_AsFile(infile)) - * - */ - huff_code_free(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":540 - * infile = file(infile, "rb") - * huff_code_free(self.hc) - * self.hc = huff_code_read(PyFile_AsFile(infile)) # <<<<<<<<<<<<<< - * - * def write(self, outfile): - */ - __pyx_t_5 = huff_code_read(PyFile_AsFile(__pyx_v_infile)); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - ((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc = __pyx_t_5; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("sphinxbase.HuffCode.read"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_infile); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":542 - * self.hc = huff_code_read(PyFile_AsFile(infile)) - * - * def write(self, outfile): # <<<<<<<<<<<<<< - * if not isinstance(outfile, file): - * outfile = file(outfile, "wb") - */ - -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_write(PyObject *__pyx_v_self, PyObject *__pyx_v_outfile); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_write(PyObject *__pyx_v_self, PyObject *__pyx_v_outfile) { - PyObject *__pyx_r = NULL; - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - __Pyx_RefNannySetupContext("write"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_outfile); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":543 - * - * def write(self, outfile): - * if not isinstance(outfile, file): # <<<<<<<<<<<<<< - * outfile = file(outfile, "wb") - * huff_code_write(self.hc, PyFile_AsFile(outfile)) - */ - __pyx_t_1 = PyObject_TypeCheck(__pyx_v_outfile, ((PyTypeObject *)((PyObject*)&PyFile_Type))); - __pyx_t_2 = (!__pyx_t_1); - if (__pyx_t_2) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":544 - * def write(self, outfile): - * if not isinstance(outfile, file): - * outfile = file(outfile, "wb") # <<<<<<<<<<<<<< - * huff_code_write(self.hc, PyFile_AsFile(outfile)) - * - */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v_outfile); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_outfile); - __Pyx_GIVEREF(__pyx_v_outfile); - __Pyx_INCREF(((PyObject *)__pyx_n_s__wb)); - PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__wb)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__wb)); - __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)&PyFile_Type)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_v_outfile); - __pyx_v_outfile = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L5; - } - __pyx_L5:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":545 - * if not isinstance(outfile, file): - * outfile = file(outfile, "wb") - * huff_code_write(self.hc, PyFile_AsFile(outfile)) # <<<<<<<<<<<<<< - * - * def dump(self, outfile): - */ - __pyx_t_5 = huff_code_write(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc, PyFile_AsFile(__pyx_v_outfile)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("sphinxbase.HuffCode.write"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_outfile); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":547 - * huff_code_write(self.hc, PyFile_AsFile(outfile)) - * - * def dump(self, outfile): # <<<<<<<<<<<<<< - * if not isinstance(outfile, file): - * outfile = file(outfile, "w") - */ - -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_dump(PyObject *__pyx_v_self, PyObject *__pyx_v_outfile); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_dump(PyObject *__pyx_v_self, PyObject *__pyx_v_outfile) { - PyObject *__pyx_r = NULL; - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - __Pyx_RefNannySetupContext("dump"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_outfile); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":548 - * - * def dump(self, outfile): - * if not isinstance(outfile, file): # <<<<<<<<<<<<<< - * outfile = file(outfile, "w") - * huff_code_dump(self.hc, PyFile_AsFile(outfile)) - */ - __pyx_t_1 = PyObject_TypeCheck(__pyx_v_outfile, ((PyTypeObject *)((PyObject*)&PyFile_Type))); - __pyx_t_2 = (!__pyx_t_1); - if (__pyx_t_2) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":549 - * def dump(self, outfile): - * if not isinstance(outfile, file): - * outfile = file(outfile, "w") # <<<<<<<<<<<<<< - * huff_code_dump(self.hc, PyFile_AsFile(outfile)) - * - */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v_outfile); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_outfile); - __Pyx_GIVEREF(__pyx_v_outfile); - __Pyx_INCREF(((PyObject *)__pyx_n_s__w)); - PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__w)); - __Pyx_GIVEREF(((PyObject *)__pyx_n_s__w)); - __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)&PyFile_Type)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_v_outfile); - __pyx_v_outfile = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L5; - } - __pyx_L5:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":550 - * if not isinstance(outfile, file): - * outfile = file(outfile, "w") - * huff_code_dump(self.hc, PyFile_AsFile(outfile)) # <<<<<<<<<<<<<< - * - * def encode(self, seq): - */ - __pyx_t_5 = huff_code_dump(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc, PyFile_AsFile(__pyx_v_outfile)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("sphinxbase.HuffCode.dump"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_outfile); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":552 - * huff_code_dump(self.hc, PyFile_AsFile(outfile)) - * - * def encode(self, seq): # <<<<<<<<<<<<<< - * """ - * Encode a sequence of symbols to a byte array, returning that - */ - -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_encode(PyObject *__pyx_v_self, PyObject *__pyx_v_seq); /*proto*/ -static char __pyx_doc_10sphinxbase_8HuffCode_encode[] = "\n Encode a sequence of symbols to a byte array, returning that\n array and the bit offset of the next codeword in the last\n byte (i.e. 8 minutes the number of extra zero bits)\n "; -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_encode(PyObject *__pyx_v_self, PyObject *__pyx_v_seq) { - unsigned int __pyx_v_cw; - int __pyx_v_cwlen; - int __pyx_v_nbits; - int __pyx_v_nbytes; - int __pyx_v_offset; - int __pyx_v_i; - unsigned char __pyx_v_buf; - char *__pyx_v_output; - PyObject *__pyx_v_sym; - PyObject *__pyx_v_sss; - PyObject *__pyx_v_outstr; - PyObject *__pyx_r = NULL; - Py_ssize_t __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - char *__pyx_t_4; - int __pyx_t_5; - __Pyx_RefNannySetupContext("encode"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_seq); - __pyx_v_sym = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_sss = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_outstr = Py_None; __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":559 - * """ - * cdef unsigned int cw - * cdef int cwlen, nbits = 0, nbytes, offset, i # <<<<<<<<<<<<<< - * cdef unsigned char buf = 0 - * cdef char *output - */ - __pyx_v_nbits = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":560 - * cdef unsigned int cw - * cdef int cwlen, nbits = 0, nbytes, offset, i - * cdef unsigned char buf = 0 # <<<<<<<<<<<<<< - * cdef char *output - * - */ - __pyx_v_buf = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":563 - * cdef char *output - * - * for sym in seq: # <<<<<<<<<<<<<< - * sss = repr(sym) - * cwlen = huff_code_encode_str(self.hc, sss, &cw) - */ - if (PyList_CheckExact(__pyx_v_seq) || PyTuple_CheckExact(__pyx_v_seq)) { - __pyx_t_1 = 0; __pyx_t_2 = __pyx_v_seq; __Pyx_INCREF(__pyx_t_2); - } else { - __pyx_t_1 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_seq); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - } - for (;;) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_2)) break; - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; - } else if (likely(PyTuple_CheckExact(__pyx_t_2))) { - if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break; - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; - } else { - __pyx_t_3 = PyIter_Next(__pyx_t_2); - if (!__pyx_t_3) { - if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_DECREF(__pyx_v_sym); - __pyx_v_sym = __pyx_t_3; - __pyx_t_3 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":564 - * - * for sym in seq: - * sss = repr(sym) # <<<<<<<<<<<<<< - * cwlen = huff_code_encode_str(self.hc, sss, &cw) - * nbits += cwlen - */ - __pyx_t_3 = PyObject_Repr(__pyx_v_sym); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_v_sss); - __pyx_v_sss = __pyx_t_3; - __pyx_t_3 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":565 - * for sym in seq: - * sss = repr(sym) - * cwlen = huff_code_encode_str(self.hc, sss, &cw) # <<<<<<<<<<<<<< - * nbits += cwlen - * nbytes = int((nbits + 7) / 8) - */ - __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_v_sss); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_cwlen = huff_code_encode_str(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc, __pyx_t_4, (&__pyx_v_cw)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":566 - * sss = repr(sym) - * cwlen = huff_code_encode_str(self.hc, sss, &cw) - * nbits += cwlen # <<<<<<<<<<<<<< - * nbytes = int((nbits + 7) / 8) - * offset = 0 - */ - __pyx_v_nbits += __pyx_v_cwlen; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":567 - * cwlen = huff_code_encode_str(self.hc, sss, &cw) - * nbits += cwlen - * nbytes = int((nbits + 7) / 8) # <<<<<<<<<<<<<< - * offset = 0 - * output = PyMem_Malloc(nbytes + 1) - */ - __pyx_v_nbytes = ((int)__Pyx_div_long((__pyx_v_nbits + 7), 8)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":568 - * nbits += cwlen - * nbytes = int((nbits + 7) / 8) - * offset = 0 # <<<<<<<<<<<<<< - * output = PyMem_Malloc(nbytes + 1) - * output[nbytes] = 0 - */ - __pyx_v_offset = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":569 - * nbytes = int((nbits + 7) / 8) - * offset = 0 - * output = PyMem_Malloc(nbytes + 1) # <<<<<<<<<<<<<< - * output[nbytes] = 0 - * i = 0 - */ - __pyx_v_output = ((char *)PyMem_Malloc((__pyx_v_nbytes + 1))); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":570 - * offset = 0 - * output = PyMem_Malloc(nbytes + 1) - * output[nbytes] = 0 # <<<<<<<<<<<<<< - * i = 0 - * nbits = 0 - */ - (__pyx_v_output[__pyx_v_nbytes]) = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":571 - * output = PyMem_Malloc(nbytes + 1) - * output[nbytes] = 0 - * i = 0 # <<<<<<<<<<<<<< - * nbits = 0 - * for sym in seq: - */ - __pyx_v_i = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":572 - * output[nbytes] = 0 - * i = 0 - * nbits = 0 # <<<<<<<<<<<<<< - * for sym in seq: - * sss = repr(sym) - */ - __pyx_v_nbits = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":573 - * i = 0 - * nbits = 0 - * for sym in seq: # <<<<<<<<<<<<<< - * sss = repr(sym) - * cwlen = huff_code_encode_str(self.hc, sss, &cw) - */ - if (PyList_CheckExact(__pyx_v_seq) || PyTuple_CheckExact(__pyx_v_seq)) { - __pyx_t_1 = 0; __pyx_t_2 = __pyx_v_seq; __Pyx_INCREF(__pyx_t_2); - } else { - __pyx_t_1 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_seq); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - } - for (;;) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_2)) break; - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; - } else if (likely(PyTuple_CheckExact(__pyx_t_2))) { - if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break; - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; - } else { - __pyx_t_3 = PyIter_Next(__pyx_t_2); - if (!__pyx_t_3) { - if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_DECREF(__pyx_v_sym); - __pyx_v_sym = __pyx_t_3; - __pyx_t_3 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":574 - * nbits = 0 - * for sym in seq: - * sss = repr(sym) # <<<<<<<<<<<<<< - * cwlen = huff_code_encode_str(self.hc, sss, &cw) - * #print "sym: %s cw: %s buf: %s output: %s" \ - */ - __pyx_t_3 = PyObject_Repr(__pyx_v_sym); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_v_sss); - __pyx_v_sss = __pyx_t_3; - __pyx_t_3 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":575 - * for sym in seq: - * sss = repr(sym) - * cwlen = huff_code_encode_str(self.hc, sss, &cw) # <<<<<<<<<<<<<< - * #print "sym: %s cw: %s buf: %s output: %s" \ - * # % (sym, bincw(cw, cwlen), bincw(buf >> (8-offset), offset), - */ - __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_v_sss); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_cwlen = huff_code_encode_str(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc, __pyx_t_4, (&__pyx_v_cw)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":581 - * #print "cwlen",cwlen - * # Do one byte at a time while full bytes are available - * while cwlen >= 8: # <<<<<<<<<<<<<< - * # Fill low bits of buf with high bits of cw - * buf |= (cw >> (cwlen - (8 - offset))) & ((1 << (8 - offset)) - 1) - */ - while (1) { - __pyx_t_5 = (__pyx_v_cwlen >= 8); - if (!__pyx_t_5) break; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":583 - * while cwlen >= 8: - * # Fill low bits of buf with high bits of cw - * buf |= (cw >> (cwlen - (8 - offset))) & ((1 << (8 - offset)) - 1) # <<<<<<<<<<<<<< - * # Append buf to output - * output[i] = buf - */ - __pyx_v_buf |= ((__pyx_v_cw >> (__pyx_v_cwlen - (8 - __pyx_v_offset))) & ((1 << (8 - __pyx_v_offset)) - 1)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":585 - * buf |= (cw >> (cwlen - (8 - offset))) & ((1 << (8 - offset)) - 1) - * # Append buf to output - * output[i] = buf # <<<<<<<<<<<<<< - * i += 1 - * nbits += 8 - */ - (__pyx_v_output[__pyx_v_i]) = __pyx_v_buf; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":586 - * # Append buf to output - * output[i] = buf - * i += 1 # <<<<<<<<<<<<<< - * nbits += 8 - * # Fill high bits of buf with low bits of this byte - */ - __pyx_v_i += 1; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":587 - * output[i] = buf - * i += 1 - * nbits += 8 # <<<<<<<<<<<<<< - * # Fill high bits of buf with low bits of this byte - * cwlen -= 8 - */ - __pyx_v_nbits += 8; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":589 - * nbits += 8 - * # Fill high bits of buf with low bits of this byte - * cwlen -= 8 # <<<<<<<<<<<<<< - * buf = (cw >> cwlen) & ((1 << offset) - 1) - * buf <<= (8-offset) - */ - __pyx_v_cwlen -= 8; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":590 - * # Fill high bits of buf with low bits of this byte - * cwlen -= 8 - * buf = (cw >> cwlen) & ((1 << offset) - 1) # <<<<<<<<<<<<<< - * buf <<= (8-offset) - * #print "cwlen",cwlen - */ - __pyx_v_buf = ((__pyx_v_cw >> __pyx_v_cwlen) & ((1 << __pyx_v_offset) - 1)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":591 - * cwlen -= 8 - * buf = (cw >> cwlen) & ((1 << offset) - 1) - * buf <<= (8-offset) # <<<<<<<<<<<<<< - * #print "cwlen",cwlen - * # Now cwlen will be less than 8, but it might still be - */ - __pyx_v_buf <<= (8 - __pyx_v_offset); - } - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":595 - * # Now cwlen will be less than 8, but it might still be - * # more than the available space in buf. - * if cwlen >= (8 - offset): # <<<<<<<<<<<<<< - * # Fill low bits of buf with (8-offset) highest bits of cw - * buf |= (cw >> (cwlen - (8 - offset))) & ((1 << (8 - offset)) - 1) - */ - __pyx_t_5 = (__pyx_v_cwlen >= (8 - __pyx_v_offset)); - if (__pyx_t_5) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":597 - * if cwlen >= (8 - offset): - * # Fill low bits of buf with (8-offset) highest bits of cw - * buf |= (cw >> (cwlen - (8 - offset))) & ((1 << (8 - offset)) - 1) # <<<<<<<<<<<<<< - * # Append buf to output - * output[i] = buf - */ - __pyx_v_buf |= ((__pyx_v_cw >> (__pyx_v_cwlen - (8 - __pyx_v_offset))) & ((1 << (8 - __pyx_v_offset)) - 1)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":599 - * buf |= (cw >> (cwlen - (8 - offset))) & ((1 << (8 - offset)) - 1) - * # Append buf to output - * output[i] = buf # <<<<<<<<<<<<<< - * i += 1 - * nbits += 8 - */ - (__pyx_v_output[__pyx_v_i]) = __pyx_v_buf; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":600 - * # Append buf to output - * output[i] = buf - * i += 1 # <<<<<<<<<<<<<< - * nbits += 8 - * # cwlen is down to the remaining bits - */ - __pyx_v_i += 1; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":601 - * output[i] = buf - * i += 1 - * nbits += 8 # <<<<<<<<<<<<<< - * # cwlen is down to the remaining bits - * cwlen -= (8 - offset) - */ - __pyx_v_nbits += 8; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":603 - * nbits += 8 - * # cwlen is down to the remaining bits - * cwlen -= (8 - offset) # <<<<<<<<<<<<<< - * # Offset is now zero since we just completed and emptied buf - * offset = 0 - */ - __pyx_v_cwlen -= (8 - __pyx_v_offset); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":605 - * cwlen -= (8 - offset) - * # Offset is now zero since we just completed and emptied buf - * offset = 0 # <<<<<<<<<<<<<< - * # buf is zero, because we just emptied it without putting stuff in - * buf = 0 - */ - __pyx_v_offset = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":607 - * offset = 0 - * # buf is zero, because we just emptied it without putting stuff in - * buf = 0 # <<<<<<<<<<<<<< - * #print "cwlen",cwlen - * # Any remaining bits will be taken care of below (we hope) - */ - __pyx_v_buf = 0; - goto __pyx_L11; - } - __pyx_L11:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":612 - * # Add remaining high bits of cw to low bits of buf - * #print "cwlen",cwlen - * buf |= ((cw & ((1 << cwlen) - 1)) << (8 - offset - cwlen)) # <<<<<<<<<<<<<< - * offset += cwlen - * #print "after buf: %s output: %s" \ - */ - __pyx_v_buf |= ((__pyx_v_cw & ((1 << __pyx_v_cwlen) - 1)) << ((8 - __pyx_v_offset) - __pyx_v_cwlen)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":613 - * #print "cwlen",cwlen - * buf |= ((cw & ((1 << cwlen) - 1)) << (8 - offset - cwlen)) - * offset += cwlen # <<<<<<<<<<<<<< - * #print "after buf: %s output: %s" \ - * # % (bincw(buf >> (8-offset), offset), binstr(output, nbits)) - */ - __pyx_v_offset += __pyx_v_cwlen; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":616 - * #print "after buf: %s output: %s" \ - * # % (bincw(buf >> (8-offset), offset), binstr(output, nbits)) - * if offset > 0: # <<<<<<<<<<<<<< - * # Append buf to output - * output[i] = buf - */ - __pyx_t_5 = (__pyx_v_offset > 0); - if (__pyx_t_5) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":618 - * if offset > 0: - * # Append buf to output - * output[i] = buf # <<<<<<<<<<<<<< - * nbits += offset - * i += 1 - */ - (__pyx_v_output[__pyx_v_i]) = __pyx_v_buf; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":619 - * # Append buf to output - * output[i] = buf - * nbits += offset # <<<<<<<<<<<<<< - * i += 1 - * #print "output:", binstr(output, nbits) - */ - __pyx_v_nbits += __pyx_v_offset; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":620 - * output[i] = buf - * nbits += offset - * i += 1 # <<<<<<<<<<<<<< - * #print "output:", binstr(output, nbits) - * outstr = PyString_FromStringAndSize(output, nbytes) - */ - __pyx_v_i += 1; - goto __pyx_L12; - } - __pyx_L12:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":622 - * i += 1 - * #print "output:", binstr(output, nbits) - * outstr = PyString_FromStringAndSize(output, nbytes) # <<<<<<<<<<<<<< - * PyMem_Free(output) - * return (outstr, offset) - */ - __pyx_t_2 = PyString_FromStringAndSize(__pyx_v_output, __pyx_v_nbytes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_v_outstr); - __pyx_v_outstr = __pyx_t_2; - __pyx_t_2 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":623 - * #print "output:", binstr(output, nbits) - * outstr = PyString_FromStringAndSize(output, nbytes) - * PyMem_Free(output) # <<<<<<<<<<<<<< - * return (outstr, offset) - * - */ - PyMem_Free(__pyx_v_output); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":624 - * outstr = PyString_FromStringAndSize(output, nbytes) - * PyMem_Free(output) - * return (outstr, offset) # <<<<<<<<<<<<<< - * - * def decode(self, data): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyInt_FromLong(__pyx_v_offset); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v_outstr); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_outstr); - __Pyx_GIVEREF(__pyx_v_outstr); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __pyx_t_2 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("sphinxbase.HuffCode.encode"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_sym); - __Pyx_DECREF(__pyx_v_sss); - __Pyx_DECREF(__pyx_v_outstr); - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_seq); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":626 - * return (outstr, offset) - * - * def decode(self, data): # <<<<<<<<<<<<<< - * """ - * Decode a sequence of symbols from a string, returning the - */ - -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_decode(PyObject *__pyx_v_self, PyObject *__pyx_v_data); /*proto*/ -static char __pyx_doc_10sphinxbase_8HuffCode_decode[] = "\n Decode a sequence of symbols from a string, returning the\n sequence and the bit offset of the next codeword in the last\n byte (i.e. 8 minutes the number of remaining bits)\n "; -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_decode(PyObject *__pyx_v_self, PyObject *__pyx_v_data) { - int __pyx_v_offset; - const char* __pyx_v_dptr; - const char* __pyx_v_strval; - size_t __pyx_v_dlen; - PyObject *__pyx_v_output; - PyObject *__pyx_r = NULL; - Py_ssize_t __pyx_t_1; - const char* __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("decode"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_data); - __pyx_v_output = Py_None; __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":637 - * cdef size_t dlen - * - * dlen = len(data) # <<<<<<<<<<<<<< - * offset = 0 - * dptr = data - */ - __pyx_t_1 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_dlen = __pyx_t_1; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":638 - * - * dlen = len(data) - * offset = 0 # <<<<<<<<<<<<<< - * dptr = data - * output = [] - */ - __pyx_v_offset = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":639 - * dlen = len(data) - * offset = 0 - * dptr = data # <<<<<<<<<<<<<< - * output = [] - * while True: - */ - __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_data); if (unlikely((__pyx_t_2 == (const char*)NULL) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_v_dptr = __pyx_t_2; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":640 - * offset = 0 - * dptr = data - * output = [] # <<<<<<<<<<<<<< - * while True: - * strval = huff_code_decode_str(self.hc, &dptr, &dlen, &offset) - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - __Pyx_DECREF(__pyx_v_output); - __pyx_v_output = ((PyObject *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":641 - * dptr = data - * output = [] - * while True: # <<<<<<<<<<<<<< - * strval = huff_code_decode_str(self.hc, &dptr, &dlen, &offset) - * if strval == NULL: - */ - while (1) { - __pyx_t_4 = 1; - if (!__pyx_t_4) break; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":642 - * output = [] - * while True: - * strval = huff_code_decode_str(self.hc, &dptr, &dlen, &offset) # <<<<<<<<<<<<<< - * if strval == NULL: - * break - */ - __pyx_v_strval = huff_code_decode_str(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc, (&__pyx_v_dptr), (&__pyx_v_dlen), (&__pyx_v_offset)); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":643 - * while True: - * strval = huff_code_decode_str(self.hc, &dptr, &dlen, &offset) - * if strval == NULL: # <<<<<<<<<<<<<< - * break - * output.append(strval) - */ - __pyx_t_4 = (__pyx_v_strval == NULL); - if (__pyx_t_4) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":644 - * strval = huff_code_decode_str(self.hc, &dptr, &dlen, &offset) - * if strval == NULL: - * break # <<<<<<<<<<<<<< - * output.append(strval) - * if dlen > 1: - */ - goto __pyx_L6_break; - goto __pyx_L7; - } - __pyx_L7:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":645 - * if strval == NULL: - * break - * output.append(strval) # <<<<<<<<<<<<<< - * if dlen > 1: - * raise ValueError, "Invalid data at position %d" % (len(data) - dlen) - */ - __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_strval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 645; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_output, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 645; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_L6_break:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":646 - * break - * output.append(strval) - * if dlen > 1: # <<<<<<<<<<<<<< - * raise ValueError, "Invalid data at position %d" % (len(data) - dlen) - * return (output, offset) - */ - __pyx_t_4 = (__pyx_v_dlen > 1); - if (__pyx_t_4) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":647 - * output.append(strval) - * if dlen > 1: - * raise ValueError, "Invalid data at position %d" % (len(data) - dlen) # <<<<<<<<<<<<<< - * return (output, offset) - * - */ - __pyx_t_1 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 647; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = __Pyx_PyInt_FromSize_t((__pyx_t_1 - __pyx_v_dlen)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 647; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_18), __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 647; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_3, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 647; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L8; - } - __pyx_L8:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":648 - * if dlen > 1: - * raise ValueError, "Invalid data at position %d" % (len(data) - dlen) - * return (output, offset) # <<<<<<<<<<<<<< - * - * def attach(self, fh, char *mode): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PyInt_FromLong(__pyx_v_offset); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF(__pyx_v_output); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_output); - __Pyx_GIVEREF(__pyx_v_output); - PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - __pyx_t_3 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("sphinxbase.HuffCode.decode"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_output); - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_data); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":650 - * return (output, offset) - * - * def attach(self, fh, char *mode): # <<<<<<<<<<<<<< - * if not isinstance(fh, file): - * fh = file(fh, mode) - */ - -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_attach(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_attach(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_fh = 0; - char *__pyx_v_mode; - PyObject *__pyx_r = NULL; - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fh,&__pyx_n_s__mode,0}; - __Pyx_RefNannySetupContext("attach"); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); - PyObject* values[2] = {0,0}; - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 0: - values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fh); - if (likely(values[0])) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mode); - if (likely(values[1])) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("attach", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "attach") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - __pyx_v_fh = values[0]; - __pyx_v_mode = __Pyx_PyBytes_AsString(values[1]); if (unlikely((!__pyx_v_mode) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - __pyx_v_fh = PyTuple_GET_ITEM(__pyx_args, 0); - __pyx_v_mode = __Pyx_PyBytes_AsString(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((!__pyx_v_mode) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("attach", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("sphinxbase.HuffCode.attach"); - return NULL; - __pyx_L4_argument_unpacking_done:; - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_fh); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":651 - * - * def attach(self, fh, char *mode): - * if not isinstance(fh, file): # <<<<<<<<<<<<<< - * fh = file(fh, mode) - * self.fh = fh - */ - __pyx_t_1 = PyObject_TypeCheck(__pyx_v_fh, ((PyTypeObject *)((PyObject*)&PyFile_Type))); - __pyx_t_2 = (!__pyx_t_1); - if (__pyx_t_2) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":652 - * def attach(self, fh, char *mode): - * if not isinstance(fh, file): - * fh = file(fh, mode) # <<<<<<<<<<<<<< - * self.fh = fh - * huff_code_attach(self.hc, PyFile_AsFile(fh), mode) - */ - __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_mode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF(__pyx_v_fh); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_fh); - __Pyx_GIVEREF(__pyx_v_fh); - PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_t_3)); - __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); - __pyx_t_3 = 0; - __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)&PyFile_Type)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_v_fh); - __pyx_v_fh = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L6; - } - __pyx_L6:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":653 - * if not isinstance(fh, file): - * fh = file(fh, mode) - * self.fh = fh # <<<<<<<<<<<<<< - * huff_code_attach(self.hc, PyFile_AsFile(fh), mode) - * - */ - __Pyx_INCREF(__pyx_v_fh); - __Pyx_GIVEREF(__pyx_v_fh); - __Pyx_GOTREF(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh); - __Pyx_DECREF(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh); - ((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh = __pyx_v_fh; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":654 - * fh = file(fh, mode) - * self.fh = fh - * huff_code_attach(self.hc, PyFile_AsFile(fh), mode) # <<<<<<<<<<<<<< - * - * def detach(self): - */ - huff_code_attach(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc, PyFile_AsFile(__pyx_v_fh), __pyx_v_mode); - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("sphinxbase.HuffCode.attach"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_fh); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":656 - * huff_code_attach(self.hc, PyFile_AsFile(fh), mode) - * - * def detach(self): # <<<<<<<<<<<<<< - * huff_code_detach(self.hc) - * self.fh = None - */ - -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_detach(PyObject *__pyx_v_self, PyObject *unused); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_detach(PyObject *__pyx_v_self, PyObject *unused) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannySetupContext("detach"); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":657 - * - * def detach(self): - * huff_code_detach(self.hc) # <<<<<<<<<<<<<< - * self.fh = None - * - */ - huff_code_detach(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":658 - * def detach(self): - * huff_code_detach(self.hc) - * self.fh = None # <<<<<<<<<<<<<< - * - * def encode_to_file(self, seq): - */ - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - __Pyx_GOTREF(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh); - __Pyx_DECREF(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh); - ((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh = Py_None; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":660 - * self.fh = None - * - * def encode_to_file(self, seq): # <<<<<<<<<<<<<< - * if self.fh == None: - * raise RuntimeError, "No file is attached" - */ - -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_encode_to_file(PyObject *__pyx_v_self, PyObject *__pyx_v_seq); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_encode_to_file(PyObject *__pyx_v_self, PyObject *__pyx_v_seq) { - PyObject *__pyx_v_sym; - PyObject *__pyx_v_strsym; - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - Py_ssize_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - char *__pyx_t_5; - __Pyx_RefNannySetupContext("encode_to_file"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_v_seq); - __pyx_v_sym = Py_None; __Pyx_INCREF(Py_None); - __pyx_v_strsym = Py_None; __Pyx_INCREF(Py_None); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":661 - * - * def encode_to_file(self, seq): - * if self.fh == None: # <<<<<<<<<<<<<< - * raise RuntimeError, "No file is attached" - * for sym in seq: - */ - __pyx_t_1 = PyObject_RichCompare(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh, Py_None, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":662 - * def encode_to_file(self, seq): - * if self.fh == None: - * raise RuntimeError, "No file is attached" # <<<<<<<<<<<<<< - * for sym in seq: - * strsym = repr(sym) - */ - __Pyx_Raise(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_kp_s_19), 0); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L5; - } - __pyx_L5:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":663 - * if self.fh == None: - * raise RuntimeError, "No file is attached" - * for sym in seq: # <<<<<<<<<<<<<< - * strsym = repr(sym) - * huff_code_encode_str(self.hc, strsym, NULL) - */ - if (PyList_CheckExact(__pyx_v_seq) || PyTuple_CheckExact(__pyx_v_seq)) { - __pyx_t_3 = 0; __pyx_t_1 = __pyx_v_seq; __Pyx_INCREF(__pyx_t_1); - } else { - __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_seq); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - } - for (;;) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break; - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; - } else if (likely(PyTuple_CheckExact(__pyx_t_1))) { - if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; - } else { - __pyx_t_4 = PyIter_Next(__pyx_t_1); - if (!__pyx_t_4) { - if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_DECREF(__pyx_v_sym); - __pyx_v_sym = __pyx_t_4; - __pyx_t_4 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":664 - * raise RuntimeError, "No file is attached" - * for sym in seq: - * strsym = repr(sym) # <<<<<<<<<<<<<< - * huff_code_encode_str(self.hc, strsym, NULL) - * - */ - __pyx_t_4 = PyObject_Repr(__pyx_v_sym); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_v_strsym); - __pyx_v_strsym = __pyx_t_4; - __pyx_t_4 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":665 - * for sym in seq: - * strsym = repr(sym) - * huff_code_encode_str(self.hc, strsym, NULL) # <<<<<<<<<<<<<< - * - * def decode_from_file(self): - */ - __pyx_t_5 = __Pyx_PyBytes_AsString(__pyx_v_strsym); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - huff_code_encode_str(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc, __pyx_t_5, NULL); - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("sphinxbase.HuffCode.encode_to_file"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF(__pyx_v_sym); - __Pyx_DECREF(__pyx_v_strsym); - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_DECREF(__pyx_v_seq); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":667 - * huff_code_encode_str(self.hc, strsym, NULL) - * - * def decode_from_file(self): # <<<<<<<<<<<<<< - * cdef const_char_ptr sym - * if self.fh == None: - */ - -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_decode_from_file(PyObject *__pyx_v_self, PyObject *unused); /*proto*/ -static PyObject *__pyx_pf_10sphinxbase_8HuffCode_decode_from_file(PyObject *__pyx_v_self, PyObject *unused) { - const char* __pyx_v_sym; - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - __Pyx_RefNannySetupContext("decode_from_file"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":669 - * def decode_from_file(self): - * cdef const_char_ptr sym - * if self.fh == None: # <<<<<<<<<<<<<< - * raise RuntimeError, "No file is attached" - * sym = huff_code_decode_str(self.hc, NULL, NULL, NULL) - */ - __pyx_t_1 = PyObject_RichCompare(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh, Py_None, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":670 - * cdef const_char_ptr sym - * if self.fh == None: - * raise RuntimeError, "No file is attached" # <<<<<<<<<<<<<< - * sym = huff_code_decode_str(self.hc, NULL, NULL, NULL) - * if sym == NULL: - */ - __Pyx_Raise(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_kp_s_19), 0); - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L5; - } - __pyx_L5:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":671 - * if self.fh == None: - * raise RuntimeError, "No file is attached" - * sym = huff_code_decode_str(self.hc, NULL, NULL, NULL) # <<<<<<<<<<<<<< - * if sym == NULL: - * return None - */ - __pyx_v_sym = huff_code_decode_str(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc, NULL, NULL, NULL); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":672 - * raise RuntimeError, "No file is attached" - * sym = huff_code_decode_str(self.hc, NULL, NULL, NULL) - * if sym == NULL: # <<<<<<<<<<<<<< - * return None - * else: - */ - __pyx_t_2 = (__pyx_v_sym == NULL); - if (__pyx_t_2) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":673 - * sym = huff_code_decode_str(self.hc, NULL, NULL, NULL) - * if sym == NULL: - * return None # <<<<<<<<<<<<<< - * else: - * return sym - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; - goto __pyx_L0; - goto __pyx_L6; - } - /*else*/ { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":675 - * return None - * else: - * return sym # <<<<<<<<<<<<<< - * - * def __dealloc__(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_sym); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_r = ((PyObject *)__pyx_t_1); - __pyx_t_1 = 0; - goto __pyx_L0; - } - __pyx_L6:; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("sphinxbase.HuffCode.decode_from_file"); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":677 - * return sym - * - * def __dealloc__(self): # <<<<<<<<<<<<<< - * if self.fh: - * self.detach() - */ - -static void __pyx_pf_10sphinxbase_8HuffCode___dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pf_10sphinxbase_8HuffCode___dealloc__(PyObject *__pyx_v_self) { - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - __Pyx_RefNannySetupContext("__dealloc__"); - __Pyx_INCREF((PyObject *)__pyx_v_self); - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":678 - * - * def __dealloc__(self): - * if self.fh: # <<<<<<<<<<<<<< - * self.detach() - * huff_code_free(self.hc) - */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->fh); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__pyx_t_1) { - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":679 - * def __dealloc__(self): - * if self.fh: - * self.detach() # <<<<<<<<<<<<<< - * huff_code_free(self.hc) - */ - __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__detach); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L5; - } - __pyx_L5:; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":680 - * if self.fh: - * self.detach() - * huff_code_free(self.hc) # <<<<<<<<<<<<<< - */ - huff_code_free(((struct __pyx_obj_10sphinxbase_HuffCode *)__pyx_v_self)->hc); - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("sphinxbase.HuffCode.__dealloc__"); - __pyx_L0:; - __Pyx_DECREF((PyObject *)__pyx_v_self); - __Pyx_RefNannyFinishContext(); -} -static struct __pyx_vtabstruct_10sphinxbase_NGramModel __pyx_vtable_10sphinxbase_NGramModel; - -static PyObject *__pyx_tp_new_10sphinxbase_NGramModel(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_10sphinxbase_NGramModel *p; - PyObject *o = (*t->tp_alloc)(t, 0); - if (!o) return 0; - p = ((struct __pyx_obj_10sphinxbase_NGramModel *)o); - p->__pyx_vtab = __pyx_vtabptr_10sphinxbase_NGramModel; - return o; -} - -static void __pyx_tp_dealloc_10sphinxbase_NGramModel(PyObject *o) { - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); - ++Py_REFCNT(o); - __pyx_pf_10sphinxbase_10NGramModel___dealloc__(o); - if (PyErr_Occurred()) PyErr_WriteUnraisable(o); - --Py_REFCNT(o); - PyErr_Restore(etype, eval, etb); - } - (*Py_TYPE(o)->tp_free)(o); -} - -static struct PyMethodDef __pyx_methods_10sphinxbase_NGramModel[] = { - {__Pyx_NAMESTR("set_add"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_set_add, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_set_add)}, - {__Pyx_NAMESTR("set_select"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_set_select, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_set_select)}, - {__Pyx_NAMESTR("apply_weights"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_apply_weights, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_apply_weights)}, - {__Pyx_NAMESTR("get_size"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_get_size, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_get_size)}, - {__Pyx_NAMESTR("get_counts"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_get_counts, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_get_counts)}, - {__Pyx_NAMESTR("unknown_wid"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_unknown_wid, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_unknown_wid)}, - {__Pyx_NAMESTR("zero"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_zero, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_zero)}, - {__Pyx_NAMESTR("wid"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_wid, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_wid)}, - {__Pyx_NAMESTR("word"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_word, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_word)}, - {__Pyx_NAMESTR("score"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_score, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_score)}, - {__Pyx_NAMESTR("prob"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_prob, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_prob)}, - {__Pyx_NAMESTR("mgrams"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_mgrams, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_mgrams)}, - {__Pyx_NAMESTR("ngram"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_ngram, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_10NGramModel_ngram)}, - {__Pyx_NAMESTR("add_word"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_add_word, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("recode"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_recode, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("casefold"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_casefold, METH_O, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pf_10sphinxbase_10NGramModel_write, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, - {0, 0, 0, 0} -}; - -static struct PyMemberDef __pyx_members_10sphinxbase_NGramModel[] = { - {(char *)"lw", T_FLOAT, offsetof(struct __pyx_obj_10sphinxbase_NGramModel, lw), READONLY, 0}, - {(char *)"wip", T_FLOAT, offsetof(struct __pyx_obj_10sphinxbase_NGramModel, wip), READONLY, 0}, - {(char *)"uw", T_FLOAT, offsetof(struct __pyx_obj_10sphinxbase_NGramModel, uw), READONLY, 0}, - {0, 0, 0, 0, 0} -}; - -static PyNumberMethods __pyx_tp_as_number_NGramModel = { - 0, /*nb_add*/ - 0, /*nb_subtract*/ - 0, /*nb_multiply*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_divide*/ - #endif - 0, /*nb_remainder*/ - 0, /*nb_divmod*/ - 0, /*nb_power*/ - 0, /*nb_negative*/ - 0, /*nb_positive*/ - 0, /*nb_absolute*/ - 0, /*nb_nonzero*/ - 0, /*nb_invert*/ - 0, /*nb_lshift*/ - 0, /*nb_rshift*/ - 0, /*nb_and*/ - 0, /*nb_xor*/ - 0, /*nb_or*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_coerce*/ - #endif - 0, /*nb_int*/ - #if PY_MAJOR_VERSION >= 3 - 0, /*reserved*/ - #else - 0, /*nb_long*/ - #endif - 0, /*nb_float*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_oct*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*nb_hex*/ - #endif - 0, /*nb_inplace_add*/ - 0, /*nb_inplace_subtract*/ - 0, /*nb_inplace_multiply*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_inplace_divide*/ - #endif - 0, /*nb_inplace_remainder*/ - 0, /*nb_inplace_power*/ - 0, /*nb_inplace_lshift*/ - 0, /*nb_inplace_rshift*/ - 0, /*nb_inplace_and*/ - 0, /*nb_inplace_xor*/ - 0, /*nb_inplace_or*/ - 0, /*nb_floor_divide*/ - 0, /*nb_true_divide*/ - 0, /*nb_inplace_floor_divide*/ - 0, /*nb_inplace_true_divide*/ - #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX) - 0, /*nb_index*/ - #endif -}; - -static PySequenceMethods __pyx_tp_as_sequence_NGramModel = { - 0, /*sq_length*/ - 0, /*sq_concat*/ - 0, /*sq_repeat*/ - 0, /*sq_item*/ - 0, /*sq_slice*/ - 0, /*sq_ass_item*/ - 0, /*sq_ass_slice*/ - 0, /*sq_contains*/ - 0, /*sq_inplace_concat*/ - 0, /*sq_inplace_repeat*/ -}; - -static PyMappingMethods __pyx_tp_as_mapping_NGramModel = { - 0, /*mp_length*/ - 0, /*mp_subscript*/ - 0, /*mp_ass_subscript*/ -}; - -static PyBufferProcs __pyx_tp_as_buffer_NGramModel = { - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getreadbuffer*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getwritebuffer*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getsegcount*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getcharbuffer*/ - #endif - #if PY_VERSION_HEX >= 0x02060000 - 0, /*bf_getbuffer*/ - #endif - #if PY_VERSION_HEX >= 0x02060000 - 0, /*bf_releasebuffer*/ - #endif -}; - -PyTypeObject __pyx_type_10sphinxbase_NGramModel = { - PyVarObject_HEAD_INIT(0, 0) - __Pyx_NAMESTR("sphinxbase.NGramModel"), /*tp_name*/ - sizeof(struct __pyx_obj_10sphinxbase_NGramModel), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_10sphinxbase_NGramModel, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - 0, /*tp_repr*/ - &__pyx_tp_as_number_NGramModel, /*tp_as_number*/ - &__pyx_tp_as_sequence_NGramModel, /*tp_as_sequence*/ - &__pyx_tp_as_mapping_NGramModel, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - &__pyx_tp_as_buffer_NGramModel, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/ - __Pyx_DOCSTR("\n N-Gram language model class.\n\n This class provides access to N-Gram language models stored on\n disk. These can be in ARPABO text format or Sphinx DMP format.\n Methods are provided for scoring N-Grams based on the model\n and looking up words in the model.\n\n @param file: Path to an N-Gram model file.\n @type file: string\n @param lw: Language weight to apply to model probabilities.\n @type lw: float\n @param wip: Word insertion penalty to add to model probabilities\n @type wip: float\n @param uw: Weight to give unigrams when interpolating with uniform distribution.\n @type uw: float\n "), /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_10sphinxbase_NGramModel, /*tp_methods*/ - __pyx_members_10sphinxbase_NGramModel, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - __pyx_pf_10sphinxbase_10NGramModel___init__, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_10sphinxbase_NGramModel, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - #if PY_VERSION_HEX >= 0x02060000 - 0, /*tp_version_tag*/ - #endif -}; - -static PyObject *__pyx_tp_new_10sphinxbase_LogMath(PyTypeObject *t, PyObject *a, PyObject *k) { - PyObject *o = (*t->tp_alloc)(t, 0); - if (!o) return 0; - return o; -} - -static void __pyx_tp_dealloc_10sphinxbase_LogMath(PyObject *o) { - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); - ++Py_REFCNT(o); - __pyx_pf_10sphinxbase_7LogMath___dealloc__(o); - if (PyErr_Occurred()) PyErr_WriteUnraisable(o); - --Py_REFCNT(o); - PyErr_Restore(etype, eval, etb); - } - (*Py_TYPE(o)->tp_free)(o); -} - -static struct PyMethodDef __pyx_methods_10sphinxbase_LogMath[] = { - {__Pyx_NAMESTR("get_zero"), (PyCFunction)__pyx_pf_10sphinxbase_7LogMath_get_zero, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_7LogMath_get_zero)}, - {__Pyx_NAMESTR("add"), (PyCFunction)__pyx_pf_10sphinxbase_7LogMath_add, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_7LogMath_add)}, - {__Pyx_NAMESTR("log"), (PyCFunction)__pyx_pf_10sphinxbase_7LogMath_log, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_7LogMath_log)}, - {__Pyx_NAMESTR("exp"), (PyCFunction)__pyx_pf_10sphinxbase_7LogMath_exp, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_7LogMath_exp)}, - {__Pyx_NAMESTR("log_to_ln"), (PyCFunction)__pyx_pf_10sphinxbase_7LogMath_log_to_ln, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_7LogMath_log_to_ln)}, - {__Pyx_NAMESTR("log_to_log10"), (PyCFunction)__pyx_pf_10sphinxbase_7LogMath_log_to_log10, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_7LogMath_log_to_log10)}, - {__Pyx_NAMESTR("ln_to_log"), (PyCFunction)__pyx_pf_10sphinxbase_7LogMath_ln_to_log, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_7LogMath_ln_to_log)}, - {__Pyx_NAMESTR("log10_to_log"), (PyCFunction)__pyx_pf_10sphinxbase_7LogMath_log10_to_log, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_7LogMath_log10_to_log)}, - {0, 0, 0, 0} -}; - -static PyNumberMethods __pyx_tp_as_number_LogMath = { - 0, /*nb_add*/ - 0, /*nb_subtract*/ - 0, /*nb_multiply*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_divide*/ - #endif - 0, /*nb_remainder*/ - 0, /*nb_divmod*/ - 0, /*nb_power*/ - 0, /*nb_negative*/ - 0, /*nb_positive*/ - 0, /*nb_absolute*/ - 0, /*nb_nonzero*/ - 0, /*nb_invert*/ - 0, /*nb_lshift*/ - 0, /*nb_rshift*/ - 0, /*nb_and*/ - 0, /*nb_xor*/ - 0, /*nb_or*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_coerce*/ - #endif - 0, /*nb_int*/ - #if PY_MAJOR_VERSION >= 3 - 0, /*reserved*/ - #else - 0, /*nb_long*/ - #endif - 0, /*nb_float*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_oct*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*nb_hex*/ - #endif - 0, /*nb_inplace_add*/ - 0, /*nb_inplace_subtract*/ - 0, /*nb_inplace_multiply*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_inplace_divide*/ - #endif - 0, /*nb_inplace_remainder*/ - 0, /*nb_inplace_power*/ - 0, /*nb_inplace_lshift*/ - 0, /*nb_inplace_rshift*/ - 0, /*nb_inplace_and*/ - 0, /*nb_inplace_xor*/ - 0, /*nb_inplace_or*/ - 0, /*nb_floor_divide*/ - 0, /*nb_true_divide*/ - 0, /*nb_inplace_floor_divide*/ - 0, /*nb_inplace_true_divide*/ - #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX) - 0, /*nb_index*/ - #endif -}; - -static PySequenceMethods __pyx_tp_as_sequence_LogMath = { - 0, /*sq_length*/ - 0, /*sq_concat*/ - 0, /*sq_repeat*/ - 0, /*sq_item*/ - 0, /*sq_slice*/ - 0, /*sq_ass_item*/ - 0, /*sq_ass_slice*/ - 0, /*sq_contains*/ - 0, /*sq_inplace_concat*/ - 0, /*sq_inplace_repeat*/ -}; - -static PyMappingMethods __pyx_tp_as_mapping_LogMath = { - 0, /*mp_length*/ - 0, /*mp_subscript*/ - 0, /*mp_ass_subscript*/ -}; - -static PyBufferProcs __pyx_tp_as_buffer_LogMath = { - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getreadbuffer*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getwritebuffer*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getsegcount*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getcharbuffer*/ - #endif - #if PY_VERSION_HEX >= 0x02060000 - 0, /*bf_getbuffer*/ - #endif - #if PY_VERSION_HEX >= 0x02060000 - 0, /*bf_releasebuffer*/ - #endif -}; - -PyTypeObject __pyx_type_10sphinxbase_LogMath = { - PyVarObject_HEAD_INIT(0, 0) - __Pyx_NAMESTR("sphinxbase.LogMath"), /*tp_name*/ - sizeof(struct __pyx_obj_10sphinxbase_LogMath), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_10sphinxbase_LogMath, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - 0, /*tp_repr*/ - &__pyx_tp_as_number_LogMath, /*tp_as_number*/ - &__pyx_tp_as_sequence_LogMath, /*tp_as_sequence*/ - &__pyx_tp_as_mapping_LogMath, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - &__pyx_tp_as_buffer_LogMath, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/ - __Pyx_DOCSTR("\n Log-space math class.\n \n This class provides fast logarithmic math functions in base\n 1.000+epsilon, useful for fixed point speech recognition.\n\n @param base: The base B in which computation is to be done.\n @type base: float\n @param shift: Log values are shifted right by this many bits.\n @type shift: int\n @param use_table Whether to use an add table or not\n @type use_table: bool\n "), /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_10sphinxbase_LogMath, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - __pyx_pf_10sphinxbase_7LogMath___init__, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_10sphinxbase_LogMath, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - #if PY_VERSION_HEX >= 0x02060000 - 0, /*tp_version_tag*/ - #endif -}; -static struct __pyx_vtabstruct_10sphinxbase_NGramIter __pyx_vtable_10sphinxbase_NGramIter; - -static PyObject *__pyx_tp_new_10sphinxbase_NGramIter(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_10sphinxbase_NGramIter *p; - PyObject *o = (*t->tp_alloc)(t, 0); - if (!o) return 0; - p = ((struct __pyx_obj_10sphinxbase_NGramIter *)o); - p->__pyx_vtab = __pyx_vtabptr_10sphinxbase_NGramIter; - p->lm = ((struct __pyx_obj_10sphinxbase_NGramModel *)Py_None); Py_INCREF(Py_None); - p->words = Py_None; Py_INCREF(Py_None); - if (__pyx_pf_10sphinxbase_9NGramIter___cinit__(o, a, k) < 0) { - Py_DECREF(o); o = 0; - } - return o; -} - -static void __pyx_tp_dealloc_10sphinxbase_NGramIter(PyObject *o) { - struct __pyx_obj_10sphinxbase_NGramIter *p = (struct __pyx_obj_10sphinxbase_NGramIter *)o; - Py_XDECREF(((PyObject *)p->lm)); - Py_XDECREF(p->words); - (*Py_TYPE(o)->tp_free)(o); -} - -static int __pyx_tp_traverse_10sphinxbase_NGramIter(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_10sphinxbase_NGramIter *p = (struct __pyx_obj_10sphinxbase_NGramIter *)o; - if (p->lm) { - e = (*v)(((PyObject*)p->lm), a); if (e) return e; - } - if (p->words) { - e = (*v)(p->words, a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_10sphinxbase_NGramIter(PyObject *o) { - struct __pyx_obj_10sphinxbase_NGramIter *p = (struct __pyx_obj_10sphinxbase_NGramIter *)o; - PyObject* tmp; - tmp = ((PyObject*)p->lm); - p->lm = ((struct __pyx_obj_10sphinxbase_NGramModel *)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - tmp = ((PyObject*)p->words); - p->words = Py_None; Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static struct PyMethodDef __pyx_methods_10sphinxbase_NGramIter[] = { - {__Pyx_NAMESTR("__iter__"), (PyCFunction)__pyx_pf_10sphinxbase_9NGramIter___iter__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pf_10sphinxbase_9NGramIter___next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("successors"), (PyCFunction)__pyx_pf_10sphinxbase_9NGramIter_successors, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_9NGramIter_successors)}, - {0, 0, 0, 0} -}; - -static struct PyMemberDef __pyx_members_10sphinxbase_NGramIter[] = { - {(char *)"log_prob", T_FLOAT, offsetof(struct __pyx_obj_10sphinxbase_NGramIter, log_prob), READONLY, 0}, - {(char *)"log_bowt", T_FLOAT, offsetof(struct __pyx_obj_10sphinxbase_NGramIter, log_bowt), READONLY, 0}, - {(char *)"words", T_OBJECT, offsetof(struct __pyx_obj_10sphinxbase_NGramIter, words), READONLY, 0}, - {0, 0, 0, 0, 0} -}; - -static PyNumberMethods __pyx_tp_as_number_NGramIter = { - 0, /*nb_add*/ - 0, /*nb_subtract*/ - 0, /*nb_multiply*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_divide*/ - #endif - 0, /*nb_remainder*/ - 0, /*nb_divmod*/ - 0, /*nb_power*/ - 0, /*nb_negative*/ - 0, /*nb_positive*/ - 0, /*nb_absolute*/ - 0, /*nb_nonzero*/ - 0, /*nb_invert*/ - 0, /*nb_lshift*/ - 0, /*nb_rshift*/ - 0, /*nb_and*/ - 0, /*nb_xor*/ - 0, /*nb_or*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_coerce*/ - #endif - 0, /*nb_int*/ - #if PY_MAJOR_VERSION >= 3 - 0, /*reserved*/ - #else - 0, /*nb_long*/ - #endif - 0, /*nb_float*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_oct*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*nb_hex*/ - #endif - 0, /*nb_inplace_add*/ - 0, /*nb_inplace_subtract*/ - 0, /*nb_inplace_multiply*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_inplace_divide*/ - #endif - 0, /*nb_inplace_remainder*/ - 0, /*nb_inplace_power*/ - 0, /*nb_inplace_lshift*/ - 0, /*nb_inplace_rshift*/ - 0, /*nb_inplace_and*/ - 0, /*nb_inplace_xor*/ - 0, /*nb_inplace_or*/ - 0, /*nb_floor_divide*/ - 0, /*nb_true_divide*/ - 0, /*nb_inplace_floor_divide*/ - 0, /*nb_inplace_true_divide*/ - #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX) - 0, /*nb_index*/ - #endif -}; - -static PySequenceMethods __pyx_tp_as_sequence_NGramIter = { - 0, /*sq_length*/ - 0, /*sq_concat*/ - 0, /*sq_repeat*/ - 0, /*sq_item*/ - 0, /*sq_slice*/ - 0, /*sq_ass_item*/ - 0, /*sq_ass_slice*/ - 0, /*sq_contains*/ - 0, /*sq_inplace_concat*/ - 0, /*sq_inplace_repeat*/ -}; - -static PyMappingMethods __pyx_tp_as_mapping_NGramIter = { - 0, /*mp_length*/ - 0, /*mp_subscript*/ - 0, /*mp_ass_subscript*/ -}; - -static PyBufferProcs __pyx_tp_as_buffer_NGramIter = { - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getreadbuffer*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getwritebuffer*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getsegcount*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getcharbuffer*/ - #endif - #if PY_VERSION_HEX >= 0x02060000 - 0, /*bf_getbuffer*/ - #endif - #if PY_VERSION_HEX >= 0x02060000 - 0, /*bf_releasebuffer*/ - #endif -}; - -PyTypeObject __pyx_type_10sphinxbase_NGramIter = { - PyVarObject_HEAD_INIT(0, 0) - __Pyx_NAMESTR("sphinxbase.NGramIter"), /*tp_name*/ - sizeof(struct __pyx_obj_10sphinxbase_NGramIter), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_10sphinxbase_NGramIter, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - 0, /*tp_repr*/ - &__pyx_tp_as_number_NGramIter, /*tp_as_number*/ - &__pyx_tp_as_sequence_NGramIter, /*tp_as_sequence*/ - &__pyx_tp_as_mapping_NGramIter, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - &__pyx_tp_as_buffer_NGramIter, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - __Pyx_DOCSTR("\n N-Gram language model iterator class.\n\n This class provides access to the individual N-grams stored in a\n language model.\n "), /*tp_doc*/ - __pyx_tp_traverse_10sphinxbase_NGramIter, /*tp_traverse*/ - __pyx_tp_clear_10sphinxbase_NGramIter, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - __pyx_pf_10sphinxbase_9NGramIter___iter__, /*tp_iter*/ - __pyx_pf_10sphinxbase_9NGramIter___next__, /*tp_iternext*/ - __pyx_methods_10sphinxbase_NGramIter, /*tp_methods*/ - __pyx_members_10sphinxbase_NGramIter, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_10sphinxbase_NGramIter, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - #if PY_VERSION_HEX >= 0x02060000 - 0, /*tp_version_tag*/ - #endif -}; - -static PyObject *__pyx_tp_new_10sphinxbase_HuffCode(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_10sphinxbase_HuffCode *p; - PyObject *o = (*t->tp_alloc)(t, 0); - if (!o) return 0; - p = ((struct __pyx_obj_10sphinxbase_HuffCode *)o); - p->fh = Py_None; Py_INCREF(Py_None); - return o; -} - -static void __pyx_tp_dealloc_10sphinxbase_HuffCode(PyObject *o) { - struct __pyx_obj_10sphinxbase_HuffCode *p = (struct __pyx_obj_10sphinxbase_HuffCode *)o; - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); - ++Py_REFCNT(o); - __pyx_pf_10sphinxbase_8HuffCode___dealloc__(o); - if (PyErr_Occurred()) PyErr_WriteUnraisable(o); - --Py_REFCNT(o); - PyErr_Restore(etype, eval, etb); - } - Py_XDECREF(p->fh); - (*Py_TYPE(o)->tp_free)(o); -} - -static int __pyx_tp_traverse_10sphinxbase_HuffCode(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_10sphinxbase_HuffCode *p = (struct __pyx_obj_10sphinxbase_HuffCode *)o; - if (p->fh) { - e = (*v)(p->fh, a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_10sphinxbase_HuffCode(PyObject *o) { - struct __pyx_obj_10sphinxbase_HuffCode *p = (struct __pyx_obj_10sphinxbase_HuffCode *)o; - PyObject* tmp; - tmp = ((PyObject*)p->fh); - p->fh = Py_None; Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static struct PyMethodDef __pyx_methods_10sphinxbase_HuffCode[] = { - {__Pyx_NAMESTR("read"), (PyCFunction)__pyx_pf_10sphinxbase_8HuffCode_read, METH_O, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pf_10sphinxbase_8HuffCode_write, METH_O, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("dump"), (PyCFunction)__pyx_pf_10sphinxbase_8HuffCode_dump, METH_O, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("encode"), (PyCFunction)__pyx_pf_10sphinxbase_8HuffCode_encode, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_8HuffCode_encode)}, - {__Pyx_NAMESTR("decode"), (PyCFunction)__pyx_pf_10sphinxbase_8HuffCode_decode, METH_O, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_8HuffCode_decode)}, - {__Pyx_NAMESTR("attach"), (PyCFunction)__pyx_pf_10sphinxbase_8HuffCode_attach, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("detach"), (PyCFunction)__pyx_pf_10sphinxbase_8HuffCode_detach, METH_NOARGS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("encode_to_file"), (PyCFunction)__pyx_pf_10sphinxbase_8HuffCode_encode_to_file, METH_O, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("decode_from_file"), (PyCFunction)__pyx_pf_10sphinxbase_8HuffCode_decode_from_file, METH_NOARGS, __Pyx_DOCSTR(0)}, - {0, 0, 0, 0} -}; - -static PyNumberMethods __pyx_tp_as_number_HuffCode = { - 0, /*nb_add*/ - 0, /*nb_subtract*/ - 0, /*nb_multiply*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_divide*/ - #endif - 0, /*nb_remainder*/ - 0, /*nb_divmod*/ - 0, /*nb_power*/ - 0, /*nb_negative*/ - 0, /*nb_positive*/ - 0, /*nb_absolute*/ - 0, /*nb_nonzero*/ - 0, /*nb_invert*/ - 0, /*nb_lshift*/ - 0, /*nb_rshift*/ - 0, /*nb_and*/ - 0, /*nb_xor*/ - 0, /*nb_or*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_coerce*/ - #endif - 0, /*nb_int*/ - #if PY_MAJOR_VERSION >= 3 - 0, /*reserved*/ - #else - 0, /*nb_long*/ - #endif - 0, /*nb_float*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_oct*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*nb_hex*/ - #endif - 0, /*nb_inplace_add*/ - 0, /*nb_inplace_subtract*/ - 0, /*nb_inplace_multiply*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_inplace_divide*/ - #endif - 0, /*nb_inplace_remainder*/ - 0, /*nb_inplace_power*/ - 0, /*nb_inplace_lshift*/ - 0, /*nb_inplace_rshift*/ - 0, /*nb_inplace_and*/ - 0, /*nb_inplace_xor*/ - 0, /*nb_inplace_or*/ - 0, /*nb_floor_divide*/ - 0, /*nb_true_divide*/ - 0, /*nb_inplace_floor_divide*/ - 0, /*nb_inplace_true_divide*/ - #if (PY_MAJOR_VERSION >= 3) || (Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX) - 0, /*nb_index*/ - #endif -}; - -static PySequenceMethods __pyx_tp_as_sequence_HuffCode = { - 0, /*sq_length*/ - 0, /*sq_concat*/ - 0, /*sq_repeat*/ - 0, /*sq_item*/ - 0, /*sq_slice*/ - 0, /*sq_ass_item*/ - 0, /*sq_ass_slice*/ - 0, /*sq_contains*/ - 0, /*sq_inplace_concat*/ - 0, /*sq_inplace_repeat*/ -}; - -static PyMappingMethods __pyx_tp_as_mapping_HuffCode = { - 0, /*mp_length*/ - 0, /*mp_subscript*/ - 0, /*mp_ass_subscript*/ -}; - -static PyBufferProcs __pyx_tp_as_buffer_HuffCode = { - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getreadbuffer*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getwritebuffer*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getsegcount*/ - #endif - #if PY_MAJOR_VERSION < 3 - 0, /*bf_getcharbuffer*/ - #endif - #if PY_VERSION_HEX >= 0x02060000 - 0, /*bf_getbuffer*/ - #endif - #if PY_VERSION_HEX >= 0x02060000 - 0, /*bf_releasebuffer*/ - #endif -}; - -PyTypeObject __pyx_type_10sphinxbase_HuffCode = { - PyVarObject_HEAD_INIT(0, 0) - __Pyx_NAMESTR("sphinxbase.HuffCode"), /*tp_name*/ - sizeof(struct __pyx_obj_10sphinxbase_HuffCode), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_10sphinxbase_HuffCode, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - 0, /*tp_repr*/ - &__pyx_tp_as_number_HuffCode, /*tp_as_number*/ - &__pyx_tp_as_sequence_HuffCode, /*tp_as_sequence*/ - &__pyx_tp_as_mapping_HuffCode, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - &__pyx_tp_as_buffer_HuffCode, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - __Pyx_DOCSTR("\n Huffman coding class.\n\n You can either construct a Huffman code from an alphabet of\n symbols with frequencies, or read one from a file. Either the\n alphabet or infile argument (but not both) must be passed to the\n constructor.\n\n @param alphabet: Alphabet of (symbol, frequency) pairs\n @type alphabet: [(str, int)]\n @param infile: File handle or filename to read from\n @type infile: file | str\n "), /*tp_doc*/ - __pyx_tp_traverse_10sphinxbase_HuffCode, /*tp_traverse*/ - __pyx_tp_clear_10sphinxbase_HuffCode, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_10sphinxbase_HuffCode, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - __pyx_pf_10sphinxbase_8HuffCode___init__, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_10sphinxbase_HuffCode, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - #if PY_VERSION_HEX >= 0x02060000 - 0, /*tp_version_tag*/ - #endif -}; - -static struct PyMethodDef __pyx_methods[] = { - {__Pyx_NAMESTR("binstr"), (PyCFunction)__pyx_pf_10sphinxbase_binstr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_binstr)}, - {__Pyx_NAMESTR("bincw"), (PyCFunction)__pyx_pf_10sphinxbase_bincw, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_10sphinxbase_bincw)}, - {0, 0, 0, 0} -}; - -static void __pyx_init_filenames(void); /*proto*/ - -#if PY_MAJOR_VERSION >= 3 -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - __Pyx_NAMESTR("sphinxbase"), - 0, /* m_doc */ - -1, /* m_size */ - __pyx_methods /* m_methods */, - NULL, /* m_reload */ - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ -}; -#endif - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_10, __pyx_k_10, sizeof(__pyx_k_10), 0, 0, 1, 0}, - {&__pyx_kp_s_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 0, 1, 0}, - {&__pyx_kp_s_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 0, 1, 0}, - {&__pyx_kp_s_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 0, 1, 0}, - {&__pyx_kp_s_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 0, 1, 0}, - {&__pyx_kp_s_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 0, 1, 0}, - {&__pyx_kp_s_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 0, 1, 0}, - {&__pyx_kp_s_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 0, 1, 0}, - {&__pyx_kp_s_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 0, 1, 0}, - {&__pyx_kp_s_9, __pyx_k_9, sizeof(__pyx_k_9), 0, 0, 1, 0}, - {&__pyx_n_s__ARPA, __pyx_k__ARPA, sizeof(__pyx_k__ARPA), 0, 0, 1, 1}, - {&__pyx_n_s__AUTO, __pyx_k__AUTO, sizeof(__pyx_k__AUTO), 0, 0, 1, 1}, - {&__pyx_n_s__DMP, __pyx_k__DMP, sizeof(__pyx_k__DMP), 0, 0, 1, 1}, - {&__pyx_n_s__LOWER, __pyx_k__LOWER, sizeof(__pyx_k__LOWER), 0, 0, 1, 1}, - {&__pyx_n_s__RuntimeError, __pyx_k__RuntimeError, sizeof(__pyx_k__RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s__StopIteration, __pyx_k__StopIteration, sizeof(__pyx_k__StopIteration), 0, 0, 1, 1}, - {&__pyx_n_s__UPPER, __pyx_k__UPPER, sizeof(__pyx_k__UPPER), 0, 0, 1, 1}, - {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1}, - {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1}, - {&__pyx_n_s__a, __pyx_k__a, sizeof(__pyx_k__a), 0, 0, 1, 1}, - {&__pyx_n_s__alphabet, __pyx_k__alphabet, sizeof(__pyx_k__alphabet), 0, 0, 1, 1}, - {&__pyx_n_s__b, __pyx_k__b, sizeof(__pyx_k__b), 0, 0, 1, 1}, - {&__pyx_n_s__base, __pyx_k__base, sizeof(__pyx_k__base), 0, 0, 1, 1}, - {&__pyx_n_s__cw, __pyx_k__cw, sizeof(__pyx_k__cw), 0, 0, 1, 1}, - {&__pyx_n_s__detach, __pyx_k__detach, sizeof(__pyx_k__detach), 0, 0, 1, 1}, - {&__pyx_n_s__enumerate, __pyx_k__enumerate, sizeof(__pyx_k__enumerate), 0, 0, 1, 1}, - {&__pyx_n_s__fh, __pyx_k__fh, sizeof(__pyx_k__fh), 0, 0, 1, 1}, - {&__pyx_n_s__file, __pyx_k__file, sizeof(__pyx_k__file), 0, 0, 1, 1}, - {&__pyx_n_s__file_name, __pyx_k__file_name, sizeof(__pyx_k__file_name), 0, 0, 1, 1}, - {&__pyx_n_s__first_item, __pyx_k__first_item, sizeof(__pyx_k__first_item), 0, 0, 1, 1}, - {&__pyx_n_s__format, __pyx_k__format, sizeof(__pyx_k__format), 0, 0, 1, 1}, - {&__pyx_n_s__frum, __pyx_k__frum, sizeof(__pyx_k__frum), 0, 0, 1, 1}, - {&__pyx_n_s__hc, __pyx_k__hc, sizeof(__pyx_k__hc), 0, 0, 1, 1}, - {&__pyx_n_s__infile, __pyx_k__infile, sizeof(__pyx_k__infile), 0, 0, 1, 1}, - {&__pyx_n_s__itor, __pyx_k__itor, sizeof(__pyx_k__itor), 0, 0, 1, 1}, - {&__pyx_n_s__lm, __pyx_k__lm, sizeof(__pyx_k__lm), 0, 0, 1, 1}, - {&__pyx_n_s__lmath, __pyx_k__lmath, sizeof(__pyx_k__lmath), 0, 0, 1, 1}, - {&__pyx_n_s__lmctl, __pyx_k__lmctl, sizeof(__pyx_k__lmctl), 0, 0, 1, 1}, - {&__pyx_n_s__log_bowt, __pyx_k__log_bowt, sizeof(__pyx_k__log_bowt), 0, 0, 1, 1}, - {&__pyx_n_s__log_prob, __pyx_k__log_prob, sizeof(__pyx_k__log_prob), 0, 0, 1, 1}, - {&__pyx_n_s__lw, __pyx_k__lw, sizeof(__pyx_k__lw), 0, 0, 1, 1}, - {&__pyx_n_s__m, __pyx_k__m, sizeof(__pyx_k__m), 0, 0, 1, 1}, - {&__pyx_n_s__min, __pyx_k__min, sizeof(__pyx_k__min), 0, 0, 1, 1}, - {&__pyx_n_s__mode, __pyx_k__mode, sizeof(__pyx_k__mode), 0, 0, 1, 1}, - {&__pyx_n_s__name, __pyx_k__name, sizeof(__pyx_k__name), 0, 0, 1, 1}, - {&__pyx_n_s__nbits, __pyx_k__nbits, sizeof(__pyx_k__nbits), 0, 0, 1, 1}, - {&__pyx_n_s__ord, __pyx_k__ord, sizeof(__pyx_k__ord), 0, 0, 1, 1}, - {&__pyx_n_s__range, __pyx_k__range, sizeof(__pyx_k__range), 0, 0, 1, 1}, - {&__pyx_n_s__rb, __pyx_k__rb, sizeof(__pyx_k__rb), 0, 0, 1, 1}, - {&__pyx_n_s__read, __pyx_k__read, sizeof(__pyx_k__read), 0, 0, 1, 1}, - {&__pyx_n_s__reuse_widmap, __pyx_k__reuse_widmap, sizeof(__pyx_k__reuse_widmap), 0, 0, 1, 1}, - {&__pyx_n_s__set_iter, __pyx_k__set_iter, sizeof(__pyx_k__set_iter), 0, 0, 1, 1}, - {&__pyx_n_s__shift, __pyx_k__shift, sizeof(__pyx_k__shift), 0, 0, 1, 1}, - {&__pyx_n_s__too, __pyx_k__too, sizeof(__pyx_k__too), 0, 0, 1, 1}, - {&__pyx_n_s__use_table, __pyx_k__use_table, sizeof(__pyx_k__use_table), 0, 0, 1, 1}, - {&__pyx_n_s__uw, __pyx_k__uw, sizeof(__pyx_k__uw), 0, 0, 1, 1}, - {&__pyx_n_s__val, __pyx_k__val, sizeof(__pyx_k__val), 0, 0, 1, 1}, - {&__pyx_n_s__w, __pyx_k__w, sizeof(__pyx_k__w), 0, 0, 1, 1}, - {&__pyx_n_s__wb, __pyx_k__wb, sizeof(__pyx_k__wb), 0, 0, 1, 1}, - {&__pyx_n_s__weight, __pyx_k__weight, sizeof(__pyx_k__weight), 0, 0, 1, 1}, - {&__pyx_n_s__wip, __pyx_k__wip, sizeof(__pyx_k__wip), 0, 0, 1, 1}, - {&__pyx_n_s__word, __pyx_k__word, sizeof(__pyx_k__word), 0, 0, 1, 1}, - {&__pyx_n_s__words, __pyx_k__words, sizeof(__pyx_k__words), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_builtin_StopIteration = __Pyx_GetName(__pyx_b, __pyx_n_s__StopIteration); if (!__pyx_builtin_StopIteration) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_builtin_ord = __Pyx_GetName(__pyx_b, __pyx_n_s__ord); if (!__pyx_builtin_ord) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_builtin_min = __Pyx_GetName(__pyx_b, __pyx_n_s__min); if (!__pyx_builtin_min) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_builtin_enumerate = __Pyx_GetName(__pyx_b, __pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_n_s__RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - return 0; - __pyx_L1_error:; - return -1; -} - -#if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initsphinxbase(void); /*proto*/ -PyMODINIT_FUNC initsphinxbase(void) -#else -PyMODINIT_FUNC PyInit_sphinxbase(void); /*proto*/ -PyMODINIT_FUNC PyInit_sphinxbase(void) -#endif -{ - PyObject *__pyx_t_1 = NULL; - #if CYTHON_REFNANNY - void* __pyx_refnanny = NULL; - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); - if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); - } - __pyx_refnanny = __Pyx_RefNanny->SetupContext("PyMODINIT_FUNC PyInit_sphinxbase(void)", __LINE__, __FILE__); - #endif - __pyx_init_filenames(); - __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #if PY_MAJOR_VERSION < 3 - __pyx_empty_bytes = PyString_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #else - __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ - PyEval_InitThreads(); - #endif - #endif - /*--- Module creation code ---*/ - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4(__Pyx_NAMESTR("sphinxbase"), __pyx_methods, 0, 0, PYTHON_API_VERSION); - #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - #endif - if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - #if PY_MAJOR_VERSION < 3 - Py_INCREF(__pyx_m); - #endif - __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); - if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - /*--- Initialize various global constants etc. ---*/ - if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__pyx_module_is_main_sphinxbase) { - if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - } - /*--- Builtin init code ---*/ - if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - /*--- Global init code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - __pyx_vtabptr_10sphinxbase_NGramModel = &__pyx_vtable_10sphinxbase_NGramModel; - #if PY_MAJOR_VERSION >= 3 - __pyx_vtable_10sphinxbase_NGramModel.set_lm = (PyObject *(*)(struct __pyx_obj_10sphinxbase_NGramModel *, ngram_model_t *))__pyx_f_10sphinxbase_10NGramModel_set_lm; - __pyx_vtable_10sphinxbase_NGramModel.set_lmath = (PyObject *(*)(struct __pyx_obj_10sphinxbase_NGramModel *, logmath_t *))__pyx_f_10sphinxbase_10NGramModel_set_lmath; - #else - *(void(**)(void))&__pyx_vtable_10sphinxbase_NGramModel.set_lm = (void(*)(void))__pyx_f_10sphinxbase_10NGramModel_set_lm; - *(void(**)(void))&__pyx_vtable_10sphinxbase_NGramModel.set_lmath = (void(*)(void))__pyx_f_10sphinxbase_10NGramModel_set_lmath; - #endif - if (PyType_Ready(&__pyx_type_10sphinxbase_NGramModel) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetVtable(__pyx_type_10sphinxbase_NGramModel.tp_dict, __pyx_vtabptr_10sphinxbase_NGramModel) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetAttrString(__pyx_m, "NGramModel", (PyObject *)&__pyx_type_10sphinxbase_NGramModel) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_ptype_10sphinxbase_NGramModel = &__pyx_type_10sphinxbase_NGramModel; - if (PyType_Ready(&__pyx_type_10sphinxbase_LogMath) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetAttrString(__pyx_m, "LogMath", (PyObject *)&__pyx_type_10sphinxbase_LogMath) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_ptype_10sphinxbase_LogMath = &__pyx_type_10sphinxbase_LogMath; - __pyx_vtabptr_10sphinxbase_NGramIter = &__pyx_vtable_10sphinxbase_NGramIter; - #if PY_MAJOR_VERSION >= 3 - __pyx_vtable_10sphinxbase_NGramIter.set_iter = (PyObject *(*)(struct __pyx_obj_10sphinxbase_NGramIter *, ngram_iter_t *))__pyx_f_10sphinxbase_9NGramIter_set_iter; - #else - *(void(**)(void))&__pyx_vtable_10sphinxbase_NGramIter.set_iter = (void(*)(void))__pyx_f_10sphinxbase_9NGramIter_set_iter; - #endif - if (PyType_Ready(&__pyx_type_10sphinxbase_NGramIter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetVtable(__pyx_type_10sphinxbase_NGramIter.tp_dict, __pyx_vtabptr_10sphinxbase_NGramIter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetAttrString(__pyx_m, "NGramIter", (PyObject *)&__pyx_type_10sphinxbase_NGramIter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_ptype_10sphinxbase_NGramIter = &__pyx_type_10sphinxbase_NGramIter; - if (PyType_Ready(&__pyx_type_10sphinxbase_HuffCode) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetAttrString(__pyx_m, "HuffCode", (PyObject *)&__pyx_type_10sphinxbase_HuffCode) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_ptype_10sphinxbase_HuffCode = &__pyx_type_10sphinxbase_HuffCode; - /*--- Type import code ---*/ - /*--- Function import code ---*/ - /*--- Execution code ---*/ - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":24 - * @type use_table: bool - * """ - * def __init__(self, base=1.0001, shift=0, use_table=1): # <<<<<<<<<<<<<< - * self.lmath = logmath_init(base, shift, use_table) - * - */ - __pyx_t_1 = PyFloat_FromDouble(1.0001); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_1 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":122 - * - * # Unfortunately, Cython doesn't actually export enums to Python... - * AUTO = NGRAM_AUTO # <<<<<<<<<<<<<< - * ARPA = NGRAM_ARPA - * DMP = NGRAM_DMP - */ - __pyx_t_1 = PyInt_FromLong(NGRAM_AUTO); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s__AUTO, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":123 - * # Unfortunately, Cython doesn't actually export enums to Python... - * AUTO = NGRAM_AUTO - * ARPA = NGRAM_ARPA # <<<<<<<<<<<<<< - * DMP = NGRAM_DMP - * UPPER = NGRAM_UPPER - */ - __pyx_t_1 = PyInt_FromLong(NGRAM_ARPA); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ARPA, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":124 - * AUTO = NGRAM_AUTO - * ARPA = NGRAM_ARPA - * DMP = NGRAM_DMP # <<<<<<<<<<<<<< - * UPPER = NGRAM_UPPER - * LOWER = NGRAM_LOWER - */ - __pyx_t_1 = PyInt_FromLong(NGRAM_DMP); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DMP, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":125 - * ARPA = NGRAM_ARPA - * DMP = NGRAM_DMP - * UPPER = NGRAM_UPPER # <<<<<<<<<<<<<< - * LOWER = NGRAM_LOWER - * - */ - __pyx_t_1 = PyInt_FromLong(NGRAM_UPPER); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UPPER, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":126 - * DMP = NGRAM_DMP - * UPPER = NGRAM_UPPER - * LOWER = NGRAM_LOWER # <<<<<<<<<<<<<< - * - * cdef class NGramModel: - */ - __pyx_t_1 = PyInt_FromLong(NGRAM_LOWER); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyObject_SetAttr(__pyx_m, __pyx_n_s__LOWER, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":146 - * @type uw: float - * """ - * def __init__(self, file=None, lw=1.0, wip=1.0, uw=1.0, lmctl=None): # <<<<<<<<<<<<<< - * self.lmath = logmath_init(1.0001, 0, 0) - * if file: - */ - __pyx_t_1 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_2 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_3 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_4 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":200 - * ngram_model_free(self.lm) - * - * def apply_weights(self, lw=1.0, wip=1.0, uw=1.0): # <<<<<<<<<<<<<< - * """ - * Change the language model weights applied in L{score}. - */ - __pyx_t_1 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_5 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_6 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_7 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":393 - * return itor - * - * def add_word(self, word, weight=1.0): # <<<<<<<<<<<<<< - * return ngram_model_add_word(self.lm, word, weight) - * - */ - __pyx_t_1 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_8 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pyx":408 - * raise ValueError, "Casefolding failed" - * - * def write(self, file_name, format=NGRAM_AUTO): # <<<<<<<<<<<<<< - * cdef int rv - * rv = ngram_model_write(self.lm, file_name, format) - */ - __pyx_t_1 = PyInt_FromLong(NGRAM_AUTO); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_11 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - - /* "/home/nshmyrev/projects/cmusphinx-dist/sphinxbase/python/sphinxbase.pxd":1 - * # Copyright (c) 2008 Carnegie Mellon University. All rights # <<<<<<<<<<<<<< - * # reserved. - * # - */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - if (__pyx_m) { - __Pyx_AddTraceback("init sphinxbase"); - Py_DECREF(__pyx_m); __pyx_m = 0; - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init sphinxbase"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if PY_MAJOR_VERSION < 3 - return; - #else - return __pyx_m; - #endif -} - -static const char *__pyx_filenames[] = { - "sphinxbase.pyx", -}; - -/* Runtime support code */ - -static void __pyx_init_filenames(void) { - __pyx_f = __pyx_filenames; -} - -static void __Pyx_RaiseDoubleKeywordsError( - const char* func_name, - PyObject* kw_name) -{ - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION >= 3 - "%s() got multiple values for keyword argument '%U'", func_name, kw_name); - #else - "%s() got multiple values for keyword argument '%s'", func_name, - PyString_AS_STRING(kw_name)); - #endif -} - -static void __Pyx_RaiseArgtupleInvalid( - const char* func_name, - int exact, - Py_ssize_t num_min, - Py_ssize_t num_max, - Py_ssize_t num_found) -{ - Py_ssize_t num_expected; - const char *number, *more_or_less; - - if (num_found < num_min) { - num_expected = num_min; - more_or_less = "at least"; - } else { - num_expected = num_max; - more_or_less = "at most"; - } - if (exact) { - more_or_less = "exactly"; - } - number = (num_expected == 1) ? "" : "s"; - PyErr_Format(PyExc_TypeError, - #if PY_VERSION_HEX < 0x02050000 - "%s() takes %s %d positional argument%s (%d given)", - #else - "%s() takes %s %zd positional argument%s (%zd given)", - #endif - func_name, more_or_less, num_expected, number, num_found); -} - -static int __Pyx_ParseOptionalKeywords( - PyObject *kwds, - PyObject **argnames[], - PyObject *kwds2, - PyObject *values[], - Py_ssize_t num_pos_args, - const char* function_name) -{ - PyObject *key = 0, *value = 0; - Py_ssize_t pos = 0; - PyObject*** name; - PyObject*** first_kw_arg = argnames + num_pos_args; - - while (PyDict_Next(kwds, &pos, &key, &value)) { - name = first_kw_arg; - while (*name && (**name != key)) name++; - if (*name) { - values[name-argnames] = value; - } else { - #if PY_MAJOR_VERSION < 3 - if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) { - #else - if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key))) { - #endif - goto invalid_keyword_type; - } else { - for (name = first_kw_arg; *name; name++) { - #if PY_MAJOR_VERSION >= 3 - if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) && - PyUnicode_Compare(**name, key) == 0) break; - #else - if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) && - _PyString_Eq(**name, key)) break; - #endif - } - if (*name) { - values[name-argnames] = value; - } else { - /* unexpected keyword found */ - for (name=argnames; name != first_kw_arg; name++) { - if (**name == key) goto arg_passed_twice; - #if PY_MAJOR_VERSION >= 3 - if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) && - PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice; - #else - if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) && - _PyString_Eq(**name, key)) goto arg_passed_twice; - #endif - } - if (kwds2) { - if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; - } else { - goto invalid_keyword; - } - } - } - } - } - return 0; -arg_passed_twice: - __Pyx_RaiseDoubleKeywordsError(function_name, **name); - goto bad; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%s() keywords must be strings", function_name); - goto bad; -invalid_keyword: - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION < 3 - "%s() got an unexpected keyword argument '%s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif -bad: - return -1; -} - -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { - PyErr_Format(PyExc_ValueError, - #if PY_VERSION_HEX < 0x02050000 - "need more than %d value%s to unpack", (int)index, - #else - "need more than %zd value%s to unpack", index, - #endif - (index == 1) ? "" : "s"); -} - -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(void) { - PyErr_SetString(PyExc_ValueError, "too many values to unpack"); -} - -static PyObject *__Pyx_UnpackItem(PyObject *iter, Py_ssize_t index) { - PyObject *item; - if (!(item = PyIter_Next(iter))) { - if (!PyErr_Occurred()) { - __Pyx_RaiseNeedMoreValuesError(index); - } - } - return item; -} - -static int __Pyx_EndUnpack(PyObject *iter) { - PyObject *item; - if ((item = PyIter_Next(iter))) { - Py_DECREF(item); - __Pyx_RaiseTooManyValuesError(); - return -1; - } - else if (!PyErr_Occurred()) - return 0; - else - return -1; -} - - -static CYTHON_INLINE long __Pyx_div_long(long a, long b) { - long q = a / b; - long r = a - q*b; - q -= ((r != 0) & ((r ^ b) < 0)); - return q; -} - -static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact) -{ - if (!type) { - PyErr_Format(PyExc_SystemError, "Missing type object"); - return 0; - } - if (none_allowed && obj == Py_None) return 1; - else if (exact) { - if (Py_TYPE(obj) == type) return 1; - } - else { - if (PyObject_TypeCheck(obj, type)) return 1; - } - PyErr_Format(PyExc_TypeError, - "Argument '%s' has incorrect type (expected %s, got %s)", - name, type->tp_name, Py_TYPE(obj)->tp_name); - return 0; -} - -static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { - PyObject *result; - result = PyObject_GetAttr(dict, name); - if (!result) - PyErr_SetObject(PyExc_NameError, name); - return result; -} - -static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) { - PyObject *tmp_type, *tmp_value, *tmp_tb; - PyThreadState *tstate = PyThreadState_GET(); - - tmp_type = tstate->curexc_type; - tmp_value = tstate->curexc_value; - tmp_tb = tstate->curexc_traceback; - tstate->curexc_type = type; - tstate->curexc_value = value; - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -} - -static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) { - PyThreadState *tstate = PyThreadState_GET(); - *type = tstate->curexc_type; - *value = tstate->curexc_value; - *tb = tstate->curexc_traceback; - - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; -} - - -#if PY_MAJOR_VERSION < 3 -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) { - Py_XINCREF(type); - Py_XINCREF(value); - Py_XINCREF(tb); - /* First, check the traceback argument, replacing None with NULL. */ - if (tb == Py_None) { - Py_DECREF(tb); - tb = 0; - } - else if (tb != NULL && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto raise_error; - } - /* Next, replace a missing value with None */ - if (value == NULL) { - value = Py_None; - Py_INCREF(value); - } - #if PY_VERSION_HEX < 0x02050000 - if (!PyClass_Check(type)) - #else - if (!PyType_Check(type)) - #endif - { - /* Raising an instance. The value should be a dummy. */ - if (value != Py_None) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto raise_error; - } - /* Normalize to raise , */ - Py_DECREF(value); - value = type; - #if PY_VERSION_HEX < 0x02050000 - if (PyInstance_Check(type)) { - type = (PyObject*) ((PyInstanceObject*)type)->in_class; - Py_INCREF(type); - } - else { - type = 0; - PyErr_SetString(PyExc_TypeError, - "raise: exception must be an old-style class or instance"); - goto raise_error; - } - #else - type = (PyObject*) Py_TYPE(type); - Py_INCREF(type); - if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto raise_error; - } - #endif - } - - __Pyx_ErrRestore(type, value, tb); - return; -raise_error: - Py_XDECREF(value); - Py_XDECREF(type); - Py_XDECREF(tb); - return; -} - -#else /* Python 3+ */ - -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) { - if (tb == Py_None) { - tb = 0; - } else if (tb && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto bad; - } - if (value == Py_None) - value = 0; - - if (PyExceptionInstance_Check(type)) { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto bad; - } - value = type; - type = (PyObject*) Py_TYPE(value); - } else if (!PyExceptionClass_Check(type)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto bad; - } - - PyErr_SetObject(type, value); - - if (tb) { - PyThreadState *tstate = PyThreadState_GET(); - PyObject* tmp_tb = tstate->curexc_traceback; - if (tb != tmp_tb) { - Py_INCREF(tb); - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_tb); - } - } - -bad: - return; -} -#endif - -static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) { - const unsigned char neg_one = (unsigned char)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(unsigned char) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(unsigned char)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to unsigned char" : - "value too large to convert to unsigned char"); - } - return (unsigned char)-1; - } - return (unsigned char)val; - } - return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x); -} - -static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) { - const unsigned short neg_one = (unsigned short)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(unsigned short) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(unsigned short)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to unsigned short" : - "value too large to convert to unsigned short"); - } - return (unsigned short)-1; - } - return (unsigned short)val; - } - return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x); -} - -static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) { - const unsigned int neg_one = (unsigned int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(unsigned int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(unsigned int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to unsigned int" : - "value too large to convert to unsigned int"); - } - return (unsigned int)-1; - } - return (unsigned int)val; - } - return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x); -} - -static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) { - const char neg_one = (char)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(char) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(char)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to char" : - "value too large to convert to char"); - } - return (char)-1; - } - return (char)val; - } - return (char)__Pyx_PyInt_AsLong(x); -} - -static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) { - const short neg_one = (short)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(short) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(short)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to short" : - "value too large to convert to short"); - } - return (short)-1; - } - return (short)val; - } - return (short)__Pyx_PyInt_AsLong(x); -} - -static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) { - const int neg_one = (int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to int" : - "value too large to convert to int"); - } - return (int)-1; - } - return (int)val; - } - return (int)__Pyx_PyInt_AsLong(x); -} - -static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) { - const signed char neg_one = (signed char)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(signed char) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(signed char)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to signed char" : - "value too large to convert to signed char"); - } - return (signed char)-1; - } - return (signed char)val; - } - return (signed char)__Pyx_PyInt_AsSignedLong(x); -} - -static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) { - const signed short neg_one = (signed short)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(signed short) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(signed short)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to signed short" : - "value too large to convert to signed short"); - } - return (signed short)-1; - } - return (signed short)val; - } - return (signed short)__Pyx_PyInt_AsSignedLong(x); -} - -static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) { - const signed int neg_one = (signed int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(signed int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(signed int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to signed int" : - "value too large to convert to signed int"); - } - return (signed int)-1; - } - return (signed int)val; - } - return (signed int)__Pyx_PyInt_AsSignedLong(x); -} - -static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) { - const unsigned long neg_one = (unsigned long)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned long"); - return (unsigned long)-1; - } - return (unsigned long)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned long"); - return (unsigned long)-1; - } - return PyLong_AsUnsignedLong(x); - } else { - return PyLong_AsLong(x); - } - } else { - unsigned long val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (unsigned long)-1; - val = __Pyx_PyInt_AsUnsignedLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) { - const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned PY_LONG_LONG"); - return (unsigned PY_LONG_LONG)-1; - } - return (unsigned PY_LONG_LONG)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned PY_LONG_LONG"); - return (unsigned PY_LONG_LONG)-1; - } - return PyLong_AsUnsignedLongLong(x); - } else { - return PyLong_AsLongLong(x); - } - } else { - unsigned PY_LONG_LONG val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (unsigned PY_LONG_LONG)-1; - val = __Pyx_PyInt_AsUnsignedLongLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) { - const long neg_one = (long)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long)-1; - } - return (long)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long)-1; - } - return PyLong_AsUnsignedLong(x); - } else { - return PyLong_AsLong(x); - } - } else { - long val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (long)-1; - val = __Pyx_PyInt_AsLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) { - const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to PY_LONG_LONG"); - return (PY_LONG_LONG)-1; - } - return (PY_LONG_LONG)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to PY_LONG_LONG"); - return (PY_LONG_LONG)-1; - } - return PyLong_AsUnsignedLongLong(x); - } else { - return PyLong_AsLongLong(x); - } - } else { - PY_LONG_LONG val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (PY_LONG_LONG)-1; - val = __Pyx_PyInt_AsLongLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) { - const signed long neg_one = (signed long)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed long"); - return (signed long)-1; - } - return (signed long)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed long"); - return (signed long)-1; - } - return PyLong_AsUnsignedLong(x); - } else { - return PyLong_AsLong(x); - } - } else { - signed long val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (signed long)-1; - val = __Pyx_PyInt_AsSignedLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) { - const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_VERSION_HEX < 0x03000000 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed PY_LONG_LONG"); - return (signed PY_LONG_LONG)-1; - } - return (signed PY_LONG_LONG)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed PY_LONG_LONG"); - return (signed PY_LONG_LONG)-1; - } - return PyLong_AsUnsignedLongLong(x); - } else { - return PyLong_AsLongLong(x); - } - } else { - signed PY_LONG_LONG val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (signed PY_LONG_LONG)-1; - val = __Pyx_PyInt_AsSignedLongLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static int __Pyx_SetVtable(PyObject *dict, void *vtable) { -#if PY_VERSION_HEX < 0x03010000 - PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); -#else - PyObject *ob = PyCapsule_New(vtable, 0, 0); -#endif - if (!ob) - goto bad; - if (PyDict_SetItemString(dict, "__pyx_vtable__", ob) < 0) - goto bad; - Py_DECREF(ob); - return 0; -bad: - Py_XDECREF(ob); - return -1; -} - -#include "compile.h" -#include "frameobject.h" -#include "traceback.h" - -static void __Pyx_AddTraceback(const char *funcname) { - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - PyObject *py_globals = 0; - PyCodeObject *py_code = 0; - PyFrameObject *py_frame = 0; - - #if PY_MAJOR_VERSION < 3 - py_srcfile = PyString_FromString(__pyx_filename); - #else - py_srcfile = PyUnicode_FromString(__pyx_filename); - #endif - if (!py_srcfile) goto bad; - if (__pyx_clineno) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno); - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno); - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); - #endif - } - if (!py_funcname) goto bad; - py_globals = PyModule_GetDict(__pyx_m); - if (!py_globals) goto bad; - py_code = PyCode_New( - 0, /*int argcount,*/ - #if PY_MAJOR_VERSION >= 3 - 0, /*int kwonlyargcount,*/ - #endif - 0, /*int nlocals,*/ - 0, /*int stacksize,*/ - 0, /*int flags,*/ - __pyx_empty_bytes, /*PyObject *code,*/ - __pyx_empty_tuple, /*PyObject *consts,*/ - __pyx_empty_tuple, /*PyObject *names,*/ - __pyx_empty_tuple, /*PyObject *varnames,*/ - __pyx_empty_tuple, /*PyObject *freevars,*/ - __pyx_empty_tuple, /*PyObject *cellvars,*/ - py_srcfile, /*PyObject *filename,*/ - py_funcname, /*PyObject *name,*/ - __pyx_lineno, /*int firstlineno,*/ - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - if (!py_code) goto bad; - py_frame = PyFrame_New( - PyThreadState_GET(), /*PyThreadState *tstate,*/ - py_code, /*PyCodeObject *code,*/ - py_globals, /*PyObject *globals,*/ - 0 /*PyObject *locals*/ - ); - if (!py_frame) goto bad; - py_frame->f_lineno = __pyx_lineno; - PyTraceBack_Here(py_frame); -bad: - Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); - Py_XDECREF(py_code); - Py_XDECREF(py_frame); -} - -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { - while (t->p) { - #if PY_MAJOR_VERSION < 3 - if (t->is_unicode) { - *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); - } else if (t->intern) { - *t->p = PyString_InternFromString(t->s); - } else { - *t->p = PyString_FromStringAndSize(t->s, t->n - 1); - } - #else /* Python 3+ has unicode identifiers */ - if (t->is_unicode | t->is_str) { - if (t->intern) { - *t->p = PyUnicode_InternFromString(t->s); - } else if (t->encoding) { - *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); - } else { - *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); - } - } else { - *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); - } - #endif - if (!*t->p) - return -1; - ++t; - } - return 0; -} - -/* Type Conversion Functions */ - -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { - if (x == Py_True) return 1; - else if ((x == Py_False) | (x == Py_None)) return 0; - else return PyObject_IsTrue(x); -} - -static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) { - PyNumberMethods *m; - const char *name = NULL; - PyObject *res = NULL; -#if PY_VERSION_HEX < 0x03000000 - if (PyInt_Check(x) || PyLong_Check(x)) -#else - if (PyLong_Check(x)) -#endif - return Py_INCREF(x), x; - m = Py_TYPE(x)->tp_as_number; -#if PY_VERSION_HEX < 0x03000000 - if (m && m->nb_int) { - name = "int"; - res = PyNumber_Int(x); - } - else if (m && m->nb_long) { - name = "long"; - res = PyNumber_Long(x); - } -#else - if (m && m->nb_int) { - name = "int"; - res = PyNumber_Long(x); - } -#endif - if (res) { -#if PY_VERSION_HEX < 0x03000000 - if (!PyInt_Check(res) && !PyLong_Check(res)) { -#else - if (!PyLong_Check(res)) { -#endif - PyErr_Format(PyExc_TypeError, - "__%s__ returned non-%s (type %.200s)", - name, name, Py_TYPE(res)->tp_name); - Py_DECREF(res); - return NULL; - } - } - else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "an integer is required"); - } - return res; -} - -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_ssize_t ival; - PyObject* x = PyNumber_Index(b); - if (!x) return -1; - ival = PyInt_AsSsize_t(x); - Py_DECREF(x); - return ival; -} - -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { -#if PY_VERSION_HEX < 0x02050000 - if (ival <= LONG_MAX) - return PyInt_FromLong((long)ival); - else { - unsigned char *bytes = (unsigned char *) &ival; - int one = 1; int little = (int)*(unsigned char*)&one; - return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0); - } -#else - return PyInt_FromSize_t(ival); -#endif -} - -static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) { - unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x); - if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) { - return (size_t)-1; - } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) { - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to size_t"); - return (size_t)-1; - } - return (size_t)val; -} - - -#endif /* Py_PYTHON_H */ diff -Nru sphinxbase-0.8/python/sphinxbase.pxd sphinxbase-0.8+5prealpha/python/sphinxbase.pxd --- sphinxbase-0.8/python/sphinxbase.pxd 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/python/sphinxbase.pxd 1970-01-01 00:00:00.000000000 +0000 @@ -1,173 +0,0 @@ -# Copyright (c) 2008 Carnegie Mellon University. All rights -# reserved. -# -# You may copy, modify, and distribute this code under the same terms -# as PocketSphinx or Python, at your convenience, as long as this -# notice is not removed. -# -# Author: David Huggins-Daines - -# C declarations -ctypedef float float32 -ctypedef int int32 -ctypedef double float64 - -cdef extern from *: - ctypedef int* const_int_ptr "const int*" - ctypedef int32* const_int32_ptr "const int32*" - ctypedef char* const_char_ptr "const char*" - -# Get Python stuff to access stdio -cdef extern from "Python.h": - ctypedef struct FILE - FILE *PyFile_AsFile(object) - void *PyMem_Malloc(size_t n) - void PyMem_Free(void *p) - object PyString_FromStringAndSize(char *v, Py_ssize_t len) - -cdef extern from "sphinxbase/logmath.h": - ctypedef struct logmath_t - logmath_t *logmath_init(float64 base, int shift, int use_table) - logmath_t *logmath_retain(logmath_t *lmath) - int logmath_free(logmath_t *lmath) - - int logmath_log(logmath_t *lmath, float64 p) - float64 logmath_exp(logmath_t *lmath, int p) - - int logmath_ln_to_log(logmath_t *lmath, float64 p) - float64 logmath_log_to_ln(logmath_t *lmath, int p) - - int logmath_log10_to_log(logmath_t *lmath, float64 p) - float64 logmath_log_to_log10(logmath_t *lmath, int p) - - int logmath_add(logmath_t *lmath, int p, int q) - - int logmath_get_zero(logmath_t *lmath) - -cdef extern from "sphinxbase/cmd_ln.h": - ctypedef struct cmd_ln_t - ctypedef struct arg_t - cmd_ln_t *cmd_ln_parse_r(cmd_ln_t *inout_cmdln, arg_t * defn, - int argc, char **argv, int strict) - void cmd_ln_free_r(cmd_ln_t *cmdln) - float32 cmd_ln_float32_r(cmd_ln_t *cmdln, char *key) - int32 cmd_ln_int32_r(cmd_ln_t *cmdln, char *key) - int cmd_ln_boolean_r(cmd_ln_t *cmdln, char *key) - char *cmd_ln_str_r(cmd_ln_t *cmdln, char *key) - -cdef extern from "sphinxbase/ckd_alloc.h": - void *ckd_calloc(int n, int size) - char *ckd_salloc(char *str) - void ckd_free(void *ptr) - -cdef extern from "sphinxbase/fsg_model.h": - ctypedef struct fsg_model_t - -cdef extern from "sphinxbase/ngram_model.h": - ctypedef struct ngram_model_t - ctypedef enum ngram_file_type_t: - NGRAM_AUTO - NGRAM_ARPA - NGRAM_DMP - NGRAM_DMP32 - ctypedef enum ngram_case_t: - NGRAM_UPPER - NGRAM_LOWER - ngram_model_t *ngram_model_read(cmd_ln_t *config, - char *file_name, - ngram_file_type_t file_type, - logmath_t *lmath) - ngram_model_t *ngram_model_set_read(cmd_ln_t *config, - char *lmctlfile, - logmath_t *lmath) - ngram_model_t *ngram_model_retain(ngram_model_t *model) - int ngram_model_free(ngram_model_t *model) - - int ngram_model_recode(ngram_model_t *model, char *frum, char *too) - int ngram_model_casefold(ngram_model_t *model, ngram_case_t kase) - int ngram_model_write(ngram_model_t *model, char *file_name, - ngram_file_type_t format) - - int ngram_model_apply_weights(ngram_model_t *model, - float32 lw, float32 wip, float32 uw) - float32 ngram_model_get_weights(ngram_model_t *model, int32 *out_log_wip, - int32 *out_log_uw) - - int32 ngram_wid(ngram_model_t *model, char *word) - char *ngram_word(ngram_model_t *model, int32 wid) - int32 ngram_unknown_wid(ngram_model_t *model) - int32 ngram_zero(ngram_model_t *model) - - int32 ngram_ng_score(ngram_model_t *model, int32 wid, - int32 *history, int32 n_hist, int32 *n_used) - int32 ngram_ng_prob(ngram_model_t *model, int32 wid, - int32 *history, int32 n_hist, int32 *n_used) - - int32 ngram_model_add_word(ngram_model_t *model, - char *word, float32 weight) - - int32 ngram_model_get_size(ngram_model_t *model) - const_int32_ptr ngram_model_get_counts(ngram_model_t *model) - ngram_model_t *ngram_model_set_select(ngram_model_t *set, - char *name) - ngram_model_t *ngram_model_set_add(ngram_model_t *set, - ngram_model_t *model, - char *name, - float32 weight, - int reuse_widmap) - ctypedef struct ngram_iter_t - ngram_iter_t *ngram_ng_iter(ngram_model_t *model, int32 wid, - int32 *history, int32 n_hist) - ngram_iter_t *ngram_model_mgrams(ngram_model_t *model, int m) - int32 *ngram_iter_get(ngram_iter_t *itor, - int32 *out_score, - int32 *out_bowt) - ngram_iter_t *ngram_iter_next(ngram_iter_t *itor) - ngram_iter_t *ngram_iter_successors(ngram_iter_t *itor) - void ngram_iter_free(ngram_iter_t *itor) - -cdef extern from "sphinxbase/huff_code.h": - ctypedef struct huff_code_t - huff_code_t *huff_code_build_int(int *values, int *frequencies, int nvals) - huff_code_t *huff_code_build_str(char **values, int *frequencies, int nvals) - huff_code_t *huff_code_read(FILE *infh) except NULL - int huff_code_write(huff_code_t *hc, FILE *outfh) except -1 - int huff_code_dump(huff_code_t *hc, FILE *dumpfh) except -1 - huff_code_t *huff_code_retain(huff_code_t *hc) - int huff_code_free(huff_code_t *hc) - FILE *huff_code_attach(huff_code_t *hc, FILE *fh, char *mode) - FILE *huff_code_detach(huff_code_t *hc) - int huff_code_encode_int(huff_code_t *hc, int sym, unsigned int *outcw) - int huff_code_encode_str(huff_code_t *hc, char *sym, unsigned int *outcw) - int huff_code_decode_int(huff_code_t *hc, int *outval, - char** inout_data, size_t *inout_dlen, - int *inout_offset) - const_char_ptr huff_code_decode_str(huff_code_t *hc, - char** inout_data, size_t *inout_dlen, - int *inout_offset) - -# Extension classes -cdef class NGramModel: - cdef ngram_model_t *lm - cdef logmath_t *lmath - cdef readonly float lw, wip, uw - - cdef set_lm(NGramModel self, ngram_model_t *lm) - cdef set_lmath(NGramModel self, logmath_t *lmath) - -cdef class LogMath: - cdef logmath_t *lmath - -cdef class NGramIter: - cdef NGramModel lm - cdef ngram_iter_t *itor - cdef int first_item - cdef int m - cdef readonly float log_prob, log_bowt - cdef readonly object words - - cdef set_iter(NGramIter self, ngram_iter_t *itor) - -cdef class HuffCode: - cdef huff_code_t *hc - cdef object fh diff -Nru sphinxbase-0.8/python/sphinxbase.pyx sphinxbase-0.8+5prealpha/python/sphinxbase.pyx --- sphinxbase-0.8/python/sphinxbase.pyx 2012-12-05 14:05:44.000000000 +0000 +++ sphinxbase-0.8+5prealpha/python/sphinxbase.pyx 1970-01-01 00:00:00.000000000 +0000 @@ -1,680 +0,0 @@ -# Copyright (c) 2008 Carnegie Mellon University. All rights -# reserved. -# -# You may copy, modify, and distribute this code under the same terms -# as PocketSphinx or Python, at your convenience, as long as this -# notice is not removed. -# -# Author: David Huggins-Daines - -cdef class LogMath: - """ - Log-space math class. - - This class provides fast logarithmic math functions in base - 1.000+epsilon, useful for fixed point speech recognition. - - @param base: The base B in which computation is to be done. - @type base: float - @param shift: Log values are shifted right by this many bits. - @type shift: int - @param use_table Whether to use an add table or not - @type use_table: bool - """ - def __init__(self, base=1.0001, shift=0, use_table=1): - self.lmath = logmath_init(base, shift, use_table) - - def __dealloc__(self): - """ - Destructor for LogMath class. - """ - logmath_free(self.lmath) - - def get_zero(self): - """ - Get the log-zero value. - - @return: Smallest number representable by this object. - @rtype: int - """ - return logmath_get_zero(self.lmath) - - def add(self, a, b): - """ - Add two numbers in log-space. - - @param a: Logarithm A. - @type a: int - @param b: Logarithm B. - @type b: int - @return: log(exp(a)+exp(b)) - @rtype: int - """ - return logmath_add(self.lmath, a, b) - - def log(self, x): - """ - Return log-value of a number. - - @param x: Number (in linear space) - @type x: float - @return: Log-value of x. - @rtype: int - """ - return logmath_log(self.lmath, x) - - def exp(self, x): - """ - Return linear of a log-value - - @param x: Logarithm X (in this object's base) - @type x: int - @return: Exponent (linear value) of X. - @rtype: float - """ - return logmath_exp(self.lmath, x) - - def log_to_ln(self, x): - """ - Return natural logarithm of a log-value. - - @param x: Logarithm X (in this object's base) - @type x: int - @return: Natural log equivalent of x. - @rtype: float - """ - return logmath_log_to_ln(self.lmath, x) - - def log_to_log10(self, x): - """ - Return logarithm in base 10 of a log-value. - - @param x: Logarithm X (in this object's base) - @type x: int - @return: log10 equivalent of x. - @rtype: float - """ - return logmath_log_to_log10(self.lmath, x) - - def ln_to_log(self, x): - """ - Return log-value of a natural logarithm. - - @param x: Logarithm X (in base e) - @type x: float - @return: Log-value equivalent of x. - @rtype: int - """ - return logmath_ln_to_log(self.lmath, x) - - def log10_to_log(self, x): - """ - Return log-value of a base 10 logarithm. - - @param x: Logarithm X (in base 10) - @type x: float - @return: Log-value equivalent of x. - @rtype: int - """ - return logmath_log10_to_log(self.lmath, x) - -# Unfortunately, Cython doesn't actually export enums to Python... -AUTO = NGRAM_AUTO -ARPA = NGRAM_ARPA -DMP = NGRAM_DMP -UPPER = NGRAM_UPPER -LOWER = NGRAM_LOWER - -cdef class NGramModel: - """ - N-Gram language model class. - - This class provides access to N-Gram language models stored on - disk. These can be in ARPABO text format or Sphinx DMP format. - Methods are provided for scoring N-Grams based on the model - and looking up words in the model. - - @param file: Path to an N-Gram model file. - @type file: string - @param lw: Language weight to apply to model probabilities. - @type lw: float - @param wip: Word insertion penalty to add to model probabilities - @type wip: float - @param uw: Weight to give unigrams when interpolating with uniform distribution. - @type uw: float - """ - def __init__(self, file=None, lw=1.0, wip=1.0, uw=1.0, lmctl=None): - self.lmath = logmath_init(1.0001, 0, 0) - if file: - self.lm = ngram_model_read(NULL, file, NGRAM_AUTO, self.lmath) - ngram_model_apply_weights(self.lm, lw, wip, uw) - elif lmctl: - self.lm = ngram_model_set_read(NULL, lmctl, self.lmath) - else: - self.lm = NULL - self.lw = lw - self.wip = wip - self.uw = uw - - cdef set_lm(NGramModel self, ngram_model_t *lm): - ngram_model_retain(lm) - ngram_model_free(self.lm) - self.lm = lm - - cdef set_lmath(NGramModel self, logmath_t *lmath): - logmath_retain(lmath) - logmath_free(self.lmath) - self.lmath = lmath - - def set_add(NGramModel self, NGramModel lm, name, float weight=1.0, int reuse_widmap=0): - """ - Adds an language model to the lmset - - @param lm: language model to add - @type lm: sphinxbase.NGramModel - @param name: name of the language model - @type name: string - @param weight: language model weight (defaults to 1.0) - @type weight: float - @param reuse_widmap: whether to reuse the word ip mapping - @type reuse_widmap: int - """ - ngram_model_set_add(self.lm, lm.lm, name, weight, reuse_widmap) - - def set_select(NGramModel self, name): - """ - Instructs the LMSet to switch to the LM specified by the name param - - @param name: the name associated with the language model - @type name: string - """ - ngram_model_set_select(self.lm, name) - - def __dealloc__(self): - """ - Destructor for N-Gram model class. - """ - logmath_free(self.lmath) - ngram_model_free(self.lm) - - def apply_weights(self, lw=1.0, wip=1.0, uw=1.0): - """ - Change the language model weights applied in L{score}. - - @param lw: Language weight to apply to model probabilities. - @type lw: float - @param wip: Word insertion penalty to add to model probabilities - @type wip: float - @param uw: Weight to give unigrams when interpolating with uniform distribution. - @type uw: float - """ - self.lw = lw - self.wip = wip - self.uw = uw - ngram_model_apply_weights(self.lm, lw, wip, uw) - - def get_size(self): - """ - Get the order of this model (i.e. the 'N' in 'N-gram') - - @return: Order of this model - @rtype: int - """ - return ngram_model_get_size(self.lm) - - def get_counts(self): - """ - Get the counts of each size of N-gram. - - @return: Counts of 1, 2, ..., N grams - @rtype: tuple(int) - """ - cdef const_int_ptr counts - counts = ngram_model_get_counts(self.lm) - return tuple([counts[i] for i in range(ngram_model_get_size(self.lm))]) - - def unknown_wid(self): - """ - Get the ID for an unknown word. - - In the case of a closed-vocabulary language model this will be -1. - - @return: Word ID for the unknown word. - @rtype: int - """ - return ngram_unknown_wid(self.lm) - - def zero(self): - """ - Get the log-zero value for this language model. - - @return: Log value used to represent zero. - @rtype: float - """ - return logmath_log_to_ln(self.lmath, ngram_zero(self.lm)) - - def wid(self, word): - """ - Get the internal ID for a word. - - @param word: Word in question - @type word: string - @return: Internal ID for word, or -1 if not present - @rtype: int - """ - return ngram_wid(self.lm, word) - - def word(self, wid): - """ - Get the string corresponding to an internal word ID. - - @param word: Word ID in question - @type word: int - @return: String for word, or None if not present - @rtype: string - """ - return ngram_word(self.lm, wid) - - # Note that this and prob() are almost exactly the same... - def score(self, word, *args): - """ - Get the score for an N-Gram. - - The argument list consists of the history words (as - null-terminated strings) of the N-Gram, in reverse order. - Therefore, if you wanted to get the N-Gram score for 'a whole - joy', you would call:: - - score, n_used = model.score('joy', 'whole', 'a') - - This function returns a tuple, consisting of the score and the - number of words used in computing it (i.e. the effective size - of the N-Gram). The score is returned in logarithmic form, - using base e. - - If one of the words is not in the LM's vocabulary, the result - will depend on whether this is an open or closed vocabulary - language model. For an open-vocabulary model, unknown words - are all mapped to the unigram which has a non-zero - probability and also participates in higher-order N-Grams. - Therefore, you will get a score of some sort in this case. - - For a closed-vocabulary model, unknown words are impossible - and thus have zero probability. Therefore, if C{word} is - unknown, this function will return a 'zero' log-probability, - i.e. a large negative number. - """ - cdef int32 wid - cdef int32 *hist - cdef int32 n_hist - cdef int32 n_used - cdef int32 score - wid = ngram_wid(self.lm, word) - n_hist = len(args) - hist = ckd_calloc(n_hist, sizeof(int32)) - for i from 0 <= i < n_hist: - spam = args[i] - hist[i] = ngram_wid(self.lm, spam) - score = ngram_ng_score(self.lm, wid, hist, n_hist, &n_used) - ckd_free(hist) - return logmath_log_to_ln(self.lmath, score), n_used - - def prob(self, word, *args): - """ - Get the log-probability for an N-Gram. - - This works effectively the same way as L{score}, except that - any weights (language weight, insertion penalty) applied to - the language model are ignored and the 'raw' probability value - is returned. - """ - cdef int32 wid - cdef int32 *hist - cdef int32 n_hist - cdef int32 n_used - cdef int32 score - wid = ngram_wid(self.lm, word) - n_hist = len(args) - hist = ckd_calloc(n_hist, sizeof(int32)) - for i from 0 <= i < n_hist: - spam = args[i] - hist[i] = ngram_wid(self.lm, spam) - score = ngram_ng_prob(self.lm, wid, hist, n_hist, &n_used) - ckd_free(hist) - return logmath_log_to_ln(self.lmath, score), n_used - - def mgrams(self, m): - """ - Return an iterator over each N-gram of order m+1. - - This allows Pythonic iteration over the parameters of an - N-Gram model. - - @param m: Order of requested N-grams minus one - @type m: int - @return: Iterator over M+1-grams - @rtype: NGramIter - """ - cdef NGramIter itor - itor = NGramIter(self, m) - itor.itor = ngram_model_mgrams(self.lm, m) - return itor - - def ngram(self, word, *args): - """ - Return an N-Gram iterator pointing to a given N-gram. - - This allows you to iterate over its successors among other - things. - - @param word: Head word of requested N-gram. - @type word: str - @param args: History words of requested N-gram - @type args: str - @return: Iterator pointing to N-gram. - """ - cdef NGramIter itor - cdef int32 wid - cdef int32 *hist - cdef int32 n_hist - wid = ngram_wid(self.lm, word) - n_hist = len(args) - hist = ckd_calloc(n_hist, sizeof(int32)) - for i from 0 <= i < n_hist: - spam = args[i] - hist[i] = ngram_wid(self.lm, spam) - itor = NGramIter(self, n_hist) - # We do set_iter here, because we're returning something the - # user is immediately going to do stuff with. - itor.set_iter(ngram_ng_iter(self.lm, wid, hist, n_hist)) - ckd_free(hist) - return itor - - def add_word(self, word, weight=1.0): - return ngram_model_add_word(self.lm, word, weight) - - def recode(self, frum, too): - cdef int rv - rv = ngram_model_recode(self.lm, frum, too) - if rv == -1: - raise ValueError, "Recode from %s to %s failed" % (frum, too) - - def casefold(self, kase): - cdef int rv - rv = ngram_model_casefold(self.lm, kase) - if rv == -1: - raise ValueError, "Casefolding failed" - - def write(self, file_name, format=NGRAM_AUTO): - cdef int rv - rv = ngram_model_write(self.lm, file_name, format) - if rv == -1: - raise ValueError, "Write %s to file failed" % file_name - -cdef class NGramIter: - """ - N-Gram language model iterator class. - - This class provides access to the individual N-grams stored in a - language model. - """ - def __cinit__(self, NGramModel lm, int m): - self.itor = NULL - self.lm = lm - self.m = m - self.first_item = True - - def __iter__(self): - self.first_item = True - return self - - cdef set_iter(NGramIter self, ngram_iter_t *itor): - cdef int32 prob, bowt - cdef const_int32_ptr wids - - if itor == NULL: - raise StopIteration - self.itor = itor - if self.first_item: - self.first_item = False - wids = ngram_iter_get(itor, &prob, &bowt) - self.log_prob = logmath_log_to_ln(self.lm.lmath, prob) - self.log_bowt = logmath_log_to_ln(self.lm.lmath, bowt) - self.words = [] - for i in range(0, self.m+1): - self.words.append(ngram_word(self.lm.lm, wids[i])) - - def __next__(self): - if self.first_item: - self.set_iter(self.itor) - else: - self.set_iter(ngram_iter_next(self.itor)) - return self - - def successors(self): - """ - Get an iterator over N+1-gram successors of an N-gram. - """ - cdef NGramIter itor - itor = NGramIter(self.lm, self.m + 1) - itor.itor = ngram_iter_successors(self.itor) - return itor - -def binstr(str val, int nbits): - """ - Silly function to format a string as a binary string - """ - cdef int i - outstr = "" - for c in val: - cval = ord(c) - cnb = min(8, nbits) - for i in range(0,cnb): - outstr += "%d" % ((cval & (1 << 7-i)) != 0) - nbits -= 8 - return outstr - -def bincw(int cw, int nbits): - """ - Silly function to format an int as a binary string - """ - cdef int i - outstr = "" - for i in range(0,nbits): - outstr = "%s" % (cw & 1) + outstr - cw >>= 1 - return outstr - -# FIXME: Due to the style of IO in huff_code API this part of the code -# is not compatible with Python 3. This needs to be converted to -# the new Python io module. - -cdef class HuffCode: - """ - Huffman coding class. - - You can either construct a Huffman code from an alphabet of - symbols with frequencies, or read one from a file. Either the - alphabet or infile argument (but not both) must be passed to the - constructor. - - @param alphabet: Alphabet of (symbol, frequency) pairs - @type alphabet: [(str, int)] - @param infile: File handle or filename to read from - @type infile: file | str - """ - def __init__(self, alphabet=None, infile=None): - cdef char **symbols - cdef int *frequencies - cdef int nsym - - if alphabet == None and infile == None: - raise ValueError, "One of alphabet or infile must be passed to constructor" - if alphabet != None and infile != None: - raise ValueError, "Only one of alphabet or infile must be passed to constructor" - - self.fh = None - if infile: - self.read(infile) - return - - nsym = len(alphabet) - frequencies = ckd_calloc(nsym, sizeof(int)) - symbols = ckd_calloc(nsym, sizeof(char *)) - # Need to create separate Python objects for each string, - # otherwise we get random duplicates of the codewords... - bogus = [] - for i, spam in enumerate(alphabet): - sym, freq = spam - bogus.append(repr(sym)) - frequencies[i] = freq - symbols[i] = bogus[-1] - self.hc = huff_code_build_str(symbols, frequencies, nsym) - ckd_free(frequencies) - ckd_free(symbols) - - def read(self, infile): - if not isinstance(infile, file): - infile = file(infile, "rb") - huff_code_free(self.hc) - self.hc = huff_code_read(PyFile_AsFile(infile)) - - def write(self, outfile): - if not isinstance(outfile, file): - outfile = file(outfile, "wb") - huff_code_write(self.hc, PyFile_AsFile(outfile)) - - def dump(self, outfile): - if not isinstance(outfile, file): - outfile = file(outfile, "w") - huff_code_dump(self.hc, PyFile_AsFile(outfile)) - - def encode(self, seq): - """ - Encode a sequence of symbols to a byte array, returning that - array and the bit offset of the next codeword in the last - byte (i.e. 8 minutes the number of extra zero bits) - """ - cdef unsigned int cw - cdef int cwlen, nbits = 0, nbytes, offset, i - cdef unsigned char buf = 0 - cdef char *output - - for sym in seq: - sss = repr(sym) - cwlen = huff_code_encode_str(self.hc, sss, &cw) - nbits += cwlen - nbytes = int((nbits + 7) / 8) - offset = 0 - output = PyMem_Malloc(nbytes + 1) - output[nbytes] = 0 - i = 0 - nbits = 0 - for sym in seq: - sss = repr(sym) - cwlen = huff_code_encode_str(self.hc, sss, &cw) - #print "sym: %s cw: %s buf: %s output: %s" \ - # % (sym, bincw(cw, cwlen), bincw(buf >> (8-offset), offset), - # binstr(output, nbits)) - #print "cwlen",cwlen - # Do one byte at a time while full bytes are available - while cwlen >= 8: - # Fill low bits of buf with high bits of cw - buf |= (cw >> (cwlen - (8 - offset))) & ((1 << (8 - offset)) - 1) - # Append buf to output - output[i] = buf - i += 1 - nbits += 8 - # Fill high bits of buf with low bits of this byte - cwlen -= 8 - buf = (cw >> cwlen) & ((1 << offset) - 1) - buf <<= (8-offset) - #print "cwlen",cwlen - # Now cwlen will be less than 8, but it might still be - # more than the available space in buf. - if cwlen >= (8 - offset): - # Fill low bits of buf with (8-offset) highest bits of cw - buf |= (cw >> (cwlen - (8 - offset))) & ((1 << (8 - offset)) - 1) - # Append buf to output - output[i] = buf - i += 1 - nbits += 8 - # cwlen is down to the remaining bits - cwlen -= (8 - offset) - # Offset is now zero since we just completed and emptied buf - offset = 0 - # buf is zero, because we just emptied it without putting stuff in - buf = 0 - #print "cwlen",cwlen - # Any remaining bits will be taken care of below (we hope) - # Add remaining high bits of cw to low bits of buf - #print "cwlen",cwlen - buf |= ((cw & ((1 << cwlen) - 1)) << (8 - offset - cwlen)) - offset += cwlen - #print "after buf: %s output: %s" \ - # % (bincw(buf >> (8-offset), offset), binstr(output, nbits)) - if offset > 0: - # Append buf to output - output[i] = buf - nbits += offset - i += 1 - #print "output:", binstr(output, nbits) - outstr = PyString_FromStringAndSize(output, nbytes) - PyMem_Free(output) - return (outstr, offset) - - def decode(self, data): - """ - Decode a sequence of symbols from a string, returning the - sequence and the bit offset of the next codeword in the last - byte (i.e. 8 minutes the number of remaining bits) - """ - cdef int offset - cdef const_char_ptr dptr - cdef const_char_ptr strval - cdef size_t dlen - - dlen = len(data) - offset = 0 - dptr = data - output = [] - while True: - strval = huff_code_decode_str(self.hc, &dptr, &dlen, &offset) - if strval == NULL: - break - output.append(strval) - if dlen > 1: - raise ValueError, "Invalid data at position %d" % (len(data) - dlen) - return (output, offset) - - def attach(self, fh, char *mode): - if not isinstance(fh, file): - fh = file(fh, mode) - self.fh = fh - huff_code_attach(self.hc, PyFile_AsFile(fh), mode) - - def detach(self): - huff_code_detach(self.hc) - self.fh = None - - def encode_to_file(self, seq): - if self.fh == None: - raise RuntimeError, "No file is attached" - for sym in seq: - strsym = repr(sym) - huff_code_encode_str(self.hc, strsym, NULL) - - def decode_from_file(self): - cdef const_char_ptr sym - if self.fh == None: - raise RuntimeError, "No file is attached" - sym = huff_code_decode_str(self.hc, NULL, NULL, NULL) - if sym == NULL: - return None - else: - return sym - - def __dealloc__(self): - if self.fh: - self.detach() - huff_code_free(self.hc) diff -Nru sphinxbase-0.8/README sphinxbase-0.8+5prealpha/README --- sphinxbase-0.8/README 2012-12-05 14:04:48.000000000 +0000 +++ sphinxbase-0.8+5prealpha/README 2015-07-05 00:26:49.000000000 +0000 @@ -1,87 +1,97 @@ CMU Sphinx common libraries ---------------------------- +=============================================================================== -This package contains the basic libraries shared by the CMU Sphinx -trainer and all the Sphinx decoders (Sphinx-II, Sphinx-III, and -PocketSphinx), as well as some common utilities for manipulating -acoustic feature and audio files. +This package contains the basic libraries shared by the CMU Sphinx trainer and +all the Sphinx decoders (Sphinx-II, Sphinx-III, and PocketSphinx), as well as +some common utilities for manipulating acoustic feature and audio files. -Installation Guide: - -This section contains installation for various platforms +**Please see the LICENSE file for terms of use.** Linux/Unix installation -^^^^^^^^^^^^^^^^^^^^^^^ +------------------------------------------------------------------------------- sphinxbase is used by other modules. The convention requires the physical layout of the code looks like this: - package/ - sphinxbase/ + + . + ├── package/ + └── shinxbase/ So if you get the file from a distribution, you might want to rename -sphinxbase-X.X to sphinxbase by typing +sphinxbase-X.X to sphinxbase by typing: - > mv sphinxbase-X.X sphinxbase (where X.X being the version of sphinxbase) + $ mv sphinxbase- sphinxbase ( being the version of sphinxbase) -If you downloaded directly from the Subversion repository, you need to -create the "configure" file by typing +If you downloaded directly from the Subversion repository, you need to create +the "configure" file by typing: - > ./autogen.sh + $ ./autogen.sh If you downloaded a release version or if you have already run -"autogen.sh", you can build simply by running +"autogen.sh", you can build simply by running: + + $ ./configure + $ make + +If you are compiling for a platform without floating-point arithmetic, you +should instead use: + + $ ./configure --enable-fixed --without-lapack + $ make - > ./configure - > make +You can also check the validity of the package by typing: -If you are compiling for a platform without floating-point arithmetic, -you should instead use: + $ make check - > ./configure --enable-fixed --without-lapack - > make +... and then install it with (might require permissions): -You can also check the validity of the package by typing + $ make install - > make check +This defaults to installing SphinxBase under /usr/local. You may customize it +by running ./configure with an argument, as in: -and then install it with + $ ./configure --prefix=/my/own/installation/directory - > make install +XCode Installation (for iPhone) +------------------------------------------------------------------------------- -This defaults to installing SphinxBase under /usr/local. You may -customize it by running ./configure with an argument, as in +Sphinxbase uses the standard unix autogen system, you can build sphinxbase with +automake. You just need to pass correct configure arguments, set compiler path, +set sysroot and other options. After you build the code you need to import +dylib file into your project and you also need to configure includes for your +project to find sphinxbase headers. - >./configure --prefix=/my/own/installation/directory +You also will have to create a recorder to capture audio with CoreAudio and +feed it into the recognizer. -XCode Installation (for iPhone): -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Sphinxbase uses the standard unix autogen system, and there's a script -included, 'build_for_iphone.sh' that will setup configure to create -binaries that are XCode friendly. +For details see http://github.com/cmusphinx/pocketsphinx-ios-demo -1) ./autogen.sh -2) ./build_for_iphone.sh simulator -3) ./build_for_iphone.sh device +If you want to quickly start with Pocketsphinx, try OpenEars toolkit which +includes Pocketsphinx http://www.politepix.com/openears/ -Then in XCode, open your project info, and for 'All Configurations', and -set: -'Header Search Paths' = "$(HOME)$(SDK_DIR)/include/sphinxbase" -'Library Search Paths' = "$(HOME)$(SDK_DIR)/lib" -'Other Linker Flags' = "-lsphinxbase" +Android installation +------------------------------------------------------------------------------- + +See http://github.com/cmusphinx/pocketsphinx-android-demo. + + +MS Windows installation: +------------------------------------------------------------------------------- -Windows Installation: -^^^^^^^^^^^^^^^^^^^^^ To compile sphinxbase in Visual Studio 2010 Express (or newer): -1, unzip the file. -2, rename the directory to sphinxbase -3, go into the sphinxbase folder and click sphinxbase.sln -4, in the menu, choose Build -> Rebuild All -> Batch Build -> Build - -In Step 4, make sure all projects are selected, preferably the -"Release" version of each. - -If you are using cygwin, the installation procedure is very similar to -the Unix installation. However, there is no audio driver support in -cygwin currently so one can only use the batch mode recognzier. + 1. Unzip the file. + 2. Rename the directory to sphinxbase + 3. Go into the sphinxbase folder and click sphinxbase.sln + 4. In the menu, choose Build -> Rebuild All -> Batch Build -> Build + +In Step 4, make sure all projects are selected, preferably the "Release" +version of each. + +If you are using cygwin, the installation procedure is very similar to the Unix +installation. However, there is no audio driver support in cygwin currently so +one can only use the batch mode recognzier. + +If you want to install Python packages on Windows, take a look at +http://github.com/cmusphinx/pocketsphinx-python. diff -Nru sphinxbase-0.8/sphinxbase.pc.in sphinxbase-0.8+5prealpha/sphinxbase.pc.in --- sphinxbase-0.8/sphinxbase.pc.in 2012-12-05 14:04:48.000000000 +0000 +++ sphinxbase-0.8+5prealpha/sphinxbase.pc.in 2015-05-02 18:01:34.000000000 +0000 @@ -2,12 +2,13 @@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ -libs="@LIBS@ @SAMPLERATE_LIBS@ @SNDFILE_LIBS@" +libs="@LIBS@" Name: SphinxBase Description: Shared components for Sphinx speech recognition Version: @VERSION@ URL: http://www.cmusphinx.org/ -Libs: -L${libdir} -lsphinxbase -lsphinxad @LIBS@ @SAMPLERATE_LIBS@ @SNDFILE_LIBS@ +Libs: -L${libdir} -lsphinxbase -lsphinxad @LIBS@ Libs.private: ${libs} -Cflags: -I${includedir} -I${includedir}/sphinxbase @SAMPLERATE_CFLAGS@ @SNDFILE_CFLAGS@ +Cflags: -I${includedir} -I${includedir}/sphinxbase + diff -Nru sphinxbase-0.8/sphinxbase.sln sphinxbase-0.8+5prealpha/sphinxbase.sln --- sphinxbase-0.8/sphinxbase.sln 2012-12-05 14:04:48.000000000 +0000 +++ sphinxbase-0.8+5prealpha/sphinxbase.sln 2015-07-05 00:26:49.000000000 +0000 @@ -1,32 +1,19 @@  -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinx_cepview", "win32\sphinx_cepview\sphinx_cepview.vcxproj", "{06364F13-FBCE-4E2B-9289-0DD39E246205}" - ProjectSection(ProjectDependencies) = postProject - {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinx_fe", "win32\sphinx_fe\sphinx_fe.vcxproj", "{D088C451-BB4D-4379-AFFA-C7523DBD35DD}" - ProjectSection(ProjectDependencies) = postProject - {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinxbase", "win32\sphinxbase\sphinxbase.vcxproj", "{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinx_jsgf2fsg", "win32\sphinx_jsgf2fsg\sphinx_jsgf2fsg.vcxproj", "{0E6AF9F5-8904-4873-8856-7216415782B4}" - ProjectSection(ProjectDependencies) = postProject - {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinx_lm_convert", "win32\sphinx_lm_convert\sphinx_lm_convert.vcxproj", "{AFB07B69-EDC1-4E99-B0F3-E6B14FF07C5D}" - ProjectSection(ProjectDependencies) = postProject - {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinx_pitch", "win32\sphinx_pitch\sphinx_pitch.vcxproj", "{AF17E630-A43F-4E0A-9BC4-67CD4E2E7FA1}" - ProjectSection(ProjectDependencies) = postProject - {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} - EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinx_seg", "win32\sphinx_seg\sphinx_seg.vcxproj", "{42DFD84F-14DB-42D1-B14D-B8C5ABCBA0E8}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -36,6 +23,7 @@ GlobalSection(ProjectConfigurationPlatforms) = postSolution {06364F13-FBCE-4E2B-9289-0DD39E246205}.Debug|Win32.ActiveCfg = Debug|Win32 {06364F13-FBCE-4E2B-9289-0DD39E246205}.Debug|Win32.Build.0 = Debug|Win32 + {06364F13-FBCE-4E2B-9289-0DD39E246205}.Debug|Win32.Deploy.0 = Debug|Win32 {06364F13-FBCE-4E2B-9289-0DD39E246205}.Release|Win32.ActiveCfg = Release|Win32 {06364F13-FBCE-4E2B-9289-0DD39E246205}.Release|Win32.Build.0 = Release|Win32 {D088C451-BB4D-4379-AFFA-C7523DBD35DD}.Debug|Win32.ActiveCfg = Debug|Win32 @@ -58,6 +46,10 @@ {AF17E630-A43F-4E0A-9BC4-67CD4E2E7FA1}.Debug|Win32.Build.0 = Debug|Win32 {AF17E630-A43F-4E0A-9BC4-67CD4E2E7FA1}.Release|Win32.ActiveCfg = Release|Win32 {AF17E630-A43F-4E0A-9BC4-67CD4E2E7FA1}.Release|Win32.Build.0 = Release|Win32 + {42DFD84F-14DB-42D1-B14D-B8C5ABCBA0E8}.Debug|Win32.ActiveCfg = Debug|Win32 + {42DFD84F-14DB-42D1-B14D-B8C5ABCBA0E8}.Debug|Win32.Build.0 = Debug|Win32 + {42DFD84F-14DB-42D1-B14D-B8C5ABCBA0E8}.Release|Win32.ActiveCfg = Release|Win32 + {42DFD84F-14DB-42D1-B14D-B8C5ABCBA0E8}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff -Nru sphinxbase-0.8/src/libsphinxad/ad_alsa.c sphinxbase-0.8+5prealpha/src/libsphinxad/ad_alsa.c --- sphinxbase-0.8/src/libsphinxad/ad_alsa.c 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/ad_alsa.c 2015-03-24 17:26:36.000000000 +0000 @@ -81,10 +81,18 @@ #include "prim_type.h" #include "ad.h" - #define AUDIO_FORMAT SND_PCM_SFMT_S16_LE /* 16-bit signed, little endian */ -#define INPUT_GAIN (85) -#define SPS_EPSILON 200 +#define INPUT_GAIN 85 +#define SPS_EPSILON 200 + +#define DEFAULT_DEVICE "default" + +struct ad_rec_s { + snd_pcm_t *dspH; + int32 recording; + int32 sps; + int32 bps; +}; static int setparams(int32 sps, snd_pcm_t * handle) @@ -175,79 +183,6 @@ return 0; } -static int -setlevels(const char *dev) -{ - snd_mixer_t *handle; - snd_mixer_selem_id_t *sid; - snd_mixer_elem_t *elem; - int err; - char *mixer_dev, *c; - - /* Basically we just want to turn on Mic capture. */ - if ((err = snd_mixer_open(&handle, 0)) < 0) { - fprintf(stderr, "Mixer open failed: %s\n", snd_strerror(err)); - return -1; - } - - mixer_dev = strdup(dev); - if (strncmp(mixer_dev, "plug", 4) == 0) - memmove(mixer_dev, mixer_dev + 4, strlen(mixer_dev) - 4 + 1); - if ((c = strchr(mixer_dev, ','))) - *c = '\0'; - if ((err = snd_mixer_attach(handle, mixer_dev)) < 0) { - fprintf(stderr, "Mixer attach to %s failed: %s\n", - mixer_dev, snd_strerror(err)); - free(mixer_dev); - snd_mixer_close(handle); - return -1; - } - free(mixer_dev); - if ((err = snd_mixer_selem_register(handle, NULL, NULL)) < 0) { - fprintf(stderr, "Mixer register failed: %s\n", snd_strerror(err)); - snd_mixer_close(handle); - return -1; - } - if ((err = snd_mixer_load(handle)) < 0) { - fprintf(stderr, "Mixer load failed: %s\n", snd_strerror(err)); - snd_mixer_close(handle); - return -1; - } - snd_mixer_selem_id_alloca(&sid); - snd_mixer_selem_id_set_name(sid, "Mic"); - if ((elem = snd_mixer_find_selem(handle, sid)) == NULL) { - fprintf(stderr, "Warning: Could not find Mic element\n"); - } - else { - if (snd_mixer_selem_has_capture_switch(elem)) { - if ((err = snd_mixer_selem_set_capture_switch_all(elem, 1)) < 0) { - fprintf(stderr, - "Failed to enable microphone capture: %s\n", - snd_strerror(err)); - snd_mixer_close(handle); - return -1; - } - } - } - snd_mixer_selem_id_set_name(sid, "Capture"); - if ((elem = snd_mixer_find_selem(handle, sid)) == NULL) { - fprintf(stderr, "Warning: Could not find Capture element\n"); - } - else { - if (snd_mixer_selem_has_capture_switch(elem)) { - if ((err = snd_mixer_selem_set_capture_switch_all(elem, 1)) < 0) { - fprintf(stderr, - "Failed to enable microphone capture: %s\n", - snd_strerror(err)); - snd_mixer_close(handle); - return -1; - } - } - } - - return 0; -} - ad_rec_t * ad_open_dev(const char *dev, int32 sps) { @@ -270,9 +205,6 @@ if (setparams(sps, dspH) < 0) { return NULL; } - if (setlevels(dev) < 0) { - return NULL; - } if ((handle = (ad_rec_t *) calloc(1, sizeof(ad_rec_t))) == NULL) { fprintf(stderr, "calloc(%d) failed\n", (int)sizeof(ad_rec_t)); abort(); diff -Nru sphinxbase-0.8/src/libsphinxad/ad_base.c sphinxbase-0.8+5prealpha/src/libsphinxad/ad_base.c --- sphinxbase-0.8/src/libsphinxad/ad_base.c 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/ad_base.c 2015-03-24 17:26:36.000000000 +0000 @@ -55,8 +55,10 @@ #include "prim_type.h" #include "ad.h" -#define QUIT(x) {fprintf x; exit(-1);} - +ad_rec_s { + int32 sps; /**< Samples/sec */ + int32 bps; /**< Bytes/sample */ +}; ad_rec_t * ad_open_dev(const char *dev, int32 samples_per_sec) diff -Nru sphinxbase-0.8/src/libsphinxad/ad_jack.c sphinxbase-0.8+5prealpha/src/libsphinxad/ad_jack.c --- sphinxbase-0.8/src/libsphinxad/ad_jack.c 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/ad_jack.c 2015-05-02 19:38:35.000000000 +0000 @@ -29,13 +29,10 @@ * ==================================================================== * */ -/* Sphinx II libad (Linux) - * ^^^^^^^^^^^^^^^^^^^^^^^ - * - * - * Glenn Pierce (glennpierce@gmail.com) - * ******************************************************************** - */ + +#ifdef HAVE_CONFIG_H +#include +#endif #include #include @@ -43,18 +40,30 @@ #include #include #include -#include #include #include "prim_type.h" #include "ad.h" #include +#include +#include #define DEFAULT_DEVICE "system:capture_1" #define BUFFER_SIZE 352800 -//#define MIC_SPEAKER_PASSTHROUGH_DEBUG +struct ad_rec_s { + jack_client_t *client; + jack_port_t *input_port; + jack_port_t *output_port; + jack_ringbuffer_t* rbuffer; + jack_default_audio_sample_t* sample_buffer; + int32 recording; + int32 sps; + int32 bps; +}; + +/* #define MIC_SPEAKER_PASSTHROUGH_DEBUG */ const size_t sample_size = sizeof(jack_default_audio_sample_t); const size_t int16_range_over_two = (-SHRT_MIN + SHRT_MAX) / 2.0; @@ -73,14 +82,14 @@ return 1; } - // Write to jack ringbuffer which should be thread safe + /* Write to jack ringbuffer which should be thread safe */ jack_ringbuffer_write (handle->rbuffer, (char*) in, sample_size * nframes); #ifdef MIC_SPEAKER_PASSTHROUGH_DEBUG jack_default_audio_sample_t *out = (jack_default_audio_sample_t *) jack_port_get_buffer (handle->output_port, nframes); - // Output mic output to speakers (Just for testing) + /* Output mic output to speakers (Just for testing) */ memcpy (out, in, sample_size * nframes); #endif @@ -114,12 +123,6 @@ ad_rec_t *handle; const char **ports; -#ifdef HAVE_SAMPLERATE_H - int resample_error; - double samplerates_ratio; - jack_nframes_t jack_samplerate; -#endif - if (dev == NULL) { dev = DEFAULT_DEVICE; } @@ -142,18 +145,8 @@ return NULL; } -#ifdef HAVE_SAMPLERATE_H - handle->resample_buffer = malloc(BUFFER_SIZE); - - jack_samplerate = jack_get_sample_rate(handle->client); - samplerates_ratio = (double)((double)jack_samplerate / (double)sps); - - handle->rbuffer = jack_ringbuffer_create((int)((double)BUFFER_SIZE * samplerates_ratio)); - handle->sample_buffer = malloc((int)((double)BUFFER_SIZE * samplerates_ratio)); -#else handle->rbuffer = jack_ringbuffer_create(BUFFER_SIZE); handle->sample_buffer = malloc(BUFFER_SIZE); -#endif if(handle->rbuffer == NULL) { fprintf (stderr, "Failed to create jack ringbuffer\n"); @@ -229,19 +222,11 @@ free (ports); #endif -#ifdef HAVE_SAMPLERATE_H - // Initialize the sample rate converter. - if ((handle->resample_state = src_new (SRC_SINC_BEST_QUALITY, 1, &resample_error)) == NULL) { - fprintf (stderr, "Error : src_new() failed: %s\n", src_strerror(resample_error)); - return NULL; - } -#endif - handle->recording = 0; handle->sps = sps; handle->bps = sizeof(int16); - // Give the jack process callback time to run ? + /* Give the jack process callback time to run ? */ sleep (1); return (ad_rec_t *) handle; @@ -250,7 +235,7 @@ ad_rec_t * ad_open_sps(int32 sps) { - // Ignored the sps has to set for the jackd server + /* Ignored the sps has to set for the jackd server */ return ad_open_dev(DEFAULT_DEVICE, sps); } @@ -264,9 +249,6 @@ ad_close(ad_rec_t * handle) { free (handle->sample_buffer); -#ifdef HAVE_SAMPLERATE_H - free (handle->resample_buffer); -#endif jack_ringbuffer_free (handle->rbuffer); jack_client_close (handle->client); free(handle); @@ -296,69 +278,22 @@ int32 ad_read(ad_rec_t * handle, int16 * buf, int32 max) { -#ifdef HAVE_SAMPLERATE_H - int resample_error; -#endif - - if (!handle->recording) - return AD_EOF; - - size_t length = sample_size * max; - -#ifdef HAVE_SAMPLERATE_H - - // Resample the data from the sample rate set in the jack server to that required - // by sphinx - - length = jack_ringbuffer_peek (handle->rbuffer, (char*) handle->sample_buffer, length); - size_t length_in_samples = length / sample_size; - - if(handle->resample_state == NULL) - return AD_EOF; - - // We will try to downsample if jackd is running at a higher sample rate - jack_nframes_t jack_samplerate = jack_get_sample_rate(handle->client); - - SRC_DATA data; - - data.data_in = handle->sample_buffer; - data.input_frames = length_in_samples; - data.data_out = handle->resample_buffer; - data.output_frames = BUFFER_SIZE / sample_size; - data.src_ratio = (float) handle->sps / jack_samplerate; - data.end_of_input = 0; - - if ((resample_error = src_process(handle->resample_state, &data)) != 0) { - fprintf (stderr, "resample error %s\n", src_strerror (resample_error)); - return 1; - } - - for(int i=0; iresample_buffer[i] + 1.0) + SHRT_MIN); - } - - jack_ringbuffer_read_advance(handle->rbuffer, data.input_frames_used * sample_size); - - if(length == 0 && (!handle->recording)) { + int i; + if (!handle->recording) return AD_EOF; - } - - return data.output_frames_gen; -#else + size_t length = sample_size * max; - length = jack_ringbuffer_read (handle->rbuffer, (char*) handle->sample_buffer, length); - size_t length_in_samples = length / sample_size; + length = jack_ringbuffer_read (handle->rbuffer, (char*) handle->sample_buffer, length); + size_t length_in_samples = length / sample_size; - for(int i=0; isample_buffer[i] + 1.0) + SHRT_MIN); - } - - if(length == 0 && (!handle->recording)) { - return AD_EOF; - } + for(i = 0; i < length_in_samples; i++) { + buf[i] = (int16) (int16_range_over_two * (handle->sample_buffer[i] + 1.0) + SHRT_MIN); + } - return length_in_samples; + if (length == 0 && (!handle->recording)) { + return AD_EOF; + } -#endif + return length_in_samples; } diff -Nru sphinxbase-0.8/src/libsphinxad/ad_openal.c sphinxbase-0.8+5prealpha/src/libsphinxad/ad_openal.c --- sphinxbase-0.8/src/libsphinxad/ad_openal.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/ad_openal.c 2015-03-24 17:26:36.000000000 +0000 @@ -0,0 +1,128 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 1999-2014 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 +#include +#include + +#include "ad.h" + +#include +#include + +struct ad_rec_s { + ALCdevice * device; +}; + +ad_rec_t * +ad_open_dev(const char * dev, int32 samples_per_sec) +{ + ad_rec_t * handle = malloc(sizeof(ad_rec_t)); + + if (handle == NULL) { + fprintf(stderr, "%s\n", "failed to allocate memory"); + abort(); + } + + handle -> device = alcCaptureOpenDevice(dev, samples_per_sec, AL_FORMAT_MONO16, samples_per_sec * 10); + + if (handle -> device == NULL) { + free(handle); + fprintf(stderr, "%s\n", "failed to open capture device"); + abort(); + } + + return handle; +} + + +ad_rec_t * +ad_open_sps(int32 samples_per_sec) +{ + return ad_open_dev(NULL, samples_per_sec); +} + +ad_rec_t * +ad_open(void) +{ + return ad_open_sps(DEFAULT_SAMPLES_PER_SEC); +} + + +int32 +ad_start_rec(ad_rec_t * r) +{ + alcCaptureStart(r -> device); + return 0; +} + + +int32 +ad_stop_rec(ad_rec_t * r) +{ + alcCaptureStop(r -> device); + return 0; +} + + +int32 +ad_read(ad_rec_t * r, int16 * buf, int32 max) +{ + ALCint number; + + alcGetIntegerv(r -> device, ALC_CAPTURE_SAMPLES, sizeof(number), &number); + if (number >= 0) { + number = (number < max ? number : max); + alcCaptureSamples(r -> device, buf, number); + } + + return number; +} + + +int32 +ad_close(ad_rec_t * r) +{ + ALCboolean isClosed; + + isClosed = alcCaptureCloseDevice(r -> device); + + if (isClosed) { + return 0; + } else { + return -1; + } +} diff -Nru sphinxbase-0.8/src/libsphinxad/ad_oss.c sphinxbase-0.8+5prealpha/src/libsphinxad/ad_oss.c --- sphinxbase-0.8/src/libsphinxad/ad_oss.c 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/ad_oss.c 2015-03-24 17:26:36.000000000 +0000 @@ -75,6 +75,18 @@ #define SPS_EPSILON 200 #define SAMPLERATE_TOLERANCE 0.01 +#define DEFAULT_DEVICE "/dev/dsp" + +/** \struct ad_rec_t + * \brief Audio recording structure. + */ +struct ad_rec_s { + int32 dspFD; /* Audio device descriptor */ + int32 recording; + int32 sps; /* Samples/sec */ + int32 bps; /* Bytes/sample */ +}; + ad_rec_t * ad_open_dev(const char *dev, int32 sps) { diff -Nru sphinxbase-0.8/src/libsphinxad/ad_pulse.c sphinxbase-0.8+5prealpha/src/libsphinxad/ad_pulse.c --- sphinxbase-0.8/src/libsphinxad/ad_pulse.c 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/ad_pulse.c 2015-03-24 17:26:36.000000000 +0000 @@ -47,6 +47,15 @@ #include "prim_type.h" #include "ad.h" +#define DEFAULT_DEVICE NULL + +struct ad_rec_s { + pa_simple* pa; + int32 recording; + int32 sps; + int32 bps; +}; + ad_rec_t * ad_open_dev(const char *dev, int32 samples_per_sec) { @@ -57,7 +66,7 @@ ss.format = PA_SAMPLE_S16LE; ss.channels = 1; - ss.rate = 16000; //samples_per_sec; + ss.rate = 16000; pa = pa_simple_new(NULL, "ASR", PA_STREAM_RECORD, dev, "Speech", &ss, NULL, NULL, &error); if (pa == NULL) { @@ -124,6 +133,10 @@ if (!r->recording) return AD_EOF; + if (max > 2048) { + max = 2048; + } + if (pa_simple_read(r->pa, (void*)buf, max * 2, &error) < 0) { fprintf(stderr, "Failed to read speech: %s\n", pa_strerror(error)); } diff -Nru sphinxbase-0.8/src/libsphinxad/ad_s60.cpp sphinxbase-0.8+5prealpha/src/libsphinxad/ad_s60.cpp --- sphinxbase-0.8/src/libsphinxad/ad_s60.cpp 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/ad_s60.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,443 +0,0 @@ -/* - This file is part of the imp project. - Copyright (C) 2009 Università degli Studi di Bergamo, Politecnico di Milano - Authors: - Cristian Gatti, gatti DOT kris AT gmail DOT com - Silvio Moioli, silvio AT moioli DOT net, - */ - -#include "config.h" - -#if defined(AD_BACKEND_S60) - -/* - S60 Sphinx audio backend. - Currently it is limited to recording 8kHz PCM16 mono audio data. - */ - -//Symbian includes must go first -#include -#include -#include -#include -#include - -#include "ad.h" - -/* - * Implementation notes - * Since Symbian uses a callback system based on Active Objects to carry out asynchronous - * operations we must make use of a helper thread, which is also useful for priority reasons. - * - * Sphinxbase functions are implemented through the CAudioDevice class that communicates - * with the helper thread, which is encapsulated in CHelperThreadHost. Threads use: - * - a synchronized temporaryBuffer and - * - Symbian thread-safe queues (RMsgQueues) - * to communicate. - */ - -//constants - -/* - * Messages sent through RMsgQueues. - */ -enum TMessage { - ENullMessage = 0, - EInited, - EStartRecording, - ERecordingStarted, - EStopRecording, - ERecordingStopped, - EClose, - EClosed -}; - -/* - * Max RMsgQueue size (will block if full). - */ -const TInt KQueueLength = 10; - -/* - * Only PCM16 is supported at the moment. - */ -const TInt KBytesPerSample = 2; - -/* - * Only 16kHz audio is supported at the moment. - */ -const TInt KSampleRate = 16000; - -/* - * Temporary buffer length in milliseconds. The temporary buffer is filled - * by the OS and then copied to the main buffer where it is read by Sphinxbase - * functions. - */ -const TInt KTemporaryBufferTime = 150; - -/* - * Temporary buffer length in bytes. - */ -const TInt KTemporaryBufferSize = (KTemporaryBufferTime * KSampleRate * KBytesPerSample) / 1000; - -/* - * Helper thread name. - */ -_LIT(KHelperThreadName, "HelperThread"); - -/* - * Possible helper thread states. - */ -enum THelperThreadState {EPaused = 0, ERecording, EClosing}; - -//classes - -/* - * Helper thread wrapper class. - */ -class CHelperThreadHost : public MMdaAudioInputStreamCallback { - public: - CHelperThreadHost(CBufSeg*, RFastLock*, RMsgQueue*, RMsgQueue*); - virtual ~CHelperThreadHost(); - static TInt ThreadFunction(TAny*); - void InitializeL(); - void DestroyL(); - - virtual void MaiscOpenComplete(TInt); - virtual void MaiscBufferCopied(TInt, const TDesC8&); - virtual void MaiscRecordComplete(TInt); - - private: - CMdaAudioInputStream* iStream; - TMdaAudioDataSettings iStreamSettings; - THelperThreadState iState; - - RBuf8 iTemporaryBuffer; - - CBufSeg* iBuffer; - RFastLock* iBufferLock; - - RMsgQueue* iCommandQueue; - RMsgQueue* iNotificationQueue; -}; - -/* - * Class used to invoke Symbian functions from Sphinx functions. - */ -class CAudioDevice { - public: - CAudioDevice(); - void ConstructL(); - static CAudioDevice* NewL(); - virtual ~CAudioDevice(); - - void ResumeRecording(); - void PauseRecording(); - TInt ReadSamples(TAny*, TInt); - - private: - RThread iThread; - CHelperThreadHost* iThreadHost; - - CBufSeg* iBuffer; - RFastLock iBufferLock; - - RMsgQueue iCommandQueue; - RMsgQueue iNotificationQueue; -}; - -CAudioDevice::CAudioDevice(){ - iCommandQueue.CreateLocal(KQueueLength); - iNotificationQueue.CreateLocal(KQueueLength); -} - -void CAudioDevice::ConstructL(){ - iBuffer = CBufSeg::NewL(KTemporaryBufferSize); - iBufferLock.CreateLocal(); - - iThreadHost = new (ELeave) CHelperThreadHost(iBuffer, &(iBufferLock), &(iCommandQueue), &(iNotificationQueue)); - iThread.Create(KHelperThreadName, CHelperThreadHost::ThreadFunction, KDefaultStackSize, NULL, iThreadHost); - iThread.Resume(); //new thread starts at ThreadFunction - - //wait until init is done - TInt message = ENullMessage; - iNotificationQueue.ReceiveBlocking(message); - if(message != EInited){ - RDebug::Print(_L("expecting %d, got %d"), EInited, message); - } -} - -CAudioDevice* CAudioDevice::NewL(){ - CAudioDevice* self = new (ELeave) CAudioDevice(); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; -} - -/* - * Request to record samples. - */ -void CAudioDevice::ResumeRecording(){ - iCommandQueue.SendBlocking(EStartRecording); - - TInt message = ENullMessage; - iNotificationQueue.ReceiveBlocking(message); - if(message != ERecordingStarted){ - RDebug::Print(_L("expecting %d, got %d"), ERecordingStarted, message); - } -} - -/* - * Request to stop recording samples. Note that actually we don't stop the recording, - * but just discard incoming data until ResumeRecording is called again. - */ -void CAudioDevice::PauseRecording(){ - iCommandQueue.SendBlocking(EStopRecording); - - TInt message = ENullMessage; - iNotificationQueue.ReceiveBlocking(message); - if(message != ERecordingStopped){ - RDebug::Print(_L("expecting %d, got %d"), ERecordingStopped, message); - } -} - -/* - * Reads at most maxSamples samples into destinationBuffer, returning - * the actual number of samples read. - */ -TInt CAudioDevice::ReadSamples(TAny* aDestinationBuffer, TInt aMaxSamples){ - iBufferLock.Wait(); - TInt availableSamples = iBuffer->Size() / KBytesPerSample; - TInt samplesToCopy = aMaxSamples; - if (availableSamples < aMaxSamples){ - samplesToCopy = availableSamples; - } - TInt bytesToCopy = samplesToCopy * KBytesPerSample; - iBuffer->Read(0, aDestinationBuffer, bytesToCopy); - iBuffer->Delete(0, bytesToCopy); - iBufferLock.Signal(); - - return samplesToCopy; -} - -CAudioDevice::~CAudioDevice(){ - //tell the thread to stop operations - iCommandQueue.SendBlocking(EClose); - - TInt message = ENullMessage; - iNotificationQueue.ReceiveBlocking(message); - if(message != EClosed){ - RDebug::Print(_L("expecting %d, got %d"), EClosed, message); - } - - //join thread - TRequestStatus status; - iThread.Logon(status); - User::WaitForRequest(status); - - //destroy fields - delete iThreadHost; - iThread.Close(); - iBufferLock.Close(); - delete iBuffer; - iNotificationQueue.Close(); - iCommandQueue.Close(); -} - -CHelperThreadHost::CHelperThreadHost(CBufSeg* aBuffer, RFastLock* aBufferLock, RMsgQueue* aCommandQueue, RMsgQueue* aNotificationQueue){ - iBuffer = aBuffer; - iBufferLock = aBufferLock; - iCommandQueue = aCommandQueue; - iNotificationQueue = aNotificationQueue; - iState = EPaused; -} - -TInt CHelperThreadHost::ThreadFunction(TAny* aParam){ - CHelperThreadHost* host = (CHelperThreadHost*) aParam; - - //add cleanup stack support - CTrapCleanup* cleanupStack = CTrapCleanup::New(); - - //add active objects suppport - TRAPD(error, - CActiveScheduler* activeScheduler = new (ELeave) CActiveScheduler; - CleanupStack::PushL(activeScheduler); - CActiveScheduler::Install(activeScheduler); - - //init multimedia system - host->InitializeL(); - - //run active scheduler - CActiveScheduler::Start(); - - //thread execution ended - CleanupStack::PopAndDestroy(activeScheduler); - ); - if(error != KErrNone){ - RDebug::Print(_L("thread error: %d"), error); - } - - delete cleanupStack; - return KErrNone; -} - -/* - * Inits iStream and iTemporaryBuffer. - */ -void CHelperThreadHost::InitializeL(){ - iStream = CMdaAudioInputStream::NewL(*this, EMdaPriorityMax, EMdaPriorityPreferenceTime); - iStream->Open(&(iStreamSettings)); //calls MaiscOpenComplete asynchronously - iTemporaryBuffer.CreateL(KTemporaryBufferSize); -} - -/* - * Destroys iStream and iTemporaryBuffer. - */ -void CHelperThreadHost::DestroyL(){ - iTemporaryBuffer.Close(); -#if defined(__WINSCW__) - iStream->Stop(); - CMdaAudioInputStream::Delete(iStream); -#else - delete iStream; -#endif -} - -/* - * Called by the OS when iStream has been opened. - */ -void CHelperThreadHost::MaiscOpenComplete(TInt aError){ - if (aError == KErrNone){ - iNotificationQueue->SendBlocking(EInited); - - iStream->SetAudioPropertiesL(TMdaAudioDataSettings::ESampleRate16000Hz, TMdaAudioDataSettings::EChannelsMono); - iStream->SetGain(iStream->MaxGain()); - - iStream->ReadL(iTemporaryBuffer); //calls MaiscBufferCopied asynchronously - } - else{ - RDebug::Print(_L("error %d in MaiscOpenComplete"), aError); - } -} - -/* - * Called by the OS when iTemporaryBuffer has been filled. - */ -void CHelperThreadHost::MaiscBufferCopied(TInt aError, const TDesC8 &aBuffer){ - if (aError == KErrNone){ - //if needed, record data - if(iState == ERecording){ - TInt availableBytes = aBuffer.Size(); - iBufferLock->Wait(); - TInt bufferSize = iBuffer->Size(); - iBuffer->ExpandL(bufferSize, availableBytes); - iBuffer->Write(bufferSize, aBuffer, availableBytes); - iBufferLock->Signal(); - } - - //empty buffer - iTemporaryBuffer.Zero(); - - //process pending messages - TInt message = ENullMessage; - TInt result = iCommandQueue->Receive(message); - if (result == KErrNone){ - if(message == EStartRecording){ - iState = ERecording; - iNotificationQueue->SendBlocking(ERecordingStarted); - } - else if(message == EStopRecording){ - iState = EPaused; - iNotificationQueue->SendBlocking(ERecordingStopped); - } - else if(message == EClose){ - iState = EClosing; - iStream->Stop(); //calls MaiscRecordComplete asynchronously - this->DestroyL(); - iNotificationQueue->SendBlocking(EClosed); - User::Exit(0); - } - else{ - RDebug::Print(_L("received unexpected %d"), message); - } - } - - //unless stopping, request filling the next buffer - if (iState != EClosing){ - iStream->ReadL(iTemporaryBuffer); //calls MaiscBufferCopied asynchronously - } - } - else if (aError == KErrAbort){ - //sent when discarding data during close, nothing to do here - } - else{ - RDebug::Print(_L("error %d in MaiscBufferCopied"), aError); - } -} - -/* - * Should be called by the OS when the recording is finished. - * Due to a bug, this method never gets called. - * http://carbidehelp.nokia.com/help/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-441D327D-D737-42A2-BCEA-FE89FBCA2F35/AudioStreamExample/doc/index.html - */ -void CHelperThreadHost::MaiscRecordComplete(TInt aError){ - //nothing to do here -} - -CHelperThreadHost::~CHelperThreadHost(){ - //nothing to do here -} - -//Sphinxbase methods - -ad_rec_t* ad_open(void){ - ad_rec_t* result = new ad_rec_t; - result->recorder = CAudioDevice::NewL(); - result->recording = FALSE; - result->sps = KSampleRate; - result->bps = KBytesPerSample; - return result; -} - -ad_rec_t* ad_open_dev(const char* dev, int32 sps){ - //dummy - return ad_open(); -} - -ad_rec_t* ad_open_sps(int32 sps){ - //dummy - return ad_open(); -} - -ad_rec_t* ad_open_sps_bufsize(int32 sps, int32 bufsize_msec){ - //dummy - return ad_open(); -} - -int32 ad_start_rec(ad_rec_t* r){ - ((CAudioDevice*)r->recorder)->ResumeRecording(); - r->recording = TRUE; - return AD_OK; -} - -int32 ad_read(ad_rec_t* r, int16* buf, int32 max){ - int32 result = (int32) ((CAudioDevice*)r->recorder)->ReadSamples((TAny*) buf, (TInt)max); - if(result == 0 && r->recording == FALSE){ - result = AD_EOF; - } - return result; -} - -int32 ad_stop_rec(ad_rec_t* r){ - ((CAudioDevice*)r->recorder)->PauseRecording(); - r->recording = FALSE; - return AD_OK; -} - -int32 ad_close(ad_rec_t* r){ - delete ((CAudioDevice*)r->recorder); - delete r; - return AD_OK; -} - -#endif //defined(AD_BACKEND_S60) diff -Nru sphinxbase-0.8/src/libsphinxad/ad_win32.c sphinxbase-0.8+5prealpha/src/libsphinxad/ad_win32.c --- sphinxbase-0.8/src/libsphinxad/ad_win32.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/ad_win32.c 2015-03-24 17:26:36.000000000 +0000 @@ -0,0 +1,508 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 1999-2001 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + +/* + * rec.c -- low level audio recording for Windows NT/95. + * + * HISTORY + * + * 19-Jan-1999 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University + * Added AD_ return codes. Added ad_open_sps_bufsize(), and + * ad_rec_t.n_buf. + * + * 07-Mar-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University + * Added ad_open_sps(), and made ad_open() call it. + * + * 10-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University + * Added ad_rec_t type to all calls. + * + * 03-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University + * Created. + */ + + +#include +#include +#include + +#include "sphinxbase/prim_type.h" +#include "sphinxbase/ad.h" + +#if defined (__CYGWIN__) +#include +#include +#elif (defined(_WIN32) && !defined(GNUWINCE)) || defined(_WIN32_WCE) +#include +#include +#endif + +typedef struct { + HGLOBAL h_whdr; + LPWAVEHDR p_whdr; + HGLOBAL h_buf; + LPSTR p_buf; +} ad_wbuf_t; + +/** + * Audio recording structure. + */ +struct ad_rec_s { + HWAVEIN h_wavein; /* "HANDLE" to the audio input device */ + ad_wbuf_t *wi_buf; /* Recording buffers provided to system */ + int32 n_buf; /* #Recording buffers provided to system */ + int32 opened; /* Flag; A/D opened for recording */ + int32 recording; + int32 curbuf; /* Current buffer with data for application */ + int32 curoff; /* Start of data for application in curbuf */ + int32 curlen; /* #samples of data from curoff in curbuf */ + int32 lastbuf; /* Last buffer containing data after recording stopped */ + int32 sps; /* Samples/sec */ + int32 bps; /* Bytes/sample */ +}; + +#define DEFAULT_N_WI_BUF 32 /* #Recording bufs */ +#define WI_BUFSIZE 2500 /* Samples/buf (Why this specific value?? + So that at reasonable sampling rates + data is returned frequently enough.) */ + +#ifdef _WIN32_WCE +#include "sphinxbase/ckd_alloc.h" +static void +wavein_error(char *src, int32 ret) +{ + TCHAR errbuf[512]; + wchar_t* werrbuf; + size_t len; + + waveOutGetErrorText(ret, errbuf, sizeof(errbuf)); + len = mbstowcs(NULL, errbuf, 0) + 1; + werrbuf = ckd_calloc(len, sizeof(*werrbuf)); + mbstowcs(werrbuf, errbuf, len); + + OutputDebugStringW(werrbuf); +} + +#else +static void +wavein_error(char *src, int32 ret) +{ + char errbuf[1024]; + + waveInGetErrorText(ret, errbuf, sizeof(errbuf)); + fprintf(stderr, "%s error %d: %s\n", src, ret, errbuf); +} +#endif + + +static void +wavein_free_buf(ad_wbuf_t * b) +{ + GlobalUnlock(b->h_whdr); + GlobalFree(b->h_whdr); + GlobalUnlock(b->h_buf); + GlobalFree(b->h_buf); +} + + +static int32 +wavein_alloc_buf(ad_wbuf_t * b, int32 samples_per_buf) +{ + HGLOBAL h_buf; /* handle to data buffer */ + LPSTR p_buf; /* pointer to data buffer */ + HGLOBAL h_whdr; /* handle to header */ + LPWAVEHDR p_whdr; /* pointer to header */ + + /* Allocate data buffer */ + h_buf = + GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, + samples_per_buf * sizeof(int16)); + if (!h_buf) { + fprintf(stderr, "GlobalAlloc failed\n"); + return -1; + } + if ((p_buf = GlobalLock(h_buf)) == NULL) { + GlobalFree(h_buf); + fprintf(stderr, "GlobalLock failed\n"); + return -1; + } + + /* Allocate WAVEHDR structure */ + h_whdr = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, sizeof(WAVEHDR)); + if (h_whdr == NULL) { + GlobalUnlock(h_buf); + GlobalFree(h_buf); + + fprintf(stderr, "GlobalAlloc failed\n"); + return -1; + } + if ((p_whdr = GlobalLock(h_whdr)) == NULL) { + GlobalUnlock(h_buf); + GlobalFree(h_buf); + GlobalFree(h_whdr); + + fprintf(stderr, "GlobalLock failed\n"); + return -1; + } + + b->h_buf = h_buf; + b->p_buf = p_buf; + b->h_whdr = h_whdr; + b->p_whdr = p_whdr; + + p_whdr->lpData = p_buf; + p_whdr->dwBufferLength = samples_per_buf * sizeof(int16); + p_whdr->dwUser = 0L; + p_whdr->dwFlags = 0L; + p_whdr->dwLoops = 0L; + + return 0; +} + + +static int32 +wavein_enqueue_buf(HWAVEIN h, LPWAVEHDR whdr) +{ + int32 st; + + if ((st = waveInPrepareHeader(h, whdr, sizeof(WAVEHDR))) != 0) { + wavein_error("waveInPrepareHeader", st); + return -1; + } + if ((st = waveInAddBuffer(h, whdr, sizeof(WAVEHDR))) != 0) { + wavein_error("waveInAddBuffer", st); + return -1; + } + + return 0; +} + + +static HWAVEIN +wavein_open(int32 samples_per_sec, int32 bytes_per_sample, unsigned int device_id) +{ + WAVEFORMATEX wfmt; + int32 st; + HWAVEIN h; + + if (bytes_per_sample != sizeof(int16)) { + fprintf(stderr, "bytes/sample != %d\n", sizeof(int16)); + return NULL; + } + + wfmt.wFormatTag = WAVE_FORMAT_PCM; + wfmt.nChannels = 1; + wfmt.nSamplesPerSec = samples_per_sec; + wfmt.nAvgBytesPerSec = samples_per_sec * bytes_per_sample; + wfmt.nBlockAlign = bytes_per_sample; + wfmt.wBitsPerSample = 8 * bytes_per_sample; + + /* There should be a check here for a device of the desired type; later... */ + + st = waveInOpen((LPHWAVEIN) & h, device_id, + (LPWAVEFORMATEX) & wfmt, (DWORD) 0L, 0L, + (DWORD) CALLBACK_NULL); + if (st != 0) { + wavein_error("waveInOpen", st); + return NULL; + } + + return h; +} + + +static int32 +wavein_close(ad_rec_t * r) +{ + int32 i, st; + + /* Unprepare all buffers; multiple unprepares of the same buffer are benign */ + for (i = 0; i < r->n_buf; i++) { + /* Unpreparing an unprepared buffer, on the other hand, fails + on Win98/WinME, though this is not documented - dhuggins@cs, + 2004-07-14 */ + if (!(r->wi_buf[i].p_whdr->dwFlags & WHDR_PREPARED)) + continue; + st = waveInUnprepareHeader(r->h_wavein, + r->wi_buf[i].p_whdr, sizeof(WAVEHDR)); + if (st != 0) { + wavein_error("waveInUnprepareHeader", st); + return -1; + } + } + + /* Free buffers */ + for (i = 0; i < r->n_buf; i++) + wavein_free_buf(&(r->wi_buf[i])); + free(r->wi_buf); + + if ((st = waveInClose(r->h_wavein)) != 0) { + wavein_error("waveInClose", st); + return -1; + } + + free(r); + + return 0; +} + + +ad_rec_t * +ad_open_sps_bufsize(int32 sps, int32 bufsize_msec, unsigned int device_id) +{ + ad_rec_t *r; + int32 i, j; + HWAVEIN h; + + if ((h = wavein_open(sps, sizeof(int16), device_id)) == NULL) + return NULL; + + if ((r = (ad_rec_t *) malloc(sizeof(ad_rec_t))) == NULL) { + fprintf(stderr, "malloc(%d) failed\n", sizeof(ad_rec_t)); + waveInClose(h); + return NULL; + } + + r->n_buf = ((sps * bufsize_msec) / 1000) / WI_BUFSIZE; + if (r->n_buf < DEFAULT_N_WI_BUF) + r->n_buf = DEFAULT_N_WI_BUF; + printf("Allocating %d buffers of %d samples each\n", r->n_buf, + WI_BUFSIZE); + + if ((r->wi_buf = + (ad_wbuf_t *) calloc(r->n_buf, sizeof(ad_wbuf_t))) == NULL) { + fprintf(stderr, "calloc(%d,%d) failed\n", r->n_buf, + sizeof(ad_wbuf_t)); + free(r); + waveInClose(h); + + return NULL; + } + for (i = 0; i < r->n_buf; i++) { + if (wavein_alloc_buf(&(r->wi_buf[i]), WI_BUFSIZE) < 0) { + for (j = 0; j < i; j++) + wavein_free_buf(&(r->wi_buf[j])); + free(r->wi_buf); + free(r); + waveInClose(h); + + return NULL; + } + } + + r->h_wavein = h; + r->opened = 1; + r->recording = 0; + r->curbuf = r->n_buf - 1; /* current buffer with data for application */ + r->curlen = 0; /* #samples in curbuf remaining to be consumed */ + r->lastbuf = r->curbuf; + r->sps = sps; + r->bps = sizeof(int16); /* HACK!! Hardwired value for bytes/sec */ + + return r; +} + +ad_rec_t * +ad_open_dev(const char *dev, int32 sps) +{ + unsigned int device_num = WAVE_MAPPER; + + /* Convert given deviceId parameter to int */ + if (dev != NULL && sscanf(dev, "%d", &device_num) != EOF) { + if (device_num >= waveInGetNumDevs()) { + device_num = WAVE_MAPPER; + } + } + + return (ad_open_sps_bufsize + (sps, WI_BUFSIZE * DEFAULT_N_WI_BUF * 1000 / sps, device_num)); +} + + +ad_rec_t * +ad_open_sps(int32 sps) +{ + return (ad_open_sps_bufsize + (sps, WI_BUFSIZE * DEFAULT_N_WI_BUF * 1000 / sps, WAVE_MAPPER)); +} + + +ad_rec_t * +ad_open(void) +{ + return (ad_open_sps(DEFAULT_SAMPLES_PER_SEC)); /* HACK!! Rename this constant */ +} + + +int32 +ad_close(ad_rec_t * r) +{ + if (!r->opened) + return AD_ERR_NOT_OPEN; + + if (r->recording) + if (ad_stop_rec(r) < 0) + return AD_ERR_WAVE; + + if (wavein_close(r) < 0) + return AD_ERR_WAVE; + + return 0; +} + + +int32 +ad_start_rec(ad_rec_t * r) +{ + int32 i; + + if ((!r->opened) || r->recording) + return -1; + + for (i = 0; i < r->n_buf; i++) + if (wavein_enqueue_buf(r->h_wavein, r->wi_buf[i].p_whdr) < 0) + return AD_ERR_WAVE; + r->curbuf = r->n_buf - 1; /* current buffer with data for application */ + r->curlen = 0; /* #samples in curbuf remaining to be consumed */ + + if (waveInStart(r->h_wavein) != 0) + return AD_ERR_WAVE; + + r->recording = 1; + + return 0; +} + + +int32 +ad_stop_rec(ad_rec_t * r) +{ + int32 i, st; + + if ((!r->opened) || (!r->recording)) + return -1; + + if (waveInStop(r->h_wavein) != 0) + return AD_ERR_WAVE; + + if ((st = waveInReset(r->h_wavein)) != 0) { + wavein_error("waveInReset", st); + return AD_ERR_WAVE; + } + + /* Wait until all buffers marked done */ + for (i = 0; i < r->n_buf; i++) + while (!(r->wi_buf[i].p_whdr->dwFlags & WHDR_DONE)); + + if ((r->lastbuf = r->curbuf - 1) < 0) + r->lastbuf = r->n_buf - 1; + + r->recording = 0; + + return 0; +} + + +int32 +ad_read(ad_rec_t * r, int16 * buf, int32 max) +{ + int32 t, st, len; + LPWAVEHDR whdr; + int16 *sysbufp; + + if (!r->opened) + return AD_ERR_NOT_OPEN; + + /* Check if all recorded data exhausted */ + if ((!r->recording) && (r->curbuf == r->lastbuf) + && (r->curlen == 0)) + return AD_EOF; + + len = 0; + while (max > 0) { + /* Look for next buffer with recording data */ + if (r->curlen == 0) { + /* No current buffer with data; get next buffer in sequence if available */ + t = r->curbuf + 1; + if (t >= r->n_buf) + t = 0; + + if (!(r->wi_buf[t].p_whdr->dwFlags & WHDR_DONE)) + return len; + + r->curbuf = t; + r->curlen = r->wi_buf[t].p_whdr->dwBytesRecorded >> 1; + r->curoff = 0; + } + + /* Copy data from curbuf to buf */ + whdr = r->wi_buf[r->curbuf].p_whdr; + t = (max < r->curlen) ? max : r->curlen; /* #Samples to copy */ + + if (t > 0) { + sysbufp = (int16 *) (whdr->lpData); + memcpy(buf, sysbufp + r->curoff, t * sizeof(int16)); + + buf += t; + max -= t; + r->curoff += t; + r->curlen -= t; + len += t; + } + + /* If curbuf empty recycle it to system if still recording */ + if (r->curlen == 0) { + if (r->recording) { + /* Return empty buffer to system */ + st = waveInUnprepareHeader(r->h_wavein, + whdr, sizeof(WAVEHDR)); + if (st != 0) { + wavein_error("waveInUnprepareHeader", st); + return AD_ERR_WAVE; + } + + if (wavein_enqueue_buf(r->h_wavein, whdr) < 0) + return AD_ERR_WAVE; + + } + else if (r->curbuf == r->lastbuf) { + return len; + } + } + } + + return len; +} diff -Nru sphinxbase-0.8/src/libsphinxad/cont_ad_base.c sphinxbase-0.8+5prealpha/src/libsphinxad/cont_ad_base.c --- sphinxbase-0.8/src/libsphinxad/cont_ad_base.c 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/cont_ad_base.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1468 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2001 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * cont_ad.c -- Continuous A/D listening and silence filtering module. - * - * HISTORY - * - * $Log: cont_ad_base.c,v $ - * Revision 1.14 2005/07/02 03:51:32 rkm - * Slowed down power histogram decay rate - * - * Revision 1.13 2005/06/30 00:27:17 rkm - * Fixed silence handling in rawmode; added extra state variables - * - * - * 28-Jun-2005 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University. - * - Changed rawmode handling to simply copy data even for silence - * segments. - * - Moved definitions of CONT_AD_STATE_{SIL,SPEECH} from .c to .h. - * - * Revision 1.12 2005/06/29 23:48:04 egouvea - * Revert changes: variables defined in cont_ad_base.c should not be accessible by the application - * - * Revision 1.10 2005/02/13 01:29:48 rkm - * Fixed cont_ad_read to never cross sil/speech boundary, and rawmode - * - * Revision 1.9 2005/02/01 22:21:19 rkm - * Added raw data logging, and raw data pass-through mode to cont_ad - * - * Revision 1.8 2004/07/23 23:36:34 egouvea - * Ravi's merge, with the latest fixes in the FSG code, and making the log files generated by FSG, LM, and allphone have the same 'look and feel', with the backtrace information presented consistently - * - * 23-Jul-2004 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Changed default adapt_rate from 0.5 to 0.2. - * - * Revision 1.7 2004/07/16 00:57:12 egouvea - * Added Ravi's implementation of FSG support. - * - * Revision 1.2 2004/06/23 20:31:18 rkm - * Added adapt_rate parameter; restructured frame processing to include threshold update - * - * - * 23-Oct-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Small change in the way the noiselevel is updated in find_thresh(). - * - * 26-Aug-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Separated computation of "frame power" into a separate low-level - * function. - * - * 13-Jul-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Modified to allow frame size to depend on audio sampling rate. - * - * 01-Jul-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Changed CONT_AD_DELTA_SPEECH back to 20. - * - * 30-Jun-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Changed CONT_AD_DELTA_SPEECH from 10 to 15. - * Added FILE* argument to cont_ad_powhist_dump(). - * - * 19-Jun-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Changed CONT_AD_DELTA_SPEECH from 20 to 10, to increase sensitivity - * to very short utterances. - * - * 16-Jan-98 Paul Placeway (pwp@cs.cmu.edu) at Carnegie Mellon University - * Changed to use dB instead of the weird power measure. - * Changed analysis window size, tuned default settings of most - * parameters to make the system less sensitive to noise, changed - * the histogram update frequency and decay to make the system - * adapt more rapidly to changes in the environment. - * Added cont_ad_set_params() and cont_ad_get_params(). - * - * 28-Jul-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added FRMPOW2SIGLVL, max_siglvl(), and cont_ad_t.siglvl. - * Changed min signal energy/frame to CONT_AD_SPF. - * - * 27-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added the option for cont_ad_read to return -1 on EOF. - * - * 21-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added cont_ad_set_thresh(). - * Bugfix: n_other is recomputed after updating thresholds. - * - * 20-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Separated thresholds for speech and silence. - * Fixed bug in moving analysis window upon transition to speech state. - * - * 17-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Created, based loosely on Steve Reed's original implementation. - */ - -/* - * This module is intended to be interposed as a filter between any raw A/D source and the - * application to remove silence regions. It is initialized with a raw A/D source function - * (during the cont_ad_init call). Filtered A/D data can be read by the application using - * the cont_ad_read function. This module assumes that the A/D source function supplies an - * endless stream of data. The application is responsible for setting up the A/D source, - * turning recording on and off as it desires. It is also responsible for invoking the - * cont_ad_read function frequently enough to avoid buffer overruns and dropping A/D data. - * This continuous listening module has an internal buffer of about 4 sec. - * - * This module must be initialized and calibrated at first (cont_ad_init and cont_ad_calib - * functions). Raw samples are grouped into frames, the signal power in each frame is - * computed and accumulated in a histogram. The module is always in one of two states: - * SILENCE or SPEECH. Transitions between the two states are detected by looking for a - * contiguous window of several frames that is predominantly of the other type. The type - * is determined by comparing frame power to either of two thresholds, thresh_sil and - * thresh_speech, as appropriate for the current state. These thresholds are set from the - * first peak in the low-end of the power histogram, and are updated every few seconds. - * Separate thresholds are used to provide some hysteresis. - * - * The module maintains a linked list of speech (non-silence) segments not yet read by the - * application. The cont_ad_read function returns speech data, if any available, by - * following this list. It also updates an "absolute" timestamp at the end of the - * cont_ad_read operation. The timestamp indicates the total #samples of A/D data read - * until this point, including data discarded as silence frames. The application is - * responsible for using this timestamp to make any policy decisions regarding utterance - * boundaries or whatever. - */ - -#include -#include -#include -#include -#include - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifdef _MSC_VER -#pragma warning (disable: 4305) -#endif - -#include "sphinxbase/prim_type.h" -#include "sphinxbase/ad.h" -#include "sphinxbase/cont_ad.h" -#include "sphinxbase/err.h" - - -#ifndef _ABS -#define _ABS(x) ((x) >= 0 ? (x) : -(x)) -#endif - - -/* Various parameters, including defaults for many cont_ad_t member variables */ - -#define CONT_AD_ADFRMSIZE 256 /* #Frames of internal A/D buffer maintained */ - -#define CONT_AD_POWHISTSIZE 98 /* #Powhist bins: ~ FRMPOW(65536^2*CONT_AD_SPF) */ -/* Maximum level is 96.3 dB full-scale; 97 for safety, plus 1 for zero-based */ - -#define CONT_AD_CALIB_FRAMES (CONT_AD_POWHISTSIZE * 2) - -#define CONT_AD_THRESH_UPDATE 100 /* Update thresholds approx every so many frames */ - /* PWP: update was 200 frames, or 3.2 seconds. Now about every 1.6 sec. */ - -#define CONT_AD_ADAPT_RATE 0.2 /* Interpolation of new and old noiselevel */ - -#define CONT_AD_SPS 16000 - -#define CONT_AD_DEFAULT_NOISE 30 /* Default background noise power level */ -#define CONT_AD_DELTA_SIL 10 /* Initial default for cont_ad_t.delta_sil */ -#define CONT_AD_DELTA_SPEECH 17 /* Initial default for cont_ad_t.delta_speech */ -#define CONT_AD_MIN_NOISE 2 /* Expected minimum background noise level */ -#define CONT_AD_MAX_NOISE 70 /* Maximum background noise level */ - -#define CONT_AD_HIST_INERTIA 3 /* Used in decaying the power histogram */ - -#define CONT_AD_WINSIZE 21 /* Analysis window for state transitions */ - /* rkm had 16 */ - -#define CONT_AD_SPEECH_ONSET 9 /* Min #speech frames in analysis window for - SILENCE -> SPEECH state transition */ -/* - * SReed had 100 ms == 6.25 fr contiguous; rkm had 9 (out of 16+10) with a - * lower threshold. - */ - -#define CONT_AD_SIL_ONSET 18 /* Min #silence frames in analysis window for - SPEECH -> SILENCE state transition - MUST BE <= CONT_AD_WINSIZE */ -/* - * SReed had 400 ms == 25 fr contiguous; rkm had 14 out of 16 - */ - -#define CONT_AD_LEADER 5 /* On transition to SPEECH state, so many frames - BEFORE window included in speech data (>0) */ - /* SReed had 200 ms == 12.5 fr; rkm had 5 */ - -#define CONT_AD_TRAILER 10 /* On transition to SILENCE state, so many frames - of silence included in speech data (>0). - NOTE: Ensure (0 < TRAILER+LEADER <= WINSIZE) */ - /* SReed had 100 ms == 6.25 fr; rkm had 10 */ - - -void -cont_ad_powhist_dump(FILE * fp, cont_ad_t * r) -{ - int32 i, j; - - fprintf(fp, "PowHist:\n"); - for (i = 0, j = 0; i < CONT_AD_POWHISTSIZE; i++) { - if (r->pow_hist[i] > 0) { - fprintf(fp, "\t%3d %6d\n", i, r->pow_hist[i]); - j = i; - } - } - - fprintf(fp, "PH[%7.2f]:", - (double) (r->tot_frm * r->spf) / (double) (r->sps)); - for (i = 0; i <= j; i++) - fprintf(fp, " %2d", r->pow_hist[i]); - fprintf(fp, "\n"); - - fflush(fp); -} - - -/* - * Compute frame power. Interface deliberately kept low level to allow arbitrary - * users to call this function with appropriate data. - */ -int32 -cont_ad_frame_pow(int16 * buf, int32 * prev, int32 spf) -{ - double sumsq, v; - int32 i; - int32 p; - - sumsq = 0.0; - p = *prev; - for (i = 0; i < spf; i++) { - /* Note: pre-emphasis done to remove low-frequency noise. */ - v = (double) (buf[i] - p); - sumsq += v * v; - p = buf[i]; - } - *prev = p; - - if (sumsq < spf) /* Make sure FRMPOW(sumsq) >= 0 */ - sumsq = spf; - - /* - * PWP: Units changed to dB - * - * Now the units of measurement of an input sample are volts (really!), - * so the power in dB is p = 20*log10(samp). Further, we want the RMS - * (root-mean-squared) average power across the frame. - * - * "sumsq" is the sum of the sum of the squares, so we want - * - * i = 20 * log10( sqrt ( sumsq / n_samps) ) - * - * (Stephen Reed's code actually had - * i = 20 * log10( sqrt (sumsq) / n_samps ) - * but this only produced an additive error.) - * - * i = 20 * log10( sqrt ( sumsq / n_samps) ) - * = 20 * log10( ( sumsq / n_samps) ^ 0.5 ) - * = 20 * log10( ( sumsq / n_samps) ) * 0.5 ) - * = 10 * log10( ( sumsq / n_samps) ) - * = 10 * ( log10( sumsq) - log10(n_samps) ) - */ - i = (int32) ((10.0 * (log10(sumsq) - log10((double) spf))) + 0.5); - if (i < 0) - i = 0; /* trim lower bound again to be safe. */ - assert(i < 97); - - return (i); -} - - -/* - * Classify frame (id=frm, starting at sample position s) as sil/nonsil. Classification - * done in isolation, independent of any other frame, based only on power histogram. - */ -static void -compute_frame_pow(cont_ad_t * r, int32 frm) -{ - int32 i; - - i = cont_ad_frame_pow(r->adbuf + (frm * r->spf), &(r->prev_sample), - r->spf); - - r->frm_pow[frm] = (char) i; - (r->pow_hist[i])++; - r->thresh_update--; -} - - -/* PWP: $$$ check this */ -/* - * PWP: in SReed's code, decay was done by zeroing the histogram, - * i.e. no history. - */ -static void -decay_hist(cont_ad_t * r) -{ - int32 i; - - for (i = 0; i < CONT_AD_POWHISTSIZE; i++) - r->pow_hist[i] -= (r->pow_hist[i] >> CONT_AD_HIST_INERTIA); -} - - -/* - * Find silence threshold from power histogram. - */ -static int32 -find_thresh(cont_ad_t * r) -{ - int32 i, j, max, th; - int32 old_noise_level, old_thresh_sil, old_thresh_speech; - - if (!r->auto_thresh) - return 0; - - /* - * Find smallest non-zero histogram entry, but starting at some minimum power. - * Power lower than CONT_AD_MIN_NOISE indicates bad A/D input (eg, mic off...). - * Too high a minimum power is also bad. - */ - for (i = r->min_noise; - (i < CONT_AD_POWHISTSIZE) && (r->pow_hist[i] == 0); i++); - if (i > r->max_noise) /* Bad signal? */ - return -1; - - /* PWP: Hmmmmm.... SReed's code looks over the lower 20 dB */ - /* PWP: 1/14/98 Made to work like Stephen Reed's code */ - - /* This method of detecting the noise level is VERY unsatisfactory */ - max = 0; - for (j = i, th = i; (j < CONT_AD_POWHISTSIZE) && (j < i + 20); j++) { /* PWP: was i+6, which was 9 dB */ - if (max < r->pow_hist[j]) { - max = r->pow_hist[j]; - th = j; - } - } - - /* "Don't change the threshold too fast" */ - old_noise_level = r->noise_level; - old_thresh_sil = r->thresh_sil; - old_thresh_speech = r->thresh_speech; - /* r->noise_level = (int32) (th * r->adapt_rate + r->noise_level * (1.0 - r->adapt_rate)); */ - r->noise_level = - (int32) (r->noise_level + - r->adapt_rate * (th - r->noise_level) + 0.5); - - /* update thresholds */ - r->thresh_sil = r->noise_level + r->delta_sil; - r->thresh_speech = r->noise_level + r->delta_speech; - - if (r->logfp) { - fprintf(r->logfp, - "%7.2fs %8df: NoisePeak: %d, Noiselevel: %d -> %d, Th-Sil: %d -> %d, Th-Sp: %d -> %d\n", - (double) (r->tot_frm * r->spf) / (double) (r->sps), - r->tot_frm, th, old_noise_level, r->noise_level, - old_thresh_sil, r->thresh_sil, old_thresh_speech, - r->thresh_speech); - - cont_ad_powhist_dump(r->logfp, r); - - fflush(r->logfp); - } - - /* - * PWP: in SReed's original, he cleared the histogram here. - * I can't fathom why. - */ - - return 0; -} - - -/* - * Silence to speech transition - */ -static void -sil2speech_transition(cont_ad_t *r, int frm) -{ - spseg_t *seg; - - /* Speech detected; create speech segment description */ - seg = malloc(sizeof(*seg)); - - seg->startfrm = r->win_startfrm - r->leader; - if (seg->startfrm < 0) - seg->startfrm += CONT_AD_ADFRMSIZE; - seg->nfrm = r->leader + r->winsize; - seg->next = NULL; - - if (!r->spseg_head) - r->spseg_head = seg; - else - r->spseg_tail->next = seg; - r->spseg_tail = seg; - - r->tail_state = CONT_AD_STATE_SPEECH; - - if (r->logfp) { - int32 n; - - /* Where (in absolute time) this speech segment starts */ - n = frm - seg->startfrm; - if (n < 0) - n += CONT_AD_ADFRMSIZE; - n = r->tot_frm - n - 1; - - fprintf(r->logfp, - "%7.2fs %8d[%3d]f: Sil -> Sp detect; seg start: %7.2fs %8d\n", - (double) (r->tot_frm * - r->spf) / - (double) (r->sps), - r->tot_frm, frm, - (double) (n * r->spf) / (double) (r->sps), n); - } - - /* Now in SPEECH state; want to look for silence from end of this window */ - r->win_validfrm = 1; - r->win_startfrm = frm; - - /* Count #sil frames remaining in reduced window (of 1 frame) */ - r->n_other = (r->frm_pow[frm] <= r->thresh_sil) ? 1 : 0; -} - -/* - * Speech to silence transition - */ -static void -speech2sil_transition(cont_ad_t *r, int frm) -{ - int f; - - /* End of speech detected; speech->sil transition */ - r->spseg_tail->nfrm += r->trailer; - - r->tail_state = CONT_AD_STATE_SIL; - - if (r->logfp) { - int32 n; - - /* Where (in absolute time) this speech segment ends */ - n = r->spseg_tail->startfrm + r->spseg_tail->nfrm - 1; - if (n >= CONT_AD_ADFRMSIZE) - n -= CONT_AD_ADFRMSIZE; - n = frm - n; - if (n < 0) - n += CONT_AD_ADFRMSIZE; - n = r->tot_frm - n; - - fprintf(r->logfp, - "%7.2fs %8d[%3d]f: Sp -> Sil detect; seg end: %7.2fs %8d\n", - (double) (r->tot_frm * r->spf) / - (double) (r->sps), r->tot_frm, frm, - (double) (n * r->spf) / (double) (r->sps), n); - } - - /* Now in SILENCE state; start looking for speech trailer+leader frames later */ - r->win_validfrm -= (r->trailer + r->leader - 1); - r->win_startfrm += (r->trailer + r->leader - 1); - if (r->win_startfrm >= CONT_AD_ADFRMSIZE) - r->win_startfrm -= CONT_AD_ADFRMSIZE; - - /* Count #speech frames remaining in reduced window */ - r->n_other = 0; - for (f = r->win_startfrm;;) { - if (r->frm_pow[f] >= r->thresh_speech) - r->n_other++; - - if (f == frm) - break; - - f++; - if (f >= CONT_AD_ADFRMSIZE) - f = 0; - } -} - - -/* - * Main silence/speech region detection routine. If currently in - * SILENCE state, switch to SPEECH state if a window (r->winsize) - * of frames is mostly non-silence. If in SPEECH state, switch to - * SILENCE state if the window is mostly silence. - */ -static void -boundary_detect(cont_ad_t * r, int32 frm) -{ - assert(r->n_other >= 0); - - r->win_validfrm++; - if (r->tail_state == CONT_AD_STATE_SIL) { - if (r->frm_pow[frm] >= r->thresh_speech) - r->n_other++; - } - else { - if (r->frm_pow[frm] <= r->thresh_sil) - r->n_other++; - } - - if (r->logfp) { - fprintf(r->logfp, - "%7.2fs %8d[%3d]f: P: %2d, N: %2d, T+: %2d, T-: %2d, #O: %2d, %s\n", - (double) (r->tot_frm * r->spf) / (double) (r->sps), - r->tot_frm, frm, r->frm_pow[frm], r->noise_level, - r->thresh_speech, r->thresh_sil, r->n_other, - (r->tail_state == CONT_AD_STATE_SIL) ? "--" : "Sp"); - } - - if (r->win_validfrm < r->winsize) /* Not reached full analysis window size */ - return; - assert(r->win_validfrm == r->winsize); - - if (r->tail_state == CONT_AD_STATE_SIL) { /* Currently in SILENCE state */ - if (r->n_frm >= r->winsize + r->leader - && r->n_other >= r->speech_onset) { - sil2speech_transition(r, frm); - } - } - else { - if (r->n_other >= r->sil_onset) { - speech2sil_transition(r, frm); - } - else { - /* In speech state, and staying there; add this frame to segment */ - r->spseg_tail->nfrm++; - } - } - - /* - * Get rid of oldest frame in analysis window. Not quite correct; - * thresholds could have changed over the window; should preserve - * the original speech/silence label for the frame and undo it. Later.. - */ - if (r->tail_state == CONT_AD_STATE_SIL) { - if (r->frm_pow[r->win_startfrm] >= r->thresh_speech) { - if (r->n_other > 0) - r->n_other--; - } - } - else { - if (r->frm_pow[r->win_startfrm] <= r->thresh_sil) { - if (r->n_other > 0) - r->n_other--; - } - } - r->win_validfrm--; - r->win_startfrm++; - if (r->win_startfrm >= CONT_AD_ADFRMSIZE) - r->win_startfrm = 0; - - if (r->logfp) - fflush(r->logfp); -} - - -static int32 -max_siglvl(cont_ad_t * r, int32 startfrm, int32 nfrm) -{ - int32 siglvl, i, f; - - siglvl = 0; - if (nfrm > 0) { - for (i = 0, f = startfrm; i < nfrm; i++, f++) { - if (f >= CONT_AD_ADFRMSIZE) - f -= CONT_AD_ADFRMSIZE; - if (r->frm_pow[f] > siglvl) - siglvl = r->frm_pow[f]; - } - } - return siglvl; -} - - -#if 0 -/* - * RKM(2005/01/31): Where did this come from? If needed, it should be called - * cont_ad_get_audio_data. - */ -void -get_audio_data(cont_ad_t * r, int16 * buf, int32 max) -{ -} -#endif - - -static void -cont_ad_read_log(cont_ad_t * r, int32 retval) -{ - spseg_t *seg; - - fprintf(r->logfp, "return from cont_ad_read() -> %d:\n", retval); - fprintf(r->logfp, "\tstate: %d\n", r->state); - fprintf(r->logfp, "\tread_ts: %d (%.2fs)\n", - r->read_ts, (float32) r->read_ts / (float32) r->sps); - fprintf(r->logfp, "\tseglen: %d (%.2fs)\n", - r->seglen, (float32) r->seglen / (float32) r->sps); - fprintf(r->logfp, "\tsiglvl: %d\n", r->siglvl); - fprintf(r->logfp, "\theadfrm: %d\n", r->headfrm); - fprintf(r->logfp, "\tn_frm: %d\n", r->n_frm); - fprintf(r->logfp, "\tn_sample: %d\n", r->n_sample); - fprintf(r->logfp, "\twin_startfrm: %d\n", r->win_startfrm); - fprintf(r->logfp, "\twin_validfrm: %d\n", r->win_validfrm); - fprintf(r->logfp, "\tnoise_level: %d\n", r->noise_level); - fprintf(r->logfp, "\tthresh_sil: %d\n", r->thresh_sil); - fprintf(r->logfp, "\tthresh_speech: %d\n", r->thresh_speech); - fprintf(r->logfp, "\tn_other: %d\n", r->n_other); - fprintf(r->logfp, "\ttail_state: %d\n", r->tail_state); - fprintf(r->logfp, "\ttot_frm: %d\n", r->tot_frm); - - fprintf(r->logfp, "\tspseg:"); - for (seg = r->spseg_head; seg; seg = seg->next) - fprintf(r->logfp, " %d[%d]", seg->startfrm, seg->nfrm); - fprintf(r->logfp, "\n"); - - fflush(r->logfp); -} - - -/* - * Copy data from r->adbuf[sf], for nf frames, into buf. - * All length checks must have been completed before this call; hence, this - * function will copy exactly the specified number of frames. - * - * Return value: Index of frame just after the segment copied, possibly wrapped - * around to 0. - */ -static int32 -buf_copy(cont_ad_t * r, int32 sf, int32 nf, int16 * buf) -{ - int32 f, l; - - assert((sf >= 0) && (sf < CONT_AD_ADFRMSIZE)); - assert(nf >= 0); - - if (sf + nf > CONT_AD_ADFRMSIZE) { - /* Amount to be copied wraps around adbuf; copy in two stages */ - f = CONT_AD_ADFRMSIZE - sf; - l = (f * r->spf); - memcpy(buf, r->adbuf + (sf * r->spf), l * sizeof(int16)); - - if (r->logfp) { - fprintf(r->logfp, - "return %d speech frames [%d..%d]; %d samples\n", - f, sf, sf + f - 1, l); - } - - buf += l; - sf = 0; - nf -= f; - } - - if (nf > 0) { - l = (nf * r->spf); - memcpy(buf, r->adbuf + (sf * r->spf), l * sizeof(int16)); - - if (r->logfp) { - fprintf(r->logfp, - "return %d speech frames [%d..%d]; %d samples\n", - nf, sf, sf + nf - 1, l); - } - } - - if ((sf + nf) >= CONT_AD_ADFRMSIZE) { - assert((sf + nf) == CONT_AD_ADFRMSIZE); - return 0; - } - else - return (sf + nf); -} - -int32 -cont_ad_buffer_space(cont_ad_t *r) -{ - return r->adbufsize - r->n_sample; -} - -/* - * Read as much data as possible from r->adfunc into r->adbuf. - */ -static int32 -cont_ad_read_internal(cont_ad_t *r, int16 *buf, int32 max) -{ - int32 head, tail, len, l; - - /* - * First read as much of raw A/D as possible and available. adbuf is not - * really a circular buffer, so may have to read in two steps for wrapping - * around. - */ - head = r->headfrm * r->spf; - tail = head + r->n_sample; - len = r->n_sample - (r->n_frm * r->spf); /* #partial frame samples at the tail */ - assert((len >= 0) && (len < r->spf)); - - if ((tail < r->adbufsize) && (!r->eof)) { - if (r->adfunc) { - if ((l = - (*(r->adfunc)) (r->ad, r->adbuf + tail, - r->adbufsize - tail)) < 0) { - r->eof = 1; - l = 0; - } - } - else { - l = r->adbufsize - tail; - if (l > max) { - l = max; - max = 0; - } - else { - max -= l; - } - memcpy(r->adbuf + tail, buf, l * sizeof(int16)); - buf += l; - } - if ((l > 0) && r->rawfp) { - fwrite(r->adbuf + tail, sizeof(int16), l, r->rawfp); - fflush(r->rawfp); - } - - tail += l; - len += l; - r->n_sample += l; - } - if ((tail >= r->adbufsize) && (!r->eof)) { - tail -= r->adbufsize; - if (tail < head) { - if (r->adfunc) { - if ((l = - (*(r->adfunc)) (r->ad, - r->adbuf + tail, head - tail)) < 0) { - r->eof = 1; - l = 0; - } - } - else { - l = head - tail; - if (l > max) - l = max; - memcpy(r->adbuf + tail, buf, l * sizeof(int16)); - } - if ((l > 0) && r->rawfp) { - fwrite(r->adbuf + tail, sizeof(int16), l, r->rawfp); - fflush(r->rawfp); - } - - tail += l; - len += l; - r->n_sample += l; - } - } - - return len; -} - -/* - * Classify incoming frames as silence or speech. - */ -int32 -cont_ad_classify(cont_ad_t *r, int32 len) -{ - int32 tailfrm; - - tailfrm = (r->headfrm + r->n_frm); /* Next free frame slot to be filled */ - if (tailfrm >= CONT_AD_ADFRMSIZE) - tailfrm -= CONT_AD_ADFRMSIZE; - - for (; len >= r->spf; len -= r->spf) { - compute_frame_pow(r, tailfrm); - r->n_frm++; - r->tot_frm++; - - /* - * Find speech/sil state change, if any. Also, if staying in speech state - * add this frame to current speech segment. - */ - boundary_detect(r, tailfrm); - - if (++tailfrm >= CONT_AD_ADFRMSIZE) - tailfrm = 0; - - /* Update thresholds if time to do so */ - if (r->thresh_update <= 0) { - int32 i, f; - find_thresh(r); - decay_hist(r); - r->thresh_update = CONT_AD_THRESH_UPDATE; - -#if 1 - /* - * Since threshold has been updated, recompute r->n_other. - * (RKM: Is this really necessary? Comment out??) - */ - r->n_other = 0; - if (r->tail_state == CONT_AD_STATE_SIL) { - for (i = r->win_validfrm, f = r->win_startfrm; i > 0; --i) { - if (r->frm_pow[f] >= r->thresh_speech) - r->n_other++; - - f++; - if (f >= CONT_AD_ADFRMSIZE) - f = 0; - } - } - else { - for (i = r->win_validfrm, f = r->win_startfrm; i > 0; --i) { - if (r->frm_pow[f] <= r->thresh_sil) - r->n_other++; - - f++; - if (f >= CONT_AD_ADFRMSIZE) - f = 0; - } - } -#endif - } - } - - return r->tail_state; -} - -/* - * Main function called by the application to filter out silence regions. - * Maintains a linked list of speech segments pointing into r->adbuf and feeds - * data to application from them. - */ -int32 -cont_ad_read(cont_ad_t * r, int16 * buf, int32 max) -{ - int32 flen, len, retval, newstate; - spseg_t *seg; - - if ((r == NULL) || (buf == NULL)) - return -1; - - if (max < r->spf) { - E_ERROR - ("cont_ad_read requires buffer of at least %d samples\n", - r->spf); - return -1; - } - - if (r->logfp) { - fprintf(r->logfp, "cont_ad_read(,, %d)\n", max); - fflush(r->logfp); - } - - /* Read data from adfunc or from buf. */ - len = cont_ad_read_internal(r, buf, max); - - /* Compute frame power for unprocessed+new data and find speech/silence boundaries */ - cont_ad_classify(r, len); - - /* - * If eof on input data source, cleanup the final segment. - */ - if (r->eof) { - if (r->tail_state == CONT_AD_STATE_SPEECH) { - /* - * Still inside a speech segment when input data got over. Absort any - * remaining frames into the final speech segment. - */ - assert(r->spseg_tail != NULL); - - /* Absorb frames still in analysis window into final speech seg */ - assert((r->win_validfrm >= 0) - && (r->win_validfrm < r->winsize)); - r->spseg_tail->nfrm += r->win_validfrm; - - r->tail_state = CONT_AD_STATE_SIL; - } - - r->win_startfrm += r->win_validfrm; - if (r->win_startfrm >= CONT_AD_ADFRMSIZE) - r->win_startfrm -= CONT_AD_ADFRMSIZE; - r->win_validfrm = 0; - r->n_other = 0; - } - - /* - * At last ready to copy speech data, if any, into caller's buffer. Raw - * speech data is segmented into alternating speech and silence segments. - * But any single call to cont_ad_read will never cross a speech/silence - * boundary. - */ - seg = r->spseg_head; /* first speech segment available, if any */ - - if ((seg == NULL) || (r->headfrm != seg->startfrm)) { - /* - * Either no speech data available, or inside a silence segment. Find - * length of silence segment. - */ - if (seg == NULL) { - assert(r->tail_state == CONT_AD_STATE_SIL); - - flen = - (r->eof) ? r->n_frm : r->n_frm - (r->winsize + - r->leader - 1); - if (flen < 0) - flen = 0; - } - else { - flen = seg->startfrm - r->headfrm; - if (flen < 0) - flen += CONT_AD_ADFRMSIZE; - } - - if (r->rawmode) { - /* Restrict silence segment to user buffer size, integral #frames */ - int32 f = max / r->spf; - if (flen > f) - flen = f; - } - - newstate = CONT_AD_STATE_SIL; - } - else { - flen = max / r->spf; /* truncate read-size to integral #frames */ - if (flen > seg->nfrm) - flen = seg->nfrm; /* truncate further to this segment size */ - - newstate = CONT_AD_STATE_SPEECH; - } - - len = flen * r->spf; /* #samples being consumed */ - - r->siglvl = max_siglvl(r, r->headfrm, flen); - - if ((newstate == CONT_AD_STATE_SIL) && (!r->rawmode)) { - /* Skip silence data */ - r->headfrm += flen; - if (r->headfrm >= CONT_AD_ADFRMSIZE) - r->headfrm -= CONT_AD_ADFRMSIZE; - - retval = 0; /* #samples being copied/returned */ - } - else { - /* Copy speech/silence(in rawmode) data */ - r->headfrm = buf_copy(r, r->headfrm, flen, buf); - - retval = len; /* #samples being copied/returned */ - } - - r->n_frm -= flen; - r->n_sample -= len; - assert((r->n_frm >= 0) && (r->n_sample >= 0)); - assert(r->win_validfrm <= r->n_frm); - - if (r->state == newstate) - r->seglen += len; - else - r->seglen = len; - r->state = newstate; - - if (newstate == CONT_AD_STATE_SPEECH) { - seg->startfrm = r->headfrm; - assert(seg->startfrm >= 0); - seg->nfrm -= flen; - - /* Free seg if empty and not recording into it */ - if ((seg->nfrm == 0) - && (seg->next || (r->tail_state == CONT_AD_STATE_SIL))) { - r->spseg_head = seg->next; - if (seg->next == NULL) - r->spseg_tail = NULL; - free(seg); - } - } - - /* Update timestamp. Total raw A/D read - those remaining to be consumed */ - r->read_ts = (r->tot_frm - r->n_frm) * r->spf; - - if (retval == 0) - retval = (r->eof && (r->spseg_head == NULL)) ? -1 : 0; - - if (r->logfp) - cont_ad_read_log(r, retval); - - return retval; -} - - -/* - * Calibrate input channel for silence threshold. - */ -int32 -cont_ad_calib(cont_ad_t * r) -{ - int32 i, s, k, len, tailfrm; - - if (r == NULL) - return -1; - - /* clear histogram */ - for (i = 0; i < CONT_AD_POWHISTSIZE; i++) - r->pow_hist[i] = 0; - tailfrm = r->headfrm + r->n_frm; - if (tailfrm >= CONT_AD_ADFRMSIZE) - tailfrm -= CONT_AD_ADFRMSIZE; - s = (tailfrm * r->spf); - - for (r->n_calib_frame = 0; - r->n_calib_frame < CONT_AD_CALIB_FRAMES; - ++r->n_calib_frame) { - len = r->spf; - while (len > 0) { - /*Trouble */ - if ((k = (*(r->adfunc)) (r->ad, r->adbuf + s, len)) < 0) - return -1; - len -= k; - s += k; - } - s -= r->spf; - - compute_frame_pow(r, tailfrm); - } - - r->thresh_update = CONT_AD_THRESH_UPDATE; - return find_thresh(r); -} - -int32 -cont_ad_calib_size(cont_ad_t *r) -{ - return r->spf * CONT_AD_CALIB_FRAMES; -} - -int32 -cont_ad_calib_loop(cont_ad_t * r, int16 * buf, int32 max) -{ - int32 i, s, len, tailfrm; - - if (r->n_calib_frame == CONT_AD_CALIB_FRAMES) { - /* If calibration previously succeeded, then this is a - * recalibration, so start again. */ - r->n_calib_frame = 0; - /* clear histogram */ - for (i = 0; i < CONT_AD_POWHISTSIZE; i++) - r->pow_hist[i] = 0; - } - - tailfrm = r->headfrm + r->n_frm; - if (tailfrm >= CONT_AD_ADFRMSIZE) - tailfrm -= CONT_AD_ADFRMSIZE; - s = (tailfrm * r->spf); - - len = r->spf; - for (; r->n_calib_frame < CONT_AD_CALIB_FRAMES; - ++r->n_calib_frame) { - if (max < len) - return 1; - memcpy(r->adbuf + s, buf, len * sizeof(int16)); - max -= len; - buf += len; - compute_frame_pow(r, tailfrm); - } - - r->thresh_update = CONT_AD_THRESH_UPDATE; - return find_thresh(r); -} - - -/* PWP 1/14/98 -- modified for compatibility with old code */ -int32 -cont_ad_set_thresh(cont_ad_t * r, int32 sil, int32 speech) -{ - if (r == NULL) - return -1; - - if ((sil < 0) || (speech < 0)) { - fprintf(stderr, - "cont_ad_set_thresh: invalid threshold arguments: %d, %d\n", - sil, speech); - return -1; - } - r->delta_sil = (3 * sil) / 2; - r->delta_speech = (3 * speech) / 2; - - return 0; -} - - -/* - * PWP 1/14/98 -- set the changable params. - * - * delta_sil, delta_speech, min_noise, and max_noise are in dB, - * winsize, speech_onset, sil_onset, leader and trailer are in frames of - * 16 ms length (256 samples @ 16kHz sampling). - */ -int32 -cont_ad_set_params(cont_ad_t * r, int32 delta_sil, - int32 delta_speech, int32 min_noise, - int32 max_noise, int32 winsize, - int32 speech_onset, int32 sil_onset, int32 leader, - int32 trailer, float32 adapt_rate) -{ - if ((delta_sil < 0) || (delta_speech < 0) || (min_noise < 0) - || (max_noise < 0)) { - E_ERROR("threshold arguments: " - "%d, %d, %d, %d must all be >=0\n", delta_sil, - delta_speech, min_noise, max_noise); - return -1; - } - - if ((speech_onset > winsize) || (speech_onset <= 0) - || (winsize <= 0)) { - E_ERROR - ("speech_onset, %d, must be <= winsize, %d, and both >0\n", - speech_onset, winsize); - return -1; - } - - if ((sil_onset > winsize) || (sil_onset <= 0) || (winsize <= 0)) { - E_ERROR - ("sil_onset, %d, must be <= winsize, %d, and both >0\n", - sil_onset, winsize); - return -1; - } - - if (((leader + trailer) > winsize) || (leader <= 0) - || (trailer <= 0)) { - E_ERROR - ("leader, %d, plus trailer, %d, must be <= winsize, %d, and both >0\n", - leader, trailer, winsize); - return -1; - } - - if ((adapt_rate < 0.0) || (adapt_rate > 1.0)) { - E_ERROR("adapt_rate, %e; must be in range 0..1\n", adapt_rate); - return -1; - } - - if (r == NULL) - return -1; - - r->delta_sil = delta_sil; - r->delta_speech = delta_speech; - r->min_noise = min_noise; - r->max_noise = max_noise; - - r->winsize = winsize; - r->speech_onset = speech_onset; - r->sil_onset = sil_onset; - r->leader = leader; - r->trailer = trailer; - - r->adapt_rate = adapt_rate; - - if (r->win_validfrm >= r->winsize) - r->win_validfrm = r->winsize - 1; - - return 0; -} - - -/* - * PWP 1/14/98 -- get the changable params. - * - * delta_sil, delta_speech, min_noise, and max_noise are in dB, - * winsize, speech_onset, sil_onset, leader and trailer are in frames of - * 16 ms length (256 samples @ 16kHz sampling). - */ -int32 -cont_ad_get_params(cont_ad_t * r, int32 * delta_sil, - int32 * delta_speech, int32 * min_noise, - int32 * max_noise, int32 * winsize, - int32 * speech_onset, int32 * sil_onset, - int32 * leader, int32 * trailer, float32 * adapt_rate) -{ - if (!delta_sil || !delta_speech || !min_noise || !max_noise - || !winsize || !speech_onset || !sil_onset || !leader - || !trailer || !adapt_rate) { - fprintf(stderr, "cont_ad_get_params: some param slots are NULL\n"); - return (-1); - } - - if (r == NULL) - return -1; - - *delta_sil = r->delta_sil; - *delta_speech = r->delta_speech; - *min_noise = r->min_noise; - *max_noise = r->max_noise; - - *winsize = r->winsize; - *speech_onset = r->speech_onset; - *sil_onset = r->sil_onset; - *leader = r->leader; - *trailer = r->trailer; - - *adapt_rate = r->adapt_rate; - - return 0; -} - - -/* - * Reset, discarded any accumulated speech. - */ -int32 -cont_ad_reset(cont_ad_t * r) -{ - spseg_t *seg; - - if (r == NULL) - return -1; - - while (r->spseg_head) { - seg = r->spseg_head; - r->spseg_head = seg->next; - free(seg); - } - r->spseg_tail = NULL; - - r->headfrm = 0; - r->n_frm = 0; - r->n_sample = 0; - r->win_startfrm = 0; - r->win_validfrm = 0; - r->n_other = 0; - - r->tail_state = CONT_AD_STATE_SIL; - - return 0; -} - - -int32 -cont_ad_close(cont_ad_t * cont) -{ - if (cont == NULL) - return -1; - - cont_ad_reset(cont); /* Frees any remaining speech segments */ - - free(cont->adbuf); - free(cont->pow_hist); - free(cont->frm_pow); - free(cont); - - return 0; -} - - -int32 -cont_ad_detach(cont_ad_t * c) -{ - if (c == NULL) - return -1; - - c->ad = NULL; - c->adfunc = NULL; - return 0; -} - - -int32 -cont_ad_attach(cont_ad_t * c, ad_rec_t * a, - int32(*func) (ad_rec_t *, int16 *, int32)) -{ - if (c == NULL) - return -1; - - c->ad = a; - c->adfunc = func; - c->eof = 0; - - return 0; -} - - -int32 -cont_set_thresh(cont_ad_t * r, int32 silence, int32 speech) -{ - int32 i, f; - - r->thresh_speech = speech; - r->thresh_sil = silence; - - /* Since threshold has been updated, recompute r->n_other */ - r->n_other = 0; - if (r->tail_state == CONT_AD_STATE_SIL) { - for (i = r->win_validfrm, f = r->win_startfrm; i > 0; --i) { - if (r->frm_pow[f] >= r->thresh_speech) - r->n_other++; - - f++; - if (f >= CONT_AD_ADFRMSIZE) - f = 0; - } - } - else if (r->tail_state == CONT_AD_STATE_SPEECH) { - for (i = r->win_validfrm, f = r->win_startfrm; i > 0; --i) { - if (r->frm_pow[f] <= r->thresh_sil) - r->n_other++; - - f++; - if (f >= CONT_AD_ADFRMSIZE) - f = 0; - } - } - - return 0; -} - - -/* - * Set the file pointer for dumping the raw input audio stream. - */ -int32 -cont_ad_set_rawfp(cont_ad_t * r, FILE * fp) -{ - if (r == NULL) - return -1; - - r->rawfp = fp; - return 0; -} - - -/* - * Set the file pointer for logging cont_ad progress. - */ -int32 -cont_ad_set_logfp(cont_ad_t * r, FILE * fp) -{ - if (r == NULL) - return -1; - - r->logfp = fp; - return 0; -} - - -/* - * One-time initialization. - */ -cont_ad_t * -cont_ad_init(ad_rec_t * a, int32(*func) (ad_rec_t *, int16 *, int32)) -{ - cont_ad_t *r; - - if ((r = malloc(sizeof(*r))) == NULL) { - E_ERROR_SYSTEM("allocation of cont_ad_t failed"); - return NULL; - } - - r->ad = a; - r->adfunc = func; - r->eof = 0; - r->rawmode = 0; - - if (a != NULL) - r->sps = a->sps; - else - r->sps = CONT_AD_SPS; - - /* Set samples/frame such that when sps=16000, spf=256 */ - r->spf = (r->sps * 256) / CONT_AD_SPS; - r->adbufsize = CONT_AD_ADFRMSIZE * r->spf; - - if ((r->adbuf = malloc(r->adbufsize * sizeof(*r->adbuf))) == NULL) { - E_ERROR_SYSTEM("allocation of audio buffer failed"); - free(r); - return NULL; - } - if ((r->pow_hist = - calloc(CONT_AD_POWHISTSIZE, sizeof(*r->pow_hist))) == NULL) { - E_ERROR_SYSTEM("allocation of power history buffer failed"); - free(r->adbuf); - free(r); - return NULL; - } - if ((r->frm_pow = - calloc(CONT_AD_ADFRMSIZE, sizeof(*r->frm_pow))) == NULL) { - E_ERROR_SYSTEM("allocation of frame power buffer failed"); - free(r->pow_hist); - free(r->adbuf); - free(r); - return NULL; - } - - r->state = CONT_AD_STATE_SIL; - r->read_ts = 0; - r->seglen = 0; - r->siglvl = 0; - r->prev_sample = 0; - r->tot_frm = 0; - r->noise_level = CONT_AD_DEFAULT_NOISE; - - r->auto_thresh = 1; - r->delta_sil = CONT_AD_DELTA_SIL; - r->delta_speech = CONT_AD_DELTA_SPEECH; - r->min_noise = CONT_AD_MIN_NOISE; - r->max_noise = CONT_AD_MAX_NOISE; - r->winsize = CONT_AD_WINSIZE; - r->speech_onset = CONT_AD_SPEECH_ONSET; - r->sil_onset = CONT_AD_SIL_ONSET; - r->leader = CONT_AD_LEADER; - r->trailer = CONT_AD_TRAILER; - - r->thresh_sil = r->noise_level + r->delta_sil; - r->thresh_speech = r->noise_level + r->delta_speech; - r->thresh_update = CONT_AD_THRESH_UPDATE; - r->adapt_rate = CONT_AD_ADAPT_RATE; - - r->tail_state = CONT_AD_STATE_SIL; - - r->spseg_head = NULL; - r->spseg_tail = NULL; - - r->rawfp = NULL; - r->logfp = NULL; - - r->n_calib_frame = 0; - - cont_ad_reset(r); - - return r; -} - - -cont_ad_t * -cont_ad_init_rawmode(ad_rec_t * a, - int32(*func) (ad_rec_t *, int16 *, int32)) -{ - cont_ad_t *r; - - r = cont_ad_init(a, func); - r->rawmode = 1; - - return r; -} diff -Nru sphinxbase-0.8/src/libsphinxad/Makefile.am sphinxbase-0.8+5prealpha/src/libsphinxad/Makefile.am --- sphinxbase-0.8/src/libsphinxad/Makefile.am 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/Makefile.am 2015-05-01 21:27:26.000000000 +0000 @@ -5,31 +5,28 @@ # Confusing libtool version info means: # -# This is API version 2, software release 1, which also supports API version 1 -libsphinxad_la_LDFLAGS = -version-info 0:1:0 +libsphinxad_la_LDFLAGS = -version-info 3:0:0 -libsphinxad_la_SOURCES = cont_ad_base.c +libsphinxad_la_SOURCES = -EXTRA_libsphinxad_la_SOURCES = ad_base.c \ +EXTRA_libsphinxad_la_SOURCES = \ + ad_base.c \ ad_oss.c \ ad_alsa.c \ ad_pulse.c \ - ad_jack.c - -EXTRA_DIST = ad_s60.cpp \ - play_win32.c \ - rec_win32.c + ad_jack.c \ + ad_openal.c \ + ad_win32.c libsphinxad_la_DEPENDENCIES = @ad_files@ libsphinxad_la_LIBADD = \ @ad_files@ \ @ad_libs@ \ - @SAMPLERATE_LIBS@ \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la -INCLUDES = \ - @SAMPLERATE_CFLAGS@ \ +AM_CFLAGS =\ + @ad_cppflags@ \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include diff -Nru sphinxbase-0.8/src/libsphinxad/Makefile.in sphinxbase-0.8+5prealpha/src/libsphinxad/Makefile.in --- sphinxbase-0.8/src/libsphinxad/Makefile.in 2012-12-12 17:28:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -18,6 +17,51 @@ # libsphinxad: Audio Device interface for Sphinx VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,14 +81,14 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/libsphinxad -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -73,34 +117,89 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) -am_libsphinxad_la_OBJECTS = cont_ad_base.lo +am_libsphinxad_la_OBJECTS = libsphinxad_la_OBJECTS = $(am_libsphinxad_la_OBJECTS) -libsphinxad_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libsphinxad_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libsphinxad_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libsphinxad_la_LDFLAGS) $(LDFLAGS) -o \ + $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libsphinxad_la_SOURCES) $(EXTRA_libsphinxad_la_SOURCES) DIST_SOURCES = $(libsphinxad_la_SOURCES) \ $(EXTRA_libsphinxad_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -114,6 +213,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -123,9 +223,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -133,15 +231,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -157,27 +254,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -210,14 +313,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -230,28 +336,25 @@ # Confusing libtool version info means: # -# This is API version 2, software release 1, which also supports API version 1 -libsphinxad_la_LDFLAGS = -version-info 0:1:0 -libsphinxad_la_SOURCES = cont_ad_base.c -EXTRA_libsphinxad_la_SOURCES = ad_base.c \ +libsphinxad_la_LDFLAGS = -version-info 3:0:0 +libsphinxad_la_SOURCES = +EXTRA_libsphinxad_la_SOURCES = \ + ad_base.c \ ad_oss.c \ ad_alsa.c \ ad_pulse.c \ - ad_jack.c - -EXTRA_DIST = ad_s60.cpp \ - play_win32.c \ - rec_win32.c + ad_jack.c \ + ad_openal.c \ + ad_win32.c libsphinxad_la_DEPENDENCIES = @ad_files@ libsphinxad_la_LIBADD = \ @ad_files@ \ @ad_libs@ \ - @SAMPLERATE_LIBS@ \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la -INCLUDES = \ - @SAMPLERATE_CFLAGS@ \ +AM_CFLAGS = \ + @ad_cppflags@ \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include @@ -269,9 +372,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/libsphinxad/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libsphinxad/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/libsphinxad/Makefile + $(AUTOMAKE) --foreign src/libsphinxad/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -290,9 +393,9 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + 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 \ @@ -300,6 +403,8 @@ else :; fi; \ done; \ test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } @@ -315,14 +420,17 @@ 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 -libsphinxad.la: $(libsphinxad_la_OBJECTS) $(libsphinxad_la_DEPENDENCIES) - $(libsphinxad_la_LINK) -rpath $(libdir) $(libsphinxad_la_OBJECTS) $(libsphinxad_la_LIBADD) $(LIBS) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libsphinxad.la: $(libsphinxad_la_OBJECTS) $(libsphinxad_la_DEPENDENCIES) $(EXTRA_libsphinxad_la_DEPENDENCIES) + $(AM_V_CCLD)$(libsphinxad_la_LINK) -rpath $(libdir) $(libsphinxad_la_OBJECTS) $(libsphinxad_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -333,30 +441,31 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ad_alsa.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ad_base.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ad_jack.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ad_openal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ad_oss.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ad_pulse.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cont_ad_base.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ad_win32.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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -364,26 +473,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -395,15 +493,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -412,6 +506,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -463,10 +572,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -551,19 +665,19 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libLTLIBRARIES + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/libsphinxad/play_win32.c sphinxbase-0.8+5prealpha/src/libsphinxad/play_win32.c --- sphinxbase-0.8/src/libsphinxad/play_win32.c 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/play_win32.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,418 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2001 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ - -/* - * HISTORY - * - * 17-Apr-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added ad_open_play_sps(), and made ad_open_play() call it. - * - * 10-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added ad_play_t type to all calls. - * - * 03-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Created. - */ - - -#include -#include -#include -#include -#include - -#include "sphinxbase/prim_type.h" -#include "sphinxbase/ad.h" - - -#define WO_BUFSIZE 3200 /* Samples/buf */ -#define N_WO_BUF 2 /* #Playback bufs */ - -/* Silvio Moioli: using OutputDebugStringW instead of OutputDebugString */ -#ifdef _WIN32_WCE -#include "ckd_alloc.h" -static void -waveout_error(char *src, int32 ret) -{ - TCHAR errbuf[512]; - wchar_t* werrbuf; - size_t len; - - waveOutGetErrorText(ret, errbuf, sizeof(errbuf)); - len = mbstowcs(NULL, errbuf, 0) + 1; - werrbuf = ckd_calloc(len, sizeof(*werrbuf)); - mbstowcs(werrbuf, errbuf, len); - - OutputDebugStringW(werrbuf); - } - -#else -static void -waveout_error(char *src, int32 ret) -{ - char errbuf[1024]; - - waveOutGetErrorText(ret, errbuf, sizeof(errbuf)); - fprintf(stderr, "%s error %d: %s\n", src, ret, errbuf); -} -#endif - - -static void -waveout_free_buf(ad_wbuf_t * b) -{ - GlobalUnlock(b->h_whdr); - GlobalFree(b->h_whdr); - GlobalUnlock(b->h_buf); - GlobalFree(b->h_buf); -} - - -static int32 -waveout_alloc_buf(ad_wbuf_t * b, int32 samples_per_buf) -{ - HGLOBAL h_buf; - LPSTR p_buf; - HGLOBAL h_whdr; - LPWAVEHDR p_whdr; - - /* Allocate data buffer */ - h_buf = - GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, - samples_per_buf * sizeof(int16)); - if (!h_buf) { - fprintf(stderr, "GlobalAlloc failed\n"); - return -1; - } - if ((p_buf = GlobalLock(h_buf)) == NULL) { - GlobalFree(h_buf); - fprintf(stderr, "GlobalLock failed\n"); - return -1; - } - - /* Allocate WAVEHDR structure */ - h_whdr = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, sizeof(WAVEHDR)); - if (h_whdr == NULL) { - GlobalUnlock(h_buf); - GlobalFree(h_buf); - - fprintf(stderr, "GlobalAlloc failed\n"); - return -1; - } - if ((p_whdr = GlobalLock(h_whdr)) == NULL) { - GlobalUnlock(h_buf); - GlobalFree(h_buf); - GlobalFree(h_whdr); - - fprintf(stderr, "GlobalLock failed\n"); - return -1; - } - - b->h_buf = h_buf; - b->p_buf = p_buf; - b->h_whdr = h_whdr; - b->p_whdr = p_whdr; - - p_whdr->lpData = p_buf; - p_whdr->dwBufferLength = samples_per_buf * sizeof(int16); - p_whdr->dwUser = 0L; - p_whdr->dwFlags = 0L; - p_whdr->dwLoops = 0L; - - return 0; -} - - -static int32 -waveout_enqueue_buf(HWAVEOUT h, LPWAVEHDR whdr) -{ - int32 st; - - if ((st = waveOutPrepareHeader(h, whdr, sizeof(WAVEHDR))) != 0) { - waveout_error("waveOutPrepareHeader", st); - return -1; - } - - if ((st = waveOutWrite(h, whdr, sizeof(WAVEHDR))) != 0) { - waveout_error("waveOutWrite", st); - return -1; - } - - return 0; -} - - -static HWAVEOUT -waveout_open(int32 samples_per_sec, int32 bytes_per_sample) -{ - WAVEFORMATEX wfmt; - int32 st; - HWAVEOUT h; - - if (bytes_per_sample != sizeof(int16)) { - fprintf(stderr, "bytes/sample != %d\n", sizeof(int16)); - return NULL; - } - - wfmt.wFormatTag = WAVE_FORMAT_PCM; - wfmt.nChannels = 1; - wfmt.nSamplesPerSec = samples_per_sec; - wfmt.nAvgBytesPerSec = samples_per_sec * bytes_per_sample; - wfmt.nBlockAlign = bytes_per_sample; - wfmt.wBitsPerSample = 8 * bytes_per_sample; - wfmt.cbSize = 0; - - /* There should be a check here for a device of the desired type; later... */ - - st = waveOutOpen((LPHWAVEOUT) & h, WAVE_MAPPER, - (LPWAVEFORMATEX) & wfmt, (DWORD) 0L, 0L, - (DWORD) CALLBACK_NULL); - if (st != 0) { - waveout_error("waveOutOpen", st); - return NULL; - } - - return h; -} - - -static void -waveout_mem_cleanup(ad_play_t * p, int32 n_buf) -{ - int32 i; - - for (i = 0; i < n_buf; i++) - waveout_free_buf(&(p->wo_buf[i])); - if (p->wo_buf) - free(p->wo_buf); - if (p->busy) - free(p->busy); -} - - -static int32 -waveout_close(ad_play_t * p) -{ - int32 st; - - waveout_mem_cleanup(p, N_WO_BUF); - - if ((st = waveOutClose(p->h_waveout)) != 0) { - waveout_error("waveOutClose", st); - return -1; - } - - free(p); - - return 0; -} - - -ad_play_t * -ad_open_play_sps(int32 sps) -{ - ad_play_t *p; - int32 i; - HWAVEOUT h; - - if ((h = waveout_open(sps, sizeof(int16))) == NULL) - return NULL; - - if ((p = (ad_play_t *) calloc(1, sizeof(ad_play_t))) == NULL) { - fprintf(stderr, "calloc(1,%d) failed\n", sizeof(ad_play_t)); - waveOutClose(h); - return NULL; - } - if ((p->wo_buf = - (ad_wbuf_t *) calloc(N_WO_BUF, sizeof(ad_wbuf_t))) == NULL) { - fprintf(stderr, "calloc(%d,%d) failed\n", N_WO_BUF, - sizeof(ad_wbuf_t)); - free(p); - waveOutClose(h); - - return NULL; - } - if ((p->busy = (char *) calloc(N_WO_BUF, sizeof(char))) == NULL) { - fprintf(stderr, "calloc(%d,%d) failed\n", N_WO_BUF, sizeof(char)); - waveout_mem_cleanup(p, 0); - free(p); - waveOutClose(h); - - return NULL; - } - for (i = 0; i < N_WO_BUF; i++) { - if (waveout_alloc_buf(&(p->wo_buf[i]), WO_BUFSIZE) < 0) { - waveout_mem_cleanup(p, i); - free(p); - waveOutClose(h); - - return NULL; - } - } - - p->h_waveout = h; - p->playing = 0; - p->opened = 1; - p->nxtbuf = 0; - p->sps = sps; - p->bps = sizeof(int16); /* HACK!! Hardwired value for bytes/sec */ - - return p; -} - - -ad_play_t * -ad_open_play(void) -{ - return (ad_open_play_sps(DEFAULT_SAMPLES_PER_SEC)); -} - - -int32 -ad_close_play(ad_play_t * p) -{ - if (!p->opened) - return 0; - - if (p->playing) - if (ad_stop_play(p) < 0) - return -1; - - if (waveout_close(p) < 0) - return -1; - - return 0; -} - - -int32 -ad_start_play(ad_play_t * p) -{ - int32 i; - - if ((!p->opened) || p->playing) - return -1; - - for (i = 0; i < N_WO_BUF; i++) - p->busy[i] = 0; - p->nxtbuf = 0; - p->playing = 1; - - return 0; -} - - -int32 -ad_stop_play(ad_play_t * p) -{ - int32 i, st; - LPWAVEHDR whdr; - - if ((!p->opened) || (!p->playing)) - return -1; - -#if 0 - whdr->dwUser = (plen <= 0) ? 1 : 0; -#endif - - /* Wait for all buffers to be emptied and unprepare them */ - for (i = 0; i < N_WO_BUF; i++) { - whdr = p->wo_buf[i].p_whdr; - - while (p->busy[i] && (!(whdr->dwFlags & WHDR_DONE))) - Sleep(100); - - st = waveOutUnprepareHeader(p->h_waveout, whdr, sizeof(WAVEHDR)); - if (st != 0) { - waveout_error("waveOutUnprepareHeader", st); - return -1; - } - - p->busy[i] = 0; - } - - return 0; -} - - -int32 -ad_write(ad_play_t * p, int16 * buf, int32 size) -{ - int32 i, k, len, st; - LPWAVEHDR whdr; - - if ((!p->opened) || (!p->playing)) - return -1; - - len = 0; - - for (i = 0; (i < N_WO_BUF) && (size > 0); i++) { - whdr = p->wo_buf[p->nxtbuf].p_whdr; - - if (p->busy[p->nxtbuf]) { - if (!(whdr->dwFlags & WHDR_DONE)) - return len; - - st = waveOutUnprepareHeader(p->h_waveout, whdr, - sizeof(WAVEHDR)); - if (st != 0) { - waveout_error("waveOutUnprepareHeader", st); - return -1; - } - - p->busy[p->nxtbuf] = 0; - } - - k = (size > WO_BUFSIZE) ? WO_BUFSIZE : size; - - whdr->dwBufferLength = k * sizeof(int16); - memcpy(whdr->lpData, (LPSTR) buf, k * sizeof(int16)); - - if (waveout_enqueue_buf(p->h_waveout, whdr) < 0) - return -1; - - buf += k; - size -= k; - len += k; - - p->busy[(p->nxtbuf)++] = 1; - if (p->nxtbuf >= N_WO_BUF) - p->nxtbuf = 0; - } - - return len; -} diff -Nru sphinxbase-0.8/src/libsphinxad/rec_win32.c sphinxbase-0.8+5prealpha/src/libsphinxad/rec_win32.c --- sphinxbase-0.8/src/libsphinxad/rec_win32.c 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxad/rec_win32.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,472 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2001 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ - -/* - * rec.c -- low level audio recording for Windows NT/95. - * - * HISTORY - * - * 19-Jan-1999 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added AD_ return codes. Added ad_open_sps_bufsize(), and - * ad_rec_t.n_buf. - * - * 07-Mar-98 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added ad_open_sps(), and made ad_open() call it. - * - * 10-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added ad_rec_t type to all calls. - * - * 03-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Created. - */ - - -#include -#include -#include -#include -#include - -#include "sphinxbase/prim_type.h" -#include "sphinxbase/ad.h" - - -#define DEFAULT_N_WI_BUF 32 /* #Recording bufs */ -#define WI_BUFSIZE 2500 /* Samples/buf (Why this specific value?? - So that at reasonable sampling rates - data is returned frequently enough.) */ - -/* Silvio Moioli: using OutputDebugStringW instead of OutputDebugString */ -#ifdef _WIN32_WCE -#include "ckd_alloc.h" -static void -wavein_error(char *src, int32 ret) -{ - TCHAR errbuf[512]; - wchar_t* werrbuf; - size_t len; - - waveOutGetErrorText(ret, errbuf, sizeof(errbuf)); - len = mbstowcs(NULL, errbuf, 0) + 1; - werrbuf = ckd_calloc(len, sizeof(*werrbuf)); - mbstowcs(werrbuf, errbuf, len); - - OutputDebugStringW(werrbuf); -} - -#else -static void -wavein_error(char *src, int32 ret) -{ - char errbuf[1024]; - - waveInGetErrorText(ret, errbuf, sizeof(errbuf)); - fprintf(stderr, "%s error %d: %s\n", src, ret, errbuf); -} -#endif - - -static void -wavein_free_buf(ad_wbuf_t * b) -{ - GlobalUnlock(b->h_whdr); - GlobalFree(b->h_whdr); - GlobalUnlock(b->h_buf); - GlobalFree(b->h_buf); -} - - -static int32 -wavein_alloc_buf(ad_wbuf_t * b, int32 samples_per_buf) -{ - HGLOBAL h_buf; /* handle to data buffer */ - LPSTR p_buf; /* pointer to data buffer */ - HGLOBAL h_whdr; /* handle to header */ - LPWAVEHDR p_whdr; /* pointer to header */ - - /* Allocate data buffer */ - h_buf = - GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, - samples_per_buf * sizeof(int16)); - if (!h_buf) { - fprintf(stderr, "GlobalAlloc failed\n"); - return -1; - } - if ((p_buf = GlobalLock(h_buf)) == NULL) { - GlobalFree(h_buf); - fprintf(stderr, "GlobalLock failed\n"); - return -1; - } - - /* Allocate WAVEHDR structure */ - h_whdr = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, sizeof(WAVEHDR)); - if (h_whdr == NULL) { - GlobalUnlock(h_buf); - GlobalFree(h_buf); - - fprintf(stderr, "GlobalAlloc failed\n"); - return -1; - } - if ((p_whdr = GlobalLock(h_whdr)) == NULL) { - GlobalUnlock(h_buf); - GlobalFree(h_buf); - GlobalFree(h_whdr); - - fprintf(stderr, "GlobalLock failed\n"); - return -1; - } - - b->h_buf = h_buf; - b->p_buf = p_buf; - b->h_whdr = h_whdr; - b->p_whdr = p_whdr; - - p_whdr->lpData = p_buf; - p_whdr->dwBufferLength = samples_per_buf * sizeof(int16); - p_whdr->dwUser = 0L; - p_whdr->dwFlags = 0L; - p_whdr->dwLoops = 0L; - - return 0; -} - - -static int32 -wavein_enqueue_buf(HWAVEIN h, LPWAVEHDR whdr) -{ - int32 st; - - if ((st = waveInPrepareHeader(h, whdr, sizeof(WAVEHDR))) != 0) { - wavein_error("waveInPrepareHeader", st); - return -1; - } - if ((st = waveInAddBuffer(h, whdr, sizeof(WAVEHDR))) != 0) { - wavein_error("waveInAddBuffer", st); - return -1; - } - - return 0; -} - - -static HWAVEIN -wavein_open(int32 samples_per_sec, int32 bytes_per_sample) -{ - WAVEFORMATEX wfmt; - int32 st; - HWAVEIN h; - - if (bytes_per_sample != sizeof(int16)) { - fprintf(stderr, "bytes/sample != %d\n", sizeof(int16)); - return NULL; - } - - wfmt.wFormatTag = WAVE_FORMAT_PCM; - wfmt.nChannels = 1; - wfmt.nSamplesPerSec = samples_per_sec; - wfmt.nAvgBytesPerSec = samples_per_sec * bytes_per_sample; - wfmt.nBlockAlign = bytes_per_sample; - wfmt.wBitsPerSample = 8 * bytes_per_sample; - - /* There should be a check here for a device of the desired type; later... */ - - st = waveInOpen((LPHWAVEIN) & h, WAVE_MAPPER, - (LPWAVEFORMATEX) & wfmt, (DWORD) 0L, 0L, - (DWORD) CALLBACK_NULL); - if (st != 0) { - wavein_error("waveInOpen", st); - return NULL; - } - - return h; -} - - -static int32 -wavein_close(ad_rec_t * r) -{ - int32 i, st; - - /* Unprepare all buffers; multiple unprepares of the same buffer are benign */ - for (i = 0; i < r->n_buf; i++) { - /* Unpreparing an unprepared buffer, on the other hand, fails - on Win98/WinME, though this is not documented - dhuggins@cs, - 2004-07-14 */ - if (!(r->wi_buf[i].p_whdr->dwFlags & WHDR_PREPARED)) - continue; - st = waveInUnprepareHeader(r->h_wavein, - r->wi_buf[i].p_whdr, sizeof(WAVEHDR)); - if (st != 0) { - wavein_error("waveInUnprepareHeader", st); - return -1; - } - } - - /* Free buffers */ - for (i = 0; i < r->n_buf; i++) - wavein_free_buf(&(r->wi_buf[i])); - free(r->wi_buf); - - if ((st = waveInClose(r->h_wavein)) != 0) { - wavein_error("waveInClose", st); - return -1; - } - - free(r); - - return 0; -} - - -ad_rec_t * -ad_open_sps_bufsize(int32 sps, int32 bufsize_msec) -{ - ad_rec_t *r; - int32 i, j; - HWAVEIN h; - - if ((h = wavein_open(sps, sizeof(int16))) == NULL) - return NULL; - - if ((r = (ad_rec_t *) malloc(sizeof(ad_rec_t))) == NULL) { - fprintf(stderr, "malloc(%d) failed\n", sizeof(ad_rec_t)); - waveInClose(h); - return NULL; - } - - r->n_buf = ((sps * bufsize_msec) / 1000) / WI_BUFSIZE; - if (r->n_buf < DEFAULT_N_WI_BUF) - r->n_buf = DEFAULT_N_WI_BUF; - printf("Allocating %d buffers of %d samples each\n", r->n_buf, - WI_BUFSIZE); - - if ((r->wi_buf = - (ad_wbuf_t *) calloc(r->n_buf, sizeof(ad_wbuf_t))) == NULL) { - fprintf(stderr, "calloc(%d,%d) failed\n", r->n_buf, - sizeof(ad_wbuf_t)); - free(r); - waveInClose(h); - - return NULL; - } - for (i = 0; i < r->n_buf; i++) { - if (wavein_alloc_buf(&(r->wi_buf[i]), WI_BUFSIZE) < 0) { - for (j = 0; j < i; j++) - wavein_free_buf(&(r->wi_buf[j])); - free(r->wi_buf); - free(r); - waveInClose(h); - - return NULL; - } - } - - r->h_wavein = h; - r->opened = 1; - r->recording = 0; - r->curbuf = r->n_buf - 1; /* current buffer with data for application */ - r->curlen = 0; /* #samples in curbuf remaining to be consumed */ - r->lastbuf = r->curbuf; - r->sps = sps; - r->bps = sizeof(int16); /* HACK!! Hardwired value for bytes/sec */ - - return r; -} - -/* FIXME: Dummy function, doesn't actually use dev. */ -ad_rec_t * -ad_open_dev(const char *dev, int32 sps) -{ - return (ad_open_sps_bufsize - (sps, WI_BUFSIZE * DEFAULT_N_WI_BUF * 1000 / sps)); -} - - -ad_rec_t * -ad_open_sps(int32 sps) -{ - return (ad_open_sps_bufsize - (sps, WI_BUFSIZE * DEFAULT_N_WI_BUF * 1000 / sps)); -} - - -ad_rec_t * -ad_open(void) -{ - return (ad_open_sps(DEFAULT_SAMPLES_PER_SEC)); /* HACK!! Rename this constant */ -} - - -int32 -ad_close(ad_rec_t * r) -{ - if (!r->opened) - return AD_ERR_NOT_OPEN; - - if (r->recording) - if (ad_stop_rec(r) < 0) - return AD_ERR_WAVE; - - if (wavein_close(r) < 0) - return AD_ERR_WAVE; - - return 0; -} - - -int32 -ad_start_rec(ad_rec_t * r) -{ - int32 i; - - if ((!r->opened) || r->recording) - return -1; - - for (i = 0; i < r->n_buf; i++) - if (wavein_enqueue_buf(r->h_wavein, r->wi_buf[i].p_whdr) < 0) - return AD_ERR_WAVE; - r->curbuf = r->n_buf - 1; /* current buffer with data for application */ - r->curlen = 0; /* #samples in curbuf remaining to be consumed */ - - if (waveInStart(r->h_wavein) != 0) - return AD_ERR_WAVE; - - r->recording = 1; - - return 0; -} - - -int32 -ad_stop_rec(ad_rec_t * r) -{ - int32 i, st; - - if ((!r->opened) || (!r->recording)) - return -1; - - if (waveInStop(r->h_wavein) != 0) - return AD_ERR_WAVE; - - if ((st = waveInReset(r->h_wavein)) != 0) { - wavein_error("waveInReset", st); - return AD_ERR_WAVE; - } - - /* Wait until all buffers marked done */ - for (i = 0; i < r->n_buf; i++) - while (!(r->wi_buf[i].p_whdr->dwFlags & WHDR_DONE)); - - if ((r->lastbuf = r->curbuf - 1) < 0) - r->lastbuf = r->n_buf - 1; - - r->recording = 0; - - return 0; -} - - -int32 -ad_read(ad_rec_t * r, int16 * buf, int32 max) -{ - int32 t, st, len; - LPWAVEHDR whdr; - int16 *sysbufp; - - if (!r->opened) - return AD_ERR_NOT_OPEN; - - /* Check if all recorded data exhausted */ - if ((!r->recording) && (r->curbuf == r->lastbuf) - && (r->curlen == 0)) - return AD_EOF; - - len = 0; - while (max > 0) { - /* Look for next buffer with recording data */ - if (r->curlen == 0) { - /* No current buffer with data; get next buffer in sequence if available */ - t = r->curbuf + 1; - if (t >= r->n_buf) - t = 0; - - if (!(r->wi_buf[t].p_whdr->dwFlags & WHDR_DONE)) - return len; - - r->curbuf = t; - r->curlen = r->wi_buf[t].p_whdr->dwBytesRecorded >> 1; - r->curoff = 0; - } - - /* Copy data from curbuf to buf */ - whdr = r->wi_buf[r->curbuf].p_whdr; - t = (max < r->curlen) ? max : r->curlen; /* #Samples to copy */ - - if (t > 0) { - sysbufp = (int16 *) (whdr->lpData); - memcpy(buf, sysbufp + r->curoff, t * sizeof(int16)); - - buf += t; - max -= t; - r->curoff += t; - r->curlen -= t; - len += t; - } - - /* If curbuf empty recycle it to system if still recording */ - if (r->curlen == 0) { - if (r->recording) { - /* Return empty buffer to system */ - st = waveInUnprepareHeader(r->h_wavein, - whdr, sizeof(WAVEHDR)); - if (st != 0) { - wavein_error("waveInUnprepareHeader", st); - return AD_ERR_WAVE; - } - - if (wavein_enqueue_buf(r->h_wavein, whdr) < 0) - return AD_ERR_WAVE; - - } - else if (r->curbuf == r->lastbuf) { - return len; - } - } - } - - return len; -} diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_interface.c sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_interface.c --- sphinxbase-0.8/src/libsphinxbase/fe/fe_interface.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_interface.c 2015-08-05 11:17:26.000000000 +0000 @@ -39,11 +39,6 @@ #include #include #include -#ifdef _WIN32_WCE -#include -#else -#include -#endif #ifdef HAVE_CONFIG_H #include @@ -111,7 +106,14 @@ return -1; } + fe->pre_speech = (int16)cmd_ln_int32_r(config, "-vad_prespeech"); + fe->post_speech = (int16)cmd_ln_int32_r(config, "-vad_postspeech"); + fe->start_speech = (int16)cmd_ln_int32_r(config, "-vad_startspeech"); + fe->vad_threshold = cmd_ln_float32_r(config, "-vad_threshold"); + fe->remove_dc = cmd_ln_boolean_r(config, "-remove_dc"); + fe->remove_noise = cmd_ln_boolean_r(config, "-remove_noise"); + fe->remove_silence = cmd_ln_boolean_r(config, "-remove_silence"); if (0 == strcmp(cmd_ln_str_r(config, "-transform"), "dct")) fe->transform = DCT_II; @@ -211,8 +213,9 @@ fe_init_auto_r(cmd_ln_t *config) { fe_t *fe; + int prespch_frame_len; - fe = ckd_calloc(1, sizeof(*fe)); + fe = (fe_t*)ckd_calloc(1, sizeof(*fe)); fe->refcount = 1; /* transfer params to front end */ @@ -228,16 +231,26 @@ fe->frame_shift = (int32) (fe->sampling_rate / fe->frame_rate + 0.5); fe->frame_size = (int32) (fe->window_length * fe->sampling_rate + 0.5); fe->prior = 0; - fe->frame_counter = 0; + + fe_start_stream(fe); assert (fe->frame_shift > 1); + if (fe->frame_size < fe->frame_shift) { + E_ERROR + ("Frame size %d (-wlen) must be greater than frame shift %d (-frate)\n", + fe->frame_size, fe->frame_shift); + fe_free(fe); + return NULL; + } + + if (fe->frame_size > (fe->fft_size)) { - E_WARN - ("Number of FFT points has to be a power of 2 higher than %d\n", - (fe->frame_size)); + E_ERROR + ("Number of FFT points has to be a power of 2 higher than %d, it is %d\n", + fe->frame_size, fe->fft_size); fe_free(fe); - return (NULL); + return NULL; } if (fe->dither) @@ -255,8 +268,23 @@ /* transfer params to mel fb */ fe_parse_melfb_params(config, fe, fe->mel_fb); + + if (fe->mel_fb->upper_filt_freq > fe->sampling_rate / 2 + 1.0) { + E_ERROR("Upper frequency %.1f is higher than samprate/2 (%.1f)\n", + fe->mel_fb->upper_filt_freq, fe->sampling_rate / 2); + fe_free(fe); + return NULL; + } + fe_build_melfilters(fe->mel_fb); + fe_compute_melcosine(fe->mel_fb); + if (fe->remove_noise || fe->remove_silence) + fe->noise_stats = fe_init_noisestats(fe->mel_fb->num_filters); + + fe->vad_data = (vad_data_t*)ckd_calloc(1, sizeof(*fe->vad_data)); + prespch_frame_len = fe->log_spec != RAW_LOG_SPEC ? fe->num_cepstra : fe->mel_fb->num_filters; + fe->vad_data->prespch_buf = fe_prespch_init(fe->pre_speech + 1, prespch_frame_len, fe->frame_shift); /* Create temporary FFT, spectrum and mel-spectrum buffers. */ /* FIXME: Gosh there are a lot of these. */ @@ -274,7 +302,6 @@ fe_print_current(fe); } - /*** Z.A.B. ***/ /*** Initialize the overflow buffers ***/ fe_start_utt(fe); return fe; @@ -295,18 +322,17 @@ void fe_init_dither(int32 seed) { - if (seed < 0) { - E_INFO("You are using the internal mechanism to generate the seed.\n"); -#ifdef _WIN32_WCE - s3_rand_seed(GetTickCount()); -#else - s3_rand_seed((long) time(0)); -#endif - } - else { - E_INFO("You are using %d as the seed.\n", seed); - s3_rand_seed(seed); - } + E_INFO("Using %d as the seed.\n", seed); + s3_rand_seed(seed); +} + +static void +fe_reset_vad_data(vad_data_t * vad_data) +{ + vad_data->in_speech = 0; + vad_data->pre_speech_frames = 0; + vad_data->post_speech_frames = 0; + fe_prespch_reset_cep(vad_data->prespch_buf); } int32 @@ -316,9 +342,17 @@ memset(fe->overflow_samps, 0, fe->frame_size * sizeof(int16)); fe->start_flag = 1; fe->prior = 0; + fe_reset_vad_data(fe->vad_data); return 0; } +void +fe_start_stream(fe_t *fe) +{ + fe->sample_counter = 0; + fe_reset_noisestats(fe->noise_stats); +} + int fe_get_output_size(fe_t *fe) { @@ -335,11 +369,10 @@ *out_frame_size = fe->frame_size; } -int32 -fe_process_frame(fe_t * fe, int16 const *spch, int32 nsamps, mfcc_t * fr_cep) +uint8 +fe_get_vad_state(fe_t *fe) { - fe_read_frame(fe, spch, nsamps); - return fe_write_frame(fe, fr_cep); + return fe->vad_data->in_speech; } int @@ -347,11 +380,72 @@ int16 const **inout_spch, size_t *inout_nsamps, mfcc_t **buf_cep, - int32 *inout_nframes) + int32 *inout_nframes, + int32 *out_frameidx) +{ + return fe_process_frames_ext(fe, inout_spch, inout_nsamps, buf_cep, inout_nframes, NULL, NULL, out_frameidx); +} + + +/** + * Copy frames collected in prespeech buffer + */ +static int +fe_copy_from_prespch(fe_t *fe, int32 *inout_nframes, mfcc_t **buf_cep, int outidx) { - int32 frame_count; - int outidx, i, n, n_overflow, orig_n_overflow; + while ((*inout_nframes) > 0 && fe_prespch_read_cep(fe->vad_data->prespch_buf, buf_cep[outidx]) > 0) { + outidx++; + (*inout_nframes)--; + } + return outidx; +} + +/** + * Update pointers after we processed a frame. A complex logic used in two places in fe_process_frames + */ +static int +fe_check_prespeech(fe_t *fe, int32 *inout_nframes, mfcc_t **buf_cep, int outidx, int32 *out_frameidx, size_t *inout_nsamps, int orig_nsamps) +{ + if (fe->vad_data->in_speech) { + if (fe_prespch_ncep(fe->vad_data->prespch_buf) > 0) { + + /* Previous frame triggered vad into speech state. Last frame is in the end of + prespeech buffer, so overwrite it */ + outidx = fe_copy_from_prespch(fe, inout_nframes, buf_cep, outidx); + + /* Sets the start frame for the returned data so that caller can update timings */ + if (out_frameidx) { + *out_frameidx = (fe->sample_counter + orig_nsamps - *inout_nsamps) / fe->frame_shift - fe->pre_speech; + } + } else { + outidx++; + (*inout_nframes)--; + } + } + /* Amount of data behind the original input which is still needed. */ + if (fe->num_overflow_samps > 0) + fe->num_overflow_samps -= fe->frame_shift; + + return outidx; +} + +int +fe_process_frames_ext(fe_t *fe, + int16 const **inout_spch, + size_t *inout_nsamps, + mfcc_t **buf_cep, + int32 *inout_nframes, + int16 *voiced_spch, + int32 *voiced_spch_nsamps, + int32 *out_frameidx) +{ + int outidx, n_overflow, orig_n_overflow; int16 const *orig_spch; + size_t orig_nsamps; + + /* The logic here is pretty complex, please be careful with modifications */ + + /* FIXME: Dump PCM data if needed */ /* In the special case where there is no output buffer, return the * maximum number of frames which would be generated. */ @@ -362,9 +456,14 @@ *inout_nframes = 1 + ((*inout_nsamps + fe->num_overflow_samps - fe->frame_size) / fe->frame_shift); + if (!fe->vad_data->in_speech) + *inout_nframes += fe_prespch_ncep(fe->vad_data->prespch_buf); return *inout_nframes; } + if (out_frameidx) + *out_frameidx = 0; + /* Are there not enough samples to make at least 1 frame? */ if (*inout_nsamps + fe->num_overflow_samps < (size_t)fe->frame_size) { if (*inout_nsamps > 0) { @@ -387,62 +486,54 @@ return 0; } + /* Index of output frame. */ + outidx = 0; + + /* Try to read from prespeech buffer */ + if (fe->vad_data->in_speech && fe_prespch_ncep(fe->vad_data->prespch_buf) > 0) { + outidx = fe_copy_from_prespch(fe, inout_nframes, buf_cep, outidx); + if ((*inout_nframes) < 1) { + /* mfcc buffer is filled from prespeech buffer */ + *inout_nframes = outidx; + return 0; + } + } + /* Keep track of the original start of the buffer. */ orig_spch = *inout_spch; + orig_nsamps = *inout_nsamps; orig_n_overflow = fe->num_overflow_samps; - /* How many frames will we be able to get? */ - frame_count = 1 - + ((*inout_nsamps + fe->num_overflow_samps - fe->frame_size) - / fe->frame_shift); - /* Limit it to the number of output frames available. */ - if (frame_count > *inout_nframes) - frame_count = *inout_nframes; - /* Index of output frame. */ - outidx = 0; /* Start processing, taking care of any incoming overflow. */ - if (fe->num_overflow_samps) { + if (fe->num_overflow_samps > 0) { int offset = fe->frame_size - fe->num_overflow_samps; - /* Append start of spch to overflow samples to make a full frame. */ memcpy(fe->overflow_samps + fe->num_overflow_samps, *inout_spch, offset * sizeof(**inout_spch)); fe_read_frame(fe, fe->overflow_samps, fe->frame_size); - assert(outidx < frame_count); - if ((n = fe_write_frame(fe, buf_cep[outidx])) < 0) - return -1; - outidx += n; /* Update input-output pointers and counters. */ *inout_spch += offset; *inout_nsamps -= offset; - fe->num_overflow_samps -= fe->frame_shift; - } - else { + } else { fe_read_frame(fe, *inout_spch, fe->frame_size); - assert(outidx < frame_count); - if ((n = fe_write_frame(fe, buf_cep[outidx])) < 0) - return -1; - outidx += n; /* Update input-output pointers and counters. */ *inout_spch += fe->frame_size; *inout_nsamps -= fe->frame_size; } - /* Process all remaining frames. */ - for (i = 1; i < frame_count; ++i) { - assert(*inout_nsamps >= (size_t)fe->frame_shift); + fe_write_frame(fe, buf_cep[outidx], voiced_spch != NULL); + outidx = fe_check_prespeech(fe, inout_nframes, buf_cep, outidx, out_frameidx, inout_nsamps, orig_nsamps); + /* Process all remaining frames. */ + while (*inout_nframes > 0 && *inout_nsamps >= (size_t)fe->frame_shift) { fe_shift_frame(fe, *inout_spch, fe->frame_shift); - assert(outidx < frame_count); - if ((n = fe_write_frame(fe, buf_cep[outidx])) < 0) - return -1; - outidx += n; + fe_write_frame(fe, buf_cep[outidx], voiced_spch != NULL); + + outidx = fe_check_prespeech(fe, inout_nframes, buf_cep, outidx, out_frameidx, inout_nsamps, orig_nsamps); + /* Update input-output pointers and counters. */ *inout_spch += fe->frame_shift; *inout_nsamps -= fe->frame_shift; - /* Amount of data behind the original input which is still needed. */ - if (fe->num_overflow_samps > 0) - fe->num_overflow_samps -= fe->frame_shift; } /* How many relevant overflow samples are there left? */ @@ -464,8 +555,7 @@ *inout_spch += n_overflow; *inout_nsamps -= n_overflow; } - } - else { + } else { /* There is still some relevant data left in the overflow buffer. */ /* Shift existing data to the beginning. */ memmove(fe->overflow_samps, @@ -486,8 +576,11 @@ } } - /* Finally update the frame counter with the number of frames we procesed. */ + /* Finally update the frame counter with the number of frames + * and global sample counter with number of samples we procesed*/ *inout_nframes = outidx; /* FIXME: Not sure why I wrote it this way... */ + fe->sample_counter += orig_nsamps - *inout_nsamps; + return 0; } @@ -499,14 +592,14 @@ int rv; /* Figure out how many frames we will need. */ - fe_process_frames(fe, NULL, &nsamps, NULL, nframes); + fe_process_frames(fe, NULL, &nsamps, NULL, nframes, NULL); /* Create the output buffer (it has to exist, even if there are no output frames). */ if (*nframes) cep = (mfcc_t **)ckd_calloc_2d(*nframes, fe->feature_dimension, sizeof(**cep)); else cep = (mfcc_t **)ckd_calloc_2d(1, fe->feature_dimension, sizeof(**cep)); /* Now just call fe_process_frames() with the allocated buffer. */ - rv = fe_process_frames(fe, &spch, &nsamps, cep, nframes); + rv = fe_process_frames(fe, &spch, &nsamps, cep, nframes, NULL); *cep_block = cep; return rv; @@ -516,13 +609,13 @@ int32 fe_end_utt(fe_t * fe, mfcc_t * cepvector, int32 * nframes) { - /* Process any remaining data. */ + /* Process any remaining data, not very accurate for the VAD */ + *nframes = 0; if (fe->num_overflow_samps > 0) { fe_read_frame(fe, fe->overflow_samps, fe->num_overflow_samps); - *nframes = fe_write_frame(fe, cepvector); - } - else { - *nframes = 0; + fe_write_frame(fe, cepvector, FALSE); + if (fe->vad_data->in_speech) + *nframes = 1; } /* reset overflow buffers... */ @@ -566,6 +659,15 @@ ckd_free(fe->mfspec); ckd_free(fe->overflow_samps); ckd_free(fe->hamming_window); + + if (fe->noise_stats) + fe_free_noisestats(fe->noise_stats); + + if (fe->vad_data) { + fe_prespch_free(fe->vad_data->prespch_buf); + ckd_free(fe->vad_data); + } + cmd_ln_free_r(fe->config); ckd_free(fe); diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_internal.h sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_internal.h --- sphinxbase-0.8/src/libsphinxbase/fe/fe_internal.h 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_internal.h 2015-03-24 17:40:14.000000000 +0000 @@ -45,6 +45,10 @@ #include "sphinxbase/fe.h" #include "sphinxbase/fixpoint.h" +#include "fe_noise.h" +#include "fe_prespch_buf.h" +#include "fe_type.h" + #ifdef __cplusplus extern "C" { #endif @@ -53,24 +57,6 @@ } #endif -#ifdef FIXED16 -/* Q15 format */ -typedef int16 frame_t; -typedef int16 window_t; -typedef int32 powspec_t; -typedef struct { int16 r, i; } complex; -#elif defined(FIXED_POINT) -typedef fixed32 frame_t; -typedef int32 powspec_t; -typedef fixed32 window_t; -typedef struct { fixed32 r, i; } complex; -#else /* FIXED_POINT */ -typedef float64 frame_t; -typedef float64 powspec_t; -typedef float64 window_t; -typedef struct { float64 r, i; } complex; -#endif /* FIXED_POINT */ - /* Values for the 'logspec' field. */ enum { RAW_LOG_SPEC = 1, @@ -120,11 +106,19 @@ /* sqrt(1/2), also used for unitary DCT-II/DCT-III */ #define SQRT_HALF FLOAT2MFCC(0.707106781186548) +typedef struct vad_data_s { + uint8 in_speech; + int16 pre_speech_frames; + int16 post_speech_frames; + prespch_buf_t* prespch_buf; +} vad_data_t; + /** Structure for the front-end computation. */ struct fe_s { cmd_ln_t *config; int refcount; + float32 sampling_rate; int16 frame_rate; int16 frame_shift; @@ -141,11 +135,13 @@ uint8 swap; uint8 dither; uint8 transform; + uint8 remove_noise; + uint8 remove_silence; float32 pre_emphasis_alpha; int32 seed; - int16 frame_counter; + size_t sample_counter; uint8 start_flag; uint8 reserved; @@ -156,6 +152,16 @@ /* Half of a Hamming Window. */ window_t *hamming_window; + /* Noise removal */ + noise_stats_t *noise_stats; + + /* VAD variables */ + int16 pre_speech; + int16 post_speech; + int16 start_speech; + float32 vad_threshold; + vad_data_t *vad_data; + /* Temporary buffers for processing. */ /* FIXME: too many of these. */ int16 *spch; @@ -166,20 +172,6 @@ int16 prior; }; -#define BB_SAMPLING_RATE 16000 -#define DEFAULT_BB_FFT_SIZE 512 -#define DEFAULT_BB_FRAME_SHIFT 160 -#define DEFAULT_BB_NUM_FILTERS 40 -#define DEFAULT_BB_LOWER_FILT_FREQ 133.33334 -#define DEFAULT_BB_UPPER_FILT_FREQ 6855.4976 - -#define NB_SAMPLING_RATE 8000 -#define DEFAULT_NB_FFT_SIZE 256 -#define DEFAULT_NB_FRAME_SHIFT 80 -#define DEFAULT_NB_NUM_FILTERS 31 -#define DEFAULT_NB_LOWER_FILT_FREQ 200 -#define DEFAULT_NB_UPPER_FILT_FREQ 3500 - void fe_init_dither(int32 seed); /* Apply 1/2 bit noise to a buffer of audio. */ @@ -192,7 +184,7 @@ int fe_shift_frame(fe_t *fe, int16 const *in, int32 len); /* Process a frame of data into features. */ -int32 fe_write_frame(fe_t *fe, mfcc_t *fea); +void fe_write_frame(fe_t *fe, mfcc_t *feat, int32 store_pcm); /* Initialization functions. */ int32 fe_build_melfilters(melfb_t *MEL_FB); @@ -200,6 +192,9 @@ void fe_create_hamming(window_t *in, int32 in_len); void fe_create_twiddle(fe_t *fe); +fixed32 fe_log_add(fixed32 x, fixed32 y); +fixed32 fe_log_sub(fixed32 x, fixed32 y); + /* Miscellaneous processing functions. */ void fe_spec2cep(fe_t * fe, const powspec_t * mflogspec, mfcc_t * mfcep); void fe_dct2(fe_t *fe, const powspec_t *mflogspec, mfcc_t *mfcep, int htk); diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_noise.c sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_noise.c --- sphinxbase-0.8/src/libsphinxbase/fe/fe_noise.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_noise.c 2015-03-26 16:52:50.000000000 +0000 @@ -0,0 +1,492 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + +/* This noise removal algorithm is inspired by the following papers + * Computationally Efficient Speech Enchancement by Spectral Minina Tracking + * by G. Doblinger + * + * Power-Normalized Cepstral Coefficients (PNCC) for Robust Speech Recognition + * by C. Kim. + * + * For the recent research and state of art see papers about IMRCA and + * A Minimum-Mean-Square-Error Noise Reduction Algorithm On Mel-Frequency + * Cepstra For Robust Speech Recognition by Dong Yu and others + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include "sphinxbase/prim_type.h" +#include "sphinxbase/ckd_alloc.h" +#include "sphinxbase/strfuncs.h" +#include "sphinxbase/err.h" + +#include "fe_noise.h" +#include "fe_internal.h" + +/* Noise supression constants */ +#define SMOOTH_WINDOW 4 +#define LAMBDA_POWER 0.7 +#define LAMBDA_A 0.995 +#define LAMBDA_B 0.5 +#define LAMBDA_T 0.85 +#define MU_T 0.2 +#define MAX_GAIN 20 +#define SLOW_PEAK_FORGET_FACTOR 0.9995 +#define SLOW_PEAK_LEARN_FACTOR 0.9 +#define SPEECH_VOLUME_RANGE 8.0 + +//#define VAD_DEBUG 1 +#ifdef VAD_DEBUG +static FILE *vad_stats; +static int64 low_snr = 0; +static int64 low_volume = 0; +#endif + +struct noise_stats_s { + /* Smoothed power */ + powspec_t *power; + /* Noise estimate */ + powspec_t *noise; + /* Signal floor estimate */ + powspec_t *floor; + /* Peak for temporal masking */ + powspec_t *peak; + + /* Initialize it next time */ + uint8 undefined; + /* Number of items to process */ + uint32 num_filters; + + /* Sum of slow peaks for VAD */ + powspec_t slow_peak_sum; + + /* Precomputed constants */ + powspec_t lambda_power; + powspec_t comp_lambda_power; + powspec_t lambda_a; + powspec_t comp_lambda_a; + powspec_t lambda_b; + powspec_t comp_lambda_b; + powspec_t lambda_t; + powspec_t mu_t; + powspec_t max_gain; + powspec_t inv_max_gain; + + powspec_t smooth_scaling[2 * SMOOTH_WINDOW + 3]; +}; + +static void +fe_lower_envelope(noise_stats_t *noise_stats, powspec_t * buf, powspec_t * floor_buf, int32 num_filt) +{ + int i; + + for (i = 0; i < num_filt; i++) { +#ifndef FIXED_POINT + if (buf[i] >= floor_buf[i]) { + floor_buf[i] = + noise_stats->lambda_a * floor_buf[i] + noise_stats->comp_lambda_a * buf[i]; + } + else { + floor_buf[i] = + noise_stats->lambda_b * floor_buf[i] + noise_stats->comp_lambda_b * buf[i]; + } +#else + if (buf[i] >= floor_buf[i]) { + floor_buf[i] = fe_log_add(noise_stats->lambda_a + floor_buf[i], + noise_stats->comp_lambda_a + buf[i]); + } + else { + floor_buf[i] = fe_log_add(noise_stats->lambda_b + floor_buf[i], + noise_stats->comp_lambda_b + buf[i]); + } +#endif + } +} + +/* update slow peaks, check if max signal level big enough compared to peak */ +static int16 +fe_is_frame_quiet(noise_stats_t *noise_stats, powspec_t *buf, int32 num_filt) +{ + int i; + int16 is_quiet; + powspec_t sum; + double smooth_factor; + + sum = 0.0; + for (i = 0; i < num_filt; i++) { +#ifndef FIXED_POINT + sum += buf[i]; +#else + sum = fe_log_add(sum, buf[i]); +#endif + } +#ifndef FIXED_POINT + sum = log(sum); +#endif + smooth_factor = (sum > noise_stats->slow_peak_sum) ? SLOW_PEAK_LEARN_FACTOR : SLOW_PEAK_FORGET_FACTOR; + noise_stats->slow_peak_sum = noise_stats->slow_peak_sum * smooth_factor + + sum * (1 - smooth_factor); + +#ifdef VAD_DEBUG +#ifndef FIXED_POINT + fprintf(vad_stats, "%.3f %.3f ", noise_stats->slow_peak_sum, sum); +#else + fprintf(vad_stats, "%d %d ", noise_stats->slow_peak_sum, sum); +#endif +#endif +#ifndef FIXED_POINT + is_quiet = noise_stats->slow_peak_sum - SPEECH_VOLUME_RANGE > sum; +#else + is_quiet = noise_stats->slow_peak_sum - FLOAT2FIX(SPEECH_VOLUME_RANGE) > sum; +#endif + return is_quiet; +} + +/* temporal masking */ +static void +fe_temp_masking(noise_stats_t *noise_stats, powspec_t * buf, powspec_t * peak, int32 num_filt) +{ + powspec_t cur_in; + int i; + + for (i = 0; i < num_filt; i++) { + cur_in = buf[i]; + +#ifndef FIXED_POINT + peak[i] *= noise_stats->lambda_t; + if (buf[i] < noise_stats->lambda_t * peak[i]) + buf[i] = peak[i] * noise_stats->mu_t; +#else + peak[i] += noise_stats->lambda_t; + if (buf[i] < noise_stats->lambda_t + peak[i]) + buf[i] = peak[i] + noise_stats->mu_t; +#endif + + if (cur_in > peak[i]) + peak[i] = cur_in; + } +} + +/* spectral weight smoothing */ +static void +fe_weight_smooth(noise_stats_t *noise_stats, powspec_t * buf, powspec_t * coefs, int32 num_filt) +{ + int i, j; + int l1, l2; + powspec_t coef; + + for (i = 0; i < num_filt; i++) { + l1 = ((i - SMOOTH_WINDOW) > 0) ? (i - SMOOTH_WINDOW) : 0; + l2 = ((i + SMOOTH_WINDOW) < + (num_filt - 1)) ? (i + SMOOTH_WINDOW) : (num_filt - 1); + +#ifndef FIXED_POINT + coef = 0; + for (j = l1; j <= l2; j++) { + coef += coefs[j]; + } + buf[i] = buf[i] * (coef / (l2 - l1 + 1)); +#else + coef = MIN_FIXLOG; + for (j = l1; j <= l2; j++) { + coef = fe_log_add(coef, coefs[j]); + } + buf[i] = buf[i] + coef - noise_stats->smooth_scaling[l2 - l1 + 1]; +#endif + + } +} + +noise_stats_t * +fe_init_noisestats(int num_filters) +{ + int i; + noise_stats_t *noise_stats; + + noise_stats = (noise_stats_t *) ckd_calloc(1, sizeof(noise_stats_t)); + + noise_stats->power = + (powspec_t *) ckd_calloc(num_filters, sizeof(powspec_t)); + noise_stats->noise = + (powspec_t *) ckd_calloc(num_filters, sizeof(powspec_t)); + noise_stats->floor = + (powspec_t *) ckd_calloc(num_filters, sizeof(powspec_t)); + noise_stats->peak = + (powspec_t *) ckd_calloc(num_filters, sizeof(powspec_t)); + + noise_stats->undefined = TRUE; + noise_stats->num_filters = num_filters; + +#ifndef FIXED_POINT + noise_stats->lambda_power = LAMBDA_POWER; + noise_stats->comp_lambda_power = 1 - LAMBDA_POWER; + noise_stats->lambda_a = LAMBDA_A; + noise_stats->comp_lambda_a = 1 - LAMBDA_A; + noise_stats->lambda_b = LAMBDA_B; + noise_stats->comp_lambda_b = 1 - LAMBDA_B; + noise_stats->lambda_t = LAMBDA_T; + noise_stats->mu_t = MU_T; + noise_stats->max_gain = MAX_GAIN; + noise_stats->inv_max_gain = 1.0 / MAX_GAIN; + + for (i = 1; i < 2 * SMOOTH_WINDOW + 1; i++) { + noise_stats->smooth_scaling[i] = 1.0 / i; + } +#else + noise_stats->lambda_power = FLOAT2FIX(log(LAMBDA_POWER)); + noise_stats->comp_lambda_power = FLOAT2FIX(log(1 - LAMBDA_POWER)); + noise_stats->lambda_a = FLOAT2FIX(log(LAMBDA_A)); + noise_stats->comp_lambda_a = FLOAT2FIX(log(1 - LAMBDA_A)); + noise_stats->lambda_b = FLOAT2FIX(log(LAMBDA_B)); + noise_stats->comp_lambda_b = FLOAT2FIX(log(1 - LAMBDA_B)); + noise_stats->lambda_t = FLOAT2FIX(log(LAMBDA_T)); + noise_stats->mu_t = FLOAT2FIX(log(MU_T)); + noise_stats->max_gain = FLOAT2FIX(log(MAX_GAIN)); + noise_stats->inv_max_gain = FLOAT2FIX(log(1.0 / MAX_GAIN)); + + for (i = 1; i < 2 * SMOOTH_WINDOW + 3; i++) { + noise_stats->smooth_scaling[i] = FLOAT2FIX(log(i)); + } +#endif + +#ifdef VAD_DEBUG + vad_stats = fopen("vad_debug", "w"); +#endif + + return noise_stats; +} + +void +fe_reset_noisestats(noise_stats_t * noise_stats) +{ + if (noise_stats) + noise_stats->undefined = TRUE; +} + +void +fe_free_noisestats(noise_stats_t * noise_stats) +{ + ckd_free(noise_stats->power); + ckd_free(noise_stats->noise); + ckd_free(noise_stats->floor); + ckd_free(noise_stats->peak); + ckd_free(noise_stats); +#ifdef VAD_DEBUG + fclose(vad_stats); + E_INFO("Low SNR [%ld] frames; Low volume [%ld] frames\n", (long)low_snr, (long)low_volume); +#endif + +} + +/** + * For fixed point we are doing the computation in a fixlog domain, + * so we have to add many processing cases. + */ +void +fe_track_snr(fe_t * fe, int32 *in_speech) +{ + powspec_t *signal; + powspec_t *gain; + noise_stats_t *noise_stats; + powspec_t *mfspec; + int32 i, num_filts; + int16 is_quiet; + powspec_t lrt, snr; + + if (!(fe->remove_noise || fe->remove_silence)) { + *in_speech = TRUE; + return; + } + + noise_stats = fe->noise_stats; + mfspec = fe->mfspec; + num_filts = noise_stats->num_filters; + + signal = (powspec_t *) ckd_calloc(num_filts, sizeof(powspec_t)); + + if (noise_stats->undefined) { + noise_stats->slow_peak_sum = FIX2FLOAT(0.0); + for (i = 0; i < num_filts; i++) { + noise_stats->power[i] = mfspec[i]; +#ifndef FIXED_POINT + noise_stats->noise[i] = mfspec[i] / noise_stats->max_gain; + noise_stats->floor[i] = mfspec[i] / noise_stats->max_gain; + noise_stats->peak[i] = 0.0; +#else + noise_stats->noise[i] = mfspec[i] - noise_stats->max_gain;; + noise_stats->floor[i] = mfspec[i] - noise_stats->max_gain; + noise_stats->peak[i] = MIN_FIXLOG; +#endif + } + noise_stats->undefined = FALSE; + } + + /* Calculate smoothed power */ + for (i = 0; i < num_filts; i++) { +#ifndef FIXED_POINT + noise_stats->power[i] = + noise_stats->lambda_power * noise_stats->power[i] + noise_stats->comp_lambda_power * mfspec[i]; +#else + noise_stats->power[i] = fe_log_add(noise_stats->lambda_power + noise_stats->power[i], + noise_stats->comp_lambda_power + mfspec[i]); +#endif + } + + /* Noise estimation and vad decision */ + fe_lower_envelope(noise_stats, noise_stats->power, noise_stats->noise, num_filts); + + lrt = FLOAT2FIX(0.0); + for (i = 0; i < num_filts; i++) { +#ifndef FIXED_POINT + signal[i] = noise_stats->power[i] - noise_stats->noise[i]; + if (signal[i] < 1.0) + signal[i] = 1.0; + snr = log(noise_stats->power[i] / noise_stats->noise[i]); +#else + signal[i] = fe_log_sub(noise_stats->power[i], noise_stats->noise[i]); + snr = noise_stats->power[i] - noise_stats->noise[i]; +#endif + if (snr > lrt) + lrt = snr; + } + is_quiet = fe_is_frame_quiet(noise_stats, signal, num_filts); + +#ifdef VAD_DEBUG + if (lrt < fe->vad_threshold) + low_snr++; + else if (is_quiet) + low_volume++; +#endif + +#ifndef FIXED_POINT + if (fe->remove_silence && (lrt < fe->vad_threshold || is_quiet)) { +#else + if (fe->remove_silence && (lrt < FLOAT2FIX(fe->vad_threshold) || is_quiet)) { +#endif + *in_speech = FALSE; + } else { + *in_speech = TRUE; + } + +#ifdef VAD_DEBUG +#ifndef FIXED_POINT + fprintf(vad_stats, "%.3f %d\n", lrt, *in_speech); +#else + fprintf(vad_stats, "%d %d\n", lrt, *in_speech); +#endif +#endif + + fe_lower_envelope(noise_stats, signal, noise_stats->floor, num_filts); + + fe_temp_masking(noise_stats, signal, noise_stats->peak, num_filts); + + if (!fe->remove_noise) { + //no need for further calculations if noise cancellation disabled + ckd_free(signal); + return; + } + + for (i = 0; i < num_filts; i++) { + if (signal[i] < noise_stats->floor[i]) + signal[i] = noise_stats->floor[i]; + } + + gain = (powspec_t *) ckd_calloc(num_filts, sizeof(powspec_t)); +#ifndef FIXED_POINT + for (i = 0; i < num_filts; i++) { + if (signal[i] < noise_stats->max_gain * noise_stats->power[i]) + gain[i] = signal[i] / noise_stats->power[i]; + else + gain[i] = noise_stats->max_gain; + if (gain[i] < noise_stats->inv_max_gain) + gain[i] = noise_stats->inv_max_gain; + } +#else + for (i = 0; i < num_filts; i++) { + gain[i] = signal[i] - noise_stats->power[i]; + if (gain[i] > noise_stats->max_gain) + gain[i] = noise_stats->max_gain; + if (gain[i] < noise_stats->inv_max_gain) + gain[i] = noise_stats->inv_max_gain; + } +#endif + + /* Weight smoothing and time frequency normalization */ + fe_weight_smooth(noise_stats, mfspec, gain, num_filts); + + ckd_free(gain); + ckd_free(signal); +} + +void +fe_vad_hangover(fe_t * fe, mfcc_t * feat, int32 is_speech, int32 store_pcm) +{ + if (!fe->vad_data->in_speech) { + fe_prespch_write_cep(fe->vad_data->prespch_buf, feat); + if (store_pcm) + fe_prespch_write_pcm(fe->vad_data->prespch_buf, fe->spch); + } + + /* track vad state and deal with cepstrum prespeech buffer */ + if (is_speech) { + fe->vad_data->post_speech_frames = 0; + if (!fe->vad_data->in_speech) { + fe->vad_data->pre_speech_frames++; + /* check for transition sil->speech */ + if (fe->vad_data->pre_speech_frames >= fe->start_speech) { + fe->vad_data->pre_speech_frames = 0; + fe->vad_data->in_speech = 1; + } + } + } else { + fe->vad_data->pre_speech_frames = 0; + if (fe->vad_data->in_speech) { + fe->vad_data->post_speech_frames++; + /* check for transition speech->sil */ + if (fe->vad_data->post_speech_frames >= fe->post_speech) { + fe->vad_data->post_speech_frames = 0; + fe->vad_data->in_speech = 0; + fe_prespch_reset_cep(fe->vad_data->prespch_buf); + fe_prespch_reset_pcm(fe->vad_data->prespch_buf); + } + } + } +} diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_noise.h sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_noise.h --- sphinxbase-0.8/src/libsphinxbase/fe/fe_noise.h 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_noise.h 2015-03-24 17:40:14.000000000 +0000 @@ -0,0 +1,66 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 FE_NOISE_H +#define FE_NOISE_H + +#include "sphinxbase/fe.h" +#include "sphinxbase/fixpoint.h" +#include "fe_type.h" + +typedef struct noise_stats_s noise_stats_t; + +/* Creates noisestats object */ +noise_stats_t *fe_init_noisestats(int num_filters); + +/* Resets collected noise statistics */ +void fe_reset_noisestats(noise_stats_t * noise_stats); + +/* Frees allocated data */ +void fe_free_noisestats(noise_stats_t * noise_stats); + +/** + * Process frame, update noise statistics, remove noise components if needed, + * and return local vad decision. + */ +void fe_track_snr(fe_t *fe, int32 *in_speech); + +/** + * Updates global state based on local VAD state smoothing the estimate. + */ +void fe_vad_hangover(fe_t *fe, mfcc_t *feat, int32 is_speech, int32 store_pcm); + +#endif /* FE_NOISE_H */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_prespch_buf.c sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_prespch_buf.c --- sphinxbase-0.8/src/libsphinxbase/fe/fe_prespch_buf.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_prespch_buf.c 2015-03-26 16:52:50.000000000 +0000 @@ -0,0 +1,206 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== +* Copyright (c) 2013 Carnegie Mellon University. All rights +* reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* +* This work was supported in part by funding from the Defense Advanced +* Research Projects Agency and the National Science Foundation of the +* United States of America, and the CMU Sphinx Speech Consortium. +* +* THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND +* ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY +* NOR ITS EMPLOYEES 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. +* +* ==================================================================== +* +*/ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include + +#include "sphinxbase/ckd_alloc.h" +#include "sphinxbase/err.h" + +#include "fe_prespch_buf.h" + +struct prespch_buf_s { + /* saved mfcc frames */ + mfcc_t **cep_buf; + /* saved pcm audio */ + int16 *pcm_buf; + + /* flag for pcm buffer initialization */ + int16 cep_write_ptr; + /* read pointer for cep buffer */ + int16 cep_read_ptr; + /* Count */ + int16 ncep; + + + /* flag for pcm buffer initialization */ + int16 pcm_write_ptr; + /* read pointer for cep buffer */ + int16 pcm_read_ptr; + /* Count */ + int16 npcm; + + /* frames amount in cep buffer */ + int16 num_frames_cep; + /* frames amount in pcm buffer */ + int16 num_frames_pcm; + /* filters amount */ + int16 num_cepstra; + /* amount of fresh samples in frame */ + int16 num_samples; +}; + +prespch_buf_t * +fe_prespch_init(int num_frames, int num_cepstra, int num_samples) +{ + prespch_buf_t *prespch_buf; + + prespch_buf = (prespch_buf_t *) ckd_calloc(1, sizeof(prespch_buf_t)); + + prespch_buf->num_cepstra = num_cepstra; + prespch_buf->num_frames_cep = num_frames; + prespch_buf->num_samples = num_samples; + prespch_buf->num_frames_pcm = 0; + + prespch_buf->cep_write_ptr = 0; + prespch_buf->cep_read_ptr = 0; + prespch_buf->ncep = 0; + + prespch_buf->pcm_write_ptr = 0; + prespch_buf->pcm_read_ptr = 0; + prespch_buf->npcm = 0; + + prespch_buf->cep_buf = (mfcc_t **) + ckd_calloc_2d(num_frames, num_cepstra, + sizeof(**prespch_buf->cep_buf)); + + prespch_buf->pcm_buf = (int16 *) + ckd_calloc(prespch_buf->num_frames_pcm * prespch_buf->num_samples, + sizeof(int16)); + + return prespch_buf; +} + + +int +fe_prespch_read_cep(prespch_buf_t * prespch_buf, mfcc_t * feat) +{ + if (prespch_buf->ncep == 0) + return 0; + memcpy(feat, prespch_buf->cep_buf[prespch_buf->cep_read_ptr], + sizeof(mfcc_t) * prespch_buf->num_cepstra); + prespch_buf->cep_read_ptr = (prespch_buf->cep_read_ptr + 1) % prespch_buf->num_frames_cep; + prespch_buf->ncep--; + return 1; +} + +void +fe_prespch_write_cep(prespch_buf_t * prespch_buf, mfcc_t * feat) +{ + memcpy(prespch_buf->cep_buf[prespch_buf->cep_write_ptr], feat, + sizeof(mfcc_t) * prespch_buf->num_cepstra); + prespch_buf->cep_write_ptr = (prespch_buf->cep_write_ptr + 1) % prespch_buf->num_frames_cep; + if (prespch_buf->ncep < prespch_buf->num_frames_cep) { + prespch_buf->ncep++; + } else { + prespch_buf->cep_read_ptr = (prespch_buf->cep_read_ptr + 1) % prespch_buf->num_frames_cep; + } +} + +void +fe_prespch_read_pcm(prespch_buf_t * prespch_buf, int16 *samples, + int32 *samples_num) +{ + int i; + int16 *cursample = samples; + *samples_num = prespch_buf->npcm * prespch_buf->num_samples; + for (i = 0; i < prespch_buf->npcm; i++) { + memcpy(cursample, &prespch_buf->pcm_buf[prespch_buf->pcm_read_ptr * prespch_buf->num_samples], + prespch_buf->num_samples * sizeof(int16)); + prespch_buf->pcm_read_ptr = (prespch_buf->pcm_read_ptr + 1) % prespch_buf->num_frames_pcm; + } + prespch_buf->pcm_read_ptr = 0; + prespch_buf->pcm_write_ptr = 0; + prespch_buf->npcm = 0; + return; +} + +void +fe_prespch_write_pcm(prespch_buf_t * prespch_buf, int16 * samples) +{ + int32 sample_ptr; + + sample_ptr = prespch_buf->pcm_write_ptr * prespch_buf->num_samples; + memcpy(&prespch_buf->pcm_buf[sample_ptr], samples, + prespch_buf->num_samples * sizeof(int16)); + + prespch_buf->pcm_write_ptr = (prespch_buf->pcm_write_ptr + 1) % prespch_buf->num_frames_pcm; + if (prespch_buf->npcm < prespch_buf->num_frames_pcm) { + prespch_buf->npcm++; + } else { + prespch_buf->pcm_read_ptr = (prespch_buf->pcm_read_ptr + 1) % prespch_buf->num_frames_pcm; + } +} + +void +fe_prespch_reset_cep(prespch_buf_t * prespch_buf) +{ + prespch_buf->cep_read_ptr = 0; + prespch_buf->cep_write_ptr = 0; + prespch_buf->ncep = 0; +} + +void +fe_prespch_reset_pcm(prespch_buf_t * prespch_buf) +{ + prespch_buf->pcm_read_ptr = 0; + prespch_buf->pcm_write_ptr = 0; + prespch_buf->npcm = 0; +} + +void +fe_prespch_free(prespch_buf_t * prespch_buf) +{ + if (!prespch_buf) + return; + if (prespch_buf->cep_buf) + ckd_free_2d((void **) prespch_buf->cep_buf); + if (prespch_buf->pcm_buf) + ckd_free(prespch_buf->pcm_buf); + ckd_free(prespch_buf); +} + +int32 +fe_prespch_ncep(prespch_buf_t * prespch_buf) +{ + return prespch_buf->ncep; +} diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_prespch_buf.h sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_prespch_buf.h --- sphinxbase-0.8/src/libsphinxbase/fe/fe_prespch_buf.h 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_prespch_buf.h 2015-03-26 16:52:50.000000000 +0000 @@ -0,0 +1,76 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + +/* Buffer that maintains both features and raw audio for the VAD implementation */ + +#ifndef FE_INTERNAL_H +#define FE_INTERNAL_H + +#include "sphinxbase/fe.h" + +typedef struct prespch_buf_s prespch_buf_t; + +/* Creates prespeech buffer */ +prespch_buf_t *fe_prespch_init(int num_frames, int num_cepstra, + int num_samples); + +/* Reads mfcc frame from prespeech buffer */ +int fe_prespch_read_cep(prespch_buf_t * prespch_buf, mfcc_t * fea); + +/* Writes mfcc frame to prespeech buffer */ +void fe_prespch_write_cep(prespch_buf_t * prespch_buf, mfcc_t * fea); + +/* Reads pcm frame from prespeech buffer */ +void fe_prespch_read_pcm(prespch_buf_t * prespch_buf, int16 *samples, + int32 * samples_num); + +/* Writes pcm frame to prespeech buffer */ +void fe_prespch_write_pcm(prespch_buf_t * prespch_buf, int16 * samples); + +/* Resets read/write pointers for cepstrum buffer */ +void fe_prespch_reset_cep(prespch_buf_t * prespch_buf); + +/* Resets read/write pointer for pcm audio buffer */ +void fe_prespch_reset_pcm(prespch_buf_t * prespch_buf); + +/* Releases prespeech buffer */ +void fe_prespch_free(prespch_buf_t * prespch_buf); + +/* Returns number of accumulated frames */ +int32 fe_prespch_ncep(prespch_buf_t * prespch_buf); + +#endif /* FE_INTERNAL_H */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_sigproc.c sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_sigproc.c --- sphinxbase-0.8/src/libsphinxbase/fe/fe_sigproc.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_sigproc.c 2015-05-01 21:16:09.000000000 +0000 @@ -53,8 +53,8 @@ * Windows math.h does not contain M_PI */ #ifndef M_PI -#define M_PI 3.14159265358979323846 /* pi */ -#endif // M_PI +#define M_PI 3.14159265358979323846 +#endif #include "sphinxbase/prim_type.h" #include "sphinxbase/ckd_alloc.h" @@ -78,6 +78,7 @@ #endif #ifdef FIXED_POINT + /* Internal log-addition table for natural log with radix point at 8 * bits. Each entry is 256 * log(1 + e^{-n/256}). This is used in the * log-add computation: @@ -90,170 +91,172 @@ * when x > y, z = x + logadd_table[-(y-x)] */ static const unsigned char fe_logadd_table[] = { -177, 177, 176, 176, 175, 175, 174, 174, 173, 173, -172, 172, 172, 171, 171, 170, 170, 169, 169, 168, -168, 167, 167, 166, 166, 165, 165, 164, 164, 163, -163, 162, 162, 161, 161, 161, 160, 160, 159, 159, -158, 158, 157, 157, 156, 156, 155, 155, 155, 154, -154, 153, 153, 152, 152, 151, 151, 151, 150, 150, -149, 149, 148, 148, 147, 147, 147, 146, 146, 145, -145, 144, 144, 144, 143, 143, 142, 142, 141, 141, -141, 140, 140, 139, 139, 138, 138, 138, 137, 137, -136, 136, 136, 135, 135, 134, 134, 134, 133, 133, -132, 132, 131, 131, 131, 130, 130, 129, 129, 129, -128, 128, 128, 127, 127, 126, 126, 126, 125, 125, -124, 124, 124, 123, 123, 123, 122, 122, 121, 121, -121, 120, 120, 119, 119, 119, 118, 118, 118, 117, -117, 117, 116, 116, 115, 115, 115, 114, 114, 114, -113, 113, 113, 112, 112, 112, 111, 111, 110, 110, -110, 109, 109, 109, 108, 108, 108, 107, 107, 107, -106, 106, 106, 105, 105, 105, 104, 104, 104, 103, -103, 103, 102, 102, 102, 101, 101, 101, 100, 100, -100, 99, 99, 99, 98, 98, 98, 97, 97, 97, -96, 96, 96, 96, 95, 95, 95, 94, 94, 94, -93, 93, 93, 92, 92, 92, 92, 91, 91, 91, -90, 90, 90, 89, 89, 89, 89, 88, 88, 88, -87, 87, 87, 87, 86, 86, 86, 85, 85, 85, -85, 84, 84, 84, 83, 83, 83, 83, 82, 82, -82, 82, 81, 81, 81, 80, 80, 80, 80, 79, -79, 79, 79, 78, 78, 78, 78, 77, 77, 77, -77, 76, 76, 76, 75, 75, 75, 75, 74, 74, -74, 74, 73, 73, 73, 73, 72, 72, 72, 72, -71, 71, 71, 71, 71, 70, 70, 70, 70, 69, -69, 69, 69, 68, 68, 68, 68, 67, 67, 67, -67, 67, 66, 66, 66, 66, 65, 65, 65, 65, -64, 64, 64, 64, 64, 63, 63, 63, 63, 63, -62, 62, 62, 62, 61, 61, 61, 61, 61, 60, -60, 60, 60, 60, 59, 59, 59, 59, 59, 58, -58, 58, 58, 58, 57, 57, 57, 57, 57, 56, -56, 56, 56, 56, 55, 55, 55, 55, 55, 54, -54, 54, 54, 54, 53, 53, 53, 53, 53, 52, -52, 52, 52, 52, 52, 51, 51, 51, 51, 51, -50, 50, 50, 50, 50, 50, 49, 49, 49, 49, -49, 49, 48, 48, 48, 48, 48, 48, 47, 47, -47, 47, 47, 47, 46, 46, 46, 46, 46, 46, -45, 45, 45, 45, 45, 45, 44, 44, 44, 44, -44, 44, 43, 43, 43, 43, 43, 43, 43, 42, -42, 42, 42, 42, 42, 41, 41, 41, 41, 41, -41, 41, 40, 40, 40, 40, 40, 40, 40, 39, -39, 39, 39, 39, 39, 39, 38, 38, 38, 38, -38, 38, 38, 37, 37, 37, 37, 37, 37, 37, -37, 36, 36, 36, 36, 36, 36, 36, 35, 35, -35, 35, 35, 35, 35, 35, 34, 34, 34, 34, -34, 34, 34, 34, 33, 33, 33, 33, 33, 33, -33, 33, 32, 32, 32, 32, 32, 32, 32, 32, -32, 31, 31, 31, 31, 31, 31, 31, 31, 31, -30, 30, 30, 30, 30, 30, 30, 30, 30, 29, -29, 29, 29, 29, 29, 29, 29, 29, 28, 28, -28, 28, 28, 28, 28, 28, 28, 28, 27, 27, -27, 27, 27, 27, 27, 27, 27, 27, 26, 26, -26, 26, 26, 26, 26, 26, 26, 26, 25, 25, -25, 25, 25, 25, 25, 25, 25, 25, 25, 24, -24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -23, 23, 23, 23, 23, 23, 23, 23, 23, 23, -23, 23, 22, 22, 22, 22, 22, 22, 22, 22, -22, 22, 22, 22, 21, 21, 21, 21, 21, 21, -21, 21, 21, 21, 21, 21, 21, 20, 20, 20, -20, 20, 20, 20, 20, 20, 20, 20, 20, 20, -19, 19, 19, 19, 19, 19, 19, 19, 19, 19, -19, 19, 19, 19, 18, 18, 18, 18, 18, 18, -18, 18, 18, 18, 18, 18, 18, 18, 18, 17, -17, 17, 17, 17, 17, 17, 17, 17, 17, 17, -17, 17, 17, 17, 16, 16, 16, 16, 16, 16, -16, 16, 16, 16, 16, 16, 16, 16, 16, 16, -16, 15, 15, 15, 15, 15, 15, 15, 15, 15, -15, 15, 15, 15, 15, 15, 15, 15, 14, 14, -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -14, 14, 14, 14, 14, 14, 14, 13, 13, 13, -13, 13, 13, 13, 13, 13, 13, 13, 13, 13, -13, 13, 13, 13, 13, 13, 13, 12, 12, 12, -12, 12, 12, 12, 12, 12, 12, 12, 12, 12, -12, 12, 12, 12, 12, 12, 12, 12, 12, 11, -11, 11, 11, 11, 11, 11, 11, 11, 11, 11, -11, 11, 11, 11, 11, 11, 11, 11, 11, 11, -11, 11, 11, 10, 10, 10, 10, 10, 10, 10, -10, 10, 10, 10, 10, 10, 10, 10, 10, 10, -10, 10, 10, 10, 10, 10, 10, 10, 10, 9, -9, 9, 9, 9, 9, 9, 9, 9, 9, 9, -9, 9, 9, 9, 9, 9, 9, 9, 9, 9, -9, 9, 9, 9, 9, 9, 9, 9, 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, -7, 7, 7, 7, 7, 7, 7, 7, 7, 7, -7, 7, 7, 7, 7, 7, 7, 7, 7, 7, -7, 7, 7, 7, 7, 7, 7, 7, 7, 7, -7, 7, 7, 7, 7, 7, 7, 7, 6, 6, -6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -6, 5, 5, 5, 5, 5, 5, 5, 5, 5, -5, 5, 5, 5, 5, 5, 5, 5, 5, 5, -5, 5, 5, 5, 5, 5, 5, 5, 5, 5, -5, 5, 5, 5, 5, 5, 5, 5, 5, 5, -5, 5, 5, 5, 5, 5, 5, 5, 5, 5, -5, 5, 5, 4, 4, 4, 4, 4, 4, 4, -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -4, 4, 4, 4, 4, 4, 4, 4, 3, 3, -3, 3, 3, 3, 3, 3, 3, 3, 3, 3, -3, 3, 3, 3, 3, 3, 3, 3, 3, 3, -3, 3, 3, 3, 3, 3, 3, 3, 3, 3, -3, 3, 3, 3, 3, 3, 3, 3, 3, 3, -3, 3, 3, 3, 3, 3, 3, 3, 3, 3, -3, 3, 3, 3, 3, 3, 3, 3, 3, 3, -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, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 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, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 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 + 177, 177, 176, 176, 175, 175, 174, 174, 173, 173, + 172, 172, 172, 171, 171, 170, 170, 169, 169, 168, + 168, 167, 167, 166, 166, 165, 165, 164, 164, 163, + 163, 162, 162, 161, 161, 161, 160, 160, 159, 159, + 158, 158, 157, 157, 156, 156, 155, 155, 155, 154, + 154, 153, 153, 152, 152, 151, 151, 151, 150, 150, + 149, 149, 148, 148, 147, 147, 147, 146, 146, 145, + 145, 144, 144, 144, 143, 143, 142, 142, 141, 141, + 141, 140, 140, 139, 139, 138, 138, 138, 137, 137, + 136, 136, 136, 135, 135, 134, 134, 134, 133, 133, + 132, 132, 131, 131, 131, 130, 130, 129, 129, 129, + 128, 128, 128, 127, 127, 126, 126, 126, 125, 125, + 124, 124, 124, 123, 123, 123, 122, 122, 121, 121, + 121, 120, 120, 119, 119, 119, 118, 118, 118, 117, + 117, 117, 116, 116, 115, 115, 115, 114, 114, 114, + 113, 113, 113, 112, 112, 112, 111, 111, 110, 110, + 110, 109, 109, 109, 108, 108, 108, 107, 107, 107, + 106, 106, 106, 105, 105, 105, 104, 104, 104, 103, + 103, 103, 102, 102, 102, 101, 101, 101, 100, 100, + 100, 99, 99, 99, 98, 98, 98, 97, 97, 97, + 96, 96, 96, 96, 95, 95, 95, 94, 94, 94, + 93, 93, 93, 92, 92, 92, 92, 91, 91, 91, + 90, 90, 90, 89, 89, 89, 89, 88, 88, 88, + 87, 87, 87, 87, 86, 86, 86, 85, 85, 85, + 85, 84, 84, 84, 83, 83, 83, 83, 82, 82, + 82, 82, 81, 81, 81, 80, 80, 80, 80, 79, + 79, 79, 79, 78, 78, 78, 78, 77, 77, 77, + 77, 76, 76, 76, 75, 75, 75, 75, 74, 74, + 74, 74, 73, 73, 73, 73, 72, 72, 72, 72, + 71, 71, 71, 71, 71, 70, 70, 70, 70, 69, + 69, 69, 69, 68, 68, 68, 68, 67, 67, 67, + 67, 67, 66, 66, 66, 66, 65, 65, 65, 65, + 64, 64, 64, 64, 64, 63, 63, 63, 63, 63, + 62, 62, 62, 62, 61, 61, 61, 61, 61, 60, + 60, 60, 60, 60, 59, 59, 59, 59, 59, 58, + 58, 58, 58, 58, 57, 57, 57, 57, 57, 56, + 56, 56, 56, 56, 55, 55, 55, 55, 55, 54, + 54, 54, 54, 54, 53, 53, 53, 53, 53, 52, + 52, 52, 52, 52, 52, 51, 51, 51, 51, 51, + 50, 50, 50, 50, 50, 50, 49, 49, 49, 49, + 49, 49, 48, 48, 48, 48, 48, 48, 47, 47, + 47, 47, 47, 47, 46, 46, 46, 46, 46, 46, + 45, 45, 45, 45, 45, 45, 44, 44, 44, 44, + 44, 44, 43, 43, 43, 43, 43, 43, 43, 42, + 42, 42, 42, 42, 42, 41, 41, 41, 41, 41, + 41, 41, 40, 40, 40, 40, 40, 40, 40, 39, + 39, 39, 39, 39, 39, 39, 38, 38, 38, 38, + 38, 38, 38, 37, 37, 37, 37, 37, 37, 37, + 37, 36, 36, 36, 36, 36, 36, 36, 35, 35, + 35, 35, 35, 35, 35, 35, 34, 34, 34, 34, + 34, 34, 34, 34, 33, 33, 33, 33, 33, 33, + 33, 33, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 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, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 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, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 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 }; -static const int fe_logadd_table_size = sizeof(fe_logadd_table) / sizeof(fe_logadd_table[0]); -static fixed32 +static const int fe_logadd_table_size = + sizeof(fe_logadd_table) / sizeof(fe_logadd_table[0]); + +fixed32 fe_log_add(fixed32 x, fixed32 y) { fixed32 d, r; @@ -266,12 +269,14 @@ d = (y - x) >> (DEFAULT_RADIX - 8); r = y; } - if (d > fe_logadd_table_size - 1) + + if (r <= MIN_FIXLOG) + return MIN_FIXLOG; + else if (d > fe_logadd_table_size - 1) return r; else { - r += ((fixed32)fe_logadd_table[d] << (DEFAULT_RADIX - 8)); -/* - printf("%d + %d = %d | %f + %f = %f | %f + %f = %f\n", + r += ((fixed32) fe_logadd_table[d] << (DEFAULT_RADIX - 8)); +/* printf("%d - %d = %d | %f - %f = %f | %f - %f = %f\n", x, y, r, FIX2FLOAT(x), FIX2FLOAT(y), FIX2FLOAT(r), exp(FIX2FLOAT(x)), exp(FIX2FLOAT(y)), exp(FIX2FLOAT(r))); */ @@ -279,6 +284,244 @@ } } +/* + * log_sub for spectral subtraction, similar to logadd but we had + * to smooth function around zero with fixlog in order to improve + * table interpolation properties + * + * The table is created with the file included into distribution + * + * e^z = e^x - e^y + * e^z = e^x (1 - e^(-(x - y))) + * z = x + log(1 - e^(-(x - y))) + * z = x + fixlog(a) + (log(1 - e^(- a)) - log(a)) + * + * Input radix is 8 output radix is 10 + */ +static const uint16 fe_logsub_table[] = { +1, 3, 5, 7, 9, 11, 13, 15, 17, 19, +21, 23, 25, 27, 29, 31, 33, 35, 37, 39, +41, 43, 45, 47, 49, 51, 53, 55, 56, 58, +60, 62, 64, 66, 68, 70, 72, 74, 76, 78, +80, 82, 84, 86, 88, 90, 92, 94, 95, 97, +99, 101, 103, 105, 107, 109, 111, 113, 115, 117, +119, 121, 122, 124, 126, 128, 130, 132, 134, 136, +138, 140, 142, 143, 145, 147, 149, 151, 153, 155, +157, 159, 161, 162, 164, 166, 168, 170, 172, 174, +176, 178, 179, 181, 183, 185, 187, 189, 191, 193, +194, 196, 198, 200, 202, 204, 206, 207, 209, 211, +213, 215, 217, 219, 220, 222, 224, 226, 228, 230, +232, 233, 235, 237, 239, 241, 243, 244, 246, 248, +250, 252, 254, 255, 257, 259, 261, 263, 265, 266, +268, 270, 272, 274, 275, 277, 279, 281, 283, 284, +286, 288, 290, 292, 294, 295, 297, 299, 301, 302, +304, 306, 308, 310, 311, 313, 315, 317, 319, 320, +322, 324, 326, 327, 329, 331, 333, 335, 336, 338, +340, 342, 343, 345, 347, 349, 350, 352, 354, 356, +357, 359, 361, 363, 364, 366, 368, 370, 371, 373, +375, 377, 378, 380, 382, 384, 385, 387, 389, 391, +392, 394, 396, 397, 399, 401, 403, 404, 406, 408, +410, 411, 413, 415, 416, 418, 420, 422, 423, 425, +427, 428, 430, 432, 433, 435, 437, 439, 440, 442, +444, 445, 447, 449, 450, 452, 454, 455, 457, 459, +460, 462, 464, 465, 467, 469, 471, 472, 474, 476, +477, 479, 481, 482, 484, 486, 487, 489, 490, 492, +494, 495, 497, 499, 500, 502, 504, 505, 507, 509, +510, 512, 514, 515, 517, 518, 520, 522, 523, 525, +527, 528, 530, 532, 533, 535, 536, 538, 540, 541, +543, 544, 546, 548, 549, 551, 553, 554, 556, 557, +559, 561, 562, 564, 565, 567, 569, 570, 572, 573, +575, 577, 578, 580, 581, 583, 585, 586, 588, 589, +591, 592, 594, 596, 597, 599, 600, 602, 603, 605, +607, 608, 610, 611, 613, 614, 616, 618, 619, 621, +622, 624, 625, 627, 628, 630, 632, 633, 635, 636, +638, 639, 641, 642, 644, 645, 647, 649, 650, 652, +653, 655, 656, 658, 659, 661, 662, 664, 665, 667, +668, 670, 671, 673, 674, 676, 678, 679, 681, 682, +684, 685, 687, 688, 690, 691, 693, 694, 696, 697, +699, 700, 702, 703, 705, 706, 708, 709, 711, 712, +714, 715, 717, 718, 719, 721, 722, 724, 725, 727, +728, 730, 731, 733, 734, 736, 737, 739, 740, 742, +743, 745, 746, 747, 749, 750, 752, 753, 755, 756, +758, 759, 761, 762, 763, 765, 766, 768, 769, 771, +772, 774, 775, 776, 778, 779, 781, 782, 784, 785, +786, 788, 789, 791, 792, 794, 795, 796, 798, 799, +801, 802, 804, 805, 806, 808, 809, 811, 812, 813, +815, 816, 818, 819, 820, 822, 823, 825, 826, 827, +829, 830, 832, 833, 834, 836, 837, 839, 840, 841, +843, 844, 846, 847, 848, 850, 851, 852, 854, 855, +857, 858, 859, 861, 862, 863, 865, 866, 868, 869, +870, 872, 873, 874, 876, 877, 878, 880, 881, 883, +884, 885, 887, 888, 889, 891, 892, 893, 895, 896, +897, 899, 900, 901, 903, 904, 905, 907, 908, 909, +911, 912, 913, 915, 916, 917, 919, 920, 921, 923, +924, 925, 927, 928, 929, 931, 932, 933, 935, 936, +937, 939, 940, 941, 942, 944, 945, 946, 948, 949, +950, 952, 953, 954, 956, 957, 958, 959, 961, 962, +963, 965, 966, 967, 968, 970, 971, 972, 974, 975, +976, 977, 979, 980, 981, 983, 984, 985, 986, 988, +989, 990, 991, 993, 994, 995, 997, 998, 999, 1000, +1002, 1003, 1004, 1005, 1007, 1008, 1009, 1010, 1012, 1013, +1014, 1015, 1017, 1018, 1019, 1020, 1022, 1023, 1024, 1025, +1027, 1028, 1029, 1030, 1032, 1033, 1034, 1035, 1037, 1038, +1039, 1040, 1041, 1043, 1044, 1045, 1046, 1048, 1049, 1050, +1051, 1052, 1054, 1055, 1056, 1057, 1059, 1060, 1061, 1062, +1063, 1065, 1066, 1067, 1068, 1069, 1071, 1072, 1073, 1074, +1076, 1077, 1078, 1079, 1080, 1082, 1083, 1084, 1085, 1086, +1087, 1089, 1090, 1091, 1092, 1093, 1095, 1096, 1097, 1098, +1099, 1101, 1102, 1103, 1104, 1105, 1106, 1108, 1109, 1110, +1111, 1112, 1114, 1115, 1116, 1117, 1118, 1119, 1121, 1122, +1123, 1124, 1125, 1126, 1128, 1129, 1130, 1131, 1132, 1133, +1135, 1136, 1137, 1138, 1139, 1140, 1141, 1143, 1144, 1145, +1146, 1147, 1148, 1149, 1151, 1152, 1153, 1154, 1155, 1156, +1157, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1167, 1168, +1169, 1170, 1171, 1172, 1173, 1174, 1176, 1177, 1178, 1179, +1180, 1181, 1182, 1183, 1185, 1186, 1187, 1188, 1189, 1190, +1191, 1192, 1193, 1195, 1196, 1197, 1198, 1199, 1200, 1201, +1202, 1203, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, +1213, 1214, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, +1224, 1225, 1226, 1228, 1229, 1230, 1231, 1232, 1233, 1234, +1235, 1236, 1237, 1238, 1239, 1240, 1242, 1243, 1244, 1245, +1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, +1256, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, +1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1277, +1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, +1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, +1298, 1299, 1300, 1301, 1302, 1303, 1305, 1306, 1307, 1308, +1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, +1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, +1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, +1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, +1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, +1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, +1369, 1370, 1371, 1372, 1372, 1373, 1374, 1375, 1376, 1377, +1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, +1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, +1398, 1399, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, +1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, +1417, 1418, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, +1426, 1427, 1428, 1429, 1430, 1431, 1432, 1432, 1433, 1434, +1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, +1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, +1454, 1455, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, +1463, 1464, 1465, 1466, 1466, 1467, 1468, 1469, 1470, 1471, +1472, 1473, 1474, 1475, 1475, 1476, 1477, 1478, 1479, 1480, +1481, 1482, 1483, 1483, 1484, 1485, 1486, 1487, 1488, 1489, +1490, 1491, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, +1499, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1506, +1507, 1508, 1509, 1510, 1511, 1512, 1513, 1513, 1514, 1515, +1516, 1517, 1518, 1519, 1520, 1520, 1521, 1522, 1523, 1524, +1525, 1526, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1532, +1533, 1534, 1535, 1536, 1537, 1538, 1538, 1539, 1540, 1541, +1542, 1543, 1544, 1544, 1545, 1546, 1547, 1548, 1549, 1550, +1550, 1551, 1552, 1553, 1554, 1555, 1555, 1556, 1557, 1558, +1559, 1560, 1560, 1561, 1562, 1563, 1564, 1565, 1565, 1566, +1567, 1568, 1569, 1570, 1570, 1571, 1572, 1573, 1574, 1575, +1575, 1576, 1577, 1578, 1579, 1580, 1580, 1581, 1582, 1583, +1584, 1584, 1585, 1586, 1587, 1588, 1589, 1589, 1590, 1591, +1592, 1593, 1593, 1594, 1595, 1596, 1597, 1598, 1598, 1599, +1600, 1601, 1602, 1602, 1603, 1604, 1605, 1606, 1606, 1607, +1608, 1609, 1610, 1610, 1611, 1612, 1613, 1614, 1614, 1615, +1616, 1617, 1618, 1618, 1619, 1620, 1621, 1622, 1622, 1623, +1624, 1625, 1626, 1626, 1627, 1628, 1629, 1630, 1630, 1631, +1632, 1633, 1634, 1634, 1635, 1636, 1637, 1637, 1638, 1639, +1640, 1641, 1641, 1642, 1643, 1644, 1645, 1645, 1646, 1647, +1648, 1648, 1649, 1650, 1651, 1652, 1652, 1653, 1654, 1655, +1655, 1656, 1657, 1658, 1658, 1659, 1660, 1661, 1662, 1662, +1663, 1664, 1665, 1665, 1666, 1667, 1668, 1668, 1669, 1670, +1671, 1671, 1672, 1673, 1674, 1675, 1675, 1676, 1677, 1678, +1678, 1679, 1680, 1681, 1681, 1682, 1683, 1684, 1684, 1685, +1686, 1687, 1687, 1688, 1689, 1690, 1690, 1691, 1692, 1693, +1693, 1694, 1695, 1696, 1696, 1697, 1698, 1699, 1699, 1700, +1701, 1702, 1702, 1703, 1704, 1705, 1705, 1706, 1707, 1707, +1708, 1709, 1710, 1710, 1711, 1712, 1713, 1713, 1714, 1715, +1716, 1716, 1717, 1718, 1718, 1719, 1720, 1721, 1721, 1722, +1723, 1724, 1724, 1725, 1726, 1727, 1727, 1728, 1729, 1729, +1730, 1731, 1732, 1732, 1733, 1734, 1734, 1735, 1736, 1737, +1737, 1738, 1739, 1740, 1740, 1741, 1742, 1742, 1743, 1744, +1745, 1745, 1746, 1747, 1747, 1748, 1749, 1749, 1750, 1751, +1752, 1752, 1753, 1754, 1754, 1755, 1756, 1757, 1757, 1758, +1759, 1759, 1760, 1761, 1762, 1762, 1763, 1764, 1764, 1765, +1766, 1766, 1767, 1768, 1769, 1769, 1770, 1771, 1771, 1772, +1773, 1773, 1774, 1775, 1776, 1776, 1777, 1778, 1778, 1779, +1780, 1780, 1781, 1782, 1782, 1783, 1784, 1784, 1785, 1786, +1787, 1787, 1788, 1789, 1789, 1790, 1791, 1791, 1792, 1793, +1793, 1794, 1795, 1795, 1796, 1797, 1798, 1798, 1799, 1800, +1800, 1801, 1802, 1802, 1803, 1804, 1804, 1805, 1806, 1806, +1807, 1808, 1808, 1809, 1810, 1810, 1811, 1812, 1812, 1813, +1814, 1814, 1815, 1816, 1816, 1817, 1818, 1818, 1819, 1820, +1820, 1821, 1822, 1822, 1823, 1824, 1824, 1825, 1826, 1826, +1827, 1828, 1828, 1829, 1830, 1830, 1831, 1832, 1832, 1833, +1834, 1834, 1835, 1836, 1836, 1837, 1838, 1838, 1839, 1840, +1840, 1841, 1842, 1842, 1843, 1844, 1844, 1845, 1845, 1846, +1847, 1847, 1848, 1849, 1849, 1850, 1851, 1851, 1852, 1853, +1853, 1854, 1855, 1855, 1856, 1857, 1857, 1858, 1858, 1859, +1860, 1860, 1861, 1862, 1862, 1863, 1864, 1864, 1865, 1866, +1866, 1867, 1867, 1868, 1869, 1869, 1870, 1871, 1871, 1872, +1873, 1873, 1874, 1874, 1875, 1876, 1876, 1877, 1878, 1878, +1879, 1879, 1880, 1881, 1881, 1882, 1883, 1883, 1884, 1885, +1885, 1886, 1886, 1887, 1888, 1888, 1889, 1890, 1890, 1891, +1891, 1892, 1893, 1893, 1894, 1895, 1895, 1896, 1896, 1897, +1898, 1898, 1899, 1900, 1900, 1901, 1901, 1902, 1903, 1903, +1904, 1904, 1905, 1906, 1906, 1907, 1908, 1908, 1909, 1909, +1910, 1911, 1911, 1912, 1912, 1913, 1914, 1914, 1915, 1916, +1916, 1917, 1917, 1918, 1919, 1919, 1920, 1920, 1921, 1922, +1922, 1923, 1923, 1924, 1925, 1925, 1926, 1926, 1927, 1928, +1928, 1929, 1929, 1930, 1931, 1931, 1932, 1932, 1933, 1934, +1934, 1935, 1935, 1936, 1937, 1937, 1938, 1938, 1939, 1940, +1940, 1941, 1941, 1942, 1943, 1943, 1944, 1944, 1945, 1946, +1946, 1947, 1947, 1948, 1949, 1949, 1950, 1950, 1951, 1952, +1952, 1953, 1953, 1954, 1955, 1955, 1956, 1956, 1957, 1957, +1958, 1959, 1959, 1960, 1960, 1961, 1962, 1962, 1963, 1963, +1964, 1964, 1965, 1966, 1966, 1967, 1967, 1968, 1969, 1969, +1970, 1970, 1971, 1971, 1972, 1973, 1973, 1974, 1974, 1975, +1976, 1976, 1977, 1977, 1978, 1978, 1979, 1980, 1980, 1981, +1981, 1982, 1982, 1983, 1984, 1984, 1985, 1985, 1986, 1986, +1987, 1988, 1988, 1989, 1989, 1990, 1990, 1991, 1992, 1992, +1993, 1993, 1994, 1994, 1995, 1996, 1996, 1997, 1997, 1998, +1998, 1999, 1999, 2000, 2001, 2001, 2002, 2002, 2003, 2003, +2004, 2005, 2005, 2006, 2006, 2007, 2007, 2008, 2008, 2009, +2010, 2010, 2011, 2011, 2012, 2012, 2013, 2014, 2014, 2015, +2015, 2016, 2016, 2017, 2017, 2018, 2019, 2019, 2020, 2020, +2021, 2021, 2022, 2022, 2023, 2023, 2024, 2025, 2025, 2026, +2026, 2027, 2027, 2028, 2028, 2029, 2030, 2030, 2031, 2031, +2032, 2032, 2033, 2033, 2034, 2034, 2035, 2036, 2036, 2037, +2037, 2038, 2038, 2039, 2039, 2040, 2040, 2041, 2042, 2042, +2043, 2043, 2044, 2044, 2045, 2045, 2046, 2046, 2047, 2048, +2048, 2049, 2049, 2050, 2050, 2051, 2051, 2052, 2052, 2053, +2053, 2054, 2054, 2055, 2056, 2056, 2057, 2057, 2058, 2058, +2059, 2059, 2060, 2060, 2061, 2061, 2062, 2062, 2063, 2064, +2064, 2065, 2065, 2066, 2066, 2067, 2067, 2068, 2068, 2069, +2069, 2070, 2070, 2071, 2072, 2072, 2073, 2073, 2074, 2074, +2075, 2075, 2076, 2076, 2077, 2077, 2078, 2078, 2079, 2079, +2080, 2080, 2081 +}; + +static const int fe_logsub_table_size = + sizeof(fe_logsub_table) / sizeof(fe_logsub_table[0]); + +fixed32 +fe_log_sub(fixed32 x, fixed32 y) +{ + fixed32 d, r; + + if (x < MIN_FIXLOG || y >= x) + return MIN_FIXLOG; + + d = (x - y) >> (DEFAULT_RADIX - 8); + + if (d > fe_logsub_table_size - 1) + return x; + + r = fe_logsub_table[d] << (DEFAULT_RADIX - 10); +/* + printf("diff=%d\n", + x + FIXLN(x-y) - r - + (x + FLOAT2FIX(logf(-expm1f(FIX2FLOAT(y - x)))))); +*/ + return x + FIXLN(x-y) - r; +} + static fixed32 fe_log(float32 x) { @@ -292,7 +535,7 @@ #endif static float32 -fe_mel(melfb_t *mel, float32 x) +fe_mel(melfb_t * mel, float32 x) { float32 warped = fe_warp_unwarped_to_warped(mel, x); @@ -300,22 +543,26 @@ } static float32 -fe_melinv(melfb_t *mel, float32 x) +fe_melinv(melfb_t * mel, float32 x) { float32 warped = (float32) (700.0 * (pow(10.0, x / 2595.0) - 1.0)); return fe_warp_warped_to_unwarped(mel, warped); } int32 -fe_build_melfilters(melfb_t *mel_fb) +fe_build_melfilters(melfb_t * mel_fb) { float32 melmin, melmax, melbw, fftfreq; int n_coeffs, i, j; + /* Filter coefficient matrix, in flattened form. */ - mel_fb->spec_start = ckd_malloc(mel_fb->num_filters * sizeof(*mel_fb->spec_start)); - mel_fb->filt_start = ckd_malloc(mel_fb->num_filters * sizeof(*mel_fb->filt_start)); - mel_fb->filt_width = ckd_malloc(mel_fb->num_filters * sizeof(*mel_fb->filt_width)); + mel_fb->spec_start = + ckd_calloc(mel_fb->num_filters, sizeof(*mel_fb->spec_start)); + mel_fb->filt_start = + ckd_calloc(mel_fb->num_filters, sizeof(*mel_fb->filt_start)); + mel_fb->filt_width = + ckd_calloc(mel_fb->num_filters, sizeof(*mel_fb->filt_width)); /* First calculate the widths of each filter. */ /* Minimum and maximum frequencies in mel scale. */ @@ -355,17 +602,17 @@ freqs[j] = fe_melinv(mel_fb, (i + j) * melbw + melmin); /* Round them to DFT points if requested */ if (mel_fb->round_filters) - freqs[j] = ((int)(freqs[j] / fftfreq + 0.5)) * fftfreq; + freqs[j] = ((int) (freqs[j] / fftfreq + 0.5)) * fftfreq; } /* spec_start is the start of this filter in the power spectrum. */ mel_fb->spec_start[i] = -1; /* There must be a better way... */ - for (j = 0; j < mel_fb->fft_size/2+1; ++j) { + for (j = 0; j < mel_fb->fft_size / 2 + 1; ++j) { float32 hz = j * fftfreq; if (hz < freqs[0]) continue; - else if (hz > freqs[2] || j == mel_fb->fft_size/2) { + else if (hz > freqs[2] || j == mel_fb->fft_size / 2) { /* filt_width is the width in DFT points of this filter. */ mel_fb->filt_width[i] = j - mel_fb->spec_start[i]; /* filt_start is the start of this filter in the filt_coeffs array. */ @@ -379,7 +626,8 @@ } /* Now go back and allocate the coefficient array. */ - mel_fb->filt_coeffs = ckd_malloc(n_coeffs * sizeof(*mel_fb->filt_coeffs)); + mel_fb->filt_coeffs = + ckd_malloc(n_coeffs * sizeof(*mel_fb->filt_coeffs)); /* And now generate the coefficients. */ n_coeffs = 0; @@ -394,7 +642,7 @@ freqs[j] = fe_melinv(mel_fb, (i + j) * melbw + melmin); /* Round them to DFT points if requested */ if (mel_fb->round_filters) - freqs[j] = ((int)(freqs[j] / fftfreq + 0.5)) * fftfreq; + freqs[j] = ((int) (freqs[j] / fftfreq + 0.5)) * fftfreq; } for (j = 0; j < mel_fb->filt_width[i]; ++j) { @@ -402,8 +650,11 @@ hz = (mel_fb->spec_start[i] + j) * fftfreq; if (hz < freqs[0] || hz > freqs[2]) { - E_FATAL("Failed to create filterbank, frequency range does not match. " - "Sample rate %f, FFT size %d, lowerf %f < freq %f > upperf %f.\n", mel_fb->sampling_rate, mel_fb->fft_size, freqs[2], hz, freqs[0]); + E_FATAL + ("Failed to create filterbank, frequency range does not match. " + "Sample rate %f, FFT size %d, lowerf %f < freq %f > upperf %f.\n", + mel_fb->sampling_rate, mel_fb->fft_size, freqs[0], hz, + freqs[2]); } loslope = (hz - freqs[0]) / (freqs[1] - freqs[0]); hislope = (freqs[2] - hz) / (freqs[2] - freqs[1]); @@ -428,7 +679,6 @@ ++n_coeffs; } } - return FE_SUCCESS; } @@ -442,8 +692,7 @@ mel_fb->mel_cosine = (mfcc_t **) ckd_calloc_2d(mel_fb->num_cepstra, - mel_fb->num_filters, - sizeof(mfcc_t)); + mel_fb->num_filters, sizeof(mfcc_t)); freqstep = M_PI / mel_fb->num_filters; /* NOTE: The first row vector is actually unnecessary but we leave @@ -463,10 +712,12 @@ /* And liftering weights */ if (mel_fb->lifter_val) { - mel_fb->lifter = calloc(mel_fb->num_cepstra, sizeof(*mel_fb->lifter)); + mel_fb->lifter = + calloc(mel_fb->num_cepstra, sizeof(*mel_fb->lifter)); for (i = 0; i < mel_fb->num_cepstra; ++i) { mel_fb->lifter[i] = FLOAT2MFCC(1 + mel_fb->lifter_val / 2 - * sin(i * M_PI / mel_fb->lifter_val)); + * sin(i * M_PI / + mel_fb->lifter_val)); } } @@ -479,28 +730,16 @@ { int i; -#if defined(FIXED16) - int16 fxd_alpha = (int16)(factor * 0x8000); - int32 tmp1, tmp2; - - tmp1 = (int32)in[0] << 15; - tmp2 = (int32)prior * fxd_alpha; - out[0] = (int16)((tmp1 - tmp2) >> 15); - for (i = 1; i < len; ++i) { - tmp1 = (int32)in[i] << 15; - tmp2 = (int32)in[i-1] * fxd_alpha; - out[i] = (int16)((tmp1 - tmp2) >> 15); - } -#elif defined(FIXED_POINT) +#if defined(FIXED_POINT) fixed32 fxd_alpha = FLOAT2FIX(factor); - out[0] = ((fixed32)in[0] << DEFAULT_RADIX) - (prior * fxd_alpha); + out[0] = ((fixed32) in[0] << DEFAULT_RADIX) - (prior * fxd_alpha); for (i = 1; i < len; ++i) - out[i] = ((fixed32)in[i] << DEFAULT_RADIX) - - (fixed32)in[i-1] * fxd_alpha; + out[i] = ((fixed32) in[i] << DEFAULT_RADIX) + - (fixed32) in[i - 1] * fxd_alpha; #else - out[0] = (frame_t) in[0] - (frame_t) prior * factor; + out[0] = (frame_t) in[0] - (frame_t) prior *factor; for (i = 1; i < len; i++) - out[i] = (frame_t) in[i] - (frame_t) in[i-1] * factor; + out[i] = (frame_t) in[i] - (frame_t) in[i - 1] * factor; #endif } @@ -509,9 +748,7 @@ { int i; -#if defined(FIXED16) - memcpy(out, in, len * sizeof(*out)); -#elif defined(FIXED_POINT) +#if defined(FIXED_POINT) for (i = 0; i < len; i++) out[i] = (int32) in[i] << DEFAULT_RADIX; #else /* FIXED_POINT */ @@ -528,54 +765,36 @@ /* Symmetric, so we only create the first half of it. */ for (i = 0; i < in_len / 2; i++) { float64 hamm; - hamm = (0.54 - 0.46 * cos(2 * M_PI * i / - ((float64) in_len - 1.0))); -#ifdef FIXED16 - in[i] = (int16)(hamm * 0x8000); -#else + hamm = (0.54 - 0.46 * cos(2 * M_PI * i / + ((float64) in_len - 1.0))); in[i] = FLOAT2COS(hamm); -#endif } } static void -fe_hamming_window(frame_t * in, window_t * window, int32 in_len, int32 remove_dc) +fe_hamming_window(frame_t * in, window_t * window, int32 in_len, + int32 remove_dc) { int i; if (remove_dc) { -#ifdef FIXED16 - int32 mean = 0; /* Use int32 to avoid possibility of overflow */ -#else frame_t mean = 0; -#endif for (i = 0; i < in_len; i++) mean += in[i]; mean /= in_len; for (i = 0; i < in_len; i++) - in[i] -= (frame_t)mean; + in[i] -= (frame_t) mean; } -#ifdef FIXED16 - for (i = 0; i < in_len/2; i++) { - int32 tmp1, tmp2; - - tmp1 = (int32)in[i] * window[i]; - tmp2 = (int32)in[in_len-1-i] * window[i]; - in[i] = (int16)(tmp1 >> 15); - in[in_len-1-i] = (int16)(tmp2 >> 15); - } -#else - for (i = 0; i < in_len/2; i++) { + for (i = 0; i < in_len / 2; i++) { in[i] = COSMUL(in[i], window[i]); - in[in_len-1-i] = COSMUL(in[in_len-1-i], window[i]); + in[in_len - 1 - i] = COSMUL(in[in_len - 1 - i], window[i]); } -#endif } static int -fe_spch_to_frame(fe_t *fe, int len) +fe_spch_to_frame(fe_t * fe, int len) { /* Copy to the frame buffer. */ if (fe->pre_emphasis_alpha != 0.0) { @@ -590,8 +809,7 @@ fe_short_to_frame(fe->spch, fe->frame, len); /* Zero pad up to FFT size. */ - memset(fe->frame + len, 0, - (fe->fft_size - len) * sizeof(*fe->frame)); + memset(fe->frame + len, 0, (fe->fft_size - len) * sizeof(*fe->frame)); /* Window. */ fe_hamming_window(fe->frame, fe->hamming_window, fe->frame_size, @@ -601,7 +819,7 @@ } int -fe_read_frame(fe_t *fe, int16 const *in, int32 len) +fe_read_frame(fe_t * fe, int16 const *in, int32 len) { int i; @@ -622,7 +840,7 @@ } int -fe_shift_frame(fe_t *fe, int16 const *in, int32 len) +fe_shift_frame(fe_t * fe, int16 const *in, int32 len) { int offset, i; @@ -642,7 +860,7 @@ for (i = 0; i < len; ++i) fe->spch[offset + i] += (int16) ((!(s3_rand_int31() % 4)) ? 1 : 0); - + return fe_spch_to_frame(fe, offset + len); } @@ -650,16 +868,13 @@ * Create arrays of twiddle factors. */ void -fe_create_twiddle(fe_t *fe) +fe_create_twiddle(fe_t * fe) { int i; for (i = 0; i < fe->fft_size / 4; ++i) { float64 a = 2 * M_PI * i / fe->fft_size; -#ifdef FIXED16 - fe->ccc[i] = (int16)(cos(a) * 0x8000); - fe->sss[i] = (int16)(sin(a) * 0x8000); -#elif defined(FIXED_POINT) +#if defined(FIXED_POINT) fe->ccc[i] = FLOAT2COS(cos(a)); fe->sss[i] = FLOAT2COS(sin(a)); #else @@ -669,135 +884,9 @@ } } -/* Translated from the FORTRAN (obviously) from "Real-Valued Fast - * Fourier Transform Algorithms" by Henrik V. Sorensen et al., IEEE - * Transactions on Acoustics, Speech, and Signal Processing, vol. 35, - * no.6. The 16-bit version does a version of "block floating - * point" in order to avoid rounding errors. - */ -#if defined(FIXED16) -static int -fe_fft_real(fe_t *fe) -{ - int i, j, k, m, n, lz; - frame_t *x, xt, max; - - x = fe->frame; - m = fe->fft_order; - n = fe->fft_size; - - /* Bit-reverse the input. */ - j = 0; - for (i = 0; i < n - 1; ++i) { - if (i < j) { - xt = x[j]; - x[j] = x[i]; - x[i] = xt; - } - k = n / 2; - while (k <= j) { - j -= k; - k /= 2; - } - j += k; - } - /* Determine how many bits of dynamic range are in the input. */ - max = 0; - for (i = 0; i < n; ++i) - if (abs(x[i]) > max) - max = abs(x[i]); - /* The FFT has a gain of M bits, so we need to attenuate the input - * by M bits minus the number of leading zeroes in the input's - * range in order to avoid overflows. */ - for (lz = 0; lz < m; ++lz) - if (max & (1 << (15-lz))) - break; - - /* Basic butterflies (2-point FFT, real twiddle factors): - * x[i] = x[i] + 1 * x[i+1] - * x[i+1] = x[i] + -1 * x[i+1] - */ - /* The quantization error introduced by attenuating the input at - * any given stage of the FFT has a cascading effect, so we hold - * off on it until it's absolutely necessary. */ - for (i = 0; i < n; i += 2) { - int atten = (lz == 0); - xt = x[i] >> atten; - x[i] = xt + (x[i + 1] >> atten); - x[i + 1] = xt - (x[i + 1] >> atten); - } - - /* The rest of the butterflies, in stages from 1..m */ - for (k = 1; k < m; ++k) { - int n1, n2, n4; - /* Start attenuating once we hit the number of leading zeros. */ - int atten = (k >= lz); - - n4 = k - 1; - n2 = k; - n1 = k + 1; - /* Stride over each (1 << (k+1)) points */ - for (i = 0; i < n; i += (1 << n1)) { - /* Basic butterfly with real twiddle factors: - * x[i] = x[i] + 1 * x[i + (1<> atten; - x[i] = xt + (x[i + (1 << n2)] >> atten); - x[i + (1 << n2)] = xt - (x[i + (1 << n2)] >> atten); - - /* The other ones with real twiddle factors: - * x[i + (1<> atten; - x[i + (1 << n4)] = x[i + (1 << n4)] >> atten; - - /* Butterflies with complex twiddle factors. - * There are (1<ccc[j << (m - n1)]; - ss = fe->sss[j << (m - n1)]; - /* There are some symmetry properties which allow us - * to get away with only four multiplications here. */ - { - int32 tmp1, tmp2; - tmp1 = (int32)x[i3] * cc + (int32)x[i4] * ss; - tmp2 = (int32)x[i3] * ss - (int32)x[i4] * cc; - t1 = (int16)(tmp1 >> 15) >> atten; - t2 = (int16)(tmp2 >> 15) >> atten; - } - - x[i4] = (x[i2] >> atten) - t2; - x[i3] = (-x[i2] >> atten) - t2; - x[i2] = (x[i1] >> atten) - t1; - x[i1] = (x[i1] >> atten) + t1; - } - } - } - - /* Return the residual scaling factor. */ - return lz; -} -#else /* !FIXED16 */ static int -fe_fft_real(fe_t *fe) +fe_fft_real(fe_t * fe) { int i, j, k, m, n; frame_t *x, xt; @@ -828,7 +917,7 @@ */ for (i = 0; i < n; i += 2) { xt = x[i]; - x[i] = (xt + x[i + 1]); + x[i] = (xt + x[i + 1]); x[i + 1] = (xt - x[i + 1]); } @@ -846,7 +935,7 @@ * x[i + (1<spec; mfspec = fe->mfspec; - for (whichfilt = 0; whichfilt < fe->mel_fb->num_filters; whichfilt++) { int spec_start, filt_start, i; @@ -957,23 +1038,29 @@ filt_start = fe->mel_fb->filt_start[whichfilt]; #ifdef FIXED_POINT - mfspec[whichfilt] = spec[spec_start] + fe->mel_fb->filt_coeffs[filt_start]; + mfspec[whichfilt] = + spec[spec_start] + fe->mel_fb->filt_coeffs[filt_start]; for (i = 1; i < fe->mel_fb->filt_width[whichfilt]; i++) { mfspec[whichfilt] = fe_log_add(mfspec[whichfilt], spec[spec_start + i] + - fe->mel_fb->filt_coeffs[filt_start + i]); + fe->mel_fb-> + filt_coeffs[filt_start + i]); } #else /* !FIXED_POINT */ mfspec[whichfilt] = 0; for (i = 0; i < fe->mel_fb->filt_width[whichfilt]; i++) mfspec[whichfilt] += - spec[spec_start + i] * fe->mel_fb->filt_coeffs[filt_start + i]; + spec[spec_start + i] * fe->mel_fb->filt_coeffs[filt_start + + i]; #endif /* !FIXED_POINT */ } + } +#define LOG_FLOOR 1e-4 + static void -fe_mel_cep(fe_t * fe, mfcc_t *mfcep) +fe_mel_cep(fe_t * fe, mfcc_t * mfcep) { int32 i; powspec_t *mfspec; @@ -982,15 +1069,8 @@ mfspec = fe->mfspec; for (i = 0; i < fe->mel_fb->num_filters; ++i) { -#ifndef FIXED_POINT /* It's already in log domain for fixed point */ - if (mfspec[i] > 0) - mfspec[i] = log(mfspec[i]); - else /* This number should be smaller than anything - * else, but not too small, so as to avoid - * infinities in the inverse transform (this is - * the frequency-domain equivalent of - * dithering) */ - mfspec[i] = -10.0; +#ifndef FIXED_POINT /* It's already in log domain for fixed point */ + mfspec[i] = log(mfspec[i] + LOG_FLOOR); #endif /* !FIXED_POINT */ } @@ -1026,9 +1106,9 @@ /* Compute C0 separately (its basis vector is 1) to avoid * costly multiplications. */ - mfcep[0] = mflogspec[0] / 2; /* beta = 0.5 */ + mfcep[0] = mflogspec[0] / 2; /* beta = 0.5 */ for (j = 1; j < fe->mel_fb->num_filters; j++) - mfcep[0] += mflogspec[j]; /* beta = 1.0 */ + mfcep[0] += mflogspec[j]; /* beta = 1.0 */ mfcep[0] /= (frame_t) fe->mel_fb->num_filters; for (i = 1; i < fe->num_cepstra; ++i) { @@ -1041,9 +1121,9 @@ mfcep[i] += COSMUL(mflogspec[j], fe->mel_fb->mel_cosine[i][j]) * beta; } - /* Note that this actually normalizes by num_filters, like the - * original Sphinx front-end, due to the doubled 'beta' factor - * above. */ + /* Note that this actually normalizes by num_filters, like the + * original Sphinx front-end, due to the doubled 'beta' factor + * above. */ mfcep[i] /= (frame_t) fe->mel_fb->num_filters * 2; } } @@ -1057,24 +1137,23 @@ * costly multiplications. */ mfcep[0] = mflogspec[0]; for (j = 1; j < fe->mel_fb->num_filters; j++) - mfcep[0] += mflogspec[j]; + mfcep[0] += mflogspec[j]; if (htk) mfcep[0] = COSMUL(mfcep[0], fe->mel_fb->sqrt_inv_2n); - else /* sqrt(1/N) = sqrt(2/N) * 1/sqrt(2) */ + else /* sqrt(1/N) = sqrt(2/N) * 1/sqrt(2) */ mfcep[0] = COSMUL(mfcep[0], fe->mel_fb->sqrt_inv_n); for (i = 1; i < fe->num_cepstra; ++i) { mfcep[i] = 0; for (j = 0; j < fe->mel_fb->num_filters; j++) { - mfcep[i] += COSMUL(mflogspec[j], - fe->mel_fb->mel_cosine[i][j]); + mfcep[i] += COSMUL(mflogspec[j], fe->mel_fb->mel_cosine[i][j]); } mfcep[i] = COSMUL(mfcep[i], fe->mel_fb->sqrt_inv_2n); } } void -fe_lifter(fe_t *fe, mfcc_t *mfcep) +fe_lifter(fe_t * fe, mfcc_t * mfcep) { int32 i; @@ -1094,32 +1173,34 @@ for (i = 0; i < fe->mel_fb->num_filters; ++i) { mflogspec[i] = COSMUL(mfcep[0], SQRT_HALF); for (j = 1; j < fe->num_cepstra; j++) { - mflogspec[i] += COSMUL(mfcep[j], - fe->mel_fb->mel_cosine[j][i]); + mflogspec[i] += COSMUL(mfcep[j], fe->mel_fb->mel_cosine[j][i]); } mflogspec[i] = COSMUL(mflogspec[i], fe->mel_fb->sqrt_inv_2n); } } -int32 -fe_write_frame(fe_t * fe, mfcc_t * fea) +void +fe_write_frame(fe_t * fe, mfcc_t * feat, int32 store_pcm) { + int32 is_speech; + fe_spec_magnitude(fe); fe_mel_spec(fe); - fe_mel_cep(fe, fea); - fe_lifter(fe, fea); - - return 1; + fe_track_snr(fe, &is_speech); + fe_mel_cep(fe, feat); + fe_lifter(fe, feat); + fe_vad_hangover(fe, feat, is_speech, store_pcm); } + void * fe_create_2d(int32 d1, int32 d2, int32 elem_size) { - return (void *)ckd_calloc_2d(d1, d2, elem_size); + return (void *) ckd_calloc_2d(d1, d2, elem_size); } void fe_free_2d(void *arr) { - ckd_free_2d((void **)arr); + ckd_free_2d((void **) arr); } diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_type.h sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_type.h --- sphinxbase-0.8/src/libsphinxbase/fe/fe_type.h 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_type.h 2015-05-01 21:16:09.000000000 +0000 @@ -0,0 +1,59 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 FE_TYPE_H +#define FE_TYPE_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "sphinxbase/fe.h" +#include "sphinxbase/fixpoint.h" + +#if defined(FIXED_POINT) +typedef fixed32 frame_t; +typedef int32 powspec_t; +typedef fixed32 window_t; +typedef struct { fixed32 r, i; } complex; +#else /* FIXED_POINT */ +typedef float64 frame_t; +typedef float64 powspec_t; +typedef float64 window_t; +typedef struct { float64 r, i; } complex; +#endif /* FIXED_POINT */ + +#endif /* FE_TYPE_H */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_affine.c sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_affine.c --- sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_affine.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_affine.c 2015-03-24 17:26:36.000000000 +0000 @@ -179,36 +179,3 @@ } printf("\n"); } - -/* - * Log record. Maintained by RCS. - * - * $Log: fe_warp_affine.c,v $ - * Revision 1.2 2006/02/17 00:31:34 egouvea - * Removed switch -melwarp. Changed the default for window length to - * 0.025625 from 0.256 (so that a window at 16kHz sampling rate has - * exactly 410 samples). Cleaned up include's. Replaced some E_FATAL() - * with E_WARN() and return. - * - * Revision 1.1 2006/02/16 00:18:26 egouvea - * Implemented flexible warping function. The user can specify at run - * time which of several shapes they want to use. Currently implemented - * are an affine function (y = ax + b), an inverse linear (y = a/x) and a - * piecewise linear (y = ax, up to a frequency F, and then it "breaks" so - * Nyquist frequency matches in both scales. - * - * Added two switches, -warp_type and -warp_params. The first specifies - * the type, which valid values: - * - * -inverse or inverse_linear - * -linear or affine - * -piecewise or piecewise_linear - * - * The inverse_linear is the same as implemented by EHT. The -mel_warp - * switch was kept for compatibility (maybe remove it in the - * future?). The code is compatible with EHT's changes: cepstra created - * from code after his changes should be the same as now. Scripts that - * worked with his changes should work now without changes. Tested a few - * cases, same results. - * - */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_affine.h sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_affine.h --- sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_affine.h 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_affine.h 2015-03-24 17:26:36.000000000 +0000 @@ -73,33 +73,4 @@ } #endif - #endif /* FE_WARP_AFFINE_H */ - - -/* - * Log record. Maintained by RCS. - * - * $Log: fe_warp_affine.h,v $ - * Revision 1.1 2006/02/16 00:18:26 egouvea - * Implemented flexible warping function. The user can specify at run - * time which of several shapes they want to use. Currently implemented - * are an affine function (y = ax + b), an inverse linear (y = a/x) and a - * piecewise linear (y = ax, up to a frequency F, and then it "breaks" so - * Nyquist frequency matches in both scales. - * - * Added two switches, -warp_type and -warp_params. The first specifies - * the type, which valid values: - * - * -inverse or inverse_linear - * -linear or affine - * -piecewise or piecewise_linear - * - * The inverse_linear is the same as implemented by EHT. The -mel_warp - * switch was kept for compatibility (maybe remove it in the - * future?). The code is compatible with EHT's changes: cepstra created - * from code after his changes should be the same as now. Scripts that - * worked with his changes should work now without changes. Tested a few - * cases, same results. - * - */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_warp.c sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp.c --- sphinxbase-0.8/src/libsphinxbase/fe/fe_warp.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp.c 2015-03-24 17:26:36.000000000 +0000 @@ -43,7 +43,7 @@ *********************************************************************/ /* static char rcsid[] = "@(#)$Id: fe_warp.c,v 1.2 2006/02/17 00:31:34 egouvea Exp $";*/ - + #include "fe_warp_inverse_linear.h" #include "fe_warp_affine.h" #include "fe_warp_piecewise_linear.h" @@ -72,7 +72,7 @@ "piecewise_linear", NULL }; - + static fe_warp_conf_t fe_warp_conf[FE_WARP_ID_MAX + 1] = { {fe_warp_inverse_linear_set_parameters, fe_warp_inverse_linear_doc, @@ -130,7 +130,7 @@ return FE_SUCCESS; } - + void fe_warp_set_parameters(melfb_t *mel, char const *param_str, float sampling_rate) { @@ -146,7 +146,7 @@ mel->warp_id); } } - + const char * fe_warp_doc(melfb_t *mel) { @@ -164,7 +164,7 @@ return NULL; } - + uint32 fe_warp_id(melfb_t *mel) { @@ -180,7 +180,7 @@ return FE_WARP_ID_NONE; } - + uint32 fe_warp_n_param(melfb_t *mel) { @@ -198,7 +198,7 @@ return 0; } - + float fe_warp_warped_to_unwarped(melfb_t *mel, float nonlinear) { @@ -216,7 +216,7 @@ return 0; } - + float fe_warp_unwarped_to_warped(melfb_t *mel,float linear) { @@ -234,7 +234,7 @@ return 0; } - + void fe_warp_print(melfb_t *mel, const char *label) { @@ -250,36 +250,3 @@ mel->warp_id); } } - -/* - * Log record. Maintained by RCS. - * - * $Log: fe_warp.c,v $ - * Revision 1.2 2006/02/17 00:31:34 egouvea - * Removed switch -melwarp. Changed the default for window length to - * 0.025625 from 0.256 (so that a window at 16kHz sampling rate has - * exactly 410 samples). Cleaned up include's. Replaced some E_FATAL() - * with E_WARN() and return. - * - * Revision 1.1 2006/02/16 00:18:26 egouvea - * Implemented flexible warping function. The user can specify at run - * time which of several shapes they want to use. Currently implemented - * are an affine function (y = ax + b), an inverse linear (y = a/x) and a - * piecewise linear (y = ax, up to a frequency F, and then it "breaks" so - * Nyquist frequency matches in both scales. - * - * Added two switches, -warp_type and -warp_params. The first specifies - * the type, which valid values: - * - * -inverse or inverse_linear - * -linear or affine - * -piecewise or piecewise_linear - * - * The inverse_linear is the same as implemented by EHT. The -mel_warp - * switch was kept for compatibility (maybe remove it in the - * future?). The code is compatible with EHT's changes: cepstra created - * from code after his changes should be the same as now. Scripts that - * worked with his changes should work now without changes. Tested a few - * cases, same results. - * - */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_warp.h sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp.h --- sphinxbase-0.8/src/libsphinxbase/fe/fe_warp.h 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp.h 2015-03-24 17:26:36.000000000 +0000 @@ -88,36 +88,3 @@ #endif /* FE_WARP_H */ - -/* - * Log record. Maintained by RCS. - * - * $Log: fe_warp.h,v $ - * Revision 1.2 2006/02/17 00:31:34 egouvea - * Removed switch -melwarp. Changed the default for window length to - * 0.025625 from 0.256 (so that a window at 16kHz sampling rate has - * exactly 410 samples). Cleaned up include's. Replaced some E_FATAL() - * with E_WARN() and return. - * - * Revision 1.1 2006/02/16 00:18:26 egouvea - * Implemented flexible warping function. The user can specify at run - * time which of several shapes they want to use. Currently implemented - * are an affine function (y = ax + b), an inverse linear (y = a/x) and a - * piecewise linear (y = ax, up to a frequency F, and then it "breaks" so - * Nyquist frequency matches in both scales. - * - * Added two switches, -warp_type and -warp_params. The first specifies - * the type, which valid values: - * - * -inverse or inverse_linear - * -linear or affine - * -piecewise or piecewise_linear - * - * The inverse_linear is the same as implemented by EHT. The -mel_warp - * switch was kept for compatibility (maybe remove it in the - * future?). The code is compatible with EHT's changes: cepstra created - * from code after his changes should be the same as now. Scripts that - * worked with his changes should work now without changes. Tested a few - * cases, same results. - * - */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_inverse_linear.c sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_inverse_linear.c --- sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_inverse_linear.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_inverse_linear.c 2015-03-24 17:26:36.000000000 +0000 @@ -176,39 +176,3 @@ } printf("\n"); } - -/* - * Log record. Maintained by RCS. - * - * $Log: fe_warp_inverse_linear.c,v $ - * Revision 1.3 2006/02/23 19:40:11 eht - * corrected the doc string for the inverse linear warp function. - * - * Revision 1.2 2006/02/17 00:31:34 egouvea - * Removed switch -melwarp. Changed the default for window length to - * 0.025625 from 0.256 (so that a window at 16kHz sampling rate has - * exactly 410 samples). Cleaned up include's. Replaced some E_FATAL() - * with E_WARN() and return. - * - * Revision 1.1 2006/02/16 00:18:26 egouvea - * Implemented flexible warping function. The user can specify at run - * time which of several shapes they want to use. Currently implemented - * are an affine function (y = ax + b), an inverse linear (y = a/x) and a - * piecewise linear (y = ax, up to a frequency F, and then it "breaks" so - * Nyquist frequency matches in both scales. - * - * Added two switches, -warp_type and -warp_params. The first specifies - * the type, which valid values: - * - * -inverse or inverse_linear - * -linear or affine - * -piecewise or piecewise_linear - * - * The inverse_linear is the same as implemented by EHT. The -mel_warp - * switch was kept for compatibility (maybe remove it in the - * future?). The code is compatible with EHT's changes: cepstra created - * from code after his changes should be the same as now. Scripts that - * worked with his changes should work now without changes. Tested a few - * cases, same results. - * - */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_inverse_linear.h sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_inverse_linear.h --- sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_inverse_linear.h 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_inverse_linear.h 2015-03-24 17:26:36.000000000 +0000 @@ -75,31 +75,3 @@ #endif /* FE_WARP_inverse_linear_H */ - - -/* - * Log record. Maintained by RCS. - * - * $Log: fe_warp_inverse_linear.h,v $ - * Revision 1.1 2006/02/16 00:18:26 egouvea - * Implemented flexible warping function. The user can specify at run - * time which of several shapes they want to use. Currently implemented - * are an affine function (y = ax + b), an inverse linear (y = a/x) and a - * piecewise linear (y = ax, up to a frequency F, and then it "breaks" so - * Nyquist frequency matches in both scales. - * - * Added two switches, -warp_type and -warp_params. The first specifies - * the type, which valid values: - * - * -inverse or inverse_linear - * -linear or affine - * -piecewise or piecewise_linear - * - * The inverse_linear is the same as implemented by EHT. The -mel_warp - * switch was kept for compatibility (maybe remove it in the - * future?). The code is compatible with EHT's changes: cepstra created - * from code after his changes should be the same as now. Scripts that - * worked with his changes should work now without changes. Tested a few - * cases, same results. - * - */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_piecewise_linear.c sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_piecewise_linear.c --- sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_piecewise_linear.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_piecewise_linear.c 2015-03-24 17:26:36.000000000 +0000 @@ -221,36 +221,3 @@ } printf("\n"); } - -/* - * Log record. Maintained by RCS. - * - * $Log: fe_warp_piecewise_linear.c,v $ - * Revision 1.2 2006/02/17 00:31:34 egouvea - * Removed switch -melwarp. Changed the default for window length to - * 0.025625 from 0.256 (so that a window at 16kHz sampling rate has - * exactly 410 samples). Cleaned up include's. Replaced some E_FATAL() - * with E_WARN() and return. - * - * Revision 1.1 2006/02/16 00:18:26 egouvea - * Implemented flexible warping function. The user can specify at run - * time which of several shapes they want to use. Currently implemented - * are an affine function (y = ax + b), an inverse linear (y = a/x) and a - * piecewise linear (y = ax, up to a frequency F, and then it "breaks" so - * Nyquist frequency matches in both scales. - * - * Added two switches, -warp_type and -warp_params. The first specifies - * the type, which valid values: - * - * -inverse or inverse_linear - * -linear or affine - * -piecewise or piecewise_linear - * - * The inverse_linear is the same as implemented by EHT. The -mel_warp - * switch was kept for compatibility (maybe remove it in the - * future?). The code is compatible with EHT's changes: cepstra created - * from code after his changes should be the same as now. Scripts that - * worked with his changes should work now without changes. Tested a few - * cases, same results. - * - */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_piecewise_linear.h sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_piecewise_linear.h --- sphinxbase-0.8/src/libsphinxbase/fe/fe_warp_piecewise_linear.h 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fe_warp_piecewise_linear.h 2015-03-24 17:26:36.000000000 +0000 @@ -75,31 +75,3 @@ #endif /* FE_WARP_PIECEWIDE_LINEAR_H */ - - -/* - * Log record. Maintained by RCS. - * - * $Log: fe_warp_piecewise_linear.h,v $ - * Revision 1.1 2006/02/16 00:18:26 egouvea - * Implemented flexible warping function. The user can specify at run - * time which of several shapes they want to use. Currently implemented - * are an affine function (y = ax + b), an inverse linear (y = a/x) and a - * piecewise linear (y = ax, up to a frequency F, and then it "breaks" so - * Nyquist frequency matches in both scales. - * - * Added two switches, -warp_type and -warp_params. The first specifies - * the type, which valid values: - * - * -inverse or inverse_linear - * -linear or affine - * -piecewise or piecewise_linear - * - * The inverse_linear is the same as implemented by EHT. The -mel_warp - * switch was kept for compatibility (maybe remove it in the - * future?). The code is compatible with EHT's changes: cepstra created - * from code after his changes should be the same as now. Scripts that - * worked with his changes should work now without changes. Tested a few - * cases, same results. - * - */ diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/fixlog.c sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fixlog.c --- sphinxbase-0.8/src/libsphinxbase/fe/fixlog.c 2012-12-12 18:14:23.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/fixlog.c 2015-03-24 17:26:36.000000000 +0000 @@ -50,73 +50,139 @@ #include "fe_internal.h" -/* Table of log2(x/64)*(1<= 4 + y = __builtin_clz(x); x <<= y; - y = 31 - y; + y = (31 - y); #else for (y = 31; y > 0; --y) { if (x & 0x80000000) @@ -149,7 +216,7 @@ #endif y <<= DEFAULT_RADIX; /* Do a table lookup for the MSB of the mantissa. */ - x = (x >> 25) & 0x3f; + x = (x >> 24) & 0x7f; return y + logtable[x]; } @@ -157,10 +224,6 @@ fixlog(uint32 x) { int32 y; - - if (x == 0) - return MIN_FIXLOG; - y = fixlog2(x); return FIXMUL(y, FIXLN_2); } diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/Makefile.am sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/Makefile.am --- sphinxbase-0.8/src/libsphinxbase/fe/Makefile.am 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/Makefile.am 2015-03-24 17:26:36.000000000 +0000 @@ -2,6 +2,8 @@ libsphinxfe_la_SOURCES = \ fe_interface.c \ + fe_noise.c \ + fe_prespch_buf.c \ fe_sigproc.c \ fe_warp_affine.c \ fe_warp.c \ @@ -12,12 +14,15 @@ noinst_HEADERS = \ fe_internal.h \ + fe_noise.h \ + fe_prespch_buf.h \ + fe_type.h \ fe_warp_affine.h \ fe_warp.h \ fe_warp_inverse_linear.h \ fe_warp_piecewise_linear.h -INCLUDES = -I$(top_srcdir)/include/sphinxbase \ +AM_CFLAGS =-I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/Makefile.in sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/Makefile.in --- sphinxbase-0.8/src/libsphinxbase/fe/Makefile.in 2012-12-12 17:28:53.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,6 +16,51 @@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -36,15 +80,14 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/libsphinxbase/fe -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -54,31 +97,80 @@ CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsphinxfe_la_LIBADD = -am_libsphinxfe_la_OBJECTS = fe_interface.lo fe_sigproc.lo \ - fe_warp_affine.lo fe_warp.lo fe_warp_inverse_linear.lo \ - fe_warp_piecewise_linear.lo fixlog.lo yin.lo +am_libsphinxfe_la_OBJECTS = fe_interface.lo fe_noise.lo \ + fe_prespch_buf.lo fe_sigproc.lo fe_warp_affine.lo fe_warp.lo \ + fe_warp_inverse_linear.lo fe_warp_piecewise_linear.lo \ + fixlog.lo yin.lo libsphinxfe_la_OBJECTS = $(am_libsphinxfe_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libsphinxfe_la_SOURCES) DIST_SOURCES = $(libsphinxfe_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -92,6 +184,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -101,9 +194,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -111,15 +202,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -135,27 +225,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -188,14 +284,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -207,6 +306,8 @@ noinst_LTLIBRARIES = libsphinxfe.la libsphinxfe_la_SOURCES = \ fe_interface.c \ + fe_noise.c \ + fe_prespch_buf.c \ fe_sigproc.c \ fe_warp_affine.c \ fe_warp.c \ @@ -217,12 +318,15 @@ noinst_HEADERS = \ fe_internal.h \ + fe_noise.h \ + fe_prespch_buf.h \ + fe_type.h \ fe_warp_affine.h \ fe_warp.h \ fe_warp_inverse_linear.h \ fe_warp_piecewise_linear.h -INCLUDES = -I$(top_srcdir)/include/sphinxbase \ +AM_CFLAGS = -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include @@ -239,9 +343,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/libsphinxbase/fe/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libsphinxbase/fe/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/libsphinxbase/fe/Makefile + $(AUTOMAKE) --foreign src/libsphinxbase/fe/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -263,14 +367,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_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 -libsphinxfe.la: $(libsphinxfe_la_OBJECTS) $(libsphinxfe_la_DEPENDENCIES) - $(LINK) $(libsphinxfe_la_OBJECTS) $(libsphinxfe_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libsphinxfe.la: $(libsphinxfe_la_OBJECTS) $(libsphinxfe_la_DEPENDENCIES) $(EXTRA_libsphinxfe_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libsphinxfe_la_OBJECTS) $(libsphinxfe_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -279,6 +386,8 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fe_interface.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fe_noise.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fe_prespch_buf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fe_sigproc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fe_warp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fe_warp_affine.Plo@am__quote@ @@ -288,25 +397,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yin.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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -314,26 +423,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -345,15 +443,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -362,6 +456,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -410,10 +519,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -498,18 +612,19 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/libsphinxbase/fe/yin.c sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/yin.c --- sphinxbase-0.8/src/libsphinxbase/fe/yin.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/fe/yin.c 2015-03-24 17:26:36.000000000 +0000 @@ -46,11 +46,17 @@ #include "sphinxbase/yin.h" #include +#include struct yin_s { uint16 frame_size; /** Size of analysis frame. */ +#ifndef FIXED_POINT + float search_threshold; /**< Threshold for finding period */ + float search_range; /**< Range around best local estimate to search */ +#else uint16 search_threshold; /**< Threshold for finding period, in Q15 */ uint16 search_range; /**< Range around best local estimate to search, in Q15 */ +#endif uint16 nfr; /**< Number of frames read so far. */ unsigned char wsize; /**< Size of smoothing window. */ @@ -58,13 +64,40 @@ unsigned char wcur; /**< Current frame of analysis. */ unsigned char endut; /**< Hoch Hech! Are we at the utterance end? */ +#ifndef FIXED_POINT + float **diff_window; /**< Window of difference function outputs. */ +#else fixed32 **diff_window; /**< Window of difference function outputs. */ +#endif uint16 *period_window; /**< Window of best period estimates. */ + int16 *frame; /**< Storage for frame */ }; /** * The core of YIN: cumulative mean normalized difference function. */ +#ifndef FIXED_POINT +static void +cmn_diff(int16 const *signal, float *out_diff, int ndiff) +{ + double cum; + int t, j; + + cum = 0.0f; + out_diff[0] = 1.0f; + + for (t = 1; t < ndiff; ++t) { + float dd; + dd = 0.0f; + for (j = 0; j < ndiff; ++j) { + int diff = signal[j] - signal[t + j]; + dd += (diff * diff); + } + cum += dd; + out_diff[t] = (float)(dd * t / cum); + } +} +#else static void cmn_diff(int16 const *signal, int32 *out_diff, int ndiff) { @@ -125,6 +158,7 @@ dd, cshift, dshift, (t<frame_size = frame_size; +#ifndef FIXED_POINT + pe->search_threshold = search_threshold; + pe->search_range = search_range; +#else pe->search_threshold = (uint16)(search_threshold * 32768); pe->search_range = (uint16)(search_range * 32768); +#endif pe->wsize = smooth_window * 2 + 1; pe->diff_window = ckd_calloc_2d(pe->wsize, pe->frame_size / 2, sizeof(**pe->diff_window)); pe->period_window = ckd_calloc(pe->wsize, sizeof(*pe->period_window)); + pe->frame = ckd_calloc(pe->frame_size, sizeof(*pe->frame)); return pe; } @@ -168,14 +208,27 @@ } int +#ifndef FIXED_POINT +thresholded_search(float *diff_window, float threshold, int start, int end) +#else thresholded_search(int32 *diff_window, fixed32 threshold, int start, int end) +#endif { - int i, min, argmin; - - min = INT_MAX; - argmin = 0; - for (i = start; i < end; ++i) { + int i, argmin; +#ifndef FIXED_POINT + float min; +#else + int min; +#endif + + min = diff_window[start]; + argmin = start; + for (i = start + 1; i < end; ++i) { +#ifndef FIXED_POINT + float diff = diff_window[i]; +#else int diff = diff_window[i]; +#endif if (diff < threshold) { min = diff; @@ -190,6 +243,12 @@ return argmin; } +void +yin_store(yin_t *pe, int16 const *frame) +{ + memcpy(pe->frame, frame, pe->frame_size * sizeof(*pe->frame)); +} + void yin_write(yin_t *pe, int16 const *frame) { @@ -217,11 +276,22 @@ ++pe->nfr; } +void +yin_write_stored(yin_t *pe) +{ + yin_write(pe, pe->frame); +} + int -yin_read(yin_t *pe, uint16 *out_period, uint16 *out_bestdiff) +yin_read(yin_t *pe, uint16 *out_period, float *out_bestdiff) { int wstart, wlen, half_wsize, i; - int best, best_diff, search_width, low_period, high_period; + int best, search_width, low_period, high_period; +#ifndef FIXED_POINT + float best_diff; +#else + int best_diff; +#endif half_wsize = (pe->wsize-1)/2; /* Without any smoothing, just return the current value (don't @@ -230,7 +300,11 @@ if (pe->endut) return 0; *out_period = pe->period_window[0]; +#ifndef FIXED_POINT *out_bestdiff = pe->diff_window[0][pe->period_window[0]]; +#else + *out_bestdiff = pe->diff_window[0][pe->period_window[0]] / 32768.0f; +#endif return 1; } @@ -272,7 +346,11 @@ best_diff = pe->diff_window[pe->wcur][best]; for (i = 0; i < wlen; ++i) { int j = wstart + i; +#ifndef FIXED_POINT + float diff; +#else int diff; +#endif j %= pe->wsize; diff = pe->diff_window[j][pe->period_window[j]]; @@ -291,11 +369,19 @@ if (++pe->wcur == pe->wsize) pe->wcur = 0; *out_period = best; +#ifndef FIXED_POINT *out_bestdiff = best_diff; +#else + *out_bestdiff = best_diff / 32768.0f; +#endif return 1; } /* Otherwise, redo the search inside a narrower range. */ +#ifndef FIXED_POINT + search_width = (int)(best * pe->search_range); +#else search_width = best * pe->search_range / 32768; +#endif /* printf("Search width = %d * %.2f = %d\n", best, (double)pe->search_range/32768, search_width); */ if (search_width == 0) search_width = 1; @@ -311,8 +397,13 @@ if (out_period) *out_period = (best > 65535) ? 65535 : best; - if (out_bestdiff) - *out_bestdiff = (best_diff > 65535) ? 65535 : best_diff; + if (out_bestdiff) { +#ifndef FIXED_POINT + *out_bestdiff = (best_diff > 1.0f) ? 1.0f : best_diff; +#else + *out_bestdiff = (best_diff > 32768) ? 1.0f : best_diff / 32768.0f; +#endif + } /* Increment the current pointer. */ if (++pe->wcur == pe->wsize) diff -Nru sphinxbase-0.8/src/libsphinxbase/feat/agc.c sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/agc.c --- sphinxbase-0.8/src/libsphinxbase/feat/agc.c 2012-12-12 17:42:02.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/agc.c 2015-03-24 17:26:36.000000000 +0000 @@ -164,9 +164,9 @@ /* Re-estimate max over past history; decay the history */ agc->max = agc->obs_max_sum / agc->obs_utt; - if (agc->obs_utt == 8) { + if (agc->obs_utt == 16) { agc->obs_max_sum /= 2; - agc->obs_utt = 4; + agc->obs_utt = 8; } } E_INFO("AGCEMax: obs= %.2f, new= %.2f\n", agc->obs_max, agc->max); @@ -203,13 +203,15 @@ noise_frames++; } } - noise_level /= noise_frames; - E_INFO("AGC NOISE: max= %6.3f\n", MFCC2FLOAT(noise_level)); - - /* Subtract noise_level from all log_energy values */ - for (i = 0; i < nfr; ++i) - cep[i][0] -= noise_level; + if (noise_frames > 0) { + noise_level /= noise_frames; + E_INFO("AGC NOISE: max= %6.3f\n", MFCC2FLOAT(noise_level)); + /* Subtract noise_level from all log_energy values */ + for (i = 0; i < nfr; i++) { + cep[i][0] -= noise_level; + } + } } void diff -Nru sphinxbase-0.8/src/libsphinxbase/feat/cmn.c sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/cmn.c --- sphinxbase-0.8/src/libsphinxbase/feat/cmn.c 2012-12-05 14:06:05.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/cmn.c 2015-03-24 17:26:36.000000000 +0000 @@ -152,6 +152,7 @@ mfcc_t *mfcp; mfcc_t t; int32 i, f; + int32 n_pos_frame; assert(mfc != NULL); @@ -162,15 +163,22 @@ memset(cmn->cmn_mean, 0, cmn->veclen * sizeof(mfcc_t)); /* Find mean cep vector for this utterance */ - for (f = 0; f < n_frame; f++) { + for (f = 0, n_pos_frame = 0; f < n_frame; f++) { mfcp = mfc[f]; + + /* Skip zero energy frames */ + if (mfcp[0] < 0) + continue; + for (i = 0; i < cmn->veclen; i++) { cmn->cmn_mean[i] += mfcp[i]; } + + n_pos_frame++; } for (i = 0; i < cmn->veclen; i++) - cmn->cmn_mean[i] /= n_frame; + cmn->cmn_mean[i] /= n_pos_frame; E_INFO("CMN: "); for (i = 0; i < cmn->veclen; i++) diff -Nru sphinxbase-0.8/src/libsphinxbase/feat/cmn_prior.c sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/cmn_prior.c --- sphinxbase-0.8/src/libsphinxbase/feat/cmn_prior.c 2012-12-05 14:06:05.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/cmn_prior.c 2015-03-24 17:26:36.000000000 +0000 @@ -96,6 +96,11 @@ mfcc_t sf; int32 i; + E_INFO("cmn_prior_update: from < "); + for (i = 0; i < cmn->veclen; i++) + E_INFOCONT("%5.2f ", MFCC2FLOAT(cmn->cmn_mean[i])); + E_INFOCONT(">\n"); + sf = FLOAT2MFCC(1.0) / cmn->nframe; for (i = 0; i < cmn->veclen; i++) cmn->cmn_mean[i] = cmn->sum[i] / cmn->nframe; /* sum[i] * sf */ @@ -107,6 +112,11 @@ cmn->sum[i] = MFCCMUL(cmn->sum[i], sf); cmn->nframe = CMN_WIN; } + + E_INFO("cmn_prior_update: to < "); + for (i = 0; i < cmn->veclen; i++) + E_INFOCONT("%5.2f ", MFCC2FLOAT(cmn->cmn_mean[i])); + E_INFOCONT(">\n"); } void @@ -147,18 +157,24 @@ { int32 i, j; + if (nfr <= 0) + return; + if (varnorm) E_FATAL ("Variance normalization not implemented in live mode decode\n"); - if (nfr <= 0) - return; - for (i = 0; i < nfr; i++) { + + /* Skip zero energy frames */ + if (incep[i][0] < 0) + continue; + for (j = 0; j < cmn->veclen; j++) { cmn->sum[j] += incep[i][j]; incep[i][j] -= cmn->cmn_mean[j]; } + ++cmn->nframe; } diff -Nru sphinxbase-0.8/src/libsphinxbase/feat/feat.c sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/feat.c --- sphinxbase-0.8/src/libsphinxbase/feat/feat.c 2012-12-05 14:06:05.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/feat.c 2015-03-24 17:26:36.000000000 +0000 @@ -277,7 +277,7 @@ feat_set_subvecs(feat_t *fcb, int32 **subvecs) { int32 **sv; - int32 n_sv, n_dim, i; + uint32 n_sv, n_dim, i; if (subvecs == NULL) { subvecs_free(fcb->subvecs); @@ -314,8 +314,8 @@ fcb->n_sv = n_sv; fcb->subvecs = subvecs; - fcb->sv_len = ckd_calloc(n_sv, sizeof(*fcb->sv_len)); - fcb->sv_buf = ckd_calloc(n_dim, sizeof(*fcb->sv_buf)); + fcb->sv_len = (uint32 *)ckd_calloc(n_sv, sizeof(*fcb->sv_len)); + fcb->sv_buf = (mfcc_t *)ckd_calloc(n_dim, sizeof(*fcb->sv_buf)); fcb->sv_dim = n_dim; for (i = 0; i < n_sv; ++i) { int32 *d; @@ -803,7 +803,8 @@ fcb->compute_feat = feat_copy; } else { - int32 i, l, k; + int32 i, k, l; + size_t len; char *strp; char *mtype = ckd_salloc(type); char *wd = ckd_salloc(type); @@ -814,9 +815,9 @@ * concatenated) is also allowed, which can be specified with * a colon after the list of feature streams. */ - l = strlen(mtype); + len = strlen(mtype); k = 0; - for (i = 1; i < l - 1; i++) { + for (i = 1; i < len - 1; i++) { if (mtype[i] == ',') { mtype[i] = ' '; k++; @@ -839,7 +840,7 @@ while (sscanf(strp, "%s%n", wd, &l) == 1) { strp += l; if ((i >= fcb->n_stream) - || (sscanf(wd, "%d", &(fcb->stream_len[i])) != 1) + || (sscanf(wd, "%u", &(fcb->stream_len[i])) != 1) || (fcb->stream_len[i] <= 0)) E_FATAL("Bad feature type argument\n"); /* Input size before windowing */ @@ -884,7 +885,7 @@ sizeof(mfcc_t)); /* This one is actually just an array of pointers to "flatten out" * wraparounds. */ - fcb->tmpcepbuf = ckd_calloc(2 * feat_window_size(fcb) + 1, + fcb->tmpcepbuf = (mfcc_t** )ckd_calloc(2 * feat_window_size(fcb) + 1, sizeof(*fcb->tmpcepbuf)); return fcb; @@ -894,7 +895,7 @@ void feat_print(feat_t * fcb, mfcc_t *** feat, int32 nfr, FILE * fp) { - int32 i, j, k; + uint32 i, j, k; for (i = 0; i < nfr; i++) { fprintf(fp, "%8d:\n", i); @@ -918,7 +919,7 @@ if (!(beginutt && endutt) && cmn_type != CMN_NONE) /* Only cmn_prior in block computation mode. */ - cmn_type = CMN_PRIOR; + fcb->cmn = cmn_type = CMN_PRIOR; switch (cmn_type) { case CMN_CURRENT: @@ -1028,7 +1029,7 @@ /* Find filesize; HACK!! To get around intermittent NFS failures, use stat_retry */ if ((stat_retry(file, &statbuf) < 0) || ((fp = fopen(file, "rb")) == NULL)) { - E_ERROR("Failed to open file '%s' for reading: %s\n", file, strerror(errno)); + E_ERROR_SYSTEM("Failed to open file '%s' for reading", file); return -1; } @@ -1172,7 +1173,7 @@ char *path; char *ps = "/"; int32 win, nfr; - int32 file_length, cepext_length, path_length = 0; + size_t file_length, cepext_length, path_length = 0; mfcc_t **mfc; if (fcb->cepsize <= 0) { @@ -1283,7 +1284,7 @@ /* Copy and pad out the utterance (this requires that the * feature computation functions always access the buffer via * the frame pointers, which they do) */ - cepbuf = ckd_calloc(nfr + win * 2, sizeof(mfcc_t *)); + cepbuf = (mfcc_t **)ckd_calloc(nfr + win * 2, sizeof(mfcc_t *)); memcpy(cepbuf + win, uttcep, nfr * sizeof(mfcc_t *)); /* Do normalization before we interpolate on the boundary */ @@ -1419,6 +1420,17 @@ return nfeatvec; } +void +feat_update_stats(feat_t *fcb) +{ + if (fcb->cmn == CMN_PRIOR) { + cmn_prior_update(fcb->cmn_struct); + } + if (fcb->agc == AGC_EMAX || fcb->agc == AGC_MAX) { + agc_emax_update(fcb->agc_struct); + } +} + feat_t * feat_retain(feat_t *f) { diff -Nru sphinxbase-0.8/src/libsphinxbase/feat/Makefile.am sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/Makefile.am --- sphinxbase-0.8/src/libsphinxbase/feat/Makefile.am 2012-12-05 14:06:05.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/Makefile.am 2015-03-24 17:26:36.000000000 +0000 @@ -7,7 +7,7 @@ lda.c \ feat.c -INCLUDES = -I$(top_srcdir)/include/sphinxbase \ +AM_CFLAGS =-I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include diff -Nru sphinxbase-0.8/src/libsphinxbase/feat/Makefile.in sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/Makefile.in --- sphinxbase-0.8/src/libsphinxbase/feat/Makefile.in 2012-12-12 17:28:53.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/feat/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,14 +79,14 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/libsphinxbase/feat -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -55,26 +99,74 @@ am_libsphinxfeat_la_OBJECTS = agc.lo cmn.lo cmn_prior.lo lda.lo \ feat.lo libsphinxfeat_la_OBJECTS = $(am_libsphinxfeat_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libsphinxfeat_la_SOURCES) DIST_SOURCES = $(libsphinxfeat_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -88,6 +180,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -97,9 +190,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,15 +198,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -131,27 +221,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -184,14 +280,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -208,7 +307,7 @@ lda.c \ feat.c -INCLUDES = -I$(top_srcdir)/include/sphinxbase \ +AM_CFLAGS = -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include @@ -225,9 +324,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/libsphinxbase/feat/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libsphinxbase/feat/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/libsphinxbase/feat/Makefile + $(AUTOMAKE) --foreign src/libsphinxbase/feat/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -249,14 +348,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_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 -libsphinxfeat.la: $(libsphinxfeat_la_OBJECTS) $(libsphinxfeat_la_DEPENDENCIES) - $(LINK) $(libsphinxfeat_la_OBJECTS) $(libsphinxfeat_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libsphinxfeat.la: $(libsphinxfeat_la_OBJECTS) $(libsphinxfeat_la_DEPENDENCIES) $(EXTRA_libsphinxfeat_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libsphinxfeat_la_OBJECTS) $(libsphinxfeat_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -271,25 +373,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lda.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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -297,26 +399,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -328,15 +419,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -345,6 +432,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -393,10 +495,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -481,18 +588,19 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/fsg_model.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/fsg_model.c --- sphinxbase-0.8/src/libsphinxbase/lm/fsg_model.c 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/fsg_model.c 2015-08-05 11:17:26.000000000 +0000 @@ -32,14 +32,6 @@ * */ -/* System headers. */ -#ifdef _WIN32_WCE -/*MC in a debug build it's implicitly included by assert.h - but you need this in a release build */ -#include -#else -#include -#endif /* _WIN32_WCE */ #include #include #include @@ -214,14 +206,20 @@ E_INFO("Computing transitive closure for null transitions\n"); + /* If our caller didn't give us a list of null-transitions, + make such a list. Just loop through all the FSG states, + and all the null-transitions in that state (which are kept in + their own hash table). */ if (nulls == NULL) { - fsg_link_t *null; - int i, j; - + int i; for (i = 0; i < fsg->n_state; ++i) { - for (j = 0; j < fsg->n_state; ++j) { - if ((null = fsg_model_null_trans(fsg, i, j))) - nulls = glist_add_ptr(nulls, null); + hash_iter_t *itor; + hash_table_t *null_trans = fsg->trans[i].null_trans; + if (null_trans == NULL) + continue; + for (itor = hash_table_iter(null_trans); + itor != NULL; itor = hash_table_iter_next(itor)) { + nulls = glist_add_ptr(nulls, hash_entry_val(itor->ent)); } } } @@ -243,7 +241,8 @@ if (fsg->trans[tl1->to_state].null_trans == NULL) continue; - for (itor = hash_table_iter(fsg->trans[tl1->to_state].null_trans); + for (itor = + hash_table_iter(fsg->trans[tl1->to_state].null_trans); itor; itor = hash_table_iter_next(itor)) { tl2 = (fsg_link_t *) hash_entry_val(itor->ent); @@ -266,7 +265,7 @@ } } } while (updated); - + E_INFO("%d null transitions added\n", n); return nulls; @@ -393,17 +392,19 @@ if (wid == -1) { wid = fsg->n_word; if (fsg->n_word == fsg->n_word_alloc) { - old_size = fsg->n_word_alloc; + old_size = fsg->n_word_alloc; fsg->n_word_alloc += 10; fsg->vocab = ckd_realloc(fsg->vocab, fsg->n_word_alloc * sizeof(*fsg->vocab)); if (fsg->silwords) fsg->silwords = - bitvec_realloc(fsg->silwords, old_size, fsg->n_word_alloc); + bitvec_realloc(fsg->silwords, old_size, + fsg->n_word_alloc); if (fsg->altwords) fsg->altwords = - bitvec_realloc(fsg->altwords, old_size, fsg->n_word_alloc); + bitvec_realloc(fsg->altwords, old_size, + fsg->n_word_alloc); } ++fsg->n_word; fsg->vocab[wid] = ckd_salloc(word); @@ -461,6 +462,11 @@ if (fsg->altwords == NULL) fsg->altwords = bitvec_alloc(fsg->n_word_alloc); bitvec_set(fsg->altwords, altwid); + if (fsg_model_is_filler(fsg, basewid)) { + if (fsg->silwords == NULL) + fsg->silwords = bitvec_alloc(fsg->n_word_alloc); + bitvec_set(fsg->silwords, altwid); + } E_DEBUG(2, ("Adding alternate word transitions (%s,%s) to FSG\n", baseword, altword)); diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/jsgf.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/jsgf.c --- sphinxbase-0.8/src/libsphinxbase/lm/jsgf.c 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/jsgf.c 2015-08-05 11:17:26.000000000 +0000 @@ -41,12 +41,16 @@ #include "sphinxbase/ckd_alloc.h" #include "sphinxbase/strfuncs.h" #include "sphinxbase/hash_table.h" +#include "sphinxbase/filename.h" #include "sphinxbase/err.h" +#include "sphinxbase/jsgf.h" #include "jsgf_internal.h" #include "jsgf_parser.h" #include "jsgf_scanner.h" +extern int yyparse(void *scanner, jsgf_t * jsgf); + /** * \file jsgf.c * @@ -54,6 +58,9 @@ * into Sphinx finite-state grammars. **/ +static int expand_rule(jsgf_t * grammar, jsgf_rule_t * rule, + int rule_entry, int rule_exit); + jsgf_atom_t * jsgf_atom_new(char *name, float weight) { @@ -66,7 +73,7 @@ } int -jsgf_atom_free(jsgf_atom_t *atom) +jsgf_atom_free(jsgf_atom_t * atom) { if (atom == NULL) return 0; @@ -76,7 +83,7 @@ } jsgf_t * -jsgf_grammar_new(jsgf_t *parent) +jsgf_grammar_new(jsgf_t * parent) { jsgf_t *grammar; @@ -90,39 +97,15 @@ grammar->parent = parent; } else { - char *jsgf_path; - grammar->rules = hash_table_new(64, 0); grammar->imports = hash_table_new(16, 0); - - /* Silvio Moioli: no getenv() in Windows CE */ - #if !defined(_WIN32_WCE) - if ((jsgf_path = getenv("JSGF_PATH")) != NULL) { - char *word, *c; - - /* FIXME: This should be a function in libsphinxbase. */ - /* FIXME: Also nextword() is totally useless... */ - word = jsgf_path = ckd_salloc(jsgf_path); - while ((c = strchr(word, ':'))) { - *c = '\0'; - grammar->searchpath = glist_add_ptr(grammar->searchpath, word); - word = c + 1; - } - grammar->searchpath = glist_add_ptr(grammar->searchpath, word); - grammar->searchpath = glist_reverse(grammar->searchpath); - } - else { - /* Default to current directory. */ - grammar->searchpath = glist_add_ptr(grammar->searchpath, ckd_salloc(".")); - } - #endif } return grammar; } void -jsgf_grammar_free(jsgf_t *jsgf) +jsgf_grammar_free(jsgf_t * jsgf) { /* FIXME: Probably should just use refcounting instead. */ if (jsgf->parent == NULL) { @@ -131,14 +114,14 @@ for (itor = hash_table_iter(jsgf->rules); itor; itor = hash_table_iter_next(itor)) { - ckd_free((char *)itor->ent->key); - jsgf_rule_free((jsgf_rule_t *)itor->ent->val); + ckd_free((char *) itor->ent->key); + jsgf_rule_free((jsgf_rule_t *) itor->ent->val); } hash_table_free(jsgf->rules); for (itor = hash_table_iter(jsgf->imports); itor; itor = hash_table_iter_next(itor)) { - ckd_free((char *)itor->ent->key); - jsgf_grammar_free((jsgf_t *)itor->ent->val); + ckd_free((char *) itor->ent->key); + jsgf_grammar_free((jsgf_t *) itor->ent->val); } hash_table_free(jsgf->imports); for (gn = jsgf->searchpath; gn; gn = gnode_next(gn)) @@ -156,7 +139,7 @@ } static void -jsgf_rhs_free(jsgf_rhs_t *rhs) +jsgf_rhs_free(jsgf_rhs_t * rhs) { gnode_t *gn; @@ -171,7 +154,7 @@ } jsgf_atom_t * -jsgf_kleene_new(jsgf_t *jsgf, jsgf_atom_t *atom, int plus) +jsgf_kleene_new(jsgf_t * jsgf, jsgf_atom_t * atom, int plus) { jsgf_rule_t *rule; jsgf_atom_t *rule_atom; @@ -195,7 +178,7 @@ } jsgf_rule_t * -jsgf_optional_new(jsgf_t *jsgf, jsgf_rhs_t *exp) +jsgf_optional_new(jsgf_t * jsgf, jsgf_rhs_t * exp) { jsgf_rhs_t *rhs = ckd_calloc(1, sizeof(*rhs)); jsgf_atom_t *atom = jsgf_atom_new("", 1.0); @@ -205,7 +188,7 @@ } void -jsgf_add_link(jsgf_t *grammar, jsgf_atom_t *atom, int from, int to) +jsgf_add_link(jsgf_t * grammar, jsgf_atom_t * atom, int from, int to) { jsgf_link_t *link; @@ -219,24 +202,24 @@ static char * extract_grammar_name(char *rule_name) { - char* dot_pos; - char* grammar_name = ckd_salloc(rule_name+1); + char *dot_pos; + char *grammar_name = ckd_salloc(rule_name + 1); if ((dot_pos = strrchr(grammar_name + 1, '.')) == NULL) { ckd_free(grammar_name); return NULL; } - *dot_pos='\0'; + *dot_pos = '\0'; return grammar_name; } char const * -jsgf_grammar_name(jsgf_t *jsgf) +jsgf_grammar_name(jsgf_t * jsgf) { return jsgf->name; } static char * -jsgf_fullname(jsgf_t *jsgf, const char *name) +jsgf_fullname(jsgf_t * jsgf, const char *name) { char *fullname; @@ -251,7 +234,7 @@ } static char * -jsgf_fullname_from_rule(jsgf_rule_t *rule, const char *name) +jsgf_fullname_from_rule(jsgf_rule_t * rule, const char *name) { char *fullname, *grammar_name; @@ -278,17 +261,17 @@ char *last_dotpos; char *secondlast_dotpos; - if ((last_dotpos = strrchr(rulename+1, '.')) != NULL) { - *last_dotpos='\0'; - if ((secondlast_dotpos = strrchr(rulename+1, '.')) != NULL) { - *last_dotpos='.'; - *secondlast_dotpos='<'; + if ((last_dotpos = strrchr(rulename + 1, '.')) != NULL) { + *last_dotpos = '\0'; + if ((secondlast_dotpos = strrchr(rulename + 1, '.')) != NULL) { + *last_dotpos = '.'; + *secondlast_dotpos = '<'; secondlast_dotpos = ckd_salloc(secondlast_dotpos); ckd_free(rulename); return secondlast_dotpos; } else { - *last_dotpos='.'; + *last_dotpos = '.'; return rulename; } } @@ -297,78 +280,130 @@ } } -static int expand_rule(jsgf_t *grammar, jsgf_rule_t *rule); +#define NO_NODE -1 +#define RECURSIVE_NODE -2 + +/** + * + * Expand a right-hand-side of a rule (i.e. a single alternate). + * + * @returns the FSG state at the end of this rule, NO_NODE if there's an + * error, and RECURSIVE_NODE if the right-hand-side ended in right-recursion (i.e. + * a link to an earlier FSG state). + */ static int -expand_rhs(jsgf_t *grammar, jsgf_rule_t *rule, jsgf_rhs_t *rhs) +expand_rhs(jsgf_t * grammar, jsgf_rule_t * rule, jsgf_rhs_t * rhs, + int rule_entry, int rule_exit) { gnode_t *gn; int lastnode; /* Last node expanded in this sequence. */ - lastnode = rule->entry; + lastnode = rule_entry; /* Iterate over atoms in rhs and generate links/nodes */ for (gn = rhs->atoms; gn; gn = gnode_next(gn)) { jsgf_atom_t *atom = gnode_ptr(gn); + if (jsgf_atom_is_rule(atom)) { jsgf_rule_t *subrule; char *fullname; gnode_t *subnode; - void *val; + jsgf_rule_stack_t *rule_stack_entry = NULL; - /* Special case for and pseudo-rules */ - if (0 == strcmp(atom->name, "")) { - /* Emit a NULL transition */ - jsgf_add_link(grammar, atom, - lastnode, grammar->nstate); - lastnode = grammar->nstate; - ++grammar->nstate; + /* Special case for and pseudo-rules + If this is the only atom in the rhs, and it's the + first rhs in the rule, then emit a null transition, + creating an exit state if needed. */ + if (0 == strcmp(atom->name, "")) { + if (gn == rhs->atoms && gnode_next(gn) == NULL) { + if (rule_exit == NO_NODE) { + jsgf_add_link(grammar, atom, + lastnode, grammar->nstate); + rule_exit = lastnode = grammar->nstate; + ++grammar->nstate; + } + else { + jsgf_add_link(grammar, atom, lastnode, rule_exit); + } + } continue; - } + } else if (0 == strcmp(atom->name, "")) { /* Make this entire RHS unspeakable */ - return -1; + return NO_NODE; } fullname = jsgf_fullname_from_rule(rule, atom->name); - if (hash_table_lookup(grammar->rules, fullname, &val) == -1) { + if (hash_table_lookup + (grammar->rules, fullname, (void **) &subrule) == -1) { E_ERROR("Undefined rule in RHS: %s\n", fullname); ckd_free(fullname); - return -1; + return NO_NODE; } ckd_free(fullname); - subrule = val; - /* Look for this in the stack of expanded rules */ - for (subnode = grammar->rulestack; subnode; subnode = gnode_next(subnode)) - if (gnode_ptr(subnode) == (void *)subrule) + + /* Look for this subrule in the stack of expanded rules */ + for (subnode = grammar->rulestack; subnode; + subnode = gnode_next(subnode)) { + rule_stack_entry = + (jsgf_rule_stack_t *) gnode_ptr(subnode); + if (rule_stack_entry->rule == subrule) break; + } + if (subnode != NULL) { /* Allow right-recursion only. */ if (gnode_next(gn) != NULL) { - E_ERROR("Only right-recursion is permitted (in %s.%s)\n", - grammar->name, rule->name); - return -1; + E_ERROR + ("Only right-recursion is permitted (in %s.%s)\n", + grammar->name, rule->name); + return NO_NODE; } /* Add a link back to the beginning of this rule instance */ - E_INFO("Right recursion %s %d => %d\n", atom->name, lastnode, subrule->entry); - jsgf_add_link(grammar, atom, lastnode, subrule->entry); + E_INFO("Right recursion %s %d => %d\n", atom->name, + lastnode, rule_stack_entry->entry); + jsgf_add_link(grammar, atom, lastnode, + rule_stack_entry->entry); + + /* Let our caller know that this rhs didn't reach an + end state. */ + lastnode = RECURSIVE_NODE; } else { + /* If this is the last atom in this rhs, link its + expansion to the parent rule's exit state. + Otherwise, create a new exit state for it. */ + int subruleexit = NO_NODE; + if (gnode_next(gn) == NULL && rule_exit >= 0) + subruleexit = rule_exit; + /* Expand the subrule */ - if (expand_rule(grammar, subrule) == -1) - return -1; - /* Add a link into the subrule. */ - jsgf_add_link(grammar, atom, - lastnode, subrule->entry); - lastnode = subrule->exit; + lastnode = + expand_rule(grammar, subrule, lastnode, subruleexit); + + if (lastnode == NO_NODE) + return NO_NODE; } } else { - /* Add a link for this token and create a new exit node. */ - jsgf_add_link(grammar, atom, - lastnode, grammar->nstate); - lastnode = grammar->nstate; - ++grammar->nstate; + /* An exit-state is created if this isn't the last atom + in the rhs, or if the containing rule doesn't have an + exit state yet. + Otherwise, the rhs's exit state becomes the containing + rule's exit state. */ + int exitstate; + if (gnode_next(gn) == NULL && rule_exit >= 0) { + exitstate = rule_exit; + } + else { + exitstate = grammar->nstate; + ++grammar->nstate; + } + + /* Add a link for this token */ + jsgf_add_link(grammar, atom, lastnode, exitstate); + lastnode = exitstate; } } @@ -376,82 +411,124 @@ } static int -expand_rule(jsgf_t *grammar, jsgf_rule_t *rule) +expand_rule(jsgf_t * grammar, jsgf_rule_t * rule, int rule_entry, + int rule_exit) { + jsgf_rule_stack_t *rule_stack_entry; jsgf_rhs_t *rhs; - float norm; /* Push this rule onto the stack */ - grammar->rulestack = glist_add_ptr(grammar->rulestack, rule); + rule_stack_entry = + (jsgf_rule_stack_t *) ckd_calloc(1, sizeof(jsgf_rule_stack_t)); + rule_stack_entry->rule = rule; + rule_stack_entry->entry = rule_entry; + grammar->rulestack = glist_add_ptr(grammar->rulestack, + rule_stack_entry); - /* Normalize weights for all alternatives exiting rule->entry */ - norm = 0; - for (rhs = rule->rhs; rhs; rhs = rhs->alt) { - if (rhs->atoms) { - jsgf_atom_t *atom = gnode_ptr(rhs->atoms); - norm += atom->weight; - } - } - - rule->entry = grammar->nstate++; - rule->exit = grammar->nstate++; - if (norm == 0) norm = 1; for (rhs = rule->rhs; rhs; rhs = rhs->alt) { int lastnode; - if (rhs->atoms) { - jsgf_atom_t *atom = gnode_ptr(rhs->atoms); - atom->weight /= norm; - } - lastnode = expand_rhs(grammar, rule, rhs); - if (lastnode == -1) { - return -1; + lastnode = expand_rhs(grammar, rule, rhs, rule_entry, rule_exit); + + if (lastnode == NO_NODE) { + return NO_NODE; } - else { - jsgf_add_link(grammar, NULL, lastnode, rule->exit); + else if (lastnode == RECURSIVE_NODE) { + /* The rhs ended with right-recursion, i.e. a transition to + an earlier state. Nothing needs to happen at this level. */ + ; + } + else if (rule_exit == NO_NODE) { + /* If this rule doesn't have an exit state yet, use the exit + state of its first right-hand-side. + All other right-hand-sides will use this exit state. */ + assert(lastnode >= 0); + rule_exit = lastnode; } } + /* If no exit-state was created, use the entry-state. */ + if (rule_exit == NO_NODE) { + rule_exit = rule_entry; + } + /* Pop this rule from the rule stack */ + ckd_free(gnode_ptr(grammar->rulestack)); grammar->rulestack = gnode_free(grammar->rulestack, NULL); - return rule->exit; + + return rule_exit; } jsgf_rule_iter_t * -jsgf_rule_iter(jsgf_t *grammar) +jsgf_rule_iter(jsgf_t * grammar) { return hash_table_iter(grammar->rules); } jsgf_rule_t * -jsgf_get_rule(jsgf_t *grammar, char const *name) +jsgf_get_rule(jsgf_t * grammar, char const *name) { void *val; + char *fullname; - if (hash_table_lookup(grammar->rules, name, &val) < 0) + fullname = string_join("<", name, ">", NULL); + if (hash_table_lookup(grammar->rules, fullname, &val) < 0) { + ckd_free(fullname); return NULL; - return (jsgf_rule_t *)val; + } + ckd_free(fullname); + return (jsgf_rule_t *) val; +} + +jsgf_rule_t * +jsgf_get_public_rule(jsgf_t * grammar) +{ + jsgf_rule_iter_t *itor; + jsgf_rule_t *public_rule = NULL; + + for (itor = jsgf_rule_iter(grammar); itor; + itor = jsgf_rule_iter_next(itor)) { + jsgf_rule_t *rule = jsgf_rule_iter_rule(itor); + if (jsgf_rule_public(rule)) { + const char *rule_name = jsgf_rule_name(rule); + char *dot_pos; + if ((dot_pos = strrchr(rule_name + 1, '.')) == NULL) { + public_rule = rule; + jsgf_rule_iter_free(itor); + break; + } + if (0 == + strncmp(rule_name + 1, jsgf_grammar_name(grammar), + dot_pos - rule_name - 1)) { + public_rule = rule; + jsgf_rule_iter_free(itor); + break; + } + } + } + return public_rule; } char const * -jsgf_rule_name(jsgf_rule_t *rule) +jsgf_rule_name(jsgf_rule_t * rule) { return rule->name; } int -jsgf_rule_public(jsgf_rule_t *rule) +jsgf_rule_public(jsgf_rule_t * rule) { - return rule->public; + return rule->is_public; } static fsg_model_t * -jsgf_build_fsg_internal(jsgf_t *grammar, jsgf_rule_t *rule, - logmath_t *lmath, float32 lw, int do_closure) +jsgf_build_fsg_internal(jsgf_t * grammar, jsgf_rule_t * rule, + logmath_t * lmath, float32 lw, int do_closure) { fsg_model_t *fsg; glist_t nulls; gnode_t *gn; + int rule_entry, rule_exit; /* Clear previous links */ for (gn = grammar->links; gn; gn = gnode_next(gn)) { @@ -459,13 +536,22 @@ } glist_free(grammar->links); grammar->links = NULL; - rule->entry = rule->exit = 0; grammar->nstate = 0; - expand_rule(grammar, rule); + + /* Create the top-level entry state, and expand the + top-level rule. */ + rule_entry = grammar->nstate++; + rule_exit = expand_rule(grammar, rule, rule_entry, NO_NODE); + + /* If no exit-state was created, create one. */ + if (rule_exit == NO_NODE) { + rule_exit = grammar->nstate++; + jsgf_add_link(grammar, NULL, rule_entry, rule_exit); + } fsg = fsg_model_init(rule->name, lmath, lw, grammar->nstate); - fsg->start_state = rule->entry; - fsg->final_state = rule->exit; + fsg->start_state = rule_entry; + fsg->final_state = rule_exit; grammar->links = glist_reverse(grammar->links); for (gn = grammar->links; gn; gn = gnode_next(gn)) { jsgf_link_t *link = gnode_ptr(gn); @@ -473,17 +559,19 @@ if (link->atom) { if (jsgf_atom_is_rule(link->atom)) { fsg_model_null_trans_add(fsg, link->from, link->to, - logmath_log(lmath, link->atom->weight)); + logmath_log(lmath, + link->atom->weight)); } else { int wid = fsg_model_word_add(fsg, link->atom->name); fsg_model_trans_add(fsg, link->from, link->to, - logmath_log(lmath, link->atom->weight), wid); + logmath_log(lmath, link->atom->weight), + wid); } } else { fsg_model_null_trans_add(fsg, link->from, link->to, 0); - } + } } if (do_closure) { nulls = fsg_model_null_trans_closure(fsg, NULL); @@ -494,15 +582,15 @@ } fsg_model_t * -jsgf_build_fsg(jsgf_t *grammar, jsgf_rule_t *rule, - logmath_t *lmath, float32 lw) +jsgf_build_fsg(jsgf_t * grammar, jsgf_rule_t * rule, + logmath_t * lmath, float32 lw) { return jsgf_build_fsg_internal(grammar, rule, lmath, lw, TRUE); } fsg_model_t * -jsgf_build_fsg_raw(jsgf_t *grammar, jsgf_rule_t *rule, - logmath_t *lmath, float32 lw) +jsgf_build_fsg_raw(jsgf_t * grammar, jsgf_rule_t * rule, + logmath_t * lmath, float32 lw) { return jsgf_build_fsg_internal(grammar, rule, lmath, lw, FALSE); } @@ -525,7 +613,7 @@ itor = jsgf_rule_iter_next(itor)) { rule = jsgf_rule_iter_rule(itor); if (jsgf_rule_public(rule)) { - jsgf_rule_iter_free(itor); + jsgf_rule_iter_free(itor); break; } } @@ -538,8 +626,41 @@ return fsg; } +fsg_model_t * +jsgf_read_string(const char *string, logmath_t * lmath, float32 lw) +{ + fsg_model_t *fsg; + jsgf_rule_t *rule; + jsgf_t *jsgf; + jsgf_rule_iter_t *itor; + + if ((jsgf = jsgf_parse_string(string, NULL)) == NULL) { + E_ERROR("Error parsing input string\n"); + return NULL; + } + + rule = NULL; + for (itor = jsgf_rule_iter(jsgf); itor; + itor = jsgf_rule_iter_next(itor)) { + rule = jsgf_rule_iter_rule(itor); + if (jsgf_rule_public(rule)) { + jsgf_rule_iter_free(itor); + break; + } + } + if (rule == NULL) { + jsgf_grammar_free(jsgf); + E_ERROR("No public rules found in input string\n"); + return NULL; + } + fsg = jsgf_build_fsg(jsgf, rule, lmath, lw); + jsgf_grammar_free(jsgf); + return fsg; +} + + int -jsgf_write_fsg(jsgf_t *grammar, jsgf_rule_t *rule, FILE *outfh) +jsgf_write_fsg(jsgf_t * grammar, jsgf_rule_t * rule, FILE * outfh) { fsg_model_t *fsg; logmath_t *lmath = logmath_init(1.0001, 0, 0); @@ -551,19 +672,22 @@ logmath_free(lmath); return 0; -error_out: + error_out: logmath_free(lmath); return -1; } + jsgf_rule_t * -jsgf_define_rule(jsgf_t *jsgf, char *name, jsgf_rhs_t *rhs, int public) +jsgf_define_rule(jsgf_t * jsgf, char *name, jsgf_rhs_t * rhs, + int is_public) { jsgf_rule_t *rule; void *val; if (name == NULL) { name = ckd_malloc(strlen(jsgf->name) + 16); - sprintf(name, "<%s.g%05d>", jsgf->name, hash_table_inuse(jsgf->rules)); + sprintf(name, "<%s.g%05d>", jsgf->name, + hash_table_inuse(jsgf->rules)); } else { char *newname; @@ -576,27 +700,26 @@ rule->refcnt = 1; rule->name = ckd_salloc(name); rule->rhs = rhs; - rule->public = public; + rule->is_public = is_public; E_INFO("Defined rule: %s%s\n", - rule->public ? "PUBLIC " : "", - rule->name); + rule->is_public ? "PUBLIC " : "", rule->name); val = hash_table_enter(jsgf->rules, name, rule); - if (val != (void *)rule) { + if (val != (void *) rule) { E_WARN("Multiply defined symbol: %s\n", name); } return rule; } jsgf_rule_t * -jsgf_rule_retain(jsgf_rule_t *rule) +jsgf_rule_retain(jsgf_rule_t * rule) { ++rule->refcnt; return rule; } int -jsgf_rule_free(jsgf_rule_t *rule) +jsgf_rule_free(jsgf_rule_t * rule) { if (rule == NULL) return 0; @@ -625,14 +748,15 @@ fclose(tmp); return fullpath; } - else + else { ckd_free(fullpath); + } } return NULL; } jsgf_rule_t * -jsgf_import_rule(jsgf_t *jsgf, char *name) +jsgf_import_rule(jsgf_t * jsgf, char *name) { char *c, *path, *newpath; size_t namelen, packlen; @@ -655,16 +779,21 @@ *c = '\0'; /* Look for import foo.* */ - import_all = (strlen(name) > 2 && 0 == strcmp(name + namelen - 3, ".*>")); + import_all = (strlen(name) > 2 + && 0 == strcmp(name + namelen - 3, ".*>")); /* Construct a filename. */ for (c = path; *c; ++c) - if (*c == '.') *c = '/'; + if (*c == '.') + *c = '/'; strcat(path, ".gram"); newpath = path_list_search(jsgf->searchpath, path); - ckd_free(path); - if (newpath == NULL) + if (newpath == NULL) { + E_ERROR("Failed to find grammar %s\n", path); + ckd_free(path); return NULL; + } + ckd_free(path); path = newpath; E_INFO("Importing %s from %s to %s\n", name, path, jsgf->name); @@ -681,7 +810,7 @@ /* If not, parse it. */ imp = jsgf_parse_file(path, jsgf); val = hash_table_enter(jsgf->imports, path, imp); - if (val != (void *)imp) { + if (val != (void *) imp) { E_WARN("Multiply imported file: %s\n", path); } } @@ -697,14 +826,15 @@ if (import_all) { /* Match package name (symbol table is shared) */ - rule_matches = !strncmp(rule_name, rule->name, packlen + 1); + rule_matches = + !strncmp(rule_name, rule->name, packlen + 1); } else { /* Exact match */ rule_matches = !strcmp(rule_name, rule->name); } ckd_free(rule_name); - if (rule->public && rule_matches) { + if (rule->is_public && rule_matches) { void *val; char *newname; @@ -716,7 +846,7 @@ E_INFO("Imported %s\n", newname); val = hash_table_enter(jsgf->rules, newname, jsgf_rule_retain(rule)); - if (val != (void *)rule) { + if (val != (void *) rule) { E_WARN("Multiply defined symbol: %s\n", newname); } if (!import_all) { @@ -730,8 +860,40 @@ return NULL; } +static void +jsgf_set_search_path(jsgf_t * jsgf, const char *filename) +{ + char *jsgf_path; + +#if !defined(_WIN32_WCE) + if ((jsgf_path = getenv("JSGF_PATH")) != NULL) { + char *word, *c; + /* FIXME: This should be a function in libsphinxbase. */ + word = jsgf_path = ckd_salloc(jsgf_path); + while ((c = strchr(word, ':'))) { + *c = '\0'; + jsgf->searchpath = glist_add_ptr(jsgf->searchpath, word); + word = c + 1; + } + jsgf->searchpath = glist_add_ptr(jsgf->searchpath, word); + jsgf->searchpath = glist_reverse(jsgf->searchpath); + return; + } +#endif + + if (!filename) { + jsgf->searchpath = + glist_add_ptr(jsgf->searchpath, ckd_salloc(".")); + return; + } + + jsgf_path = ckd_salloc(filename); + path2dirname(filename, jsgf_path); + jsgf->searchpath = glist_add_ptr(jsgf->searchpath, jsgf_path); +} + jsgf_t * -jsgf_parse_file(const char *filename, jsgf_t *parent) +jsgf_parse_file(const char *filename, jsgf_t * parent) { yyscan_t yyscanner; jsgf_t *jsgf; @@ -752,9 +914,14 @@ } jsgf = jsgf_grammar_new(parent); + + if (!parent) + jsgf_set_search_path(jsgf, filename); + yyrv = yyparse(yyscanner, jsgf); if (yyrv != 0) { - E_ERROR("Failed to parse JSGF grammar from '%s'\n", filename ? filename : "(stdin)"); + E_ERROR("Failed to parse JSGF grammar from '%s'\n", + filename ? filename : "(stdin)"); jsgf_grammar_free(jsgf); yylex_destroy(yyscanner); return NULL; @@ -764,4 +931,33 @@ yylex_destroy(yyscanner); return jsgf; +} + +jsgf_t * +jsgf_parse_string(const char *string, jsgf_t * parent) +{ + yyscan_t yyscanner; + jsgf_t *jsgf; + int yyrv; + YY_BUFFER_STATE buf; + + yylex_init(&yyscanner); + buf = yy_scan_string(string, yyscanner); + + jsgf = jsgf_grammar_new(parent); + if (!parent) + jsgf_set_search_path(jsgf, NULL); + + yyrv = yyparse(yyscanner, jsgf); + if (yyrv != 0) { + E_ERROR("Failed to parse JSGF grammar from input string\n"); + jsgf_grammar_free(jsgf); + yy_delete_buffer(buf, yyscanner); + yylex_destroy(yyscanner); + return NULL; + } + yy_delete_buffer(buf, yyscanner); + yylex_destroy(yyscanner); + + return jsgf; } diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/jsgf_internal.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/jsgf_internal.h --- sphinxbase-0.8/src/libsphinxbase/lm/jsgf_internal.h 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/jsgf_internal.h 2015-03-24 17:26:36.000000000 +0000 @@ -42,7 +42,6 @@ * @file jsgf_internal.h Internal definitions for JSGF grammar compiler */ -#define YY_NO_UNISTD_H 1 #include #include @@ -52,6 +51,12 @@ #include #include + +/* Flex uses strdup which is missing on WinCE */ +#if defined(_WIN32) || defined(_WIN32_WCE) +#define strdup _strdup +#endif + #ifdef __cplusplus extern "C" { #endif @@ -65,6 +70,7 @@ typedef struct jsgf_rhs_s jsgf_rhs_t; typedef struct jsgf_atom_s jsgf_atom_t; typedef struct jsgf_link_s jsgf_link_t; +typedef struct jsgf_rule_stack_s jsgf_rule_stack_t; struct jsgf_s { char *version; /**< JSGF version (from header) */ @@ -83,14 +89,17 @@ glist_t rulestack; /**< Stack of currently expanded rules. */ }; +/* A type to keep track of the stack of rules currently being expanded. */ +struct jsgf_rule_stack_s { + jsgf_rule_t *rule; /**< The rule being expanded */ + int entry; /**< The entry-state for this expansion */ +}; + struct jsgf_rule_s { int refcnt; /**< Reference count. */ char *name; /**< Rule name (NULL for an alternation/grouping) */ - int public; /**< Is this rule marked 'public'? */ + int is_public; /**< Is this rule marked 'public'? */ jsgf_rhs_t *rhs; /**< Expansion */ - - int entry; /**< Entry state for current instance of this rule. */ - int exit; /**< Exit state for current instance of this rule. */ }; struct jsgf_rhs_s { @@ -116,7 +125,7 @@ jsgf_atom_t *jsgf_atom_new(char *name, float weight); jsgf_atom_t *jsgf_kleene_new(jsgf_t *jsgf, jsgf_atom_t *atom, int plus); jsgf_rule_t *jsgf_optional_new(jsgf_t *jsgf, jsgf_rhs_t *exp); -jsgf_rule_t *jsgf_define_rule(jsgf_t *jsgf, char *name, jsgf_rhs_t *rhs, int public); +jsgf_rule_t *jsgf_define_rule(jsgf_t *jsgf, char *name, jsgf_rhs_t *rhs, int is_public); jsgf_rule_t *jsgf_import_rule(jsgf_t *jsgf, char *name); int jsgf_atom_free(jsgf_atom_t *atom); diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/jsgf_scanner.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/jsgf_scanner.c --- sphinxbase-0.8/src/libsphinxbase/lm/jsgf_scanner.c 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/jsgf_scanner.c 2015-03-24 17:26:36.000000000 +0000 @@ -9,7 +9,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_SUBMINOR_VERSION 37 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -54,7 +54,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -85,6 +84,8 @@ #define UINT32_MAX (4294967295U) #endif +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -170,6 +171,11 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 @@ -205,11 +211,6 @@ #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -227,7 +228,7 @@ /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t 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 @@ -306,7 +307,7 @@ YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); void *yyalloc (yy_size_t ,yyscan_t yyscanner ); void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); @@ -338,7 +339,7 @@ /* Begin user sect3 */ -#define yywrap(n) 1 +#define yywrap(yyscanner) 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; @@ -594,16 +595,17 @@ * ==================================================================== * */ -/* YOU MUST USE FLEX 2.5.33 OR NEWER TO PROCESS THIS FILE!!! */ +/* YOU MUST USE FLEX 2.5.37 OR NEWER TO PROCESS THIS FILE!!! */ #line 39 "_jsgf_scanner.l" #include "jsgf_internal.h" #include "jsgf_parser.h" +#define YY_NO_UNISTD_H 1 -#line 607 "jsgf_scanner.c" +#line 609 "jsgf_scanner.c" #define INITIAL 0 #define COMMENT 1 @@ -635,8 +637,8 @@ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; - int yy_n_chars; - int yyleng_r; + yy_size_t yy_n_chars; + yy_size_t yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; @@ -689,7 +691,7 @@ void yyset_out (FILE * out_str ,yyscan_t yyscanner ); -int yyget_leng (yyscan_t yyscanner ); +yy_size_t yyget_leng (yyscan_t yyscanner ); char *yyget_text (yyscan_t yyscanner ); @@ -697,6 +699,10 @@ void yyset_lineno (int line_number ,yyscan_t yyscanner ); +int yyget_column (yyscan_t yyscanner ); + +void yyset_column (int column_no ,yyscan_t yyscanner ); + YYSTYPE * yyget_lval (yyscan_t yyscanner ); void yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); @@ -713,8 +719,6 @@ #endif #endif - static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner); - #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); #endif @@ -754,7 +758,7 @@ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - unsigned n; \ + size_t n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -842,7 +846,7 @@ #line 59 "_jsgf_scanner.l" -#line 846 "jsgf_scanner.c" +#line 850 "jsgf_scanner.c" yylval = yylval_param; @@ -903,16 +907,12 @@ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 312 ); + while ( yy_current_state != 97 ); + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; yy_find_action: yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - yy_act = yy_accept[yy_current_state]; - } YY_DO_BEFORE_ACTION; @@ -1126,7 +1126,8 @@ else { - yy_cp = yyg->yy_c_buf_p; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; } } @@ -1246,21 +1247,21 @@ else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1291,7 +1292,7 @@ /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + yyg->yy_n_chars, num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } @@ -1388,51 +1389,10 @@ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 97); + (void)yyg; return yy_is_jam ? 0 : yy_current_state; } - static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner) -{ - register char *yy_cp; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - yy_cp = yyg->yy_c_buf_p; - - /* undo effects of setting up yytext */ - *yy_cp = yyg->yy_hold_char; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - register int number_to_move = yyg->yy_n_chars + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - - if ( c == '\n' ){ - --yylineno; - } - - yyg->yytext_ptr = yy_bp; - yyg->yy_hold_char = *yy_cp; - yyg->yy_c_buf_p = yy_cp; -} - #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) @@ -1458,7 +1418,7 @@ else { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch ( yy_get_next_buffer( yyscanner ) ) @@ -1629,10 +1589,6 @@ yyfree((void *) b ,yyscanner ); } -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. @@ -1657,7 +1613,7 @@ b->yy_bs_column = 0; } - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + b->yy_is_interactive = 0; errno = oerrno; } @@ -1749,7 +1705,7 @@ */ static void yyensure_buffer_stack (yyscan_t yyscanner) { - int num_to_alloc; + yy_size_t num_to_alloc; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!yyg->yy_buffer_stack) { @@ -1842,12 +1798,12 @@ /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; @@ -1962,7 +1918,7 @@ /** Get the length of the current token. * @param yyscanner The scanner object. */ -int yyget_leng (yyscan_t yyscanner) +yy_size_t yyget_leng (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyleng; @@ -1998,7 +1954,7 @@ /* lineno is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "yyset_lineno called with no buffer" , yyscanner); + YY_FATAL_ERROR( "yyset_lineno called with no buffer" ); yylineno = line_number; } @@ -2013,7 +1969,7 @@ /* column is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "yyset_column called with no buffer" , yyscanner); + YY_FATAL_ERROR( "yyset_column called with no buffer" ); yycolumn = column_no; } diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/jsgf_scanner.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/jsgf_scanner.h --- sphinxbase-0.8/src/libsphinxbase/lm/jsgf_scanner.h 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/jsgf_scanner.h 2015-03-24 17:26:36.000000000 +0000 @@ -13,7 +13,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_SUBMINOR_VERSION 37 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -58,7 +58,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -89,6 +88,8 @@ #define UINT32_MAX (4294967295U) #endif +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -161,7 +162,7 @@ /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t 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 @@ -205,7 +206,7 @@ YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); void *yyalloc (yy_size_t ,yyscan_t yyscanner ); void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); @@ -213,7 +214,7 @@ /* Begin user sect3 */ -#define yywrap(n) 1 +#define yywrap(yyscanner) 1 #define YY_SKIP_YYWRAP #define yytext_ptr yytext_r @@ -226,6 +227,8 @@ #endif + +#ifdef HAVE_UNISTD_H #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. @@ -233,6 +236,7 @@ */ #include #endif +#endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * @@ -263,7 +267,7 @@ void yyset_out (FILE * out_str ,yyscan_t yyscanner ); -int yyget_leng (yyscan_t yyscanner ); +yy_size_t yyget_leng (yyscan_t yyscanner ); char *yyget_text (yyscan_t yyscanner ); @@ -271,6 +275,10 @@ void yyset_lineno (int line_number ,yyscan_t yyscanner ); +int yyget_column (yyscan_t yyscanner ); + +void yyset_column (int column_no ,yyscan_t yyscanner ); + YYSTYPE * yyget_lval (yyscan_t yyscanner ); void yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); @@ -339,6 +347,6 @@ #line 87 "_jsgf_scanner.l" -#line 343 "jsgf_scanner.h" +#line 348 "jsgf_scanner.h" #undef yyIN_HEADER #endif /* yyHEADER_H */ diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/_jsgf_scanner.l sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/_jsgf_scanner.l --- sphinxbase-0.8/src/libsphinxbase/lm/_jsgf_scanner.l 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/_jsgf_scanner.l 2015-03-24 17:26:36.000000000 +0000 @@ -34,7 +34,7 @@ * ==================================================================== * */ -/* YOU MUST USE FLEX 2.5.33 OR NEWER TO PROCESS THIS FILE!!! */ +/* YOU MUST USE FLEX 2.5.37 OR NEWER TO PROCESS THIS FILE!!! */ %{ #include "jsgf_internal.h" @@ -42,7 +42,7 @@ %} -%option 8bit reentrant bison-bridge noyywrap yylineno +%option 8bit reentrant bison-bridge noyywrap yylineno never-interactive nounput nounistd %option header-file="jsgf_scanner.h" %s COMMENT %s DECL diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/lm3g_model.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm3g_model.c --- sphinxbase-0.8/src/libsphinxbase/lm/lm3g_model.c 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm3g_model.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,258 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2007 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * \file lm3g_model.c Core Sphinx 3-gram code used in - * DMP/DMP32/ARPA (for now) model code. - * - * Author: A cast of thousands, probably. - */ -#include -#include -#include - -#include "sphinxbase/listelem_alloc.h" -#include "sphinxbase/ckd_alloc.h" -#include "sphinxbase/err.h" - -#include "lm3g_model.h" - -void -lm3g_tginfo_free(ngram_model_t *base, lm3g_model_t *lm3g) -{ - if (lm3g->tginfo == NULL) - return; - listelem_alloc_free(lm3g->le); - ckd_free(lm3g->tginfo); -} - -void -lm3g_tginfo_reset(ngram_model_t *base, lm3g_model_t *lm3g) -{ - if (lm3g->tginfo == NULL) - return; - listelem_alloc_free(lm3g->le); - memset(lm3g->tginfo, 0, base->n_counts[0] * sizeof(tginfo_t *)); - lm3g->le = listelem_alloc_init(sizeof(tginfo_t)); -} - -void -lm3g_apply_weights(ngram_model_t *base, - lm3g_model_t *lm3g, - float32 lw, float32 wip, float32 uw) -{ - int32 log_wip, log_uw, log_uniform_weight; - int i; - - /* Precalculate some log values we will like. */ - log_wip = logmath_log(base->lmath, wip); - log_uw = logmath_log(base->lmath, uw); - log_uniform_weight = logmath_log(base->lmath, 1.0 - uw); - - for (i = 0; i < base->n_counts[0]; ++i) { - int32 prob1, bo_wt, n_used; - - /* Backoff weights just get scaled by the lw. */ - bo_wt = (int32)(lm3g->unigrams[i].bo_wt1.l / base->lw); - /* Unscaling unigram probs is a bit more complicated, so punt - * it back to the general code. */ - prob1 = ngram_ng_prob(base, i, NULL, 0, &n_used); - /* Now compute the new scaled probabilities. */ - lm3g->unigrams[i].bo_wt1.l = (int32)(bo_wt * lw); - if (strcmp(base->word_str[i], "") == 0) { /* FIXME: configurable start_sym */ - /* Apply language weight and WIP */ - lm3g->unigrams[i].prob1.l = (int32)(prob1 * lw) + log_wip; - } - else { - /* Interpolate unigram probability with uniform. */ - prob1 += log_uw; - prob1 = logmath_add(base->lmath, prob1, base->log_uniform + log_uniform_weight); - /* Apply language weight and WIP */ - lm3g->unigrams[i].prob1.l = (int32)(prob1 * lw) + log_wip; - } - } - - for (i = 0; i < lm3g->n_prob2; ++i) { - int32 prob2; - /* Can't just punt this back to general code since it is quantized. */ - prob2 = (int32)((lm3g->prob2[i].l - base->log_wip) / base->lw); - lm3g->prob2[i].l = (int32)(prob2 * lw) + log_wip; - } - - if (base->n > 2) { - for (i = 0; i < lm3g->n_bo_wt2; ++i) { - lm3g->bo_wt2[i].l = (int32)(lm3g->bo_wt2[i].l / base->lw * lw); - } - for (i = 0; i < lm3g->n_prob3; i++) { - int32 prob3; - /* Can't just punt this back to general code since it is quantized. */ - prob3 = (int32)((lm3g->prob3[i].l - base->log_wip) / base->lw); - lm3g->prob3[i].l = (int32)(prob3 * lw) + log_wip; - } - } - - /* Store updated values in the model. */ - base->log_wip = log_wip; - base->log_uw = log_uw; - base->log_uniform_weight = log_uniform_weight; - base->lw = lw; -} - -int32 -lm3g_add_ug(ngram_model_t *base, - lm3g_model_t *lm3g, int32 wid, int32 lweight) -{ - int32 score; - - /* This would be very bad if this happened! */ - assert(!NGRAM_IS_CLASSWID(wid)); - - /* Reallocate unigram array. */ - lm3g->unigrams = ckd_realloc(lm3g->unigrams, - sizeof(*lm3g->unigrams) * base->n_1g_alloc); - memset(lm3g->unigrams + base->n_counts[0], 0, - (base->n_1g_alloc - base->n_counts[0]) * sizeof(*lm3g->unigrams)); - /* Reallocate tginfo array. */ - lm3g->tginfo = ckd_realloc(lm3g->tginfo, - sizeof(*lm3g->tginfo) * base->n_1g_alloc); - memset(lm3g->tginfo + base->n_counts[0], 0, - (base->n_1g_alloc - base->n_counts[0]) * sizeof(*lm3g->tginfo)); - /* FIXME: we really ought to update base->log_uniform *and* - * renormalize all the other unigrams. This is really slow, so I - * will probably just provide a function to renormalize after - * adding unigrams, for anyone who really cares. */ - /* This could be simplified but then we couldn't do it in logmath */ - score = lweight + base->log_uniform + base->log_uw; - score = logmath_add(base->lmath, score, - base->log_uniform + base->log_uniform_weight); - lm3g->unigrams[wid].prob1.l = score; - /* This unigram by definition doesn't participate in any bigrams, - * so its backoff weight and bigram pointer are both undefined. */ - lm3g->unigrams[wid].bo_wt1.l = 0; - lm3g->unigrams[wid].bigrams = 0; - /* Finally, increase the unigram count */ - ++base->n_counts[0]; - /* FIXME: Note that this can actually be quite bogus due to the - * presence of class words. If wid falls outside the unigram - * count, increase it to compensate, at the cost of no longer - * really knowing how many unigrams we have :( */ - if (wid >= base->n_counts[0]) - base->n_counts[0] = wid + 1; - - return score; -} - -#define INITIAL_SORTED_ENTRIES MAX_UINT16 - -void -init_sorted_list(sorted_list_t * l) -{ - l->list = ckd_calloc(INITIAL_SORTED_ENTRIES, sizeof(sorted_entry_t)); - l->list[0].val.l = INT_MIN; - l->list[0].lower = 0; - l->list[0].higher = 0; - l->free = 1; - l->size = INITIAL_SORTED_ENTRIES; -} - -void -free_sorted_list(sorted_list_t * l) -{ - free(l->list); -} - -lmprob_t * -vals_in_sorted_list(sorted_list_t * l) -{ - lmprob_t *vals; - int32 i; - - vals = ckd_calloc(l->free, sizeof(lmprob_t)); - for (i = 0; i < l->free; i++) - vals[i] = l->list[i].val; - return (vals); -} - -int32 -sorted_id(sorted_list_t * l, int32 *val) -{ - int32 i = 0; - - for (;;) { - if (*val == l->list[i].val.l) - return (i); - if (*val < l->list[i].val.l) { - if (l->list[i].lower == 0) { - - if (l->free >= l->size) { - int newsize = l->size + INITIAL_SORTED_ENTRIES; - l->list = ckd_realloc(l->list, sizeof(sorted_entry_t) * newsize); - memset(l->list + l->size, - 0, INITIAL_SORTED_ENTRIES * sizeof(sorted_entry_t)); - l->size = newsize; - } - - l->list[i].lower = l->free; - (l->free)++; - i = l->list[i].lower; - l->list[i].val.l = *val; - return (i); - } - else - i = l->list[i].lower; - } - else { - if (l->list[i].higher == 0) { - - if (l->free >= l->size) { - int newsize = l->size + INITIAL_SORTED_ENTRIES; - l->list = ckd_realloc(l->list, sizeof(sorted_entry_t) * newsize); - memset(l->list + l->size, - 0, INITIAL_SORTED_ENTRIES * sizeof(sorted_entry_t)); - l->size = newsize; - } - - l->list[i].higher = l->free; - (l->free)++; - i = l->list[i].higher; - l->list[i].val.l = *val; - return (i); - } - else - i = l->list[i].higher; - } - } -} diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/lm3g_model.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm3g_model.h --- sphinxbase-0.8/src/libsphinxbase/lm/lm3g_model.h 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm3g_model.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,177 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2007 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * \file lm3g_model.h Core Sphinx 3-gram code used in - * DMP/DMP32/ARPA (for now) model code. - * - * Author: A cast of thousands, probably. - */ - -#ifndef __NGRAM_MODEL_LM3G_H__ -#define __NGRAM_MODEL_LM3G_H__ - -#include "sphinxbase/listelem_alloc.h" - -#include "ngram_model_internal.h" - -/** - * Type used to store language model probabilities - */ -typedef union { - float32 f; - int32 l; -} lmprob_t; - -/** - * Bigram probs and bo-wts, and trigram probs are kept in separate - * tables rather than within the bigram_t and trigram_t structures. - * These tables hold unique prob and bo-wt values. The following tree - * structure is used to construct these tables of unique values. - * Whenever a new value is read from the LM file, the sorted tree - * structure is searched to see if the value already exists, and - * inserted if not found. - */ -typedef struct sorted_entry_s { - lmprob_t val; /**< value being kept in this node */ - uint32 lower; /**< index of another entry. All descendants down - this path have their val < this node's val. - 0 => no son exists (0 is root index) */ - uint32 higher; /**< index of another entry. All descendants down - this path have their val > this node's val - 0 => no son exists (0 is root index) */ -} sorted_entry_t; - -/** - * The sorted list. list is a (64K long) array. The first entry is the - * root of the tree and is created during initialization. - */ -typedef struct { - sorted_entry_t *list; - int32 free; /**< first free element in list */ - int32 size; -} sorted_list_t; - -/** - * Unigram structure (common among all lm3g implementations) - */ -typedef struct unigram_s { - lmprob_t prob1; /**< Unigram probability. */ - lmprob_t bo_wt1; /**< Unigram backoff weight. */ - int32 bigrams; /**< Index of 1st entry in lm_t.bigrams[] */ -} unigram_t; - -/** - * Bigram structure (might be implemented differently) - */ -typedef struct bigram_s bigram_t; -/** - * Trigram structure (might be implemented differently) - */ -typedef struct trigram_s trigram_t; - - -/* - * To conserve space, bigram info is kept in many tables. Since the number - * of distinct values << #bigrams, these table indices can be 16-bit values. - * prob2 and bo_wt2 are such indices, but keeping trigram index is less easy. - * It is supposed to be the index of the first trigram entry for each bigram. - * But such an index cannot be represented in 16-bits, hence the following - * segmentation scheme: Partition bigrams into segments of BG_SEG_SZ - * consecutive entries, such that #trigrams in each segment <= 2**16 (the - * corresponding trigram segment). The bigram_t.trigrams value is then a - * 16-bit relative index within the trigram segment. A separate table-- - * lm_t.tseg_base--has the index of the 1st trigram for each bigram segment. - */ -#define BG_SEG_SZ 512 /* chosen so that #trigram/segment <= 2**16 */ -#define LOG_BG_SEG_SZ 9 - -/** - * Trigram information cache. - * - * The following trigram information cache eliminates most traversals of 1g->2g->3g - * tree to locate trigrams for a given bigram (lw1,lw2). The organization is optimized - * for locality of access (to the same lw1), given lw2. - */ -typedef struct tginfo_s { - int32 w1; /**< lw1 component of bigram lw1,lw2. All bigrams with - same lw2 linked together (see lm_t.tginfo). */ - int32 n_tg; /**< number tg for parent bigram lw1,lw2 */ - int32 bowt; /**< tg bowt for lw1,lw2 */ - int32 used; /**< whether used since last lm_reset */ - trigram_t *tg; /**< Trigrams for lw1,lw2 */ - struct tginfo_s *next; /**< Next lw1 with same parent lw2; NULL if none. */ -} tginfo_t; - -/** - * Common internal structure for Sphinx 3-gram models. - */ -typedef struct lm3g_model_s { - unigram_t *unigrams; - bigram_t *bigrams; - trigram_t *trigrams; - lmprob_t *prob2; /**< Table of actual bigram probs */ - int32 n_prob2; /**< prob2 size */ - lmprob_t *bo_wt2; /**< Table of actual bigram backoff weights */ - int32 n_bo_wt2; /**< bo_wt2 size */ - lmprob_t *prob3; /**< Table of actual trigram probs */ - int32 n_prob3; /**< prob3 size */ - int32 *tseg_base; /**< tseg_base[i>>LOG_BG_SEG_SZ] = index of 1st - trigram for bigram segment (i>>LOG_BG_SEG_SZ) */ - tginfo_t **tginfo; /**< tginfo[lw2] is head of linked list of trigram information for - some cached subset of bigrams (*,lw2). */ - listelem_alloc_t *le; /**< List element allocator for tginfo. */ -} lm3g_model_t; - -void lm3g_tginfo_free(ngram_model_t *base, lm3g_model_t *lm3g); -void lm3g_tginfo_reset(ngram_model_t *base, lm3g_model_t *lm3g); -void lm3g_apply_weights(ngram_model_t *base, - lm3g_model_t *lm3g, - float32 lw, float32 wip, float32 uw); -int32 lm3g_add_ug(ngram_model_t *base, - lm3g_model_t *lm3g, int32 wid, int32 lweight); - - -/** - * Initialize sorted list with the 0-th entry = MIN_PROB_F, which may be needed - * to replace spurious values in the Darpa LM file. - */ -void init_sorted_list(sorted_list_t *l); -void free_sorted_list(sorted_list_t *l); -lmprob_t *vals_in_sorted_list(sorted_list_t *l); -int32 sorted_id(sorted_list_t * l, int32 *val); - -#endif /* __NGRAM_MODEL_LM3G_H__ */ diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/lm3g_templates.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm3g_templates.c --- sphinxbase-0.8/src/libsphinxbase/lm/lm3g_templates.c 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm3g_templates.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,556 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2007 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * \file lm3g_templates.c Core Sphinx 3-gram code used in - * DMP/DMP32/ARPA (for now) model code. - */ - -#include - -/* Locate a specific bigram within a bigram list */ -#define BINARY_SEARCH_THRESH 16 -static int32 -find_bg(bigram_t * bg, int32 n, int32 w) -{ - int32 i, b, e; - - /* Binary search until segment size < threshold */ - b = 0; - e = n; - while (e - b > BINARY_SEARCH_THRESH) { - i = (b + e) >> 1; - if (bg[i].wid < w) - b = i + 1; - else if (bg[i].wid > w) - e = i; - else - return i; - } - - /* Linear search within narrowed segment */ - for (i = b; (i < e) && (bg[i].wid != w); i++); - return ((i < e) ? i : -1); -} - -static int32 -lm3g_bg_score(NGRAM_MODEL_TYPE *model, - int32 lw1, int32 lw2, int32 *n_used) -{ - int32 i, n, b, score; - bigram_t *bg; - - if (lw1 < 0 || model->base.n < 2) { - *n_used = 1; - return model->lm3g.unigrams[lw2].prob1.l; - } - - b = FIRST_BG(model, lw1); - n = FIRST_BG(model, lw1 + 1) - b; - bg = model->lm3g.bigrams + b; - - if ((i = find_bg(bg, n, lw2)) >= 0) { - /* Access mode = bigram */ - *n_used = 2; - score = model->lm3g.prob2[bg[i].prob2].l; - } - else { - /* Access mode = unigram */ - *n_used = 1; - score = model->lm3g.unigrams[lw1].bo_wt1.l + model->lm3g.unigrams[lw2].prob1.l; - } - - return (score); -} - -static void -load_tginfo(NGRAM_MODEL_TYPE *model, int32 lw1, int32 lw2) -{ - int32 i, n, b, t; - bigram_t *bg; - tginfo_t *tginfo; - - /* First allocate space for tg information for bg lw1,lw2 */ - tginfo = (tginfo_t *) listelem_malloc(model->lm3g.le); - tginfo->w1 = lw1; - tginfo->tg = NULL; - tginfo->next = model->lm3g.tginfo[lw2]; - model->lm3g.tginfo[lw2] = tginfo; - - /* Locate bigram lw1,lw2 */ - b = model->lm3g.unigrams[lw1].bigrams; - n = model->lm3g.unigrams[lw1 + 1].bigrams - b; - bg = model->lm3g.bigrams + b; - - if ((n > 0) && ((i = find_bg(bg, n, lw2)) >= 0)) { - tginfo->bowt = model->lm3g.bo_wt2[bg[i].bo_wt2].l; - - /* Find t = Absolute first trigram index for bigram lw1,lw2 */ - b += i; /* b = Absolute index of bigram lw1,lw2 on disk */ - t = FIRST_TG(model, b); - - tginfo->tg = model->lm3g.trigrams + t; - - /* Find #tg for bigram w1,w2 */ - tginfo->n_tg = FIRST_TG(model, b + 1) - t; - } - else { /* No bigram w1,w2 */ - tginfo->bowt = 0; - tginfo->n_tg = 0; - } -} - -/* Similar to find_bg */ -static int32 -find_tg(trigram_t * tg, int32 n, int32 w) -{ - int32 i, b, e; - - b = 0; - e = n; - while (e - b > BINARY_SEARCH_THRESH) { - i = (b + e) >> 1; - if (tg[i].wid < w) - b = i + 1; - else if (tg[i].wid > w) - e = i; - else - return i; - } - - for (i = b; (i < e) && (tg[i].wid != w); i++); - return ((i < e) ? i : -1); -} - -static int32 -lm3g_tg_score(NGRAM_MODEL_TYPE *model, int32 lw1, - int32 lw2, int32 lw3, int32 *n_used) -{ - ngram_model_t *base = &model->base; - int32 i, n, score; - trigram_t *tg; - tginfo_t *tginfo, *prev_tginfo; - - if ((base->n < 3) || (lw1 < 0) || (lw2 < 0)) - return (lm3g_bg_score(model, lw2, lw3, n_used)); - - prev_tginfo = NULL; - for (tginfo = model->lm3g.tginfo[lw2]; tginfo; tginfo = tginfo->next) { - if (tginfo->w1 == lw1) - break; - prev_tginfo = tginfo; - } - - if (!tginfo) { - load_tginfo(model, lw1, lw2); - tginfo = model->lm3g.tginfo[lw2]; - } - else if (prev_tginfo) { - prev_tginfo->next = tginfo->next; - tginfo->next = model->lm3g.tginfo[lw2]; - model->lm3g.tginfo[lw2] = tginfo; - } - - tginfo->used = 1; - - /* Trigrams for w1,w2 now pointed to by tginfo */ - n = tginfo->n_tg; - tg = tginfo->tg; - if ((i = find_tg(tg, n, lw3)) >= 0) { - /* Access mode = trigram */ - *n_used = 3; - score = model->lm3g.prob3[tg[i].prob3].l; - } - else { - score = tginfo->bowt + lm3g_bg_score(model, lw2, lw3, n_used); - } - - return (score); -} - -static int32 -lm3g_template_score(ngram_model_t *base, int32 wid, - int32 *history, int32 n_hist, - int32 *n_used) -{ - NGRAM_MODEL_TYPE *model = (NGRAM_MODEL_TYPE *)base; - switch (n_hist) { - case 0: - /* Access mode: unigram */ - *n_used = 1; - return model->lm3g.unigrams[wid].prob1.l; - case 1: - return lm3g_bg_score(model, history[0], wid, n_used); - case 2: - default: - /* Anything greater than 2 is the same as a trigram for now. */ - return lm3g_tg_score(model, history[1], history[0], wid, n_used); - } -} - -static int32 -lm3g_template_raw_score(ngram_model_t *base, int32 wid, - int32 *history, int32 n_hist, - int32 *n_used) -{ - NGRAM_MODEL_TYPE *model = (NGRAM_MODEL_TYPE *)base; - int32 score; - - switch (n_hist) { - case 0: - /* Access mode: unigram */ - *n_used = 1; - /* Undo insertion penalty. */ - score = model->lm3g.unigrams[wid].prob1.l - base->log_wip; - /* Undo language weight. */ - score = (int32)(score / base->lw); - /* Undo unigram interpolation */ - if (strcmp(base->word_str[wid], "") != 0) { /* FIXME: configurable start_sym */ - score = logmath_log(base->lmath, - logmath_exp(base->lmath, score) - - logmath_exp(base->lmath, - base->log_uniform + base->log_uniform_weight)); - } - return score; - case 1: - score = lm3g_bg_score(model, history[0], wid, n_used); - break; - case 2: - default: - /* Anything greater than 2 is the same as a trigram for now. */ - score = lm3g_tg_score(model, history[1], history[0], wid, n_used); - break; - } - /* FIXME (maybe): This doesn't undo unigram weighting in backoff cases. */ - return (int32)((score - base->log_wip) / base->lw); -} - -static int32 -lm3g_template_add_ug(ngram_model_t *base, - int32 wid, int32 lweight) -{ - NGRAM_MODEL_TYPE *model = (NGRAM_MODEL_TYPE *)base; - return lm3g_add_ug(base, &model->lm3g, wid, lweight); -} - -static void -lm3g_template_flush(ngram_model_t *base) -{ - NGRAM_MODEL_TYPE *model = (NGRAM_MODEL_TYPE *)base; - lm3g_tginfo_reset(base, &model->lm3g); -} - -typedef struct lm3g_iter_s { - ngram_iter_t base; - unigram_t *ug; - bigram_t *bg; - trigram_t *tg; -} lm3g_iter_t; - -static ngram_iter_t * -lm3g_template_iter(ngram_model_t *base, int32 wid, - int32 *history, int32 n_hist) -{ - NGRAM_MODEL_TYPE *model = (NGRAM_MODEL_TYPE *)base; - lm3g_iter_t *itor = ckd_calloc(1, sizeof(*itor)); - - ngram_iter_init((ngram_iter_t *)itor, base, n_hist, FALSE); - - if (n_hist == 0) { - /* Unigram is the easiest. */ - itor->ug = model->lm3g.unigrams + wid; - return (ngram_iter_t *)itor; - } - else if (n_hist == 1) { - int32 i, n, b; - /* Find the bigram, as in bg_score above (duplicate code...) */ - itor->ug = model->lm3g.unigrams + history[0]; - b = FIRST_BG(model, history[0]); - n = FIRST_BG(model, history[0] + 1) - b; - itor->bg = model->lm3g.bigrams + b; - /* If no such bigram exists then fail. */ - if ((i = find_bg(itor->bg, n, wid)) < 0) { - ngram_iter_free((ngram_iter_t *)itor); - return NULL; - } - itor->bg += i; - return (ngram_iter_t *)itor; - } - else if (n_hist == 2) { - int32 i, n; - tginfo_t *tginfo, *prev_tginfo; - /* Find the trigram, as in tg_score above (duplicate code...) */ - itor->ug = model->lm3g.unigrams + history[1]; - prev_tginfo = NULL; - for (tginfo = model->lm3g.tginfo[history[0]]; - tginfo; tginfo = tginfo->next) { - if (tginfo->w1 == history[1]) - break; - prev_tginfo = tginfo; - } - - if (!tginfo) { - load_tginfo(model, history[1], history[0]); - tginfo = model->lm3g.tginfo[history[0]]; - } - else if (prev_tginfo) { - prev_tginfo->next = tginfo->next; - tginfo->next = model->lm3g.tginfo[history[0]]; - model->lm3g.tginfo[history[0]] = tginfo; - } - - tginfo->used = 1; - - /* Trigrams for w1,w2 now pointed to by tginfo */ - n = tginfo->n_tg; - itor->tg = tginfo->tg; - if ((i = find_tg(itor->tg, n, wid)) >= 0) { - itor->tg += i; - /* Now advance the bigram pointer accordingly. FIXME: - * Note that we actually already found the relevant bigram - * in load_tginfo. */ - itor->bg = model->lm3g.bigrams; - while (FIRST_TG(model, (itor->bg - model->lm3g.bigrams + 1)) - <= (itor->tg - model->lm3g.trigrams)) - ++itor->bg; - return (ngram_iter_t *)itor; - } - else { - ngram_iter_free((ngram_iter_t *)itor); - return (ngram_iter_t *)NULL; - } - } - else { - /* Should not happen. */ - assert(n_hist == 0); /* Guaranteed to fail. */ - ngram_iter_free((ngram_iter_t *)itor); - return NULL; - } -} - -static ngram_iter_t * -lm3g_template_mgrams(ngram_model_t *base, int m) -{ - NGRAM_MODEL_TYPE *model = (NGRAM_MODEL_TYPE *)base; - lm3g_iter_t *itor = ckd_calloc(1, sizeof(*itor)); - ngram_iter_init((ngram_iter_t *)itor, base, m, FALSE); - - itor->ug = model->lm3g.unigrams; - itor->bg = model->lm3g.bigrams; - itor->tg = model->lm3g.trigrams; - - /* Advance bigram pointer to match first trigram. */ - if (m > 1 && base->n_counts[1] > 1) { - while (FIRST_TG(model, (itor->bg - model->lm3g.bigrams + 1)) - <= (itor->tg - model->lm3g.trigrams)) - ++itor->bg; - } - - /* Advance unigram pointer to match first bigram. */ - if (m > 0 && base->n_counts[0] > 1) { - while (itor->ug[1].bigrams <= (itor->bg - model->lm3g.bigrams)) - ++itor->ug; - } - - return (ngram_iter_t *)itor; -} - -static ngram_iter_t * -lm3g_template_successors(ngram_iter_t *bitor) -{ - NGRAM_MODEL_TYPE *model = (NGRAM_MODEL_TYPE *)bitor->model; - lm3g_iter_t *from = (lm3g_iter_t *)bitor; - lm3g_iter_t *itor = ckd_calloc(1, sizeof(*itor)); - - itor->ug = from->ug; - switch (bitor->m) { - case 0: - /* Next itor bigrams is the same as this itor bigram or - itor bigrams is more than total count. This means no successors */ - if (((itor->ug + 1) - model->lm3g.unigrams < bitor->model->n_counts[0] && - itor->ug->bigrams == (itor->ug + 1)->bigrams) || - itor->ug->bigrams == bitor->model->n_counts[1]) - goto done; - - /* Start iterating from first bigram successor of from->ug. */ - itor->bg = model->lm3g.bigrams + itor->ug->bigrams; - break; - case 1: - itor->bg = from->bg; - - /* This indicates no successors */ - if (((itor->bg + 1) - model->lm3g.bigrams < bitor->model->n_counts[1] && - FIRST_TG (model, itor->bg - model->lm3g.bigrams) == - FIRST_TG (model, (itor->bg + 1) - model->lm3g.bigrams)) || - FIRST_TG (model, itor->bg - model->lm3g.bigrams) == bitor->model->n_counts[2]) - goto done; - - /* Start iterating from first trigram successor of from->bg. */ - itor->tg = (model->lm3g.trigrams - + FIRST_TG(model, (itor->bg - model->lm3g.bigrams))); -#if 0 - printf("%s %s => %d (%s)\n", - model->base.word_str[itor->ug - model->lm3g.unigrams], - model->base.word_str[itor->bg->wid], - FIRST_TG(model, (itor->bg - model->lm3g.bigrams)), - model->base.word_str[itor->tg->wid]); -#endif - break; - case 2: - default: - /* All invalid! */ - goto done; - } - - ngram_iter_init((ngram_iter_t *)itor, bitor->model, bitor->m + 1, TRUE); - return (ngram_iter_t *)itor; - done: - ckd_free(itor); - return NULL; -} - -static int32 const * -lm3g_template_iter_get(ngram_iter_t *base, - int32 *out_score, int32 *out_bowt) -{ - NGRAM_MODEL_TYPE *model = (NGRAM_MODEL_TYPE *)base->model; - lm3g_iter_t *itor = (lm3g_iter_t *)base; - - base->wids[0] = itor->ug - model->lm3g.unigrams; - if (itor->bg) base->wids[1] = itor->bg->wid; - if (itor->tg) base->wids[2] = itor->tg->wid; -#if 0 - printf("itor_get: %d %d %d\n", base->wids[0], base->wids[1], base->wids[2]); -#endif - - switch (base->m) { - case 0: - *out_score = itor->ug->prob1.l; - *out_bowt = itor->ug->bo_wt1.l; - break; - case 1: - *out_score = model->lm3g.prob2[itor->bg->prob2].l; - if (model->lm3g.bo_wt2) - *out_bowt = model->lm3g.bo_wt2[itor->bg->bo_wt2].l; - else - *out_bowt = 0; - break; - case 2: - *out_score = model->lm3g.prob3[itor->tg->prob3].l; - *out_bowt = 0; - break; - default: /* Should not happen. */ - return NULL; - } - return base->wids; -} - -static ngram_iter_t * -lm3g_template_iter_next(ngram_iter_t *base) -{ - NGRAM_MODEL_TYPE *model = (NGRAM_MODEL_TYPE *)base->model; - lm3g_iter_t *itor = (lm3g_iter_t *)base; - - switch (base->m) { - case 0: - ++itor->ug; - /* Check for end condition. */ - if (itor->ug - model->lm3g.unigrams >= base->model->n_counts[0]) - goto done; - break; - case 1: - ++itor->bg; - /* Check for end condition. */ - if (itor->bg - model->lm3g.bigrams >= base->model->n_counts[1]) - goto done; - /* Advance unigram pointer if necessary in order to get one - * that points to this bigram. */ - while (itor->bg - model->lm3g.bigrams >= itor->ug[1].bigrams) { - /* Stop if this is a successor iterator, since we don't - * want a new unigram. */ - if (base->successor) - goto done; - ++itor->ug; - if (itor->ug == model->lm3g.unigrams + base->model->n_counts[0]) { - E_ERROR("Bigram %d has no valid unigram parent\n", - itor->bg - model->lm3g.bigrams); - goto done; - } - } - break; - case 2: - ++itor->tg; - /* Check for end condition. */ - if (itor->tg - model->lm3g.trigrams >= base->model->n_counts[2]) - goto done; - /* Advance bigram pointer if necessary. */ - while (itor->tg - model->lm3g.trigrams >= - FIRST_TG(model, (itor->bg - model->lm3g.bigrams + 1))) { - if (base->successor) - goto done; - ++itor->bg; - if (itor->bg == model->lm3g.bigrams + base->model->n_counts[1]) { - E_ERROR("Trigram %d has no valid bigram parent\n", - itor->tg - model->lm3g.trigrams); - - goto done; - } - } - /* Advance unigram pointer if necessary. */ - while (itor->bg - model->lm3g.bigrams >= itor->ug[1].bigrams) { - ++itor->ug; - if (itor->ug == model->lm3g.unigrams + base->model->n_counts[0]) { - E_ERROR("Trigram %d has no valid unigram parent\n", - itor->tg - model->lm3g.trigrams); - goto done; - } - } - break; - default: /* Should not happen. */ - goto done; - } - - return (ngram_iter_t *)itor; -done: - ngram_iter_free(base); - return NULL; -} - -static void -lm3g_template_iter_free(ngram_iter_t *base) -{ - ckd_free(base); -} diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/lm_trie.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm_trie.c --- sphinxbase-0.8/src/libsphinxbase/lm/lm_trie.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm_trie.c 2015-08-05 12:19:55.000000000 +0000 @@ -0,0 +1,697 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 +#include + +#include +#include +#include +#include + +#include "lm_trie.h" +#include "lm_trie_quant.h" + +static uint32 +base_size(uint32 entries, uint32 max_vocab, uint8 remaining_bits) +{ + uint8 total_bits = bitarr_required_bits(max_vocab) + remaining_bits; + // Extra entry for next pointer at the end. + // +7 then / 8 to round up bits and convert to bytes + // +sizeof(uint64) so that ReadInt57 etc don't go segfault. + // Note that this waste is O(order), not O(number of ngrams). + return ((1 + entries) * total_bits + 7) / 8 + sizeof(uint64); +} + +uint32 +middle_size(uint8 quant_bits, uint32 entries, uint32 max_vocab, + uint32 max_ptr) +{ + return base_size(entries, max_vocab, + quant_bits + bitarr_required_bits(max_ptr)); +} + +uint32 +longest_size(uint8 quant_bits, uint32 entries, uint32 max_vocab) +{ + return base_size(entries, max_vocab, quant_bits); +} + +static void +base_init(base_t * base, void *base_mem, uint32 max_vocab, + uint8 remaining_bits) +{ + base->word_bits = bitarr_required_bits(max_vocab); + base->word_mask = (1U << base->word_bits) - 1U; + if (base->word_bits > 25) + E_ERROR + ("Sorry, word indices more than %d are not implemented. Edit util/bit_packing.hh and fix the bit packing functions\n", + (1U << 25)); + base->total_bits = base->word_bits + remaining_bits; + + base->base = (uint8 *) base_mem; + base->insert_index = 0; + base->max_vocab = max_vocab; +} + +void +middle_init(middle_t * middle, void *base_mem, uint8 quant_bits, + uint32 entries, uint32 max_vocab, uint32 max_next, + void *next_source) +{ + middle->quant_bits = quant_bits; + bitarr_mask_from_max(&middle->next_mask, max_next); + middle->next_source = next_source; + if (entries + 1 >= (1U << 25) || (max_next >= (1U << 25))) + E_ERROR + ("Sorry, this does not support more than %d n-grams of a particular order. Edit util/bit_packing.hh and fix the bit packing functions\n", + (1U << 25)); + base_init(&middle->base, base_mem, max_vocab, + quant_bits + middle->next_mask.bits); +} + +void +longest_init(longest_t * longest, void *base_mem, uint8 quant_bits, + uint32 max_vocab) +{ + base_init(&longest->base, base_mem, max_vocab, quant_bits); +} + +static bitarr_address_t +middle_insert(middle_t * middle, uint32 word, int order, int max_order) +{ + uint32 at_pointer; + uint32 next; + bitarr_address_t address; + assert(word <= middle->base.word_mask); + address.base = middle->base.base; + address.offset = middle->base.insert_index * middle->base.total_bits; + bitarr_write_int25(address, middle->base.word_bits, word); + address.offset += middle->base.word_bits; + at_pointer = address.offset; + address.offset += middle->quant_bits; + if (order == max_order - 1) { + next = ((longest_t *) middle->next_source)->base.insert_index; + } + else { + next = ((middle_t *) middle->next_source)->base.insert_index; + } + + bitarr_write_int25(address, middle->next_mask.bits, next); + middle->base.insert_index++; + address.offset = at_pointer; + return address; +} + +static bitarr_address_t +longest_insert(longest_t * longest, uint32 index) +{ + bitarr_address_t address; + assert(index <= longest->base.word_mask); + address.base = longest->base.base; + address.offset = longest->base.insert_index * longest->base.total_bits; + bitarr_write_int25(address, longest->base.word_bits, index); + address.offset += longest->base.word_bits; + longest->base.insert_index++; + return address; +} + +static void +middle_finish_loading(middle_t * middle, uint32 next_end) +{ + bitarr_address_t address; + address.base = middle->base.base; + address.offset = + (middle->base.insert_index + 1) * middle->base.total_bits - + middle->next_mask.bits; + bitarr_write_int25(address, middle->next_mask.bits, next_end); +} + +static uint32 +unigram_next(lm_trie_t * trie, int order) +{ + return order == + 2 ? trie->longest->base.insert_index : trie->middle_begin->base. + insert_index; +} + +static void +recursive_insert(lm_trie_t * trie, ngram_raw_t ** raw_ngrams, + uint32 * counts, int order) +{ + uint32 unigram_idx = 0; + uint32 *words; + float *probs; + const uint32 unigram_count = (uint32) counts[0]; + priority_queue_t *ngrams = + priority_queue_create(order, &ngram_ord_comparator); + ngram_raw_ord_t *ngram; + uint32 *raw_ngrams_ptr; + int i; + + words = (uint32 *) ckd_calloc(order, sizeof(*words)); //for blanks catching + probs = (float *) ckd_calloc(order - 1, sizeof(*probs)); //for blanks prob generating + ngram = (ngram_raw_ord_t *) ckd_calloc(1, sizeof(*ngram)); + ngram->order = 1; + ngram->instance.words = &unigram_idx; + priority_queue_add(ngrams, ngram); + raw_ngrams_ptr = + (uint32 *) ckd_calloc(order - 1, sizeof(*raw_ngrams_ptr)); + for (i = 2; i <= order; ++i) { + ngram_raw_ord_t *tmp_ngram; + + if (counts[i - 1] <= 0) + continue; + tmp_ngram = + (ngram_raw_ord_t *) ckd_calloc(1, sizeof(*tmp_ngram)); + tmp_ngram->order = i; + raw_ngrams_ptr[i - 2] = 0; + tmp_ngram->instance = raw_ngrams[i - 2][0]; + priority_queue_add(ngrams, tmp_ngram); + } + + for (;;) { + ngram_raw_ord_t *top = + (ngram_raw_ord_t *) priority_queue_poll(ngrams); + if (top->order == 1) { + trie->unigrams[unigram_idx].next = unigram_next(trie, order); + words[0] = unigram_idx; + probs[0] = trie->unigrams[unigram_idx].prob; + if (++unigram_idx == unigram_count + 1) { + ckd_free(top); + break; + } + priority_queue_add(ngrams, top); + } + else { + for (i = 0; i < top->order - 1; i++) { + if (words[i] != top->instance.words[i]) { + //need to insert dummy suffixes to make ngram of higher order reachable + int j; + assert(i > 0); //unigrams are not pruned without removing ngrams that contains them + for (j = i; j < top->order - 1; j++) { + middle_t *middle = &trie->middle_begin[j - 1]; + bitarr_address_t address = + middle_insert(middle, top->instance.words[j], + j + 1, order); + //calculate prob for blank + float calc_prob = + probs[j - 1] + + trie->unigrams[top->instance.words[j]].bo; + probs[j] = calc_prob; + lm_trie_quant_mwrite(trie->quant, address, j - 1, + calc_prob, 0.0f); + } + } + } + memcpy(words, top->instance.words, + top->order * sizeof(*words)); + if (top->order == order) { + float *weights = top->instance.weights; + bitarr_address_t address = + longest_insert(trie->longest, + top->instance.words[top->order - 1]); + lm_trie_quant_lwrite(trie->quant, address, weights[0]); + } + else { + float *weights = top->instance.weights; + middle_t *middle = &trie->middle_begin[top->order - 2]; + bitarr_address_t address = + middle_insert(middle, + top->instance.words[top->order - 1], + top->order, order); + //write prob and backoff + probs[top->order - 1] = weights[0]; + lm_trie_quant_mwrite(trie->quant, address, top->order - 2, + weights[0], weights[1]); + } + raw_ngrams_ptr[top->order - 2]++; + if (raw_ngrams_ptr[top->order - 2] < counts[top->order - 1]) { + top->instance = + raw_ngrams[top->order - + 2][raw_ngrams_ptr[top->order - 2]]; + priority_queue_add(ngrams, top); + } + else { + ckd_free(top); + } + } + } + assert(priority_queue_size(ngrams) == 0); + priority_queue_free(ngrams, NULL); + ckd_free(raw_ngrams_ptr); + ckd_free(words); + ckd_free(probs); +} + +static lm_trie_t * +lm_trie_init(uint32 unigram_count) +{ + lm_trie_t *trie; + + trie = (lm_trie_t *) ckd_calloc(1, sizeof(*trie)); + memset(trie->prev_hist, -1, sizeof(trie->prev_hist)); //prepare request history + memset(trie->backoff, 0, sizeof(trie->backoff)); + trie->unigrams = + (unigram_t *) ckd_calloc((unigram_count + 1), + sizeof(*trie->unigrams)); + trie->ngram_mem = NULL; + return trie; +} + +lm_trie_t * +lm_trie_create(uint32 unigram_count, lm_trie_quant_type_t quant_type, + int order) +{ + lm_trie_t *trie = lm_trie_init(unigram_count); + trie->quant = + (order > 1) ? lm_trie_quant_create(quant_type, order) : 0; + return trie; +} + +lm_trie_t * +lm_trie_read_bin(uint32 * counts, int order, FILE * fp) +{ + lm_trie_t *trie = lm_trie_init(counts[0]); + trie->quant = (order > 1) ? lm_trie_quant_read_bin(fp, order) : NULL; + fread(trie->unigrams, sizeof(*trie->unigrams), (counts[0] + 1), fp); + if (order > 1) { + lm_trie_alloc_ngram(trie, counts, order); + fread(trie->ngram_mem, 1, trie->ngram_mem_size, fp); + } + return trie; +} + +void +lm_trie_write_bin(lm_trie_t * trie, uint32 unigram_count, FILE * fp) +{ + + if (trie->quant) + lm_trie_quant_write_bin(trie->quant, fp); + fwrite(trie->unigrams, sizeof(*trie->unigrams), (unigram_count + 1), + fp); + if (trie->ngram_mem) + fwrite(trie->ngram_mem, 1, trie->ngram_mem_size, fp); +} + +void +lm_trie_free(lm_trie_t * trie) +{ + if (trie->ngram_mem) { + ckd_free(trie->ngram_mem); + ckd_free(trie->middle_begin); + ckd_free(trie->longest); + } + if (trie->quant) + lm_trie_quant_free(trie->quant); + ckd_free(trie->unigrams); + ckd_free(trie); +} + +void +lm_trie_alloc_ngram(lm_trie_t * trie, uint32 * counts, int order) +{ + int i; + uint8 *mem_ptr; + uint8 **middle_starts; + + trie->ngram_mem_size = 0; + for (i = 1; i < order - 1; i++) { + trie->ngram_mem_size += + middle_size(lm_trie_quant_msize(trie->quant), counts[i], + counts[0], counts[i + 1]); + } + trie->ngram_mem_size += + longest_size(lm_trie_quant_lsize(trie->quant), counts[order - 1], + counts[0]); + trie->ngram_mem = + (uint8 *) ckd_calloc(trie->ngram_mem_size, + sizeof(*trie->ngram_mem)); + mem_ptr = trie->ngram_mem; + trie->middle_begin = + (middle_t *) ckd_calloc(order - 2, sizeof(*trie->middle_begin)); + trie->middle_end = trie->middle_begin + (order - 2); + middle_starts = + (uint8 **) ckd_calloc(order - 2, sizeof(*middle_starts)); + for (i = 2; i < order; i++) { + middle_starts[i - 2] = mem_ptr; + mem_ptr += + middle_size(lm_trie_quant_msize(trie->quant), counts[i - 1], + counts[0], counts[i]); + } + trie->longest = (longest_t *) ckd_calloc(1, sizeof(*trie->longest)); + // Crazy backwards thing so we initialize using pointers to ones that have already been initialized + for (i = order - 1; i >= 2; --i) { + middle_t *middle_ptr = &trie->middle_begin[i - 2]; + middle_init(middle_ptr, middle_starts[i - 2], + lm_trie_quant_msize(trie->quant), counts[i - 1], + counts[0], counts[i], + (i == + order - + 1) ? (void *) trie->longest : (void *) &trie-> + middle_begin[i - 1]); + } + ckd_free(middle_starts); + longest_init(trie->longest, mem_ptr, lm_trie_quant_lsize(trie->quant), + counts[0]); +} + +void +lm_trie_build(lm_trie_t * trie, ngram_raw_t ** raw_ngrams, uint32 * counts, + int order) +{ + int i; + if (lm_trie_quant_to_train(trie->quant)) { + E_INFO("Training quantizer\n"); + for (i = 2; i < order; i++) { + lm_trie_quant_train(trie->quant, i, counts[i - 1], + raw_ngrams[i - 2]); + } + lm_trie_quant_train_prob(trie->quant, order, counts[order - 1], + raw_ngrams[order - 2]); + } + E_INFO("Building LM trie\n"); + recursive_insert(trie, raw_ngrams, counts, order); + /* Set ending offsets so the last entry will be sized properly */ + // Last entry for unigrams was already set. + if (trie->middle_begin != trie->middle_end) { + middle_t *middle_ptr; + for (middle_ptr = trie->middle_begin; + middle_ptr != trie->middle_end - 1; ++middle_ptr) { + middle_t *next_middle_ptr = middle_ptr + 1; + middle_finish_loading(middle_ptr, + next_middle_ptr->base.insert_index); + } + middle_ptr = trie->middle_end - 1; + middle_finish_loading(middle_ptr, + trie->longest->base.insert_index); + } +} + +unigram_t * +unigram_find(unigram_t * u, uint32 word, node_range_t * next) +{ + unigram_t *ptr = &u[word]; + next->begin = ptr->next; + next->end = (ptr + 1)->next; + return ptr; +} + +static size_t +calc_pivot(uint32 off, uint32 range, uint32 width) +{ + return (size_t) ((off * width) / (range + 1)); +} + +static uint8 +uniform_find(void *base, uint8 total_bits, uint8 key_bits, uint32 key_mask, + uint32 before_it, uint32 before_v, + uint32 after_it, uint32 after_v, uint32 key, uint32 * out) +{ + bitarr_address_t address; + address.base = base; + while (after_it - before_it > 1) { + uint32 mid; + uint32 pivot = + before_it + (1 + + calc_pivot(key - before_v, after_v - before_v, + after_it - before_it - 1)); + //access by pivot + address.offset = pivot * (uint32) total_bits; + mid = bitarr_read_int25(address, key_bits, key_mask); + if (mid < key) { + before_it = pivot; + before_v = mid; + } + else if (mid > key) { + after_it = pivot; + after_v = mid; + } + else { + *out = pivot; + return TRUE; + } + } + return FALSE; +} + +static bitarr_address_t +middle_find(middle_t * middle, uint32 word, node_range_t * range) +{ + uint32 at_pointer; + bitarr_address_t address; + + //finding BitPacked with uniform find + if (!uniform_find + ((void *) middle->base.base, middle->base.total_bits, + middle->base.word_bits, middle->base.word_mask, range->begin - 1, + 0, range->end, middle->base.max_vocab, word, &at_pointer)) { + address.base = NULL; + address.offset = 0; + return address; + } + + address.base = middle->base.base; + at_pointer *= middle->base.total_bits; + at_pointer += middle->base.word_bits; + address.offset = at_pointer + middle->quant_bits; + range->begin = + bitarr_read_int25(address, middle->next_mask.bits, + middle->next_mask.mask); + address.offset += middle->base.total_bits; + range->end = + bitarr_read_int25(address, middle->next_mask.bits, + middle->next_mask.mask); + address.offset = at_pointer; + + return address; +} + +static bitarr_address_t +longest_find(longest_t * longest, uint32 word, node_range_t * range) +{ + uint32 at_pointer; + bitarr_address_t address; + + //finding BitPacked with uniform find + if (!uniform_find + ((void *) longest->base.base, longest->base.total_bits, + longest->base.word_bits, longest->base.word_mask, + range->begin - 1, 0, range->end, longest->base.max_vocab, word, + &at_pointer)) { + address.base = NULL; + address.offset = 0; + return address; + } + address.base = longest->base.base; + address.offset = + at_pointer * longest->base.total_bits + longest->base.word_bits; + return address; +} + +static float +get_available_prob(lm_trie_t * trie, int32 wid, int32 * hist, + int max_order, int32 n_hist, int32 * n_used) +{ + float prob; + node_range_t node; + bitarr_address_t address; + int order_minus_2; + uint8 independent_left; + int32 *hist_iter, *hist_end; + + *n_used = 1; + prob = unigram_find(trie->unigrams, wid, &node)->prob; + if (n_hist == 0) { + return prob; + } + + //find ngrams of higher order if any + order_minus_2 = 0; + independent_left = (node.begin == node.end); + hist_iter = hist; + hist_end = hist + n_hist; + for (;; order_minus_2++, hist_iter++) { + if (hist_iter == hist_end) + return prob; + if (independent_left) + return prob; + if (order_minus_2 == max_order - 2) + break; + + address = + middle_find(&trie->middle_begin[order_minus_2], *hist_iter, + &node); + independent_left = (address.base == NULL) + || (node.begin == node.end); + + //didn't find entry + if (address.base == NULL) + return prob; + prob = lm_trie_quant_mpread(trie->quant, address, order_minus_2); + *n_used = order_minus_2 + 2; + } + + address = longest_find(trie->longest, *hist_iter, &node); + if (address.base != NULL) { + prob = lm_trie_quant_lpread(trie->quant, address); + *n_used = max_order; + } + return prob; +} + +static float +get_available_backoff(lm_trie_t * trie, int32 start, int32 * hist, + int32 n_hist) +{ + float backoff = 0.0f; + int order_minus_2; + int32 *hist_iter; + node_range_t node; + unigram_t *first_hist = unigram_find(trie->unigrams, hist[0], &node); + if (start <= 1) { + backoff += first_hist->bo; + start = 2; + } + order_minus_2 = start - 2; + for (hist_iter = hist + start - 1; hist_iter < hist + n_hist; + hist_iter++, order_minus_2++) { + bitarr_address_t address = + middle_find(&trie->middle_begin[order_minus_2], *hist_iter, + &node); + if (address.base == NULL) + break; + backoff += + lm_trie_quant_mboread(trie->quant, address, order_minus_2); + } + return backoff; +} + +static float +lm_trie_nobo_score(lm_trie_t * trie, int32 wid, int32 * hist, + int max_order, int32 n_hist, int32 * n_used) +{ + float prob = + get_available_prob(trie, wid, hist, max_order, n_hist, n_used); + if (n_hist < *n_used) + return prob; + return prob + get_available_backoff(trie, *n_used, hist, n_hist); +} + +static float +lm_trie_hist_score(lm_trie_t * trie, int32 wid, int32 * hist, int32 n_hist, + int32 * n_used) +{ + float prob; + int i, j; + node_range_t node; + bitarr_address_t address; + + *n_used = 1; + prob = unigram_find(trie->unigrams, wid, &node)->prob; + if (n_hist == 0) + return prob; + for (i = 0; i < n_hist - 1; i++) { + address = middle_find(&trie->middle_begin[i], hist[i], &node); + if (address.base == NULL) { + for (j = i; j < n_hist; j++) { + prob += trie->backoff[j]; + } + return prob; + } + else { + (*n_used)++; + prob = lm_trie_quant_mpread(trie->quant, address, i); + } + } + address = longest_find(trie->longest, hist[n_hist - 1], &node); + if (address.base == NULL) { + return prob + trie->backoff[n_hist - 1]; + } + else { + (*n_used)++; + return lm_trie_quant_lpread(trie->quant, address); + } +} + +static uint8 +history_matches(int32 * hist, int32 * prev_hist, int32 n_hist) +{ + int i; + for (i = 0; i < n_hist; i++) { + if (hist[i] != prev_hist[i]) { + return FALSE; + } + } + return TRUE; +} + +static void +update_backoff(lm_trie_t * trie, int32 * hist, int32 n_hist) +{ + int i; + node_range_t node; + bitarr_address_t address; + + memset(trie->backoff, 0, sizeof(trie->backoff)); + trie->backoff[0] = unigram_find(trie->unigrams, hist[0], &node)->bo; + for (i = 1; i < n_hist; i++) { + address = middle_find(&trie->middle_begin[i - 1], hist[i], &node); + if (address.base == NULL) { + break; + } + trie->backoff[i] = + lm_trie_quant_mboread(trie->quant, address, i - 1); + } + memcpy(trie->prev_hist, hist, n_hist * sizeof(*hist)); +} + +float +lm_trie_score(lm_trie_t * trie, int order, int32 wid, int32 * hist, + int32 n_hist, int32 * n_used) +{ + if (n_hist < order - 1) { + return lm_trie_nobo_score(trie, wid, hist, order, n_hist, n_used); + } + else { + assert(n_hist == order - 1); + if (!history_matches(hist, (int32 *) trie->prev_hist, n_hist)) { + update_backoff(trie, hist, n_hist); + } + return lm_trie_hist_score(trie, wid, hist, n_hist, n_used); + } +} diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/lm_trie.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm_trie.h --- sphinxbase-0.8/src/libsphinxbase/lm/lm_trie.h 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm_trie.h 2015-08-05 11:17:26.000000000 +0000 @@ -0,0 +1,114 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 __LM_TRIE_H__ +#define __LM_TRIE_H__ + +#include +#include + +#include "ngram_model_internal.h" +#include "lm_trie_quant.h" + +typedef struct unigram_s { + float prob; + float bo; + uint32 next; +} unigram_t; + +typedef struct node_range_s { + uint32 begin; + uint32 end; +} node_range_t; + +typedef struct base_s { + uint8 word_bits; + uint8 total_bits; + uint32 word_mask; + uint8 *base; + uint32 insert_index; + uint32 max_vocab; +} base_t; + +typedef struct middle_s { + base_t base; + bitarr_mask_t next_mask; + uint8 quant_bits; + void *next_source; +} middle_t; + +typedef struct longest_s { + base_t base; + uint8 quant_bits; +} longest_t; + +typedef struct lm_trie_s { + uint8 *ngram_mem; + size_t ngram_mem_size; + unigram_t *unigrams; + middle_t *middle_begin; + middle_t *middle_end; + longest_t *longest; + lm_trie_quant_t *quant; + + float backoff[NGRAM_MAX_ORDER]; + uint32 prev_hist[NGRAM_MAX_ORDER - 1]; +} lm_trie_t; + +/** + * Creates lm_trie structure. Fills it if binary file with correspondent data is provided + */ +lm_trie_t *lm_trie_create(uint32 unigram_count, + lm_trie_quant_type_t quant_type, int order); + +lm_trie_t *lm_trie_read_bin(uint32 * counts, int order, FILE * fp); + +void lm_trie_write_bin(lm_trie_t * trie, uint32 unigram_count, FILE * fp); + +void lm_trie_free(lm_trie_t * trie); + +void lm_trie_alloc_ngram(lm_trie_t * trie, uint32 * counts, int order); + +void lm_trie_build(lm_trie_t * trie, ngram_raw_t ** raw_ngrams, + uint32 * counts, int order); + +unigram_t *unigram_find(unigram_t * u, uint32 word, node_range_t * next); + +float lm_trie_score(lm_trie_t * trie, int order, int32 wid, int32 * hist, + int32 n_hist, int32 * n_used); + +#endif /* __LM_TRIE_H__ */ diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/lm_trie_quant.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm_trie_quant.c --- sphinxbase-0.8/src/libsphinxbase/lm/lm_trie_quant.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm_trie_quant.c 2015-08-05 11:17:26.000000000 +0000 @@ -0,0 +1,422 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 + +#include +#include +#include + +#include "ngram_model_internal.h" +#include "lm_trie_quant.h" + +#define FLOAT_INF (0x7f800000) + +typedef struct bins_s { + float *begin; + const float *end; +} bins_t; + +struct lm_trie_quant_s { + lm_trie_quant_type_t quant_type; + bins_t tables[NGRAM_MAX_ORDER - 1][2]; + bins_t *longest; + uint8 *mem; + size_t mem_size; + uint8 prob_bits; + uint8 bo_bits; + uint32 prob_mask; + uint32 bo_mask; +}; + +static void +bins_create(bins_t * bins, uint8 bits, float *begin) +{ + bins->begin = begin; + bins->end = bins->begin + (1ULL << bits); +} + +static float * +lower_bound(float *first, const float *last, float val) +{ + int count, step; + float *it; + + count = last - first; + while (count > 0) { + it = first; + step = count / 2; + it += step; + if (*it < val) { + first = ++it; + count -= step + 1; + } + else { + count = step; + } + } + return first; +} + +static uint64 +bins_encode(bins_t * bins, float value) +{ + float *above = lower_bound(bins->begin, bins->end, value); + if (above == bins->begin) + return 0; + if (above == bins->end) + return bins->end - bins->begin - 1; + return above - bins->begin - (value - *(above - 1) < *above - value); +} + +static float +bins_decode(bins_t * bins, size_t off) +{ + return bins->begin[off]; +} + +static size_t +quant_apply_size(int order, int prob_bits, int bo_bits) +{ + size_t longest_table = (1U << prob_bits) * sizeof(float); + size_t middle_table = (1U << bo_bits) * sizeof(float) + longest_table; + // unigrams are currently not quantized so no need for a table. + return (order - 2) * middle_table + longest_table; +} + +static size_t +quant_size(lm_trie_quant_type_t quant_type, int order) +{ + switch (quant_type) { + case NO_QUANT: + return 0; + case QUANT_16: + return quant_apply_size(order, 16, 16); + //TODO implement different quantatization stages + default: + E_INFO("Unsupported quantatization type\n"); + return 0; + } +} + +lm_trie_quant_t * +lm_trie_quant_create(lm_trie_quant_type_t quant_type, int order) +{ + float *start; + int i; + lm_trie_quant_t *quant = + (lm_trie_quant_t *) ckd_calloc(1, sizeof(*quant)); + quant->quant_type = quant_type; + quant->mem_size = quant_size(quant_type, order); + quant->mem = + (uint8 *) ckd_calloc(quant->mem_size, sizeof(*quant->mem)); + switch (quant_type) { + case NO_QUANT: + return quant; + case QUANT_16: + quant->prob_bits = 16; + quant->bo_bits = 16; + quant->prob_mask = (1U << quant->prob_bits) - 1; + quant->bo_mask = (1U << quant->bo_bits) - 1; + break; + default: + E_INFO("Unsupported quantization type\n"); + return quant; + } + start = (float *) (quant->mem); + for (i = 0; i < order - 2; i++) { + bins_create(&quant->tables[i][0], quant->prob_bits, start); + start += (1ULL << quant->prob_bits); + bins_create(&quant->tables[i][1], quant->bo_bits, start); + start += (1ULL << quant->bo_bits); + } + bins_create(&quant->tables[order - 2][0], quant->prob_bits, start); + quant->longest = &quant->tables[order - 2][0]; + return quant; +} + + +lm_trie_quant_t * +lm_trie_quant_read_bin(FILE * fp, int order) +{ + int quant_type_int; + lm_trie_quant_type_t quant_type; + lm_trie_quant_t *quant; + + fread(&quant_type_int, sizeof(quant_type_int), 1, fp); + quant_type = (lm_trie_quant_type_t) quant_type_int; + quant = lm_trie_quant_create(quant_type, order); + fread(quant->mem, sizeof(*quant->mem), quant->mem_size, fp); + + return quant; +} + +void +lm_trie_quant_write_bin(lm_trie_quant_t * quant, FILE * fp) +{ + int quant_type_int = (int) quant->quant_type; + + fwrite(&quant_type_int, sizeof(quant_type_int), 1, fp); + fwrite(quant->mem, sizeof(*quant->mem), quant->mem_size, fp); +} + +void +lm_trie_quant_free(lm_trie_quant_t * quant) +{ + if (quant->mem) + ckd_free(quant->mem); + ckd_free(quant); +} + +uint8 +lm_trie_quant_msize(lm_trie_quant_t * quant) +{ + switch (quant->quant_type) { + case NO_QUANT: + return 63; + case QUANT_16: + return 32; //16 bits for prob + 16 bits for bo + //TODO implement different quantatization stages + default: + E_INFO("Unsupported quantatization type\n"); + return 0; + } +} + +uint8 +lm_trie_quant_lsize(lm_trie_quant_t * quant) +{ + switch (quant->quant_type) { + case NO_QUANT: + return 31; + case QUANT_16: + return 16; //16 bits for probs + //TODO implement different quantatization stages + default: + E_INFO("Unsupported quantatization type\n"); + return 0; + } +} + +uint8 +lm_trie_quant_to_train(lm_trie_quant_t * quant) +{ + return quant->quant_type > 0; +} + +static int +weights_comparator(const void *a, const void *b) +{ + return (int) (*(float *) a - *(float *) b); +} + +static void +make_bins(float *values, uint32 values_num, float *centers, uint32 bins) +{ + float *finish, *start; + uint32 i; + + qsort(values, values_num, sizeof(*values), &weights_comparator); + start = values; + for (i = 0; i < bins; i++, centers++, start = finish) { + finish = values + (size_t) ((uint64) values_num * (i + 1) / bins); + if (finish == start) { + // zero length bucket. + *centers = i ? *(centers - 1) : -FLOAT_INF; + } + else { + float sum = 0.0f; + float *ptr; + for (ptr = start; ptr != finish; ptr++) { + sum += *ptr; + } + *centers = sum / (float) (finish - start); + } + } +} + +void +lm_trie_quant_train(lm_trie_quant_t * quant, int order, uint32 counts, + ngram_raw_t * raw_ngrams) +{ + float *probs; + float *backoffs; + float *centers; + uint32 backoff_num; + uint32 prob_num; + ngram_raw_t *raw_ngrams_end; + + probs = (float *) ckd_calloc(counts, sizeof(*probs)); + backoffs = (float *) ckd_calloc(counts, sizeof(*backoffs)); + raw_ngrams_end = raw_ngrams + counts; + + for (backoff_num = 0, prob_num = 0; raw_ngrams != raw_ngrams_end; + raw_ngrams++) { + float *weights = raw_ngrams->weights; + probs[prob_num++] = *weights; //first goes prob + weights++; //increment to backoff + backoffs[backoff_num++] = *weights; + } + + make_bins(probs, prob_num, quant->tables[order - 2][0].begin, + 1ULL << quant->prob_bits); + centers = quant->tables[order - 2][1].begin; + make_bins(backoffs, backoff_num, centers, (1ULL << quant->bo_bits)); + ckd_free(probs); + ckd_free(backoffs); +} + +void +lm_trie_quant_train_prob(lm_trie_quant_t * quant, int order, uint32 counts, + ngram_raw_t * raw_ngrams) +{ + float *probs; + uint32 prob_num; + ngram_raw_t *raw_ngrams_end; + + probs = (float *) ckd_calloc(counts, sizeof(*probs)); + raw_ngrams_end = raw_ngrams + counts; + + for (prob_num = 0; raw_ngrams != raw_ngrams_end; raw_ngrams++) { + float *weights = raw_ngrams->weights; + probs[prob_num++] = *weights; + } + + make_bins(probs, prob_num, quant->tables[order - 2][0].begin, + 1ULL << quant->prob_bits); + ckd_free(probs); +} + +void +lm_trie_quant_mwrite(lm_trie_quant_t * quant, bitarr_address_t address, + int order_minus_2, float prob, float backoff) +{ + switch (quant->quant_type) { + case NO_QUANT: + bitarr_write_negfloat(address, prob); + address.offset += 31; + bitarr_write_float(address, backoff); + break; + case QUANT_16: + bitarr_write_int57(address, quant->prob_bits + quant->bo_bits, + (uint64) ((bins_encode + (&quant->tables[order_minus_2][0], + prob) << quant-> + bo_bits) | bins_encode(&quant-> + tables + [order_minus_2] + [1], + backoff))); + break; + //TODO implement different quantatization stages + default: + E_INFO("Unsupported quantatization type\n"); + } +} + +void +lm_trie_quant_lwrite(lm_trie_quant_t * quant, bitarr_address_t address, + float prob) +{ + switch (quant->quant_type) { + case NO_QUANT: + bitarr_write_negfloat(address, prob); + break; + case QUANT_16: + bitarr_write_int25(address, quant->prob_bits, + (uint32) bins_encode(quant->longest, prob)); + break; + //TODO implement different quantatization stages + default: + E_INFO("Unsupported quantization type\n"); + } +} + +float +lm_trie_quant_mboread(lm_trie_quant_t * quant, bitarr_address_t address, + int order_minus_2) +{ + switch (quant->quant_type) { + case NO_QUANT: + address.offset += 31; + return bitarr_read_float(address); + case QUANT_16: + return bins_decode(&quant->tables[order_minus_2][1], + bitarr_read_int25(address, quant->bo_bits, + quant->bo_mask)); + //TODO implement different quantatization stages + default: + E_INFO("Unsupported quantatization type\n"); + return 0.0f; + } +} + +float +lm_trie_quant_mpread(lm_trie_quant_t * quant, bitarr_address_t address, + int order_minus_2) +{ + switch (quant->quant_type) { + case NO_QUANT: + return bitarr_read_negfloat(address); + case QUANT_16: + address.offset += quant->bo_bits; + return bins_decode(&quant->tables[order_minus_2][0], + bitarr_read_int25(address, quant->prob_bits, + quant->prob_mask)); + //TODO implement different quantatization stages + default: + E_INFO("Unsupported quantatization type\n"); + return 0.0f; + } +} + +float +lm_trie_quant_lpread(lm_trie_quant_t * quant, bitarr_address_t address) +{ + switch (quant->quant_type) { + case NO_QUANT: + return bitarr_read_negfloat(address); + case QUANT_16: + return bins_decode(quant->longest, + bitarr_read_int25(address, quant->prob_bits, + quant->prob_mask)); + //TODO implement different quantatization stages + default: + E_INFO("Unsupported quantatization type\n"); + return 0.0f; + } +} diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/lm_trie_quant.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm_trie_quant.h --- sphinxbase-0.8/src/libsphinxbase/lm/lm_trie_quant.h 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/lm_trie_quant.h 2015-08-05 11:17:26.000000000 +0000 @@ -0,0 +1,133 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 __LM_TRIE_QUANT_H__ +#define __LM_TRIE_QUANT_H__ + +#include + +#include "ngrams_raw.h" + +typedef struct lm_trie_quant_s lm_trie_quant_t; + +typedef enum lm_trie_quant_type_e { + NO_QUANT, + QUANT_16 +} lm_trie_quant_type_t; + +/** + * Create qunatizing + */ +lm_trie_quant_t *lm_trie_quant_create(lm_trie_quant_type_t quant_type, + int order); + + +/** + * Write quant data to binary file + */ +lm_trie_quant_t *lm_trie_quant_read_bin(FILE * fp, int order); + +/** + * Write quant data to binary file + */ +void lm_trie_quant_write_bin(lm_trie_quant_t * quant, FILE * fp); + +/** + * Free quant + */ +void lm_trie_quant_free(lm_trie_quant_t * quant); + +/** + * Memory required for storing weights of middle-order ngrams. + * Both backoff and probability should be stored + */ +uint8 lm_trie_quant_msize(lm_trie_quant_t * quant); + +/** + * Memory required for storing weights of largest-order ngrams. + * Only probability should be stored + */ +uint8 lm_trie_quant_lsize(lm_trie_quant_t * quant); + +/** + * Checks whether quantizing should be trained + */ +uint8 lm_trie_quant_to_train(lm_trie_quant_t * quant); + +/** + * Trains prob and backoff quantizer for specified ngram order on provided raw ngram list + */ +void lm_trie_quant_train(lm_trie_quant_t * quant, int order, uint32 counts, + ngram_raw_t * raw_ngrams); + +/** + * Trains only prob quantizer for specified ngram order on provided raw ngram list + */ +void lm_trie_quant_train_prob(lm_trie_quant_t * quant, int order, + uint32 counts, ngram_raw_t * raw_ngrams); + +/** + * Writes specified weight for middle-order ngram. Quantize it if needed + */ +void lm_trie_quant_mwrite(lm_trie_quant_t * quant, + bitarr_address_t address, int order_minus_2, + float prob, float backoff); + +/** + * Writes specified weight for largest-order ngram. Quantize it if needed + */ +void lm_trie_quant_lwrite(lm_trie_quant_t * quant, + bitarr_address_t address, float prob); + +/** + * Reads and decodes if needed backoff for middle-order ngram + */ +float lm_trie_quant_mboread(lm_trie_quant_t * quant, + bitarr_address_t address, int order_minus_2); + +/** + * Reads and decodes if needed prob for middle-order ngram + */ +float lm_trie_quant_mpread(lm_trie_quant_t * quant, + bitarr_address_t address, int order_minus_2); + +/** + * Reads and decodes if needed prob for largest-order ngram + */ +float lm_trie_quant_lpread(lm_trie_quant_t * quant, + bitarr_address_t address); + +#endif /* __LM_TRIE_QUANT_H__ */ diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/Makefile.am sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/Makefile.am --- sphinxbase-0.8/src/libsphinxbase/lm/Makefile.am 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/Makefile.am 2015-07-05 00:26:49.000000000 +0000 @@ -4,34 +4,34 @@ BUILT_SOURCES = jsgf_parser.h jsgf_parser.c libsphinxlm_la_SOURCES = \ - lm3g_model.c \ + ngrams_raw.c \ + lm_trie.c \ + lm_trie_quant.c \ ngram_model.c \ - ngram_model_arpa.c \ - ngram_model_dmp.c \ - ngram_model_dmp32.c \ ngram_model_set.c \ + ngram_model_trie.c \ fsg_model.c \ jsgf.c \ jsgf_scanner.c \ jsgf_parser.y -libsphinxlm_la_LIBADD = $(LTLIBICONV) +libsphinxlm_la_LIBADD = $(LIBICONV) noinst_HEADERS = ngram_model_internal.h \ - ngram_model_dmp.h \ ngram_model_set.h \ - ngram_model_arpa.h \ - lm3g_model.h \ + ngram_model_trie.h \ + ngrams_raw.h \ + lm_trie.h \ + lm_trie_quant.h \ jsgf_internal.h \ jsgf_scanner.h \ jsgf_parser.h -INCLUDES = -I$(top_srcdir)/include/sphinxbase \ +AM_CFLAGS =-I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include # Nobody has the version of Flex needed to regenerate the scanner, so # we can't give it a name that would induce Make to try to build it. # Hence the underscore. Sorry folks. -EXTRA_DIST = _jsgf_scanner.l \ - lm3g_templates.c +EXTRA_DIST = _jsgf_scanner.l diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/Makefile.in sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/Makefile.in --- sphinxbase-0.8/src/libsphinxbase/lm/Makefile.in 2012-12-12 17:28:53.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/Makefile.in 2015-07-05 00:28:02.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,6 +16,51 @@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -36,15 +80,15 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/libsphinxbase/lm -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in jsgf_parser.c jsgf_parser.h +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + jsgf_parser.h jsgf_parser.c $(top_srcdir)/depcomp \ + $(top_srcdir)/ylwrap $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -53,38 +97,90 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -am__DEPENDENCIES_1 = -libsphinxlm_la_DEPENDENCIES = $(am__DEPENDENCIES_1) -am_libsphinxlm_la_OBJECTS = lm3g_model.lo ngram_model.lo \ - ngram_model_arpa.lo ngram_model_dmp.lo ngram_model_dmp32.lo \ - ngram_model_set.lo fsg_model.lo jsgf.lo jsgf_scanner.lo \ - jsgf_parser.lo +libsphinxlm_la_DEPENDENCIES = +am_libsphinxlm_la_OBJECTS = ngrams_raw.lo lm_trie.lo lm_trie_quant.lo \ + ngram_model.lo ngram_model_set.lo ngram_model_trie.lo \ + fsg_model.lo jsgf.lo jsgf_scanner.lo jsgf_parser.lo libsphinxlm_la_OBJECTS = $(am_libsphinxlm_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) -LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \ + -e s/c++$$/h++/ -e s/c$$/h/ +YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) +LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) +AM_V_YACC = $(am__v_YACC_@AM_V@) +am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) +am__v_YACC_0 = @echo " YACC " $@; +am__v_YACC_1 = YLWRAP = $(top_srcdir)/ylwrap SOURCES = $(libsphinxlm_la_SOURCES) DIST_SOURCES = $(libsphinxlm_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -98,6 +194,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -107,9 +204,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -117,15 +212,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -141,27 +235,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -194,14 +294,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -214,28 +317,29 @@ AM_YFLAGS = -d BUILT_SOURCES = jsgf_parser.h jsgf_parser.c libsphinxlm_la_SOURCES = \ - lm3g_model.c \ + ngrams_raw.c \ + lm_trie.c \ + lm_trie_quant.c \ ngram_model.c \ - ngram_model_arpa.c \ - ngram_model_dmp.c \ - ngram_model_dmp32.c \ ngram_model_set.c \ + ngram_model_trie.c \ fsg_model.c \ jsgf.c \ jsgf_scanner.c \ jsgf_parser.y -libsphinxlm_la_LIBADD = $(LTLIBICONV) +libsphinxlm_la_LIBADD = $(LIBICONV) noinst_HEADERS = ngram_model_internal.h \ - ngram_model_dmp.h \ ngram_model_set.h \ - ngram_model_arpa.h \ - lm3g_model.h \ + ngram_model_trie.h \ + ngrams_raw.h \ + lm_trie.h \ + lm_trie_quant.h \ jsgf_internal.h \ jsgf_scanner.h \ jsgf_parser.h -INCLUDES = -I$(top_srcdir)/include/sphinxbase \ +AM_CFLAGS = -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include @@ -243,9 +347,7 @@ # Nobody has the version of Flex needed to regenerate the scanner, so # we can't give it a name that would induce Make to try to build it. # Hence the underscore. Sorry folks. -EXTRA_DIST = _jsgf_scanner.l \ - lm3g_templates.c - +EXTRA_DIST = _jsgf_scanner.l all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am @@ -260,9 +362,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/libsphinxbase/lm/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libsphinxbase/lm/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/libsphinxbase/lm/Makefile + $(AUTOMAKE) --foreign src/libsphinxbase/lm/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -284,19 +386,20 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_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 + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } jsgf_parser.h: jsgf_parser.c - @if test ! -f $@; then \ - rm -f jsgf_parser.c; \ - $(MAKE) $(AM_MAKEFLAGS) jsgf_parser.c; \ - else :; fi -libsphinxlm.la: $(libsphinxlm_la_OBJECTS) $(libsphinxlm_la_DEPENDENCIES) - $(LINK) $(libsphinxlm_la_OBJECTS) $(libsphinxlm_la_LIBADD) $(LIBS) + @if test ! -f $@; then rm -f jsgf_parser.c; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) jsgf_parser.c; else :; fi + +libsphinxlm.la: $(libsphinxlm_la_OBJECTS) $(libsphinxlm_la_DEPENDENCIES) $(EXTRA_libsphinxlm_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libsphinxlm_la_OBJECTS) $(libsphinxlm_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -308,36 +411,36 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jsgf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jsgf_parser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jsgf_scanner.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm3g_model.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm_trie.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm_trie_quant.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ngram_model.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ngram_model_arpa.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ngram_model_dmp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ngram_model_dmp32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ngram_model_set.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ngram_model_trie.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ngrams_raw.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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< .y.c: - $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) + $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE) mostlyclean-libtool: -rm -f *.lo @@ -345,26 +448,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -376,15 +468,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -393,6 +481,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -443,10 +546,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -534,18 +642,19 @@ .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_arpa.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_arpa.c --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_arpa.c 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_arpa.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,659 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2007 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * \file ngram_model_arpa.c ARPA format language models - * - * Author: David Huggins-Daines - */ - -#include "sphinxbase/ckd_alloc.h" -#include -#include -#include - -#include "sphinxbase/err.h" -#include "sphinxbase/pio.h" -#include "sphinxbase/listelem_alloc.h" -#include "sphinxbase/strfuncs.h" - -#include "ngram_model_arpa.h" - -static ngram_funcs_t ngram_model_arpa_funcs; - -#define TSEG_BASE(m,b) ((m)->lm3g.tseg_base[(b)>>LOG_BG_SEG_SZ]) -#define FIRST_BG(m,u) ((m)->lm3g.unigrams[u].bigrams) -#define FIRST_TG(m,b) (TSEG_BASE((m),(b))+((m)->lm3g.bigrams[b].trigrams)) - -/* - * Read and return #unigrams, #bigrams, #trigrams as stated in input file. - */ -static int -ReadNgramCounts(lineiter_t **li, int32 * n_ug, int32 * n_bg, int32 * n_tg) -{ - int32 ngram, ngram_cnt; - - /* skip file until past the '\data\' marker */ - while (*li) { - string_trim((*li)->buf, STRING_BOTH); - if (strcmp((*li)->buf, "\\data\\") == 0) - break; - *li = lineiter_next(*li); - } - if (*li == NULL || strcmp((*li)->buf, "\\data\\") != 0) { - E_INFO("No \\data\\ mark in LM file\n"); - return -1; - } - - *n_ug = *n_bg = *n_tg = 0; - while ((*li = lineiter_next(*li))) { - if (sscanf((*li)->buf, "ngram %d=%d", &ngram, &ngram_cnt) != 2) - break; - switch (ngram) { - case 1: - *n_ug = ngram_cnt; - break; - case 2: - *n_bg = ngram_cnt; - break; - case 3: - *n_tg = ngram_cnt; - break; - default: - E_ERROR("Unknown ngram (%d)\n", ngram); - return -1; - } - } - if (*li == NULL) { - E_ERROR("EOF while reading ngram counts\n"); - return -1; - } - - /* Position iterator to the unigrams header '\1-grams:\' */ - while ((*li = lineiter_next(*li))) { - string_trim((*li)->buf, STRING_BOTH); - if (strcmp((*li)->buf, "\\1-grams:") == 0) - break; - } - if (*li == NULL) { - E_ERROR_SYSTEM("Failed to read \\1-grams: mark"); - return -1; - } - - if ((*n_ug <= 0) || (*n_bg < 0) || (*n_tg < 0)) { - E_ERROR("Bad or missing ngram count\n"); - return -1; - } - return 0; -} - -/* - * Read in the unigrams from given file into the LM structure model. - * On entry to this procedure, the iterator is positioned to the - * header line '\1-grams:'. - */ -static int -ReadUnigrams(lineiter_t **li, ngram_model_arpa_t * model) -{ - ngram_model_t *base = &model->base; - int32 wcnt; - float p1; - - E_INFO("Reading unigrams\n"); - - wcnt = 0; - while ((*li = lineiter_next(*li))) { - char *wptr[3], *name; - float32 bo_wt = 0.0f; - int n; - - string_trim((*li)->buf, STRING_BOTH); - if (strcmp((*li)->buf, "\\2-grams:") == 0 - || strcmp((*li)->buf, "\\end\\") == 0) - break; - - if ((n = str2words((*li)->buf, wptr, 3)) < 2) { - if ((*li)->buf[0] != '\0') - E_WARN("Format error; unigram ignored: %s\n", (*li)->buf); - continue; - } - else { - p1 = (float)atof_c(wptr[0]); - name = wptr[1]; - if (n == 3) - bo_wt = (float)atof_c(wptr[2]); - } - - if (wcnt >= base->n_counts[0]) { - E_ERROR("Too many unigrams\n"); - return -1; - } - - /* Associate name with word id */ - base->word_str[wcnt] = ckd_salloc(name); - if ((hash_table_enter(base->wid, base->word_str[wcnt], (void *)(long)wcnt)) - != (void *)(long)wcnt) { - E_WARN("Duplicate word in dictionary: %s\n", base->word_str[wcnt]); - } - model->lm3g.unigrams[wcnt].prob1.l = logmath_log10_to_log(base->lmath, p1); - model->lm3g.unigrams[wcnt].bo_wt1.l = logmath_log10_to_log(base->lmath, bo_wt); - wcnt++; - } - - if (base->n_counts[0] != wcnt) { - E_WARN("lm_t.ucount(%d) != #unigrams read(%d)\n", - base->n_counts[0], wcnt); - base->n_counts[0] = wcnt; - base->n_words = wcnt; - } - return 0; -} - -/* - * Read bigrams from given file into given model structure. - */ -static int -ReadBigrams(lineiter_t **li, ngram_model_arpa_t * model) -{ - ngram_model_t *base = &model->base; - int32 w1, w2, prev_w1, bgcount; - bigram_t *bgptr; - - E_INFO("Reading bigrams\n"); - - bgcount = 0; - bgptr = model->lm3g.bigrams; - prev_w1 = -1; - - while ((*li = lineiter_next(*li))) { - float32 p, bo_wt = 0.0f; - int32 p2, bo_wt2; - char *wptr[4], *word1, *word2; - int n; - - string_trim((*li)->buf, STRING_BOTH); - wptr[3] = NULL; - if ((n = str2words((*li)->buf, wptr, 4)) < 3) { - if ((*li)->buf[0] != '\0') - break; - continue; - } - else { - p = (float32)atof_c(wptr[0]); - word1 = wptr[1]; - word2 = wptr[2]; - if (wptr[3]) - bo_wt = (float32)atof_c(wptr[3]); - } - - if ((w1 = ngram_wid(base, word1)) == NGRAM_INVALID_WID) { - E_ERROR("Unknown word: %s, skipping bigram (%s %s)\n", - word1, word1, word2); - continue; - } - if ((w2 = ngram_wid(base, word2)) == NGRAM_INVALID_WID) { - E_ERROR("Unknown word: %s, skipping bigram (%s %s)\n", - word2, word1, word2); - continue; - } - - /* FIXME: Should use logmath_t quantization here. */ - /* HACK!! to quantize probs to 4 decimal digits */ - p = (float32)((int32)(p * 10000)) / 10000; - bo_wt = (float32)((int32)(bo_wt * 10000)) / 10000; - - p2 = logmath_log10_to_log(base->lmath, p); - bo_wt2 = logmath_log10_to_log(base->lmath, bo_wt); - - if (bgcount >= base->n_counts[1]) { - E_ERROR("Too many bigrams\n"); - return -1; - } - - bgptr->wid = w2; - bgptr->prob2 = sorted_id(&model->sorted_prob2, &p2); - if (base->n_counts[2] > 0) - bgptr->bo_wt2 = sorted_id(&model->sorted_bo_wt2, &bo_wt2); - - if (w1 != prev_w1) { - if (w1 < prev_w1) { - E_ERROR("Bigrams not in unigram order\n"); - return -1; - } - - for (prev_w1++; prev_w1 <= w1; prev_w1++) - model->lm3g.unigrams[prev_w1].bigrams = bgcount; - prev_w1 = w1; - } - bgcount++; - bgptr++; - - if ((bgcount & 0x0000ffff) == 0) { - E_INFOCONT("."); - } - } - if (*li == NULL || ((strcmp((*li)->buf, "\\end\\") != 0) - && (strcmp((*li)->buf, "\\3-grams:") != 0))) { - E_ERROR("Bad bigram: %s\n", (*li)->buf); - return -1; - } - - for (prev_w1++; prev_w1 <= base->n_counts[0]; prev_w1++) - model->lm3g.unigrams[prev_w1].bigrams = bgcount; - - return 0; -} - -/* - * Very similar to ReadBigrams. - */ -static int -ReadTrigrams(lineiter_t **li, ngram_model_arpa_t * model) -{ - ngram_model_t *base = &model->base; - int32 i, w1, w2, w3, prev_w1, prev_w2, tgcount, prev_bg, bg, endbg; - int32 seg, prev_seg, prev_seg_lastbg; - trigram_t *tgptr; - bigram_t *bgptr; - - E_INFO("Reading trigrams\n"); - - tgcount = 0; - tgptr = model->lm3g.trigrams; - prev_w1 = -1; - prev_w2 = -1; - prev_bg = -1; - prev_seg = -1; - - while ((*li = lineiter_next(*li))) { - float32 p; - int32 p3; - char *wptr[4], *word1, *word2, *word3; - - string_trim((*li)->buf, STRING_BOTH); - if (str2words((*li)->buf, wptr, 4) != 4) { - if ((*li)->buf[0] != '\0') - break; - continue; - } - else { - p = (float32)atof_c(wptr[0]); - word1 = wptr[1]; - word2 = wptr[2]; - word3 = wptr[3]; - } - - if ((w1 = ngram_wid(base, word1)) == NGRAM_INVALID_WID) { - E_ERROR("Unknown word: %s, skipping trigram (%s %s %s)\n", - word1, word1, word2, word3); - continue; - } - if ((w2 = ngram_wid(base, word2)) == NGRAM_INVALID_WID) { - E_ERROR("Unknown word: %s, skipping trigram (%s %s %s)\n", - word2, word1, word2, word3); - continue; - } - if ((w3 = ngram_wid(base, word3)) == NGRAM_INVALID_WID) { - E_ERROR("Unknown word: %s, skipping trigram (%s %s %s)\n", - word3, word1, word2, word3); - continue; - } - - /* FIXME: Should use logmath_t quantization here. */ - /* HACK!! to quantize probs to 4 decimal digits */ - p = (float32)((int32)(p * 10000)) / 10000; - p3 = logmath_log10_to_log(base->lmath, p); - - if (tgcount >= base->n_counts[2]) { - E_ERROR("Too many trigrams\n"); - return -1; - } - - tgptr->wid = w3; - tgptr->prob3 = sorted_id(&model->sorted_prob3, &p3); - - if ((w1 != prev_w1) || (w2 != prev_w2)) { - /* Trigram for a new bigram; update tg info for all previous bigrams */ - if ((w1 < prev_w1) || ((w1 == prev_w1) && (w2 < prev_w2))) { - E_ERROR("Trigrams not in bigram order\n"); - return -1; - } - - bg = (w1 != - prev_w1) ? model->lm3g.unigrams[w1].bigrams : prev_bg + 1; - endbg = model->lm3g.unigrams[w1 + 1].bigrams; - bgptr = model->lm3g.bigrams + bg; - for (; (bg < endbg) && (bgptr->wid != w2); bg++, bgptr++); - if (bg >= endbg) { - E_ERROR("Missing bigram for trigram: %s", (*li)->buf); - return -1; - } - - /* bg = bigram entry index for . Update tseg_base */ - seg = bg >> LOG_BG_SEG_SZ; - for (i = prev_seg + 1; i <= seg; i++) - model->lm3g.tseg_base[i] = tgcount; - - /* Update trigrams pointers for all bigrams until bg */ - if (prev_seg < seg) { - int32 tgoff = 0; - - if (prev_seg >= 0) { - tgoff = tgcount - model->lm3g.tseg_base[prev_seg]; - if (tgoff > 65535) { - E_ERROR("Size of trigram segment is bigger than 65535, such a big language models are not supported, use smaller vocabulary\n"); - return -1; - } - } - - prev_seg_lastbg = ((prev_seg + 1) << LOG_BG_SEG_SZ) - 1; - bgptr = model->lm3g.bigrams + prev_bg; - for (++prev_bg, ++bgptr; prev_bg <= prev_seg_lastbg; - prev_bg++, bgptr++) - bgptr->trigrams = tgoff; - - for (; prev_bg <= bg; prev_bg++, bgptr++) - bgptr->trigrams = 0; - } - else { - int32 tgoff; - - tgoff = tgcount - model->lm3g.tseg_base[prev_seg]; - if (tgoff > 65535) { - E_ERROR("Size of trigram segment is bigger than 65535, such a big language models are not supported, use smaller vocabulary\n"); - return -1; - } - - bgptr = model->lm3g.bigrams + prev_bg; - for (++prev_bg, ++bgptr; prev_bg <= bg; prev_bg++, bgptr++) - bgptr->trigrams = tgoff; - } - - prev_w1 = w1; - prev_w2 = w2; - prev_bg = bg; - prev_seg = seg; - } - - tgcount++; - tgptr++; - - if ((tgcount & 0x0000ffff) == 0) { - E_INFOCONT("."); - } - } - if (*li == NULL || strcmp((*li)->buf, "\\end\\") != 0) { - E_ERROR("Bad trigram: %s\n", (*li)->buf); - return -1; - } - - for (prev_bg++; prev_bg <= base->n_counts[1]; prev_bg++) { - if ((prev_bg & (BG_SEG_SZ - 1)) == 0) - model->lm3g.tseg_base[prev_bg >> LOG_BG_SEG_SZ] = tgcount; - if ((tgcount - model->lm3g.tseg_base[prev_bg >> LOG_BG_SEG_SZ]) > 65535) { - E_ERROR("Size of trigram segment is bigger than 65535, such a big language models are not supported, use smaller vocabulary\n"); - return -1; - } - model->lm3g.bigrams[prev_bg].trigrams = - tgcount - model->lm3g.tseg_base[prev_bg >> LOG_BG_SEG_SZ]; - } - return 0; -} - -static unigram_t * -new_unigram_table(int32 n_ug) -{ - unigram_t *table; - int32 i; - - table = ckd_calloc(n_ug, sizeof(unigram_t)); - for (i = 0; i < n_ug; i++) { - table[i].prob1.l = INT_MIN; - table[i].bo_wt1.l = INT_MIN; - } - return table; -} - -ngram_model_t * -ngram_model_arpa_read(cmd_ln_t *config, - const char *file_name, - logmath_t *lmath) -{ - lineiter_t *li; - FILE *fp; - int32 is_pipe; - int32 n_unigram; - int32 n_bigram; - int32 n_trigram; - int32 n; - ngram_model_arpa_t *model; - ngram_model_t *base; - - if ((fp = fopen_comp(file_name, "r", &is_pipe)) == NULL) { - E_ERROR("File %s not found\n", file_name); - return NULL; - } - li = lineiter_start(fp); - - /* Read #unigrams, #bigrams, #trigrams from file */ - if (ReadNgramCounts(&li, &n_unigram, &n_bigram, &n_trigram) == -1) { - lineiter_free(li); - fclose_comp(fp, is_pipe); - return NULL; - } - E_INFO("ngrams 1=%d, 2=%d, 3=%d\n", n_unigram, n_bigram, n_trigram); - - /* Allocate space for LM, including initial OOVs and placeholders; initialize it */ - model = ckd_calloc(1, sizeof(*model)); - base = &model->base; - if (n_trigram > 0) - n = 3; - else if (n_bigram > 0) - n = 2; - else - n = 1; - /* Initialize base model. */ - ngram_model_init(base, &ngram_model_arpa_funcs, lmath, n, n_unigram); - base->n_counts[0] = n_unigram; - base->n_counts[1] = n_bigram; - base->n_counts[2] = n_trigram; - base->writable = TRUE; - - /* - * Allocate one extra unigram and bigram entry: sentinels to terminate - * followers (bigrams and trigrams, respectively) of previous entry. - */ - model->lm3g.unigrams = new_unigram_table(n_unigram + 1); - model->lm3g.bigrams = - ckd_calloc(n_bigram + 1, sizeof(bigram_t)); - if (n_trigram > 0) - model->lm3g.trigrams = - ckd_calloc(n_trigram, sizeof(trigram_t)); - - if (n_trigram > 0) { - model->lm3g.tseg_base = - ckd_calloc((n_bigram + 1) / BG_SEG_SZ + 1, - sizeof(int32)); - } - if (ReadUnigrams(&li, model) == -1) { - fclose_comp(fp, is_pipe); - ngram_model_free(base); - return NULL; - } - E_INFO("%8d = #unigrams created\n", base->n_counts[0]); - - init_sorted_list(&model->sorted_prob2); - if (base->n_counts[2] > 0) - init_sorted_list(&model->sorted_bo_wt2); - - if (base->n_counts[1] > 0) { - if (ReadBigrams(&li, model) == -1) { - fclose_comp(fp, is_pipe); - ngram_model_free(base); - return NULL; - } - - base->n_counts[1] = FIRST_BG(model, base->n_counts[0]); - model->lm3g.n_prob2 = model->sorted_prob2.free; - model->lm3g.prob2 = vals_in_sorted_list(&model->sorted_prob2); - free_sorted_list(&model->sorted_prob2); - E_INFO("%8d = #bigrams created\n", base->n_counts[1]); - E_INFO("%8d = #prob2 entries\n", model->lm3g.n_prob2); - } - - if (base->n_counts[2] > 0) { - /* Create trigram bo-wts array */ - model->lm3g.n_bo_wt2 = model->sorted_bo_wt2.free; - model->lm3g.bo_wt2 = vals_in_sorted_list(&model->sorted_bo_wt2); - free_sorted_list(&model->sorted_bo_wt2); - E_INFO("%8d = #bo_wt2 entries\n", model->lm3g.n_bo_wt2); - - init_sorted_list(&model->sorted_prob3); - - if (ReadTrigrams(&li, model) == -1) { - fclose_comp(fp, is_pipe); - ngram_model_free(base); - return NULL; - } - - base->n_counts[2] = FIRST_TG(model, base->n_counts[1]); - model->lm3g.n_prob3 = model->sorted_prob3.free; - model->lm3g.prob3 = vals_in_sorted_list(&model->sorted_prob3); - E_INFO("%8d = #trigrams created\n", base->n_counts[2]); - E_INFO("%8d = #prob3 entries\n", model->lm3g.n_prob3); - - free_sorted_list(&model->sorted_prob3); - - /* Initialize tginfo */ - model->lm3g.tginfo = ckd_calloc(n_unigram, sizeof(tginfo_t *)); - model->lm3g.le = listelem_alloc_init(sizeof(tginfo_t)); - } - - lineiter_free(li); - fclose_comp(fp, is_pipe); - return base; -} - -int -ngram_model_arpa_write(ngram_model_t *model, - const char *file_name) -{ - ngram_iter_t *itor; - FILE *fh; - int i; - - if ((fh = fopen(file_name, "w")) == NULL) { - E_ERROR_SYSTEM("Failed to open %s for writing", file_name); - return -1; - } - fprintf(fh, "This is an ARPA-format language model file, generated by CMU Sphinx\n"); - - /* The ARPA format doesn't require any extra information that - * N-Gram iterators can't give us, so this is very - * straightforward compared with DMP writing. */ - - /* Write N-gram counts. */ - fprintf(fh, "\\data\\\n"); - for (i = 0; i < model->n; ++i) { - fprintf(fh, "ngram %d=%d\n", i+1, model->n_counts[i]); - } - - /* Write N-grams */ - for (i = 0; i < model->n; ++i) { - fprintf(fh, "\n\\%d-grams:\n", i + 1); - for (itor = ngram_model_mgrams(model, i); itor; itor = ngram_iter_next(itor)) { - int32 const *wids; - int32 score, bowt; - int j; - - wids = ngram_iter_get(itor, &score, &bowt); - fprintf(fh, "%.4f ", logmath_log_to_log10(model->lmath, score)); - for (j = 0; j <= i; ++j) { - assert(wids[j] < model->n_counts[0]); - fprintf(fh, "%s ", model->word_str[wids[j]]); - } - if (i < model->n-1) - fprintf(fh, "%.4f", logmath_log_to_log10(model->lmath, bowt)); - fprintf(fh, "\n"); - } - } - fprintf(fh, "\n\\end\\\n"); - return fclose(fh); -} - -static int -ngram_model_arpa_apply_weights(ngram_model_t *base, float32 lw, - float32 wip, float32 uw) -{ - ngram_model_arpa_t *model = (ngram_model_arpa_t *)base; - lm3g_apply_weights(base, &model->lm3g, lw, wip, uw); - return 0; -} - -/* Lousy "templating" for things that are largely the same in DMP and - * ARPA models, except for the bigram and trigram types and some - * names. */ -#define NGRAM_MODEL_TYPE ngram_model_arpa_t -#include "lm3g_templates.c" - -static void -ngram_model_arpa_free(ngram_model_t *base) -{ - ngram_model_arpa_t *model = (ngram_model_arpa_t *)base; - ckd_free(model->lm3g.unigrams); - ckd_free(model->lm3g.bigrams); - ckd_free(model->lm3g.trigrams); - ckd_free(model->lm3g.prob2); - ckd_free(model->lm3g.bo_wt2); - ckd_free(model->lm3g.prob3); - lm3g_tginfo_free(base, &model->lm3g); - ckd_free(model->lm3g.tseg_base); -} - -static ngram_funcs_t ngram_model_arpa_funcs = { - ngram_model_arpa_free, /* free */ - ngram_model_arpa_apply_weights, /* apply_weights */ - lm3g_template_score, /* score */ - lm3g_template_raw_score, /* raw_score */ - lm3g_template_add_ug, /* add_ug */ - lm3g_template_flush, /* flush */ - lm3g_template_iter, /* iter */ - lm3g_template_mgrams, /* mgrams */ - lm3g_template_successors, /* successors */ - lm3g_template_iter_get, /* iter_get */ - lm3g_template_iter_next, /* iter_next */ - lm3g_template_iter_free /* iter_free */ -}; diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_arpa.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_arpa.h --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_arpa.h 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_arpa.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2007 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * \file ngram_model_arpa.h ARPABO text format for N-Gram models - * - * Author: David Huggins-Daines - */ - -#ifndef __NGRAM_MODEL_ARPA_H__ -#define __NGRAM_MODEL_ARPA_H__ - -#include "ngram_model_internal.h" -#include "lm3g_model.h" - -/** - * Bigram structure. - */ -struct bigram_s { - uint32 wid; /**< Index of unigram entry for this. (NOT dictionary id.) */ - uint16 prob2; /**< Index into array of actual bigram probs */ - uint16 bo_wt2; /**< Index into array of actual bigram backoff wts */ - uint16 trigrams; /**< Index of 1st entry in lm_t.trigrams[], - RELATIVE TO its segment base (see above) */ -}; - -/** - * Trigram structure. - * - * As with bigrams, trigram prob info kept in a separate table for conserving - * memory space. - */ -struct trigram_s { - uint32 wid; /**< Index of unigram entry for this. (NOT dictionary id.) */ - uint16 prob3; /**< Index into array of actual trigram probs */ -}; - - -/** - * Subclass of ngram_model for ARPA file reading. - */ -typedef struct ngram_model_arpa_s { - ngram_model_t base; /**< Base ngram_model_t structure */ - lm3g_model_t lm3g; /**< Shared lm3g structure */ - - /* Arrays of unique bigram probs and bo-wts, and trigram probs - * (these are temporary, actually) */ - sorted_list_t sorted_prob2; - sorted_list_t sorted_bo_wt2; - sorted_list_t sorted_prob3; -} ngram_model_arpa_t; - -#endif /* __NGRAM_MODEL_ARPA_H__ */ diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model.c --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model.c 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model.c 2015-08-05 11:17:26.000000000 +0000 @@ -40,15 +40,13 @@ * Author: David Huggins-Daines, much code taken from sphinx3/src/libs3decoder/liblm */ +#ifdef HAVE_CONFIG_H #include +#endif #include #include -#ifdef HAVE_ICONV -#include -#endif - #include "sphinxbase/ngram_model.h" #include "sphinxbase/ckd_alloc.h" #include "sphinxbase/filename.h" @@ -59,6 +57,7 @@ #include "sphinxbase/case.h" #include "ngram_model_internal.h" +#include "ngram_model_trie.h" ngram_file_type_t ngram_file_name_to_type(const char *file_name) @@ -71,35 +70,39 @@ } if (0 == strcmp_nocase(ext, ".gz")) { while (--ext >= file_name) { - if (*ext == '.') break; + if (*ext == '.') + break; } if (ext < file_name) { return NGRAM_INVALID; - } - } - else if (0 == strcmp_nocase(ext, ".bz2")) { - while (--ext >= file_name) { - if (*ext == '.') break; - } - if (ext < file_name) { - return NGRAM_INVALID; - } - } - /* We use strncmp because there might be a .gz on the end. */ - if (0 == strncmp_nocase(ext, ".ARPA", 5)) - return NGRAM_ARPA; - if (0 == strncmp_nocase(ext, ".DMP", 4)) - return NGRAM_DMP; - return NGRAM_INVALID; - } + } + } + else if (0 == strcmp_nocase(ext, ".bz2")) { + while (--ext >= file_name) { + if (*ext == '.') + break; + } + if (ext < file_name) { + return NGRAM_INVALID; + } + } + /* We use strncmp because there might be a .gz on the end. */ + if (0 == strncmp_nocase(ext, ".ARPA", 5)) + return NGRAM_ARPA; + if (0 == strncmp_nocase(ext, ".DMP", 4) + || 0 == strncmp_nocase(ext, ".BIN", 4)) + return NGRAM_BIN; + return NGRAM_INVALID; +} ngram_file_type_t ngram_str_to_type(const char *str_name) { if (0 == strcmp_nocase(str_name, "arpa")) return NGRAM_ARPA; - if (0 == strcmp_nocase(str_name, "dmp")) - return NGRAM_DMP; + if (0 == strcmp_nocase(str_name, "dmp") + || 0 == strcmp_nocase(str_name, "bin")) + return NGRAM_BIN; return NGRAM_INVALID; } @@ -109,104 +112,108 @@ switch (type) { case NGRAM_ARPA: return "arpa"; - case NGRAM_DMP: - return "dmp"; + case NGRAM_BIN: + return "dmp/bin"; + default: + return NULL; + } +} + + +ngram_model_t * +ngram_model_read(cmd_ln_t * config, + const char *file_name, + ngram_file_type_t file_type, logmath_t * lmath) +{ + ngram_model_t *model = NULL; + switch (file_type) { + case NGRAM_AUTO:{ + if ((model = + ngram_model_trie_read_bin(config, file_name, + lmath)) != NULL) + break; + if ((model = + ngram_model_trie_read_arpa(config, file_name, + lmath)) != NULL) + break; + if ((model = + ngram_model_trie_read_dmp(config, file_name, + lmath)) != NULL) + break; + return NULL; + } + case NGRAM_ARPA: + model = ngram_model_trie_read_arpa(config, file_name, lmath); + break; + case NGRAM_BIN: + if ((model = + ngram_model_trie_read_bin(config, file_name, lmath)) != NULL) + break; + if ((model = + ngram_model_trie_read_dmp(config, file_name, lmath)) != NULL) + break; + return NULL; default: + E_ERROR("language model file type not supported\n"); return NULL; } + + /* Now set weights based on config if present. */ + if (config) { + float32 lw = 1.0; + float32 wip = 1.0; + + if (cmd_ln_exists_r(config, "-lw")) + lw = cmd_ln_float32_r(config, "-lw"); + if (cmd_ln_exists_r(config, "-wip")) + wip = cmd_ln_float32_r(config, "-wip"); + + ngram_model_apply_weights(model, lw, wip); + } + + return model; } +int +ngram_model_write(ngram_model_t * model, const char *file_name, + ngram_file_type_t file_type) +{ + switch (file_type) { + case NGRAM_AUTO:{ + file_type = ngram_file_name_to_type(file_name); + /* Default to ARPA (catches .lm and other things) */ + if (file_type == NGRAM_INVALID) + file_type = NGRAM_ARPA; + return ngram_model_write(model, file_name, file_type); + } + case NGRAM_ARPA: + return ngram_model_trie_write_arpa(model, file_name); + case NGRAM_BIN: + return ngram_model_trie_write_bin(model, file_name); + default: + E_ERROR("language model file type not supported\n"); + return -1; + } + E_ERROR("language model file type not supported\n"); + return -1; +} - ngram_model_t * - ngram_model_read(cmd_ln_t *config, - const char *file_name, - ngram_file_type_t file_type, - logmath_t *lmath) - { - ngram_model_t *model = NULL; - - switch (file_type) { - case NGRAM_AUTO: { - if ((model = ngram_model_arpa_read(config, file_name, lmath)) != NULL) - break; - if ((model = ngram_model_dmp_read(config, file_name, lmath)) != NULL) - break; - return NULL; - } - case NGRAM_ARPA: - model = ngram_model_arpa_read(config, file_name, lmath); - break; - case NGRAM_DMP: - model = ngram_model_dmp_read(config, file_name, lmath); - break; - default: - E_ERROR("language model file type not supported\n"); - return NULL; - } - - /* Now set weights based on config if present. */ - if (config) { - float32 lw = 1.0; - float32 wip = 1.0; - float32 uw = 1.0; - - if (cmd_ln_exists_r(config, "-lw")) - lw = cmd_ln_float32_r(config, "-lw"); - if (cmd_ln_exists_r(config, "-wip")) - wip = cmd_ln_float32_r(config, "-wip"); - if (cmd_ln_exists_r(config, "-uw")) - uw = cmd_ln_float32_r(config, "-uw"); - - ngram_model_apply_weights(model, lw, wip, uw); - } - - return model; - } - - int - ngram_model_write(ngram_model_t *model, const char *file_name, - ngram_file_type_t file_type) - { - switch (file_type) { - case NGRAM_AUTO: { - file_type = ngram_file_name_to_type(file_name); - /* Default to ARPA (catches .lm and other things) */ - if (file_type == NGRAM_INVALID) - file_type = NGRAM_ARPA; - return ngram_model_write(model, file_name, file_type); - } - case NGRAM_ARPA: - return ngram_model_arpa_write(model, file_name); - case NGRAM_DMP: - return ngram_model_dmp_write(model, file_name); - default: - E_ERROR("language model file type not supported\n"); - return -1; - } - E_ERROR("language model file type not supported\n"); - return -1; - } - - int32 - ngram_model_init(ngram_model_t *base, - ngram_funcs_t *funcs, - logmath_t *lmath, - int32 n, int32 n_unigram) - { - base->refcount = 1; - base->funcs = funcs; - base->n = n; - /* If this was previously initialized... */ +int32 +ngram_model_init(ngram_model_t * base, + ngram_funcs_t * funcs, + logmath_t * lmath, int32 n, int32 n_unigram) +{ + base->refcount = 1; + base->funcs = funcs; + base->n = n; + /* If this was previously initialized... */ if (base->n_counts == NULL) - base->n_counts = ckd_calloc(3, sizeof(*base->n_counts)); + base->n_counts = (uint32 *) ckd_calloc(n, sizeof(*base->n_counts)); /* Don't reset weights if logmath object hasn't changed. */ if (base->lmath != lmath) { /* Set default values for weights. */ base->lw = 1.0; - base->log_wip = 0; /* i.e. 1.0 */ - base->log_uw = 0; /* i.e. 1.0 */ - base->log_uniform = logmath_log(lmath, 1.0 / n_unigram); - base->log_uniform_weight = logmath_get_zero(lmath); + base->log_wip = 0; /* i.e. 1.0 */ base->log_zero = logmath_get_zero(lmath); base->lmath = lmath; } @@ -220,10 +227,13 @@ base->word_str[i] = NULL; } } - base->word_str = ckd_realloc(base->word_str, n_unigram * sizeof(char *)); + base->word_str = + (char **) ckd_realloc(base->word_str, + n_unigram * sizeof(char *)); + } + else { + base->word_str = (char **) ckd_calloc(n_unigram, sizeof(char *)); } - else - base->word_str = ckd_calloc(n_unigram, sizeof(char *)); /* NOTE: They are no longer case-insensitive since we are allowing * other encodings for word strings. Beware. */ if (base->wid) @@ -236,22 +246,21 @@ } ngram_model_t * -ngram_model_retain(ngram_model_t *model) +ngram_model_retain(ngram_model_t * model) { ++model->refcount; return model; } - void -ngram_model_flush(ngram_model_t *model) +ngram_model_flush(ngram_model_t * model) { if (model->funcs && model->funcs->flush) - (*model->funcs->flush)(model); + (*model->funcs->flush) (model); } int -ngram_model_free(ngram_model_t *model) +ngram_model_free(ngram_model_t * model) { int i; @@ -260,7 +269,7 @@ if (--model->refcount > 0) return model->refcount; if (model->funcs && model->funcs->free) - (*model->funcs->free)(model); + (*model->funcs->free) (model); if (model->writable) { /* Free all words. */ for (i = 0; i < model->n_words; ++i) { @@ -296,7 +305,7 @@ } int -ngram_model_casefold(ngram_model_t *model, int kase) +ngram_model_casefold(ngram_model_t * model, int kase) { int writable, i; hash_table_t *new_wid; @@ -347,152 +356,24 @@ return 0; } -#ifdef HAVE_ICONV -int -ngram_model_recode(ngram_model_t *model, const char *from, const char *to) -{ - iconv_t ic; - char *outbuf; - size_t maxlen; - int i, writable; - hash_table_t *new_wid; - - /* FIXME: Need to do a special case thing for the GB-HEX encoding - * used in Sphinx3 Mandarin models. */ - if ((ic = iconv_open(to, from)) == (iconv_t)-1) { - E_ERROR_SYSTEM("iconv_open() failed"); - return -1; - } - /* iconv(3) is a piece of crap and won't accept a NULL out buffer, - * unlike wcstombs(3). So we have to either call it over and over - * again until our buffer is big enough, or call it with a huge - * buffer and then copy things back to the output. We will use a - * mix of these two approaches here. We'll keep a single big - * buffer around, and expand it as necessary. - */ - maxlen = 0; - for (i = 0; i < model->n_words; ++i) { - if (strlen(model->word_str[i]) > maxlen) - maxlen = strlen(model->word_str[i]); - } - /* Were word strings already allocated? */ - writable = model->writable; - /* Either way, we are going to allocate some word strings. */ - model->writable = TRUE; - /* Really should be big enough except for pathological cases. */ - maxlen = maxlen * sizeof(int) + 15; - outbuf = ckd_calloc(maxlen, 1); - /* And, don't forget, we need to rebuild the word to unigram ID - * mapping. */ - new_wid = hash_table_new(model->n_words, FALSE); - for (i = 0; i < model->n_words; ++i) { - ICONV_CONST char *in; - char *out; - size_t inleft, outleft, result; - - start_conversion: - in = (ICONV_CONST char *)model->word_str[i]; - /* Yes, this assumes that we don't have any NUL bytes. */ - inleft = strlen(in); - out = outbuf; - outleft = maxlen; - - while ((result = iconv(ic, &in, &inleft, &out, &outleft)) == (size_t)-1) { - if (errno != E2BIG) { - /* FIXME: if we already converted any words, then they - * are going to be in an inconsistent state. */ - E_ERROR_SYSTEM("iconv() failed"); - ckd_free(outbuf); - hash_table_free(new_wid); - return -1; - } - /* Reset the internal state of conversion. */ - iconv(ic, NULL, NULL, NULL, NULL); - /* Make everything bigger. */ - maxlen *= 2; - out = outbuf = ckd_realloc(outbuf, maxlen); - /* Reset the input pointers. */ - in = (ICONV_CONST char *)model->word_str[i]; - inleft = strlen(in); - } - - /* Now flush a shift-out sequence, if any. */ - if ((result = iconv(ic, NULL, NULL, &out, &outleft)) == (size_t)-1) { - if (errno != E2BIG) { - /* FIXME: if we already converted any words, then they - * are going to be in an inconsistent state. */ - E_ERROR_SYSTEM("iconv() failed (state reset sequence)"); - ckd_free(outbuf); - hash_table_free(new_wid); - return -1; - } - /* Reset the internal state of conversion. */ - iconv(ic, NULL, NULL, NULL, NULL); - /* Make everything bigger. */ - maxlen *= 2; - outbuf = ckd_realloc(outbuf, maxlen); - /* Be very evil. */ - goto start_conversion; - } - - result = maxlen - outleft; - /* Okay, that was hard, now let's go shopping. */ - if (writable) { - /* Grow or shrink the output string as necessary. */ - model->word_str[i] = ckd_realloc(model->word_str[i], result + 1); - model->word_str[i][result] = '\0'; - } - else { - /* It actually was not allocated previously, so do that now. */ - model->word_str[i] = ckd_calloc(result + 1, 1); - } - /* Copy the new thing in. */ - memcpy(model->word_str[i], outbuf, result); - - /* Now update the hash table. We might have terrible - * collisions if a non-reversible conversion was requested., - * so warn about them. */ - if (hash_table_enter_int32(new_wid, model->word_str[i], i) != i) { - E_WARN("Duplicate word in dictionary after conversion: %s\n", - model->word_str[i]); - } - } - ckd_free(outbuf); - iconv_close(ic); - /* Swap out the hash table. */ - hash_table_free(model->wid); - model->wid = new_wid; - - return 0; -} -#else /* !HAVE_ICONV */ -int -ngram_model_recode(ngram_model_t *model, const char *from, const char *to) -{ - return -1; -} -#endif /* !HAVE_ICONV */ - int -ngram_model_apply_weights(ngram_model_t *model, - float32 lw, float32 wip, float32 uw) +ngram_model_apply_weights(ngram_model_t * model, float32 lw, float32 wip) { - return (*model->funcs->apply_weights)(model, lw, wip, uw); + return (*model->funcs->apply_weights) (model, lw, wip); } float32 -ngram_model_get_weights(ngram_model_t *model, int32 *out_log_wip, - int32 *out_log_uw) +ngram_model_get_weights(ngram_model_t * model, int32 * out_log_wip) { - if (out_log_wip) *out_log_wip = model->log_wip; - if (out_log_uw) *out_log_uw = model->log_uw; + if (out_log_wip) + *out_log_wip = model->log_wip; return model->lw; } int32 -ngram_ng_score(ngram_model_t *model, int32 wid, int32 *history, - int32 n_hist, int32 *n_used) +ngram_ng_score(ngram_model_t * model, int32 wid, int32 * history, + int32 n_hist, int32 * n_used) { int32 score, class_weight = 0; int i; @@ -506,22 +387,24 @@ ngram_class_t *lmclass = model->classes[NGRAM_CLASSID(wid)]; class_weight = ngram_class_prob(lmclass, wid); - if (class_weight == 1) /* Meaning, not found in class. */ + if (class_weight == 1) /* Meaning, not found in class. */ return model->log_zero; wid = lmclass->tag_wid; } for (i = 0; i < n_hist; ++i) { - if (history[i] != NGRAM_INVALID_WID && NGRAM_IS_CLASSWID(history[i])) - history[i] = model->classes[NGRAM_CLASSID(history[i])]->tag_wid; + if (history[i] != NGRAM_INVALID_WID + && NGRAM_IS_CLASSWID(history[i])) + history[i] = + model->classes[NGRAM_CLASSID(history[i])]->tag_wid; } - score = (*model->funcs->score)(model, wid, history, n_hist, n_used); + score = (*model->funcs->score) (model, wid, history, n_hist, n_used); /* Multiply by unigram in-class weight. */ return score + class_weight; } int32 -ngram_score(ngram_model_t *model, const char *word, ...) +ngram_score(ngram_model_t * model, const char *word, ...) { va_list history; const char *hword; @@ -552,7 +435,8 @@ } int32 -ngram_tg_score(ngram_model_t *model, int32 w3, int32 w2, int32 w1, int32 *n_used) +ngram_tg_score(ngram_model_t * model, int32 w3, int32 w2, int32 w1, + int32 * n_used) { int32 hist[2]; hist[0] = w2; @@ -561,14 +445,14 @@ } int32 -ngram_bg_score(ngram_model_t *model, int32 w2, int32 w1, int32 *n_used) +ngram_bg_score(ngram_model_t * model, int32 w2, int32 w1, int32 * n_used) { return ngram_ng_score(model, w2, &w1, 1, n_used); } int32 -ngram_ng_prob(ngram_model_t *model, int32 wid, int32 *history, - int32 n_hist, int32 *n_used) +ngram_ng_prob(ngram_model_t * model, int32 wid, int32 * history, + int32 n_hist, int32 * n_used) { int32 prob, class_weight = 0; int i; @@ -582,22 +466,24 @@ ngram_class_t *lmclass = model->classes[NGRAM_CLASSID(wid)]; class_weight = ngram_class_prob(lmclass, wid); - if (class_weight == 1) /* Meaning, not found in class. */ + if (class_weight == 1) /* Meaning, not found in class. */ return class_weight; wid = lmclass->tag_wid; } for (i = 0; i < n_hist; ++i) { - if (history[i] != NGRAM_INVALID_WID && NGRAM_IS_CLASSWID(history[i])) - history[i] = model->classes[NGRAM_CLASSID(history[i])]->tag_wid; + if (history[i] != NGRAM_INVALID_WID + && NGRAM_IS_CLASSWID(history[i])) + history[i] = + model->classes[NGRAM_CLASSID(history[i])]->tag_wid; } - prob = (*model->funcs->raw_score)(model, wid, history, - n_hist, n_used); + prob = (*model->funcs->raw_score) (model, wid, history, + n_hist, n_used); /* Multiply by unigram in-class weight. */ return prob + class_weight; } int32 -ngram_prob(ngram_model_t *model, const char *word, ...) +ngram_probv(ngram_model_t * model, const char *word, ...) { va_list history; const char *hword; @@ -628,20 +514,40 @@ } int32 -ngram_score_to_prob(ngram_model_t *base, int32 score) +ngram_prob(ngram_model_t * model, const char *const *words, int32 n) +{ + int32 *ctx_id; + int32 nused; + int32 prob; + int32 wid; + uint32 i; + + ctx_id = (int32 *) ckd_calloc(n - 1, sizeof(*ctx_id)); + for (i = 1; i < (uint32) n; ++i) + ctx_id[i - 1] = ngram_wid(model, words[i]); + + wid = ngram_wid(model, *words); + prob = ngram_ng_prob(model, wid, ctx_id, n - 1, &nused); + ckd_free(ctx_id); + + return prob; +} + +int32 +ngram_score_to_prob(ngram_model_t * base, int32 score) { int32 prob; /* Undo insertion penalty. */ prob = score - base->log_wip; /* Undo language weight. */ - prob = (int32)(prob / base->lw); + prob = (int32) (prob / base->lw); return prob; } int32 -ngram_unknown_wid(ngram_model_t *model) +ngram_unknown_wid(ngram_model_t * model) { int32 val; @@ -654,121 +560,29 @@ } int32 -ngram_zero(ngram_model_t *model) +ngram_zero(ngram_model_t * model) { return model->log_zero; } int32 -ngram_model_get_size(ngram_model_t *model) -{ - if (model != NULL) - return model->n; - return 0; -} - -int32 const * -ngram_model_get_counts(ngram_model_t *model) -{ - if (model != NULL) - return model->n_counts; - return NULL; -} - -void -ngram_iter_init(ngram_iter_t *itor, ngram_model_t *model, - int m, int successor) -{ - itor->model = model; - itor->wids = ckd_calloc(model->n, sizeof(*itor->wids)); - itor->m = m; - itor->successor = successor; -} - -ngram_iter_t * -ngram_model_mgrams(ngram_model_t *model, int m) -{ - ngram_iter_t *itor; - /* The fact that m=n-1 is not exactly obvious. Prevent accidents. */ - if (m >= model->n) - return NULL; - if (model->funcs->mgrams == NULL) - return NULL; - itor = (*model->funcs->mgrams)(model, m); - return itor; -} - -ngram_iter_t * -ngram_iter(ngram_model_t *model, const char *word, ...) -{ - va_list history; - const char *hword; - int32 *histid; - int32 n_hist; - ngram_iter_t *itor; - - va_start(history, word); - n_hist = 0; - while ((hword = va_arg(history, const char *)) != NULL) - ++n_hist; - va_end(history); - - histid = ckd_calloc(n_hist, sizeof(*histid)); - va_start(history, word); - n_hist = 0; - while ((hword = va_arg(history, const char *)) != NULL) { - histid[n_hist] = ngram_wid(model, hword); - ++n_hist; - } - va_end(history); - - itor = ngram_ng_iter(model, ngram_wid(model, word), histid, n_hist); - ckd_free(histid); - return itor; -} - -ngram_iter_t * -ngram_ng_iter(ngram_model_t *model, int32 wid, int32 *history, int32 n_hist) -{ - if (n_hist >= model->n) - return NULL; - if (model->funcs->iter == NULL) - return NULL; - return (*model->funcs->iter)(model, wid, history, n_hist); -} - -ngram_iter_t * -ngram_iter_successors(ngram_iter_t *itor) -{ - /* Stop when we are at the highest order N-Gram. */ - if (itor->m == itor->model->n - 1) - return NULL; - return (*itor->model->funcs->successors)(itor); -} - -int32 const * -ngram_iter_get(ngram_iter_t *itor, - int32 *out_score, - int32 *out_bowt) +ngram_model_get_size(ngram_model_t * model) { - return (*itor->model->funcs->iter_get)(itor, out_score, out_bowt); + if (model != NULL) + return model->n; + return 0; } -ngram_iter_t * -ngram_iter_next(ngram_iter_t *itor) +uint32 const * +ngram_model_get_counts(ngram_model_t * model) { - return (*itor->model->funcs->iter_next)(itor); -} - -void -ngram_iter_free(ngram_iter_t *itor) -{ - ckd_free(itor->wids); - (*itor->model->funcs->iter_free)(itor); + if (model != NULL) + return model->n_counts; + return NULL; } int32 -ngram_wid(ngram_model_t *model, const char *word) +ngram_wid(ngram_model_t * model, const char *word) { int32 val; @@ -779,7 +593,7 @@ } const char * -ngram_word(ngram_model_t *model, int32 wid) +ngram_word(ngram_model_t * model, int32 wid) { /* Remove any class tag */ wid = NGRAM_BASEWID(wid); @@ -792,36 +606,39 @@ * Add a word to the word string and ID mapping. */ int32 -ngram_add_word_internal(ngram_model_t *model, - const char *word, - int32 classid) +ngram_add_word_internal(ngram_model_t * model, + const char *word, int32 classid) { - void *dummy; + + /* Check for hash collisions. */ int32 wid; + if (hash_table_lookup_int32(model->wid, word, &wid) == 0) { + E_WARN("Omit duplicate word '%s'\n", word); + return wid; + } /* Take the next available word ID */ wid = model->n_words; if (classid >= 0) { wid = NGRAM_CLASSWID(wid, classid); } - /* Check for hash collisions. */ - if (hash_table_lookup(model->wid, word, &dummy) == 0) { - E_ERROR("Duplicate definition of word %s\n", word); - return NGRAM_INVALID_WID; - } + /* Reallocate word_str if necessary. */ if (model->n_words >= model->n_1g_alloc) { model->n_1g_alloc += UG_ALLOC_STEP; model->word_str = ckd_realloc(model->word_str, - sizeof(*model->word_str) * model->n_1g_alloc); + sizeof(*model->word_str) * + model->n_1g_alloc); } /* Add the word string in the appropriate manner. */ /* Class words are always dynamically allocated. */ model->word_str[model->n_words] = ckd_salloc(word); /* Now enter it into the hash table. */ - if (hash_table_enter_int32(model->wid, model->word_str[model->n_words], wid) != wid) { - E_ERROR("Hash insertion failed for word %s => %p (should not happen)\n", - model->word_str[model->n_words], (void *)(long)(wid)); + if (hash_table_enter_int32 + (model->wid, model->word_str[model->n_words], wid) != wid) { + E_ERROR + ("Hash insertion failed for word %s => %p (should not happen)\n", + model->word_str[model->n_words], (void *) (long) (wid)); } /* Increment number of words. */ ++model->n_words; @@ -829,16 +646,16 @@ } int32 -ngram_model_add_word(ngram_model_t *model, +ngram_model_add_word(ngram_model_t * model, const char *word, float32 weight) { int32 wid, prob = model->log_zero; /* If we add word to unwritable model, we need to make it writable */ if (!model->writable) { - E_WARN("Can't add word '%s' to read-only language model. " - "Disable mmap with '-mmap no' to make it writable\n", word); - return -1; + E_WARN("Can't add word '%s' to read-only language model. " + "Disable mmap with '-mmap no' to make it writable\n", word); + return -1; } wid = ngram_add_word_internal(model, word, -1); @@ -847,15 +664,18 @@ /* Do what needs to be done to add the word to the unigram. */ if (model->funcs && model->funcs->add_ug) - prob = (*model->funcs->add_ug)(model, wid, logmath_log(model->lmath, weight)); - if (prob == 0) { - return -1; - } + prob = + (*model->funcs->add_ug) (model, wid, + logmath_log(model->lmath, weight)); + if (prob == 0) + return -1; + return wid; } ngram_class_t * -ngram_class_new(ngram_model_t *model, int32 tag_wid, int32 start_wid, glist_t classwords) +ngram_class_new(ngram_model_t * model, int32 tag_wid, int32 start_wid, + glist_t classwords) { ngram_class_t *lmclass; gnode_t *gn; @@ -875,7 +695,7 @@ tprob += gnode_float32(gn); } if (tprob > 1.1 || tprob < 0.9) { - E_WARN("Total class probability is %f, will normalize\n", tprob); + E_INFO("Total class probability is %f, will normalize\n", tprob); for (gn = classwords; gn; gn = gnode_next(gn)) { gn->data.fl /= tprob; } @@ -888,14 +708,16 @@ } int32 -ngram_class_add_word(ngram_class_t *lmclass, int32 wid, int32 lweight) +ngram_class_add_word(ngram_class_t * lmclass, int32 wid, int32 lweight) { int32 hash; if (lmclass->nword_hash == NULL) { /* Initialize everything in it to -1 */ - lmclass->nword_hash = ckd_malloc(NGRAM_HASH_SIZE * sizeof(*lmclass->nword_hash)); - memset(lmclass->nword_hash, 0xff, NGRAM_HASH_SIZE * sizeof(*lmclass->nword_hash)); + lmclass->nword_hash = + ckd_malloc(NGRAM_HASH_SIZE * sizeof(*lmclass->nword_hash)); + memset(lmclass->nword_hash, 0xff, + NGRAM_HASH_SIZE * sizeof(*lmclass->nword_hash)); lmclass->n_hash = NGRAM_HASH_SIZE; lmclass->n_hash_inuse = 0; } @@ -919,10 +741,12 @@ /* Does we has any more bukkit? */ if (lmclass->n_hash_inuse == lmclass->n_hash) { /* Oh noes! Ok, we makes more. */ - lmclass->nword_hash = ckd_realloc(lmclass->nword_hash, - lmclass->n_hash * 2 * sizeof(*lmclass->nword_hash)); - memset(lmclass->nword_hash + lmclass->n_hash, - 0xff, lmclass->n_hash * sizeof(*lmclass->nword_hash)); + lmclass->nword_hash = ckd_realloc(lmclass->nword_hash, + lmclass->n_hash * 2 * + sizeof(*lmclass-> + nword_hash)); + memset(lmclass->nword_hash + lmclass->n_hash, 0xff, + lmclass->n_hash * sizeof(*lmclass->nword_hash)); /* Just use the next allocated one (easy) */ next = lmclass->n_hash; lmclass->n_hash *= 2; @@ -944,7 +768,7 @@ } void -ngram_class_free(ngram_class_t *lmclass) +ngram_class_free(ngram_class_t * lmclass) { ckd_free(lmclass->nword_hash); ckd_free(lmclass->prob1); @@ -952,10 +776,9 @@ } int32 -ngram_model_add_class_word(ngram_model_t *model, +ngram_model_add_class_word(ngram_model_t * model, const char *classname, - const char *word, - float32 weight) + const char *word, float32 weight) { ngram_class_t *lmclass; int32 classid, tag_wid, wid, i, scale; @@ -975,7 +798,9 @@ } /* Hmm, no such class. It's probably not a good idea to create one. */ if (classid == model->n_classes) { - E_ERROR("Word %s is not a class tag (call ngram_model_add_class() first)\n", classname); + E_ERROR + ("Word %s is not a class tag (call ngram_model_add_class() first)\n", + classname); return NGRAM_INVALID_WID; } lmclass = model->classes[classid]; @@ -998,24 +823,24 @@ lmclass->nword_hash[i].prob1 += scale; /* Now add it to the class hash table. */ - return ngram_class_add_word(lmclass, wid, logmath_log(model->lmath, fprob)); + return ngram_class_add_word(lmclass, wid, + logmath_log(model->lmath, fprob)); } int32 -ngram_model_add_class(ngram_model_t *model, +ngram_model_add_class(ngram_model_t * model, const char *classname, float32 classweight, - char **words, - const float32 *weights, - int32 n_words) + char **words, const float32 * weights, int32 n_words) { ngram_class_t *lmclass; glist_t classwords = NULL; int32 i, start_wid = -1; int32 classid, tag_wid; - /* Check if classname already exists in model. If not, add it.*/ - if ((tag_wid = ngram_wid(model, classname)) == ngram_unknown_wid(model)) { + /* Check if classname already exists in model. If not, add it. */ + if ((tag_wid = + ngram_wid(model, classname)) == ngram_unknown_wid(model)) { tag_wid = ngram_model_add_word(model, classname, classweight); if (tag_wid == NGRAM_INVALID_WID) return -1; @@ -1047,13 +872,14 @@ model->classes = ckd_calloc(1, sizeof(*model->classes)); else model->classes = ckd_realloc(model->classes, - model->n_classes * sizeof(*model->classes)); + model->n_classes * + sizeof(*model->classes)); model->classes[classid] = lmclass; return classid; } int32 -ngram_class_prob(ngram_class_t *lmclass, int32 wid) +ngram_class_prob(ngram_class_t * lmclass, int32 wid) { int32 base_wid = NGRAM_BASEWID(wid); @@ -1075,7 +901,7 @@ } int32 -read_classdef_file(hash_table_t *classes, const char *file_name) +read_classdef_file(hash_table_t * classes, const char *file_name) { FILE *fp; int32 is_pipe; @@ -1132,9 +958,10 @@ word = gnode_next(word); weight = gnode_next(weight); } - + /* Add this class to the hash table. */ - if (hash_table_enter(classes, classname, classdef) != classdef) { + if (hash_table_enter(classes, classname, classdef) != + classdef) { classdef_free(classdef); goto error_out; } @@ -1150,11 +977,12 @@ float32 fprob; if (n_words == 2) - fprob = (float32)atof_c(wptr[1]); + fprob = atof_c(wptr[1]); else fprob = 1.0f; /* Add it to the list of words for this class. */ - classwords = glist_add_ptr(classwords, ckd_salloc(wptr[0])); + classwords = + glist_add_ptr(classwords, ckd_salloc(wptr[0])); classprobs = glist_add_float32(classprobs, fprob); } } @@ -1169,9 +997,9 @@ /* Otherwise, just ignore whatever junk we got */ } } - rv = 0; /* Success. */ + rv = 0; /* Success. */ -error_out: + error_out: /* Free all the stuff we might have allocated. */ fclose_comp(fp, is_pipe); for (gn = classwords; gn; gn = gnode_next(gn)) @@ -1184,7 +1012,7 @@ } void -classdef_free(classdef_t *classdef) +classdef_free(classdef_t * classdef) { int32 i; for (i = 0; i < classdef->n_words; ++i) @@ -1196,8 +1024,7 @@ int32 -ngram_model_read_classdef(ngram_model_t *model, - const char *file_name) +ngram_model_read_classdef(ngram_model_t * model, const char *file_name) { hash_table_t *classes; glist_t hl = NULL; @@ -1209,7 +1036,7 @@ hash_table_free(classes); return -1; } - + /* Create a new class in the language model for each classdef. */ hl = hash_table_tolist(classes, NULL); for (gn = hl; gn; gn = gnode_next(gn)) { @@ -1224,10 +1051,10 @@ } rv = 0; -error_out: + error_out: for (gn = hl; gn; gn = gnode_next(gn)) { hash_entry_t *he = gnode_ptr(gn); - ckd_free((char *)he->key); + ckd_free((char *) he->key); classdef_free(he->val); } glist_free(hl); diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_dmp32.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_dmp32.c --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_dmp32.c 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_dmp32.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2007 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * \file ngram_model_dmp32.c DMP32 format language models - * - * Author: David Huggins-Daines - */ - -#include "sphinxbase/ckd_alloc.h" - -#include "ngram_model_internal.h" - -static ngram_funcs_t ngram_model_dmp32_funcs; - -ngram_model_t * -ngram_model_dmp32_read(cmd_ln_t *config, - const char *file_name, - logmath_t *lmath) -{ - return NULL; -} - -int -ngram_model_dmp32_write(ngram_model_t *model, - const char *file_name) -{ - return -1; -} - -static int -ngram_model_dmp32_apply_weights(ngram_model_t *model, float32 lw, - float32 wip, float32 uw) -{ - return 0; -} - -static int32 -ngram_model_dmp32_score(ngram_model_t *model, int32 wid, - int32 *history, int32 n_hist, - int32 *n_used) -{ - return model->log_zero; -} - -static int32 -ngram_model_dmp32_raw_score(ngram_model_t *model, int32 wid, - int32 *history, int32 n_hist, - int32 *n_used) -{ - return model->log_zero; -} - -static void -ngram_model_dmp32_free(ngram_model_t *base) -{ - ckd_free(base); -} - -static ngram_funcs_t ngram_model_dmp32_funcs = { - ngram_model_dmp32_free, /* free */ - ngram_model_dmp32_apply_weights, /* apply_weights */ - ngram_model_dmp32_score, /* score */ - ngram_model_dmp32_raw_score, /* raw_score */ - NULL /* add_ug */ -}; diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_dmp.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_dmp.c --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_dmp.c 2012-12-13 09:01:21.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_dmp.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,969 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2007 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * \file ngram_model_dmp.c DMP format language models - * - * Author: David Huggins-Daines - */ - -#include -#include -#include -#include -#include - -#include "sphinxbase/ckd_alloc.h" -#include "sphinxbase/pio.h" -#include "sphinxbase/err.h" -#include "sphinxbase/byteorder.h" -#include "sphinxbase/listelem_alloc.h" - -#include "ngram_model_dmp.h" - -static const char darpa_hdr[] = "Darpa Trigram LM"; -static ngram_funcs_t ngram_model_dmp_funcs; - -#define TSEG_BASE(m,b) ((m)->lm3g.tseg_base[(b)>>LOG_BG_SEG_SZ]) -#define FIRST_BG(m,u) ((m)->lm3g.unigrams[u].bigrams) -#define FIRST_TG(m,b) (TSEG_BASE((m),(b))+((m)->lm3g.bigrams[b].trigrams)) - -static unigram_t * -new_unigram_table(int32 n_ug) -{ - unigram_t *table; - int32 i; - - table = ckd_calloc(n_ug, sizeof(unigram_t)); - for (i = 0; i < n_ug; i++) { - table[i].prob1.f = -99.0; - table[i].bo_wt1.f = -99.0; - } - return table; -} - -ngram_model_t * -ngram_model_dmp_read(cmd_ln_t *config, - const char *file_name, - logmath_t *lmath) -{ - ngram_model_t *base; - ngram_model_dmp_t *model; - FILE *fp; - int do_mmap, do_swap; - int32 is_pipe; - int32 i, j, k, vn, n, ts; - int32 n_unigram; - int32 n_bigram; - int32 n_trigram; - char str[1024]; - unigram_t *ugptr; - bigram_t *bgptr; - trigram_t *tgptr; - char *tmp_word_str; - char *map_base = NULL; - size_t offset = 0; - - base = NULL; - do_mmap = FALSE; - if (config) - do_mmap = cmd_ln_boolean_r(config, "-mmap"); - - if ((fp = fopen_comp(file_name, "rb", &is_pipe)) == NULL) { - E_ERROR("Dump file %s not found\n", file_name); - goto error_out; - } - - if (is_pipe && do_mmap) { - E_WARN("Dump file is compressed, will not use memory-mapped I/O\n"); - do_mmap = 0; - } - - do_swap = FALSE; - if (fread(&k, sizeof(k), 1, fp) != 1) - goto error_out; - if (k != strlen(darpa_hdr)+1) { - SWAP_INT32(&k); - if (k != strlen(darpa_hdr)+1) { - E_ERROR("Wrong magic header size number %x: %s is not a dump file\n", k, file_name); - goto error_out; - } - do_swap = 1; - } - if (fread(str, 1, k, fp) != (size_t) k) { - E_ERROR("Cannot read header\n"); - goto error_out; - } - if (strncmp(str, darpa_hdr, k) != 0) { - E_ERROR("Wrong header %s: %s is not a dump file\n", darpa_hdr); - goto error_out; - } - - if (do_mmap) { - if (do_swap) { - E_INFO - ("Byteswapping required, will not use memory-mapped I/O for LM file\n"); - do_mmap = 0; - } - else { - E_INFO("Will use memory-mapped I/O for LM file\n"); -#ifdef __ADSPBLACKFIN__ /* This is true for both VisualDSP++ and uClinux. */ - E_FATAL("memory mapping is not supported at the moment."); -#else -#endif - } - } - - if (fread(&k, sizeof(k), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&k); - if (fread(str, 1, k, fp) != (size_t) k) { - E_ERROR("Cannot read LM filename in header\n"); - goto error_out; - } - - /* read version#, if present (must be <= 0) */ - if (fread(&vn, sizeof(vn), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&vn); - if (vn <= 0) { - /* read and don't compare timestamps (we don't care) */ - if (fread(&ts, sizeof(ts), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&ts); - - /* read and skip format description */ - for (;;) { - if (fread(&k, sizeof(k), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&k); - if (k == 0) - break; - if (fread(str, 1, k, fp) != (size_t) k) { - E_ERROR("Failed to read word\n"); - goto error_out; - } - } - /* read model->ucount */ - if (fread(&n_unigram, sizeof(n_unigram), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&n_unigram); - } - else { - n_unigram = vn; - } - - /* read model->bcount, tcount */ - if (fread(&n_bigram, sizeof(n_bigram), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&n_bigram); - if (fread(&n_trigram, sizeof(n_trigram), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&n_trigram); - E_INFO("ngrams 1=%d, 2=%d, 3=%d\n", n_unigram, n_bigram, n_trigram); - - /* Allocate space for LM, including initial OOVs and placeholders; initialize it */ - model = ckd_calloc(1, sizeof(*model)); - base = &model->base; - if (n_trigram > 0) - n = 3; - else if (n_bigram > 0) - n = 2; - else - n = 1; - ngram_model_init(base, &ngram_model_dmp_funcs, lmath, n, n_unigram); - base->n_counts[0] = n_unigram; - base->n_counts[1] = n_bigram; - base->n_counts[2] = n_trigram; - - /* read unigrams (always in memory, as they contain dictionary - * mappings that can't be precomputed, and also could have OOVs added) */ - model->lm3g.unigrams = new_unigram_table(n_unigram + 1); - ugptr = model->lm3g.unigrams; - for (i = 0; i <= n_unigram; ++i) { - /* Skip over the mapping ID, we don't care about it. */ - if (fread(ugptr, sizeof(int32), 1, fp) != 1) { - E_ERROR("Failed to read maping id %d\n", i); - goto error_out; - } - /* Read the actual unigram structure. */ - if (fread(ugptr, sizeof(unigram_t), 1, fp) != 1) { - E_ERROR("Failed to read unigrams data\n"); - ngram_model_free(base); - fclose_comp(fp, is_pipe); - return NULL; - } - /* Byte swap if necessary. */ - if (do_swap) { - SWAP_INT32(&ugptr->prob1.l); - SWAP_INT32(&ugptr->bo_wt1.l); - SWAP_INT32(&ugptr->bigrams); - } - /* Convert values to log. */ - ugptr->prob1.l = logmath_log10_to_log(lmath, ugptr->prob1.f); - ugptr->bo_wt1.l = logmath_log10_to_log(lmath, ugptr->bo_wt1.f); - E_DEBUG(2, ("ug %d: prob %d bo %d bigrams %d\n", - i, ugptr->prob1.l, ugptr->bo_wt1.l, ugptr->bigrams)); - ++ugptr; - } - E_INFO("%8d = LM.unigrams(+trailer) read\n", n_unigram); - - /* Now mmap() the file and read in the rest of the (read-only) stuff. */ - if (do_mmap) { - offset = ftell(fp); - - /* Check for improper word alignment. */ - if (offset & 0x3) { - E_WARN("-mmap specified, but trigram index is not word-aligned. Will not memory-map.\n"); - do_mmap = FALSE; - } - else { - model->dump_mmap = mmio_file_read(file_name); - if (model->dump_mmap == NULL) { - do_mmap = FALSE; - } - else { - map_base = mmio_file_ptr(model->dump_mmap); - } - } - } - - if (n_bigram > 0) { - /* read bigrams */ - if (do_mmap) { - model->lm3g.bigrams = (bigram_t *) (map_base + offset); - offset += (n_bigram + 1) * sizeof(bigram_t); - } - else { - model->lm3g.bigrams = - ckd_calloc(n_bigram + 1, sizeof(bigram_t)); - if (fread(model->lm3g.bigrams, sizeof(bigram_t), n_bigram + 1, fp) - != (size_t) n_bigram + 1) { - E_ERROR("Failed to read bigrams data\n"); - goto error_out; - } - if (do_swap) { - for (i = 0, bgptr = model->lm3g.bigrams; i <= n_bigram; - i++, bgptr++) { - SWAP_INT16(&bgptr->wid); - SWAP_INT16(&bgptr->prob2); - SWAP_INT16(&bgptr->bo_wt2); - SWAP_INT16(&bgptr->trigrams); - } - } - } - E_INFO("%8d = LM.bigrams(+trailer) read\n", n_bigram); - } - - /* read trigrams */ - if (n_trigram > 0) { - if (do_mmap) { - model->lm3g.trigrams = (trigram_t *) (map_base + offset); - offset += n_trigram * sizeof(trigram_t); - } - else { - model->lm3g.trigrams = - ckd_calloc(n_trigram, sizeof(trigram_t)); - if (fread - (model->lm3g.trigrams, sizeof(trigram_t), n_trigram, fp) - != (size_t) n_trigram) { - E_ERROR("Failed to read trigrams data\n"); - goto error_out; - } - if (do_swap) { - for (i = 0, tgptr = model->lm3g.trigrams; i < n_trigram; - i++, tgptr++) { - SWAP_INT16(&tgptr->wid); - SWAP_INT16(&tgptr->prob3); - } - } - } - E_INFO("%8d = LM.trigrams read\n", n_trigram); - /* Initialize tginfo */ - model->lm3g.tginfo = ckd_calloc(n_unigram, sizeof(tginfo_t *)); - model->lm3g.le = listelem_alloc_init(sizeof(tginfo_t)); - } - - if (n_bigram > 0) { - /* read n_prob2 and prob2 array (in memory) */ - if (do_mmap) - fseek(fp, offset, SEEK_SET); - if (fread(&k, sizeof(k), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&k); - model->lm3g.n_prob2 = k; - model->lm3g.prob2 = ckd_calloc(k, sizeof(*model->lm3g.prob2)); - if (fread(model->lm3g.prob2, sizeof(*model->lm3g.prob2), k, fp) != (size_t) k) { - E_ERROR("fread(prob2) failed\n"); - goto error_out; - } - for (i = 0; i < k; i++) { - if (do_swap) - SWAP_INT32(&model->lm3g.prob2[i].l); - /* Convert values to log. */ - model->lm3g.prob2[i].l = logmath_log10_to_log(lmath, model->lm3g.prob2[i].f); - } - E_INFO("%8d = LM.prob2 entries read\n", k); - } - - /* read n_bo_wt2 and bo_wt2 array (in memory) */ - if (base->n > 2) { - if (fread(&k, sizeof(k), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&k); - model->lm3g.n_bo_wt2 = k; - model->lm3g.bo_wt2 = ckd_calloc(k, sizeof(*model->lm3g.bo_wt2)); - if (fread(model->lm3g.bo_wt2, sizeof(*model->lm3g.bo_wt2), k, fp) != (size_t) k) { - E_ERROR("Failed to read backoff weights\n"); - goto error_out; - } - for (i = 0; i < k; i++) { - if (do_swap) - SWAP_INT32(&model->lm3g.bo_wt2[i].l); - /* Convert values to log. */ - model->lm3g.bo_wt2[i].l = logmath_log10_to_log(lmath, model->lm3g.bo_wt2[i].f); - } - E_INFO("%8d = LM.bo_wt2 entries read\n", k); - } - - /* read n_prob3 and prob3 array (in memory) */ - if (base->n > 2) { - if (fread(&k, sizeof(k), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&k); - model->lm3g.n_prob3 = k; - model->lm3g.prob3 = ckd_calloc(k, sizeof(*model->lm3g.prob3)); - if (fread(model->lm3g.prob3, sizeof(*model->lm3g.prob3), k, fp) != (size_t) k) { - E_ERROR("Failed to read trigram probability\n"); - goto error_out; - } - for (i = 0; i < k; i++) { - if (do_swap) - SWAP_INT32(&model->lm3g.prob3[i].l); - /* Convert values to log. */ - model->lm3g.prob3[i].l = logmath_log10_to_log(lmath, model->lm3g.prob3[i].f); - } - E_INFO("%8d = LM.prob3 entries read\n", k); - } - - /* read tseg_base size and tseg_base */ - if (do_mmap) - offset = ftell(fp); - if (n_trigram > 0) { - if (do_mmap) { - memcpy(&k, map_base + offset, sizeof(k)); - offset += sizeof(int32); - model->lm3g.tseg_base = (int32 *) (map_base + offset); - offset += k * sizeof(int32); - } - else { - k = (n_bigram + 1) / BG_SEG_SZ + 1; - if (fread(&k, sizeof(k), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&k); - model->lm3g.tseg_base = ckd_calloc(k, sizeof(int32)); - if (fread(model->lm3g.tseg_base, sizeof(int32), k, fp) != - (size_t) k) { - E_ERROR("Failed to read trigram index\n"); - goto error_out; - } - if (do_swap) - for (i = 0; i < k; i++) - SWAP_INT32(&model->lm3g.tseg_base[i]); - } - E_INFO("%8d = LM.tseg_base entries read\n", k); - } - - /* read ascii word strings */ - if (do_mmap) { - memcpy(&k, map_base + offset, sizeof(k)); - offset += sizeof(int32); - tmp_word_str = (char *) (map_base + offset); - offset += k; - } - else { - base->writable = TRUE; - if (fread(&k, sizeof(k), 1, fp) != 1) - goto error_out; - if (do_swap) SWAP_INT32(&k); - tmp_word_str = ckd_calloc(k, 1); - if (fread(tmp_word_str, 1, k, fp) != (size_t) k) { - E_ERROR("Failed to read words\n"); - goto error_out; - } - } - - /* First make sure string just read contains n_counts[0] words (PARANOIA!!) */ - for (i = 0, j = 0; i < k; i++) - if (tmp_word_str[i] == '\0') - j++; - if (j != n_unigram) { - E_ERROR("Error reading word strings (%d doesn't match n_unigrams %d)\n", - j, n_unigram); - goto error_out; - } - - /* Break up string just read into words */ - if (do_mmap) { - j = 0; - for (i = 0; i < n_unigram; i++) { - base->word_str[i] = tmp_word_str + j; - if (hash_table_enter(base->wid, base->word_str[i], - (void *)(long)i) != (void *)(long)i) { - E_WARN("Duplicate word in dictionary: %s\n", base->word_str[i]); - } - j += strlen(base->word_str[i]) + 1; - } - } - else { - j = 0; - for (i = 0; i < n_unigram; i++) { - base->word_str[i] = ckd_salloc(tmp_word_str + j); - if (hash_table_enter(base->wid, base->word_str[i], - (void *)(long)i) != (void *)(long)i) { - E_WARN("Duplicate word in dictionary: %s\n", base->word_str[i]); - } - j += strlen(base->word_str[i]) + 1; - } - free(tmp_word_str); - } - E_INFO("%8d = ascii word strings read\n", i); - - fclose_comp(fp, is_pipe); - return base; - -error_out: - if (fp) - fclose_comp(fp, is_pipe); - ngram_model_free(base); - return NULL; -} - -ngram_model_dmp_t * -ngram_model_dmp_build(ngram_model_t *base) -{ - ngram_model_dmp_t *model; - ngram_model_t *newbase; - ngram_iter_t *itor; - sorted_list_t sorted_prob2; - sorted_list_t sorted_bo_wt2; - sorted_list_t sorted_prob3; - bigram_t *bgptr; - trigram_t *tgptr; - int i, bgcount, tgcount, seg; - - if (base->funcs == &ngram_model_dmp_funcs) { - E_INFO("Using existing DMP model.\n"); - return (ngram_model_dmp_t *)ngram_model_retain(base); - } - - /* Initialize new base model structure with params from base. */ - E_INFO("Building DMP model...\n"); - model = ckd_calloc(1, sizeof(*model)); - newbase = &model->base; - ngram_model_init(newbase, &ngram_model_dmp_funcs, - logmath_retain(base->lmath), - base->n, base->n_counts[0]); - /* Copy N-gram counts over. */ - memcpy(newbase->n_counts, base->n_counts, - base->n * sizeof(*base->n_counts)); - /* Make sure word strings are freed. */ - newbase->writable = TRUE; - /* Initialize unigram table and string table. */ - model->lm3g.unigrams = new_unigram_table(newbase->n_counts[0] + 1); - for (itor = ngram_model_mgrams(base, 0); itor; - itor = ngram_iter_next(itor)) { - int32 prob1, bo_wt1; - int32 const *wids; - - /* Can't guarantee they will go in unigram order, so just to - * be correct, we do this... */ - wids = ngram_iter_get(itor, &prob1, &bo_wt1); - model->lm3g.unigrams[wids[0]].prob1.l = prob1; - model->lm3g.unigrams[wids[0]].bo_wt1.l = bo_wt1; - newbase->word_str[wids[0]] = ckd_salloc(ngram_word(base, wids[0])); - if ((hash_table_enter_int32(newbase->wid, - newbase->word_str[wids[0]], wids[0])) - != wids[0]) { - E_WARN("Duplicate word in dictionary: %s\n", newbase->word_str[wids[0]]); - } - } - E_INFO("%8d = #unigrams created\n", newbase->n_counts[0]); - - if (newbase->n < 2) - return model; - - /* Construct quantized probability table for bigrams and - * (optionally) trigrams. Hesitate to use the "sorted list" thing - * since it isn't so useful, but it's there already. */ - init_sorted_list(&sorted_prob2); - if (newbase->n > 2) { - init_sorted_list(&sorted_bo_wt2); - init_sorted_list(&sorted_prob3); - } - /* Construct bigram and trigram arrays. */ - bgptr = model->lm3g.bigrams = ckd_calloc(newbase->n_counts[1] + 1, sizeof(bigram_t)); - if (newbase->n > 2) { - tgptr = model->lm3g.trigrams = ckd_calloc(newbase->n_counts[2], sizeof(trigram_t)); - model->lm3g.tseg_base = - ckd_calloc((newbase->n_counts[1] + 1) / BG_SEG_SZ + 1, sizeof(int32)); - } - else - tgptr = NULL; - /* Since bigrams and trigrams have to be contiguous with others - * with the same N-1-gram, we traverse them in depth-first order - * to build the bigram and trigram arrays. */ - for (i = 0; i < newbase->n_counts[0]; ++i) { - ngram_iter_t *uitor; - bgcount = bgptr - model->lm3g.bigrams; - /* First bigram index (same as next if no bigrams...) */ - model->lm3g.unigrams[i].bigrams = bgcount; - E_DEBUG(2, ("unigram %d: %s => bigram %d\n", i, newbase->word_str[i], bgcount)); - /* All bigrams corresponding to unigram i */ - uitor = ngram_ng_iter(base, i, NULL, 0); - for (itor = ngram_iter_successors(uitor); - itor; ++bgptr, itor = ngram_iter_next(itor)) { - int32 prob2, bo_wt2; - int32 const *wids; - ngram_iter_t *titor; - - wids = ngram_iter_get(itor, &prob2, &bo_wt2); - - assert (bgptr - model->lm3g.bigrams < newbase->n_counts[1]); - - bgptr->wid = wids[1]; - bgptr->prob2 = sorted_id(&sorted_prob2, &prob2); - if (newbase->n > 2) { - tgcount = (tgptr - model->lm3g.trigrams); - bgcount = (bgptr - model->lm3g.bigrams); - - /* Backoff weight (only if there are trigrams...) */ - bgptr->bo_wt2 = sorted_id(&sorted_bo_wt2, &bo_wt2); - - /* Find bigram segment for this bigram (this isn't - * used unless there are trigrams) */ - seg = bgcount >> LOG_BG_SEG_SZ; - /* If we just crossed a bigram segment boundary, then - * point tseg_base for the new segment to the current - * trigram pointer. */ - if (seg != (bgcount - 1) >> LOG_BG_SEG_SZ) - model->lm3g.tseg_base[seg] = tgcount; - /* Now calculate the trigram offset. */ - bgptr->trigrams = tgcount - model->lm3g.tseg_base[seg]; - E_DEBUG(2, ("bigram %d %s %s => trigram %d:%d\n", - bgcount, - newbase->word_str[wids[0]], - newbase->word_str[wids[1]], - seg, bgptr->trigrams)); - - /* And fill in successors' trigram info. */ - for (titor = ngram_iter_successors(itor); - titor; ++tgptr, titor = ngram_iter_next(titor)) { - int32 prob3, dummy; - - assert(tgptr - model->lm3g.trigrams < newbase->n_counts[2]); - wids = ngram_iter_get(titor, &prob3, &dummy); - tgptr->wid = wids[2]; - tgptr->prob3 = sorted_id(&sorted_prob3, &prob3); - E_DEBUG(2, ("trigram %d %s %s %s => prob %d\n", - tgcount, - newbase->word_str[wids[0]], - newbase->word_str[wids[1]], - newbase->word_str[wids[2]], - tgptr->prob3)); - } - } - } - ngram_iter_free(uitor); - } - /* Add sentinal unigram and bigram records. */ - bgcount = bgptr - model->lm3g.bigrams; - tgcount = tgptr - model->lm3g.trigrams; - seg = bgcount >> LOG_BG_SEG_SZ; - if (seg != (bgcount - 1) >> LOG_BG_SEG_SZ) - model->lm3g.tseg_base[seg] = tgcount; - model->lm3g.unigrams[i].bigrams = bgcount; - if (newbase->n > 2) - bgptr->trigrams = tgcount - model->lm3g.tseg_base[seg]; - - /* Now create probability tables. */ - model->lm3g.n_prob2 = sorted_prob2.free; - model->lm3g.prob2 = vals_in_sorted_list(&sorted_prob2); - E_INFO("%8d = #bigrams created\n", newbase->n_counts[1]); - E_INFO("%8d = #prob2 entries\n", model->lm3g.n_prob2); - free_sorted_list(&sorted_prob2); - if (newbase->n > 2) { - /* Create trigram bo-wts array. */ - model->lm3g.n_bo_wt2 = sorted_bo_wt2.free; - model->lm3g.bo_wt2 = vals_in_sorted_list(&sorted_bo_wt2); - free_sorted_list(&sorted_bo_wt2); - E_INFO("%8d = #bo_wt2 entries\n", model->lm3g.n_bo_wt2); - /* Create trigram probability table. */ - model->lm3g.n_prob3 = sorted_prob3.free; - model->lm3g.prob3 = vals_in_sorted_list(&sorted_prob3); - E_INFO("%8d = #trigrams created\n", newbase->n_counts[2]); - E_INFO("%8d = #prob3 entries\n", model->lm3g.n_prob3); - free_sorted_list(&sorted_prob3); - /* Initialize tginfo */ - model->lm3g.tginfo = ckd_calloc(newbase->n_counts[0], sizeof(tginfo_t *)); - model->lm3g.le = listelem_alloc_init(sizeof(tginfo_t)); - } - - return model; -} - -static void -fwrite_int32(FILE *fh, int32 val) -{ - fwrite(&val, 4, 1, fh); -} - -static void -fwrite_ug(FILE *fh, unigram_t *ug, logmath_t *lmath) -{ - int32 bogus = -1; - float32 log10val; - - /* Bogus dictionary mapping field. */ - fwrite(&bogus, 4, 1, fh); - /* Convert values to log10. */ - log10val = logmath_log_to_log10(lmath, ug->prob1.l); - fwrite(&log10val, 4, 1, fh); - log10val = logmath_log_to_log10(lmath, ug->bo_wt1.l); - fwrite(&log10val, 4, 1, fh); - fwrite_int32(fh, ug->bigrams); -} - -static void -fwrite_bg(FILE *fh, bigram_t *bg) -{ - fwrite(bg, sizeof(*bg), 1, fh); -} - -static void -fwrite_tg(FILE *fh, trigram_t *tg) -{ - fwrite(tg, sizeof(*tg), 1, fh); -} - -/** Please look at the definition of - */ -static char const *fmtdesc[] = { - "BEGIN FILE FORMAT DESCRIPTION", - "Header string length (int32) and string (including trailing 0)", - "Original LM filename string-length (int32) and filename (including trailing 0)", - "(int32) version number (present iff value <= 0)", - "(int32) original LM file modification timestamp (iff version# present)", - "(int32) string-length and string (including trailing 0) (iff version# present)", - "... previous entry continued any number of times (iff version# present)", - "(int32) 0 (terminating sequence of strings) (iff version# present)", - "(int32) log_bg_seg_sz (present iff different from default value of LOG2_BG_SEG_SZ)", - "(int32) lm_t.ucount (must be > 0)", - "(int32) lm_t.bcount", - "(int32) lm_t.tcount", - "lm_t.ucount+1 unigrams (including sentinel)", - "lm_t.bcount+1 bigrams (including sentinel 64 bits (bg_t) each if version=-1/-2, 128 bits (bg32_t) each if version=-3", - "lm_t.tcount trigrams (present iff lm_t.tcount > 0 32 bits (tg_t) each if version=-1/-2, 64 bits (tg32_t) each if version=-3)", - "(int32) lm_t.n_prob2", - "(int32) lm_t.prob2[]", - "(int32) lm_t.n_bo_wt2 (present iff lm_t.tcount > 0)", - "(int32) lm_t.bo_wt2[] (present iff lm_t.tcount > 0)", - "(int32) lm_t.n_prob3 (present iff lm_t.tcount > 0)", - "(int32) lm_t.prob3[] (present iff lm_t.tcount > 0)", - "(int32) (lm_t.bcount+1)/BG_SEG_SZ+1 (present iff lm_t.tcount > 0)", - "(int32) lm_t.tseg_base[] (present iff lm_t.tcount > 0)", - "(int32) Sum(all word string-lengths, including trailing 0 for each)", - "All word strings (including trailing 0 for each)", - "END FILE FORMAT DESCRIPTION", - NULL, -}; - -static void -ngram_model_dmp_write_header(FILE * fh) -{ - int32 k; - k = strlen(darpa_hdr) + 1; - fwrite_int32(fh, k); - fwrite(darpa_hdr, 1, k, fh); -} - -static void -ngram_model_dmp_write_lm_filename(FILE * fh, const char *lmfile) -{ - int32 k; - - k = strlen(lmfile) + 1; - fwrite_int32(fh, k); - fwrite(lmfile, 1, k, fh); -} - -#define LMDMP_VERSION_TG_16BIT -1 /**< VERSION 1 is the simplest DMP file which - is trigram or lower which used 16 bits in - bigram and trigram.*/ - -static void -ngram_model_dmp_write_version(FILE * fh, int32 mtime) -{ - fwrite_int32(fh, LMDMP_VERSION_TG_16BIT); /* version # */ - fwrite_int32(fh, mtime); -} - -static void -ngram_model_dmp_write_ngram_counts(FILE * fh, ngram_model_t *model) -{ - fwrite_int32(fh, model->n_counts[0]); - fwrite_int32(fh, model->n_counts[1]); - fwrite_int32(fh, model->n_counts[2]); -} - -static void -ngram_model_dmp_write_fmtdesc(FILE * fh) -{ - int32 i, k; - long pos; - - /* Write file format description into header */ - for (i = 0; fmtdesc[i] != NULL; i++) { - k = strlen(fmtdesc[i]) + 1; - fwrite_int32(fh, k); - fwrite(fmtdesc[i], 1, k, fh); - } - /* Pad it out in order to achieve 32-bit alignment */ - pos = ftell(fh); - k = pos & 3; - if (k) { - fwrite_int32(fh, 4-k); - fwrite("!!!!", 1, 4-k, fh); - } - fwrite_int32(fh, 0); -} - -static void -ngram_model_dmp_write_unigram(FILE *fh, ngram_model_t *model) -{ - ngram_model_dmp_t *lm = (ngram_model_dmp_t *)model; - int32 i; - - for (i = 0; i <= model->n_counts[0]; i++) { - fwrite_ug(fh, &(lm->lm3g.unigrams[i]), model->lmath); - } -} - - -static void -ngram_model_dmp_write_bigram(FILE *fh, ngram_model_t *model) -{ - ngram_model_dmp_t *lm = (ngram_model_dmp_t *)model; - int32 i; - - for (i = 0; i <= model->n_counts[1]; i++) { - fwrite_bg(fh, &(lm->lm3g.bigrams[i])); - } - -} - -static void -ngram_model_dmp_write_trigram(FILE *fh, ngram_model_t *model) -{ - ngram_model_dmp_t *lm = (ngram_model_dmp_t *)model; - int32 i; - - for (i = 0; i < model->n_counts[2]; i++) { - fwrite_tg(fh, &(lm->lm3g.trigrams[i])); - } -} - -static void -ngram_model_dmp_write_bgprob(FILE *fh, ngram_model_t *model) -{ - ngram_model_dmp_t *lm = (ngram_model_dmp_t *)model; - int32 i; - - fwrite_int32(fh, lm->lm3g.n_prob2); - for (i = 0; i < lm->lm3g.n_prob2; i++) { - float32 log10val = logmath_log_to_log10(model->lmath, lm->lm3g.prob2[i].l); - fwrite(&log10val, 4, 1, fh); - } -} - -static void -ngram_model_dmp_write_tgbowt(FILE *fh, ngram_model_t *model) -{ - ngram_model_dmp_t *lm = (ngram_model_dmp_t *)model; - int32 i; - - fwrite_int32(fh, lm->lm3g.n_bo_wt2); - for (i = 0; i < lm->lm3g.n_bo_wt2; i++) { - float32 log10val = logmath_log_to_log10(model->lmath, lm->lm3g.bo_wt2[i].l); - fwrite(&log10val, 4, 1, fh); - } -} - -static void -ngram_model_dmp_write_tgprob(FILE *fh, ngram_model_t *model) -{ - ngram_model_dmp_t *lm = (ngram_model_dmp_t *)model; - int32 i; - - fwrite_int32(fh, lm->lm3g.n_prob3); - for (i = 0; i < lm->lm3g.n_prob3; i++) { - float32 log10val = logmath_log_to_log10(model->lmath, lm->lm3g.prob3[i].l); - fwrite(&log10val, 4, 1, fh); - } -} - -static void -ngram_model_dmp_write_tg_segbase(FILE *fh, ngram_model_t *model) -{ - ngram_model_dmp_t *lm = (ngram_model_dmp_t *)model; - int32 i, k; - - k = (model->n_counts[1] + 1) / BG_SEG_SZ + 1; - fwrite_int32(fh, k); - for (i = 0; i < k; i++) - fwrite_int32(fh, lm->lm3g.tseg_base[i]); -} - -static void -ngram_model_dmp_write_wordstr(FILE *fh, ngram_model_t *model) -{ - int32 i, k; - - k = 0; - for (i = 0; i < model->n_counts[0]; i++) - k += strlen(model->word_str[i]) + 1; - fwrite_int32(fh, k); - for (i = 0; i < model->n_counts[0]; i++) - fwrite(model->word_str[i], 1, - strlen(model->word_str[i]) + 1, fh); -} - -int -ngram_model_dmp_write(ngram_model_t *base, - const char *file_name) -{ - ngram_model_dmp_t *model; - ngram_model_t *newbase; - FILE *fh; - - /* First, construct a DMP model from the base model. */ - model = ngram_model_dmp_build(base); - newbase = &model->base; - - /* Now write it, confident in the knowledge that it's the right - * kind of language model internally. */ - if ((fh = fopen(file_name, "wb")) == NULL) { - E_ERROR("Cannot create file %s\n", file_name); - return -1; - } - ngram_model_dmp_write_header(fh); - ngram_model_dmp_write_lm_filename(fh, file_name); - ngram_model_dmp_write_version(fh, 0); - ngram_model_dmp_write_fmtdesc(fh); - ngram_model_dmp_write_ngram_counts(fh, newbase); - ngram_model_dmp_write_unigram(fh, newbase); - if (newbase->n > 1) { - ngram_model_dmp_write_bigram(fh, newbase); - if (newbase->n > 2) { - ngram_model_dmp_write_trigram(fh, newbase); - } - ngram_model_dmp_write_bgprob(fh, newbase); - if (newbase->n > 2) { - ngram_model_dmp_write_tgbowt(fh, newbase); - ngram_model_dmp_write_tgprob(fh, newbase); - ngram_model_dmp_write_tg_segbase(fh, newbase); - } - } - ngram_model_dmp_write_wordstr(fh, newbase); - ngram_model_free(newbase); - - return fclose(fh); -} - -static int -ngram_model_dmp_apply_weights(ngram_model_t *base, float32 lw, - float32 wip, float32 uw) -{ - ngram_model_dmp_t *model = (ngram_model_dmp_t *)base; - lm3g_apply_weights(base, &model->lm3g, lw, wip, uw); - return 0; -} - -/* Lousy "templating" for things that are largely the same in DMP and - * ARPA models, except for the bigram and trigram types and some - * names. */ -#define NGRAM_MODEL_TYPE ngram_model_dmp_t -#include "lm3g_templates.c" - -static void -ngram_model_dmp_free(ngram_model_t *base) -{ - ngram_model_dmp_t *model = (ngram_model_dmp_t *)base; - - ckd_free(model->lm3g.unigrams); - ckd_free(model->lm3g.prob2); - if (model->dump_mmap) { - mmio_file_unmap(model->dump_mmap); - } - else { - ckd_free(model->lm3g.bigrams); - if (base->n > 2) { - ckd_free(model->lm3g.trigrams); - ckd_free(model->lm3g.tseg_base); - } - } - if (base->n > 2) { - ckd_free(model->lm3g.bo_wt2); - ckd_free(model->lm3g.prob3); - } - - lm3g_tginfo_free(base, &model->lm3g); -} - -static ngram_funcs_t ngram_model_dmp_funcs = { - ngram_model_dmp_free, /* free */ - ngram_model_dmp_apply_weights, /* apply_weights */ - lm3g_template_score, /* score */ - lm3g_template_raw_score, /* raw_score */ - lm3g_template_add_ug, /* add_ug */ - lm3g_template_flush, /* flush */ - lm3g_template_iter, /* iter */ - lm3g_template_mgrams, /* mgrams */ - lm3g_template_successors, /* successors */ - lm3g_template_iter_get, /* iter_get */ - lm3g_template_iter_next, /* iter_next */ - lm3g_template_iter_free /* iter_free */ -}; diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_dmp.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_dmp.h --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_dmp.h 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_dmp.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2007 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * \file ngram_model_dmp.h DMP format for N-Gram models - * - * Author: David Huggins-Daines - */ - -#ifndef __NGRAM_MODEL_DMP_H__ -#define __NGRAM_MODEL_DMP_H__ - -#include "sphinxbase/mmio.h" - -#include "ngram_model_internal.h" -#include "lm3g_model.h" - -/** - * On-disk representation of bigrams. - */ -struct bigram_s { - uint16 wid; /**< Index of unigram entry for this. (NOT dictionary id.) */ - uint16 prob2; /**< Index into array of actual bigram probs */ - uint16 bo_wt2; /**< Index into array of actual bigram backoff wts */ - uint16 trigrams; /**< Index of 1st entry in lm_t.trigrams[], - RELATIVE TO its segment base (see lm3g_model.h) */ -}; - -/** - * On-disk representation of trigrams. - * - * As with bigrams, trigram prob info kept in a separate table for conserving - * memory space. - */ -struct trigram_s { - uint16 wid; /**< Index of unigram entry for this. (NOT dictionary id.) */ - uint16 prob3; /**< Index into array of actual trigram probs */ -}; - -/** - * Subclass of ngram_model for DMP file reading. - */ -typedef struct ngram_model_dmp_s { - ngram_model_t base; /**< Base ngram_model_t structure */ - lm3g_model_t lm3g; /**< Common lm3g_model_t structure */ - mmio_file_t *dump_mmap; /**< mmap() of dump file (or NULL if none) */ -} ngram_model_dmp_t; - -/** - * Construct a DMP format model from a generic base model. - * - * Note: If base is already a DMP format model, this just calls - * ngram_model_retain(), and any changes will also be made in the base - * model. - */ -ngram_model_dmp_t *ngram_model_dmp_build(ngram_model_t *base); - - -#endif /* __NGRAM_MODEL_DMP_H__ */ diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_internal.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_internal.h --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_internal.h 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_internal.h 2015-08-05 11:17:26.000000000 +0000 @@ -54,10 +54,11 @@ */ struct ngram_model_s { int refcount; /**< Reference count */ - int32 *n_counts; /**< Counts for 1, 2, 3, ... grams */ + uint32 *n_counts; /**< Counts for 1, 2, 3, ... grams */ int32 n_1g_alloc; /**< Number of allocated word strings (for new word addition) */ int32 n_words; /**< Number of actual word strings (NOT the same as the number of unigrams, due to class words). */ + uint8 n; /**< This is an n-gram model (1, 2, 3, ...). */ uint8 n_classes; /**< Number of classes (maximum 128) */ uint8 writable; /**< Are word strings writable? */ @@ -66,9 +67,6 @@ logmath_t *lmath; /**< Log-math object */ float32 lw; /**< Language model scaling factor */ int32 log_wip; /**< Log of word insertion penalty */ - int32 log_uw; /**< Log of unigram weight */ - int32 log_uniform; /**< Log of uniform (0-gram) probability */ - int32 log_uniform_weight; /**< Log of uniform weight (i.e. 1 - unigram weight) */ int32 log_zero; /**< Zero probability, cached here for quick lookup */ char **word_str; /**< Unigram names */ hash_table_t *wid; /**< Mapping of unigram names to word IDs. */ @@ -97,6 +95,8 @@ int32 n_hash_inuse; /**< Number of words in nword_hash */ }; +#define NGRAM_MAX_ORDER 5 + #define NGRAM_HASH_SIZE 128 #define NGRAM_BASEWID(wid) ((wid)&0xffffff) @@ -111,31 +111,24 @@ /** * Implementation-specific function for freeing an ngram_model_t. */ - void (*free)(ngram_model_t *model); + void (*free) (ngram_model_t * model); /** * Implementation-specific function for applying language model weights. */ - int (*apply_weights)(ngram_model_t *model, - float32 lw, - float32 wip, - float32 uw); + int (*apply_weights) (ngram_model_t * model, float32 lw, float32 wip); /** * Implementation-specific function for querying language model score. */ - int32 (*score)(ngram_model_t *model, - int32 wid, - int32 *history, - int32 n_hist, - int32 *n_used); + int32(*score) (ngram_model_t * model, + int32 wid, + int32 * history, int32 n_hist, int32 * n_used); /** * Implementation-specific function for querying raw language * model probability. */ - int32 (*raw_score)(ngram_model_t *model, - int32 wid, - int32 *history, - int32 n_hist, - int32 *n_used); + int32(*raw_score) (ngram_model_t * model, + int32 wid, + int32 * history, int32 n_hist, int32 * n_used); /** * Implementation-specific function for adding unigrams. * @@ -147,57 +140,15 @@ * @return The language model score (not raw log-probability) of * the new word, or 0 for failure. */ - int32 (*add_ug)(ngram_model_t *model, - int32 wid, int32 lweight); - /** - * Implementation-specific function for purging N-Gram cache - */ - void (*flush)(ngram_model_t *model); - - /** - * Implementation-specific function for iterating. - */ - ngram_iter_t * (*iter)(ngram_model_t *model, int32 wid, int32 *history, int32 n_hist); - - /** - * Implementation-specific function for iterating. - */ - ngram_iter_t * (*mgrams)(ngram_model_t *model, int32 m); - - /** - * Implementation-specific function for iterating. - */ - ngram_iter_t * (*successors)(ngram_iter_t *itor); - - /** - * Implementation-specific function for iterating. - */ - int32 const * (*iter_get)(ngram_iter_t *itor, - int32 *out_score, - int32 *out_bowt); - - /** - * Implementation-specific function for iterating. - */ - ngram_iter_t * (*iter_next)(ngram_iter_t *itor); + int32(*add_ug) (ngram_model_t * model, int32 wid, int32 lweight); /** - * Implementation-specific function for iterating. + * Implementation-specific function for purging N-Gram cache */ - void (*iter_free)(ngram_iter_t *itor); + void (*flush) (ngram_model_t * model); } ngram_funcs_t; /** - * Base iterator structure for N-grams. - */ -struct ngram_iter_s { - ngram_model_t *model; - int32 *wids; /**< Scratch space for word IDs. */ - int16 m; /**< Order of history. */ - int16 successor; /**< Is this a successor iterator? */ -}; - -/** * One class definition from a classdef file. */ typedef struct classdef_s { @@ -210,73 +161,37 @@ * Initialize the base ngram_model_t structure. */ int32 -ngram_model_init(ngram_model_t *model, - ngram_funcs_t *funcs, - logmath_t *lmath, - int32 n, int32 n_unigram); - -/** - * Read an N-Gram model from an ARPABO text file. - */ -ngram_model_t *ngram_model_arpa_read(cmd_ln_t *config, - const char *file_name, - logmath_t *lmath); -/** - * Read an N-Gram model from a Sphinx .DMP binary file. - */ -ngram_model_t *ngram_model_dmp_read(cmd_ln_t *config, - const char *file_name, - logmath_t *lmath); -/** - * Read an N-Gram model from a Sphinx .DMP32 binary file. - */ -ngram_model_t *ngram_model_dmp32_read(cmd_ln_t *config, - const char *file_name, - logmath_t *lmath); - -/** - * Write an N-Gram model to an ARPABO text file. - */ -int ngram_model_arpa_write(ngram_model_t *model, - const char *file_name); -/** - * Write an N-Gram model to a Sphinx .DMP binary file. - */ -int ngram_model_dmp_write(ngram_model_t *model, - const char *file_name); +ngram_model_init(ngram_model_t * model, + ngram_funcs_t * funcs, + logmath_t * lmath, int32 n, int32 n_unigram); /** * Read a probdef file. */ -int32 read_classdef_file(hash_table_t *classes, const char *classdef_file); +int32 read_classdef_file(hash_table_t * classes, + const char *classdef_file); /** * Free a class definition. */ -void classdef_free(classdef_t *classdef); +void classdef_free(classdef_t * classdef); /** * Allocate and initialize an N-Gram class. */ -ngram_class_t *ngram_class_new(ngram_model_t *model, int32 tag_wid, +ngram_class_t *ngram_class_new(ngram_model_t * model, int32 tag_wid, int32 start_wid, glist_t classwords); /** * Deallocate an N-Gram class. */ -void ngram_class_free(ngram_class_t *lmclass); +void ngram_class_free(ngram_class_t * lmclass); /** * Get the in-class log probability for a word in an N-Gram class. * * @return This probability, or 1 if word not found. */ -int32 ngram_class_prob(ngram_class_t *lmclass, int32 wid); - -/** - * Initialize base M-Gram iterator structure. - */ -void ngram_iter_init(ngram_iter_t *itor, ngram_model_t *model, - int m, int successor); +int32 ngram_class_prob(ngram_class_t * lmclass, int32 wid); -#endif /* __NGRAM_MODEL_INTERNAL_H__ */ +#endif /* __NGRAM_MODEL_INTERNAL_H__ */ diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_set.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_set.c --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_set.c 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_set.c 2015-08-05 11:17:26.000000000 +0000 @@ -55,18 +55,18 @@ my_compare(const void *a, const void *b) { /* Make sure floats to the beginning. */ - if (strcmp(*(char * const *)a, "") == 0) + if (strcmp(*(char *const *) a, "") == 0) return -1; - else if (strcmp(*(char * const *)b, "") == 0) + else if (strcmp(*(char *const *) b, "") == 0) return 1; else - return strcmp(*(char * const *)a, *(char * const *)b); + return strcmp(*(char *const *) a, *(char *const *) b); } static void -build_widmap(ngram_model_t *base, logmath_t *lmath, int32 n) +build_widmap(ngram_model_t * base, logmath_t * lmath, int32 n) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; ngram_model_t **models = set->lms; hash_table_t *vocab; glist_t hlist; @@ -80,33 +80,36 @@ int32 j; for (j = 0; j < models[i]->n_words; ++j) { /* Ignore collisions. */ - (void)hash_table_enter_int32(vocab, models[i]->word_str[j], j); + (void) hash_table_enter_int32(vocab, models[i]->word_str[j], + j); } } /* Create the array of words, then sort it. */ if (hash_table_lookup(vocab, "", NULL) != 0) - (void)hash_table_enter_int32(vocab, "", 0); + (void) hash_table_enter_int32(vocab, "", 0); /* Now we know the number of unigrams, initialize the base model. */ - ngram_model_init(base, &ngram_model_set_funcs, lmath, n, hash_table_inuse(vocab)); - base->writable = FALSE; /* We will reuse the pointers from the submodels. */ + ngram_model_init(base, &ngram_model_set_funcs, lmath, n, + hash_table_inuse(vocab)); + base->writable = FALSE; /* We will reuse the pointers from the submodels. */ i = 0; hlist = hash_table_tolist(vocab, NULL); for (gn = hlist; gn; gn = gnode_next(gn)) { hash_entry_t *ent = gnode_ptr(gn); - base->word_str[i++] = (char *)ent->key; + base->word_str[i++] = (char *) ent->key; } glist_free(hlist); - qsort(base->word_str, base->n_words, sizeof(*base->word_str), my_compare); + qsort(base->word_str, base->n_words, sizeof(*base->word_str), + my_compare); /* Now create the word ID mappings. */ if (set->widmap) - ckd_free_2d((void **)set->widmap); + ckd_free_2d((void **) set->widmap); set->widmap = (int32 **) ckd_calloc_2d(base->n_words, set->n_models, sizeof(**set->widmap)); for (i = 0; i < base->n_words; ++i) { int32 j; /* Also create the master wid mapping. */ - (void)hash_table_enter_int32(base->wid, base->word_str[i], i); + (void) hash_table_enter_int32(base->wid, base->word_str[i], i); /* printf("%s: %d => ", base->word_str[i], i); */ for (j = 0; j < set->n_models; ++j) { set->widmap[i][j] = ngram_wid(models[j], base->word_str[i]); @@ -118,18 +121,16 @@ } ngram_model_t * -ngram_model_set_init(cmd_ln_t *config, - ngram_model_t **models, - char **names, - const float32 *weights, - int32 n_models) +ngram_model_set_init(cmd_ln_t * config, + ngram_model_t ** models, + char **names, const float32 * weights, int32 n_models) { ngram_model_set_t *model; ngram_model_t *base; logmath_t *lmath; int32 i, n; - if (n_models == 0) /* WTF */ + if (n_models == 0) /* WTF */ return NULL; /* Do consistency checking on the models. They must all use the @@ -137,8 +138,10 @@ lmath = models[0]->lmath; for (i = 1; i < n_models; ++i) { if (logmath_get_base(models[i]->lmath) != logmath_get_base(lmath) - || logmath_get_shift(models[i]->lmath) != logmath_get_shift(lmath)) { - E_ERROR("Log-math parameters don't match, will not create LM set\n"); + || logmath_get_shift(models[i]->lmath) != + logmath_get_shift(lmath)) { + E_ERROR + ("Log-math parameters don't match, will not create LM set\n"); return NULL; } } @@ -152,7 +155,7 @@ /* Initialize weights to a uniform distribution */ model->lweights = ckd_calloc(n_models, sizeof(*model->lweights)); { - int32 uniform = logmath_log(lmath, 1.0/n_models); + int32 uniform = logmath_log(lmath, 1.0 / n_models); for (i = 0; i < n_models; ++i) model->lweights[i] = uniform; } @@ -162,7 +165,7 @@ n = 0; for (i = 0; i < n_models; ++i) { - model->lms[i] = models[i]; + model->lms[i] = ngram_model_retain(models[i]); model->names[i] = ckd_salloc(names[i]); if (weights) model->lweights[i] = logmath_log(lmath, weights[i]); @@ -179,9 +182,8 @@ } ngram_model_t * -ngram_model_set_read(cmd_ln_t *config, - const char *lmctlfile, - logmath_t *lmath) +ngram_model_set_read(cmd_ln_t * config, + const char *lmctlfile, logmath_t * lmath) { FILE *ctlfp; glist_t lms = NULL; @@ -282,7 +284,8 @@ } classdef = val; if (ngram_model_add_class(lm, str, 1.0, - classdef->words, classdef->weights, + classdef->words, + classdef->weights, classdef->n_words) < 0) { goto error_out; } @@ -326,10 +329,14 @@ } set = ngram_model_set_init(config, lm_array, name_array, NULL, n_models); + + for (i = 0; i < n_models; ++i) { + ngram_model_free(lm_array[i]); + } ckd_free(lm_array); ckd_free(name_array); } -error_out: + error_out: { gnode_t *gn; glist_t hlist; @@ -347,7 +354,7 @@ hlist = hash_table_tolist(classes, NULL); for (gn = hlist; gn; gn = gnode_next(gn)) { hash_entry_t *he = gnode_ptr(gn); - ckd_free((char *)he->key); + ckd_free((char *) he->key); classdef_free(he->val); } glist_free(hlist); @@ -358,16 +365,16 @@ } int32 -ngram_model_set_count(ngram_model_t *base) +ngram_model_set_count(ngram_model_t * base) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; return set->n_models; } ngram_model_set_iter_t * -ngram_model_set_iter(ngram_model_t *base) +ngram_model_set_iter(ngram_model_t * base) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; ngram_model_set_iter_t *itor; if (set == NULL || set->n_models == 0) @@ -378,7 +385,7 @@ } ngram_model_set_iter_t * -ngram_model_set_iter_next(ngram_model_set_iter_t *itor) +ngram_model_set_iter_next(ngram_model_set_iter_t * itor) { if (++itor->cur == itor->set->n_models) { ngram_model_set_iter_free(itor); @@ -388,24 +395,24 @@ } void -ngram_model_set_iter_free(ngram_model_set_iter_t *itor) +ngram_model_set_iter_free(ngram_model_set_iter_t * itor) { ckd_free(itor); } ngram_model_t * -ngram_model_set_iter_model(ngram_model_set_iter_t *itor, +ngram_model_set_iter_model(ngram_model_set_iter_t * itor, char const **lmname) { - if (lmname) *lmname = itor->set->names[itor->cur]; + if (lmname) + *lmname = itor->set->names[itor->cur]; return itor->set->lms[itor->cur]; } ngram_model_t * -ngram_model_set_lookup(ngram_model_t *base, - const char *name) +ngram_model_set_lookup(ngram_model_t * base, const char *name) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; int32 i; if (name == NULL) { @@ -425,10 +432,9 @@ } ngram_model_t * -ngram_model_set_select(ngram_model_t *base, - const char *name) +ngram_model_set_select(ngram_model_t * base, const char *name) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; int32 i; /* There probably won't be very many submodels. */ @@ -442,9 +448,9 @@ } const char * -ngram_model_set_current(ngram_model_t *base) +ngram_model_set_current(ngram_model_t * base) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; if (set->cur == -1) return NULL; @@ -453,10 +459,9 @@ } int32 -ngram_model_set_current_wid(ngram_model_t *base, - int32 set_wid) +ngram_model_set_current_wid(ngram_model_t * base, int32 set_wid) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; if (set->cur == -1 || set_wid >= base->n_words) return NGRAM_INVALID_WID; @@ -465,10 +470,9 @@ } int32 -ngram_model_set_known_wid(ngram_model_t *base, - int32 set_wid) +ngram_model_set_known_wid(ngram_model_t * base, int32 set_wid) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; if (set_wid >= base->n_words) return FALSE; @@ -486,11 +490,10 @@ } ngram_model_t * -ngram_model_set_interp(ngram_model_t *base, - const char **names, - const float32 *weights) +ngram_model_set_interp(ngram_model_t * base, + const char **names, const float32 * weights) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; /* If we have a set of weights here, then set them. */ if (names && weights) { @@ -509,7 +512,8 @@ } } else if (weights) { - memcpy(set->lweights, weights, set->n_models * sizeof(*set->lweights)); + memcpy(set->lweights, weights, + set->n_models * sizeof(*set->lweights)); } /* Otherwise just enable existing weights. */ set->cur = -1; @@ -517,14 +521,11 @@ } ngram_model_t * -ngram_model_set_add(ngram_model_t *base, - ngram_model_t *model, - const char *name, - float32 weight, - int reuse_widmap) - +ngram_model_set_add(ngram_model_t * base, + ngram_model_t * model, + const char *name, float32 weight, int reuse_widmap) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; float32 fprob; int32 scale, i; @@ -532,7 +533,8 @@ ++set->n_models; set->lms = ckd_realloc(set->lms, set->n_models * sizeof(*set->lms)); set->lms[set->n_models - 1] = model; - set->names = ckd_realloc(set->names, set->n_models * sizeof(*set->names)); + set->names = + ckd_realloc(set->names, set->n_models * sizeof(*set->names)); set->names[set->n_models - 1] = ckd_salloc(name); /* Expand the history mapping table if necessary. */ if (model->n > base->n) { @@ -542,7 +544,7 @@ } /* Renormalize the interpolation weights. */ - fprob = weight * 1.0 / set->n_models; + fprob = weight * 1.0f / set->n_models; set->lweights = ckd_realloc(set->lweights, set->n_models * sizeof(*set->lweights)); set->lweights[set->n_models - 1] = logmath_log(base->lmath, fprob); @@ -558,16 +560,17 @@ int32 **new_widmap; /* Tack another column onto the widmap array. */ - new_widmap = (int32 **)ckd_calloc_2d(base->n_words, set->n_models, - sizeof (**new_widmap)); + new_widmap = (int32 **) ckd_calloc_2d(base->n_words, set->n_models, + sizeof(**new_widmap)); for (i = 0; i < base->n_words; ++i) { /* Copy all the existing mappings. */ memcpy(new_widmap[i], set->widmap[i], (set->n_models - 1) * sizeof(**new_widmap)); /* Create the new mapping. */ - new_widmap[i][set->n_models-1] = ngram_wid(model, base->word_str[i]); + new_widmap[i][set->n_models - 1] = + ngram_wid(model, base->word_str[i]); } - ckd_free_2d((void **)set->widmap); + ckd_free_2d((void **) set->widmap); set->widmap = new_widmap; } else { @@ -577,11 +580,10 @@ } ngram_model_t * -ngram_model_set_remove(ngram_model_t *base, - const char *name, - int reuse_widmap) +ngram_model_set_remove(ngram_model_t * base, + const char *name, int reuse_widmap) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; ngram_model_t *submodel; int32 lmidx, scale, n, i; float32 fprob; @@ -595,7 +597,7 @@ /* Renormalize the interpolation weights by scaling them by * 1/(1-fprob) */ - fprob = logmath_exp(base->lmath, set->lweights[lmidx]); + fprob = (float32) logmath_exp(base->lmath, set->lweights[lmidx]); scale = logmath_log(base->lmath, 1.0 - fprob); /* Remove it from the array of lms, renormalize remaining weights, @@ -606,9 +608,9 @@ set->names[lmidx] = NULL; for (i = 0; i < set->n_models; ++i) { if (i >= lmidx) { - set->lms[i] = set->lms[i+1]; - set->names[i] = set->names[i+1]; - set->lweights[i] = set->lweights[i+1]; + set->lms[i] = set->lms[i + 1]; + set->names[i] = set->names[i + 1]; + set->lweights[i] = set->lweights[i + 1]; } set->lweights[i] -= scale; if (set->lms[i]->n > n) @@ -634,11 +636,10 @@ } void -ngram_model_set_map_words(ngram_model_t *base, - const char **words, - int32 n_words) +ngram_model_set_map_words(ngram_model_t * base, + const char **words, int32 n_words) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; int32 i; /* Recreate the word mapping. */ @@ -648,16 +649,18 @@ } } ckd_free(base->word_str); - ckd_free_2d((void **)set->widmap); + ckd_free_2d((void **) set->widmap); base->writable = TRUE; base->n_words = base->n_1g_alloc = n_words; base->word_str = ckd_calloc(n_words, sizeof(*base->word_str)); - set->widmap = (int32 **)ckd_calloc_2d(n_words, set->n_models, sizeof(**set->widmap)); + set->widmap = + (int32 **) ckd_calloc_2d(n_words, set->n_models, + sizeof(**set->widmap)); hash_table_empty(base->wid); for (i = 0; i < n_words; ++i) { int32 j; base->word_str[i] = ckd_salloc(words[i]); - (void)hash_table_enter_int32(base->wid, base->word_str[i], i); + (void) hash_table_enter_int32(base->wid, base->word_str[i], i); for (j = 0; j < set->n_models; ++j) { set->widmap[i][j] = ngram_wid(set->lms[j], base->word_str[i]); } @@ -665,24 +668,23 @@ } static int -ngram_model_set_apply_weights(ngram_model_t *base, float32 lw, - float32 wip, float32 uw) +ngram_model_set_apply_weights(ngram_model_t * base, float32 lw, + float32 wip) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; int32 i; /* Apply weights to each sub-model. */ for (i = 0; i < set->n_models; ++i) - ngram_model_apply_weights(set->lms[i], lw, wip, uw); + ngram_model_apply_weights(set->lms[i], lw, wip); return 0; } static int32 -ngram_model_set_score(ngram_model_t *base, int32 wid, - int32 *history, int32 n_hist, - int32 *n_used) +ngram_model_set_score(ngram_model_t * base, int32 wid, + int32 * history, int32 n_hist, int32 * n_used) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; int32 mapwid; int32 score; int32 i; @@ -705,9 +707,10 @@ set->maphist[j] = set->widmap[history[j]][i]; } score = logmath_add(base->lmath, score, - set->lweights[i] + + set->lweights[i] + ngram_ng_score(set->lms[i], - mapwid, set->maphist, n_hist, n_used)); + mapwid, set->maphist, + n_hist, n_used)); } } else { @@ -728,11 +731,10 @@ } static int32 -ngram_model_set_raw_score(ngram_model_t *base, int32 wid, - int32 *history, int32 n_hist, - int32 *n_used) +ngram_model_set_raw_score(ngram_model_t * base, int32 wid, + int32 * history, int32 n_hist, int32 * n_used) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; int32 mapwid; int32 score; int32 i; @@ -755,9 +757,10 @@ set->maphist[j] = set->widmap[history[j]][i]; } score = logmath_add(base->lmath, score, - set->lweights[i] + + set->lweights[i] + ngram_ng_prob(set->lms[i], - mapwid, set->maphist, n_hist, n_used)); + mapwid, set->maphist, n_hist, + n_used)); } } else { @@ -778,10 +781,9 @@ } static int32 -ngram_model_set_add_ug(ngram_model_t *base, - int32 wid, int32 lweight) +ngram_model_set_add_ug(ngram_model_t * base, int32 wid, int32 lweight) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; int32 *newwid; int32 i, prob; @@ -799,8 +801,10 @@ newwid[i] = ngram_wid(set->lms[i], base->word_str[wid]); if (newwid[i] == NGRAM_INVALID_WID) { /* Add it to the submodel. */ - newwid[i] = ngram_model_add_word(set->lms[i], base->word_str[wid], - logmath_exp(base->lmath, lweight)); + newwid[i] = + ngram_model_add_word(set->lms[i], base->word_str[wid], + (float32) logmath_exp(base->lmath, + lweight)); if (newwid[i] == NGRAM_INVALID_WID) { ckd_free(newwid); return base->log_zero; @@ -808,11 +812,14 @@ } /* Now get the unigram probability for the new word and either * interpolate it or use it (if this is the current model). */ - wprob = ngram_ng_prob(set->lms[i], newwid[i], NULL, 0, &n_hist); + wprob = + ngram_ng_prob(set->lms[i], newwid[i], NULL, 0, &n_hist); if (set->cur == i) prob = wprob; else if (set->cur == -1) - prob = logmath_add(base->lmath, prob, set->lweights[i] + wprob); + prob = + logmath_add(base->lmath, prob, + set->lweights[i] + wprob); } else { newwid[i] = NGRAM_INVALID_WID; @@ -821,11 +828,11 @@ /* Okay we have the word IDs for this in all the submodels. Now do some complicated memory mangling to add this to the widmap. */ - set->widmap = ckd_realloc(set->widmap, base->n_words * sizeof(*set->widmap)); - set->widmap[0] = ckd_realloc(set->widmap[0], - base->n_words - * set->n_models - * sizeof(**set->widmap)); + set->widmap = + ckd_realloc(set->widmap, base->n_words * sizeof(*set->widmap)); + set->widmap[0] = + ckd_realloc(set->widmap[0], + base->n_words * set->n_models * sizeof(**set->widmap)); for (i = 0; i < base->n_words; ++i) set->widmap[i] = set->widmap[0] + i * set->n_models; memcpy(set->widmap[wid], newwid, set->n_models * sizeof(*newwid)); @@ -834,9 +841,9 @@ } static void -ngram_model_set_free(ngram_model_t *base) +ngram_model_set_free(ngram_model_t * base) { - ngram_model_set_t *set = (ngram_model_set_t *)base; + ngram_model_set_t *set = (ngram_model_set_t *) base; int32 i; for (i = 0; i < set->n_models; ++i) @@ -847,24 +854,13 @@ ckd_free(set->names); ckd_free(set->lweights); ckd_free(set->maphist); - ckd_free_2d((void **)set->widmap); -} - -static void -ngram_model_set_flush(ngram_model_t *base) -{ - ngram_model_set_t *set = (ngram_model_set_t *)base; - int32 i; - - for (i = 0; i < set->n_models; ++i) - ngram_model_flush(set->lms[i]); + ckd_free_2d((void **) set->widmap); } static ngram_funcs_t ngram_model_set_funcs = { - ngram_model_set_free, /* free */ - ngram_model_set_apply_weights, /* apply_weights */ - ngram_model_set_score, /* score */ - ngram_model_set_raw_score, /* raw_score */ - ngram_model_set_add_ug, /* add_ug */ - ngram_model_set_flush /* flush */ + ngram_model_set_free, /* free */ + ngram_model_set_apply_weights, /* apply_weights */ + ngram_model_set_score, /* score */ + ngram_model_set_raw_score, /* raw_score */ + ngram_model_set_add_ug, /* add_ug */ }; diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_set.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_set.h --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_set.h 2012-12-05 14:06:07.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_set.h 2015-08-05 11:17:26.000000000 +0000 @@ -43,7 +43,6 @@ #define __NGRAM_MODEL_SET_H__ #include "ngram_model_internal.h" -#include "lm3g_model.h" /** * Subclass of ngram_model for grouping language models. @@ -68,4 +67,4 @@ int32 cur; }; -#endif /* __NGRAM_MODEL_SET_H__ */ +#endif /* __NGRAM_MODEL_SET_H__ */ diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_trie.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_trie.c --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_trie.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_trie.c 2015-08-05 11:17:26.000000000 +0000 @@ -0,0 +1,800 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 + +#include +#include +#include +#include +#include + +#include "ngram_model_trie.h" + +static const char trie_hdr[] = "Trie Language Model"; +static const char dmp_hdr[] = "Darpa Trigram LM"; +static ngram_funcs_t ngram_model_trie_funcs; + +/* + * Read and return #unigrams, #bigrams, #trigrams as stated in input file. + */ +static int +read_counts_arpa(lineiter_t ** li, uint32 * counts, int *order) +{ + int32 ngram, prev_ngram; + uint32 ngram_cnt; + + /* skip file until past the '\data\' marker */ + while (*li) { + string_trim((*li)->buf, STRING_BOTH); + if (strcmp((*li)->buf, "\\data\\") == 0) + break; + *li = lineiter_next(*li); + } + + if (*li == NULL || strcmp((*li)->buf, "\\data\\") != 0) { + E_INFO("No \\data\\ mark in LM file\n"); + return -1; + } + + prev_ngram = 0; + *order = 0; + while ((*li = lineiter_next(*li))) { + if (sscanf((*li)->buf, "ngram %d=%d", &ngram, &ngram_cnt) != 2) + break; + if (ngram != prev_ngram + 1) { + E_ERROR + ("Ngram counts in LM file is not in order. %d goes after %d\n", + ngram, prev_ngram); + return -1; + } + prev_ngram = ngram; + counts[*order] = ngram_cnt; + (*order)++; + } + + if (*li == NULL) { + E_ERROR("EOF while reading ngram counts\n"); + return -1; + } + + /* Position iterator to the unigrams header '\1-grams:\' */ + while ((*li = lineiter_next(*li))) { + string_trim((*li)->buf, STRING_BOTH); + if (strcmp((*li)->buf, "\\1-grams:") == 0) + break; + } + + if (*li == NULL) { + E_ERROR_SYSTEM("Failed to read \\1-grams: mark"); + return -1; + } + + return 0; +} + +int +string_comparator(const void *a, const void *b) +{ + const char **ia = (const char **) a; + const char **ib = (const char **) b; + return strcmp(*ia, *ib); +} + +static void +read_1grams_arpa(lineiter_t ** li, uint32 count, ngram_model_t * base, + unigram_t * unigrams) +{ + uint32 i; + int n; + int n_parts; + char *wptr[3]; + + n_parts = 2; + for (i = 0; i < count; i++) { + *li = lineiter_next(*li); + if (*li == NULL) { + E_ERROR + ("Unexpected end of ARPA file. Failed to read %dth unigram\n", + i + 1); + break; + } + string_trim((*li)->buf, STRING_BOTH); + if ((n = str2words((*li)->buf, wptr, 3)) < n_parts) { + if ((*li)->buf[0] != '\0') + E_WARN("Format error; unigram ignored: %s\n", (*li)->buf); + continue; + } + else { + unigram_t *unigram = &unigrams[i]; + unigram->prob = + logmath_log10_to_log_float(base->lmath, atof_c(wptr[0])); + if (unigram->prob > 0) { + E_WARN("Unigram [%s] has positive probability. Zeroize\n", + wptr[1]); + unigram->prob = 0; + } + if (n == n_parts + 1) { + unigram->bo = + logmath_log10_to_log_float(base->lmath, + atof_c(wptr[2])); + } + else { + unigram->bo = 0.0f; + } + //TODO classify float with fpclassify and warn if bad value occurred + base->word_str[i] = ckd_salloc(wptr[1]); + } + } + //fill hash-table that maps unigram names to their word ids + for (i = 0; i < count; i++) { + if ((hash_table_enter + (base->wid, base->word_str[i], + (void *) (long) i)) != (void *) (long) i) { + E_WARN("Duplicate word in dictionary: %s\n", + base->word_str[i]); + } + } +} + +ngram_model_t * +ngram_model_trie_read_arpa(cmd_ln_t * config, + const char *path, logmath_t * lmath) +{ + FILE *fp; + lineiter_t *li; + ngram_model_trie_t *model; + ngram_model_t *base; + ngram_raw_t **raw_ngrams; + int32 is_pipe; + uint32 counts[NGRAM_MAX_ORDER]; + uint32 fixed_counts[NGRAM_MAX_ORDER]; + int order; + int i; + + E_INFO("Trying to read LM in arpa format\n"); + if ((fp = fopen_comp(path, "r", &is_pipe)) == NULL) { + E_ERROR("File %s not found\n", path); + return NULL; + } + + model = (ngram_model_trie_t *) ckd_calloc(1, sizeof(*model)); + li = lineiter_start(fp); + /* Read n-gram counts from file */ + if (read_counts_arpa(&li, counts, &order) == -1) { + ckd_free(model); + lineiter_free(li); + fclose_comp(fp, is_pipe); + return NULL; + } + + E_INFO("LM of order %d\n", order); + for (i = 0; i < order; i++) { + E_INFO("#%d-grams: %d\n", i + 1, counts[i]); + } + + base = &model->base; + ngram_model_init(base, &ngram_model_trie_funcs, lmath, order, + (int32) counts[0]); + base->writable = TRUE; + + model->trie = lm_trie_create(counts[0], QUANT_16, order); + read_1grams_arpa(&li, counts[0], base, model->trie->unigrams); + + if (order > 1) { + raw_ngrams = + ngrams_raw_read_arpa(&li, base->lmath, counts, order, + base->wid); + ngrams_raw_fix_counts(raw_ngrams, counts, fixed_counts, order); + for (i = 0; i < order; i++) { + base->n_counts[i] = fixed_counts[i]; + } + lm_trie_alloc_ngram(model->trie, fixed_counts, order); + lm_trie_build(model->trie, raw_ngrams, counts, order); + ngrams_raw_free(raw_ngrams, counts, order); + } + + lineiter_free(li); + fclose_comp(fp, is_pipe); + + return base; +} + +static void +fill_raw_ngram(lm_trie_t * trie, logmath_t * lmath, + ngram_raw_t * raw_ngrams, uint32 * raw_ngram_idx, + uint32 * counts, node_range_t range, uint32 * hist, + int n_hist, int order, int max_order) +{ + if (n_hist > 0 && range.begin == range.end) { + return; + } + if (n_hist == 0) { + uint32 i; + for (i = 0; i < counts[0]; i++) { + node_range_t node; + unigram_find(trie->unigrams, i, &node); + hist[0] = i; + fill_raw_ngram(trie, lmath, raw_ngrams, raw_ngram_idx, counts, + node, hist, 1, order, max_order); + } + } + else if (n_hist < order - 1) { + uint32 ptr; + node_range_t node; + bitarr_address_t address; + uint32 new_word; + middle_t *middle = &trie->middle_begin[n_hist - 1]; + for (ptr = range.begin; ptr < range.end; ptr++) { + address.base = middle->base.base; + address.offset = ptr * middle->base.total_bits; + new_word = + bitarr_read_int25(address, middle->base.word_bits, + middle->base.word_mask); + hist[n_hist] = new_word; + address.offset += middle->base.word_bits + middle->quant_bits; + node.begin = + bitarr_read_int25(address, middle->next_mask.bits, + middle->next_mask.mask); + address.offset = + (ptr + 1) * middle->base.total_bits + + middle->base.word_bits + middle->quant_bits; + node.end = + bitarr_read_int25(address, middle->next_mask.bits, + middle->next_mask.mask); + fill_raw_ngram(trie, lmath, raw_ngrams, raw_ngram_idx, counts, + node, hist, n_hist + 1, order, max_order); + } + } + else { + bitarr_address_t address; + uint32 ptr; + float prob, backoff; + int i; + assert(n_hist == order - 1); + for (ptr = range.begin; ptr < range.end; ptr++) { + ngram_raw_t *raw_ngram = &raw_ngrams[*raw_ngram_idx]; + raw_ngram->weights = + (float *) ckd_calloc(order == max_order ? 1 : 2, + sizeof(*raw_ngram->weights)); + if (order == max_order) { + longest_t *longest = trie->longest; //access + address.base = longest->base.base; + address.offset = ptr * longest->base.total_bits; + hist[n_hist] = + bitarr_read_int25(address, longest->base.word_bits, + longest->base.word_mask); + address.offset += longest->base.word_bits; + prob = lm_trie_quant_lpread(trie->quant, address); + } + else { + middle_t *middle = &trie->middle_begin[n_hist - 1]; + address.base = middle->base.base; + address.offset = ptr * middle->base.total_bits; + hist[n_hist] = + bitarr_read_int25(address, middle->base.word_bits, + middle->base.word_mask); + address.offset += middle->base.word_bits; + prob = + lm_trie_quant_mpread(trie->quant, address, n_hist - 1); + backoff = + lm_trie_quant_mboread(trie->quant, address, + n_hist - 1); + raw_ngram->weights[1] = + (float) logmath_log_float_to_log10(lmath, backoff); + } + raw_ngram->weights[0] = + (float) logmath_log_float_to_log10(lmath, prob); + raw_ngram->words = + (uint32 *) ckd_calloc(order, sizeof(*raw_ngram->words)); + for (i = 0; i <= n_hist; i++) { + raw_ngram->words[i] = hist[n_hist - i]; + } + (*raw_ngram_idx)++; + } + } +} + +int +ngram_model_trie_write_arpa(ngram_model_t * base, const char *path) +{ + int i; + uint32 j; + ngram_model_trie_t *model = (ngram_model_trie_t *) base; + FILE *fp = fopen(path, "w"); + if (!fp) { + E_ERROR("Unable to open %s to write arpa LM from trie\n", path); + return -1; + } + fprintf(fp, + "This is an ARPA-format language model file, generated by CMU Sphinx\n"); + /* Write N-gram counts. */ + fprintf(fp, "\\data\\\n"); + for (i = 0; i < base->n; ++i) { + fprintf(fp, "ngram %d=%d\n", i + 1, base->n_counts[i]); + } + /* Write 1-grams */ + fprintf(fp, "\n\\1-grams:\n"); + for (j = 0; j < base->n_counts[0]; j++) { + unigram_t *unigram = &model->trie->unigrams[j]; + fprintf(fp, "%.4f\t%s", + logmath_log_float_to_log10(base->lmath, unigram->prob), + base->word_str[j]); + if (base->n > 1) { + fprintf(fp, "\t%.4f", + logmath_log_float_to_log10(base->lmath, unigram->bo)); + } + fprintf(fp, "\n"); + } + /* Write ngrams */ + if (base->n > 1) { + for (i = 2; i <= base->n; ++i) { + ngram_raw_t *raw_ngrams = + (ngram_raw_t *) ckd_calloc((size_t) base->n_counts[i - 1], + sizeof(*raw_ngrams)); + uint32 raw_ngram_idx; + uint32 j; + uint32 hist[NGRAM_MAX_ORDER]; + node_range_t range; + raw_ngram_idx = 0; + range.begin = range.end = 0; //initialize to disable warning + //we need to iterate over a trie here. recursion should do the job + fill_raw_ngram(model->trie, base->lmath, raw_ngrams, + &raw_ngram_idx, base->n_counts, range, hist, 0, + i, base->n); + assert(raw_ngram_idx == base->n_counts[i - 1]); + ngram_comparator(NULL, &i); //setting up order in comparator + qsort(raw_ngrams, (size_t) base->n_counts[i - 1], + sizeof(ngram_raw_t), &ngram_comparator); + //now we write sorted ngrams to file + fprintf(fp, "\n\\%d-grams:\n", i); + for (j = 0; j < base->n_counts[i - 1]; j++) { + int k; + fprintf(fp, "%.4f", raw_ngrams[j].weights[0]); + for (k = 0; k < i; k++) { + fprintf(fp, "\t%s", + base->word_str[raw_ngrams[j].words[k]]); + } + ckd_free(raw_ngrams[j].words); + if (i < base->n) { + fprintf(fp, "\t%.4f", raw_ngrams[j].weights[1]); + } + ckd_free(raw_ngrams[j].weights); + fprintf(fp, "\n"); + } + ckd_free(raw_ngrams); + } + } + fprintf(fp, "\n\\end\\\n"); + return fclose(fp); +} + +static void +read_word_str(ngram_model_t * base, FILE * fp) +{ + int32 k; + uint32 i, j; + char *tmp_word_str; + /* read ascii word strings */ + base->writable = TRUE; + fread(&k, sizeof(k), 1, fp); + tmp_word_str = (char *) ckd_calloc((size_t) k, 1); + fread(tmp_word_str, 1, (size_t) k, fp); + + /* First make sure string just read contains n_counts[0] words (PARANOIA!!) */ + for (i = 0, j = 0; i < (uint32) k; i++) + if (tmp_word_str[i] == '\0') + j++; + if (j != base->n_counts[0]) { + E_ERROR + ("Error reading word strings (%d doesn't match n_unigrams %d)\n", + j, base->n_counts[0]); + } + + /* Break up string just read into words */ + j = 0; + for (i = 0; i < base->n_counts[0]; i++) { + base->word_str[i] = ckd_salloc(tmp_word_str + j); + if (hash_table_enter(base->wid, base->word_str[i], + (void *) (long) i) != (void *) (long) i) { + E_WARN("Duplicate word in dictionary: %s\n", + base->word_str[i]); + } + j += strlen(base->word_str[i]) + 1; + } + free(tmp_word_str); +} + +ngram_model_t * +ngram_model_trie_read_bin(cmd_ln_t * config, + const char *path, logmath_t * lmath) +{ + int32 is_pipe; + FILE *fp; + size_t hdr_size; + char *hdr; + int cmp_res; + uint8 i, order; + uint32 counts[NGRAM_MAX_ORDER]; + ngram_model_trie_t *model; + ngram_model_t *base; + + E_INFO("Trying to read LM in trie binary format\n"); + if ((fp = fopen_comp(path, "rb", &is_pipe)) == NULL) { + E_ERROR("File %s not found\n", path); + return NULL; + } + hdr_size = strlen(trie_hdr); + hdr = (char *) ckd_calloc(hdr_size + 1, sizeof(*hdr)); + fread(hdr, sizeof(*hdr), hdr_size, fp); + cmp_res = strcmp(hdr, trie_hdr); + ckd_free(hdr); + if (cmp_res) { + E_INFO("Header doesn't match\n"); + fclose_comp(fp, is_pipe); + return NULL; + } + model = (ngram_model_trie_t *) ckd_calloc(1, sizeof(*model)); + base = &model->base; + fread(&order, sizeof(order), 1, fp); + for (i = 0; i < order; i++) { + fread(&counts[i], sizeof(counts[i]), 1, fp); + } + ngram_model_init(base, &ngram_model_trie_funcs, lmath, order, + (int32) counts[0]); + for (i = 0; i < order; i++) { + base->n_counts[i] = counts[i]; + } + + model->trie = lm_trie_read_bin(counts, order, fp); + read_word_str(base, fp); + fclose_comp(fp, is_pipe); + + return base; +} + +static void +write_word_str(FILE * fp, ngram_model_t * model) +{ + int32 k; + uint32 i; + + k = 0; + for (i = 0; i < model->n_counts[0]; i++) + k += strlen(model->word_str[i]) + 1; + fwrite(&k, sizeof(k), 1, fp); + for (i = 0; i < model->n_counts[0]; i++) + fwrite(model->word_str[i], 1, strlen(model->word_str[i]) + 1, fp); +} + +int +ngram_model_trie_write_bin(ngram_model_t * base, const char *path) +{ + int i; + int32 is_pipe; + ngram_model_trie_t *model = (ngram_model_trie_t *) base; + FILE *fp = fopen_comp(path, "wb", &is_pipe); + if (!fp) { + E_ERROR("Unable to open %s to write binary trie LM\n", path); + return -1; + } + + fwrite(trie_hdr, sizeof(*trie_hdr), strlen(trie_hdr), fp); + fwrite(&model->base.n, sizeof(model->base.n), 1, fp); + for (i = 0; i < model->base.n; i++) { + fwrite(&model->base.n_counts[i], sizeof(model->base.n_counts[i]), + 1, fp); + } + lm_trie_write_bin(model->trie, base->n_counts[0], fp); + write_word_str(fp, base); + fclose_comp(fp, is_pipe); + return 0; +} + +ngram_model_t * +ngram_model_trie_read_dmp(cmd_ln_t * config, + const char *file_name, logmath_t * lmath) +{ + uint8 do_swap; + int32 is_pipe; + int32 k; + uint32 j; + int32 vn, ts; + int32 count; + uint32 counts[3]; + uint32 fixed_counts[3]; + uint32 *unigram_next; + int i, order; + char str[1024]; + FILE *fp; + ngram_model_trie_t *model; + ngram_model_t *base; + ngram_raw_t **raw_ngrams; + + E_INFO("Trying to read LM in DMP format\n"); + if ((fp = fopen_comp(file_name, "rb", &is_pipe)) == NULL) { + E_ERROR("Dump file %s not found\n", file_name); + return NULL; + } + + do_swap = FALSE; + fread(&k, sizeof(k), 1, fp); + if (k != strlen(dmp_hdr) + 1) { + SWAP_INT32(&k); + if (k != strlen(dmp_hdr) + 1) { + E_ERROR + ("Wrong magic header size number %x: %s is not a dump file\n", + k, file_name); + return NULL; + } + do_swap = 1; + } + if (fread(str, 1, k, fp) != (size_t) k) { + E_ERROR("Cannot read header\n"); + return NULL; + } + if (strncmp(str, dmp_hdr, k) != 0) { + E_ERROR("Wrong header %s: %s is not a dump file\n", dmp_hdr); + return NULL; + } + + if (fread(&k, sizeof(k), 1, fp) != 1) + return NULL; + if (do_swap) + SWAP_INT32(&k); + if (fread(str, 1, k, fp) != (size_t) k) { + E_ERROR("Cannot read LM filename in header\n"); + return NULL; + } + + /* read version#, if present (must be <= 0) */ + if (fread(&vn, sizeof(vn), 1, fp) != 1) + return NULL; + if (do_swap) + SWAP_INT32(&vn); + if (vn <= 0) { + /* read and don't compare timestamps (we don't care) */ + if (fread(&ts, sizeof(ts), 1, fp) != 1) + return NULL; + if (do_swap) + SWAP_INT32(&ts); + + /* read and skip format description */ + for (;;) { + if (fread(&k, sizeof(k), 1, fp) != 1) + return NULL; + if (do_swap) + SWAP_INT32(&k); + if (k == 0) + break; + if (fread(str, 1, k, fp) != (size_t) k) { + E_ERROR("Failed to read word\n"); + return NULL; + } + } + /* read model->ucount */ + if (fread(&count, sizeof(count), 1, fp) != 1) + return NULL; + if (do_swap) + SWAP_INT32(&count); + counts[0] = count; + } + else { + counts[0] = vn; + } + /* read model->bcount, tcount */ + if (fread(&count, sizeof(count), 1, fp) != 1) + return NULL; + if (do_swap) + SWAP_INT32(&count); + counts[1] = count; + if (fread(&count, sizeof(count), 1, fp) != 1) + return NULL; + if (do_swap) + SWAP_INT32(&count); + counts[2] = count; + E_INFO("ngrams 1=%d, 2=%d, 3=%d\n", counts[0], counts[1], counts[2]); + + model = (ngram_model_trie_t *) ckd_calloc(1, sizeof(*model)); + base = &model->base; + if (counts[2] > 0) + order = 3; + else if (counts[1] > 0) + order = 2; + else + order = 1; + ngram_model_init(base, &ngram_model_trie_funcs, lmath, order, + (int32) counts[0]); + + model->trie = lm_trie_create(counts[0], QUANT_16, order); + //read unigrams. no tricks here + unigram_next = + (uint32 *) ckd_calloc((int32) counts[0] + 1, sizeof(unigram_next)); + for (j = 0; j <= (int32) counts[0]; j++) { + int32 bigrams; + dmp_weight_t weight; + /* Skip over the mapping ID, we don't care about it. */ + fread(&bigrams, sizeof(int32), 1, fp); + /* Read the weights from actual unigram structure. */ + fread(&weight, sizeof(weight), 1, fp); + if (do_swap) + SWAP_INT32(&weight.l); + weight.f = logmath_log10_to_log_float(lmath, weight.f); + model->trie->unigrams[j].prob = weight.f; + fread(&weight, sizeof(weight), 1, fp); + if (do_swap) + SWAP_INT32(&weight.l); + weight.f = logmath_log10_to_log_float(lmath, weight.f); + model->trie->unigrams[j].bo = weight.f; + //store pointer to dmp next to recognize wid + fread(&bigrams, sizeof(int32), 1, fp); + if (do_swap) + SWAP_INT32(&bigrams); + model->trie->unigrams[j].next = bigrams; + unigram_next[j] = bigrams; + } + + if (order > 1) { + raw_ngrams = + ngrams_raw_read_dmp(fp, lmath, counts, order, unigram_next, + do_swap); + ngrams_raw_fix_counts(raw_ngrams, counts, fixed_counts, order); + for (i = 0; i < order; i++) { + base->n_counts[i] = fixed_counts[i]; + } + + //build reversed trie + lm_trie_alloc_ngram(model->trie, order > 2 ? fixed_counts : counts, + order); + lm_trie_build(model->trie, raw_ngrams, counts, order); + counts[1]++; + + //free raw ngrams + ngrams_raw_free(raw_ngrams, counts, order); + } + ckd_free(unigram_next); + + /* read ascii word strings */ + read_word_str(base, fp); + + fclose_comp(fp, is_pipe); + return base; +} + +static void +ngram_model_trie_free(ngram_model_t * base) +{ + ngram_model_trie_t *model = (ngram_model_trie_t *) base; + lm_trie_free(model->trie); +} + +static int +trie_apply_weights(ngram_model_t * base, float32 lw, float32 wip) +{ + //just update weights that are going to be used on score calculation + base->lw = lw; + base->log_wip = logmath_log(base->lmath, wip); + return 0; +} + +static int32 +weight_score(ngram_model_t * base, int32 score) +{ + return (int32) (score * base->lw + base->log_wip); +} + +static int32 +ngram_model_trie_raw_score(ngram_model_t * base, int32 wid, int32 * hist, + int32 n_hist, int32 * n_used) +{ + int32 i; + ngram_model_trie_t *model = (ngram_model_trie_t *) base; + + if (n_hist > model->base.n - 1) + n_hist = model->base.n - 1; + for (i = 0; i < n_hist; i++) { + if (hist[i] < 0) { + n_hist = i; + break; + } + } + + return (int32) lm_trie_score(model->trie, model->base.n, wid, hist, + n_hist, n_used); +} + +static int32 +ngram_model_trie_score(ngram_model_t * base, int32 wid, int32 * hist, + int32 n_hist, int32 * n_used) +{ + return weight_score(base, + ngram_model_trie_raw_score(base, wid, hist, n_hist, + n_used)); +} + +static int32 +lm_trie_add_ug(ngram_model_t * base, int32 wid, int32 lweight) +{ + ngram_model_trie_t *model = (ngram_model_trie_t *) base; + + /* This would be very bad if this happened! */ + assert(!NGRAM_IS_CLASSWID(wid)); + + /* Reallocate unigram array. */ + model->trie->unigrams = + (unigram_t *) ckd_realloc(model->trie->unigrams, + sizeof(*model->trie->unigrams) * + (base->n_1g_alloc + 1)); + memset(model->trie->unigrams + (base->n_counts[0] + 1), 0, + (size_t) (base->n_1g_alloc - + base->n_counts[0]) * sizeof(*model->trie->unigrams)); + ++base->n_counts[0]; + lweight += logmath_log(base->lmath, 1.0 / base->n_counts[0]); + model->trie->unigrams[wid + 1].next = model->trie->unigrams[wid].next; + model->trie->unigrams[wid].prob = (float) lweight; + /* This unigram by definition doesn't participate in any bigrams, + * so its backoff weight is undefined and next pointer same as in finish unigram*/ + model->trie->unigrams[wid].bo = 0; + /* Finally, increase the unigram count */ + /* FIXME: Note that this can actually be quite bogus due to the + * presence of class words. If wid falls outside the unigram + * count, increase it to compensate, at the cost of no longer + * really knowing how many unigrams we have :( */ + if ((uint32) wid >= base->n_counts[0]) + base->n_counts[0] = wid + 1; + + return (int32) weight_score(base, lweight); +} + +static void +lm_trie_flush(ngram_model_t * base) +{ + ngram_model_trie_t *model = (ngram_model_trie_t *) base; + lm_trie_t *trie = model->trie; + memset(trie->prev_hist, -1, sizeof(trie->prev_hist)); //prepare request history + memset(trie->backoff, 0, sizeof(trie->backoff)); + return; +} + +static ngram_funcs_t ngram_model_trie_funcs = { + ngram_model_trie_free, /* free */ + trie_apply_weights, /* apply_weights */ + ngram_model_trie_score, /* score */ + ngram_model_trie_raw_score, /* raw_score */ + lm_trie_add_ug, /* add_ug */ + lm_trie_flush /* flush */ +}; diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_trie.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_trie.h --- sphinxbase-0.8/src/libsphinxbase/lm/ngram_model_trie.h 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngram_model_trie.h 2015-08-05 11:17:26.000000000 +0000 @@ -0,0 +1,82 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 __NGRAM_MODEL_TRIE_H__ +#define __NGRAM_MODEL_TRIE_H__ + +#include +#include + +#include "ngram_model_internal.h" +#include "lm_trie.h" + +typedef struct ngram_model_trie_s { + ngram_model_t base; /**< Base ngram_model_t structure */ + lm_trie_t *trie; /**< Trie structure that stores ngram relations and weights */ +} ngram_model_trie_t; + +/** + * Read N-Gram model from and ARPABO text file and arrange it in trie structure + */ +ngram_model_t *ngram_model_trie_read_arpa(cmd_ln_t * config, + const char *path, + logmath_t * lmath); + +/** + * Write N-Gram model stored in trie structure in ARPABO format + */ +int ngram_model_trie_write_arpa(ngram_model_t * base, const char *path); + +/** + * Read N-Gram model from the binary file and arrange it in a trie structure + */ +ngram_model_t *ngram_model_trie_read_bin(cmd_ln_t * config, + const char *path, + logmath_t * lmath); + +/** + * Write trie to binary file + */ +int ngram_model_trie_write_bin(ngram_model_t * model, const char *path); + +/** + * Read N-Gram model from DMP file and arrange it in trie structure + */ +ngram_model_t *ngram_model_trie_read_dmp(cmd_ln_t * config, + const char *file_name, + logmath_t * lmath); + +#endif /* __NGRAM_MODEL_TRIE_H__ */ diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngrams_raw.c sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngrams_raw.c --- sphinxbase-0.8/src/libsphinxbase/lm/ngrams_raw.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngrams_raw.c 2015-08-05 12:19:55.000000000 +0000 @@ -0,0 +1,470 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 +#include + +#include +#include +#include +#include +#include +#include + +#include "ngram_model_internal.h" +#include "ngrams_raw.h" + +int +ngram_comparator(const void *first_void, const void *second_void) +{ + static int order = -1; + uint32 *first, *second, *end; + + if (first_void == NULL) { + //technical usage, setuping order + order = *(int *) second_void; + return 0; + } + if (order < 2) { + E_ERROR("Order for ngram comprator was not set\n"); + return 0; + } + first = ((ngram_raw_t *) first_void)->words; + second = ((ngram_raw_t *) second_void)->words; + end = first + order; + for (; first != end; ++first, ++second) { + if (*first < *second) + return -1; + if (*first > *second) + return 1; + } + return 0; +} + +int +ngram_ord_comparator(void *a_raw, void *b_raw) +{ + ngram_raw_ord_t *a = (ngram_raw_ord_t *) a_raw; + ngram_raw_ord_t *b = (ngram_raw_ord_t *) b_raw; + int a_w_ptr = 0; + int b_w_ptr = 0; + while (a_w_ptr < a->order && b_w_ptr < b->order) { + if (a->instance.words[a_w_ptr] == b->instance.words[b_w_ptr]) { + a_w_ptr++; + b_w_ptr++; + continue; + } + if (a->instance.words[a_w_ptr] < b->instance.words[b_w_ptr]) + return 1; + else + return -1; + } + return b->order - a->order; +} + +static void +read_ngram_instance(lineiter_t ** li, hash_table_t * wid, + logmath_t * lmath, int order, int order_max, + ngram_raw_t * raw_ngram) +{ + int n; + int words_expected; + int i; + char *wptr[NGRAM_MAX_ORDER + 1]; + uint32 *word_out; + + *li = lineiter_next(*li); + if (*li == NULL) { + E_ERROR("Unexpected end of ARPA file. Failed to read %d-gram\n", + order); + return; + } + string_trim((*li)->buf, STRING_BOTH); + words_expected = order + 1; + + if ((n = + str2words((*li)->buf, wptr, + NGRAM_MAX_ORDER + 1)) < words_expected) { + if ((*li)->buf[0] != '\0') { + E_WARN("Format error; %d-gram ignored: %s\n", order, + (*li)->buf); + } + } + else { + if (order == order_max) { + raw_ngram->weights = + (float *) ckd_calloc(1, sizeof(*raw_ngram->weights)); + raw_ngram->weights[0] = atof_c(wptr[0]); + if (raw_ngram->weights[0] > 0) { + E_WARN("%d-gram [%s] has positive probability. Zeroize\n", + order, wptr[1]); + raw_ngram->weights[0] = 0.0f; + } + raw_ngram->weights[0] = + logmath_log10_to_log_float(lmath, raw_ngram->weights[0]); + } + else { + float weight, backoff; + raw_ngram->weights = + (float *) ckd_calloc(2, sizeof(*raw_ngram->weights)); + + weight = atof_c(wptr[0]); + if (weight > 0) { + E_WARN("%d-gram [%s] has positive probability. Zeroize\n", + order, wptr[1]); + raw_ngram->weights[0] = 0.0f; + } + else { + raw_ngram->weights[0] = + logmath_log10_to_log_float(lmath, weight); + } + + if (n == order + 1) { + raw_ngram->weights[1] = 0.0f; + } + else { + backoff = atof_c(wptr[order + 1]); + raw_ngram->weights[1] = + logmath_log10_to_log_float(lmath, backoff); + } + } + raw_ngram->words = + (uint32 *) ckd_calloc(order, sizeof(*raw_ngram->words)); + for (word_out = raw_ngram->words + order - 1, i = 1; + word_out >= raw_ngram->words; --word_out, i++) { + hash_table_lookup_int32(wid, wptr[i], (int32 *) word_out); + } + } +} + +static void +ngrams_raw_read_order(ngram_raw_t ** raw_ngrams, lineiter_t ** li, + hash_table_t * wid, logmath_t * lmath, uint32 count, + int order, int order_max) +{ + char expected_header[20]; + uint32 i; + + sprintf(expected_header, "\\%d-grams:", order); + while ((*li = lineiter_next(*li))) { + string_trim((*li)->buf, STRING_BOTH); + if (strcmp((*li)->buf, expected_header) == 0) + break; + } + *raw_ngrams = (ngram_raw_t *) ckd_calloc(count, sizeof(ngram_raw_t)); + for (i = 0; i < count; i++) { + read_ngram_instance(li, wid, lmath, order, order_max, + &((*raw_ngrams)[i])); + } + + //sort raw ngrams that was read + ngram_comparator(NULL, &order); //setting up order in comparator + qsort(*raw_ngrams, count, sizeof(ngram_raw_t), &ngram_comparator); +} + +ngram_raw_t ** +ngrams_raw_read_arpa(lineiter_t ** li, logmath_t * lmath, uint32 * counts, + int order, hash_table_t * wid) +{ + ngram_raw_t **raw_ngrams; + int order_it; + + raw_ngrams = + (ngram_raw_t **) ckd_calloc(order - 1, sizeof(*raw_ngrams)); + for (order_it = 2; order_it <= order; order_it++) { + ngrams_raw_read_order(&raw_ngrams[order_it - 2], li, wid, lmath, + counts[order_it - 1], order_it, order); + } + //check for end-mark in arpa file + *li = lineiter_next(*li); + string_trim((*li)->buf, STRING_BOTH); + //skip empty lines if any + while (*li && strlen((*li)->buf) == 0) { + *li = lineiter_next(*li); + string_trim((*li)->buf, STRING_BOTH); + } + //check if we finished reading + if (*li == NULL) + E_ERROR("ARPA file ends without end-mark\n"); + //check if we found ARPA end-mark + if (strcmp((*li)->buf, "\\end\\") != 0) + E_ERROR + ("Finished reading ARPA file. Expecting end mark but found [%s]\n", + (*li)->buf); + + return raw_ngrams; +} + +static void +read_dmp_weight_array(FILE * fp, logmath_t * lmath, uint8 do_swap, + int32 counts, ngram_raw_t * raw_ngrams, + int weight_idx) +{ + int32 i, k; + dmp_weight_t *tmp_weight_arr; + + fread(&k, sizeof(k), 1, fp); + if (do_swap) + SWAP_INT32(&k); + tmp_weight_arr = + (dmp_weight_t *) ckd_calloc(k, sizeof(*tmp_weight_arr)); + fread(tmp_weight_arr, sizeof(*tmp_weight_arr), k, fp); + for (i = 0; i < k; i++) { + if (do_swap) + SWAP_INT32(&tmp_weight_arr[i].l); + /* Convert values to log. */ + tmp_weight_arr[i].f = + logmath_log10_to_log_float(lmath, tmp_weight_arr[i].f); + } + //replace indexes with real probs in raw bigrams + for (i = 0; i < counts; i++) { + raw_ngrams[i].weights[weight_idx] = + tmp_weight_arr[(int) raw_ngrams[i].weights[weight_idx]].f; + } + ckd_free(tmp_weight_arr); +} + +#define BIGRAM_SEGMENT_SIZE 9 + +ngram_raw_t ** +ngrams_raw_read_dmp(FILE * fp, logmath_t * lmath, uint32 * counts, + int order, uint32 * unigram_next, uint8 do_swap) +{ + int i; + uint32 j, ngram_idx; + uint16 *bigrams_next; + ngram_raw_t **raw_ngrams = + (ngram_raw_t **) ckd_calloc(order - 1, sizeof(*raw_ngrams)); + + //read bigrams + raw_ngrams[0] = + (ngram_raw_t *) ckd_calloc((size_t) (counts[1] + 1), + sizeof(*raw_ngrams[0])); + bigrams_next = + (uint16 *) ckd_calloc((size_t) (counts[1] + 1), + sizeof(*bigrams_next)); + ngram_idx = 1; + for (j = 0; j <= (int32) counts[1]; j++) { + uint16 wid, prob_idx, bo_idx; + ngram_raw_t *raw_ngram = &raw_ngrams[0][j]; + + fread(&wid, sizeof(wid), 1, fp); + if (do_swap) + SWAP_INT16(&wid); + raw_ngram->words = + (uint32 *) ckd_calloc(2, sizeof(*raw_ngram->words)); + raw_ngram->words[0] = (uint32) wid; + while (ngram_idx < counts[0] && j == unigram_next[ngram_idx]) { + ngram_idx++; + } + raw_ngram->words[1] = (uint32) ngram_idx - 1; + raw_ngram->weights = + (float *) ckd_calloc(2, sizeof(*raw_ngram->weights)); + fread(&prob_idx, sizeof(prob_idx), 1, fp); + if (do_swap) + SWAP_INT16(&prob_idx); + raw_ngram->weights[0] = prob_idx + 0.5f; //keep index in float. ugly but avoiding using extra memory + fread(&bo_idx, sizeof(bo_idx), 1, fp); + if (do_swap) + SWAP_INT16(&bo_idx); + raw_ngram->weights[1] = bo_idx + 0.5f; //keep index in float. ugly but avoiding using extra memory + fread(&bigrams_next[j], sizeof(bigrams_next[j]), 1, fp); + if (do_swap) + SWAP_INT16(&bigrams_next[j]); + } + assert(ngram_idx == counts[0]); + + //read trigrams + if (order > 2) { + raw_ngrams[1] = + (ngram_raw_t *) ckd_calloc((size_t) counts[2], + sizeof(*raw_ngrams[1])); + for (j = 0; j < (int32) counts[2]; j++) { + uint16 wid, prob_idx; + ngram_raw_t *raw_ngram = &raw_ngrams[1][j]; + + fread(&wid, sizeof(wid), 1, fp); + if (do_swap) + SWAP_INT16(&wid); + raw_ngram->words = + (uint32 *) ckd_calloc(3, sizeof(*raw_ngram->words)); + raw_ngram->words[0] = (uint32) wid; + raw_ngram->weights = + (float *) ckd_calloc(1, sizeof(*raw_ngram->weights)); + fread(&prob_idx, sizeof(prob_idx), 1, fp); + if (do_swap) + SWAP_INT16(&prob_idx); + raw_ngram->weights[0] = prob_idx + 0.5f; //keep index in float. ugly but avoiding using extra memory + } + } + + //read prob2 + read_dmp_weight_array(fp, lmath, do_swap, (int32) counts[1], + raw_ngrams[0], 0); + //read bo2 + if (order > 2) { + int32 k; + int32 *tseg_base; + read_dmp_weight_array(fp, lmath, do_swap, (int32) counts[1], + raw_ngrams[0], 1); + //read prob3 + read_dmp_weight_array(fp, lmath, do_swap, (int32) counts[2], + raw_ngrams[1], 0); + /* Read tseg_base size and tseg_base to fill trigram's first words */ + fread(&k, sizeof(k), 1, fp); + if (do_swap) + SWAP_INT32(&k); + tseg_base = (int32 *) ckd_calloc(k, sizeof(int32)); + fread(tseg_base, sizeof(int32), k, fp); + if (do_swap) { + for (j = 0; j < (uint32) k; j++) { + SWAP_INT32(&tseg_base[j]); + } + } + ngram_idx = 0; + for (j = 1; j <= counts[1]; j++) { + uint32 next_ngram_idx = + (uint32) (tseg_base[j >> BIGRAM_SEGMENT_SIZE] + + bigrams_next[j]); + while (ngram_idx < next_ngram_idx) { + raw_ngrams[1][ngram_idx].words[1] = + raw_ngrams[0][j - 1].words[0]; + raw_ngrams[1][ngram_idx].words[2] = + raw_ngrams[0][j - 1].words[1]; + ngram_idx++; + } + } + ckd_free(tseg_base); + assert(ngram_idx == counts[2]); + } + ckd_free(bigrams_next); + + //sort raw ngrams for reverse trie + i = 2; //set order + ngram_comparator(NULL, &i); + qsort(raw_ngrams[0], (size_t) counts[1], sizeof(*raw_ngrams[0]), + &ngram_comparator); + if (order > 2) { + i = 3; //set order + ngram_comparator(NULL, &i); + qsort(raw_ngrams[1], (size_t) counts[2], sizeof(*raw_ngrams[1]), + &ngram_comparator); + } + return raw_ngrams; +} + +void +ngrams_raw_fix_counts(ngram_raw_t ** raw_ngrams, uint32 * counts, + uint32 * fixed_counts, int order) +{ + priority_queue_t *ngrams = + priority_queue_create(order - 1, &ngram_ord_comparator); + uint32 raw_ngram_ptrs[NGRAM_MAX_ORDER - 1]; + uint32 words[NGRAM_MAX_ORDER]; + int i; + + memset(words, -1, sizeof(words)); //since we have unsigned word idx that will give us unreachable maximum word index + memcpy(fixed_counts, counts, order * sizeof(*fixed_counts)); + for (i = 2; i <= order; i++) { + ngram_raw_ord_t *tmp_ngram; + + if (counts[i - 1] <= 0) + continue; + tmp_ngram = + (ngram_raw_ord_t *) ckd_calloc(1, sizeof(*tmp_ngram)); + tmp_ngram->order = i; + raw_ngram_ptrs[i - 2] = 0; + tmp_ngram->instance = raw_ngrams[i - 2][0]; + priority_queue_add(ngrams, tmp_ngram); + } + + for (;;) { + int32 to_increment = TRUE; + ngram_raw_ord_t *top; + if (priority_queue_size(ngrams) == 0) { + break; + } + top = (ngram_raw_ord_t *) priority_queue_poll(ngrams); + if (top->order == 2) { + memcpy(words, top->instance.words, 2 * sizeof(*words)); + } + else { + for (i = 0; i < top->order - 1; i++) { + if (words[i] != top->instance.words[i]) { + int num; + num = (i == 0) ? 1 : i; + memcpy(words, top->instance.words, + (num + 1) * sizeof(*words)); + fixed_counts[num]++; + to_increment = FALSE; + break; + } + } + words[top->order - 1] = top->instance.words[top->order - 1]; + } + if (to_increment) { + raw_ngram_ptrs[top->order - 2]++; + } + if (raw_ngram_ptrs[top->order - 2] < counts[top->order - 1]) { + top->instance = + raw_ngrams[top->order - 2][raw_ngram_ptrs[top->order - 2]]; + priority_queue_add(ngrams, top); + } + else { + ckd_free(top); + } + } + + assert(priority_queue_size(ngrams) == 0); + priority_queue_free(ngrams, NULL); +} + +void +ngrams_raw_free(ngram_raw_t ** raw_ngrams, uint32 * counts, int order) +{ + uint32 num; + int order_it; + + for (order_it = 0; order_it < order - 1; order_it++) { + for (num = 0; num < counts[order_it + 1]; num++) { + ckd_free(raw_ngrams[order_it][num].weights); + ckd_free(raw_ngrams[order_it][num].words); + } + ckd_free(raw_ngrams[order_it]); + } + ckd_free(raw_ngrams); +} diff -Nru sphinxbase-0.8/src/libsphinxbase/lm/ngrams_raw.h sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngrams_raw.h --- sphinxbase-0.8/src/libsphinxbase/lm/ngrams_raw.h 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/lm/ngrams_raw.h 2015-08-05 11:17:26.000000000 +0000 @@ -0,0 +1,107 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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 __NGRAMS_RAW_H__ +#define __NGRAMS_RAW_H__ + +#include +#include +#include +#include +#include + +typedef struct ngram_raw_s { + uint32 *words; /* array of word indexes, length corresponds to ngram order */ + float *weights; /* prob and backoff or just prob for longest order */ +} ngram_raw_t; + +typedef struct ngram_raw_ord_s { + ngram_raw_t instance; + int order; +} ngram_raw_ord_t; + +typedef union { + float32 f; + int32 l; +} dmp_weight_t; + +/** + * Raw ngrams comparator. Usage: + * > ngram_comparator(NULL, &order); - to set order of ngrams + * > qsort(ngrams, count, sizeof(lm_ngram_t), &ngram_comparator); - to sort ngrams in increasing order + */ +int ngram_comparator(const void *first_void, const void *second_void); + +/** + * Raw ordered ngrams comparator + */ +int ngram_ord_comparator(void *a_raw, void *b_raw); + +/** + * Read ngrams of order > 1 from ARPA file + * @param li [in] sphinxbase file line iterator that point to bigram description in ARPA file + * @param wid [in] hashtable that maps string word representation to id + * @param lmath [in] log math used for log convertions + * @param counts [in] amount of ngrams for each order + * @param order [in] maximum order of ngrams + * @return raw ngrams of order bigger than 1 + */ +ngram_raw_t **ngrams_raw_read_arpa(lineiter_t ** li, logmath_t * lmath, + uint32 * counts, int order, + hash_table_t * wid); + +/** + * Reads ngrams of order > 1 from DMP file. + * @param fp [in] file to read from. Position in file corresponds to start of bigram description + * @param lmath [in] log math used for log convertions + * @param counts [in] amount of ngrams for each order + * @param order [in] maximum order of ngrams + * @param unigram_next [in] array of next word pointers for unigrams. Needed to define forst word of bigrams + * @param do_swap [in] wether to do swap of bits + * @return raw ngrams of order bigger than 1 + */ +ngram_raw_t **ngrams_raw_read_dmp(FILE * fp, logmath_t * lmath, + uint32 * counts, int order, + uint32 * unigram_next, uint8 do_swap); + +void ngrams_raw_fix_counts(ngram_raw_t ** raw_ngrams, uint32 * counts, + uint32 * fixed_counts, int order); + +void ngrams_raw_free(ngram_raw_t ** raw_ngrams, uint32 * counts, + int order); + +#endif /* __LM_NGRAMS_RAW_H__ */ diff -Nru sphinxbase-0.8/src/libsphinxbase/Makefile.am sphinxbase-0.8+5prealpha/src/libsphinxbase/Makefile.am --- sphinxbase-0.8/src/libsphinxbase/Makefile.am 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/Makefile.am 2015-03-24 17:26:36.000000000 +0000 @@ -3,10 +3,8 @@ lib_LTLIBRARIES = libsphinxbase.la libsphinxbase_la_SOURCES = -# Confusing libtool version info means: -# -# This is API version 2, software release 1, which also supports API version 1 -libsphinxbase_la_LDFLAGS = -version-info 2:1:1 + +libsphinxbase_la_LDFLAGS = -version-info 3:0:0 libsphinxbase_la_LIBADD = $(LTLIBICONV) \ util/libsphinxutil.la \ fe/libsphinxfe.la \ diff -Nru sphinxbase-0.8/src/libsphinxbase/Makefile.in sphinxbase-0.8+5prealpha/src/libsphinxbase/Makefile.in --- sphinxbase-0.8/src/libsphinxbase/Makefile.in 2012-12-12 17:28:53.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,14 +79,13 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/libsphinxbase -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -71,41 +114,97 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) -am__DEPENDENCIES_1 = -libsphinxbase_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - util/libsphinxutil.la fe/libsphinxfe.la feat/libsphinxfeat.la \ - lm/libsphinxlm.la +libsphinxbase_la_DEPENDENCIES = util/libsphinxutil.la \ + fe/libsphinxfe.la feat/libsphinxfeat.la lm/libsphinxlm.la am_libsphinxbase_la_OBJECTS = libsphinxbase_la_OBJECTS = $(am_libsphinxbase_la_OBJECTS) -libsphinxbase_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libsphinxbase_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libsphinxbase_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libsphinxbase_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include 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) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libsphinxbase_la_SOURCES) DIST_SOURCES = $(libsphinxbase_la_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_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -137,6 +236,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -150,6 +250,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -159,9 +260,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -169,15 +268,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -193,27 +291,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -246,14 +350,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -265,10 +372,7 @@ SUBDIRS = util fe feat lm lib_LTLIBRARIES = libsphinxbase.la libsphinxbase_la_SOURCES = -# Confusing libtool version info means: -# -# This is API version 2, software release 1, which also supports API version 1 -libsphinxbase_la_LDFLAGS = -version-info 2:1:1 +libsphinxbase_la_LDFLAGS = -version-info 3:0:0 libsphinxbase_la_LIBADD = $(LTLIBICONV) \ util/libsphinxutil.la \ fe/libsphinxfe.la \ @@ -287,9 +391,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/libsphinxbase/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libsphinxbase/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/libsphinxbase/Makefile + $(AUTOMAKE) --foreign src/libsphinxbase/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -308,9 +412,9 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + 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 \ @@ -318,6 +422,8 @@ else :; fi; \ done; \ test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } @@ -333,14 +439,17 @@ 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 -libsphinxbase.la: $(libsphinxbase_la_OBJECTS) $(libsphinxbase_la_DEPENDENCIES) - $(libsphinxbase_la_LINK) -rpath $(libdir) $(libsphinxbase_la_OBJECTS) $(libsphinxbase_la_LIBADD) $(LIBS) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libsphinxbase.la: $(libsphinxbase_la_OBJECTS) $(libsphinxbase_la_DEPENDENCIES) $(EXTRA_libsphinxbase_la_DEPENDENCIES) + $(AM_V_CCLD)$(libsphinxbase_la_LINK) -rpath $(libdir) $(libsphinxbase_la_OBJECTS) $(libsphinxbase_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -355,22 +464,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -385,57 +497,12 @@ $(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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -451,12 +518,7 @@ 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -468,15 +530,11 @@ $$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; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -485,6 +543,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -521,13 +594,10 @@ 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 \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -565,10 +635,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -649,24 +724,22 @@ uninstall-am: uninstall-libLTLIBRARIES -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-libLTLIBRARIES install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs 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-libLTLIBRARIES +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libLTLIBRARIES \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-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-am uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/libsphinxbase/util/bio.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/bio.c --- sphinxbase-0.8/src/libsphinxbase/util/bio.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/bio.c 2015-03-24 17:26:36.000000000 +0000 @@ -263,7 +263,7 @@ static uint32 -chksum_accum(void *buf, int32 el_sz, int32 n_el, uint32 sum) +chksum_accum(const void *buf, int32 el_sz, int32 n_el, uint32 sum) { int32 i; uint8 *i8; @@ -339,7 +339,7 @@ } int32 -bio_fwrite(void *buf, int32 el_sz, int32 n_el, FILE *fp, +bio_fwrite(const void *buf, int32 el_sz, int32 n_el, FILE *fp, int32 swap, uint32 *chksum) { if (chksum) @@ -503,17 +503,102 @@ file_chksum, chksum); } +int +bio_fwrite_3d(void ***arr, + size_t e_sz, + uint32 d1, + uint32 d2, + uint32 d3, + FILE *fp, + uint32 *chksum) +{ + size_t ret; + + /* write out first dimension 1 */ + ret = bio_fwrite(&d1, sizeof(uint32), 1, fp, 0, chksum); + if (ret != 1) { + if (ret == 0) { + E_ERROR_SYSTEM("Unable to write complete data"); + } + else { + E_ERROR_SYSTEM("OS error in bio_fwrite_3d"); + } + return -1; + } + + /* write out first dimension 2 */ + ret = bio_fwrite(&d2, sizeof(uint32), 1, fp, 0, chksum); + if (ret != 1) { + if (ret == 0) { + E_ERROR_SYSTEM("Unable to write complete data"); + } + else { + E_ERROR_SYSTEM("OS error in bio_fwrite_3d"); + } + return -1; + } + + /* write out first dimension 3 */ + ret = bio_fwrite(&d3, sizeof(uint32), 1, fp, 0, chksum); + if (ret != 1) { + if (ret == 0) { + E_ERROR_SYSTEM("Unable to write complete data"); + } + else { + E_ERROR_SYSTEM("OS error in bio_fwrite_3d"); + } + return -1; + } + + /* write out the data in the array as one big block */ + return bio_fwrite_1d(arr[0][0], e_sz, d1 * d2 * d3, fp, chksum); +} + +int +bio_fwrite_1d(void *arr, + size_t e_sz, + uint32 d1, + FILE *fp, + uint32 *chksum) +{ + size_t ret; + ret = bio_fwrite(&d1, sizeof(uint32), 1, fp, 0, chksum); + if (ret != 1) { + if (ret == 0) { + E_ERROR_SYSTEM("Unable to write complete data"); + } + else { + E_ERROR_SYSTEM("OS error in bio_fwrite_1d"); + } + return -1; + } + + ret = bio_fwrite(arr, e_sz, d1, fp, 0, chksum); + if (ret != d1) { + if (ret == 0) { + E_ERROR_SYSTEM("Unable to write complete data"); + } + else { + E_ERROR_SYSTEM("OS error in bio_fwrite_1d"); + } + + return -1; + } + + return ret; +} + int16* bio_read_wavfile(char const *directory, char const *filename, char const *extension, int32 header, int32 endian, - int32 *nsamps) + size_t *nsamps) { FILE *uttfp; char *inputfile; - int32 n, l; + size_t n, l; int16 *data; n = strlen(extension); diff -Nru sphinxbase-0.8/src/libsphinxbase/util/bitarr.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/bitarr.c --- sphinxbase-0.8/src/libsphinxbase/util/bitarr.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/bitarr.c 2015-07-05 00:26:49.000000000 +0000 @@ -0,0 +1,186 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + +/* + * bitarr.c -- Bit array manipulations implementation. + */ + +#ifdef __APPLE__ +#include +#elif __linux__ +#include +#elif !defined(_WIN32) && !defined(_WIN64) +#include +#endif + +#include "sphinxbase/bitarr.h" + +/** + * Union to map float to integer to store latter in bit array + */ +typedef union { + float f; + uint32 i; +} float_enc; + +#define SIGN_BIT (0x80000000) + +/** + * Shift bits depending on byte order in system. + * Fun fact: __BYTE_ORDER is wrong on Solaris Sparc, but the version without __ is correct. + * @param bit is an offset last byte + * @param length - amount of bits for required for digit that is going to be read + * @return shift forgiven architecture + */ +static uint8 get_shift(uint8 bit, uint8 length) +{ +#if BYTE_ORDER == LITTLE_ENDIAN + return bit; +#elif BYTE_ORDER == BIG_ENDIAN + return 64 - length - bit; +#else +#error "Bit packing code isn't written for your byte order." +#endif +} + +/** + * Read uint64 value from the given address + * @param address to read from + * @param pointer to value where to save read value + * @return uint64 value that was read + */ +static uint64 read_off(bitarr_address_t address) +{ +#if defined(__arm) || defined(__arm__) + uint64 value64; + const uint8 *base_off = (const uint8 *)(address.base) + (address.offset >> 3); + memcpy(&value64, base_off, sizeof(value64)); + return value64; +#else + return *(const uint64*)((const uint8 *)(address.base) + (address.offset >> 3)); +#endif +} + +uint64 bitarr_read_int57(bitarr_address_t address, uint8 length, uint64 mask) +{ + return (read_off(address) >> get_shift(address.offset & 7, length)) & mask; +} + +void bitarr_write_int57(bitarr_address_t address, uint8 length, uint64 value) +{ +#if defined(__arm) || defined(__arm__) + uint64 value64; + uint8 *base_off = (uint8 *)(address.base) + (address.offset >> 3); + memcpy(&value64, base_off, sizeof(value64)); + value64 |= (value << get_shift(address.offset & 7, length)); + memcpy(base_off, &value64, sizeof(value64)); +#else + *(uint64 *)((uint8 *)(address.base) + (address.offset >> 3)) |= (value << get_shift(address.offset & 7, length)); +#endif +} + +uint32 bitarr_read_int25(bitarr_address_t address, uint8 length, uint32 mask) +{ +#if defined(__arm) || defined(__arm__) + uint32 value32; + const uint8 *base_off = (const uint8_t*)(address.base) + (address.offset >> 3); + memcpy(&value32, base_off, sizeof(value32)); + return (value32 >> get_shift(address.offset & 7, length)) & mask; +#else + return (*(const uint32_t*)((const uint8_t*)(address.base) + (address.offset >> 3)) >> get_shift(address.offset & 7, length)) & mask; +#endif +} + +void bitarr_write_int25(bitarr_address_t address, uint8 length, uint32 value) +{ +#if defined(__arm) || defined(__arm__) + uint32 value32; + uint8 *base_off = (uint8 *)(address.base) + (address.offset >> 3); + memcpy(&value32, base_off, sizeof(value32)); + value32 |= (value << get_shift(address.offset & 7, length)); + memcpy(base_off, &value32, sizeof(value32)); +#else + *(uint32_t *)((uint8 *)(address.base) + (address.offset >> 3)) |= (value << get_shift(address.offset & 7, length)); +#endif +} + +float bitarr_read_negfloat(bitarr_address_t address) +{ + float_enc encoded; + encoded.i = (uint32)(read_off(address) >> get_shift(address.offset & 7, 31)); + // Sign bit set means negative. + encoded.i |= SIGN_BIT; + return encoded.f; +} + +void bitarr_write_negfloat(bitarr_address_t address, float value) +{ + float_enc encoded; + encoded.f = value; + encoded.i &= ~SIGN_BIT; + bitarr_write_int57(address, 31, encoded.i); +} + +float bitarr_read_float(bitarr_address_t address) +{ + float_enc encoded; + encoded.i = (uint32)(read_off(address) >> get_shift(address.offset & 7, 32)); + return encoded.f; +} + +void bitarr_write_float(bitarr_address_t address, float value) +{ + float_enc encoded; + encoded.f = value; + bitarr_write_int57(address, 32, encoded.i); +} + +void bitarr_mask_from_max(bitarr_mask_t *bit_mask, uint32 max_value) +{ + bit_mask->bits = bitarr_required_bits(max_value); + bit_mask->mask = (uint32)((1ULL << bit_mask->bits) - 1); +} + +uint8 bitarr_required_bits(uint32 max_value) +{ + uint8 res; + + if (!max_value) return 0; + res = 1; + while (max_value >>= 1) res++; + return res; +} \ No newline at end of file diff -Nru sphinxbase-0.8/src/libsphinxbase/util/ckd_alloc.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/ckd_alloc.c --- sphinxbase-0.8/src/libsphinxbase/util/ckd_alloc.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/ckd_alloc.c 2015-03-24 17:26:36.000000000 +0000 @@ -8,27 +8,27 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the * United States of America, and the CMU Sphinx Speech Consortium. * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY * NOR ITS EMPLOYEES 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 + * 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. * * ==================================================================== @@ -43,7 +43,7 @@ * Copyright (c) 1999 Carnegie Mellon University. * ALL RIGHTS RESERVED. * ********************************************** - * + * * HISTORY * $Log: ckd_alloc.c,v $ * Revision 1.6 2005/06/22 02:59:25 arthchan2003 @@ -52,11 +52,11 @@ * Revision 1.3 2005/03/30 01:22:48 archan * Fixed mistakes in last updates. Add * - * + * * 19-Jun-97 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University * Removed file,line arguments from free functions. * Removed debugging stuff. - * + * * 01-Jan-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University * Created. */ @@ -74,13 +74,13 @@ ********************************************************************* * * file: ckd_alloc.c - * - * traceability: - * - * description: - * - * author: - * + * + * traceability: + * + * description: + * + * author: + * *********************************************************************/ @@ -99,7 +99,7 @@ /** * Target for longjmp() on failure. - * + * * FIXME: This should be in thread-local storage. */ static jmp_buf *ckd_target; @@ -128,7 +128,7 @@ va_end(args); if (jmp_abort) - /* Silvio Moioli: abort() doesn't exist in Windows CE */ + /* abort() doesn't exist in Windows CE */ #if defined(_WIN32_WCE) exit(-1); #else @@ -148,7 +148,7 @@ #if defined(__ADSPBLACKFIN__) && !defined(__linux__) if ((mem = heap_calloc(heap_lookup(1),n_elem, elem_size)) == NULL) - if ((mem = heap_calloc(heap_lookup(0),n_elem, elem_size)) == NULL) + if ((mem = heap_calloc(heap_lookup(0),n_elem, elem_size)) == NULL) { ckd_fail("calloc(%d,%d) failed from %s(%d), free space: %d\n", n_elem, elem_size, caller_file, caller_line,space_unused()); @@ -159,7 +159,7 @@ elem_size, caller_file, caller_line); } #endif - + return mem; } @@ -172,13 +172,13 @@ #if defined(__ADSPBLACKFIN__) && !defined(__linux__) if ((mem = heap_malloc(heap_lookup(0),size)) == NULL) - if ((mem = heap_malloc(heap_lookup(1),size)) == NULL) + if ((mem = heap_malloc(heap_lookup(1),size)) == NULL) #else if ((mem = malloc(size)) == NULL) #endif ckd_fail("malloc(%d) failed from %s(%d)\n", size, caller_file, caller_line); - + return mem; } @@ -208,6 +208,9 @@ size_t len; char *buf; + if (!orig) + return NULL; + len = strlen(orig) + 1; buf = (char *) __ckd_malloc__(len, caller_file, caller_line); @@ -240,11 +243,11 @@ void ckd_free(void *ptr) { - if (ptr) #if defined(__ADSPBLACKFIN__) && !defined(__linux__) + if (ptr) heap_free(0,ptr); #else - free(ptr); + free(ptr); #endif } @@ -323,7 +326,7 @@ E_FATAL("ckd_calloc_4d failed for caller at %s(%d) at %s(%d)\n", file, line, __FILE__, __LINE__); } - + tmp1 = calloc(d1 * d2 * d3, sizeof(void *)); if (tmp1 == NULL) { E_FATAL("ckd_calloc_4d failed for caller at %s(%d) at %s(%d)\n", @@ -341,7 +344,7 @@ E_FATAL("ckd_calloc_4d failed for caller at %s(%d) at %s(%d)\n", file, line, __FILE__, __LINE__); } - + for (i = 0, j = 0; i < d1*d2*d3; i++, j += d4) { tmp1[i] = &((char *)store)[j*elem_size]; } @@ -385,19 +388,19 @@ void **tmp1; void ***out; size_t i, j; - + tmp1 = __ckd_calloc__(d1 * d2, sizeof(void *), file, line); out = __ckd_calloc__(d1, sizeof(void **), file, line); - + for (i = 0, j = 0; i < d1*d2; i++, j += d3) { tmp1[i] = &((char *)store)[j*elem_size]; } - + for (i = 0, j = 0; i < d1; i++, j += d2) { out[i] = &tmp1[j]; } - + return out; } @@ -411,12 +414,14 @@ { void **out; size_t i, j; - + out = __ckd_calloc__(d1, sizeof(void *), file, line); - + for (i = 0, j = 0; i < d1; i++, j += d2) { out[i] = &((char *)store)[j*elem_size]; } return out; } + +/* vim: set ts=4 sw=4: */ diff -Nru sphinxbase-0.8/src/libsphinxbase/util/cmd_ln.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/cmd_ln.c --- sphinxbase-0.8/src/libsphinxbase/util/cmd_ln.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/cmd_ln.c 2015-07-14 21:46:11.000000000 +0000 @@ -8,27 +8,27 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the * United States of America, and the CMU Sphinx Speech Consortium. * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY * NOR ITS EMPLOYEES 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 + * 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. * * ==================================================================== @@ -43,18 +43,18 @@ * Copyright (c) 1999 Carnegie Mellon University. * ALL RIGHTS RESERVED. * ********************************************** - * + * * HISTORY - * - * 10-Sep-1998 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Changed strcasecmp() call in cmp_name() to strcmp_nocase() call. - * - * 15-Jul-1997 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Added required arguments handling. - * - * 07-Dec-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Created, based on Eric's implementation. Basically, combined several - * functions into one, eliminated validation, and simplified the interface. + * + * 10-Sep-1998 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University + * Changed strcasecmp() call in cmp_name() to strcmp_nocase() call. + * + * 15-Jul-1997 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University + * Added required arguments handling. + * + * 07-Dec-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University + * Created, based on Eric's implementation. Basically, combined several + * functions into one, eliminated validation, and simplified the interface. */ @@ -96,8 +96,12 @@ /** Global command-line, for non-reentrant API. */ cmd_ln_t *global_cmdln; -static void arg_dump_r(cmd_ln_t *cmdln, FILE * fp, arg_t const *defn, int32 doc); -static cmd_ln_t * parse_options(cmd_ln_t *cmdln, const arg_t *defn, int32 argc, char* argv[], int32 strict); + +static void +arg_dump_r(cmd_ln_t *, FILE *, arg_t const *, int32); + +static cmd_ln_t * +parse_options(cmd_ln_t *, const arg_t *, int32, char* [], int32); /* * Find max length of name and default fields in the given defn array. @@ -135,13 +139,13 @@ (* (arg_t**) b)->name)); } -static const arg_t ** +static arg_t const ** arg_sort(const arg_t * defn, int32 n) { const arg_t ** pos; int32 i; - pos = (const arg_t **) ckd_calloc(n, sizeof(arg_t *)); + pos = (arg_t const **) ckd_calloc(n, sizeof(arg_t *)); for (i = 0; i < n; ++i) pos[i] = &defn[i]; qsort(pos, n, sizeof(arg_t *), cmp_name); @@ -150,7 +154,7 @@ } static size_t -strnappend(char **dest, size_t *dest_allocation, +strnappend(char **dest, size_t *dest_allocation, const char *source, size_t n) { size_t source_len, required_allocation; @@ -169,12 +173,12 @@ required_allocation = (*dest ? strlen(*dest) : 0) + source_len + 1; if (*dest_allocation < required_allocation) { if (*dest_allocation == 0) { - *dest = ckd_calloc(required_allocation * 2, 1); + *dest = (char *)ckd_calloc(required_allocation * 2, 1); } else { - *dest = ckd_realloc(*dest, required_allocation * 2); + *dest = (char *)ckd_realloc(*dest, required_allocation * 2); } *dest_allocation = required_allocation * 2; - } + } strncat(*dest, source, source_len); @@ -182,7 +186,7 @@ } static size_t -strappend(char **dest, size_t *dest_allocation, +strappend(char **dest, size_t *dest_allocation, const char *source) { return strnappend(dest, dest_allocation, source, 0); @@ -234,18 +238,17 @@ } static void -arg_dump_r(cmd_ln_t *cmdln, FILE * fp, const arg_t * defn, int32 doc) +arg_dump_r(cmd_ln_t *cmdln, FILE *fp, const arg_t * defn, int32 doc) { - const arg_t **pos; - int32 i, l, n; + arg_t const **pos; + int32 i, n; + size_t l; int32 namelen, deflen; anytype_t *vp; char const **array; /* No definitions, do nothing. */ - if (defn == NULL) - return; - if (fp == NULL) + if (defn == NULL || fp == NULL) return; /* Find max lengths of name and default value fields, and #entries in defn */ @@ -308,12 +311,12 @@ fprintf(fp, "%s", (char *)vp->ptr); break; case ARG_STRING_LIST: - array = (char const**)vp->ptr; - if (array) - for (l = 0; array[l] != 0; l++) { - fprintf(fp, "%s,", array[l]); - } - break; + array = (char const**)vp->ptr; + if (array) + for (l = 0; array[l] != 0; l++) { + fprintf(fp, "%s,", array[l]); + } + break; case ARG_BOOLEAN: case REQARG_BOOLEAN: fprintf(fp, "%s", vp->i ? "yes" : "no"); @@ -329,7 +332,6 @@ ckd_free(pos); fprintf(fp, "\n"); - fflush(fp); } static char ** @@ -337,23 +339,23 @@ { int count, i, j; const char *p; - char ** result; + char **result; p = str; count = 1; while (*p) { if (*p == ',') - count++; - p++; + count++; + p++; } /* Should end with NULL */ result = (char **) ckd_calloc(count + 1, sizeof(char *)); p = str; for (i = 0; i < count; i++) { for (j = 0; p[j] != ',' && p[j] != 0; j++); - result[i] = ckd_calloc(j + 1, sizeof(char)); - strncpy( result[i], p, j); - p = p + j + 1; + result[i] = (char *)ckd_calloc(j + 1, sizeof(char)); + strncpy( result[i], p, j); + p = p + j + 1; } return result; } @@ -382,7 +384,7 @@ case ARG_FLOATING: case REQARG_FLOATING: if (e_str == NULL || e_str[0] == 0) - valid = 0; + valid = 0; val.fl = atof_c(e_str); break; case ARG_BOOLEAN: @@ -406,7 +408,7 @@ val.ptr = ckd_salloc(e_str); break; case ARG_STRING_LIST: - val.ptr = parse_string_list(e_str); + val.ptr = parse_string_list(e_str); break; default: E_ERROR("Unknown argument type: %d\n", t); @@ -418,7 +420,7 @@ return NULL; } - v = ckd_calloc(1, sizeof(*v)); + v = (cmd_ln_val_t *)ckd_calloc(1, sizeof(*v)); memcpy(v, &val, sizeof(val)); v->type = t; @@ -449,7 +451,7 @@ if (new_cmdln == cmdln) { /* If we are adding to a previously passed-in cmdln, then * store our allocated strings in its f_argv. */ - new_cmdln->f_argv = ckd_realloc(new_cmdln->f_argv, + new_cmdln->f_argv = (char **)ckd_realloc(new_cmdln->f_argv, (new_cmdln->f_argc + argc) * sizeof(*new_cmdln->f_argv)); memcpy(new_cmdln->f_argv + new_cmdln->f_argc, argv, @@ -471,13 +473,13 @@ { int i; if (val->type & ARG_STRING_LIST) { - char ** array = (char **)val->val.ptr; - if (array) { - for (i = 0; array[i] != NULL; i++) { - ckd_free(array[i]); - } - ckd_free(array); - } + char ** array = (char **)val->val.ptr; + if (array) { + for (i = 0; array[i] != NULL; i++) { + ckd_free(array[i]); + } + ckd_free(array); + } } if (val->type & ARG_STRING) ckd_free(val->val.ptr); @@ -553,10 +555,10 @@ int32 i, j, n, argstart; hash_table_t *defidx = NULL; cmd_ln_t *cmdln; - + /* Construct command-line object */ if (inout_cmdln == NULL) { - cmdln = ckd_calloc(1, sizeof(*cmdln)); + cmdln = (cmd_ln_t*)ckd_calloc(1, sizeof(*cmdln)); cmdln->refcount = 1; } else @@ -589,7 +591,7 @@ argstart = 0; if (argc > 0 && argv[0][0] != '-') { argstart = 1; - } + } /* Parse command line arguments (name-value pairs) */ for (j = argstart; j < argc; j += 2) { @@ -607,10 +609,10 @@ else continue; } - argdef = v; + argdef = (arg_t *)v; - /* Enter argument value */ - if (j + 1 >= argc) { + /* Enter argument value */ + if (j + 1 >= argc) { cmd_ln_print_help_r(cmdln, stderr, defn); E_ERROR("Argument value for '%s' missing\n", argv[j]); goto error; @@ -627,7 +629,9 @@ } } - if ((v = hash_table_enter(cmdln->ht, argv[j], (void *)val)) != (void *)val) { + if ((v = hash_table_enter(cmdln->ht, argv[j], (void *)val)) != + (void *)val) + { if (strict) { cmd_ln_val_free(val); E_ERROR("Duplicate argument name in arguments: %s\n", @@ -675,32 +679,16 @@ E_ERROR("No arguments given, available options are:\n"); cmd_ln_print_help_r(cmdln, stderr, defn); if (defidx) - hash_table_free(defidx); + hash_table_free(defidx); if (inout_cmdln == NULL) - cmd_ln_free_r(cmdln); + cmd_ln_free_r(cmdln); return NULL; } -#ifndef _WIN32_WCE - /* Set up logging. We need to do this earlier because we want to dump - * the information to the configured log, not to the stderr. */ - if (cmd_ln_exists_r(cmdln, "-logfn") && cmd_ln_str_r(cmdln, "-logfn")) - err_set_logfile(cmd_ln_str_r(cmdln, "-logfn")); - - /* Echo command line */ - E_INFO("Parsing command line:\n"); - for (i = 0; i < argc; i++) { - if (argv[i][0] == '-') - E_INFOCONT("\\\n\t"); - E_INFOCONT("%s ", argv[i]); - } - E_INFOCONT("\n\n"); - fflush(stderr); - - /* Print configuration */ - E_INFOCONT("Current configuration:\n"); - arg_dump_r(cmdln, err_get_logfp(), defn, 0); -#endif + /* If we use it from something except pocketsphinx, print current values */ + if (!cmd_ln_exists_r(cmdln, "-logfn") && err_get_logfp()) { + cmd_ln_print_values_r(cmdln, err_get_logfp(), defn); + } hash_table_free(defidx); return cmdln; @@ -736,7 +724,7 @@ va_end(args); /* Now allocate f_argv */ - f_argv = ckd_calloc(f_argc, sizeof(*f_argv)); + f_argv = (char**)ckd_calloc(f_argc, sizeof(*f_argv)); va_start(args, strict); f_argc = 0; while ((arg = va_arg(args, const char *))) { @@ -803,9 +791,9 @@ */ argv_size = 10; argc = 0; - f_argv = ckd_calloc(argv_size, sizeof(char *)); + f_argv = (char **)ckd_calloc(argv_size, sizeof(char *)); /* Silently make room for \0 */ - str = ckd_calloc(arg_max_length + 1, sizeof(char)); + str = (char* )ckd_calloc(arg_max_length + 1, sizeof(char)); quoting = 0; do { @@ -840,7 +828,7 @@ if (argc >= argv_size) { char **tmp_argv; if (!(tmp_argv = - ckd_realloc(f_argv, argv_size * 2 * sizeof(char *)))) { + (char **)ckd_realloc(f_argv, argv_size * 2 * sizeof(char *)))) { rv = 1; break; } @@ -869,7 +857,7 @@ if (len >= arg_max_length) { /* Make room for more chars (including the \0 !) */ char *tmp_str = str; - if ((tmp_str = ckd_realloc(str, (1 + arg_max_length * 2) * sizeof(char))) == NULL) { + if ((tmp_str = (char *)ckd_realloc(str, (1 + arg_max_length * 2) * sizeof(char))) == NULL) { rv = 1; break; } @@ -916,13 +904,21 @@ } void -cmd_ln_print_help_r(cmd_ln_t *cmdln, FILE * fp, arg_t const* defn) +cmd_ln_print_help_r(cmd_ln_t *cmdln, FILE *fp, arg_t const* defn) { if (defn == NULL) return; fprintf(fp, "Arguments list definition:\n"); - arg_dump_r(cmdln, fp, defn, 1); - fflush(fp); + arg_dump_r(cmdln, fp, defn, TRUE); +} + +void +cmd_ln_print_values_r(cmd_ln_t *cmdln, FILE *fp, arg_t const* defn) +{ + if (defn == NULL) + return; + fprintf(fp, "Current configuration:\n"); + arg_dump_r(cmdln, fp, defn, FALSE); } int @@ -1047,7 +1043,7 @@ entries = hash_table_tolist(cmdln->ht, &n); for (gn = entries; gn; gn = gnode_next(gn)) { - hash_entry_t *e = gnode_ptr(gn); + hash_entry_t *e = (hash_entry_t *)gnode_ptr(gn); cmd_ln_val_free((cmd_ln_val_t *)e->val); } glist_free(entries); @@ -1074,3 +1070,5 @@ cmd_ln_free_r(global_cmdln); global_cmdln = NULL; } + +/* vim: set ts=4 sw=4: */ diff -Nru sphinxbase-0.8/src/libsphinxbase/util/dtoa.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/dtoa.c --- sphinxbase-0.8/src/libsphinxbase/util/dtoa.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/dtoa.c 2015-03-24 17:26:36.000000000 +0000 @@ -17,14 +17,68 @@ * ***************************************************************/ -/* Please send bug reports to David M. Gay (dmg at acm dot org, - * with " at " changed at "@" and " dot " changed to "."). */ +/**************************************************************** + * This is dtoa.c by David M. Gay, downloaded from + * http://www.netlib.org/fp/dtoa.c on April 15, 2009 and modified for + * inclusion into the Python core by Mark E. T. Dickinson and Eric V. Smith. + * It was taken from Python distribution then and imported into sphinxbase. + * Python version is preferred due to cleanups, though original + * version at netlib is still maintained. + * + * Please remember to check http://www.netlib.org/fp regularly for bugfixes and updates. + * + * The major modifications from Gay's original code are as follows: + * + * 0. The original code has been specialized to Sphinxbase's needs by removing + * many of the #ifdef'd sections. In particular, code to support VAX and + * IBM floating-point formats, hex NaNs, hex floats, locale-aware + * treatment of the decimal point, and setting of the inexact flag have + * been removed. + * + * 1. We use cdk_calloc and ckd_free in place of malloc and free. + * + * 2. The public functions strtod, dtoa and freedtoa all now have + * a sb_ prefix. + * + * 3. Instead of assuming that malloc always succeeds, we thread + * malloc failures through the code. The functions + * + * Balloc, multadd, s2b, i2b, mult, pow5mult, lshift, diff, d2b + * + * of return type *Bigint all return NULL to indicate a malloc failure. + * Similarly, rv_alloc and nrv_alloc (return type char *) return NULL on + * failure. bigcomp now has return type int (it used to be void) and + * returns -1 on failure and 0 otherwise. sb_dtoa returns NULL + * on failure. sb_strtod indicates failure due to malloc failure + * by returning -1.0, setting errno=ENOMEM and *se to s00. + * + * 4. The static variable dtoa_result has been removed. Callers of + * sb_dtoa are expected to call sb_freedtoa to free the memory allocated + * by sb_dtoa. + * + * 5. The code has been reformatted to better fit with C style. + * + * 6. A bug in the memory allocation has been fixed: to avoid FREEing memory + * that hasn't been MALLOC'ed, private_mem should only be used when k <= + * Kmax. + * + * 7. sb_strtod has been modified so that it doesn't accept strings with + * leading whitespace. + * + * 8. Global static variables are not used due to memory access issues. Fixes + * usage from multiple threads. + * + ***************************************************************/ + +/* Please send bug reports for the original dtoa.c code to David M. Gay (dmg + * at acm dot org, with " at " changed at "@" and " dot " changed to "."). + */ /* On a machine with IEEE extended-precision registers, it is * necessary to specify double-precision (53-bit) rounding precision * before invoking strtod or dtoa. If the machine uses (the equivalent * of) Intel 80x87 arithmetic, the call - * _control87(PC_53, MCW_PC); + * _control87(PC_53, MCW_PC); * does this with many compilers. Whether this or another call is * appropriate depends on the compiler; for this to work, it may be * necessary to #include "float.h" or another system-dependent header @@ -43,283 +97,133 @@ * * Modifications: * - * 1. We only require IEEE, IBM, or VAX double-precision - * arithmetic (not IEEE double-extended). - * 2. We get by with floating-point arithmetic in a case that - * Clinger missed -- when we're computing d * 10^n - * for a small integer d and the integer n is not too - * much larger than 22 (the maximum integer k for which - * we can represent 10^k exactly), we may be able to - * compute (d*10^k) * 10^(e-k) with just one roundoff. - * 3. Rather than a bit-at-a-time adjustment of the binary - * result in the hard case, we use floating-point - * arithmetic to determine the adjustment to within - * one bit; only in really hard cases do we need to - * compute a second residual. - * 4. Because of 3., we don't need a large table of powers of 10 - * for ten-to-e (just some small tables, e.g. of 10^k - * for 0 <= k <= 22). + * 1. We only require IEEE, IBM, or VAX double-precision + * arithmetic (not IEEE double-extended). + * 2. We get by with floating-point arithmetic in a case that + * Clinger missed -- when we're computing d * 10^n + * for a small integer d and the integer n is not too + * much larger than 22 (the maximum integer k for which + * we can represent 10^k exactly), we may be able to + * compute (d*10^k) * 10^(e-k) with just one roundoff. + * 3. Rather than a bit-at-a-time adjustment of the binary + * result in the hard case, we use floating-point + * arithmetic to determine the adjustment to within + * one bit; only in really hard cases do we need to + * compute a second residual. + * 4. Because of 3., we don't need a large table of powers of 10 + * for ten-to-e (just some small tables, e.g. of 10^k + * for 0 <= k <= 22). */ -/* - * This file has been modified to remove dtoa() and all - * non-reentrancy. This makes it slower, but it also makes life a lot - * easier on Windows and other platforms without static lock - * initializers (grumble). - */ +/* Linking of sphinxbase's #defines to Gay's #defines starts here. */ -/* Added by dhuggins@cs.cmu.edu to use autoconf results. */ -/* We do not care about the VAX. */ +#ifdef HAVE_CONFIG_H #include "config.h" -#ifdef WORDS_BIGENDIAN -#define IEEE_MC68k -#else -#define IEEE_8087 -#endif -#ifndef HAVE_LONG_LONG -#define NO_LONG_LONG -#endif -#define Omit_Private_Memory -#include "sphinxbase/ckd_alloc.h" -#undef USE_LOCALE - -/* Correct totally bogus typedefs in this code. */ -#include "sphinxbase/prim_type.h" -#define Long int32 /* ZOMG */ -#define ULong uint32 /* WTF */ - -/* - * #define IEEE_8087 for IEEE-arithmetic machines where the least - * significant byte has the lowest address. - * #define IEEE_MC68k for IEEE-arithmetic machines where the most - * significant byte has the lowest address. - * #define Long int on machines with 32-bit ints and 64-bit longs. - * #define IBM for IBM mainframe-style floating-point arithmetic. - * #define VAX for VAX-style floating-point arithmetic (D_floating). - * #define No_leftright to omit left-right logic in fast floating-point - * computation of dtoa. - * #define Honor_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3 - * and strtod and dtoa should round accordingly. - * #define Check_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3 - * and Honor_FLT_ROUNDS is not #defined. - * #define RND_PRODQUOT to use rnd_prod and rnd_quot (assembly routines - * that use extended-precision instructions to compute rounded - * products and quotients) with IBM. - * #define ROUND_BIASED for IEEE-format with biased rounding. - * #define Inaccurate_Divide for IEEE-format with correctly rounded - * products but inaccurate quotients, e.g., for Intel i860. - * #define NO_LONG_LONG on machines that do not have a "long long" - * integer type (of >= 64 bits). On such machines, you can - * #define Just_16 to store 16 bits per 32-bit Long when doing - * high-precision integer arithmetic. Whether this speeds things - * up or slows things down depends on the machine and the number - * being converted. If long long is available and the name is - * something other than "long long", #define Llong to be the name, - * and if "unsigned Llong" does not work as an unsigned version of - * Llong, #define #ULLong to be the corresponding unsigned type. - * #define KR_headers for old-style C function headers. - * #define Bad_float_h if your system lacks a float.h or if it does not - * define some or all of DBL_DIG, DBL_MAX_10_EXP, DBL_MAX_EXP, - * FLT_RADIX, FLT_ROUNDS, and DBL_MAX. - * #define MALLOC your_malloc, where your_malloc(n) acts like malloc(n) - * if memory is available and otherwise does something you deem - * appropriate. If MALLOC is undefined, malloc will be invoked - * directly -- and assumed always to succeed. - * #define Omit_Private_Memory to omit logic (added Jan. 1998) for making - * memory allocations from a private pool of memory when possible. - * When used, the private pool is PRIVATE_MEM bytes long: 2304 bytes, - * unless #defined to be a different length. This default length - * suffices to get rid of MALLOC calls except for unusual cases, - * such as decimal-to-binary conversion of a very long string of - * digits. The longest string dtoa can return is about 751 bytes - * long. For conversions by strtod of strings of 800 digits and - * all dtoa conversions in single-threaded executions with 8-byte - * pointers, PRIVATE_MEM >= 7400 appears to suffice; with 4-byte - * pointers, PRIVATE_MEM >= 7112 appears adequate. - * #define NO_INFNAN_CHECK if you do not wish to have INFNAN_CHECK - * #defined automatically on IEEE systems. On such systems, - * when INFNAN_CHECK is #defined, strtod checks - * for Infinity and NaN (case insensitively). On some systems - * (e.g., some HP systems), it may be necessary to #define NAN_WORD0 - * appropriately -- to the most significant word of a quiet NaN. - * (On HP Series 700/800 machines, -DNAN_WORD0=0x7ff40000 works.) - * When INFNAN_CHECK is #defined and No_Hex_NaN is not #defined, - * strtod also accepts (case insensitively) strings of the form - * NaN(x), where x is a string of hexadecimal digits and spaces; - * if there is only one string of hexadecimal digits, it is taken - * for the 52 fraction bits of the resulting NaN; if there are two - * or more strings of hex digits, the first is for the high 20 bits, - * the second and subsequent for the low 32 bits, with intervening - * white space ignored; but if this results in none of the 52 - * fraction bits being on (an IEEE Infinity symbol), then NAN_WORD0 - * and NAN_WORD1 are used instead. - * #define MULTIPLE_THREADS if the system offers preemptively scheduled - * multiple threads. In this case, you must provide (or suitably - * #define) two locks, acquired by ACQUIRE_DTOA_LOCK(n) and freed - * by FREE_DTOA_LOCK(n) for n = 0 or 1. (The second lock, accessed - * in pow5mult, ensures lazy evaluation of only one copy of high - * powers of 5; omitting this lock would introduce a small - * probability of wasting memory, but would otherwise be harmless.) - * You must also invoke freedtoa(s) to free the value s returned by - * dtoa. You may do so whether or not MULTIPLE_THREADS is #defined. - * #define NO_IEEE_Scale to disable new (Feb. 1997) logic in strtod that - * avoids underflows on inputs whose result does not underflow. - * If you #define NO_IEEE_Scale on a machine that uses IEEE-format - * floating-point numbers and flushes underflows to zero rather - * than implementing gradual underflow, then you must also #define - * Sudden_Underflow. - * #define YES_ALIAS to permit aliasing certain double values with - * arrays of ULongs. This leads to slightly better code with - * some compilers and was always used prior to 19990916, but it - * is not strictly legal and can cause trouble with aggressively - * optimizing compilers (e.g., gcc 2.95.1 under -O2). - * #define USE_LOCALE to use the current locale's decimal_point value. - * #define SET_INEXACT if IEEE arithmetic is being used and extra - * computation should be done to set the inexact flag when the - * result is inexact and avoid setting inexact when the result - * is exact. In this case, dtoa.c must be compiled in - * an environment, perhaps provided by #include "dtoa.c" in a - * suitable wrapper, that defines two functions, - * int get_inexact(void); - * void clear_inexact(void); - * such that get_inexact() returns a nonzero value if the - * inexact bit is already set, and clear_inexact() sets the - * inexact bit to 0. When SET_INEXACT is #defined, strtod - * also does extra computations to set the underflow and overflow - * flags when appropriate (i.e., when the result is tiny and - * inexact or when it is a numeric value rounded to +-infinity). - * #define NO_ERRNO if strtod should not assign errno = ERANGE when - * the result overflows to +-Infinity or underflows to 0. - */ - -#ifndef Long -#define Long long -#endif -#ifndef ULong -typedef unsigned Long ULong; -#endif - -#ifdef DEBUG -#include "stdio.h" -#define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);} -#endif - -#include "stdlib.h" -#include "string.h" - -#ifdef USE_LOCALE -#include "locale.h" #endif -/* Private memory and other non-reentrant stuff removed. */ +#include +#include +#include +#include -#undef IEEE_Arith -#undef Avoid_Underflow -#ifdef IEEE_MC68k -#define IEEE_Arith -#endif -#ifdef IEEE_8087 -#define IEEE_Arith -#endif +#include +#include -#ifdef IEEE_Arith -#ifndef NO_INFNAN_CHECK -#undef INFNAN_CHECK -#define INFNAN_CHECK -#endif +#ifdef WORDS_BIGENDIAN +#define IEEE_MC68k #else -#undef INFNAN_CHECK +#define IEEE_8087 #endif -#include "errno.h" +#define Long int32 /* ZOMG */ +#define ULong uint32 /* WTF */ +#ifdef HAVE_LONG_LONG +#define ULLong uint64 +#endif -#ifdef Bad_float_h +#define MALLOC ckd_malloc +#define FREE ckd_free -#ifdef IEEE_Arith #define DBL_DIG 15 #define DBL_MAX_10_EXP 308 #define DBL_MAX_EXP 1024 #define FLT_RADIX 2 -#endif /*IEEE_Arith*/ -#ifdef IBM -#define DBL_DIG 16 -#define DBL_MAX_10_EXP 75 -#define DBL_MAX_EXP 63 -#define FLT_RADIX 16 -#define DBL_MAX 7.2370055773322621e+75 +/* maximum permitted exponent value for strtod; exponents larger than + MAX_ABS_EXP in absolute value get truncated to +-MAX_ABS_EXP. MAX_ABS_EXP + should fit into an int. */ +#ifndef MAX_ABS_EXP +#define MAX_ABS_EXP 1100000000U +#endif +/* Bound on length of pieces of input strings in sb_strtod; specifically, + this is used to bound the total number of digits ignoring leading zeros and + the number of digits that follow the decimal point. Ideally, MAX_DIGITS + should satisfy MAX_DIGITS + 400 < MAX_ABS_EXP; that ensures that the + exponent clipping in sb_strtod can't affect the value of the output. */ +#ifndef MAX_DIGITS +#define MAX_DIGITS 1000000000U #endif -#ifdef VAX -#define DBL_DIG 16 -#define DBL_MAX_10_EXP 38 -#define DBL_MAX_EXP 127 -#define FLT_RADIX 2 -#define DBL_MAX 1.7014118346046923e+38 -#endif +/* End sphinxbase #define linking */ -#ifndef LONG_MAX -#define LONG_MAX 2147483647 +#ifdef DEBUG +#define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);} #endif -#else /* ifndef Bad_float_h */ -#include "float.h" -#endif /* Bad_float_h */ - -#ifndef __MATH_H__ -#include "math.h" -#endif #ifdef __cplusplus extern "C" { #endif -#ifndef CONST -#ifdef KR_headers -#define CONST /* blank */ +typedef union { double d; ULong L[2]; } U; + +#ifdef IEEE_8087 +#define word0(x) (x)->L[1] +#define word1(x) (x)->L[0] #else -#define CONST const -#endif +#define word0(x) (x)->L[0] +#define word1(x) (x)->L[1] #endif +#define dval(x) (x)->d - -#if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1 -Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined. +#ifndef STRTOD_DIGLIM +#define STRTOD_DIGLIM 40 #endif -/** Union to extract the bytes of a double */ -typedef union { double d; ULong L[2]; } U; - -#ifdef YES_ALIAS -#define dval(x) x -#ifdef IEEE_8087 -#define word0(x) ((ULong *)&x)[1] -#define word1(x) ((ULong *)&x)[0] -#else -#define word0(x) ((ULong *)&x)[0] -#define word1(x) ((ULong *)&x)[1] +/* maximum permitted exponent value for strtod; exponents larger than + MAX_ABS_EXP in absolute value get truncated to +-MAX_ABS_EXP. MAX_ABS_EXP + should fit into an int. */ +#ifndef MAX_ABS_EXP +#define MAX_ABS_EXP 1100000000U #endif -#else -#ifdef IEEE_8087 -#define word0(x) ((U*)&x)->L[1] -#define word1(x) ((U*)&x)->L[0] -#else -#define word0(x) ((U*)&x)->L[0] -#define word1(x) ((U*)&x)->L[1] +/* Bound on length of pieces of input strings in sb_strtod; specifically, + this is used to bound the total number of digits ignoring leading zeros and + the number of digits that follow the decimal point. Ideally, MAX_DIGITS + should satisfy MAX_DIGITS + 400 < MAX_ABS_EXP; that ensures that the + exponent clipping in sb_strtod can't affect the value of the output. */ +#ifndef MAX_DIGITS +#define MAX_DIGITS 1000000000U #endif -#define dval(x) ((U*)&x)->d + +/* Guard against trying to use the above values on unusual platforms with ints + * of width less than 32 bits. */ +#if MAX_ABS_EXP > 0x7fffffff +#error "MAX_ABS_EXP should fit in an int" +#endif +#if MAX_DIGITS > 0x7fffffff +#error "MAX_DIGITS should fit in an int" #endif /* The following definition of Storeinc is appropriate for MIPS processors. * An alternative that might be better on some machines is * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff) */ -#if defined(IEEE_8087) + defined(VAX) -#define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \ -((unsigned short *)a)[0] = (unsigned short)c, a++) +#if defined(IEEE_8087) +#define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \ + ((unsigned short *)a)[0] = (unsigned short)c, a++) #else -#define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \ -((unsigned short *)a)[1] = (unsigned short)c, a++) +#define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \ + ((unsigned short *)a)[1] = (unsigned short)c, a++) #endif /* #define P DBL_MANT_DIG */ @@ -328,15 +232,17 @@ /* Quick_max = floor((P-1)*log(FLT_RADIX)/log(10) - 1) */ /* Int_max = floor(P*log(FLT_RADIX)/log(10) - 1) */ -#ifdef IEEE_Arith #define Exp_shift 20 #define Exp_shift1 20 #define Exp_msk1 0x100000 #define Exp_msk11 0x100000 #define Exp_mask 0x7ff00000 #define P 53 +#define Nbits 53 #define Bias 1023 +#define Emax 1023 #define Emin (-1022) +#define Etiny (-1074) /* smallest denormal is 2**Etiny */ #define Exp_1 0x3ff00000 #define Exp_11 0x3ff00000 #define Ebits 11 @@ -346,19 +252,12 @@ #define Bletch 0x10 #define Bndry_mask 0xfffff #define Bndry_mask1 0xfffff -#define LSB 1 #define Sign_bit 0x80000000 #define Log2P 1 #define Tiny0 0 #define Tiny1 1 #define Quick_max 14 #define Int_max 14 -#ifndef NO_IEEE_Scale -#define Avoid_Underflow -#ifdef Flush_Denorm /* debugging option */ -#undef Sudden_Underflow -#endif -#endif #ifndef Flt_Rounds #ifdef FLT_ROUNDS @@ -368,2030 +267,2719 @@ #endif #endif /*Flt_Rounds*/ -#ifdef Honor_FLT_ROUNDS -#define Rounding rounding -#undef Check_FLT_ROUNDS -#define Check_FLT_ROUNDS -#else #define Rounding Flt_Rounds -#endif - -#else /* ifndef IEEE_Arith */ -#undef Check_FLT_ROUNDS -#undef Honor_FLT_ROUNDS -#undef SET_INEXACT -#undef Sudden_Underflow -#define Sudden_Underflow -#ifdef IBM -#undef Flt_Rounds -#define Flt_Rounds 0 -#define Exp_shift 24 -#define Exp_shift1 24 -#define Exp_msk1 0x1000000 -#define Exp_msk11 0x1000000 -#define Exp_mask 0x7f000000 -#define P 14 -#define Bias 65 -#define Exp_1 0x41000000 -#define Exp_11 0x41000000 -#define Ebits 8 /* exponent has 7 bits, but 8 is the right value in b2d */ -#define Frac_mask 0xffffff -#define Frac_mask1 0xffffff -#define Bletch 4 -#define Ten_pmax 22 -#define Bndry_mask 0xefffff -#define Bndry_mask1 0xffffff -#define LSB 1 -#define Sign_bit 0x80000000 -#define Log2P 4 -#define Tiny0 0x100000 -#define Tiny1 0 -#define Quick_max 14 -#define Int_max 15 -#else /* VAX */ -#undef Flt_Rounds -#define Flt_Rounds 1 -#define Exp_shift 23 -#define Exp_shift1 7 -#define Exp_msk1 0x80 -#define Exp_msk11 0x800000 -#define Exp_mask 0x7f80 -#define P 56 -#define Bias 129 -#define Exp_1 0x40800000 -#define Exp_11 0x4080 -#define Ebits 8 -#define Frac_mask 0x7fffff -#define Frac_mask1 0xffff007f -#define Ten_pmax 24 -#define Bletch 2 -#define Bndry_mask 0xffff007f -#define Bndry_mask1 0xffff007f -#define LSB 0x10000 -#define Sign_bit 0x8000 -#define Log2P 1 -#define Tiny0 0x80 -#define Tiny1 0 -#define Quick_max 15 -#define Int_max 15 -#endif /* IBM, VAX */ -#endif /* IEEE_Arith */ - -#ifndef IEEE_Arith -#define ROUND_BIASED -#endif - -#ifdef RND_PRODQUOT -#define rounded_product(a,b) a = rnd_prod(a, b) -#define rounded_quotient(a,b) a = rnd_quot(a, b) -#ifdef KR_headers -extern double rnd_prod(), rnd_quot(); -#else -extern double rnd_prod(double, double), rnd_quot(double, double); -#endif -#else -#define rounded_product(a,b) a *= b -#define rounded_quotient(a,b) a /= b -#endif #define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1)) #define Big1 0xffffffff -#ifndef Pack_32 -#define Pack_32 -#endif +/* Standard NaN used by sb_stdnan. */ -#ifdef KR_headers -#define FFFFFFFF ((((unsigned long)0xffff)<<16)|(unsigned long)0xffff) -#else -#define FFFFFFFF 0xffffffffUL -#endif +#define NAN_WORD0 0x7ff80000 +#define NAN_WORD1 0 -#ifdef NO_LONG_LONG -#undef ULLong -#ifdef Just_16 -#undef Pack_32 -/* When Pack_32 is not defined, we store 16 bits per 32-bit Long. - * This makes some inner loops simpler and sometimes saves work - * during multiplications, but it often seems to make things slightly - * slower. Hence the default is now to store 32 bits per Long. - */ -#endif -#else /* long long available */ -#ifndef Llong -#define Llong long long -#endif -#ifndef ULLong -#define ULLong unsigned Llong -#endif -#endif /* NO_LONG_LONG */ +/* Bits of the representation of positive infinity. */ -#ifndef MULTIPLE_THREADS -#define ACQUIRE_DTOA_LOCK(n) /*nothing*/ -#define FREE_DTOA_LOCK(n) /*nothing*/ -#endif +#define POSINF_WORD0 0x7ff00000 +#define POSINF_WORD1 0 -#define Kmax 15 +/* struct BCinfo is used to pass information from sb_strtod to bigcomp */ -#ifdef __cplusplus -extern "C" double sb_strtod(const char *s00, char **se); -#endif +typedef struct BCinfo BCinfo; +struct +BCinfo { + int e0, nd, nd0, scale; +}; + +#define FFFFFFFF 0xffffffffUL - struct +#define Kmax 7 + +/* struct Bigint is used to represent arbitrary-precision integers. These + integers are stored in sign-magnitude format, with the magnitude stored as + an array of base 2**32 digits. Bigints are always normalized: if x is a + Bigint then x->wds >= 1, and either x->wds == 1 or x[wds-1] is nonzero. + + The Bigint fields are as follows: + + - next is a header used by Balloc and Bfree to keep track of lists + of freed Bigints; it's also used for the linked list of + powers of 5 of the form 5**2**i used by pow5mult. + - k indicates which pool this Bigint was allocated from + - maxwds is the maximum number of words space was allocated for + (usually maxwds == 2**k) + - sign is 1 for negative Bigints, 0 for positive. The sign is unused + (ignored on inputs, set to 0 on outputs) in almost all operations + involving Bigints: a notable exception is the diff function, which + ignores signs on inputs but sets the sign of the output correctly. + - wds is the actual number of significant words + - x contains the vector of words (digits) for this Bigint, from least + significant (x[0]) to most significant (x[wds-1]). +*/ + +struct Bigint { - struct Bigint *next; - int k, maxwds, sign, wds; - ULong x[1]; - }; - - typedef struct Bigint Bigint; - - static Bigint * -Balloc -#ifdef KR_headers - (k) int k; -#else - (int k) + struct Bigint *next; + int k, maxwds, sign, wds; + ULong x[1]; +}; + +typedef struct Bigint Bigint; + +#define SPHINXBASE_USING_MEMORY_DEBUGGER 1 + +#ifndef SPHINXBASE_USING_MEMORY_DEBUGGER + +#ifndef PRIVATE_MEM +#define PRIVATE_MEM 2304 #endif +#define PRIVATE_mem ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double)) +static double private_mem[PRIVATE_mem], *pmem_next = private_mem; + +/* Memory management: memory is allocated from, and returned to, Kmax+1 pools + of memory, where pool k (0 <= k <= Kmax) is for Bigints b with b->maxwds == + 1 << k. These pools are maintained as linked lists, with freelist[k] + pointing to the head of the list for pool k. + + On allocation, if there's no free slot in the appropriate pool, MALLOC is + called to get more memory. This memory is not returned to the system until + Python quits. There's also a private memory pool that's allocated from + in preference to using MALLOC. + + For Bigints with more than (1 << Kmax) digits (which implies at least 1233 + decimal digits), memory is directly allocated using MALLOC, and freed using + FREE. + + XXX: it would be easy to bypass this memory-management system and + translate each call to Balloc into a call to PyMem_Malloc, and each + Bfree to PyMem_Free. Investigate whether this has any significant + performance on impact. */ + +static Bigint *freelist[Kmax+1]; + +/* Allocate space for a Bigint with up to 1<k = k; - rv->maxwds = x; - rv->sign = rv->wds = 0; - return rv; -} - - static void -Bfree -#ifdef KR_headers - (v) Bigint *v; + int x; + Bigint *rv; + unsigned int len; + + if (k <= Kmax && (rv = freelist[k])) + freelist[k] = rv->next; + else { + x = 1 << k; + len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1) + /sizeof(double); + if (k <= Kmax && pmem_next - private_mem + len <= PRIVATE_mem) { + rv = (Bigint*)pmem_next; + pmem_next += len; + } + else { + rv = (Bigint*)MALLOC(len*sizeof(double)); + if (rv == NULL) + return NULL; + } + rv->k = k; + rv->maxwds = x; + } + rv->sign = rv->wds = 0; + return rv; +} + +/* Free a Bigint allocated with Balloc */ + +static void +Bfree(Bigint *v) +{ + if (v) { + if (v->k > Kmax) + FREE((void*)v); + else { + v->next = freelist[v->k]; + freelist[v->k] = v; + } + } +} + #else - (Bigint *v) -#endif + +/* Alternative versions of Balloc and Bfree that use PyMem_Malloc and + PyMem_Free directly in place of the custom memory allocation scheme above. + These are provided for the benefit of memory debugging tools like + Valgrind. */ + +/* Allocate space for a Bigint with up to 1<k = k; + rv->maxwds = x; + rv->sign = rv->wds = 0; + return rv; } -#define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \ -y->wds*sizeof(Long) + 2*sizeof(int)) +/* Free a Bigint allocated with Balloc */ - static Bigint * -multadd -#ifdef KR_headers - (b, m, a) Bigint *b; int m, a; -#else - (Bigint *b, int m, int a) /* multiply by m and add a */ -#endif +static void +Bfree(Bigint *v) +{ + if (v) { + FREE((void*)v); + } +} + +#endif /* SPHINXBASE_USING_MEMORY_DEBUGGER */ + +#define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \ + y->wds*sizeof(Long) + 2*sizeof(int)) + +/* Multiply a Bigint b by m and add a. Either modifies b in place and returns + a pointer to the modified b, or Bfrees b and returns a pointer to a copy. + On failure, return NULL. In this case, b will have been already freed. */ + +static Bigint * +multadd(Bigint *b, int m, int a) /* multiply by m and add a */ { - int i, wds; + int i, wds; #ifdef ULLong - ULong *x; - ULLong carry, y; + ULong *x; + ULLong carry, y; #else - ULong carry, *x, y; -#ifdef Pack_32 - ULong xi, z; -#endif + ULong carry, *x, y; + ULong xi, z; #endif - Bigint *b1; - - wds = b->wds; - x = b->x; - i = 0; - carry = a; - do { + Bigint *b1; + + wds = b->wds; + x = b->x; + i = 0; + carry = a; + do { #ifdef ULLong - y = *x * (ULLong)m + carry; - carry = y >> 32; - *x++ = y & FFFFFFFF; -#else -#ifdef Pack_32 - xi = *x; - y = (xi & 0xffff) * m + carry; - z = (xi >> 16) * m + (y >> 16); - carry = z >> 16; - *x++ = (z << 16) + (y & 0xffff); -#else - y = *x * m + carry; - carry = y >> 16; - *x++ = y & 0xffff; -#endif -#endif - } - while(++i < wds); - if (carry) { - if (wds >= b->maxwds) { - b1 = Balloc(b->k+1); - Bcopy(b1, b); - Bfree(b); - b = b1; - } - b->x[wds++] = carry; - b->wds = wds; - } - return b; - } - - static Bigint * -s2b -#ifdef KR_headers - (s, nd0, nd, y9) CONST char *s; int nd0, nd; ULong y9; -#else - (CONST char *s, int nd0, int nd, ULong y9) -#endif + y = *x * (ULLong)m + carry; + carry = y >> 32; + *x++ = (ULong)(y & FFFFFFFF); +#else + xi = *x; + y = (xi & 0xffff) * m + carry; + z = (xi >> 16) * m + (y >> 16); + carry = z >> 16; + *x++ = (z << 16) + (y & 0xffff); +#endif + } + while(++i < wds); + if (carry) { + if (wds >= b->maxwds) { + b1 = Balloc(b->k+1); + if (b1 == NULL){ + Bfree(b); + return NULL; + } + Bcopy(b1, b); + Bfree(b); + b = b1; + } + b->x[wds++] = (ULong)carry; + b->wds = wds; + } + return b; +} + +/* convert a string s containing nd decimal digits (possibly containing a + decimal separator at position nd0, which is ignored) to a Bigint. This + function carries on where the parsing code in sb_strtod leaves off: on + entry, y9 contains the result of converting the first 9 digits. Returns + NULL on failure. */ + +static Bigint * +s2b(const char *s, int nd0, int nd, ULong y9) { - Bigint *b; - int i, k; - Long x, y; - - x = (nd + 8) / 9; - for(k = 0, y = 1; x > y; y <<= 1, k++) ; -#ifdef Pack_32 - b = Balloc(k); - b->x[0] = y9; - b->wds = 1; -#else - b = Balloc(k+1); - b->x[0] = y9 & 0xffff; - b->wds = (b->x[1] = y9 >> 16) ? 2 : 1; -#endif - - i = 9; - if (9 < nd0) { - s += 9; - do b = multadd(b, 10, *s++ - '0'); - while(++i < nd0); - s++; - } - else - s += 10; - for(; i < nd; i++) - b = multadd(b, 10, *s++ - '0'); - return b; - } - - static int -hi0bits -#ifdef KR_headers - (x) register ULong x; -#else - (register ULong x) -#endif + Bigint *b; + int i, k; + Long x, y; + + x = (nd + 8) / 9; + for(k = 0, y = 1; x > y; y <<= 1, k++) ; + b = Balloc(k); + if (b == NULL) + return NULL; + b->x[0] = y9; + b->wds = 1; + + if (nd <= 9) + return b; + + s += 9; + for (i = 9; i < nd0; i++) { + b = multadd(b, 10, *s++ - '0'); + if (b == NULL) + return NULL; + } + s++; + for(; i < nd; i++) { + b = multadd(b, 10, *s++ - '0'); + if (b == NULL) + return NULL; + } + return b; +} + +/* count leading 0 bits in the 32-bit integer x. */ + +static int +hi0bits(ULong x) { - register int k = 0; + int k = 0; - if (!(x & 0xffff0000)) { - k = 16; - x <<= 16; - } - if (!(x & 0xff000000)) { - k += 8; - x <<= 8; - } - if (!(x & 0xf0000000)) { - k += 4; - x <<= 4; - } - if (!(x & 0xc0000000)) { - k += 2; - x <<= 2; - } - if (!(x & 0x80000000)) { - k++; - if (!(x & 0x40000000)) - return 32; - } - return k; - } - - static int -lo0bits -#ifdef KR_headers - (y) ULong *y; -#else - (ULong *y) -#endif + if (!(x & 0xffff0000)) { + k = 16; + x <<= 16; + } + if (!(x & 0xff000000)) { + k += 8; + x <<= 8; + } + if (!(x & 0xf0000000)) { + k += 4; + x <<= 4; + } + if (!(x & 0xc0000000)) { + k += 2; + x <<= 2; + } + if (!(x & 0x80000000)) { + k++; + if (!(x & 0x40000000)) + return 32; + } + return k; +} + +/* count trailing 0 bits in the 32-bit integer y, and shift y right by that + number of bits. */ + +static int +lo0bits(ULong *y) { - register int k; - register ULong x = *y; + int k; + ULong x = *y; - if (x & 7) { - if (x & 1) - return 0; - if (x & 2) { - *y = x >> 1; - return 1; - } - *y = x >> 2; - return 2; - } - k = 0; - if (!(x & 0xffff)) { - k = 16; - x >>= 16; - } - if (!(x & 0xff)) { - k += 8; - x >>= 8; - } - if (!(x & 0xf)) { - k += 4; - x >>= 4; - } - if (!(x & 0x3)) { - k += 2; - x >>= 2; - } - if (!(x & 1)) { - k++; - x >>= 1; - if (!x) - return 32; - } - *y = x; - return k; - } - - static Bigint * -i2b -#ifdef KR_headers - (i) int i; -#else - (int i) -#endif + if (x & 7) { + if (x & 1) + return 0; + if (x & 2) { + *y = x >> 1; + return 1; + } + *y = x >> 2; + return 2; + } + k = 0; + if (!(x & 0xffff)) { + k = 16; + x >>= 16; + } + if (!(x & 0xff)) { + k += 8; + x >>= 8; + } + if (!(x & 0xf)) { + k += 4; + x >>= 4; + } + if (!(x & 0x3)) { + k += 2; + x >>= 2; + } + if (!(x & 1)) { + k++; + x >>= 1; + if (!x) + return 32; + } + *y = x; + return k; +} + +/* convert a small nonnegative integer to a Bigint */ + +static Bigint * +i2b(int i) { - Bigint *b; + Bigint *b; - b = Balloc(1); - b->x[0] = i; - b->wds = 1; - return b; - } + b = Balloc(1); + if (b == NULL) + return NULL; + b->x[0] = i; + b->wds = 1; + return b; +} - static Bigint * -mult -#ifdef KR_headers - (a, b) Bigint *a, *b; -#else - (Bigint *a, Bigint *b) -#endif +/* multiply two Bigints. Returns a new Bigint, or NULL on failure. Ignores + the signs of a and b. */ + +static Bigint * +mult(Bigint *a, Bigint *b) { - Bigint *c; - int k, wa, wb, wc; - ULong *x, *xa, *xae, *xb, *xbe, *xc, *xc0; - ULong y; + Bigint *c; + int k, wa, wb, wc; + ULong *x, *xa, *xae, *xb, *xbe, *xc, *xc0; + ULong y; #ifdef ULLong - ULLong carry, z; + ULLong carry, z; #else - ULong carry, z; -#ifdef Pack_32 - ULong z2; -#endif + ULong carry, z; + ULong z2; #endif - if (a->wds < b->wds) { - c = a; - a = b; - b = c; - } - k = a->k; - wa = a->wds; - wb = b->wds; - wc = wa + wb; - if (wc > a->maxwds) - k++; - c = Balloc(k); - for(x = c->x, xa = x + wc; x < xa; x++) - *x = 0; - xa = a->x; - xae = xa + wa; - xb = b->x; - xbe = xb + wb; - xc0 = c->x; + if ((!a->x[0] && a->wds == 1) || (!b->x[0] && b->wds == 1)) { + c = Balloc(0); + if (c == NULL) + return NULL; + c->wds = 1; + c->x[0] = 0; + return c; + } + + if (a->wds < b->wds) { + c = a; + a = b; + b = c; + } + k = a->k; + wa = a->wds; + wb = b->wds; + wc = wa + wb; + if (wc > a->maxwds) + k++; + c = Balloc(k); + if (c == NULL) + return NULL; + for(x = c->x, xa = x + wc; x < xa; x++) + *x = 0; + xa = a->x; + xae = xa + wa; + xb = b->x; + xbe = xb + wb; + xc0 = c->x; #ifdef ULLong - for(; xb < xbe; xc0++) { - if ((y = *xb++)) { - x = xa; - xc = xc0; - carry = 0; - do { - z = *x++ * (ULLong)y + *xc + carry; - carry = z >> 32; - *xc++ = z & FFFFFFFF; - } - while(x < xae); - *xc = carry; - } - } -#else -#ifdef Pack_32 - for(; xb < xbe; xb++, xc0++) { - if (y = *xb & 0xffff) { - x = xa; - xc = xc0; - carry = 0; - do { - z = (*x & 0xffff) * y + (*xc & 0xffff) + carry; - carry = z >> 16; - z2 = (*x++ >> 16) * y + (*xc >> 16) + carry; - carry = z2 >> 16; - Storeinc(xc, z2, z); - } - while(x < xae); - *xc = carry; - } - if (y = *xb >> 16) { - x = xa; - xc = xc0; - carry = 0; - z2 = *xc; - do { - z = (*x & 0xffff) * y + (*xc >> 16) + carry; - carry = z >> 16; - Storeinc(xc, z, z2); - z2 = (*x++ >> 16) * y + (*xc & 0xffff) + carry; - carry = z2 >> 16; - } - while(x < xae); - *xc = z2; - } - } -#else - for(; xb < xbe; xc0++) { - if (y = *xb++) { - x = xa; - xc = xc0; - carry = 0; - do { - z = *x++ * y + *xc + carry; - carry = z >> 16; - *xc++ = z & 0xffff; - } - while(x < xae); - *xc = carry; - } - } -#endif -#endif - for(xc0 = c->x, xc = xc0 + wc; wc > 0 && !*--xc; --wc) ; - c->wds = wc; - return c; - } - - static Bigint * -pow5mult -#ifdef KR_headers - (b, k) Bigint *b; int k; -#else - (Bigint *b, int k) -#endif + for(; xb < xbe; xc0++) { + if ((y = *xb++)) { + x = xa; + xc = xc0; + carry = 0; + do { + z = *x++ * (ULLong)y + *xc + carry; + carry = z >> 32; + *xc++ = (ULong)(z & FFFFFFFF); + } + while(x < xae); + *xc = (ULong)carry; + } + } +#else + for(; xb < xbe; xb++, xc0++) { + if (y = *xb & 0xffff) { + x = xa; + xc = xc0; + carry = 0; + do { + z = (*x & 0xffff) * y + (*xc & 0xffff) + carry; + carry = z >> 16; + z2 = (*x++ >> 16) * y + (*xc >> 16) + carry; + carry = z2 >> 16; + Storeinc(xc, z2, z); + } + while(x < xae); + *xc = carry; + } + if (y = *xb >> 16) { + x = xa; + xc = xc0; + carry = 0; + z2 = *xc; + do { + z = (*x & 0xffff) * y + (*xc >> 16) + carry; + carry = z >> 16; + Storeinc(xc, z, z2); + z2 = (*x++ >> 16) * y + (*xc & 0xffff) + carry; + carry = z2 >> 16; + } + while(x < xae); + *xc = z2; + } + } +#endif + for(xc0 = c->x, xc = xc0 + wc; wc > 0 && !*--xc; --wc) ; + c->wds = wc; + return c; +} + +#ifndef SPHINXBASE_USING_MEMORY_DEBUGGER + +/* p5s is a linked list of powers of 5 of the form 5**(2**i), i >= 2 */ + +static Bigint *p5s; + +/* multiply the Bigint b by 5**k. Returns a pointer to the result, or NULL on + failure; if the returned pointer is distinct from b then the original + Bigint b will have been Bfree'd. Ignores the sign of b. */ + +static Bigint * +pow5mult(Bigint *b, int k) { - Bigint *b1, *p5, *p51; - int i; - static int CONST p05[3] = { 5, 25, 125 }; - - if ((i = k & 3)) - b = multadd(b, p05[i-1], 0); - - if (!(k >>= 2)) - return b; - - p5 = i2b(625); - for(;;) { - if (k & 1) { - b1 = mult(b, p5); - Bfree(b); - b = b1; - } - if (!(k >>= 1)) - break; - p51 = mult(p5,p5); - Bfree(p5); - p5 = p51; - } - Bfree(p5); - return b; -} - - static Bigint * -lshift -#ifdef KR_headers - (b, k) Bigint *b; int k; + Bigint *b1, *p5, *p51; + int i; + static int p05[3] = { 5, 25, 125 }; + + if ((i = k & 3)) { + b = multadd(b, p05[i-1], 0); + if (b == NULL) + return NULL; + } + + if (!(k >>= 2)) + return b; + p5 = p5s; + if (!p5) { + /* first time */ + p5 = i2b(625); + if (p5 == NULL) { + Bfree(b); + return NULL; + } + p5s = p5; + p5->next = 0; + } + for(;;) { + if (k & 1) { + b1 = mult(b, p5); + Bfree(b); + b = b1; + if (b == NULL) + return NULL; + } + if (!(k >>= 1)) + break; + p51 = p5->next; + if (!p51) { + p51 = mult(p5,p5); + if (p51 == NULL) { + Bfree(b); + return NULL; + } + p51->next = 0; + p5->next = p51; + } + p5 = p51; + } + return b; +} + #else - (Bigint *b, int k) -#endif + +/* Version of pow5mult that doesn't cache powers of 5. Provided for + the benefit of memory debugging tools like Valgrind. */ + +static Bigint * +pow5mult(Bigint *b, int k) { - int i, k1, n, n1; - Bigint *b1; - ULong *x, *x1, *xe, z; + Bigint *b1, *p5, *p51; + int i; + static int p05[3] = { 5, 25, 125 }; + + if ((i = k & 3)) { + b = multadd(b, p05[i-1], 0); + if (b == NULL) + return NULL; + } + + if (!(k >>= 2)) + return b; + p5 = i2b(625); + if (p5 == NULL) { + Bfree(b); + return NULL; + } + + for(;;) { + if (k & 1) { + b1 = mult(b, p5); + Bfree(b); + b = b1; + if (b == NULL) { + Bfree(p5); + return NULL; + } + } + if (!(k >>= 1)) + break; + p51 = mult(p5, p5); + Bfree(p5); + p5 = p51; + if (p5 == NULL) { + Bfree(b); + return NULL; + } + } + Bfree(p5); + return b; +} -#ifdef Pack_32 - n = k >> 5; -#else - n = k >> 4; -#endif - k1 = b->k; - n1 = n + b->wds + 1; - for(i = b->maxwds; n1 > i; i <<= 1) - k1++; - b1 = Balloc(k1); - x1 = b1->x; - for(i = 0; i < n; i++) - *x1++ = 0; - x = b->x; - xe = x + b->wds; -#ifdef Pack_32 - if (k &= 0x1f) { - k1 = 32 - k; - z = 0; - do { - *x1++ = *x << k | z; - z = *x++ >> k1; - } - while(x < xe); - if ((*x1 = z)) - ++n1; - } -#else - if (k &= 0xf) { - k1 = 16 - k; - z = 0; - do { - *x1++ = *x << k & 0xffff | z; - z = *x++ >> k1; - } - while(x < xe); - if (*x1 = z) - ++n1; - } -#endif - else do - *x1++ = *x++; - while(x < xe); - b1->wds = n1 - 1; - Bfree(b); - return b1; - } - - static int -cmp -#ifdef KR_headers - (a, b) Bigint *a, *b; -#else - (Bigint *a, Bigint *b) -#endif +#endif /* SPHINXBASE_USING_MEMORY_DEBUGGER */ + +/* shift a Bigint b left by k bits. Return a pointer to the shifted result, + or NULL on failure. If the returned pointer is distinct from b then the + original b will have been Bfree'd. Ignores the sign of b. */ + +static Bigint * +lshift(Bigint *b, int k) +{ + int i, k1, n, n1; + Bigint *b1; + ULong *x, *x1, *xe, z; + + if (!k || (!b->x[0] && b->wds == 1)) + return b; + + n = k >> 5; + k1 = b->k; + n1 = n + b->wds + 1; + for(i = b->maxwds; n1 > i; i <<= 1) + k1++; + b1 = Balloc(k1); + if (b1 == NULL) { + Bfree(b); + return NULL; + } + x1 = b1->x; + for(i = 0; i < n; i++) + *x1++ = 0; + x = b->x; + xe = x + b->wds; + if (k &= 0x1f) { + k1 = 32 - k; + z = 0; + do { + *x1++ = *x << k | z; + z = *x++ >> k1; + } + while(x < xe); + if ((*x1 = z)) + ++n1; + } + else do + *x1++ = *x++; + while(x < xe); + b1->wds = n1 - 1; + Bfree(b); + return b1; +} + +/* Do a three-way compare of a and b, returning -1 if a < b, 0 if a == b and + 1 if a > b. Ignores signs of a and b. */ + +static int +cmp(Bigint *a, Bigint *b) { - ULong *xa, *xa0, *xb, *xb0; - int i, j; + ULong *xa, *xa0, *xb, *xb0; + int i, j; - i = a->wds; - j = b->wds; + i = a->wds; + j = b->wds; #ifdef DEBUG - if (i > 1 && !a->x[i-1]) - Bug("cmp called with a->x[a->wds-1] == 0"); - if (j > 1 && !b->x[j-1]) - Bug("cmp called with b->x[b->wds-1] == 0"); -#endif - if (i -= j) - return i; - xa0 = a->x; - xa = xa0 + j; - xb0 = b->x; - xb = xb0 + j; - for(;;) { - if (*--xa != *--xb) - return *xa < *xb ? -1 : 1; - if (xa <= xa0) - break; - } - return 0; - } - - static Bigint * -diff -#ifdef KR_headers - (a, b) Bigint *a, *b; -#else - (Bigint *a, Bigint *b) -#endif + if (i > 1 && !a->x[i-1]) + Bug("cmp called with a->x[a->wds-1] == 0"); + if (j > 1 && !b->x[j-1]) + Bug("cmp called with b->x[b->wds-1] == 0"); +#endif + if (i -= j) + return i; + xa0 = a->x; + xa = xa0 + j; + xb0 = b->x; + xb = xb0 + j; + for(;;) { + if (*--xa != *--xb) + return *xa < *xb ? -1 : 1; + if (xa <= xa0) + break; + } + return 0; +} + +/* Take the difference of Bigints a and b, returning a new Bigint. Returns + NULL on failure. The signs of a and b are ignored, but the sign of the + result is set appropriately. */ + +static Bigint * +diff(Bigint *a, Bigint *b) { - Bigint *c; - int i, wa, wb; - ULong *xa, *xae, *xb, *xbe, *xc; + Bigint *c; + int i, wa, wb; + ULong *xa, *xae, *xb, *xbe, *xc; #ifdef ULLong - ULLong borrow, y; + ULLong borrow, y; #else - ULong borrow, y; -#ifdef Pack_32 - ULong z; -#endif + ULong borrow, y; + ULong z; #endif - i = cmp(a,b); - if (!i) { - c = Balloc(0); - c->wds = 1; - c->x[0] = 0; - return c; - } - if (i < 0) { - c = a; - a = b; - b = c; - i = 1; - } - else - i = 0; - c = Balloc(a->k); - c->sign = i; - wa = a->wds; - xa = a->x; - xae = xa + wa; - wb = b->wds; - xb = b->x; - xbe = xb + wb; - xc = c->x; - borrow = 0; + i = cmp(a,b); + if (!i) { + c = Balloc(0); + if (c == NULL) + return NULL; + c->wds = 1; + c->x[0] = 0; + return c; + } + if (i < 0) { + c = a; + a = b; + b = c; + i = 1; + } + else + i = 0; + c = Balloc(a->k); + if (c == NULL) + return NULL; + c->sign = i; + wa = a->wds; + xa = a->x; + xae = xa + wa; + wb = b->wds; + xb = b->x; + xbe = xb + wb; + xc = c->x; + borrow = 0; #ifdef ULLong - do { - y = (ULLong)*xa++ - *xb++ - borrow; - borrow = y >> 32 & (ULong)1; - *xc++ = y & FFFFFFFF; - } - while(xb < xbe); - while(xa < xae) { - y = *xa++ - borrow; - borrow = y >> 32 & (ULong)1; - *xc++ = y & FFFFFFFF; - } -#else -#ifdef Pack_32 - do { - y = (*xa & 0xffff) - (*xb & 0xffff) - borrow; - borrow = (y & 0x10000) >> 16; - z = (*xa++ >> 16) - (*xb++ >> 16) - borrow; - borrow = (z & 0x10000) >> 16; - Storeinc(xc, z, y); - } - while(xb < xbe); - while(xa < xae) { - y = (*xa & 0xffff) - borrow; - borrow = (y & 0x10000) >> 16; - z = (*xa++ >> 16) - borrow; - borrow = (z & 0x10000) >> 16; - Storeinc(xc, z, y); - } -#else - do { - y = *xa++ - *xb++ - borrow; - borrow = (y & 0x10000) >> 16; - *xc++ = y & 0xffff; - } - while(xb < xbe); - while(xa < xae) { - y = *xa++ - borrow; - borrow = (y & 0x10000) >> 16; - *xc++ = y & 0xffff; - } -#endif -#endif - while(!*--xc) - wa--; - c->wds = wa; - return c; - } - - static double -ulp -#ifdef KR_headers - (x) double x; -#else - (double x) -#endif -{ - register Long L; - U a; + do { + y = (ULLong)*xa++ - *xb++ - borrow; + borrow = y >> 32 & (ULong)1; + *xc++ = (ULong)(y & FFFFFFFF); + } + while(xb < xbe); + while(xa < xae) { + y = *xa++ - borrow; + borrow = y >> 32 & (ULong)1; + *xc++ = (ULong)(y & FFFFFFFF); + } +#else + do { + y = (*xa & 0xffff) - (*xb & 0xffff) - borrow; + borrow = (y & 0x10000) >> 16; + z = (*xa++ >> 16) - (*xb++ >> 16) - borrow; + borrow = (z & 0x10000) >> 16; + Storeinc(xc, z, y); + } + while(xb < xbe); + while(xa < xae) { + y = (*xa & 0xffff) - borrow; + borrow = (y & 0x10000) >> 16; + z = (*xa++ >> 16) - borrow; + borrow = (z & 0x10000) >> 16; + Storeinc(xc, z, y); + } +#endif + while(!*--xc) + wa--; + c->wds = wa; + return c; +} - L = (word0(x) & Exp_mask) - (P-1)*Exp_msk1; -#ifndef Avoid_Underflow -#ifndef Sudden_Underflow - if (L > 0) { -#endif -#endif -#ifdef IBM - L |= Exp_msk1 >> 4; -#endif - word0(a) = L; - word1(a) = 0; -#ifndef Avoid_Underflow -#ifndef Sudden_Underflow - } - else { - L = -L >> Exp_shift; - if (L < Exp_shift) { - word0(a) = 0x80000 >> L; - word1(a) = 0; - } - else { - word0(a) = 0; - L -= Exp_shift; - word1(a) = L >= 31 ? 1 : 1 << 31 - L; - } - } -#endif -#endif - return dval(a); - } - - static double -b2d -#ifdef KR_headers - (a, e) Bigint *a; int *e; -#else - (Bigint *a, int *e) -#endif +/* Given a positive normal double x, return the difference between x and the + next double up. Doesn't give correct results for subnormals. */ + +static double +ulp(U *x) { - ULong *xa, *xa0, w, y, z; - int k; - U d; -#ifdef VAX - ULong d0, d1; -#else -#define d0 word0(d) -#define d1 word1(d) -#endif + Long L; + U u; - xa0 = a->x; - xa = xa0 + a->wds; - y = *--xa; + L = (word0(x) & Exp_mask) - (P-1)*Exp_msk1; + word0(&u) = L; + word1(&u) = 0; + return dval(&u); +} + +/* Convert a Bigint to a double plus an exponent */ + +static double +b2d(Bigint *a, int *e) +{ + ULong *xa, *xa0, w, y, z; + int k; + U d; + + xa0 = a->x; + xa = xa0 + a->wds; + y = *--xa; #ifdef DEBUG - if (!y) Bug("zero y in b2d"); + if (!y) Bug("zero y in b2d"); #endif - k = hi0bits(y); - *e = 32 - k; -#ifdef Pack_32 - if (k < Ebits) { - d0 = Exp_1 | y >> (Ebits - k); - w = xa > xa0 ? *--xa : 0; - d1 = y << ((32-Ebits) + k) | w >> (Ebits - k); - goto ret_d; - } - z = xa > xa0 ? *--xa : 0; - if (k -= Ebits) { - d0 = Exp_1 | y << k | z >> (32 - k); - y = xa > xa0 ? *--xa : 0; - d1 = z << k | y >> (32 - k); - } - else { - d0 = Exp_1 | y; - d1 = z; - } -#else - if (k < Ebits + 16) { - z = xa > xa0 ? *--xa : 0; - d0 = Exp_1 | y << k - Ebits | z >> Ebits + 16 - k; - w = xa > xa0 ? *--xa : 0; - y = xa > xa0 ? *--xa : 0; - d1 = z << k + 16 - Ebits | w << k - Ebits | y >> 16 + Ebits - k; - goto ret_d; - } - z = xa > xa0 ? *--xa : 0; - w = xa > xa0 ? *--xa : 0; - k -= Ebits + 16; - d0 = Exp_1 | y << k + 16 | z << k | w >> 16 - k; - y = xa > xa0 ? *--xa : 0; - d1 = w << k + 16 | y << k; -#endif - ret_d: -#ifdef VAX - word0(d) = d0 >> 16 | d0 << 16; - word1(d) = d1 >> 16 | d1 << 16; -#else -#undef d0 -#undef d1 -#endif - return dval(d); - } + k = hi0bits(y); + *e = 32 - k; + if (k < Ebits) { + word0(&d) = Exp_1 | y >> (Ebits - k); + w = xa > xa0 ? *--xa : 0; + word1(&d) = y << ((32-Ebits) + k) | w >> (Ebits - k); + goto ret_d; + } + z = xa > xa0 ? *--xa : 0; + if (k -= Ebits) { + word0(&d) = Exp_1 | y << k | z >> (32 - k); + y = xa > xa0 ? *--xa : 0; + word1(&d) = z << k | y >> (32 - k); + } + else { + word0(&d) = Exp_1 | y; + word1(&d) = z; + } + ret_d: + return dval(&d); +} - static Bigint * -d2b -#ifdef KR_headers - (d, e, bits) double d; int *e, *bits; -#else - (double _d, int *e, int *bits) -#endif +/* Convert a scaled double to a Bigint plus an exponent. Similar to d2b, + except that it accepts the scale parameter used in sb_strtod (which + should be either 0 or 2*P), and the normalization for the return value is + different (see below). On input, d should be finite and nonnegative, and d + / 2**scale should be exactly representable as an IEEE 754 double. + + Returns a Bigint b and an integer e such that + + dval(d) / 2**scale = b * 2**e. + + Unlike d2b, b is not necessarily odd: b and e are normalized so + that either 2**(P-1) <= b < 2**P and e >= Etiny, or b < 2**P + and e == Etiny. This applies equally to an input of 0.0: in that + case the return values are b = 0 and e = Etiny. + + The above normalization ensures that for all possible inputs d, + 2**e gives ulp(d/2**scale). + + Returns NULL on failure. +*/ + +static Bigint * +sd2b(U *d, int scale, int *e) { - Bigint *b; - int de, k; - ULong *x, y, z; - U d; -#ifndef Sudden_Underflow - int i; -#endif -#ifdef VAX - ULong d0, d1; - d0 = word0(d) >> 16 | word0(d) << 16; - d1 = word1(d) >> 16 | word1(d) << 16; -#else -#define d0 word0(d) -#define d1 word1(d) -#endif - dval(d) = _d; + Bigint *b; -#ifdef Pack_32 - b = Balloc(1); -#else - b = Balloc(2); -#endif - x = b->x; + b = Balloc(1); + if (b == NULL) + return NULL; + + /* First construct b and e assuming that scale == 0. */ + b->wds = 2; + b->x[0] = word1(d); + b->x[1] = word0(d) & Frac_mask; + *e = Etiny - 1 + (int)((word0(d) & Exp_mask) >> Exp_shift); + if (*e < Etiny) + *e = Etiny; + else + b->x[1] |= Exp_msk1; + + /* Now adjust for scale, provided that b != 0. */ + if (scale && (b->x[0] || b->x[1])) { + *e -= scale; + if (*e < Etiny) { + scale = Etiny - *e; + *e = Etiny; + /* We can't shift more than P-1 bits without shifting out a 1. */ + assert(0 < scale && scale <= P - 1); + if (scale >= 32) { + /* The bits shifted out should all be zero. */ + assert(b->x[0] == 0); + b->x[0] = b->x[1]; + b->x[1] = 0; + scale -= 32; + } + if (scale) { + /* The bits shifted out should all be zero. */ + assert(b->x[0] << (32 - scale) == 0); + b->x[0] = (b->x[0] >> scale) | (b->x[1] << (32 - scale)); + b->x[1] >>= scale; + } + } + } + /* Ensure b is normalized. */ + if (!b->x[1]) + b->wds = 1; - z = d0 & Frac_mask; - d0 &= 0x7fffffff; /* clear sign bit, which we ignore */ -#ifdef Sudden_Underflow - de = (int)(d0 >> Exp_shift); -#ifndef IBM - z |= Exp_msk11; -#endif -#else - if ((de = (int)(d0 >> Exp_shift))) - z |= Exp_msk1; -#endif -#ifdef Pack_32 - if ((y = d1)) { - if ((k = lo0bits(&y))) { - x[0] = y | z << (32 - k); - z >>= k; - } - else - x[0] = y; -#ifndef Sudden_Underflow - i = -#endif - b->wds = (x[1] = z) ? 2 : 1; - } - else { -#ifdef DEBUG - if (!z) - Bug("Zero passed to d2b"); -#endif - k = lo0bits(&z); - x[0] = z; -#ifndef Sudden_Underflow - i = -#endif - b->wds = 1; - k += 32; - } -#else - if (y = d1) { - if (k = lo0bits(&y)) - if (k >= 16) { - x[0] = y | z << 32 - k & 0xffff; - x[1] = z >> k - 16 & 0xffff; - x[2] = z >> k; - i = 2; - } - else { - x[0] = y & 0xffff; - x[1] = y >> 16 | z << 16 - k & 0xffff; - x[2] = z >> k & 0xffff; - x[3] = z >> k+16; - i = 3; - } - else { - x[0] = y & 0xffff; - x[1] = y >> 16; - x[2] = z & 0xffff; - x[3] = z >> 16; - i = 3; - } - } - else { -#ifdef DEBUG - if (!z) - Bug("Zero passed to d2b"); -#endif - k = lo0bits(&z); - if (k >= 16) { - x[0] = z; - i = 0; - } - else { - x[0] = z & 0xffff; - x[1] = z >> 16; - i = 1; - } - k += 32; - } - while(!x[i]) - --i; - b->wds = i + 1; -#endif -#ifndef Sudden_Underflow - if (de) { -#endif -#ifdef IBM - *e = (de - Bias - (P-1) << 2) + k; - *bits = 4*P + 8 - k - hi0bits(word0(d) & Frac_mask); -#else - *e = de - Bias - (P-1) + k; - *bits = P - k; -#endif -#ifndef Sudden_Underflow - } - else { - *e = de - Bias - (P-1) + 1 + k; -#ifdef Pack_32 - *bits = 32*i - hi0bits(x[i-1]); -#else - *bits = (i+2)*16 - hi0bits(x[i]); -#endif - } -#endif - return b; - } -#undef d0 -#undef d1 - - static double -ratio -#ifdef KR_headers - (a, b) Bigint *a, *b; -#else - (Bigint *a, Bigint *b) -#endif + return b; +} + +/* Convert a double to a Bigint plus an exponent. Return NULL on failure. + + Given a finite nonzero double d, return an odd Bigint b and exponent *e + such that fabs(d) = b * 2**e. On return, *bbits gives the number of + significant bits of b; that is, 2**(*bbits-1) <= b < 2**(*bbits). + + If d is zero, then b == 0, *e == -1010, *bbits = 0. + */ + +static Bigint * +d2b(U *d, int *e, int *bits) { - U da, db; - int k, ka, kb; + Bigint *b; + int de, k; + ULong *x, y, z; + int i; + + b = Balloc(1); + if (b == NULL) + return NULL; + x = b->x; + + z = word0(d) & Frac_mask; + word0(d) &= 0x7fffffff; /* clear sign bit, which we ignore */ + if ((de = (int)(word0(d) >> Exp_shift))) + z |= Exp_msk1; + if ((y = word1(d))) { + if ((k = lo0bits(&y))) { + x[0] = y | z << (32 - k); + z >>= k; + } + else + x[0] = y; + i = + b->wds = (x[1] = z) ? 2 : 1; + } + else { + k = lo0bits(&z); + x[0] = z; + i = + b->wds = 1; + k += 32; + } + if (de) { + *e = de - Bias - (P-1) + k; + *bits = P - k; + } + else { + *e = de - Bias - (P-1) + 1 + k; + *bits = 32*i - hi0bits(x[i-1]); + } + return b; +} - dval(da) = b2d(a, &ka); - dval(db) = b2d(b, &kb); -#ifdef Pack_32 - k = ka - kb + 32*(a->wds - b->wds); -#else - k = ka - kb + 16*(a->wds - b->wds); -#endif -#ifdef IBM - if (k > 0) { - word0(da) += (k >> 2)*Exp_msk1; - if (k &= 3) - dval(da) *= 1 << k; - } - else { - k = -k; - word0(db) += (k >> 2)*Exp_msk1; - if (k &= 3) - dval(db) *= 1 << k; - } -#else - if (k > 0) - word0(da) += k*Exp_msk1; - else { - k = -k; - word0(db) += k*Exp_msk1; - } -#endif - return dval(da) / dval(db); - } +/* Compute the ratio of two Bigints, as a double. The result may have an + error of up to 2.5 ulps. */ + +static double +ratio(Bigint *a, Bigint *b) +{ + U da, db; + int k, ka, kb; + + dval(&da) = b2d(a, &ka); + dval(&db) = b2d(b, &kb); + k = ka - kb + 32*(a->wds - b->wds); + if (k > 0) + word0(&da) += k*Exp_msk1; + else { + k = -k; + word0(&db) += k*Exp_msk1; + } + return dval(&da) / dval(&db); +} - static CONST double +static const double tens[] = { - 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, - 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, - 1e20, 1e21, 1e22 -#ifdef VAX - , 1e23, 1e24 -#endif - }; + 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, + 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, + 1e20, 1e21, 1e22 +}; - static CONST double -#ifdef IEEE_Arith +static const double bigtens[] = { 1e16, 1e32, 1e64, 1e128, 1e256 }; -static CONST double tinytens[] = { 1e-16, 1e-32, 1e-64, 1e-128, -#ifdef Avoid_Underflow - 9007199254740992.*9007199254740992.e-256 - /* = 2^106 * 1e-53 */ -#else - 1e-256 -#endif - }; +static const double tinytens[] = { 1e-16, 1e-32, 1e-64, 1e-128, + 9007199254740992.*9007199254740992.e-256 + /* = 2^106 * 1e-256 */ +}; /* The factor of 2^53 in tinytens[4] helps us avoid setting the underflow */ /* flag unnecessarily. It leads to a song and dance at the end of strtod. */ #define Scale_Bit 0x10 #define n_bigtens 5 + +#define ULbits 32 +#define kshift 5 +#define kmask 31 + + +static int +dshift(Bigint *b, int p2) +{ + int rv = hi0bits(b->x[b->wds-1]) - 4; + if (p2 > 0) + rv -= p2; + return rv & kmask; +} + +/* special case of Bigint division. The quotient is always in the range 0 <= + quotient < 10, and on entry the divisor S is normalized so that its top 4 + bits (28--31) are zero and bit 27 is set. */ + +static int +quorem(Bigint *b, Bigint *S) +{ + int n; + ULong *bx, *bxe, q, *sx, *sxe; +#ifdef ULLong + ULLong borrow, carry, y, ys; #else -#ifdef IBM -bigtens[] = { 1e16, 1e32, 1e64 }; -static CONST double tinytens[] = { 1e-16, 1e-32, 1e-64 }; -#define n_bigtens 3 -#else -bigtens[] = { 1e16, 1e32 }; -static CONST double tinytens[] = { 1e-16, 1e-32 }; -#define n_bigtens 2 + ULong borrow, carry, y, ys; + ULong si, z, zs; +#endif + + n = S->wds; +#ifdef DEBUG + /*debug*/ if (b->wds > n) + /*debug*/ Bug("oversize b in quorem"); #endif + if (b->wds < n) + return 0; + sx = S->x; + sxe = sx + --n; + bx = b->x; + bxe = bx + n; + q = *bxe / (*sxe + 1); /* ensure q <= true quotient */ +#ifdef DEBUG + /*debug*/ if (q > 9) + /*debug*/ Bug("oversized quotient in quorem"); #endif + if (q) { + borrow = 0; + carry = 0; + do { +#ifdef ULLong + ys = *sx++ * (ULLong)q + carry; + carry = ys >> 32; + y = *bx - (ys & FFFFFFFF) - borrow; + borrow = y >> 32 & (ULong)1; + *bx++ = (ULong)(y & FFFFFFFF); +#else + si = *sx++; + ys = (si & 0xffff) * q + carry; + zs = (si >> 16) * q + (ys >> 16); + carry = zs >> 16; + y = (*bx & 0xffff) - (ys & 0xffff) - borrow; + borrow = (y & 0x10000) >> 16; + z = (*bx >> 16) - (zs & 0xffff) - borrow; + borrow = (z & 0x10000) >> 16; + Storeinc(bx, z, y); +#endif + } + while(sx <= sxe); + if (!*bxe) { + bx = b->x; + while(--bxe > bx && !*bxe) + --n; + b->wds = n; + } + } + if (cmp(b, S) >= 0) { + q++; + borrow = 0; + carry = 0; + bx = b->x; + sx = S->x; + do { +#ifdef ULLong + ys = *sx++ + carry; + carry = ys >> 32; + y = *bx - (ys & FFFFFFFF) - borrow; + borrow = y >> 32 & (ULong)1; + *bx++ = (ULong)(y & FFFFFFFF); +#else + si = *sx++; + ys = (si & 0xffff) + carry; + zs = (si >> 16) + (ys >> 16); + carry = zs >> 16; + y = (*bx & 0xffff) - (ys & 0xffff) - borrow; + borrow = (y & 0x10000) >> 16; + z = (*bx >> 16) - (zs & 0xffff) - borrow; + borrow = (z & 0x10000) >> 16; + Storeinc(bx, z, y); +#endif + } + while(sx <= sxe); + bx = b->x; + bxe = bx + n; + if (!*bxe) { + while(--bxe > bx && !*bxe) + --n; + b->wds = n; + } + } + return q; +} -#ifdef INFNAN_CHECK +/* sulp(x) is a version of ulp(x) that takes bc.scale into account. -#ifndef NAN_WORD0 -#define NAN_WORD0 0x7ff80000 -#endif + Assuming that x is finite and nonnegative (positive zero is fine + here) and x / 2^bc.scale is exactly representable as a double, + sulp(x) is equivalent to 2^bc.scale * ulp(x / 2^bc.scale). */ -#ifndef NAN_WORD1 -#define NAN_WORD1 0 -#endif +static double +sulp(U *x, BCinfo *bc) +{ + U u; - static int -match -#ifdef KR_headers - (sp, t) char **sp, *t; -#else - (CONST char **sp, char *t) -#endif + if (bc->scale && 2*P + 1 > (int)((word0(x) & Exp_mask) >> Exp_shift)) { + /* rv/2^bc->scale is subnormal */ + word0(&u) = (P+2)*Exp_msk1; + word1(&u) = 0; + return u.d; + } + else { + assert(word0(x) || word1(x)); /* x != 0.0 */ + return ulp(x); + } +} + +/* The bigcomp function handles some hard cases for strtod, for inputs + with more than STRTOD_DIGLIM digits. It's called once an initial + estimate for the double corresponding to the input string has + already been obtained by the code in sb_strtod. + + The bigcomp function is only called after sb_strtod has found a + double value rv such that either rv or rv + 1ulp represents the + correctly rounded value corresponding to the original string. It + determines which of these two values is the correct one by + computing the decimal digits of rv + 0.5ulp and comparing them with + the corresponding digits of s0. + + In the following, write dv for the absolute value of the number represented + by the input string. + + Inputs: + + s0 points to the first significant digit of the input string. + + rv is a (possibly scaled) estimate for the closest double value to the + value represented by the original input to sb_strtod. If + bc->scale is nonzero, then rv/2^(bc->scale) is the approximation to + the input value. + + bc is a struct containing information gathered during the parsing and + estimation steps of sb_strtod. Description of fields follows: + + bc->e0 gives the exponent of the input value, such that dv = (integer + given by the bd->nd digits of s0) * 10**e0 + + bc->nd gives the total number of significant digits of s0. It will + be at least 1. + + bc->nd0 gives the number of significant digits of s0 before the + decimal separator. If there's no decimal separator, bc->nd0 == + bc->nd. + + bc->scale is the value used to scale rv to avoid doing arithmetic with + subnormal values. It's either 0 or 2*P (=106). + + Outputs: + + On successful exit, rv/2^(bc->scale) is the closest double to dv. + + Returns 0 on success, -1 on failure (e.g., due to a failed malloc call). */ + +static int +bigcomp(U *rv, const char *s0, BCinfo *bc) { - int c, d; - CONST char *s = *sp; + Bigint *b, *d; + int b2, d2, dd, i, nd, nd0, odd, p2, p5; - while((d = *t++)) { - if ((c = *++s) >= 'A' && c <= 'Z') - c += 'a' - 'A'; - if (c != d) - return 0; - } - *sp = s + 1; - return 1; - } - -#ifndef No_Hex_NaN - static void -hexnan -#ifdef KR_headers - (rvp, sp) double *rvp; CONST char **sp; -#else - (U *rvp, CONST char **sp) -#endif + nd = bc->nd; + nd0 = bc->nd0; + p5 = nd + bc->e0; + b = sd2b(rv, bc->scale, &p2); + if (b == NULL) + return -1; + + /* record whether the lsb of rv/2^(bc->scale) is odd: in the exact halfway + case, this is used for round to even. */ + odd = b->x[0] & 1; + + /* left shift b by 1 bit and or a 1 into the least significant bit; + this gives us b * 2**p2 = rv/2^(bc->scale) + 0.5 ulp. */ + b = lshift(b, 1); + if (b == NULL) + return -1; + b->x[0] |= 1; + p2--; + + p2 -= p5; + d = i2b(1); + if (d == NULL) { + Bfree(b); + return -1; + } + /* Arrange for convenient computation of quotients: + * shift left if necessary so divisor has 4 leading 0 bits. + */ + if (p5 > 0) { + d = pow5mult(d, p5); + if (d == NULL) { + Bfree(b); + return -1; + } + } + else if (p5 < 0) { + b = pow5mult(b, -p5); + if (b == NULL) { + Bfree(d); + return -1; + } + } + if (p2 > 0) { + b2 = p2; + d2 = 0; + } + else { + b2 = 0; + d2 = -p2; + } + i = dshift(d, d2); + if ((b2 += i) > 0) { + b = lshift(b, b2); + if (b == NULL) { + Bfree(d); + return -1; + } + } + if ((d2 += i) > 0) { + d = lshift(d, d2); + if (d == NULL) { + Bfree(b); + return -1; + } + } + + /* Compare s0 with b/d: set dd to -1, 0, or 1 according as s0 < b/d, s0 == + * b/d, or s0 > b/d. Here the digits of s0 are thought of as representing + * a number in the range [0.1, 1). */ + if (cmp(b, d) >= 0) + /* b/d >= 1 */ + dd = -1; + else { + i = 0; + for(;;) { + b = multadd(b, 10, 0); + if (b == NULL) { + Bfree(d); + return -1; + } + dd = s0[i < nd0 ? i : i+1] - '0' - quorem(b, d); + i++; + + if (dd) + break; + if (!b->x[0] && b->wds == 1) { + /* b/d == 0 */ + dd = i < nd; + break; + } + if (!(i < nd)) { + /* b/d != 0, but digits of s0 exhausted */ + dd = -1; + break; + } + } + } + Bfree(b); + Bfree(d); + if (dd > 0 || (dd == 0 && odd)) + dval(rv) += sulp(rv, bc); + return 0; +} + +/* Return a 'standard' NaN value. + + There are exactly two quiet NaNs that don't arise by 'quieting' signaling + NaNs (see IEEE 754-2008, section 6.2.1). If sign == 0, return the one whose + sign bit is cleared. Otherwise, return the one whose sign bit is set. +*/ + +double +sb_stdnan(int sign) { - ULong c, x[2]; - CONST char *s; - int havedig, udx0, xshift; - - x[0] = x[1] = 0; - havedig = xshift = 0; - udx0 = 1; - s = *sp; - /* allow optional initial 0x or 0X */ - while((c = *(CONST unsigned char*)(s+1)) && c <= ' ') - ++s; - if (s[1] == '0' && (s[2] == 'x' || s[2] == 'X')) - s += 2; - while((c = *(CONST unsigned char*)++s)) { - if (c >= '0' && c <= '9') - c -= '0'; - else if (c >= 'a' && c <= 'f') - c += 10 - 'a'; - else if (c >= 'A' && c <= 'F') - c += 10 - 'A'; - else if (c <= ' ') { - if (udx0 && havedig) { - udx0 = 0; - xshift = 1; - } - continue; - } -#ifdef GDTOA_NON_PEDANTIC_NANCHECK - else if (/*(*/ c == ')' && havedig) { - *sp = s + 1; - break; - } - else - return; /* invalid form: don't change *sp */ -#else - else { - do { - if (/*(*/ c == ')') { - *sp = s + 1; - break; - } - } while((c = *++s)); - break; - } -#endif - havedig = 1; - if (xshift) { - xshift = 0; - x[0] = x[1]; - x[1] = 0; - } - if (udx0) - x[0] = (x[0] << 4) | (x[1] >> 28); - x[1] = (x[1] << 4) | c; - } - if ((x[0] &= 0xfffff) || x[1]) { - word0(*rvp) = Exp_mask | x[0]; - word1(*rvp) = x[1]; - } - } -#endif /*No_Hex_NaN*/ -#endif /* INFNAN_CHECK */ - - double -sb_strtod -#ifdef KR_headers - (s00, se) CONST char *s00; char **se; -#else - (CONST char *s00, char **se) -#endif + U rv; + word0(&rv) = NAN_WORD0; + word1(&rv) = NAN_WORD1; + if (sign) + word0(&rv) |= Sign_bit; + return dval(&rv); +} + +/* Return positive or negative infinity, according to the given sign (0 for + * positive infinity, 1 for negative infinity). */ + +double +sb_infinity(int sign) { -#ifdef Avoid_Underflow - int scale; -#endif - int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, dsign, - e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign; - CONST char *s, *s0, *s1; - double aadj, adj; - U rv, rv0, aadj1; - Long L; - ULong y, z; - Bigint *bb, *bb1, *bd, *bd0, *bs, *delta; -#ifdef SET_INEXACT - int inexact, oldinexact; -#endif -#ifdef Honor_FLT_ROUNDS - int rounding; -#endif -#ifdef USE_LOCALE - CONST char *s2; -#endif - - sign = nz0 = nz = 0; - dval(rv) = 0.; - for(s = s00;;s++) switch(*s) { - case '-': - sign = 1; - /* no break */ - case '+': - if (*++s) - goto break2; - /* no break */ - case 0: - goto ret0; - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case ' ': - continue; - default: - goto break2; - } - break2: - if (*s == '0') { - nz0 = 1; - while(*++s == '0') ; - if (!*s) - goto ret; - } - s0 = s; - y = z = 0; - for(nd = nf = 0; (c = *s) >= '0' && c <= '9'; nd++, s++) - if (nd < 9) - y = 10*y + c - '0'; - else if (nd < 16) - z = 10*z + c - '0'; - nd0 = nd; -#ifdef USE_LOCALE - s1 = localeconv()->decimal_point; - if (c == *s1) { - c = '.'; - if (*++s1) { - s2 = s; - for(;;) { - if (*++s2 != *s1) { - c = 0; - break; - } - if (!*++s1) { - s = s2; - break; - } - } - } - } -#endif - if (c == '.') { - c = *++s; - if (!nd) { - for(; c == '0'; c = *++s) - nz++; - if (c > '0' && c <= '9') { - s0 = s; - nf += nz; - nz = 0; - goto have_dig; - } - goto dig_done; - } - for(; c >= '0' && c <= '9'; c = *++s) { - have_dig: - nz++; - if (c -= '0') { - nf += nz; - for(i = 1; i < nz; i++) - if (nd++ < 9) - y *= 10; - else if (nd <= DBL_DIG + 1) - z *= 10; - if (nd++ < 9) - y = 10*y + c; - else if (nd <= DBL_DIG + 1) - z = 10*z + c; - nz = 0; - } - } - } - dig_done: - e = 0; - if (c == 'e' || c == 'E') { - if (!nd && !nz && !nz0) { - goto ret0; - } - s00 = s; - esign = 0; - switch(c = *++s) { - case '-': - esign = 1; - case '+': - c = *++s; - } - if (c >= '0' && c <= '9') { - while(c == '0') - c = *++s; - if (c > '0' && c <= '9') { - L = c - '0'; - s1 = s; - while((c = *++s) >= '0' && c <= '9') - L = 10*L + c - '0'; - if (s - s1 > 8 || L > 19999) - /* Avoid confusion from exponents - * so large that e might overflow. - */ - e = 19999; /* safe for 16 bit ints */ - else - e = (int)L; - if (esign) - e = -e; - } - else - e = 0; - } - else - s = s00; - } - if (!nd) { - if (!nz && !nz0) { -#ifdef INFNAN_CHECK - /* Check for Nan and Infinity */ - switch(c) { - case 'i': - case 'I': - if (match(&s,"nf")) { - --s; - if (!match(&s,"inity")) - ++s; - word0(rv) = 0x7ff00000; - word1(rv) = 0; - goto ret; - } - break; - case 'n': - case 'N': - if (match(&s, "an")) { - word0(rv) = NAN_WORD0; - word1(rv) = NAN_WORD1; -#ifndef No_Hex_NaN - if (*s == '(') /*)*/ - hexnan(&rv, &s); -#endif - goto ret; - } - } -#endif /* INFNAN_CHECK */ - ret0: - s = s00; - sign = 0; - } - goto ret; - } - e1 = e -= nf; - - /* Now we have nd0 digits, starting at s0, followed by a - * decimal point, followed by nd-nd0 digits. The number we're - * after is the integer represented by those digits times - * 10**e */ - - if (!nd0) - nd0 = nd; - k = nd < DBL_DIG + 1 ? nd : DBL_DIG + 1; - dval(rv) = y; - if (k > 9) { -#ifdef SET_INEXACT - if (k > DBL_DIG) - oldinexact = get_inexact(); -#endif - dval(rv) = tens[k - 9] * dval(rv) + z; - } - bd0 = 0; - if (nd <= DBL_DIG -#ifndef RND_PRODQUOT -#ifndef Honor_FLT_ROUNDS - && Flt_Rounds == 1 -#endif -#endif - ) { - if (!e) - goto ret; - if (e > 0) { - if (e <= Ten_pmax) { -#ifdef VAX - goto vax_ovfl_check; -#else -#ifdef Honor_FLT_ROUNDS - /* round correctly FLT_ROUNDS = 2 or 3 */ - if (sign) { - rv = -rv; - sign = 0; - } -#endif - /* rv = */ rounded_product(dval(rv), tens[e]); - goto ret; -#endif - } - i = DBL_DIG - nd; - if (e <= Ten_pmax + i) { - /* A fancier test would sometimes let us do - * this for larger i values. - */ -#ifdef Honor_FLT_ROUNDS - /* round correctly FLT_ROUNDS = 2 or 3 */ - if (sign) { - rv = -rv; - sign = 0; - } -#endif - e -= i; - dval(rv) *= tens[i]; -#ifdef VAX - /* VAX exponent range is so narrow we must - * worry about overflow here... - */ - vax_ovfl_check: - word0(rv) -= P*Exp_msk1; - /* rv = */ rounded_product(dval(rv), tens[e]); - if ((word0(rv) & Exp_mask) - > Exp_msk1*(DBL_MAX_EXP+Bias-1-P)) - goto ovfl; - word0(rv) += P*Exp_msk1; -#else - /* rv = */ rounded_product(dval(rv), tens[e]); -#endif - goto ret; - } - } -#ifndef Inaccurate_Divide - else if (e >= -Ten_pmax) { -#ifdef Honor_FLT_ROUNDS - /* round correctly FLT_ROUNDS = 2 or 3 */ - if (sign) { - rv = -rv; - sign = 0; - } -#endif - /* rv = */ rounded_quotient(dval(rv), tens[-e]); - goto ret; - } -#endif - } - e1 += nd - k; - -#ifdef IEEE_Arith -#ifdef SET_INEXACT - inexact = 1; - if (k <= DBL_DIG) - oldinexact = get_inexact(); -#endif -#ifdef Avoid_Underflow - scale = 0; -#endif -#ifdef Honor_FLT_ROUNDS - if ((rounding = Flt_Rounds) >= 2) { - if (sign) - rounding = rounding == 2 ? 0 : 2; - else - if (rounding != 2) - rounding = 0; - } -#endif -#endif /*IEEE_Arith*/ - - /* Get starting approximation = rv * 10**e1 */ - - if (e1 > 0) { - if ((i = e1 & 15)) - dval(rv) *= tens[i]; - if (e1 &= ~15) { - if (e1 > DBL_MAX_10_EXP) { - ovfl: -#ifndef NO_ERRNO - errno = ERANGE; -#endif - /* Can't trust HUGE_VAL */ -#ifdef IEEE_Arith -#ifdef Honor_FLT_ROUNDS - switch(rounding) { - case 0: /* toward 0 */ - case 3: /* toward -infinity */ - word0(rv) = Big0; - word1(rv) = Big1; - break; - default: - word0(rv) = Exp_mask; - word1(rv) = 0; - } -#else /*Honor_FLT_ROUNDS*/ - word0(rv) = Exp_mask; - word1(rv) = 0; -#endif /*Honor_FLT_ROUNDS*/ -#ifdef SET_INEXACT - /* set overflow bit */ - dval(rv0) = 1e300; - dval(rv0) *= dval(rv0); -#endif -#else /*IEEE_Arith*/ - word0(rv) = Big0; - word1(rv) = Big1; -#endif /*IEEE_Arith*/ - if (bd0) - goto retfree; - goto ret; - } - e1 >>= 4; - for(j = 0; e1 > 1; j++, e1 >>= 1) - if (e1 & 1) - dval(rv) *= bigtens[j]; - /* The last multiplication could overflow. */ - word0(rv) -= P*Exp_msk1; - dval(rv) *= bigtens[j]; - if ((z = word0(rv) & Exp_mask) - > Exp_msk1*(DBL_MAX_EXP+Bias-P)) - goto ovfl; - if (z > Exp_msk1*(DBL_MAX_EXP+Bias-1-P)) { - /* set to largest number */ - /* (Can't trust DBL_MAX) */ - word0(rv) = Big0; - word1(rv) = Big1; - } - else - word0(rv) += P*Exp_msk1; - } - } - else if (e1 < 0) { - e1 = -e1; - if ((i = e1 & 15)) - dval(rv) /= tens[i]; - if (e1 >>= 4) { - if (e1 >= 1 << n_bigtens) - goto undfl; -#ifdef Avoid_Underflow - if (e1 & Scale_Bit) - scale = 2*P; - for(j = 0; e1 > 0; j++, e1 >>= 1) - if (e1 & 1) - dval(rv) *= tinytens[j]; - if (scale && (j = 2*P + 1 - ((word0(rv) & Exp_mask) - >> Exp_shift)) > 0) { - /* scaled rv is denormal; zap j low bits */ - if (j >= 32) { - word1(rv) = 0; - if (j >= 53) - word0(rv) = (P+2)*Exp_msk1; - else - word0(rv) &= 0xffffffff << (j-32); - } - else - word1(rv) &= 0xffffffff << j; - } -#else - for(j = 0; e1 > 1; j++, e1 >>= 1) - if (e1 & 1) - dval(rv) *= tinytens[j]; - /* The last multiplication could underflow. */ - dval(rv0) = dval(rv); - dval(rv) *= tinytens[j]; - if (!dval(rv)) { - dval(rv) = 2.*dval(rv0); - dval(rv) *= tinytens[j]; -#endif - if (!dval(rv)) { - undfl: - dval(rv) = 0.; -#ifndef NO_ERRNO - errno = ERANGE; -#endif - if (bd0) - goto retfree; - goto ret; - } -#ifndef Avoid_Underflow - word0(rv) = Tiny0; - word1(rv) = Tiny1; - /* The refinement below will clean - * this approximation up. - */ - } -#endif - } - } - - /* Now the hard part -- adjusting rv to the correct value.*/ - - /* Put digits into bd: true value = bd * 10^e */ - - bd0 = s2b(s0, nd0, nd, y); - - for(;;) { - bd = Balloc(bd0->k); - Bcopy(bd, bd0); - bb = d2b(dval(rv), &bbe, &bbbits); /* rv = bb * 2^bbe */ - bs = i2b(1); - - if (e >= 0) { - bb2 = bb5 = 0; - bd2 = bd5 = e; - } - else { - bb2 = bb5 = -e; - bd2 = bd5 = 0; - } - if (bbe >= 0) - bb2 += bbe; - else - bd2 -= bbe; - bs2 = bb2; -#ifdef Honor_FLT_ROUNDS - if (rounding != 1) - bs2++; -#endif -#ifdef Avoid_Underflow - j = bbe - scale; - i = j + bbbits - 1; /* logb(rv) */ - if (i < Emin) /* denormal */ - j += P - Emin; - else - j = P + 1 - bbbits; -#else /*Avoid_Underflow*/ -#ifdef Sudden_Underflow -#ifdef IBM - j = 1 + 4*P - 3 - bbbits + ((bbe + bbbits - 1) & 3); -#else - j = P + 1 - bbbits; -#endif -#else /*Sudden_Underflow*/ - j = bbe; - i = j + bbbits - 1; /* logb(rv) */ - if (i < Emin) /* denormal */ - j += P - Emin; - else - j = P + 1 - bbbits; -#endif /*Sudden_Underflow*/ -#endif /*Avoid_Underflow*/ - bb2 += j; - bd2 += j; -#ifdef Avoid_Underflow - bd2 += scale; -#endif - i = bb2 < bd2 ? bb2 : bd2; - if (i > bs2) - i = bs2; - if (i > 0) { - bb2 -= i; - bd2 -= i; - bs2 -= i; - } - if (bb5 > 0) { - bs = pow5mult(bs, bb5); - bb1 = mult(bs, bb); - Bfree(bb); - bb = bb1; - } - if (bb2 > 0) - bb = lshift(bb, bb2); - if (bd5 > 0) - bd = pow5mult(bd, bd5); - if (bd2 > 0) - bd = lshift(bd, bd2); - if (bs2 > 0) - bs = lshift(bs, bs2); - delta = diff(bb, bd); - dsign = delta->sign; - delta->sign = 0; - i = cmp(delta, bs); -#ifdef Honor_FLT_ROUNDS - if (rounding != 1) { - if (i < 0) { - /* Error is less than an ulp */ - if (!delta->x[0] && delta->wds <= 1) { - /* exact */ -#ifdef SET_INEXACT - inexact = 0; -#endif - break; - } - if (rounding) { - if (dsign) { - adj = 1.; - goto apply_adj; - } - } - else if (!dsign) { - adj = -1.; - if (!word1(rv) - && !(word0(rv) & Frac_mask)) { - y = word0(rv) & Exp_mask; -#ifdef Avoid_Underflow - if (!scale || y > 2*P*Exp_msk1) -#else - if (y) -#endif - { - delta = lshift(delta,Log2P); - if (cmp(delta, bs) <= 0) - adj = -0.5; - } - } - apply_adj: -#ifdef Avoid_Underflow - if (scale && (y = word0(rv) & Exp_mask) - <= 2*P*Exp_msk1) - word0(adj) += (2*P+1)*Exp_msk1 - y; -#else -#ifdef Sudden_Underflow - if ((word0(rv) & Exp_mask) <= - P*Exp_msk1) { - word0(rv) += P*Exp_msk1; - dval(rv) += adj*ulp(dval(rv)); - word0(rv) -= P*Exp_msk1; - } - else -#endif /*Sudden_Underflow*/ -#endif /*Avoid_Underflow*/ - dval(rv) += adj*ulp(dval(rv)); - } - break; - } - adj = ratio(delta, bs); - if (adj < 1.) - adj = 1.; - if (adj <= 0x7ffffffe) { - /* adj = rounding ? ceil(adj) : floor(adj); */ - y = adj; - if (y != adj) { - if (!((rounding>>1) ^ dsign)) - y++; - adj = y; - } - } -#ifdef Avoid_Underflow - if (scale && (y = word0(rv) & Exp_mask) <= 2*P*Exp_msk1) - word0(adj) += (2*P+1)*Exp_msk1 - y; -#else -#ifdef Sudden_Underflow - if ((word0(rv) & Exp_mask) <= P*Exp_msk1) { - word0(rv) += P*Exp_msk1; - adj *= ulp(dval(rv)); - if (dsign) - dval(rv) += adj; - else - dval(rv) -= adj; - word0(rv) -= P*Exp_msk1; - goto cont; - } -#endif /*Sudden_Underflow*/ -#endif /*Avoid_Underflow*/ - adj *= ulp(dval(rv)); - if (dsign) - dval(rv) += adj; - else - dval(rv) -= adj; - goto cont; - } -#endif /*Honor_FLT_ROUNDS*/ - - if (i < 0) { - /* Error is less than half an ulp -- check for - * special case of mantissa a power of two. - */ - if (dsign || word1(rv) || word0(rv) & Bndry_mask -#ifdef IEEE_Arith -#ifdef Avoid_Underflow - || (word0(rv) & Exp_mask) <= (2*P+1)*Exp_msk1 -#else - || (word0(rv) & Exp_mask) <= Exp_msk1 -#endif -#endif - ) { -#ifdef SET_INEXACT - if (!delta->x[0] && delta->wds <= 1) - inexact = 0; -#endif - break; - } - if (!delta->x[0] && delta->wds <= 1) { - /* exact result */ -#ifdef SET_INEXACT - inexact = 0; -#endif - break; - } - delta = lshift(delta,Log2P); - if (cmp(delta, bs) > 0) - goto drop_down; - break; - } - if (i == 0) { - /* exactly half-way between */ - if (dsign) { - if ((word0(rv) & Bndry_mask1) == Bndry_mask1 - && word1(rv) == ( -#ifdef Avoid_Underflow - (scale && (y = word0(rv) & Exp_mask) <= 2*P*Exp_msk1) - ? (0xffffffff & (0xffffffff << (2*P+1-(y>>Exp_shift)))) : -#endif - 0xffffffff)) { - /*boundary case -- increment exponent*/ - word0(rv) = (word0(rv) & Exp_mask) - + Exp_msk1 -#ifdef IBM - | Exp_msk1 >> 4 -#endif - ; - word1(rv) = 0; -#ifdef Avoid_Underflow - dsign = 0; -#endif - break; - } - } - else if (!(word0(rv) & Bndry_mask) && !word1(rv)) { - drop_down: - /* boundary case -- decrement exponent */ -#ifdef Sudden_Underflow /*{{*/ - L = word0(rv) & Exp_mask; -#ifdef IBM - if (L < Exp_msk1) -#else -#ifdef Avoid_Underflow - if (L <= (scale ? (2*P+1)*Exp_msk1 : Exp_msk1)) -#else - if (L <= Exp_msk1) -#endif /*Avoid_Underflow*/ -#endif /*IBM*/ - goto undfl; - L -= Exp_msk1; -#else /*Sudden_Underflow}{*/ -#ifdef Avoid_Underflow - if (scale) { - L = word0(rv) & Exp_mask; - if (L <= (2*P+1)*Exp_msk1) { - if (L > (P+2)*Exp_msk1) - /* round even ==> */ - /* accept rv */ - break; - /* rv = smallest denormal */ - goto undfl; - } - } -#endif /*Avoid_Underflow*/ - L = (word0(rv) & Exp_mask) - Exp_msk1; -#endif /*Sudden_Underflow}}*/ - word0(rv) = L | Bndry_mask1; - word1(rv) = 0xffffffff; -#ifdef IBM - goto cont; -#else - break; -#endif - } -#ifndef ROUND_BIASED - if (!(word1(rv) & LSB)) - break; -#endif - if (dsign) - dval(rv) += ulp(dval(rv)); -#ifndef ROUND_BIASED - else { - dval(rv) -= ulp(dval(rv)); -#ifndef Sudden_Underflow - if (!dval(rv)) - goto undfl; -#endif - } -#ifdef Avoid_Underflow - dsign = 1 - dsign; -#endif -#endif - break; - } - if ((aadj = ratio(delta, bs)) <= 2.) { - if (dsign) - aadj = dval(aadj1) = 1.; - else if (word1(rv) || word0(rv) & Bndry_mask) { -#ifndef Sudden_Underflow - if (word1(rv) == Tiny1 && !word0(rv)) - goto undfl; -#endif - aadj = 1.; - dval(aadj1) = -1.; - } - else { - /* special case -- power of FLT_RADIX to be */ - /* rounded down... */ - - if (aadj < 2./FLT_RADIX) - aadj = 1./FLT_RADIX; - else - aadj *= 0.5; - dval(aadj1) = -aadj; - } - } - else { - aadj *= 0.5; - dval(aadj1) = dsign ? aadj : -aadj; -#ifdef Check_FLT_ROUNDS - switch(Rounding) { - case 2: /* towards +infinity */ - dval(aadj1) -= 0.5; - break; - case 0: /* towards 0 */ - case 3: /* towards -infinity */ - dval(aadj1) += 0.5; - } -#else - if (Flt_Rounds == 0) - dval(aadj1) += 0.5; -#endif /*Check_FLT_ROUNDS*/ - } - y = word0(rv) & Exp_mask; - - /* Check for overflow */ - - if (y == Exp_msk1*(DBL_MAX_EXP+Bias-1)) { - dval(rv0) = dval(rv); - word0(rv) -= P*Exp_msk1; - adj = dval(aadj1) * ulp(dval(rv)); - dval(rv) += adj; - if ((word0(rv) & Exp_mask) >= - Exp_msk1*(DBL_MAX_EXP+Bias-P)) { - if (word0(rv0) == Big0 && word1(rv0) == Big1) - goto ovfl; - word0(rv) = Big0; - word1(rv) = Big1; - goto cont; - } - else - word0(rv) += P*Exp_msk1; - } - else { -#ifdef Avoid_Underflow - if (scale && y <= 2*P*Exp_msk1) { - if (aadj <= 0x7fffffff) { - if ((z = (uint32)aadj) <= 0) - z = 1; - aadj = z; - dval(aadj1) = dsign ? aadj : -aadj; - } - word0(aadj1) += (2*P+1)*Exp_msk1 - y; - } - adj = dval(aadj1) * ulp(dval(rv)); - dval(rv) += adj; -#else -#ifdef Sudden_Underflow - if ((word0(rv) & Exp_mask) <= P*Exp_msk1) { - dval(rv0) = dval(rv); - word0(rv) += P*Exp_msk1; - adj = aadj1 * ulp(dval(rv)); - dval(rv) += adj; -#ifdef IBM - if ((word0(rv) & Exp_mask) < P*Exp_msk1) -#else - if ((word0(rv) & Exp_mask) <= P*Exp_msk1) -#endif - { - if (word0(rv0) == Tiny0 - && word1(rv0) == Tiny1) - goto undfl; - word0(rv) = Tiny0; - word1(rv) = Tiny1; - goto cont; - } - else - word0(rv) -= P*Exp_msk1; - } - else { - adj = aadj1 * ulp(dval(rv)); - dval(rv) += adj; - } -#else /*Sudden_Underflow*/ - /* Compute adj so that the IEEE rounding rules will - * correctly round rv + adj in some half-way cases. - * If rv * ulp(rv) is denormalized (i.e., - * y <= (P-1)*Exp_msk1), we must adjust aadj to avoid - * trouble from bits lost to denormalization; - * example: 1.2e-307 . - */ - if (y <= (P-1)*Exp_msk1 && aadj > 1.) { - aadj1 = (double)(int)(aadj + 0.5); - if (!dsign) - aadj1 = -aadj1; - } - adj = aadj1 * ulp(dval(rv)); - dval(rv) += adj; -#endif /*Sudden_Underflow*/ -#endif /*Avoid_Underflow*/ - } - z = word0(rv) & Exp_mask; -#ifndef SET_INEXACT -#ifdef Avoid_Underflow - if (!scale) -#endif - if (y == z) { - /* Can we stop now? */ - L = (Long)aadj; - aadj -= L; - /* The tolerances below are conservative. */ - if (dsign || word1(rv) || word0(rv) & Bndry_mask) { - if (aadj < .4999999 || aadj > .5000001) - break; - } - else if (aadj < .4999999/FLT_RADIX) - break; - } -#endif - cont: - Bfree(bb); - Bfree(bd); - Bfree(bs); - Bfree(delta); - } -#ifdef SET_INEXACT - if (inexact) { - if (!oldinexact) { - word0(rv0) = Exp_1 + (70 << Exp_shift); - word1(rv0) = 0; - dval(rv0) += 1.; - } - } - else if (!oldinexact) - clear_inexact(); -#endif -#ifdef Avoid_Underflow - if (scale) { - word0(rv0) = Exp_1 - 2*P*Exp_msk1; - word1(rv0) = 0; - dval(rv) *= dval(rv0); -#ifndef NO_ERRNO - /* try to avoid the bug of testing an 8087 register value */ - if (word0(rv) == 0 && word1(rv) == 0) - errno = ERANGE; -#endif - } -#endif /* Avoid_Underflow */ -#ifdef SET_INEXACT - if (inexact && !(word0(rv) & Exp_mask)) { - /* set underflow bit */ - dval(rv0) = 1e-300; - dval(rv0) *= dval(rv0); - } -#endif - retfree: - Bfree(bb); - Bfree(bd); - Bfree(bs); - Bfree(bd0); - Bfree(delta); - ret: - if (se) - *se = (char *)s; - return sign ? -dval(rv) : dval(rv); - } + U rv; + word0(&rv) = POSINF_WORD0; + word1(&rv) = POSINF_WORD1; + return sign ? -dval(&rv) : dval(&rv); +} +double +sb_strtod(const char *s00, char **se) +{ + int bb2, bb5, bbe, bd2, bd5, bs2, c, dsign, e, e1, error; + int esign, i, j, k, lz, nd, nd0, odd, sign; + const char *s, *s0, *s1; + double aadj, aadj1; + U aadj2, adj, rv, rv0; + ULong y, z, abs_exp; + Long L; + BCinfo bc; + Bigint *bb, *bb1, *bd, *bd0, *bs, *delta; + size_t ndigits, fraclen; + + dval(&rv) = 0.; + + /* Start parsing. */ + c = *(s = s00); + + /* Parse optional sign, if present. */ + sign = 0; + switch (c) { + case '-': + sign = 1; + /* no break */ + case '+': + c = *++s; + } + + /* Skip leading zeros: lz is true iff there were leading zeros. */ + s1 = s; + while (c == '0') + c = *++s; + lz = s != s1; + + /* Point s0 at the first nonzero digit (if any). fraclen will be the + number of digits between the decimal point and the end of the + digit string. ndigits will be the total number of digits ignoring + leading zeros. */ + s0 = s1 = s; + while ('0' <= c && c <= '9') + c = *++s; + ndigits = s - s1; + fraclen = 0; + + /* Parse decimal point and following digits. */ + if (c == '.') { + c = *++s; + if (!ndigits) { + s1 = s; + while (c == '0') + c = *++s; + lz = lz || s != s1; + fraclen += (s - s1); + s0 = s; + } + s1 = s; + while ('0' <= c && c <= '9') + c = *++s; + ndigits += s - s1; + fraclen += s - s1; + } + + /* Now lz is true if and only if there were leading zero digits, and + ndigits gives the total number of digits ignoring leading zeros. A + valid input must have at least one digit. */ + if (!ndigits && !lz) { + if (se) + *se = (char *)s00; + goto parse_error; + } + + /* Range check ndigits and fraclen to make sure that they, and values + computed with them, can safely fit in an int. */ + if (ndigits > MAX_DIGITS || fraclen > MAX_DIGITS) { + if (se) + *se = (char *)s00; + goto parse_error; + } + nd = (int)ndigits; + nd0 = (int)ndigits - (int)fraclen; + + /* Parse exponent. */ + e = 0; + if (c == 'e' || c == 'E') { + s00 = s; + c = *++s; + + /* Exponent sign. */ + esign = 0; + switch (c) { + case '-': + esign = 1; + /* no break */ + case '+': + c = *++s; + } + + /* Skip zeros. lz is true iff there are leading zeros. */ + s1 = s; + while (c == '0') + c = *++s; + lz = s != s1; + + /* Get absolute value of the exponent. */ + s1 = s; + abs_exp = 0; + while ('0' <= c && c <= '9') { + abs_exp = 10*abs_exp + (c - '0'); + c = *++s; + } + + /* abs_exp will be correct modulo 2**32. But 10**9 < 2**32, so if + there are at most 9 significant exponent digits then overflow is + impossible. */ + if (s - s1 > 9 || abs_exp > MAX_ABS_EXP) + e = (int)MAX_ABS_EXP; + else + e = (int)abs_exp; + if (esign) + e = -e; + + /* A valid exponent must have at least one digit. */ + if (s == s1 && !lz) + s = s00; + } + + /* Adjust exponent to take into account position of the point. */ + e -= nd - nd0; + if (nd0 <= 0) + nd0 = nd; + + /* Finished parsing. Set se to indicate how far we parsed */ + if (se) + *se = (char *)s; + + /* If all digits were zero, exit with return value +-0.0. Otherwise, + strip trailing zeros: scan back until we hit a nonzero digit. */ + if (!nd) + goto ret; + for (i = nd; i > 0; ) { + --i; + if (s0[i < nd0 ? i : i+1] != '0') { + ++i; + break; + } + } + e += nd - i; + nd = i; + if (nd0 > nd) + nd0 = nd; + + /* Summary of parsing results. After parsing, and dealing with zero + * inputs, we have values s0, nd0, nd, e, sign, where: + * + * - s0 points to the first significant digit of the input string + * + * - nd is the total number of significant digits (here, and + * below, 'significant digits' means the set of digits of the + * significand of the input that remain after ignoring leading + * and trailing zeros). + * + * - nd0 indicates the position of the decimal point, if present; it + * satisfies 1 <= nd0 <= nd. The nd significant digits are in + * s0[0:nd0] and s0[nd0+1:nd+1] using the usual Python half-open slice + * notation. (If nd0 < nd, then s0[nd0] contains a '.' character; if + * nd0 == nd, then s0[nd0] could be any non-digit character.) + * + * - e is the adjusted exponent: the absolute value of the number + * represented by the original input string is n * 10**e, where + * n is the integer represented by the concatenation of + * s0[0:nd0] and s0[nd0+1:nd+1] + * + * - sign gives the sign of the input: 1 for negative, 0 for positive + * + * - the first and last significant digits are nonzero + */ + + /* put first DBL_DIG+1 digits into integer y and z. + * + * - y contains the value represented by the first min(9, nd) + * significant digits + * + * - if nd > 9, z contains the value represented by significant digits + * with indices in [9, min(16, nd)). So y * 10**(min(16, nd) - 9) + z + * gives the value represented by the first min(16, nd) sig. digits. + */ + + bc.e0 = e1 = e; + y = z = 0; + for (i = 0; i < nd; i++) { + if (i < 9) + y = 10*y + s0[i < nd0 ? i : i+1] - '0'; + else if (i < DBL_DIG+1) + z = 10*z + s0[i < nd0 ? i : i+1] - '0'; + else + break; + } + + k = nd < DBL_DIG + 1 ? nd : DBL_DIG + 1; + dval(&rv) = y; + if (k > 9) { + dval(&rv) = tens[k - 9] * dval(&rv) + z; + } + bd0 = 0; + if (nd <= DBL_DIG + && Flt_Rounds == 1 + ) { + if (!e) + goto ret; + if (e > 0) { + if (e <= Ten_pmax) { + dval(&rv) *= tens[e]; + goto ret; + } + i = DBL_DIG - nd; + if (e <= Ten_pmax + i) { + /* A fancier test would sometimes let us do + * this for larger i values. + */ + e -= i; + dval(&rv) *= tens[i]; + dval(&rv) *= tens[e]; + goto ret; + } + } + else if (e >= -Ten_pmax) { + dval(&rv) /= tens[-e]; + goto ret; + } + } + e1 += nd - k; + + bc.scale = 0; + + /* Get starting approximation = rv * 10**e1 */ + + if (e1 > 0) { + if ((i = e1 & 15)) + dval(&rv) *= tens[i]; + if (e1 &= ~15) { + if (e1 > DBL_MAX_10_EXP) + goto ovfl; + e1 >>= 4; + for(j = 0; e1 > 1; j++, e1 >>= 1) + if (e1 & 1) + dval(&rv) *= bigtens[j]; + /* The last multiplication could overflow. */ + word0(&rv) -= P*Exp_msk1; + dval(&rv) *= bigtens[j]; + if ((z = word0(&rv) & Exp_mask) + > Exp_msk1*(DBL_MAX_EXP+Bias-P)) + goto ovfl; + if (z > Exp_msk1*(DBL_MAX_EXP+Bias-1-P)) { + /* set to largest number */ + /* (Can't trust DBL_MAX) */ + word0(&rv) = Big0; + word1(&rv) = Big1; + } + else + word0(&rv) += P*Exp_msk1; + } + } + else if (e1 < 0) { + /* The input decimal value lies in [10**e1, 10**(e1+16)). + + If e1 <= -512, underflow immediately. + If e1 <= -256, set bc.scale to 2*P. + + So for input value < 1e-256, bc.scale is always set; + for input value >= 1e-240, bc.scale is never set. + For input values in [1e-256, 1e-240), bc.scale may or may + not be set. */ + + e1 = -e1; + if ((i = e1 & 15)) + dval(&rv) /= tens[i]; + if (e1 >>= 4) { + if (e1 >= 1 << n_bigtens) + goto undfl; + if (e1 & Scale_Bit) + bc.scale = 2*P; + for(j = 0; e1 > 0; j++, e1 >>= 1) + if (e1 & 1) + dval(&rv) *= tinytens[j]; + if (bc.scale && (j = 2*P + 1 - ((word0(&rv) & Exp_mask) + >> Exp_shift)) > 0) { + /* scaled rv is denormal; clear j low bits */ + if (j >= 32) { + word1(&rv) = 0; + if (j >= 53) + word0(&rv) = (P+2)*Exp_msk1; + else + word0(&rv) &= 0xffffffff << (j-32); + } + else + word1(&rv) &= 0xffffffff << j; + } + if (!dval(&rv)) + goto undfl; + } + } + + /* Now the hard part -- adjusting rv to the correct value.*/ + + /* Put digits into bd: true value = bd * 10^e */ + + bc.nd = nd; + bc.nd0 = nd0; /* Only needed if nd > STRTOD_DIGLIM, but done here */ + /* to silence an erroneous warning about bc.nd0 */ + /* possibly not being initialized. */ + if (nd > STRTOD_DIGLIM) { + /* ASSERT(STRTOD_DIGLIM >= 18); 18 == one more than the */ + /* minimum number of decimal digits to distinguish double values */ + /* in IEEE arithmetic. */ + + /* Truncate input to 18 significant digits, then discard any trailing + zeros on the result by updating nd, nd0, e and y suitably. (There's + no need to update z; it's not reused beyond this point.) */ + for (i = 18; i > 0; ) { + /* scan back until we hit a nonzero digit. significant digit 'i' + is s0[i] if i < nd0, s0[i+1] if i >= nd0. */ + --i; + if (s0[i < nd0 ? i : i+1] != '0') { + ++i; + break; + } + } + e += nd - i; + nd = i; + if (nd0 > nd) + nd0 = nd; + if (nd < 9) { /* must recompute y */ + y = 0; + for(i = 0; i < nd0; ++i) + y = 10*y + s0[i] - '0'; + for(; i < nd; ++i) + y = 10*y + s0[i+1] - '0'; + } + } + bd0 = s2b(s0, nd0, nd, y); + if (bd0 == NULL) + goto failed_malloc; + + /* Notation for the comments below. Write: + + - dv for the absolute value of the number represented by the original + decimal input string. + + - if we've truncated dv, write tdv for the truncated value. + Otherwise, set tdv == dv. + + - srv for the quantity rv/2^bc.scale; so srv is the current binary + approximation to tdv (and dv). It should be exactly representable + in an IEEE 754 double. + */ + + for(;;) { + + /* This is the main correction loop for sb_strtod. + + We've got a decimal value tdv, and a floating-point approximation + srv=rv/2^bc.scale to tdv. The aim is to determine whether srv is + close enough (i.e., within 0.5 ulps) to tdv, and to compute a new + approximation if not. + + To determine whether srv is close enough to tdv, compute integers + bd, bb and bs proportional to tdv, srv and 0.5 ulp(srv) + respectively, and then use integer arithmetic to determine whether + |tdv - srv| is less than, equal to, or greater than 0.5 ulp(srv). + */ + + bd = Balloc(bd0->k); + if (bd == NULL) { + Bfree(bd0); + goto failed_malloc; + } + Bcopy(bd, bd0); + bb = sd2b(&rv, bc.scale, &bbe); /* srv = bb * 2^bbe */ + if (bb == NULL) { + Bfree(bd); + Bfree(bd0); + goto failed_malloc; + } + /* Record whether lsb of bb is odd, in case we need this + for the round-to-even step later. */ + odd = bb->x[0] & 1; + + /* tdv = bd * 10**e; srv = bb * 2**bbe */ + bs = i2b(1); + if (bs == NULL) { + Bfree(bb); + Bfree(bd); + Bfree(bd0); + goto failed_malloc; + } + + if (e >= 0) { + bb2 = bb5 = 0; + bd2 = bd5 = e; + } + else { + bb2 = bb5 = -e; + bd2 = bd5 = 0; + } + if (bbe >= 0) + bb2 += bbe; + else + bd2 -= bbe; + bs2 = bb2; + bb2++; + bd2++; + + /* At this stage bd5 - bb5 == e == bd2 - bb2 + bbe, bb2 - bs2 == 1, + and bs == 1, so: + + tdv == bd * 10**e = bd * 2**(bbe - bb2 + bd2) * 5**(bd5 - bb5) + srv == bb * 2**bbe = bb * 2**(bbe - bb2 + bb2) + 0.5 ulp(srv) == 2**(bbe-1) = bs * 2**(bbe - bb2 + bs2) + + It follows that: + + M * tdv = bd * 2**bd2 * 5**bd5 + M * srv = bb * 2**bb2 * 5**bb5 + M * 0.5 ulp(srv) = bs * 2**bs2 * 5**bb5 + + for some constant M. (Actually, M == 2**(bb2 - bbe) * 5**bb5, but + this fact is not needed below.) + */ + + /* Remove factor of 2**i, where i = min(bb2, bd2, bs2). */ + i = bb2 < bd2 ? bb2 : bd2; + if (i > bs2) + i = bs2; + if (i > 0) { + bb2 -= i; + bd2 -= i; + bs2 -= i; + } + + /* Scale bb, bd, bs by the appropriate powers of 2 and 5. */ + if (bb5 > 0) { + bs = pow5mult(bs, bb5); + if (bs == NULL) { + Bfree(bb); + Bfree(bd); + Bfree(bd0); + goto failed_malloc; + } + bb1 = mult(bs, bb); + Bfree(bb); + bb = bb1; + if (bb == NULL) { + Bfree(bs); + Bfree(bd); + Bfree(bd0); + goto failed_malloc; + } + } + if (bb2 > 0) { + bb = lshift(bb, bb2); + if (bb == NULL) { + Bfree(bs); + Bfree(bd); + Bfree(bd0); + goto failed_malloc; + } + } + if (bd5 > 0) { + bd = pow5mult(bd, bd5); + if (bd == NULL) { + Bfree(bb); + Bfree(bs); + Bfree(bd0); + goto failed_malloc; + } + } + if (bd2 > 0) { + bd = lshift(bd, bd2); + if (bd == NULL) { + Bfree(bb); + Bfree(bs); + Bfree(bd0); + goto failed_malloc; + } + } + if (bs2 > 0) { + bs = lshift(bs, bs2); + if (bs == NULL) { + Bfree(bb); + Bfree(bd); + Bfree(bd0); + goto failed_malloc; + } + } + + /* Now bd, bb and bs are scaled versions of tdv, srv and 0.5 ulp(srv), + respectively. Compute the difference |tdv - srv|, and compare + with 0.5 ulp(srv). */ + + delta = diff(bb, bd); + if (delta == NULL) { + Bfree(bb); + Bfree(bs); + Bfree(bd); + Bfree(bd0); + goto failed_malloc; + } + dsign = delta->sign; + delta->sign = 0; + i = cmp(delta, bs); + if (bc.nd > nd && i <= 0) { + if (dsign) + break; /* Must use bigcomp(). */ + + /* Here rv overestimates the truncated decimal value by at most + 0.5 ulp(rv). Hence rv either overestimates the true decimal + value by <= 0.5 ulp(rv), or underestimates it by some small + amount (< 0.1 ulp(rv)); either way, rv is within 0.5 ulps of + the true decimal value, so it's possible to exit. + + Exception: if scaled rv is a normal exact power of 2, but not + DBL_MIN, then rv - 0.5 ulp(rv) takes us all the way down to the + next double, so the correctly rounded result is either rv - 0.5 + ulp(rv) or rv; in this case, use bigcomp to distinguish. */ + + if (!word1(&rv) && !(word0(&rv) & Bndry_mask)) { + /* rv can't be 0, since it's an overestimate for some + nonzero value. So rv is a normal power of 2. */ + j = (int)(word0(&rv) & Exp_mask) >> Exp_shift; + /* rv / 2^bc.scale = 2^(j - 1023 - bc.scale); use bigcomp if + rv / 2^bc.scale >= 2^-1021. */ + if (j - bc.scale >= 2) { + dval(&rv) -= 0.5 * sulp(&rv, &bc); + break; /* Use bigcomp. */ + } + } + + { + bc.nd = nd; + i = -1; /* Discarded digits make delta smaller. */ + } + } + + if (i < 0) { + /* Error is less than half an ulp -- check for + * special case of mantissa a power of two. + */ + if (dsign || word1(&rv) || word0(&rv) & Bndry_mask + || (word0(&rv) & Exp_mask) <= (2*P+1)*Exp_msk1 + ) { + break; + } + if (!delta->x[0] && delta->wds <= 1) { + /* exact result */ + break; + } + delta = lshift(delta,Log2P); + if (delta == NULL) { + Bfree(bb); + Bfree(bs); + Bfree(bd); + Bfree(bd0); + goto failed_malloc; + } + if (cmp(delta, bs) > 0) + goto drop_down; + break; + } + if (i == 0) { + /* exactly half-way between */ + if (dsign) { + if ((word0(&rv) & Bndry_mask1) == Bndry_mask1 + && word1(&rv) == ( + (bc.scale && + (y = word0(&rv) & Exp_mask) <= 2*P*Exp_msk1) ? + (0xffffffff & (0xffffffff << (2*P+1-(y>>Exp_shift)))) : + 0xffffffff)) { + /*boundary case -- increment exponent*/ + word0(&rv) = (word0(&rv) & Exp_mask) + + Exp_msk1 + ; + word1(&rv) = 0; + /* dsign = 0; */ + break; + } + } + else if (!(word0(&rv) & Bndry_mask) && !word1(&rv)) { + drop_down: + /* boundary case -- decrement exponent */ + if (bc.scale) { + L = word0(&rv) & Exp_mask; + if (L <= (2*P+1)*Exp_msk1) { + if (L > (P+2)*Exp_msk1) + /* round even ==> */ + /* accept rv */ + break; + /* rv = smallest denormal */ + if (bc.nd > nd) + break; + goto undfl; + } + } + L = (word0(&rv) & Exp_mask) - Exp_msk1; + word0(&rv) = L | Bndry_mask1; + word1(&rv) = 0xffffffff; + break; + } + if (!odd) + break; + if (dsign) + dval(&rv) += sulp(&rv, &bc); + else { + dval(&rv) -= sulp(&rv, &bc); + if (!dval(&rv)) { + if (bc.nd >nd) + break; + goto undfl; + } + } + /* dsign = 1 - dsign; */ + break; + } + if ((aadj = ratio(delta, bs)) <= 2.) { + if (dsign) + aadj = aadj1 = 1.; + else if (word1(&rv) || word0(&rv) & Bndry_mask) { + if (word1(&rv) == Tiny1 && !word0(&rv)) { + if (bc.nd >nd) + break; + goto undfl; + } + aadj = 1.; + aadj1 = -1.; + } + else { + /* special case -- power of FLT_RADIX to be */ + /* rounded down... */ + + if (aadj < 2./FLT_RADIX) + aadj = 1./FLT_RADIX; + else + aadj *= 0.5; + aadj1 = -aadj; + } + } + else { + aadj *= 0.5; + aadj1 = dsign ? aadj : -aadj; + if (Flt_Rounds == 0) + aadj1 += 0.5; + } + y = word0(&rv) & Exp_mask; + + /* Check for overflow */ + + if (y == Exp_msk1*(DBL_MAX_EXP+Bias-1)) { + dval(&rv0) = dval(&rv); + word0(&rv) -= P*Exp_msk1; + adj.d = aadj1 * ulp(&rv); + dval(&rv) += adj.d; + if ((word0(&rv) & Exp_mask) >= + Exp_msk1*(DBL_MAX_EXP+Bias-P)) { + if (word0(&rv0) == Big0 && word1(&rv0) == Big1) { + Bfree(bb); + Bfree(bd); + Bfree(bs); + Bfree(bd0); + Bfree(delta); + goto ovfl; + } + word0(&rv) = Big0; + word1(&rv) = Big1; + goto cont; + } + else + word0(&rv) += P*Exp_msk1; + } + else { + if (bc.scale && y <= 2*P*Exp_msk1) { + if (aadj <= 0x7fffffff) { + if ((z = (ULong)aadj) <= 0) + z = 1; + aadj = z; + aadj1 = dsign ? aadj : -aadj; + } + dval(&aadj2) = aadj1; + word0(&aadj2) += (2*P+1)*Exp_msk1 - y; + aadj1 = dval(&aadj2); + } + adj.d = aadj1 * ulp(&rv); + dval(&rv) += adj.d; + } + z = word0(&rv) & Exp_mask; + if (bc.nd == nd) { + if (!bc.scale) + if (y == z) { + /* Can we stop now? */ + L = (Long)aadj; + aadj -= L; + /* The tolerances below are conservative. */ + if (dsign || word1(&rv) || word0(&rv) & Bndry_mask) { + if (aadj < .4999999 || aadj > .5000001) + break; + } + else if (aadj < .4999999/FLT_RADIX) + break; + } + } + cont: + Bfree(bb); + Bfree(bd); + Bfree(bs); + Bfree(delta); + } + Bfree(bb); + Bfree(bd); + Bfree(bs); + Bfree(bd0); + Bfree(delta); + if (bc.nd > nd) { + error = bigcomp(&rv, s0, &bc); + if (error) + goto failed_malloc; + } + + if (bc.scale) { + word0(&rv0) = Exp_1 - 2*P*Exp_msk1; + word1(&rv0) = 0; + dval(&rv) *= dval(&rv0); + } + + ret: + return sign ? -dval(&rv) : dval(&rv); + + parse_error: + return 0.0; + + failed_malloc: + errno = ENOMEM; + return -1.0; + + undfl: + return sign ? -0.0 : 0.0; + + ovfl: + errno = ERANGE; + /* Can't trust HUGE_VAL */ + word0(&rv) = Exp_mask; + word1(&rv) = 0; + return sign ? -dval(&rv) : dval(&rv); + +} + +static char * +rv_alloc(int i) +{ + int j, k, *r; + + j = sizeof(ULong); + for(k = 0; + sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= (unsigned)i; + j <<= 1) + k++; + r = (int*)Balloc(k); + if (r == NULL) + return NULL; + *r = k; + return (char *)(r+1); +} + +static char * +nrv_alloc(char *s, char **rve, int n) +{ + char *rv, *t; + + rv = rv_alloc(n); + if (rv == NULL) + return NULL; + t = rv; + while((*t = *s++)) t++; + if (rve) + *rve = t; + return rv; +} + +/* freedtoa(s) must be used to free values s returned by dtoa + * when MULTIPLE_THREADS is #defined. It should be used in all cases, + * but for consistency with earlier versions of dtoa, it is optional + * when MULTIPLE_THREADS is not defined. + */ + +void +sb_freedtoa(char *s) +{ + Bigint *b = (Bigint *)((int *)s - 1); + b->maxwds = 1 << (b->k = *(int*)b); + Bfree(b); +} + +/* dtoa for IEEE arithmetic (dmg): convert double to ASCII string. + * + * Inspired by "How to Print Floating-Point Numbers Accurately" by + * Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 112-126]. + * + * Modifications: + * 1. Rather than iterating, we use a simple numeric overestimate + * to determine k = floor(log10(d)). We scale relevant + * quantities using O(log2(k)) rather than O(k) multiplications. + * 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't + * try to generate digits strictly left to right. Instead, we + * compute with fewer bits and propagate the carry if necessary + * when rounding the final digit up. This is often faster. + * 3. Under the assumption that input will be rounded nearest, + * mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22. + * That is, we allow equality in stopping tests when the + * round-nearest rule will give the same floating-point value + * as would satisfaction of the stopping test with strict + * inequality. + * 4. We remove common factors of powers of 2 from relevant + * quantities. + * 5. When converting floating-point integers less than 1e16, + * we use floating-point arithmetic rather than resorting + * to multiple-precision integers. + * 6. When asked to produce fewer than 15 digits, we first try + * to get by with floating-point arithmetic; we resort to + * multiple-precision integer arithmetic only if we cannot + * guarantee that the floating-point calculation has given + * the correctly rounded result. For k requested digits and + * "uniformly" distributed input, the probability is + * something like 10^(k-15) that we must resort to the Long + * calculation. + */ + +/* Additional notes (METD): (1) returns NULL on failure. (2) to avoid memory + leakage, a successful call to sb_dtoa should always be matched by a + call to sb_freedtoa. */ + +char * +sb_dtoa(double dd, int mode, int ndigits, + int *decpt, int *sign, char **rve) +{ + /* Arguments ndigits, decpt, sign are similar to those + of ecvt and fcvt; trailing zeros are suppressed from + the returned string. If not null, *rve is set to point + to the end of the return value. If d is +-Infinity or NaN, + then *decpt is set to 9999. + + mode: + 0 ==> shortest string that yields d when read in + and rounded to nearest. + 1 ==> like 0, but with Steele & White stopping rule; + e.g. with IEEE P754 arithmetic , mode 0 gives + 1e23 whereas mode 1 gives 9.999999999999999e22. + 2 ==> max(1,ndigits) significant digits. This gives a + return value similar to that of ecvt, except + that trailing zeros are suppressed. + 3 ==> through ndigits past the decimal point. This + gives a return value similar to that from fcvt, + except that trailing zeros are suppressed, and + ndigits can be negative. + 4,5 ==> similar to 2 and 3, respectively, but (in + round-nearest mode) with the tests of mode 0 to + possibly return a shorter string that rounds to d. + With IEEE arithmetic and compilation with + -DHonor_FLT_ROUNDS, modes 4 and 5 behave the same + as modes 2 and 3 when FLT_ROUNDS != 1. + 6-9 ==> Debugging modes similar to mode - 4: don't try + fast floating-point estimate (if applicable). + + Values of mode other than 0-9 are treated as mode 0. + + Sufficient space is allocated to the return value + to hold the suppressed trailing zeros. + */ + + int bbits, b2, b5, be, dig, i, ieps, ilim, ilim0, ilim1, + j, j1, k, k0, k_check, leftright, m2, m5, s2, s5, + spec_case, try_quick; + Long L; + int denorm; + ULong x; + Bigint *b, *b1, *delta, *mlo, *mhi, *S; + U d2, eps, u; + double ds; + char *s, *s0; + + /* set pointers to NULL, to silence gcc compiler warnings and make + cleanup easier on error */ + mlo = mhi = S = 0; + s0 = 0; + + u.d = dd; + if (word0(&u) & Sign_bit) { + /* set sign for everything, including 0's and NaNs */ + *sign = 1; + word0(&u) &= ~Sign_bit; /* clear sign bit */ + } + else + *sign = 0; + + /* quick return for Infinities, NaNs and zeros */ + if ((word0(&u) & Exp_mask) == Exp_mask) + { + /* Infinity or NaN */ + *decpt = 9999; + if (!word1(&u) && !(word0(&u) & 0xfffff)) + return nrv_alloc("Infinity", rve, 8); + return nrv_alloc("NaN", rve, 3); + } + if (!dval(&u)) { + *decpt = 1; + return nrv_alloc("0", rve, 1); + } + + /* compute k = floor(log10(d)). The computation may leave k + one too large, but should never leave k too small. */ + b = d2b(&u, &be, &bbits); + if (b == NULL) + goto failed_malloc; + if ((i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1)))) { + dval(&d2) = dval(&u); + word0(&d2) &= Frac_mask1; + word0(&d2) |= Exp_11; + + /* log(x) ~=~ log(1.5) + (x-1.5)/1.5 + * log10(x) = log(x) / log(10) + * ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10)) + * log10(d) = (i-Bias)*log(2)/log(10) + log10(d2) + * + * This suggests computing an approximation k to log10(d) by + * + * k = (i - Bias)*0.301029995663981 + * + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 ); + * + * We want k to be too large rather than too small. + * The error in the first-order Taylor series approximation + * is in our favor, so we just round up the constant enough + * to compensate for any error in the multiplication of + * (i - Bias) by 0.301029995663981; since |i - Bias| <= 1077, + * and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14, + * adding 1e-13 to the constant term more than suffices. + * Hence we adjust the constant term to 0.1760912590558. + * (We could get a more accurate k by invoking log10, + * but this is probably not worthwhile.) + */ + + i -= Bias; + denorm = 0; + } + else { + /* d is denormalized */ + + i = bbits + be + (Bias + (P-1) - 1); + x = i > 32 ? word0(&u) << (64 - i) | word1(&u) >> (i - 32) + : word1(&u) << (32 - i); + dval(&d2) = x; + word0(&d2) -= 31*Exp_msk1; /* adjust exponent */ + i -= (Bias + (P-1) - 1) + 1; + denorm = 1; + } + ds = (dval(&d2)-1.5)*0.289529654602168 + 0.1760912590558 + + i*0.301029995663981; + k = (int)ds; + if (ds < 0. && ds != k) + k--; /* want k = floor(ds) */ + k_check = 1; + if (k >= 0 && k <= Ten_pmax) { + if (dval(&u) < tens[k]) + k--; + k_check = 0; + } + j = bbits - i - 1; + if (j >= 0) { + b2 = 0; + s2 = j; + } + else { + b2 = -j; + s2 = 0; + } + if (k >= 0) { + b5 = 0; + s5 = k; + s2 += k; + } + else { + b2 -= k; + b5 = -k; + s5 = 0; + } + if (mode < 0 || mode > 9) + mode = 0; + + try_quick = 1; + + if (mode > 5) { + mode -= 4; + try_quick = 0; + } + leftright = 1; + ilim = ilim1 = -1; /* Values for cases 0 and 1; done here to */ + /* silence erroneous "gcc -Wall" warning. */ + switch(mode) { + case 0: + case 1: + i = 18; + ndigits = 0; + break; + case 2: + leftright = 0; + /* no break */ + case 4: + if (ndigits <= 0) + ndigits = 1; + ilim = ilim1 = i = ndigits; + break; + case 3: + leftright = 0; + /* no break */ + case 5: + i = ndigits + k + 1; + ilim = i; + ilim1 = i - 1; + if (i <= 0) + i = 1; + } + s0 = rv_alloc(i); + if (s0 == NULL) + goto failed_malloc; + s = s0; + + + if (ilim >= 0 && ilim <= Quick_max && try_quick) { + + /* Try to get by with floating-point arithmetic. */ + + i = 0; + dval(&d2) = dval(&u); + k0 = k; + ilim0 = ilim; + ieps = 2; /* conservative */ + if (k > 0) { + ds = tens[k&0xf]; + j = k >> 4; + if (j & Bletch) { + /* prevent overflows */ + j &= Bletch - 1; + dval(&u) /= bigtens[n_bigtens-1]; + ieps++; + } + for(; j; j >>= 1, i++) + if (j & 1) { + ieps++; + ds *= bigtens[i]; + } + dval(&u) /= ds; + } + else if ((j1 = -k)) { + dval(&u) *= tens[j1 & 0xf]; + for(j = j1 >> 4; j; j >>= 1, i++) + if (j & 1) { + ieps++; + dval(&u) *= bigtens[i]; + } + } + if (k_check && dval(&u) < 1. && ilim > 0) { + if (ilim1 <= 0) + goto fast_failed; + ilim = ilim1; + k--; + dval(&u) *= 10.; + ieps++; + } + dval(&eps) = ieps*dval(&u) + 7.; + word0(&eps) -= (P-1)*Exp_msk1; + if (ilim == 0) { + S = mhi = 0; + dval(&u) -= 5.; + if (dval(&u) > dval(&eps)) + goto one_digit; + if (dval(&u) < -dval(&eps)) + goto no_digits; + goto fast_failed; + } + if (leftright) { + /* Use Steele & White method of only + * generating digits needed. + */ + dval(&eps) = 0.5/tens[ilim-1] - dval(&eps); + for(i = 0;;) { + L = (Long)dval(&u); + dval(&u) -= L; + *s++ = '0' + (int)L; + if (dval(&u) < dval(&eps)) + goto ret1; + if (1. - dval(&u) < dval(&eps)) + goto bump_up; + if (++i >= ilim) + break; + dval(&eps) *= 10.; + dval(&u) *= 10.; + } + } + else { + /* Generate ilim digits, then fix them up. */ + dval(&eps) *= tens[ilim-1]; + for(i = 1;; i++, dval(&u) *= 10.) { + L = (Long)(dval(&u)); + if (!(dval(&u) -= L)) + ilim = i; + *s++ = '0' + (int)L; + if (i == ilim) { + if (dval(&u) > 0.5 + dval(&eps)) + goto bump_up; + else if (dval(&u) < 0.5 - dval(&eps)) { + while(*--s == '0'); + s++; + goto ret1; + } + break; + } + } + } + fast_failed: + s = s0; + dval(&u) = dval(&d2); + k = k0; + ilim = ilim0; + } + + /* Do we have a "small" integer? */ + + if (be >= 0 && k <= Int_max) { + /* Yes. */ + ds = tens[k]; + if (ndigits < 0 && ilim <= 0) { + S = mhi = 0; + if (ilim < 0 || dval(&u) <= 5*ds) + goto no_digits; + goto one_digit; + } + for(i = 1;; i++, dval(&u) *= 10.) { + L = (Long)(dval(&u) / ds); + dval(&u) -= L*ds; + *s++ = '0' + (int)L; + if (!dval(&u)) { + break; + } + if (i == ilim) { + dval(&u) += dval(&u); + if (dval(&u) > ds || (dval(&u) == ds && L & 1)) { + bump_up: + while(*--s == '9') + if (s == s0) { + k++; + *s = '0'; + break; + } + ++*s++; + } + break; + } + } + goto ret1; + } + + m2 = b2; + m5 = b5; + if (leftright) { + i = + denorm ? be + (Bias + (P-1) - 1 + 1) : + 1 + P - bbits; + b2 += i; + s2 += i; + mhi = i2b(1); + if (mhi == NULL) + goto failed_malloc; + } + if (m2 > 0 && s2 > 0) { + i = m2 < s2 ? m2 : s2; + b2 -= i; + m2 -= i; + s2 -= i; + } + if (b5 > 0) { + if (leftright) { + if (m5 > 0) { + mhi = pow5mult(mhi, m5); + if (mhi == NULL) + goto failed_malloc; + b1 = mult(mhi, b); + Bfree(b); + b = b1; + if (b == NULL) + goto failed_malloc; + } + if ((j = b5 - m5)) { + b = pow5mult(b, j); + if (b == NULL) + goto failed_malloc; + } + } + else { + b = pow5mult(b, b5); + if (b == NULL) + goto failed_malloc; + } + } + S = i2b(1); + if (S == NULL) + goto failed_malloc; + if (s5 > 0) { + S = pow5mult(S, s5); + if (S == NULL) + goto failed_malloc; + } + + /* Check for special case that d is a normalized power of 2. */ + + spec_case = 0; + if ((mode < 2 || leftright) + ) { + if (!word1(&u) && !(word0(&u) & Bndry_mask) + && word0(&u) & (Exp_mask & ~Exp_msk1) + ) { + /* The special case */ + b2 += Log2P; + s2 += Log2P; + spec_case = 1; + } + } + + /* Arrange for convenient computation of quotients: + * shift left if necessary so divisor has 4 leading 0 bits. + * + * Perhaps we should just compute leading 28 bits of S once + * and for all and pass them and a shift to quorem, so it + * can do shifts and ors to compute the numerator for q. + */ +#define iInc 28 + i = dshift(S, s2); + b2 += i; + m2 += i; + s2 += i; + if (b2 > 0) { + b = lshift(b, b2); + if (b == NULL) + goto failed_malloc; + } + if (s2 > 0) { + S = lshift(S, s2); + if (S == NULL) + goto failed_malloc; + } + if (k_check) { + if (cmp(b,S) < 0) { + k--; + b = multadd(b, 10, 0); /* we botched the k estimate */ + if (b == NULL) + goto failed_malloc; + if (leftright) { + mhi = multadd(mhi, 10, 0); + if (mhi == NULL) + goto failed_malloc; + } + ilim = ilim1; + } + } + if (ilim <= 0 && (mode == 3 || mode == 5)) { + if (ilim < 0) { + /* no digits, fcvt style */ + no_digits: + k = -1 - ndigits; + goto ret; + } + else { + S = multadd(S, 5, 0); + if (S == NULL) + goto failed_malloc; + if (cmp(b, S) <= 0) + goto no_digits; + } + one_digit: + *s++ = '1'; + k++; + goto ret; + } + if (leftright) { + if (m2 > 0) { + mhi = lshift(mhi, m2); + if (mhi == NULL) + goto failed_malloc; + } + + /* Compute mlo -- check for special case + * that d is a normalized power of 2. + */ + + mlo = mhi; + if (spec_case) { + mhi = Balloc(mhi->k); + if (mhi == NULL) + goto failed_malloc; + Bcopy(mhi, mlo); + mhi = lshift(mhi, Log2P); + if (mhi == NULL) + goto failed_malloc; + } + + for(i = 1;;i++) { + dig = quorem(b,S) + '0'; + /* Do we yet have the shortest decimal string + * that will round to d? + */ + j = cmp(b, mlo); + delta = diff(S, mhi); + if (delta == NULL) + goto failed_malloc; + j1 = delta->sign ? 1 : cmp(b, delta); + Bfree(delta); + if (j1 == 0 && mode != 1 && !(word1(&u) & 1) + ) { + if (dig == '9') + goto round_9_up; + if (j > 0) + dig++; + *s++ = dig; + goto ret; + } + if (j < 0 || (j == 0 && mode != 1 + && !(word1(&u) & 1) + )) { + if (!b->x[0] && b->wds <= 1) { + goto accept_dig; + } + if (j1 > 0) { + b = lshift(b, 1); + if (b == NULL) + goto failed_malloc; + j1 = cmp(b, S); + if ((j1 > 0 || (j1 == 0 && dig & 1)) + && dig++ == '9') + goto round_9_up; + } + accept_dig: + *s++ = dig; + goto ret; + } + if (j1 > 0) { + if (dig == '9') { /* possible if i == 1 */ + round_9_up: + *s++ = '9'; + goto roundoff; + } + *s++ = dig + 1; + goto ret; + } + *s++ = dig; + if (i == ilim) + break; + b = multadd(b, 10, 0); + if (b == NULL) + goto failed_malloc; + if (mlo == mhi) { + mlo = mhi = multadd(mhi, 10, 0); + if (mlo == NULL) + goto failed_malloc; + } + else { + mlo = multadd(mlo, 10, 0); + if (mlo == NULL) + goto failed_malloc; + mhi = multadd(mhi, 10, 0); + if (mhi == NULL) + goto failed_malloc; + } + } + } + else + for(i = 1;; i++) { + *s++ = dig = quorem(b,S) + '0'; + if (!b->x[0] && b->wds <= 1) { + goto ret; + } + if (i >= ilim) + break; + b = multadd(b, 10, 0); + if (b == NULL) + goto failed_malloc; + } + + /* Round off last digit */ + + b = lshift(b, 1); + if (b == NULL) + goto failed_malloc; + j = cmp(b, S); + if (j > 0 || (j == 0 && dig & 1)) { + roundoff: + while(*--s == '9') + if (s == s0) { + k++; + *s++ = '1'; + goto ret; + } + ++*s++; + } + else { + while(*--s == '0'); + s++; + } + ret: + Bfree(S); + if (mhi) { + if (mlo && mlo != mhi) + Bfree(mlo); + Bfree(mhi); + } + ret1: + Bfree(b); + *s = 0; + *decpt = k + 1; + if (rve) + *rve = s; + return s0; + failed_malloc: + if (S) + Bfree(S); + if (mlo && mlo != mhi) + Bfree(mlo); + if (mhi) + Bfree(mhi); + if (b) + Bfree(b); + if (s0) + sb_freedtoa(s0); + return NULL; +} #ifdef __cplusplus } #endif diff -Nru sphinxbase-0.8/src/libsphinxbase/util/err.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/err.c --- sphinxbase-0.8/src/libsphinxbase/util/err.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/err.c 2015-03-24 17:26:36.000000000 +0000 @@ -8,27 +8,27 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the * United States of America, and the CMU Sphinx Speech Consortium. * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY * NOR ITS EMPLOYEES 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 + * 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. * * ==================================================================== @@ -39,7 +39,9 @@ * @brief Somewhat antiquated logging and error interface. */ -#include "config.h" +#ifdef HAVE_CONFIG_H +#include +#endif #include #include @@ -48,323 +50,248 @@ #include #include "sphinxbase/err.h" +#include "sphinxbase/prim_type.h" +#include "sphinxbase/filename.h" +#include "sphinxbase/ckd_alloc.h" + +static FILE* logfp = NULL; +static int logfp_disabled = FALSE; -#ifdef SPHINX_DEBUG static int sphinx_debug_level; -int -err_set_debug_level(int level) -{ - int prev = sphinx_debug_level; - sphinx_debug_level = level; - return prev; -} -int -err_get_debug_level(void) -{ - return sphinx_debug_level; -} -#else -int -err_set_debug_level(int level) -{ - return 0; -} -int -err_get_debug_level(void) -{ - return 0; -} +#if defined(__ANDROID__) +#include +static void +err_logcat_cb(void* user_data, err_lvl_t level, const char *fmt, ...); +#elif defined(_WIN32_WCE) +#include +#define vsnprintf _vsnprintf +static void +err_wince_cb(void* user_data, err_lvl_t level, const char *fmt, ...); #endif -#if defined(HAVE_PTHREAD_H) -#include -static pthread_key_t logfp_index; -static pthread_once_t logfp_index_once = PTHREAD_ONCE_INIT; +#if defined(__ANDROID__) +static err_cb_f err_cb = err_logcat_cb; +#elif defined(_WIN32_WCE) +static err_cb_f err_cb = err_wince_cb; +#else +static err_cb_f err_cb = err_logfp_cb; +#endif +static void* err_user_data; void -logfp_index_alloc(void) +err_msg(err_lvl_t lvl, const char *path, long ln, const char *fmt, ...) { - pthread_key_create(&logfp_index, NULL); -} + static const char *err_prefix[ERR_MAX] = { + "DEBUG", "INFO", "INFOCONT", "WARN", "ERROR", "FATAL" + }; -FILE * -err_get_logfp(void) -{ - FILE *logfp; + char msg[1024]; + va_list ap; - pthread_once(&logfp_index_once, logfp_index_alloc); - logfp = (FILE *)pthread_getspecific(logfp_index); + if (!err_cb) + return; - if (logfp == NULL) - return stderr; - else if (logfp == (FILE*) -1) - return NULL; - else - return logfp; + va_start(ap, fmt); + vsnprintf(msg, sizeof(msg), fmt, ap); + va_end(ap); + + if (path) { + const char *fname = path2basename(path); + if (lvl == ERR_INFOCONT) + err_cb(err_user_data, lvl, "%s(%ld): %s", fname, ln, msg); + else if (lvl == ERR_INFO) + err_cb(err_user_data, lvl, "%s: %s(%ld): %s", err_prefix[lvl], fname, ln, msg); + else + err_cb(err_user_data, lvl, "%s: \"%s\", line %ld: %s", err_prefix[lvl], fname, ln, msg); + } else { + err_cb(err_user_data, lvl, "%s", msg); + } } -static void -internal_set_logfp(FILE *fh) +#ifdef _WIN32_WCE /* No strerror for WinCE, so a separate implementation */ +void +err_msg_system(err_lvl_t lvl, const char *path, long ln, const char *fmt, ...) { - if (fh == NULL) - fh = (FILE*) -1; + static const char *err_prefix[ERR_MAX] = { + "DEBUG", "INFO", "INFOCONT", "WARN", "ERROR", "FATAL" + }; - pthread_setspecific(logfp_index, (void *)fh); -} + va_list ap; + LPVOID error_wstring; + DWORD error; + char msg[1024]; + char error_string[1024]; -#elif defined(_WIN32) || defined(__CYGWIN__) /* Use Windows TLS on Cygwin */ -#include -static DWORD logfp_index; /** TLS index for log file */ -static LONG logfp_index_once = 0; /** True if we have initialized TLS */ + if (!err_cb) + return; + error = GetLastError(); + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + error, + 0, // Default language + (LPTSTR) &error_wstring, + 0, + NULL); + wcstombs(error_string, error_wstring, 1023); + LocalFree(error_wstring); + + va_start(ap, fmt); + vsnprintf(msg, sizeof(msg), fmt, ap); + va_end(ap); + + if (path) { + const char *fname = path2basename(path); + if (lvl == ERR_INFOCONT) + err_cb(err_user_data, lvl, "%s(%ld): %s: %s\n", fname, ln, msg, error_string); + else if (lvl == ERR_INFO) + err_cb(err_user_data, lvl, "%s: %s(%ld): %s: %s\n", err_prefix[lvl], fname, ln, msg, error_string); + else + err_cb(err_user_data, lvl, "%s: \"%s\", line %ld: %s: %s\n", err_prefix[lvl], fname, ln, msg, error_string); + } else { + err_cb(err_user_data, lvl, "%s: %s\n", msg, error_string); + } +} +#else void -logfp_index_alloc(void) +err_msg_system(err_lvl_t lvl, const char *path, long ln, const char *fmt, ...) { - logfp_index = TlsAlloc(); -} + int local_errno = errno; + + static const char *err_prefix[ERR_MAX] = { + "DEBUG", "INFO", "INFOCONT", "WARN", "ERROR", "FATAL" + }; -FILE * -err_get_logfp(void) -{ - FILE *logfp; + char msg[1024]; + va_list ap; - if (InterlockedExchange(&logfp_index_once, 1) == 0) - logfp_index_alloc(); - logfp = (FILE *)TlsGetValue(logfp_index); + if (!err_cb) + return; - if (logfp == NULL) - return stderr; - else if (logfp == (FILE*) -1) - return NULL; - else - return logfp; + va_start(ap, fmt); + vsnprintf(msg, sizeof(msg), fmt, ap); + va_end(ap); + + if (path) { + const char *fname = path2basename(path); + if (lvl == ERR_INFOCONT) + err_cb(err_user_data, lvl, "%s(%ld): %s: %s\n", fname, ln, msg, strerror(local_errno)); + else if (lvl == ERR_INFO) + err_cb(err_user_data, lvl, "%s: %s(%ld): %s: %s\n", err_prefix[lvl], fname, ln, msg, strerror(local_errno)); + else + err_cb(err_user_data, lvl, "%s: \"%s\", line %ld: %s: %s\n", err_prefix[lvl], fname, ln, msg, strerror(local_errno)); + } else { + err_cb(err_user_data, lvl, "%s: %s\n", msg, strerror(local_errno)); + } } +#endif +#if defined(__ANDROID__) static void -internal_set_logfp(FILE *fh) +err_logcat_cb(void *user_data, err_lvl_t lvl, const char *fmt, ...) { - if (fh == NULL) - fh = (FILE*) -1; - - TlsSetValue(logfp_index, (void *)fh); -} - -#else -FILE *logfp = NULL; + static const int android_level[ERR_MAX] = {ANDROID_LOG_DEBUG, ANDROID_LOG_INFO, + ANDROID_LOG_INFO, ANDROID_LOG_WARN, ANDROID_LOG_ERROR, ANDROID_LOG_ERROR}; -FILE * -err_get_logfp(void) -{ - if (logfp == NULL) - return stderr; - else if (logfp == (FILE*) -1) - return NULL; - else - return logfp; + va_list ap; + va_start(ap, fmt); + __android_log_vprint(android_level[lvl], "cmusphinx", fmt, ap); + va_end(ap); } - +#elif defined(_WIN32_WCE) static void -internal_set_logfp(FILE *fh) +err_wince_cb(void *user_data, err_lvl_t lvl, const char *fmt, ...) { - if (fh == NULL) - fh = (FILE*) -1; + char msg[1024]; + WCHAR *wmsg; + size_t size; + va_list ap; + + va_start(ap, fmt); + _vsnprintf(msg, sizeof(msg), fmt, ap); + va_end(ap); + + size = mbstowcs(NULL, msg, 0) + 1; + wmsg = ckd_calloc(size, sizeof(*wmsg)); + mbstowcs(wmsg, msg, size); - logfp = fh; + OutputDebugStringW(wmsg); + ckd_free(wmsg); } - -#endif - -FILE * -err_set_logfp(FILE *newfp) +#else +void +err_logfp_cb(void *user_data, err_lvl_t lvl, const char *fmt, ...) { - FILE *oldfp; + va_list ap; + FILE *fp = err_get_logfp(); - oldfp = err_get_logfp(); - internal_set_logfp(newfp); - - return oldfp; + if (!fp) + return; + + va_start(ap, fmt); + vfprintf(fp, fmt, ap); + va_end(ap); } +#endif int -err_set_logfile(char const *file) +err_set_logfile(const char *path) { FILE *newfp, *oldfp; - if ((newfp = fopen(file, "a")) == NULL) + if ((newfp = fopen(path, "a")) == NULL) return -1; oldfp = err_get_logfp(); - internal_set_logfp(newfp); + err_set_logfp(newfp); if (oldfp != NULL && oldfp != stdout && oldfp != stderr) fclose(oldfp); return 0; } - void -_E__pr_info_header_wofn(char const *msg) +err_set_logfp(FILE *stream) { - FILE *logfp; - - logfp = err_get_logfp(); - if (logfp == NULL) - return; - /* make different format so as not to be parsed by emacs compile */ - fprintf(logfp, "%s:\t", msg); - fflush(logfp); + if (stream == NULL) { + logfp_disabled = TRUE; + logfp = NULL; + return; + } + logfp_disabled = FALSE; + logfp = stream; + return; } -void -_E__pr_header(char const *f, long ln, char const *msg) -{ - char const *fname; - FILE *logfp; - - logfp = err_get_logfp(); - if (logfp == NULL) - return; - fname = strrchr(f,'\\'); - if (fname == NULL) - fname = strrchr(f,'/'); - fprintf(logfp, "%s: \"%s\", line %ld: ", msg, fname == NULL ? f : fname + 1, ln); - fflush(logfp); -} - -void -_E__pr_info_header(char const *f, long ln, char const *msg) -{ - char const *fname; - FILE *logfp; - - logfp = err_get_logfp(); - if (logfp == NULL) - return; - fname = strrchr(f,'\\'); - if (fname == NULL) - fname = strrchr(f,'/'); - /* make different format so as not to be parsed by emacs compile */ - fprintf(logfp, "%s: %s(%ld): ", msg, fname == NULL ? f : fname + 1, ln); - fflush(logfp); -} - -void -_E__pr_warn(char const *fmt, ...) -{ - va_list pvar; - FILE *logfp; - - logfp = err_get_logfp(); - if (logfp == NULL) - return; - va_start(pvar, fmt); - vfprintf(logfp, fmt, pvar); - va_end(pvar); - - fflush(logfp); -} - -void -_E__pr_info(char const *fmt, ...) +FILE * +err_get_logfp(void) { - va_list pvar; - FILE *logfp; - - logfp = err_get_logfp(); + if (logfp_disabled) + return NULL; if (logfp == NULL) - return; - va_start(pvar, fmt); - vfprintf(logfp, fmt, pvar); - va_end(pvar); - - fflush(logfp); -} + return stderr; -void -_E__die_error(char const *fmt, ...) -{ - va_list pvar; - FILE *logfp; - - logfp = err_get_logfp(); - if (logfp) { - va_start(pvar, fmt); - vfprintf(logfp, fmt, pvar); - va_end(pvar); - fflush(logfp); - } - -#if defined(__ADSPBLACKFIN__) && !defined(__linux__) - while(1); -#else - exit(-1); -#endif + return logfp; } -void -_E__fatal_sys_error(char const *fmt, ...) +int +err_set_debug_level(int level) { - va_list pvar; - FILE *logfp; - int local_errno = errno; - - logfp = err_get_logfp(); - if (logfp) { - va_start(pvar, fmt); - vfprintf(logfp, fmt, pvar); - va_end(pvar); - - fprintf(logfp, ": %s\n", strerror(local_errno)); - fflush(logfp); - } - - -#if defined(__ADSPBLACKFIN__) && !defined(__linux__) - while(1); -#else - exit(-1); -#endif - + int prev = sphinx_debug_level; + sphinx_debug_level = level; + return prev; } -void -_E__sys_error(char const *fmt, ...) +int +err_get_debug_level(void) { - va_list pvar; - FILE *logfp; - int local_errno = errno; - - logfp = err_get_logfp(); - if (logfp == NULL) - return; - - va_start(pvar, fmt); - vfprintf(logfp, fmt, pvar); - va_end(pvar); - - fprintf(logfp, ": %s\n", strerror(local_errno)); - fflush(logfp); + return sphinx_debug_level; } void -_E__abort_error(char const *fmt, ...) +err_set_callback(err_cb_f cb, void* user_data) { - va_list pvar; - FILE *logfp; - - logfp = err_get_logfp(); - if (logfp) { - va_start(pvar, fmt); - vfprintf(logfp, fmt, pvar); - va_end(pvar); - fflush(logfp); - } - -#if defined(__ADSPBLACKFIN__) && !defined(__linux__) -while(1); -#elif defined(_WIN32_WCE) -exit(-1); -#else -abort(); -#endif - + err_cb = cb; + err_user_data= user_data; } diff -Nru sphinxbase-0.8/src/libsphinxbase/util/errno.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/errno.c --- sphinxbase-0.8/src/libsphinxbase/util/errno.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/errno.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 2007 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== -/********************************************************************* - * - * File: errno.c - * - * Description: functions and variables missing from Windows CE standard - * library - * - * Author: Silvio Moioli - * - *********************************************************************/ - -#include - -#if defined(_WIN32_WCE) -int errno; -int _doserrno; -int _sys_nerr; - -char* strerror(int errno){ - static char buf[32]="wince::strerror called."; - return buf; -} -#endif \ No newline at end of file diff -Nru sphinxbase-0.8/src/libsphinxbase/util/err_wince.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/err_wince.c --- sphinxbase-0.8/src/libsphinxbase/util/err_wince.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/err_wince.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,193 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2004 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * err_wince.c -- Package for checking and catching common errors, printing out - * errors nicely, etc. - * WinCE has no standard library worth the name so we need this - */ - - -#include -#include -#include -#include -#include - -#include "sphinxbase/err.h" -#include "sphinxbase/ckd_alloc.h" - -int cst_verrmsg(const char *fmt, va_list args) -{ - char msg[256]; - WCHAR *wmsg; - size_t len; - - _vsnprintf(msg,256,fmt,args); - - len = mbstowcs(NULL,msg,0) + 1; - wmsg = ckd_calloc(len,sizeof(*wmsg)); - mbstowcs(wmsg,msg,len); - - OutputDebugStringW(wmsg); - ckd_free(wmsg); - return 0; -} - -int cst_errmsg(const char *fmt, ...) -{ - va_list args; - - va_start(args,fmt); - cst_verrmsg(fmt, args); - va_end(args); - return 0; -} - -void -_E__pr_info_header_wofn(char const *msg) -{ - cst_errmsg("%s:\t", msg); -} - -void -_E__pr_header(char const *f, long ln, char const *msg) -{ - cst_errmsg("%s: \"%s\", line %ld: ", msg, f, ln); -} - -void -_E__pr_info_header(char const *f, long ln, char const *msg) -{ - cst_errmsg("%s: %s(%ld): ", msg, f, ln); -} - -void -_E__pr_warn(char const *fmt, ...) -{ - va_list pvar; - - va_start(pvar, fmt); - cst_verrmsg(fmt, pvar); - va_end(pvar); -} - -void -_E__pr_info(char const *fmt, ...) -{ - va_list pvar; - - va_start(pvar, fmt); - cst_verrmsg(fmt, pvar); - va_end(pvar); -} - -void -_E__die_error(char const *fmt, ...) -{ - va_list pvar; - - va_start(pvar, fmt); - cst_verrmsg(fmt, pvar); - va_end(pvar); - exit(-1); -} - -void -_E__fatal_sys_error(char const *fmt, ...) -{ - LPVOID msg_buf; - DWORD error; - va_list pvar; - - error = GetLastError(); - va_start(pvar, fmt); - cst_verrmsg(fmt, pvar); - va_end(pvar); - - OutputDebugStringW(L"; "); - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - error, - 0, // Default language - (LPTSTR) &msg_buf, - 0, - NULL); - OutputDebugString(msg_buf); - LocalFree(msg_buf); - - exit(error); -} - -void -_E__sys_error(char const *fmt, ...) -{ - LPVOID msg_buf; - DWORD error; - va_list pvar; - - error = GetLastError(); - va_start(pvar, fmt); - cst_verrmsg(fmt, pvar); - va_end(pvar); - - OutputDebugStringW(L"; "); - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - error, - 0, // Default language - (LPTSTR) &msg_buf, - 0, - NULL); - OutputDebugString(msg_buf); - LocalFree(msg_buf); -} - -void -_E__abort_error(char const *fmt, ...) -{ - va_list pvar; - - va_start(pvar, fmt); - cst_verrmsg(fmt, pvar); - va_end(pvar); - - assert(2+2 == 5); -} diff -Nru sphinxbase-0.8/src/libsphinxbase/util/filename.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/filename.c --- sphinxbase-0.8/src/libsphinxbase/util/filename.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/filename.c 2015-03-24 17:26:36.000000000 +0000 @@ -36,28 +36,8 @@ */ /* * filename.c -- File and path name operations. - * - * ********************************************** - * CMU ARPA Speech Project - * - * Copyright (c) 1999 Carnegie Mellon University. - * ALL RIGHTS RESERVED. - * ********************************************** - * - * HISTORY - * $Log: filename.c,v $ - * Revision 1.5 2005/06/22 03:01:07 arthchan2003 - * Added keyword - * - * Revision 1.3 2005/03/30 01:22:48 archan - * Fixed mistakes in last updates. Add - * - * - * 30-Oct-1997 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University. - * Started. */ - #include #include #include @@ -69,37 +49,36 @@ #pragma warning (disable: 4996) #endif - -/* Strip off all leading pathname components */ -void -path2basename(const char *path, char *base) +const char * +path2basename(const char *path) { - int32 i, l; + const char *result; - l = strlen(path); #if defined(_WIN32) || defined(__CYGWIN__) - for (i = l - 1; (i >= 0) && !(path[i] == '/' || path[i] == '\\'); --i); + result = strrchr(path, '\\'); #else - for (i = l - 1; (i >= 0) && !(path[i] == '/'); --i); + result = strrchr(path, '/'); #endif - strcpy(base, path + i + 1); + + return (result == NULL ? path : result + 1); } /* Return all leading pathname components */ void path2dirname(const char *path, char *dir) { - int32 i, l; + size_t i, l; l = strlen(path); #if defined(_WIN32) || defined(__CYGWIN__) - for (i = l - 1; (i >= 0) && !(path[i] == '/' || path[i] == '\\'); --i); + for (i = l - 1; (i > 0) && !(path[i] == '/' || path[i] == '\\'); --i); #else - for (i = l - 1; (i >= 0) && !(path[i] == '/'); --i); + for (i = l - 1; (i > 0) && !(path[i] == '/'); --i); #endif - if (i <= 0) - dir[0] = '\0'; - else { + if (i == 0) { + dir[0] = '.'; + dir[1] = '\0'; + } else { memcpy(dir, path, i); dir[i] = '\0'; } @@ -110,13 +89,13 @@ void strip_fileext(const char *path, char *root) { - int32 i, l; + size_t i, l; l = strlen(path); - for (i = l - 1; (i >= 0) && (path[i] != '.'); --i); - if (i < 0) + for (i = l - 1; (i > 0) && (path[i] != '.'); --i); + if (i == 0) { strcpy(root, path); /* Didn't find a . */ - else { + } else { strncpy(root, path, i); } } diff -Nru sphinxbase-0.8/src/libsphinxbase/util/hash_table.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/hash_table.c --- sphinxbase-0.8/src/libsphinxbase/util/hash_table.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/hash_table.c 2015-03-24 17:26:36.000000000 +0000 @@ -220,9 +220,9 @@ static char * -makekey(uint8 * data, int32 len, char *key) +makekey(uint8 * data, size_t len, char *key) { - int32 i, j; + size_t i, j; if (!key) key = (char *) ckd_calloc(len * 2 + 1, sizeof(char)); @@ -310,7 +310,7 @@ { hash_entry_t *entry; uint32 hash; - int32 len; + size_t len; hash = key2hash(h, key); len = strlen(key); @@ -584,38 +584,38 @@ int i, j; j = 0; - E_INFOCONT("Hash with chaining representation of the hash table\n"); + printf("Hash with chaining representation of the hash table\n"); for (i = 0; i < h->size; i++) { e = &(h->table[i]); if (e->key != NULL) { - E_INFOCONT("|key:"); + printf("|key:"); if (showdisplay) - E_INFOCONT("%s", e->key); + printf("%s", e->key); else - E_INFOCONT("%p", e->key); + printf("%p", e->key); - E_INFOCONT("|len:%d|val=%ld|->", e->len, (long)e->val); + printf("|len:%zd|val=%ld|->", e->len, (long)e->val); if (e->next == NULL) { - E_INFOCONT("NULL\n"); + printf("NULL\n"); } j++; for (e = e->next; e; e = e->next) { - E_INFOCONT("|key:"); + printf("|key:"); if (showdisplay) - E_INFOCONT("%s", e->key); + printf("%s", e->key); - E_INFOCONT("|len:%d|val=%ld|->", e->len, (long)e->val); + printf("|len:%zd|val=%ld|->", e->len, (long)e->val); if (e->next == NULL) { - E_INFOCONT("NULL\n"); + printf("NULL\n"); } j++; } } } - E_INFOCONT("The total number of keys =%d\n", j); + printf("The total number of keys =%d\n", j); } diff -Nru sphinxbase-0.8/src/libsphinxbase/util/info.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/info.c --- sphinxbase-0.8/src/libsphinxbase/util/info.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/info.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2004 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* HISTORY - * $Log$ - * Revision 1.3 2005/06/22 03:06:46 arthchan2003 - * Add keyword. - * - * Revision 1.2 2005/06/15 04:21:46 archan - * 1, Fixed doxygen-documentation, 2, Add keyword such that changes will be logged into a file. - * - */ - -#if !(defined(_WIN32) || defined(_WIN32_WCE)) -#include -#endif - -#include "sphinxbase/info.h" -#include "sphinxbase/err.h" - -void -print_appl_info(char *appl_name) -{ -#if !(defined(_WIN32) || defined(_WIN32_WCE)) - { - /* FIXME: Argh. */ - char host[4096], path[16384]; - - gethostname(host, 1024); - host[1023] = '\0'; - - E_INFO("Host: '%s'\n", host); - if (getcwd(path, sizeof(path)) == NULL) - E_ERROR_SYSTEM("Failed to get current directory"); - else - E_INFO("Directory: '%s'\n", path); - } -#endif - - E_INFO("%s Compiled on: %s, AT: %s\n\n", appl_name, __DATE__, - __TIME__); -} diff -Nru sphinxbase-0.8/src/libsphinxbase/util/logmath.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/logmath.c --- sphinxbase-0.8/src/libsphinxbase/util/logmath.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/logmath.c 2015-07-05 00:26:49.000000000 +0000 @@ -476,8 +476,28 @@ return (int)(log_p * lmath->inv_log10_of_base) >> lmath->t.shift; } +float +logmath_log10_to_log_float(logmath_t *lmath, float64 log_p) +{ + int i; + float res = (float)(log_p * lmath->inv_log10_of_base); + for (i = 0; i < lmath->t.shift; i++) + res /= 2.0f; + return res; +} + float64 logmath_log_to_log10(logmath_t *lmath, int logb_p) { return (float64)(logb_p << lmath->t.shift) * lmath->log10_of_base; } + +float64 +logmath_log_float_to_log10(logmath_t *lmath, float log_p) +{ + int i; + for (i = 0; i < lmath->t.shift; i++) { + log_p *= 2; + } + return log_p * lmath->log10_of_base; +} diff -Nru sphinxbase-0.8/src/libsphinxbase/util/Makefile.am sphinxbase-0.8+5prealpha/src/libsphinxbase/util/Makefile.am --- sphinxbase-0.8/src/libsphinxbase/util/Makefile.am 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/Makefile.am 2015-07-05 00:26:49.000000000 +0000 @@ -8,43 +8,39 @@ f2c_lite.c endif -libsphinxutil_la_SOURCES = \ - bitvec.c \ +libsphinxutil_la_SOURCES = \ + bitarr.c \ + bitvec.c \ bio.c \ - case.c \ - ckd_alloc.c \ + case.c \ + ckd_alloc.c \ dtoa.c \ listelem_alloc.c \ - cmd_ln.c \ - err.c \ - filename.c \ + cmd_ln.c \ + err.c \ + filename.c \ genrand.c \ - glist.c \ - hash_table.c \ - heap.c \ + glist.c \ + hash_table.c \ + heap.c \ huff_code.c \ - info.c \ logmath.c \ mmio.c \ - pio.c \ + pio.c \ matrix.c \ - profile.c \ + priority_queue.c \ + profile.c \ sbthread.c \ - strfuncs.c \ - unlimit.c \ - utf8.c \ + strfuncs.c \ $(LAPACK_LITE_SRCS) EXTRA_DIST = \ slamch.c \ slapack_lite.c \ blas_lite.c \ - f2c_lite.c \ - err_wince.c \ - string_wce.c \ - errno.c + f2c_lite.c -INCLUDES = -I$(top_srcdir)/include/sphinxbase \ +AM_CFLAGS =-I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include diff -Nru sphinxbase-0.8/src/libsphinxbase/util/Makefile.in sphinxbase-0.8+5prealpha/src/libsphinxbase/util/Makefile.in --- sphinxbase-0.8/src/libsphinxbase/util/Makefile.in 2012-12-12 17:28:53.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/Makefile.in 2015-07-05 00:27:54.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,14 +79,14 @@ build_triplet = @build@ host_triplet = @host@ subdir = src/libsphinxbase/util -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -52,40 +96,88 @@ CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsphinxutil_la_LIBADD = -am__libsphinxutil_la_SOURCES_DIST = bitvec.c bio.c case.c ckd_alloc.c \ - dtoa.c listelem_alloc.c cmd_ln.c err.c filename.c genrand.c \ - glist.c hash_table.c heap.c huff_code.c info.c logmath.c \ - mmio.c pio.c matrix.c profile.c sbthread.c strfuncs.c \ - unlimit.c utf8.c slamch.c slapack_lite.c blas_lite.c \ - f2c_lite.c +am__libsphinxutil_la_SOURCES_DIST = bitarr.c bitvec.c bio.c case.c \ + ckd_alloc.c dtoa.c listelem_alloc.c cmd_ln.c err.c filename.c \ + genrand.c glist.c hash_table.c heap.c huff_code.c logmath.c \ + mmio.c pio.c matrix.c priority_queue.c profile.c sbthread.c \ + strfuncs.c slamch.c slapack_lite.c blas_lite.c f2c_lite.c @LAPACK_LITE_TRUE@am__objects_1 = slamch.lo slapack_lite.lo \ @LAPACK_LITE_TRUE@ blas_lite.lo f2c_lite.lo -am_libsphinxutil_la_OBJECTS = bitvec.lo bio.lo case.lo ckd_alloc.lo \ - dtoa.lo listelem_alloc.lo cmd_ln.lo err.lo filename.lo \ - genrand.lo glist.lo hash_table.lo heap.lo huff_code.lo info.lo \ - logmath.lo mmio.lo pio.lo matrix.lo profile.lo sbthread.lo \ - strfuncs.lo unlimit.lo utf8.lo $(am__objects_1) +am_libsphinxutil_la_OBJECTS = bitarr.lo bitvec.lo bio.lo case.lo \ + ckd_alloc.lo dtoa.lo listelem_alloc.lo cmd_ln.lo err.lo \ + filename.lo genrand.lo glist.lo hash_table.lo heap.lo \ + huff_code.lo logmath.lo mmio.lo pio.lo matrix.lo \ + priority_queue.lo profile.lo sbthread.lo strfuncs.lo \ + $(am__objects_1) libsphinxutil_la_OBJECTS = $(am_libsphinxutil_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libsphinxutil_la_SOURCES) DIST_SOURCES = $(am__libsphinxutil_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -99,6 +191,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -108,9 +201,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -118,15 +209,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -142,27 +232,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -195,14 +291,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -219,42 +318,38 @@ @LAPACK_LITE_TRUE@ f2c_lite.c libsphinxutil_la_SOURCES = \ - bitvec.c \ + bitarr.c \ + bitvec.c \ bio.c \ - case.c \ - ckd_alloc.c \ + case.c \ + ckd_alloc.c \ dtoa.c \ listelem_alloc.c \ - cmd_ln.c \ - err.c \ - filename.c \ + cmd_ln.c \ + err.c \ + filename.c \ genrand.c \ - glist.c \ - hash_table.c \ - heap.c \ + glist.c \ + hash_table.c \ + heap.c \ huff_code.c \ - info.c \ logmath.c \ mmio.c \ - pio.c \ + pio.c \ matrix.c \ - profile.c \ + priority_queue.c \ + profile.c \ sbthread.c \ - strfuncs.c \ - unlimit.c \ - utf8.c \ + strfuncs.c \ $(LAPACK_LITE_SRCS) EXTRA_DIST = \ slamch.c \ slapack_lite.c \ blas_lite.c \ - f2c_lite.c \ - err_wince.c \ - string_wce.c \ - errno.c + f2c_lite.c -INCLUDES = -I$(top_srcdir)/include/sphinxbase \ +AM_CFLAGS = -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include @@ -271,9 +366,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/libsphinxbase/util/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libsphinxbase/util/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/libsphinxbase/util/Makefile + $(AUTOMAKE) --foreign src/libsphinxbase/util/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -295,14 +390,17 @@ clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_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 -libsphinxutil.la: $(libsphinxutil_la_OBJECTS) $(libsphinxutil_la_DEPENDENCIES) - $(LINK) $(libsphinxutil_la_OBJECTS) $(libsphinxutil_la_LIBADD) $(LIBS) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libsphinxutil.la: $(libsphinxutil_la_OBJECTS) $(libsphinxutil_la_DEPENDENCIES) $(EXTRA_libsphinxutil_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libsphinxutil_la_OBJECTS) $(libsphinxutil_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -311,6 +409,7 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bio.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitarr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitvec.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blas_lite.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/case.Plo@am__quote@ @@ -325,40 +424,38 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash_table.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/heap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/huff_code.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/info.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/listelem_alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logmath.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/priority_queue.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sbthread.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slamch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slapack_lite.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strfuncs.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlimit.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8.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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -366,26 +463,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -397,15 +483,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -414,6 +496,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -462,10 +559,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -550,18 +652,19 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/libsphinxbase/util/matrix.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/matrix.c --- sphinxbase-0.8/src/libsphinxbase/util/matrix.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/matrix.c 2015-03-24 17:26:36.000000000 +0000 @@ -311,26 +311,3 @@ for (j = 0; j < n; ++j) a[i][j] += b[i][j]; } - - -/* - * Log record. Maintained by RCS. - * - * $Log$ - * Revision 1.4 2004/07/21 18:05:40 egouvea - * Changed the license terms to make it the same as sphinx2 and sphinx3. - * - * Revision 1.3 2001/04/05 20:02:30 awb - * *** empty log message *** - * - * Revision 1.2 2000/09/29 22:35:13 awb - * *** empty log message *** - * - * Revision 1.1 2000/09/24 21:38:31 awb - * *** empty log message *** - * - * Revision 1.1 97/07/16 11:36:22 eht - * Initial revision - * - * - */ diff -Nru sphinxbase-0.8/src/libsphinxbase/util/mmio.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/mmio.c --- sphinxbase-0.8/src/libsphinxbase/util/mmio.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/mmio.c 2015-03-24 17:26:36.000000000 +0000 @@ -47,6 +47,7 @@ #include #include + #ifdef GNUWINCE # include # include @@ -72,7 +73,6 @@ #include "sphinxbase/mmio.h" #include "sphinxbase/ckd_alloc.h" -/** Silvio Moioli: slightly updated */ #if defined(_WIN32_WCE) || defined(GNUWINCE) struct mmio_file_s { int dummy; @@ -126,7 +126,7 @@ return (void *)mf; } -#elif defined(WIN32) /* !WINCE */ +#elif defined(_WIN32) && !defined(_WIN32_WP) /* !WINCE */ struct mmio_file_s { int dummy; }; @@ -171,7 +171,8 @@ } #else /* !WIN32, !WINCE */ -#if defined(__ADSPBLACKFIN__) /* This is true for both uClinux and VisualDSP++, +#if defined(__ADSPBLACKFIN__) || defined(_WIN32_WP) + /* This is true for both uClinux and VisualDSP++, but actually we need a better way to detect it. */ struct mmio_file_s { int dummy; @@ -180,20 +181,20 @@ mmio_file_t * mmio_file_read(const char *filename) { - E_FATAL("mmio is not implemented on this platform!"); + E_ERROR("mmio is not implemented on this platform!"); return NULL; } void mmio_file_unmap(mmio_file_t *mf) { - E_FATAL("mmio is not implemented on this platform!"); + E_ERROR("mmio is not implemented on this platform!"); } void * mmio_file_ptr(mmio_file_t *mf) { - E_FATAL("mmio is not implemented on this platform!"); + E_ERROR("mmio is not implemented on this platform!"); return NULL; } #else /* !__ADSPBLACKFIN__ */ @@ -230,7 +231,7 @@ mf = ckd_calloc(1, sizeof(*mf)); mf->ptr = ptr; /* Align map size to next page. */ - pagesize = getpagesize(); + pagesize = sysconf(_SC_PAGESIZE); mf->mapsize = (buf.st_size + pagesize - 1) / pagesize * pagesize; return mf; diff -Nru sphinxbase-0.8/src/libsphinxbase/util/pio.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/pio.c --- sphinxbase-0.8/src/libsphinxbase/util/pio.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/pio.c 2015-03-24 17:26:36.000000000 +0000 @@ -35,21 +35,30 @@ * */ +#ifdef HAVE_CONFIG_H #include +#endif #include #include #include +#include + #ifdef HAVE_UNISTD_H #include #endif + +#ifdef HAVE_SYS_TYPES_H +#include +#endif + #ifdef HAVE_SYS_STAT_H #include #endif -#ifdef HAVE_SYS_TYPES_H -#include + +#if defined(_WIN32) && !defined(CYGWIN) +#include #endif -#include #include "sphinxbase/pio.h" #include "sphinxbase/filename.h" @@ -71,7 +80,7 @@ static void guess_comptype(char const *file, int32 *ispipe, int32 *isgz) { - int k; + size_t k; k = strlen(file); *ispipe = 0; @@ -204,7 +213,7 @@ return fh; else { char *tmpfile; - int k; + size_t k; /* File doesn't exist; try other compressed/uncompressed form, as appropriate */ guess_comptype(file, ispipe, &isgz); @@ -256,8 +265,8 @@ { lineiter_t *li; - li = ckd_calloc(1, sizeof(*li)); - li->buf = ckd_malloc(128); + li = (lineiter_t *)ckd_calloc(1, sizeof(*li)); + li->buf = (char *)ckd_malloc(128); li->buf[0] = '\0'; li->bsiz = 128; li->len = 0; @@ -310,14 +319,14 @@ } /* If we managed to read the whole thing, then we are done * (this will be by far the most common result). */ - li->len = strlen(li->buf); + li->len = (int32)strlen(li->buf); if (li->len < li->bsiz - 1 || li->buf[li->len - 1] == '\n') return li; /* Otherwise we have to reallocate and keep going. */ while (1) { li->bsiz *= 2; - li->buf = ckd_realloc(li->buf, li->bsiz); + li->buf = (char *)ckd_realloc(li->buf, li->bsiz); /* If we get an EOF, we are obviously done. */ if (fgets(li->buf + li->len, li->bsiz - li->len, li->fh) == NULL) { li->len += strlen(li->buf + li->len); @@ -374,12 +383,12 @@ size_t len = strlen(buf); /* Append this data to the buffer. */ if (output == NULL) { - output = ckd_malloc(len + 1); + output = (char *)ckd_malloc(len + 1); outptr = output; } else { size_t cur = outptr - output; - output = ckd_realloc(output, cur + len + 1); + output = (char *)ckd_realloc(output, cur + len + 1); outptr = output + cur; } memcpy(outptr, buf, len + 1); @@ -398,14 +407,14 @@ fread_retry(void *pointer, int32 size, int32 num_items, FILE * stream) { char *data; - uint32 n_items_read; - uint32 n_items_rem; + size_t n_items_read; + size_t n_items_rem; uint32 n_retry_rem; int32 loc; n_retry_rem = FREAD_RETRY_COUNT; - data = pointer; + data = (char *)pointer; loc = 0; n_items_rem = num_items; @@ -427,7 +436,7 @@ --n_retry_rem; loc += n_items_read * size; -#ifdef HAVE_UNISTD_H +#if !defined(_WIN32) && defined(HAVE_UNISTD_H) sleep(1); #endif } @@ -437,7 +446,6 @@ } -/* Silvio Moioli: updated to use Unicode */ #ifdef _WIN32_WCE /* No stat() on WinCE */ int32 stat_retry(const char *file, struct stat * statbuf) @@ -455,7 +463,7 @@ return -1; } ckd_free(wfile); - memset(statbuf, 0, sizeof(statbuf)); + memset(statbuf, 0, sizeof(*statbuf)); statbuf->st_mtime = file_data.ftLastWriteTime.dwLowDateTime; statbuf->st_size = file_data.nFileSizeLow; FindClose(h); @@ -481,21 +489,16 @@ { int32 i; - - for (i = 0; i < STAT_RETRY_COUNT; i++) { - #ifndef HAVE_SYS_STAT_H - FILE *fp; + FILE *fp; - if ((fp=(FILE *)fopen(file, "r"))!= 0) - { - fseek( fp, 0, SEEK_END); - statbuf->st_size = ftell( fp ); - fclose(fp); - return 0; - } - + if ((fp = (FILE *)fopen(file, "r")) != 0) { + fseek(fp, 0, SEEK_END); + statbuf->st_size = ftell(fp); + fclose(fp); + return 0; + } #else /* HAVE_SYS_STAT_H */ if (stat(file, statbuf) == 0) return 0; @@ -539,7 +542,7 @@ { bit_encode_t *be; - be = ckd_calloc(1, sizeof(*be)); + be = (bit_encode_t *)ckd_calloc(1, sizeof(*be)); be->refcount = 1; be->fh = outfh; return be; @@ -613,7 +616,6 @@ return 0; } -#if defined(HAVE_SYS_STAT_H) && !defined(__MINGW32__) /* Unix, Cygwin, doesn't work on MINGW */ int build_directory(const char *path) { @@ -622,14 +624,20 @@ /* Utterly failed... */ if (strlen(path) == 0) return -1; - /* Utterly succeeded... */ + +#if defined(_WIN32) && !defined(CYGWIN) + else if ((rv = _mkdir(path)) == 0) + return 0; +#elif defined(HAVE_SYS_STAT_H) /* Unix, Cygwin, doesn't work on MINGW */ else if ((rv = mkdir(path, 0777)) == 0) return 0; +#endif + /* Or, it already exists... */ else if (errno == EEXIST) return 0; else if (errno != ENOENT) { - E_ERROR_SYSTEM("Failed to create %s"); + E_ERROR_SYSTEM("Failed to create %s", path); return -1; } else { @@ -637,22 +645,11 @@ path2dirname(path, dirname); build_directory(dirname); ckd_free(dirname); + +#if defined(_WIN32) && !defined(CYGWIN) + return _mkdir(path); +#elif defined(HAVE_SYS_STAT_H) /* Unix, Cygwin, doesn't work on MINGW */ return mkdir(path, 0777); +#endif } } -#elif defined(_WIN32) -/* FIXME: Implement this. */ -int -build_directory(const char *path) -{ - E_ERROR("build_directory() unimplemented on your platform!\n"); - return -1; -} -#else -int -build_directory(const char *path) -{ - E_ERROR("build_directory() unimplemented on your platform!\n"); - return -1; -} -#endif diff -Nru sphinxbase-0.8/src/libsphinxbase/util/priority_queue.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/priority_queue.c --- sphinxbase-0.8/src/libsphinxbase/util/priority_queue.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/priority_queue.c 2015-07-05 00:26:49.000000000 +0000 @@ -0,0 +1,144 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2015 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include + +struct priority_queue_s { + void **pointers; + size_t alloc_size; + size_t size; + void *max_element; + int (*compare)(void *a, void *b); +}; + +priority_queue_t* priority_queue_create(size_t len, int (*compare)(void *a, void *b)) +{ + priority_queue_t* queue; + + queue = (priority_queue_t *)ckd_calloc(1, sizeof(*queue)); + queue->alloc_size = len; + queue->pointers = (void **)ckd_calloc(len, sizeof(*queue->pointers)); + queue->size = 0; + queue->max_element = NULL; + queue->compare = compare; + + return queue; +} + +void* priority_queue_poll(priority_queue_t *queue) +{ + + size_t i; + void *res; + + if (queue->size == 0) { + E_WARN("Trying to poll from empty queue\n"); + return NULL; + } + if (queue->max_element == NULL) { + E_ERROR("Trying to poll from queue and max element is undefined\n"); + return NULL; + } + res = queue->max_element; + for (i = 0; i < queue->alloc_size; i++) { + if (queue->pointers[i] == queue->max_element) { + queue->pointers[i] = NULL; + break; + } + } + queue->max_element = NULL; + for (i = 0; i < queue->alloc_size; i++) { + if (queue->pointers[i] == 0) + continue; + if (queue->max_element == NULL) { + queue->max_element = queue->pointers[i]; + } else { + if (queue->compare(queue->pointers[i], queue->max_element) > 0) + queue->max_element = queue->pointers[i]; + } + } + queue->size--; + return res; +} + +void priority_queue_add(priority_queue_t *queue, void *element) +{ + size_t i; + if (queue->size == queue->alloc_size) { + E_ERROR("Trying to add element into full queue\n"); + return; + } + for (i = 0; i < queue->alloc_size; i++) { + if (queue->pointers[i] == NULL) { + queue->pointers[i] = element; + break; + } + } + + if (queue->max_element == NULL || queue->compare(element, queue->max_element) > 0) { + queue->max_element = element; + } + queue->size++; +} + +size_t priority_queue_size(priority_queue_t *queue) +{ + return queue->size; +} + +void priority_queue_free(priority_queue_t *queue, void (*free_ptr)(void *a)) +{ + size_t i; + + for (i = 0; i < queue->alloc_size; i++) { + if (queue->pointers[i] != NULL) { + if (free_ptr == NULL) { + ckd_free(queue->pointers[i]); + } else { + free_ptr(queue->pointers[i]); + } + } + } + ckd_free(queue->pointers); + ckd_free(queue); +} diff -Nru sphinxbase-0.8/src/libsphinxbase/util/profile.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/profile.c --- sphinxbase-0.8/src/libsphinxbase/util/profile.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/profile.c 2015-03-24 17:26:36.000000000 +0000 @@ -60,7 +60,9 @@ * Created. */ +#ifdef HAVE_CONFIG_H #include +#endif #include #include @@ -85,8 +87,7 @@ #include "sphinxbase/err.h" #include "sphinxbase/ckd_alloc.h" -/* Silvio Moioli: updated to use Unicode */ -#ifdef _WIN32_WCE +#if defined(_WIN32_WCE) || defined(_WIN32_WP) DWORD unlink(const char *filename) { WCHAR *wfilename; @@ -190,6 +191,9 @@ /* Unix + HP */ gettimeofday(&e_start, 0); tm->start_elapsed = make_sec(&e_start); +#elif defined(_WIN32_WP) + tm->start_cpu = GetTickCount64() / 1000; + tm->start_elapsed = GetTickCount64() / 1000; #elif defined(_WIN32_WCE) /* No GetProcessTimes() on WinCE. (Note CPU time will be bogus) */ tm->start_cpu = GetTickCount() / 1000; @@ -230,10 +234,13 @@ /* Unix + HP */ gettimeofday(&e_stop, 0); dt_elapsed = (make_sec(&e_stop) - tm->start_elapsed); +#elif defined(_WIN32_WP) + dt_cpu = GetTickCount64() / 1000 - tm->start_cpu; + dt_elapsed = GetTickCount64() / 1000 - tm->start_elapsed; #elif defined(_WIN32_WCE) - /* No GetProcessTimes() on WinCE. (Note CPU time will be bogus) */ - dt_cpu = GetTickCount() / 1000 - tm->start_cpu; - dt_elapsed = GetTickCount() / 1000 - tm->start_elapsed; + /* No GetProcessTimes() on WinCE. (Note CPU time will be bogus) */ + dt_cpu = GetTickCount() / 1000 - tm->start_cpu; + dt_elapsed = GetTickCount() / 1000 - tm->start_elapsed; #else HANDLE pid; FILETIME t_create, t_exit, kst, ust; diff -Nru sphinxbase-0.8/src/libsphinxbase/util/sbthread.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/sbthread.c --- sphinxbase-0.8/src/libsphinxbase/util/sbthread.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/sbthread.c 2015-03-24 17:26:36.000000000 +0000 @@ -149,7 +149,7 @@ return rv; } -/* Silvio Moioli: updated to use Unicode */ +/* Updated to use Unicode */ sbevent_t * sbevent_init(void) { diff -Nru sphinxbase-0.8/src/libsphinxbase/util/strfuncs.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/strfuncs.c --- sphinxbase-0.8/src/libsphinxbase/util/strfuncs.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/strfuncs.c 2015-03-24 17:26:36.000000000 +0000 @@ -42,7 +42,6 @@ #include #include #include -#include #include #include @@ -58,6 +57,15 @@ return sb_strtod(str, NULL); } +/* Locale-independent isspace to avoid different incompatibilities */ +static int +isspace_c(char ch) +{ + if (ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r') + return 1; + return 0; +} + char * string_join(const char *base, ...) { @@ -120,7 +128,7 @@ i = 0; /* For scanning through the input string */ while (1) { /* Skip whitespace before next word */ - while (line[i] && isspace((unsigned char)line[i])) + while (line[i] && isspace_c(line[i])) ++i; if (!line[i]) break; @@ -141,7 +149,7 @@ if (ptr != NULL) ptr[n] = line + i; ++n; - while (line[i] && !isspace((unsigned char)line[i])) + while (line[i] && !isspace_c(line[i])) ++i; if (!line[i]) break; diff -Nru sphinxbase-0.8/src/libsphinxbase/util/string_wce.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/string_wce.c --- sphinxbase-0.8/src/libsphinxbase/util/string_wce.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/string_wce.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 2007 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== -/********************************************************************* - * - * File: string_wce.c - * - * Description: string functions missing from Windows CE standard library - * - * Author: Silvio Moioli - * - *********************************************************************/ - -#include -#include - -#if defined(_WIN32_WCE) - char *strdup(const char * str) - { - char *p; - p = malloc( strlen(str)+1 ); - strcpy( p, str ); - return p; - } -#endif diff -Nru sphinxbase-0.8/src/libsphinxbase/util/unlimit.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/unlimit.c --- sphinxbase-0.8/src/libsphinxbase/util/unlimit.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/unlimit.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2004 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * unlimit.c -- "unlimit" the memory usage of program. - * - * ********************************************** - * CMU ARPA Speech Project - * - * Copyright (c) 1999 Carnegie Mellon University. - * ALL RIGHTS RESERVED. - * ********************************************** - * - * HISTORY - * $Log$ - * Revision 1.5 2005/06/22 03:12:31 arthchan2003 - * 1, Fixed doxygen documentation, 2, Added keyword. - * - * Revision 1.3 2005/03/30 01:22:48 archan - * Fixed mistakes in last updates. Add - * - * - * 03-Oct-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University. - * Copied from Sphinx-II sources. - */ - - -#if ((! _WIN32) && (! _HPUX_SOURCE)) -#include -#include -#endif - -#include "sphinxbase/unlimit.h" - - -/* - * The limit is set to the maximum of your system. - */ -void -unlimit(void) -{ -#if 0 -#if ((! WIN32) && (! _HPUX_SOURCE)) - struct rlimit rl; - - getrlimit(RLIMIT_DATA, &rl); - rl.rlim_cur = rl.rlim_max; - setrlimit(RLIMIT_DATA, &rl); -#endif -#endif -} diff -Nru sphinxbase-0.8/src/libsphinxbase/util/utf8.c sphinxbase-0.8+5prealpha/src/libsphinxbase/util/utf8.c --- sphinxbase-0.8/src/libsphinxbase/util/utf8.c 2012-12-05 14:06:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/libsphinxbase/util/utf8.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ -/* Copyright (c) 2008-2009 Bjoern Hoehrmann */ -/* See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details. */ - -/* Slightly modified to use Sphinx types and remove explicit inline. */ - -#include "sphinxbase/prim_type.h" - -#define UTF8_ACCEPT 0 -#define UTF8_REJECT 1 - -static const uint8 utf8d[] = { - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 00..1f - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 20..3f - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 40..5f - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 60..7f - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, // 80..9f - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, // a0..bf - 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, // c0..df - 0xa,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x4,0x3,0x3, // e0..ef - 0xb,0x6,0x6,0x6,0x5,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8, // f0..ff - 0x0,0x1,0x2,0x3,0x5,0x8,0x7,0x1,0x1,0x1,0x4,0x6,0x1,0x1,0x1,0x1, // s0..s0 - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1, // s1..s2 - 1,2,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1, // s3..s4 - 1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1, // s5..s6 - 1,3,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // s7..s8 -}; - -uint32 -utf8_decode(uint32 *state, uint32 *codep, uint32 byte) { - uint32 type = utf8d[byte]; - - *codep = (*state != UTF8_ACCEPT) ? - (byte & 0x3fu) | (*codep << 6) : - (0xff >> type) & (byte); - - *state = utf8d[256 + *state*16 + type]; - return *state; -} - -/* CMU code starts here. */ -/* ==================================================================== - * Copyright (c) 2009 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ diff -Nru sphinxbase-0.8/src/Makefile.in sphinxbase-0.8+5prealpha/src/Makefile.in --- sphinxbase-0.8/src/Makefile.in 2012-12-12 17:28:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -34,14 +78,13 @@ build_triplet = @build@ host_triplet = @host@ subdir = src -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -49,20 +92,58 @@ $(top_builddir)/include/sphinx_config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive 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_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -94,6 +175,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -107,6 +189,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -116,9 +199,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -126,15 +207,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -150,27 +230,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -203,14 +289,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -235,9 +324,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/Makefile + $(AUTOMAKE) --foreign src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -264,22 +353,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -294,57 +386,12 @@ $(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: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -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) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -360,12 +407,7 @@ 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -377,15 +419,11 @@ $$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; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -394,6 +432,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -430,13 +483,10 @@ 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 \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -471,10 +521,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -552,22 +607,20 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/sphinx_adtools/cont_adseg.c sphinxbase-0.8+5prealpha/src/sphinx_adtools/cont_adseg.c --- sphinxbase-0.8/src/sphinx_adtools/cont_adseg.c 2012-12-05 14:06:09.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_adtools/cont_adseg.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,150 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2001 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * cont_adseg.c -- Continuously listen and segment input speech into utterances. - * - * HISTORY - * - * 27-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Created. - */ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -/* - * Segment raw A/D input data into utterances whenever silence region of given - * duration is encountered. - * Utterances are written to files named 0001.raw, 0002.raw, 0003.raw, etc. - */ -int -main(int32 argc, char **argv) -{ - ad_rec_t *ad; - cont_ad_t *cont; - int32 k, uttno, ts, uttlen, sps, endsilsamples; - float endsil; - int16 buf[4096]; - FILE *fp; - char file[1024]; - - if ((argc != 3) || - (sscanf(argv[1], "%d", &sps) != 1) || - (sscanf(argv[2], "%f", &endsil) != 1) || (endsil <= 0.0)) { - E_FATAL("Usage: %s \n", argv[0]); - } - - /* Convert desired min. inter-utterance silence duration to #samples */ - endsilsamples = (int32) (endsil * sps); - - /* Open raw A/D device */ - if ((ad = ad_open_sps(sps)) == NULL) - E_FATAL("ad_open_sps(%d) failed\n", sps); - - /* Associate new continuous listening module with opened raw A/D device */ - if ((cont = cont_ad_init(ad, ad_read)) == NULL) - E_FATAL("cont_ad_init failed\n"); - - /* Calibrate continuous listening for background noise/silence level */ - printf("Calibrating ..."); - fflush(stdout); - ad_start_rec(ad); - if (cont_ad_calib(cont) < 0) - printf(" failed\n"); - else - printf(" done\n"); - - /* Forever listen for utterances */ - printf("You may speak now\n"); - fflush(stdout); - uttno = 0; - for (;;) { - /* Wait for beginning of next utterance; for non-silence data */ - while ((k = cont_ad_read(cont, buf, 4096)) == 0); - if (k < 0) - E_FATAL("cont_ad_read failed\n"); - - /* Non-silence data received; open and write to new logging file */ - uttno++; - sprintf(file, "%04d.raw", uttno); - if ((fp = fopen(file, "wb")) == NULL) - E_FATAL_SYSTEM("Failed to open '%s' for reading", file); - fwrite(buf, sizeof(int16), k, fp); - uttlen = k; - printf("Utterance %04d, logging to %s\n", uttno, file); - - /* Note current timestamp */ - ts = cont->read_ts; - - /* Read utterance data until a gap of at least 1 sec observed */ - for (;;) { - if ((k = cont_ad_read(cont, buf, 4096)) < 0) - E_FATAL("cont_ad_read failed\n"); - if (k == 0) { - /* - * No speech data available; check current timestamp. End of - * utterance if no non-silence data been read for at least 1 sec. - */ - if ((cont->read_ts - ts) > endsilsamples) - break; - } - else { - /* Note timestamp at the end of most recently read speech data */ - ts = cont->read_ts; - uttlen += k; - fwrite(buf, sizeof(int16), k, fp); - } - } - fclose(fp); - - printf("\tUtterance %04d = %d samples (%.1fsec)\n\n", - uttno, uttlen, (double) uttlen / (double) sps); - } - - ad_stop_rec(ad); - cont_ad_close(cont); - ad_close(ad); - return 0; -} diff -Nru sphinxbase-0.8/src/sphinx_adtools/cont_fileseg.c sphinxbase-0.8+5prealpha/src/sphinx_adtools/cont_fileseg.c --- sphinxbase-0.8/src/sphinx_adtools/cont_fileseg.c 2012-12-05 14:06:09.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_adtools/cont_fileseg.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,541 +0,0 @@ -/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ -/* ==================================================================== - * Copyright (c) 1999-2001 Carnegie Mellon University. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the - * United States of America, and the CMU Sphinx Speech Consortium. - * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY - * NOR ITS EMPLOYEES 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. - * - * ==================================================================== - * - */ -/* - * cont_fileseg.c -- Read input file, filter silence regions, and segment into utterances. - * - * HISTORY - * - * $Log: cont_fileseg.c,v $ - * Revision 1.1.1.1 2006/05/23 18:45:02 dhuggins - * re-importation - * - * Revision 1.13 2005/06/30 00:28:46 rkm - * Kept within-utterance silences in rawmode - * - * - * 28-Jun-2005 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Modified to use new state variables in cont_ad_t. - * - * Revision 1.12 2005/05/31 15:54:38 rkm - * *** empty log message *** - * - * Revision 1.11 2005/05/24 20:56:58 rkm - * Added min/max-noise parameters to cont_fileseg - * - * Revision 1.10 2005/05/13 23:28:43 egouvea - * Changed null device to system dependent one: NUL for windows, /dev/null for everything else - * - * $Log: cont_fileseg.c,v $ - * Revision 1.1.1.1 2006/05/23 18:45:02 dhuggins - * re-importation - * - * Revision 1.13 2005/06/30 00:28:46 rkm - * Kept within-utterance silences in rawmode - * - * Revision 1.12 2005/05/31 15:54:38 rkm - * *** empty log message *** - * - * Revision 1.11 2005/05/24 20:56:58 rkm - * Added min/max-noise parameters to cont_fileseg - * - * Revision 1.9 2005/02/13 01:29:48 rkm - * Fixed cont_ad_read to never cross sil/speech boundary, and rawmode - * - * Revision 1.8 2005/02/01 22:21:13 rkm - * Added raw data logging, and raw data pass-through mode to cont_ad - * - * Revision 1.7 2004/07/16 00:57:11 egouvea - * Added Ravi's implementation of FSG support. - * - * Revision 1.3 2004/06/25 14:58:05 rkm - * *** empty log message *** - * - * Revision 1.2 2004/06/23 20:32:08 rkm - * Exposed several cont_ad config parameters - * - * - * 27-Jun-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University - * Created. - */ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -static FILE *infp; /* File being segmented */ -static int32 swap; - -/* Max size read by file_ad_read function on each invocation, for debugging */ -static int32 max_ad_read_size; - -#if defined(WIN32) && !defined(GNUWINCE) -#define NULL_DEVICE "NUL" -#else -#define NULL_DEVICE "/dev/null" -#endif - - -/* - * Need to provide cont_ad_init with a read function to read the input file. - * This is it. The ad_rec_t *r argument is ignored since there is no A/D - * device involved. - */ -static int32 -file_ad_read(ad_rec_t * r, int16 * buf, int32 max) -{ - int32 i, k; - - if (max > max_ad_read_size) - max = max_ad_read_size; - - k = fread(buf, sizeof(int16), max, infp); - if (swap) { - for (i = 0; i < k; i++) { - buf[i] = ((buf[i] >> 8) & 0x00ff) | ((buf[i] << 8) & 0xff00); - } - } - - return ((k > 0) ? k : -1); -} - - -static void -usagemsg(char *pgm) -{ - E_INFO("Usage: %s \\\n", pgm); - E_INFOCONT("\t[-? | -h] \\\n"); - E_INFOCONT("\t[-d | -debug] \\\n"); - E_INFOCONT("\t[-sps (16000)] \\\n"); - E_INFOCONT("\t[-b | -byteswap] \\\n"); - E_INFOCONT - ("\t[{-s | -silsep} \\\n"); - E_INFOCONT("\t[-w | -writeseg] \\\n"); - E_INFOCONT("\t[-min-noise ] \\\n"); - E_INFOCONT("\t[-max-noise ] \\\n"); - E_INFOCONT("\t[-delta-sil ] \\\n"); - E_INFOCONT("\t[-delta-speech ] \\\n"); - E_INFOCONT("\t[-sil-onset ] \\\n"); - E_INFOCONT("\t[-speech-onset ] \\\n"); - E_INFOCONT("\t[-adapt-rate ] \\\n"); - E_INFOCONT("\t[-max-adreadsize ] \\\n"); - E_INFOCONT("\t[-c ] \\\n"); - E_INFOCONT("\t[-r | -rawmode] \\\n"); - E_INFOCONT("\t-i \n"); - - exit(0); -} - -/* - * Read specified input file, segment it into utterances wherever a silence segment of - * a given minimum duration is encountered. Filter out long silences. - * Utterances are written to files named 00000000.raw, 00000001.raw, 00000002.raw, etc. - */ -int -main(int32 argc, char **argv) -{ - cont_ad_t *cont; - int32 uttid, uttlen, starttime, siltime, sps, debug, writeseg, rawmode; - int16 buf[4096]; - char *infile, *copyfile, segfile[1024]; - FILE *fp; - float endsil; - ad_rec_t ad; - int32 i, k; - int32 winsize, leader, trailer; - int32 orig_min_noise, orig_max_noise; - int32 orig_delta_sil, orig_delta_speech; - int32 orig_speech_onset, orig_sil_onset; - int32 min_noise, max_noise; - int32 delta_sil, delta_speech; - int32 sil_onset, speech_onset; - float32 orig_adapt_rate; - float32 adapt_rate; - int32 total_speech_samples; - float32 total_speech_sec; - FILE *rawfp; - - /* Set argument defaults */ - cont = NULL; - sps = 16000; - swap = 0; - endsil = 0.5; - writeseg = 0; - min_noise = max_noise = -1; - delta_sil = delta_speech = -1; - sil_onset = speech_onset = -1; - adapt_rate = -1.0; - max_ad_read_size = (int32) 0x7ffffff0; - debug = 0; - infile = NULL; - copyfile = NULL; - rawfp = NULL; - rawmode = 0; - - /* Parse arguments */ - for (i = 1; i < argc; i++) { - if ((strcmp(argv[i], "-help") == 0) - || (strcmp(argv[i], "-h") == 0) - || (strcmp(argv[i], "-?") == 0)) { - usagemsg(argv[0]); - } - else if ((strcmp(argv[i], "-debug") == 0) - || (strcmp(argv[i], "-d") == 0)) { - debug = 1; - } - else if (strcmp(argv[i], "-sps") == 0) { - i++; - if ((i == argc) - || (sscanf(argv[i], "%d", &sps) != 1) - || (sps <= 0)) { - E_ERROR("Invalid -sps argument\n"); - usagemsg(argv[0]); - } - } - else if ((strcmp(argv[i], "-byteswap") == 0) - || (strcmp(argv[i], "-b") == 0)) { - swap = 1; - } - else if ((strcmp(argv[i], "-silsep") == 0) - || (strcmp(argv[i], "-s") == 0)) { - i++; - if ((i == argc) - || (sscanf(argv[i], "%f", &endsil) != 1) - || (endsil <= 0.0)) { - E_ERROR("Invalid -silsep argument\n"); - usagemsg(argv[0]); - } - } - else if ((strcmp(argv[i], "-writeseg") == 0) - || (strcmp(argv[i], "-w") == 0)) { - writeseg = 1; - } - else if (strcmp(argv[i], "-min-noise") == 0) { - i++; - if ((i == argc) || - (sscanf(argv[i], "%d", &min_noise) != 1) || - (min_noise < 0)) { - E_ERROR("Invalid -min-noise argument\n"); - usagemsg(argv[0]); - } - } - else if (strcmp(argv[i], "-max-noise") == 0) { - i++; - if ((i == argc) || - (sscanf(argv[i], "%d", &max_noise) != 1) || - (max_noise < 0)) { - E_ERROR("Invalid -max-noise argument\n"); - usagemsg(argv[0]); - } - } - else if (strcmp(argv[i], "-delta-sil") == 0) { - i++; - if ((i == argc) || - (sscanf(argv[i], "%d", &delta_sil) != 1) || - (delta_sil < 0)) { - E_ERROR("Invalid -delta-sil argument\n"); - usagemsg(argv[0]); - } - } - else if (strcmp(argv[i], "-delta-speech") == 0) { - i++; - if ((i == argc) || - (sscanf(argv[i], "%d", &delta_speech) != 1) || - (delta_speech < 0)) { - E_ERROR("Invalid -delta-speech argument\n"); - usagemsg(argv[0]); - } - } - else if (strcmp(argv[i], "-sil-onset") == 0) { - i++; - if ((i == argc) || - (sscanf(argv[i], "%d", &sil_onset) != 1) || - (sil_onset < 1)) { - E_ERROR("Invalid -sil-onset argument\n"); - usagemsg(argv[0]); - } - } - else if (strcmp(argv[i], "-speech-onset") == 0) { - i++; - if ((i == argc) || - (sscanf(argv[i], "%d", &speech_onset) != 1) || - (speech_onset < 1)) { - E_ERROR("Invalid -speech-onset argument\n"); - usagemsg(argv[0]); - } - } - else if (strcmp(argv[i], "-adapt-rate") == 0) { - i++; - if ((i == argc) || - (sscanf(argv[i], "%f", &adapt_rate) != 1) || - (adapt_rate < 0.0) || (adapt_rate > 1.0)) { - E_ERROR("Invalid -adapt-rate argument\n"); - usagemsg(argv[0]); - } - } - else if (strcmp(argv[i], "-max-adreadsize") == 0) { - i++; - if ((i == argc) || - (sscanf(argv[i], "%d", &max_ad_read_size) != 1) || - (max_ad_read_size < 1)) { - E_ERROR("Invalid -max-adreadsize argument\n"); - usagemsg(argv[0]); - } - } - else if (strcmp(argv[i], "-c") == 0) { - i++; - if (i == argc) { - E_ERROR("Invalid -c argument\n"); - usagemsg(argv[0]); - } - copyfile = argv[i]; - } - else if ((strcmp(argv[i], "-rawmode") == 0) - || (strcmp(argv[i], "-r") == 0)) { - rawmode = 1; - } - else if (strcmp(argv[i], "-i") == 0) { - i++; - if (i == argc) { - E_ERROR("Invalid -i argument\n"); - usagemsg(argv[0]); - } - infile = argv[i]; - } - else { - usagemsg(argv[0]); - } - } - - if (infile == NULL) { - E_ERROR("No input file specified\n"); - usagemsg(argv[0]); - } - - if ((infp = fopen(infile, "rb")) == NULL) - E_FATAL_SYSTEM("Failed to open '%s' for reading", infile); - - /* - * Associate continuous listening module with opened input file and read function. - * No A/D device is involved, but need to fill in ad->sps. - * Calibrate input data using first few seconds of file, but then rewind it!! - */ - ad.sps = sps; - ad.bps = sizeof(int16); - if (!rawmode) - cont = cont_ad_init(&ad, file_ad_read); - else - cont = cont_ad_init_rawmode(&ad, file_ad_read); - - printf("Calibrating ..."); - fflush(stdout); - if (cont_ad_calib(cont) < 0) - printf(" failed; file too short?\n"); - else - printf(" done\n"); - rewind(infp); - - /* Convert desired min. inter-utterance silence duration to #samples */ - siltime = (int32) (endsil * sps); - - /* Enable writing raw input to output by the cont module if specified */ - if (copyfile) { - if ((rawfp = fopen(copyfile, "wb")) == NULL) - E_ERROR_SYSTEM("Failed to open raw output file '%s' for writing"); - else - cont_ad_set_rawfp(cont, rawfp); - } - - cont_ad_get_params(cont, - &orig_delta_sil, &orig_delta_speech, - &orig_min_noise, &orig_max_noise, - &winsize, - &orig_speech_onset, &orig_sil_onset, - &leader, &trailer, &orig_adapt_rate); - - E_INFO("Default parameters:\n"); - E_INFOCONT("\tmin-noise = %d, max-noise = %d\n", - orig_min_noise, orig_max_noise); - E_INFOCONT("\tdelta-sil = %d, delta-speech = %d\n", - orig_delta_sil, orig_delta_speech); - E_INFOCONT("\tsil-onset = %d, speech-onset = %d\n", - orig_sil_onset, orig_speech_onset); - E_INFOCONT("\tadapt_rate = %.3f\n", orig_adapt_rate); - - if (min_noise < 0) - min_noise = orig_min_noise; - if (max_noise < 0) - max_noise = orig_max_noise; - if (delta_sil < 0) - delta_sil = orig_delta_sil; - if (delta_speech < 0) - delta_speech = orig_delta_speech; - if (sil_onset < 0) - sil_onset = orig_sil_onset; - if (speech_onset < 0) - speech_onset = orig_speech_onset; - if (adapt_rate < 0.0) - adapt_rate = orig_adapt_rate; - - cont_ad_set_params(cont, - delta_sil, delta_speech, - min_noise, max_noise, - winsize, - speech_onset, sil_onset, - leader, trailer, adapt_rate); - - E_INFO("Current parameters:\n"); - E_INFOCONT("\tmin-noise = %d, max-noise = %d\n", min_noise, max_noise); - E_INFOCONT("\tdelta-sil = %d, delta-speech = %d\n", delta_sil, - delta_speech); - E_INFOCONT("\tsil-onset = %d, speech-onset = %d\n", sil_onset, - speech_onset); - E_INFOCONT("\tadapt_rate = %.3f\n", adapt_rate); - - E_INFO("Sampling rate: %d", sps); - E_INFOCONT("; Byteswap: %s", swap ? "Yes" : "No"); - E_INFOCONT("; Max ad-read size: %d\n", max_ad_read_size); - - if (debug) - cont_ad_set_logfp(cont, stdout); - - total_speech_samples = 0; - total_speech_sec = 0.0; - - uttid = 0; - uttlen = 0; - starttime = 0; - fp = NULL; - - /* Process data */ - for (;;) { - /* Get audio data from continuous listening module */ - k = cont_ad_read(cont, buf, 4096); - - if (k < 0) { /* End of input audio file; close any open output file and exit */ - if (fp != NULL) { - fclose(fp); - fp = NULL; - - printf - ("Utt %08d, st= %8.2fs, et= %8.2fs, seg= %7.2fs (#samp= %10d)\n", - uttid, (double) starttime / (double) sps, - (double) (starttime + uttlen) / (double) sps, - (double) uttlen / (double) sps, uttlen); - fflush(stdout); - - total_speech_samples += uttlen; - total_speech_sec += (double) uttlen / (double) sps; - - uttid++; - } - - break; - } - - if (cont->state == CONT_AD_STATE_SIL) { /* Silence data got */ - if (fp != NULL) { /* Currently in an utterance */ - if (cont->seglen > siltime) { /* Long enough silence detected; end the utterance */ - fclose(fp); - fp = NULL; - - printf - ("Utt %08d, st= %8.2fs, et= %8.2fs, seg= %7.2fs (#samp= %10d)\n", - uttid, (double) starttime / (double) sps, - (double) (starttime + uttlen) / (double) sps, - (double) uttlen / (double) sps, uttlen); - fflush(stdout); - - total_speech_samples += uttlen; - total_speech_sec += (double) uttlen / (double) sps; - - uttid++; - } - else { - /* - * Short silence within utt; write it to output. (Some extra trailing silence - * is included in the utterance, as a result. Not to worry about it.) - */ - if (k > 0) { - fwrite(buf, sizeof(int16), k, fp); - uttlen += k; - } - } - } - } - else { - assert(cont->state == CONT_AD_STATE_SPEECH); - - if (fp == NULL) { /* Not in an utt; open a new output file */ - if (writeseg) - sprintf(segfile, "%08d.raw", uttid); - else - strcpy(segfile, NULL_DEVICE); - if ((fp = fopen(segfile, "wb")) == NULL) - E_FATAL_SYSTEM("Failed to open segmentation file '%s' for writing", segfile); - - starttime = cont->read_ts - k; - uttlen = 0; - } - - /* Write data obtained to output file */ - if (k > 0) { - fwrite(buf, sizeof(int16), k, fp); - uttlen += k; - } - } - } - - if (rawfp) - fclose(rawfp); - - E_INFO("Total raw input speech = %d frames, %d samples, %.2f sec\n", - cont->tot_frm, cont->tot_frm * cont->spf, - (cont->tot_frm * cont->spf) / (float32) cont->sps); - E_INFO("Total speech detected = %d samples, %.2f sec\n", - total_speech_samples, total_speech_sec); - - cont_ad_close(cont); - - return 0; -} diff -Nru sphinxbase-0.8/src/sphinx_adtools/cont_seg.c sphinxbase-0.8+5prealpha/src/sphinx_adtools/cont_seg.c --- sphinxbase-0.8/src/sphinx_adtools/cont_seg.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_adtools/cont_seg.c 2015-05-14 19:36:42.000000000 +0000 @@ -0,0 +1,312 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ +/* + * cont_seg.c -- Continuously listen and segment input speech into utterances. + * + * HISTORY + * + * 05-Nov-13 Created from adseg and fileseg + * + */ + +#include +#include +#include +#include +#include + +#if defined(_WIN32) && !defined(__CYGWIN__) +#include +#else +#include +#endif + +#include +#include +#include +#include +#include +#include + +#define BLOCKSIZE 1024 + +static const arg_t cont_args_def[] = { + waveform_to_cepstral_command_line_macro(), + /* Argument file. */ + {"-argfile", + ARG_STRING, + NULL, + "Argument file giving extra arguments."}, + {"-adcdev", + ARG_STRING, + NULL, + "Name of audio device to use for input."}, + {"-inmic", + ARG_BOOLEAN, + "no", + "Transcribe audio from microphone."}, + {"-infile", + ARG_STRING, + NULL, + "Name of audio file to use for input."}, + {"-singlefile", + ARG_BOOLEAN, + FALSE, + "Write a single cleaned file."}, + {NULL, 0, NULL, NULL} +}; + +static fe_t *fe; +static cmd_ln_t *config; +static int (*read_audio) (int16 * buf, int len); +static ad_rec_t *ad; +static const char *infile_path; +static FILE *infile; +static int32 singlefile; + +/* Sleep for specified msec */ +static void +sleep_msec(int32 ms) +{ +#if (defined(_WIN32) && !defined(GNUWINCE)) || defined(_WIN32_WCE) + Sleep(ms); +#else + /* ------------------- Unix ------------------ */ + struct timeval tmo; + + tmo.tv_sec = 0; + tmo.tv_usec = ms * 1000; + + select(0, NULL, NULL, NULL, &tmo); +#endif +} + +static int +read_audio_file(int16 * buf, int len) +{ + if (!infile) { + E_FATAL("Failed to read audio from file\n"); + return -1; + } + return fread(buf, sizeof(int16), len, infile); +} + +static int +read_audio_adev(int16 * buf, int len) +{ + int k; + + if (!ad) { + E_FATAL("Failed to read audio from mic\n"); + return -1; + } + while ((k = ad_read(ad, buf, len)) == 0) + /* wait until something is read */ + sleep_msec(50); + + return k; +} + +void +segment_audio() +{ + FILE *file; + int16 pcm_buf[BLOCKSIZE]; + mfcc_t **cep_buf; + int16 *voiced_buf = NULL; + int32 voiced_nsamps, out_frameidx, uttstart = 0; + char file_name[1024]; + uint8 cur_vad_state, vad_state, writing; + int uttno, uttlen, sample_rate; + int32 nframes, nframes_tmp; + int16 frame_size, frame_shift, frame_rate; + size_t k; + + sample_rate = (int) cmd_ln_float32_r(config, "-samprate"); + frame_rate = cmd_ln_int32_r(config, "-frate"); + frame_size = + (int32) (cmd_ln_float32_r(config, "-wlen") * sample_rate + 0.5); + frame_shift = + (int32) (sample_rate / cmd_ln_int32_r(config, "-frate") + 0.5); + nframes = (BLOCKSIZE - frame_size) / frame_shift; + cep_buf = + (mfcc_t **) ckd_calloc_2d(nframes, fe_get_output_size(fe), + sizeof(mfcc_t)); + + uttno = 0; + uttlen = 0; + cur_vad_state = 0; + voiced_nsamps = 0; + writing = 0; + file = NULL; + fe_start_stream(fe); + fe_start_utt(fe); + while ((k = read_audio(pcm_buf, BLOCKSIZE)) > 0) { + int16 const *pcm_buf_tmp; + pcm_buf_tmp = &pcm_buf[0]; + while (k) { + nframes_tmp = nframes; + fe_process_frames_ext(fe, &pcm_buf_tmp, &k, cep_buf, + &nframes_tmp, voiced_buf, + &voiced_nsamps, &out_frameidx); + if (out_frameidx > 0) { + uttstart = out_frameidx; + } + vad_state = fe_get_vad_state(fe); + if (!cur_vad_state && vad_state) { + /* silence->speech transition, time to start new file */ + uttno++; + if (!singlefile) { + sprintf(file_name, "%s%04d.raw", infile_path, uttno); + if ((file = fopen(file_name, "wb")) == NULL) + E_FATAL_SYSTEM("Failed to open '%s' for writing", + file_name); + } else { + sprintf(file_name, "%s.raw", infile_path); + if ((file = fopen(file_name, "ab")) == NULL) + E_FATAL_SYSTEM("Failed to open '%s' for writing", + file_name); + } + writing = 1; + } + + if (writing && file && voiced_nsamps > 0) { + fwrite(voiced_buf, sizeof(int16), voiced_nsamps, file); + uttlen += voiced_nsamps; + } + + if (cur_vad_state && !vad_state) { + /* speech -> silence transition, time to finish file */ + fclose(file); + printf("Utterance %04d: file %s start %.1f sec length %d samples ( %.2f sec )\n", + uttno, + file_name, + ((double) uttstart) / frame_rate, + uttlen, + ((double) uttlen) / sample_rate); + fflush(stdout); + fe_end_utt(fe, cep_buf[0], &nframes_tmp); + writing = 0; + uttlen = 0; + voiced_nsamps = 0; + fe_start_utt(fe); + } + cur_vad_state = vad_state; + } + } + + if (writing) { + fclose(file); + printf("Utterance %04d: file %s start %.1f sec length %d samples ( %.2f sec )\n", + uttno, + file_name, + ((double) uttstart) / frame_rate, + uttlen, + ((double) uttlen) / sample_rate); + fflush(stdout); + } + fe_end_utt(fe, cep_buf[0], &nframes); + ckd_free_2d(cep_buf); +} + +int +main(int argc, char *argv[]) +{ + int i; + int16 buf[2048]; + + config = cmd_ln_parse_r(NULL, cont_args_def, argc, argv, TRUE); + + if (config && cmd_ln_str_r(config, "-argfile")) + config = cmd_ln_parse_file_r(config, cont_args_def, + cmd_ln_str_r(config, "-argfile"), FALSE); + + if (config == NULL || (cmd_ln_str_r(config, "-infile") == NULL && cmd_ln_boolean_r(config, "-inmic") == FALSE)) { + E_INFO("Specify '-infile ' to segment a file or '-inmic yes' to segment audio from microphone.\n"); + cmd_ln_free_r(config); + return 1; + } + + + singlefile = cmd_ln_boolean_r(config, "-singlefile"); + if ((infile_path = cmd_ln_str_r(config, "-infile")) != NULL) { + if ((infile = fopen(infile_path, "rb")) == NULL) { + E_FATAL_SYSTEM("Failed to read audio from '%s'", infile_path); + return 1; + } + read_audio = &read_audio_file; + /* skip wav header */ + read_audio(buf, 44); + } + else if cmd_ln_boolean_r(config, "-inmic") { + if ((ad = ad_open_dev(cmd_ln_str_r(config, "-adcdev"), + (int) cmd_ln_float32_r(config, + "-samprate"))) == + NULL) { + E_FATAL("Failed to open audio device\n"); + return 1; + } + read_audio = &read_audio_adev; + printf("Start recording ...\n"); + fflush(stdout); + if (ad_start_rec(ad) < 0) + E_FATAL("Failed to start recording\n"); + + /* TODO remove this thing */ + for (i = 0; i < 5; i++) { + sleep_msec(200); + read_audio(buf, 2048); + } + printf("You may speak now\n"); + fflush(stdout); + } + + fe = fe_init_auto_r(config); + if (fe == NULL) + return 1; + + segment_audio(); + + if (ad) + ad_close(ad); + if (infile) + fclose(infile); + + fe_free(fe); + cmd_ln_free_r(config); + return 0; +} diff -Nru sphinxbase-0.8/src/sphinx_adtools/Makefile.am sphinxbase-0.8+5prealpha/src/sphinx_adtools/Makefile.am --- sphinxbase-0.8/src/sphinx_adtools/Makefile.am 2012-12-05 14:06:09.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_adtools/Makefile.am 2015-03-24 17:26:36.000000000 +0000 @@ -1,9 +1,8 @@ -bin_PROGRAMS = sphinx_cont_adseg sphinx_cont_fileseg sphinx_pitch +bin_PROGRAMS = sphinx_pitch sphinx_cont_seg -sphinx_cont_adseg_SOURCES = cont_adseg.c -sphinx_cont_fileseg_SOURCES = cont_fileseg.c +sphinx_cont_seg_SOURCES = cont_seg.c LDADD = $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ $(top_builddir)/src/libsphinxad/libsphinxad.la -INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include +AM_CFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include diff -Nru sphinxbase-0.8/src/sphinx_adtools/Makefile.in sphinxbase-0.8+5prealpha/src/sphinx_adtools/Makefile.in --- sphinxbase-0.8/src/sphinx_adtools/Makefile.in 2012-12-12 17:28:53.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_adtools/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -34,17 +78,16 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -bin_PROGRAMS = sphinx_cont_adseg$(EXEEXT) sphinx_cont_fileseg$(EXEEXT) \ - sphinx_pitch$(EXEEXT) +bin_PROGRAMS = sphinx_pitch$(EXEEXT) sphinx_cont_seg$(EXEEXT) subdir = src/sphinx_adtools -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -54,46 +97,86 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) -am_sphinx_cont_adseg_OBJECTS = cont_adseg.$(OBJEXT) -sphinx_cont_adseg_OBJECTS = $(am_sphinx_cont_adseg_OBJECTS) -sphinx_cont_adseg_LDADD = $(LDADD) -sphinx_cont_adseg_DEPENDENCIES = \ - $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ - $(top_builddir)/src/libsphinxad/libsphinxad.la -am_sphinx_cont_fileseg_OBJECTS = cont_fileseg.$(OBJEXT) -sphinx_cont_fileseg_OBJECTS = $(am_sphinx_cont_fileseg_OBJECTS) -sphinx_cont_fileseg_LDADD = $(LDADD) -sphinx_cont_fileseg_DEPENDENCIES = \ +am_sphinx_cont_seg_OBJECTS = cont_seg.$(OBJEXT) +sphinx_cont_seg_OBJECTS = $(am_sphinx_cont_seg_OBJECTS) +sphinx_cont_seg_LDADD = $(LDADD) +sphinx_cont_seg_DEPENDENCIES = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ $(top_builddir)/src/libsphinxad/libsphinxad.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = sphinx_pitch_SOURCES = sphinx_pitch.c sphinx_pitch_OBJECTS = sphinx_pitch.$(OBJEXT) sphinx_pitch_LDADD = $(LDADD) sphinx_pitch_DEPENDENCIES = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ $(top_builddir)/src/libsphinxad/libsphinxad.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(sphinx_cont_adseg_SOURCES) $(sphinx_cont_fileseg_SOURCES) \ - sphinx_pitch.c -DIST_SOURCES = $(sphinx_cont_adseg_SOURCES) \ - $(sphinx_cont_fileseg_SOURCES) sphinx_pitch.c +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(sphinx_cont_seg_SOURCES) sphinx_pitch.c +DIST_SOURCES = $(sphinx_cont_seg_SOURCES) sphinx_pitch.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -107,6 +190,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -116,9 +200,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -126,15 +208,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -150,27 +231,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -203,14 +290,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -219,12 +309,11 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -sphinx_cont_adseg_SOURCES = cont_adseg.c -sphinx_cont_fileseg_SOURCES = cont_fileseg.c +sphinx_cont_seg_SOURCES = cont_seg.c LDADD = $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ $(top_builddir)/src/libsphinxad/libsphinxad.la -INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include +AM_CFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include all: all-am .SUFFIXES: @@ -238,9 +327,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/sphinx_adtools/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/sphinx_adtools/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/sphinx_adtools/Makefile + $(AUTOMAKE) --foreign src/sphinx_adtools/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -261,14 +350,19 @@ $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + 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|.*|.|' \ + 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 } \ @@ -289,7 +383,8 @@ @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)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -302,15 +397,14 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -sphinx_cont_adseg$(EXEEXT): $(sphinx_cont_adseg_OBJECTS) $(sphinx_cont_adseg_DEPENDENCIES) - @rm -f sphinx_cont_adseg$(EXEEXT) - $(LINK) $(sphinx_cont_adseg_OBJECTS) $(sphinx_cont_adseg_LDADD) $(LIBS) -sphinx_cont_fileseg$(EXEEXT): $(sphinx_cont_fileseg_OBJECTS) $(sphinx_cont_fileseg_DEPENDENCIES) - @rm -f sphinx_cont_fileseg$(EXEEXT) - $(LINK) $(sphinx_cont_fileseg_OBJECTS) $(sphinx_cont_fileseg_LDADD) $(LIBS) -sphinx_pitch$(EXEEXT): $(sphinx_pitch_OBJECTS) $(sphinx_pitch_DEPENDENCIES) + +sphinx_cont_seg$(EXEEXT): $(sphinx_cont_seg_OBJECTS) $(sphinx_cont_seg_DEPENDENCIES) $(EXTRA_sphinx_cont_seg_DEPENDENCIES) + @rm -f sphinx_cont_seg$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sphinx_cont_seg_OBJECTS) $(sphinx_cont_seg_LDADD) $(LIBS) + +sphinx_pitch$(EXEEXT): $(sphinx_pitch_OBJECTS) $(sphinx_pitch_DEPENDENCIES) $(EXTRA_sphinx_pitch_DEPENDENCIES) @rm -f sphinx_pitch$(EXEEXT) - $(LINK) $(sphinx_pitch_OBJECTS) $(sphinx_pitch_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(sphinx_pitch_OBJECTS) $(sphinx_pitch_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -318,30 +412,29 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cont_adseg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cont_fileseg.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cont_seg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sphinx_pitch.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -349,26 +442,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -380,15 +462,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -397,6 +475,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -448,10 +541,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -535,19 +633,19 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic clean-libtool ctags distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/sphinx_adtools/sphinx_pitch.c sphinxbase-0.8+5prealpha/src/sphinx_adtools/sphinx_pitch.c --- sphinxbase-0.8/src/sphinx_adtools/sphinx_pitch.c 2012-12-05 14:06:09.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_adtools/sphinx_pitch.c 2015-03-24 17:26:36.000000000 +0000 @@ -35,6 +35,10 @@ * */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include #include @@ -46,10 +50,6 @@ #include #include -#ifndef WORDS_BIGENDIAN -#define WORDS_BIGENDIAN 0 -#endif - static arg_t defn[] = { { "-i", ARG_STRING, @@ -237,12 +237,12 @@ } /* Length of 'fmt ' chunk */ TRY_FREAD(&intval, 4, 1, infh); - if (WORDS_BIGENDIAN) SWAP_INT32(&intval); + SWAP_LE_32(&intval); header_len = intval; /* Data format. */ TRY_FREAD(&shortval, 2, 1, infh); - if (WORDS_BIGENDIAN) SWAP_INT16(&shortval); + SWAP_LE_16(&shortval); if (shortval != 1) { /* PCM */ E_ERROR("WAVE file is not in PCM format\n"); goto error_out; @@ -250,7 +250,7 @@ /* Number of channels. */ TRY_FREAD(&shortval, 2, 1, infh); - if (WORDS_BIGENDIAN) SWAP_INT16(&shortval); + SWAP_LE_16(&shortval); if (shortval != 1) { /* PCM */ E_ERROR("WAVE file is not single channel\n"); goto error_out; @@ -258,7 +258,7 @@ /* Sampling rate (finally!) */ TRY_FREAD(&intval, 4, 1, infh); - if (WORDS_BIGENDIAN) SWAP_INT32(&intval); + SWAP_LE_32(&intval); if (cmd_ln_int32("-samprate") == 0) cmd_ln_set_int32("-samprate", intval); else if (cmd_ln_int32("-samprate") != intval) { @@ -274,7 +274,7 @@ /* Bits per sample (must be 16) */ TRY_FREAD(&shortval, 2, 1, infh); - if (WORDS_BIGENDIAN) SWAP_INT16(&shortval); + SWAP_LE_16(&shortval); if (shortval != 16) { E_ERROR("WAVE file is not 16-bit\n"); goto error_out; @@ -296,7 +296,7 @@ /* Some other stuff... */ /* Number of bytes of ... whatever */ TRY_FREAD(&intval, 4, 1, infh); - if (WORDS_BIGENDIAN) SWAP_INT32(&intval); + SWAP_LE_32(&intval); fseek(infh, intval, SEEK_CUR); } } @@ -375,7 +375,8 @@ size_t flen, fshift, nsamps; int16 *buf = NULL; yin_t *yin = NULL; - uint16 period, bestdiff; + uint16 period; + float bestdiff; int32 sps; if (out) { @@ -414,10 +415,7 @@ else if (cmd_ln_boolean("-raw")) { /* Just use some defaults for sampling rate and endian. */ if (cmd_ln_str("-input_endian") == NULL) { - if (WORDS_BIGENDIAN) - cmd_ln_set_str("-input_endian", "big"); - else - cmd_ln_set_str("-input_endian", "little"); + cmd_ln_set_str("-input_endian", "little"); } if (cmd_ln_int32("-samprate") == 0) cmd_ln_set_int32("-samprate", 16000); @@ -449,7 +447,7 @@ /* Time point. */ (double)nsamps/sps, /* "Probability" of voicing. */ - bestdiff > 32768 ? 0.0 : 1.0 - (double)bestdiff / 32768, + bestdiff > 1.0 ? 0.0 : 1.0 - (double)bestdiff, /* Pitch (possibly bogus) */ period == 0 ? sps : (double)sps / period); nsamps += fshift; @@ -467,7 +465,7 @@ /* Time point. */ (double)nsamps/sps, /* "Probability" of voicing. */ - bestdiff > 32768 ? 0.0 : 1.0 - (double)bestdiff / 32768, + bestdiff > 1.0 ? 0.0 : 1.0 - (double)bestdiff, /* Pitch (possibly bogus) */ period == 0 ? sps : (double)sps / period); } @@ -476,15 +474,17 @@ yin_free(yin); ckd_free(buf); fclose(infh); - if (outfh != stdout) + if (outfh && outfh != stdout) fclose(outfh); return 0; error_out: - yin_free(yin); + if (yin) + yin_free(yin); ckd_free(buf); if (infh) fclose(infh); - if (outfh && outfh != stdout) fclose(outfh); + if (outfh && outfh != stdout) + fclose(outfh); return -1; } diff -Nru sphinxbase-0.8/src/sphinx_cepview/main_cepview.c sphinxbase-0.8+5prealpha/src/sphinx_cepview/main_cepview.c --- sphinxbase-0.8/src/sphinx_cepview/main_cepview.c 2012-12-13 09:01:21.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_cepview/main_cepview.c 2015-07-05 00:26:49.000000000 +0000 @@ -50,7 +50,6 @@ #include #include #include -#include #include #include #include @@ -73,11 +72,6 @@ #define STR_MAX_INT "2147483647" static arg_t arg[] = { - - {"-logfn", - ARG_STRING, - NULL, - "Log file (default stdout/stderr)"}, {"-i", ARG_INT32, NUM_COEFF, @@ -121,7 +115,6 @@ float *z, **cep; char const *cepfile; - print_appl_info(argv[0]); cmd_ln_appl_enter(argc, argv, "default.arg", arg); vsize = cmd_ln_int32("-i"); @@ -269,11 +262,11 @@ return IO_SUCCESS; } -/** Silvio Moioli: Windows CE/Mobile entry point added. */ +/** Windows CE/Mobile entry point added. */ #if defined(_WIN32_WCE) #pragma comment(linker,"/entry:mainWCRTStartup") -//Windows Mobile has the Unicode main only +/* Windows Mobile has the Unicode main only */ int wmain(int32 argc, wchar_t *wargv[]) { char** argv; size_t wlen; @@ -281,14 +274,14 @@ int i; argv = malloc(argc*sizeof(char*)); - for (i=0; i&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -36,14 +80,14 @@ host_triplet = @host@ bin_PROGRAMS = sphinx_cepview$(EXEEXT) subdir = src/sphinx_cepview -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -57,26 +101,74 @@ sphinx_cepview_OBJECTS = $(am_sphinx_cepview_OBJECTS) sphinx_cepview_DEPENDENCIES = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(sphinx_cepview_SOURCES) DIST_SOURCES = $(sphinx_cepview_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -90,6 +182,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -99,9 +192,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,15 +200,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -133,27 +223,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -186,14 +282,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -206,7 +305,7 @@ sphinx_cepview_LDADD = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la -INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include +AM_CFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include all: all-am .SUFFIXES: @@ -220,9 +319,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/sphinx_cepview/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/sphinx_cepview/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/sphinx_cepview/Makefile + $(AUTOMAKE) --foreign src/sphinx_cepview/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -243,14 +342,19 @@ $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + 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|.*|.|' \ + 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 } \ @@ -271,7 +375,8 @@ @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)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -284,9 +389,10 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -sphinx_cepview$(EXEEXT): $(sphinx_cepview_OBJECTS) $(sphinx_cepview_DEPENDENCIES) + +sphinx_cepview$(EXEEXT): $(sphinx_cepview_OBJECTS) $(sphinx_cepview_DEPENDENCIES) $(EXTRA_sphinx_cepview_DEPENDENCIES) @rm -f sphinx_cepview$(EXEEXT) - $(LINK) $(sphinx_cepview_OBJECTS) $(sphinx_cepview_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(sphinx_cepview_OBJECTS) $(sphinx_cepview_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -297,25 +403,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main_cepview.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -323,26 +429,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -354,15 +449,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -371,6 +462,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -422,10 +528,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -509,19 +620,19 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic clean-libtool ctags distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/sphinx_fe/cmd_ln_defn.h sphinxbase-0.8+5prealpha/src/sphinx_fe/cmd_ln_defn.h --- sphinxbase-0.8/src/sphinx_fe/cmd_ln_defn.h 2012-12-05 14:06:03.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_fe/cmd_ln_defn.h 2015-05-02 19:38:35.000000000 +0000 @@ -175,13 +175,6 @@ "no", "Defines input format as Microsoft Wav (RIFF)" }, -#ifdef HAVE_SNDFILE_H - { "-sndfile", - ARG_BOOLEAN, - "no", - "Use libsndfile to read input data" }, -#endif - { "-nchans", ARG_INT32, "1", @@ -228,76 +221,3 @@ #define CMD_LN_DEFN_H #endif /* CMD_LN_DEFN_H */ - -/* - * Log record. Maintained by RCS. - * - * $Log: cmd_ln_defn.h,v $ - * Revision 1.7 2006/02/25 00:53:48 egouvea - * Added the flag "-seed". If dither is being used and the seed is less - * than zero, the random number generator is initialized with time(). If - * it is at least zero, it's initialized with the provided seed. This way - * we have the benefit of having dither, and the benefit of being - * repeatable. - * - * This is consistent with what sphinx3 does. Well, almost. The random - * number generator is still what the compiler provides. - * - * Also, moved fe_init_params to fe_interface.c, so one can initialize a - * variable of type param_t with meaningful values. - * - * Revision 1.6 2006/02/17 00:31:34 egouvea - * Removed switch -melwarp. Changed the default for window length to - * 0.025625 from 0.256 (so that a window at 16kHz sampling rate has - * exactly 410 samples). Cleaned up include's. Replaced some E_FATAL() - * with E_WARN() and return. - * - * Revision 1.5 2006/02/16 00:18:26 egouvea - * Implemented flexible warping function. The user can specify at run - * time which of several shapes they want to use. Currently implemented - * are an affine function (y = ax + b), an inverse linear (y = a/x) and a - * piecewise linear (y = ax, up to a frequency F, and then it "breaks" so - * Nyquist frequency matches in both scales. - * - * Added two switches, -warp_type and -warp_params. The first specifies - * the type, which valid values: - * - * -inverse or inverse_linear - * -linear or affine - * -piecewise or piecewise_linear - * - * The inverse_linear is the same as implemented by EHT. The -mel_warp - * switch was kept for compatibility (maybe remove it in the - * future?). The code is compatible with EHT's changes: cepstra created - * from code after his changes should be the same as now. Scripts that - * worked with his changes should work now without changes. Tested a few - * cases, same results. - * - * Revision 1.4 2006/02/14 20:56:54 eht - * Implement an argument -melwarp that changes the standard mel-scale - * equation from: - * M(f) = 2595 * log10( 1 + f/700 ) - * to: - * M(f,w) = 2595 * log10( 1 + f/(700*w)) - * - * So, 1.0 means no warp, w > 1.0 means linear compression w < 1.0 means - * linear expansion. - * - * Implement argument -nskip and -runlen arguments so that a subset of the - * utterances in the control file can be executed. Allows a simple - * distribution of wave2feat processing over N processors. - * - * Revision 1.3 2005/05/19 21:21:55 egouvea - * Bug #1176394: example bug - * - * Revision 1.2 2004/11/23 04:14:06 egouvea - * Fixed bug in cmd_ln.c in which a wrong boolean argument led into an - * infinite loop, and fixed the help and example strings, getting rid of - * spaces, so that the appearance is better. - * - * Revision 1.1 2004/09/09 17:59:30 egouvea - * Adding missing files to wave2feat - * - * - * - */ diff -Nru sphinxbase-0.8/src/sphinx_fe/Makefile.am sphinxbase-0.8+5prealpha/src/sphinx_fe/Makefile.am --- sphinxbase-0.8/src/sphinx_fe/Makefile.am 2012-12-05 14:06:03.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_fe/Makefile.am 2015-05-01 21:26:27.000000000 +0000 @@ -2,14 +2,13 @@ sphinx_fe_SOURCES = sphinx_fe.c -noinst_HEADERS = cmd_ln_defn.h \ +noinst_HEADERS = cmd_ln_defn.h \ sphinx_wave2feat.h sphinx_fe_LDADD = \ - $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ - @SNDFILE_LIBS@ + $(top_builddir)/src/libsphinxbase/libsphinxbase.la -INCLUDES = -I$(top_srcdir)/include \ +AM_CFLAGS =-I$(top_srcdir)/include \ -I$(top_builddir)/include \ - -I$(top_srcdir)/src/libsphinxbase/fe \ - @SNDFILE_CFLAGS@ + -I$(top_srcdir)/src/libsphinxbase/fe + diff -Nru sphinxbase-0.8/src/sphinx_fe/Makefile.in sphinxbase-0.8+5prealpha/src/sphinx_fe/Makefile.in --- sphinxbase-0.8/src/sphinx_fe/Makefile.in 2012-12-12 17:28:53.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_fe/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,6 +16,51 @@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,15 +81,14 @@ host_triplet = @host@ bin_PROGRAMS = sphinx_fe$(EXEEXT) subdir = src/sphinx_fe -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -59,27 +102,75 @@ sphinx_fe_OBJECTS = $(am_sphinx_fe_OBJECTS) sphinx_fe_DEPENDENCIES = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(sphinx_fe_SOURCES) DIST_SOURCES = $(sphinx_fe_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -93,6 +184,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -102,9 +194,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -112,15 +202,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -136,27 +225,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -189,14 +284,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -206,17 +304,15 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sphinx_fe_SOURCES = sphinx_fe.c -noinst_HEADERS = cmd_ln_defn.h \ +noinst_HEADERS = cmd_ln_defn.h \ sphinx_wave2feat.h sphinx_fe_LDADD = \ - $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ - @SNDFILE_LIBS@ + $(top_builddir)/src/libsphinxbase/libsphinxbase.la -INCLUDES = -I$(top_srcdir)/include \ +AM_CFLAGS = -I$(top_srcdir)/include \ -I$(top_builddir)/include \ - -I$(top_srcdir)/src/libsphinxbase/fe \ - @SNDFILE_CFLAGS@ + -I$(top_srcdir)/src/libsphinxbase/fe all: all-am @@ -231,9 +327,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/sphinx_fe/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/sphinx_fe/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/sphinx_fe/Makefile + $(AUTOMAKE) --foreign src/sphinx_fe/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -254,14 +350,19 @@ $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + 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|.*|.|' \ + 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 } \ @@ -282,7 +383,8 @@ @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)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -295,9 +397,10 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -sphinx_fe$(EXEEXT): $(sphinx_fe_OBJECTS) $(sphinx_fe_DEPENDENCIES) + +sphinx_fe$(EXEEXT): $(sphinx_fe_OBJECTS) $(sphinx_fe_DEPENDENCIES) $(EXTRA_sphinx_fe_DEPENDENCIES) @rm -f sphinx_fe$(EXEEXT) - $(LINK) $(sphinx_fe_OBJECTS) $(sphinx_fe_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(sphinx_fe_OBJECTS) $(sphinx_fe_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -308,25 +411,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sphinx_fe.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -334,26 +437,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -365,15 +457,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -382,6 +470,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -433,10 +536,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -520,19 +628,19 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic clean-libtool ctags distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/sphinx_fe/sphinx_fe.c sphinxbase-0.8+5prealpha/src/sphinx_fe/sphinx_fe.c --- sphinxbase-0.8/src/sphinx_fe/sphinx_fe.c 2012-12-05 14:06:03.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_fe/sphinx_fe.c 2015-07-05 00:26:49.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ /* ==================================================================== - * Copyright (c) 1996-2004 Carnegie Mellon University. All rights + * Copyright (c) 1996-2004 Carnegie Mellon University. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -8,27 +8,27 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * - * This work was supported in part by funding from the Defense Advanced - * Research Projects Agency and the National Science Foundation of the + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the * United States of America, and the CMU Sphinx Speech Consortium. * - * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY * NOR ITS EMPLOYEES 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 + * 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. * * ==================================================================== @@ -44,10 +44,6 @@ #include #endif -#ifdef HAVE_SNDFILE_H -#include -#endif - #include #include #include @@ -88,9 +84,6 @@ int veclen; /**< Length of each output vector. */ int in_veclen; /**< Length of each input vector (for cep<->spec). */ int byteswap; /**< Whether byteswapping is necessary. */ -#ifdef HAVE_SNDFILE_H - SNDFILE *insfh; /**< Input sndfile handle. */ -#endif output_type_t const *ot;/**< Output type object. */ }; @@ -126,7 +119,7 @@ return -1; } if (fread(&hdr, sizeof(hdr), 1, fh) != 1) { - E_ERROR_SYSTEM("Failed to read RIFF header"); + E_ERROR("Failed to read RIFF header"); fclose(fh); return -1; } @@ -179,7 +172,7 @@ nword = str2words(li->buf, NULL, 0); if (nword != 3) continue; - words = ckd_calloc(nword, sizeof(*words)); + words = (char **)ckd_calloc(nword, sizeof(*words)); str2words(li->buf, words, nword); if (0 == strcmp(words[0], "sample_rate")) { cmd_ln_set_float32_r(wtf->config, "-samprate", atof_c(words[2])); @@ -313,7 +306,7 @@ (0 == strcmp("big", cmd_ln_str_r(wtf->config, "-mach_endian")) ? "little" : "big")); } - + fseek(fh, 4, SEEK_SET); wtf->infh = fh; if (cmd_ln_boolean_r(wtf->config, "-spec2cep")) { @@ -328,7 +321,7 @@ E_ERROR("Sphinx MFCC file reading requested but -spec2cep/-cep2spec not given\n"); assert(FALSE); } - + return TRUE; } @@ -353,86 +346,6 @@ return i/nchans; } -#ifdef HAVE_SNDFILE_H -/** - * Detect a file supported by libsndfile and parse its header if detected. - * - * @return TRUE if it's a supported file, FALSE if not, -1 if an error occurred. - */ -static int -detect_sndfile(sphinx_wave2feat_t *wtf) -{ - SNDFILE *sf; - SF_INFO sfinfo; - - memset(&sfinfo, 0, sizeof(sfinfo)); - /* We let other detectors catch I/O errors, since there is - no way to tell them from format errors when opening :( */ - if ((sf = sf_open(wtf->infile, SFM_READ, &sfinfo)) == NULL) { - return FALSE; - } - /* Get relevant information. */ - cmd_ln_set_int32_r(wtf->config, "-nchans", sfinfo.channels); - cmd_ln_set_float32_r(wtf->config, "-samprate", sfinfo.samplerate); - wtf->insfh = sf; - wtf->infh = NULL; - - return TRUE; -} - -/** - * Process PCM audio from a libsndfile file. FIXME: looks a lot like - * decode_pcm! Also needs stereo support (as does decode_pcm). - */ -static int -decode_sndfile(sphinx_wave2feat_t *wtf) -{ - size_t nsamp; - int32 nfr, nchans, whichchan; - int nfloat, n; - - nchans = cmd_ln_int32_r(wtf->config, "-nchans"); - whichchan = cmd_ln_int32_r(wtf->config, "-whichchan"); - fe_start_utt(wtf->fe); - nfloat = 0; - while ((nsamp = sf_read_short(wtf->insfh, - wtf->audio, - wtf->blocksize)) != 0) { - int16 const *inspeech; - size_t nvec; - - /* Mix or pick channels. */ - if (nchans > 1) - nsamp = mixnpick_channels(wtf->audio, nsamp, nchans, whichchan); - - inspeech = wtf->audio; - nvec = wtf->featsize; - /* Consume all samples. */ - while (nsamp) { - nfr = nvec; - fe_process_frames(wtf->fe, &inspeech, &nsamp, wtf->feat, &nfr); - if (nfr) { - if ((n = (*wtf->ot->output_frames)(wtf, wtf->feat, nfr)) < 0) - return -1; - nfloat += n; - } - } - inspeech = wtf->audio; - } - /* Now process any leftover audio frames. */ - fe_end_utt(wtf->fe, wtf->feat[0], &nfr); - if (nfr) { - if ((n = (*wtf->ot->output_frames)(wtf, wtf->feat, nfr)) < 0) - return -1; - nfloat += n; - } - - sf_close(wtf->insfh); - wtf->insfh = NULL; - return nfloat; -} -#endif /* HAVE_SNDFILE_H */ - /** * Process PCM audio from a filehandle. Assume that wtf->infh is * positioned just after the file header. @@ -441,14 +354,15 @@ decode_pcm(sphinx_wave2feat_t *wtf) { size_t nsamp; - int32 nfr, nchans, whichchan; - int nfloat, n; + int32 n, nfr, nchans, whichchan; + uint32 nfloat; nchans = cmd_ln_int32_r(wtf->config, "-nchans"); whichchan = cmd_ln_int32_r(wtf->config, "-whichchan"); + fe_start_stream(wtf->fe); fe_start_utt(wtf->fe); nfloat = 0; - while ((nsamp = fread(wtf->audio, 2, wtf->blocksize, wtf->infh)) != 0) { + while ((nsamp = fread(wtf->audio, sizeof(int16), wtf->blocksize, wtf->infh)) != 0) { size_t nvec; int16 const *inspeech; @@ -461,13 +375,13 @@ /* Mix or pick channels. */ if (nchans > 1) nsamp = mixnpick_channels(wtf->audio, nsamp, nchans, whichchan); - + inspeech = wtf->audio; nvec = wtf->featsize; /* Consume all samples. */ while (nsamp) { nfr = nvec; - fe_process_frames(wtf->fe, &inspeech, &nsamp, wtf->feat, &nfr); + fe_process_frames(wtf->fe, &inspeech, &nsamp, wtf->feat, &nfr, NULL); if (nfr) { if ((n = (*wtf->ot->output_frames)(wtf, wtf->feat, nfr)) < 0) return -1; @@ -542,9 +456,6 @@ } static const audio_type_t types[] = { -#ifdef HAVE_SNDFILE_H - { "-sndfile", &detect_sndfile, &decode_sndfile }, -#endif { "-mswav", &detect_riff, &decode_pcm }, { "-nist", &detect_nist, &decode_pcm }, { "-raw", &detect_raw, &decode_pcm }, @@ -705,7 +616,7 @@ fe_mfcc_to_float(wtf->fe, frames, (float32 **)frames, nfr); for (i = 0; i < nfr; ++i) { for (j = 0; j < wtf->veclen; ++j) { - fprintf(wtf->outfh, "%.5g", frames[i][j]); + fprintf(wtf->outfh, "%.5g", MFCC2FLOAT(frames[i][j])); if (j == wtf->veclen - 1) fprintf(wtf->outfh, "\n"); else @@ -729,10 +640,14 @@ sphinx_wave2feat_t *wtf; int i; - wtf = ckd_calloc(1, sizeof(*wtf)); + wtf = (sphinx_wave2feat_t *)ckd_calloc(1, sizeof(*wtf)); wtf->refcount = 1; wtf->config = cmd_ln_retain(config); wtf->fe = fe_init_auto_r(wtf->config); + if (!wtf->fe) { + E_FATAL("Failed to create feature extraction\n"); + } + wtf->ot = outtypes; /* Default (sphinx) type. */ for (i = 0; i < nouttypes; ++i) { output_type_t const *otype = &outtypes[i]; @@ -792,7 +707,7 @@ static audio_type_t const * detect_audio_type(sphinx_wave2feat_t *wtf) { - audio_type_t const *atype; + audio_type_t const *atype = NULL; int i; /* Special case audio type for Sphinx MFCC inputs. */ @@ -843,11 +758,10 @@ char const *infile, char const *outfile) { int nchans, minfft, nfft, nfloat, veclen; - audio_type_t const *atype; + audio_type_t const *atype = NULL; int fshift, fsize; - if (cmd_ln_boolean_r(wtf->config, "-verbose")) - E_INFO("Converting %s to %s\n", infile, outfile); + E_INFO("Converting %s to %s\n", infile, outfile); wtf->infile = ckd_salloc(infile); @@ -889,14 +803,14 @@ (fsize + fshift) * nchans); wtf->blocksize = (fsize + fshift) * nchans; } - wtf->audio = ckd_calloc(wtf->blocksize, sizeof(*wtf->audio)); + wtf->audio = (short *)ckd_calloc(wtf->blocksize, sizeof(*wtf->audio)); wtf->featsize = (wtf->blocksize / nchans - fsize) / fshift; /* Use the maximum of the input and output frame sizes to allocate this. */ veclen = wtf->veclen; if (wtf->in_veclen > veclen) veclen = wtf->in_veclen; - - wtf->feat = ckd_calloc_2d(wtf->featsize, veclen, sizeof(**wtf->feat)); + + wtf->feat = (mfcc_t**)ckd_calloc_2d(wtf->featsize, veclen, sizeof(**wtf->feat)); /* Let's go! */ if ((wtf->outfh = fopen(outfile, "wb")) == NULL) { @@ -926,7 +840,7 @@ goto error_out; } } - + if (wtf->audio) ckd_free(wtf->audio); @@ -1013,7 +927,7 @@ hash_iter_t *itor; lineiter_t *li; FILE *ctlfh; - int nskip, runlen, npart, rv = 0; + int nskip, runlen, npart; if ((ctlfh = fopen(ctlfile, "r")) == NULL) { E_ERROR_SYSTEM("Failed to open control file %s", ctlfile); @@ -1065,12 +979,8 @@ build_filenames(wtf->config, li->buf, &infile, &outfile); if (hash_table_lookup(files, infile, NULL) == 0) continue; - rv = sphinx_wave2feat_convert_file(wtf, infile, outfile); + sphinx_wave2feat_convert_file(wtf, infile, outfile); hash_table_enter(files, infile, outfile); - if (rv != 0) { - lineiter_free(li); - break; - } } for (itor = hash_table_iter(files); itor; itor = hash_table_iter_next(itor)) { @@ -1078,10 +988,9 @@ ckd_free(hash_entry_val(itor->ent)); } hash_table_free(files); + fclose(ctlfh); - if (fclose(ctlfh) == EOF) - E_ERROR_SYSTEM("Failed to close control file"); - return rv; + return 0; } int @@ -1091,18 +1000,16 @@ cmd_ln_t *config; int rv; - /* Initialize config. */ - if ((config = cmd_ln_parse_r(NULL, defn, argc, argv, TRUE)) == NULL) - return 2; + config = cmd_ln_parse_r(NULL, defn, argc, argv, TRUE); - /* Parse an argument file if there's one in there. */ - if (cmd_ln_str_r(config, "-argfile")) + if (config && cmd_ln_str_r(config, "-argfile")) config = cmd_ln_parse_file_r(config, defn, cmd_ln_str_r(config, "-argfile"), FALSE); if (config == NULL) { E_ERROR("Command line parsing failed\n"); return 1; } + if ((wtf = sphinx_wave2feat_init(config)) == NULL) { E_ERROR("Failed to initialize wave2feat object\n"); return 1; diff -Nru sphinxbase-0.8/src/sphinx_jsgf2fsg/main.c sphinxbase-0.8+5prealpha/src/sphinx_jsgf2fsg/main.c --- sphinxbase-0.8/src/sphinx_jsgf2fsg/main.c 2012-12-05 14:06:04.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_jsgf2fsg/main.c 2015-03-24 17:26:36.000000000 +0000 @@ -54,7 +54,7 @@ NULL, "Input grammar in jsgf format (required)"}, - { "-rule", + { "-toprule", ARG_STRING, NULL, "Root rule name (optional)"}, @@ -86,7 +86,7 @@ static void usagemsg(char *pgm) { - E_INFO("Usage: %s -jsgf -rule \\\n", pgm); + E_INFO("Usage: %s -jsgf -toprule \\\n", pgm); E_INFOCONT("\t[-fsm yes/no] [-compile yes/no]\n"); E_INFOCONT("\t-fsg \n"); @@ -96,25 +96,31 @@ static fsg_model_t * get_fsg(jsgf_t *grammar, const char *name) { - jsgf_rule_iter_t *itor; - logmath_t *lmath = logmath_init(1.0001, 0, 0); - fsg_model_t *fsg = NULL; - - for (itor = jsgf_rule_iter(grammar); itor; - itor = jsgf_rule_iter_next(itor)) { - jsgf_rule_t *rule = jsgf_rule_iter_rule(itor); - char const *rule_name = jsgf_rule_name(rule); - - if ((name == NULL && jsgf_rule_public(rule)) - || (name && strlen(rule_name)-2 == strlen(name) && - 0 == strncmp(rule_name + 1, name, strlen(rule_name) - 2))) { - fsg = jsgf_build_fsg_raw(grammar, rule, logmath_retain(lmath), 1.0); - jsgf_rule_iter_free(itor); - break; + logmath_t *lmath; + fsg_model_t *fsg; + jsgf_rule_t *rule; + + /* Take the -toprule if specified. */ + if (name) { + rule = jsgf_get_rule(grammar, name); + if (rule == NULL) { + E_ERROR("Start rule %s not found\n", name); + return NULL; } + } else { + rule = jsgf_get_public_rule(grammar); + if (rule == NULL) { + E_ERROR("No public rules found in grammar %s\n", jsgf_grammar_name(grammar)); + return NULL; + } else { + E_INFO("No -toprule was given; grabbing the first public rule: " + "'%s' of the grammar '%s'.\n", + jsgf_rule_name(rule), jsgf_grammar_name(grammar)); + } } - logmath_free(lmath); + lmath = logmath_init(1.0001, 0, 0); + fsg = jsgf_build_fsg_raw(grammar, rule, lmath, 1.0); return fsg; } @@ -124,10 +130,11 @@ jsgf_t *jsgf; fsg_model_t *fsg; cmd_ln_t *config; + const char *rule; if ((config = cmd_ln_parse_r(NULL, defn, argc, argv, TRUE)) == NULL) return 1; - + if (cmd_ln_boolean_r(config, "-help")) { usagemsg(argv[0]); } @@ -137,8 +144,16 @@ return 1; } - fsg = get_fsg(jsgf, cmd_ln_str_r(config, "-rule") ? cmd_ln_str_r(config, "-rule") : NULL); - + rule = cmd_ln_str_r(config, "-toprule") ? cmd_ln_str_r(config, "-toprule") : NULL; + if (!(fsg = get_fsg(jsgf, rule))) { + E_ERROR("No fsg was built for the given rule '%s'.\n" + "Check rule name; it should be qualified (with grammar name)\n" + "and not enclosed in angle brackets (e.g. 'grammar.rulename').", + rule); + return 1; + } + + if (cmd_ln_boolean_r(config, "-compile")) { fsg_model_null_trans_closure(fsg, NULL); } @@ -172,7 +187,7 @@ #pragma comment(linker,"/entry:mainWCRTStartup") #include -//Windows Mobile has the Unicode main only +/* Windows Mobile has the Unicode main only */ int wmain(int32 argc, wchar_t *wargv[]) { char** argv; size_t wlen; @@ -180,14 +195,14 @@ int i; argv = malloc(argc*sizeof(char*)); - for (i=0; i&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -36,14 +80,14 @@ host_triplet = @host@ bin_PROGRAMS = sphinx_jsgf2fsg$(EXEEXT) subdir = src/sphinx_jsgf2fsg -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -57,26 +101,74 @@ sphinx_jsgf2fsg_OBJECTS = $(am_sphinx_jsgf2fsg_OBJECTS) sphinx_jsgf2fsg_DEPENDENCIES = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(sphinx_jsgf2fsg_SOURCES) DIST_SOURCES = $(sphinx_jsgf2fsg_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -90,6 +182,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -99,9 +192,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,15 +200,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -133,27 +223,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -186,14 +282,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -206,7 +305,7 @@ sphinx_jsgf2fsg_LDADD = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la -INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include +AM_CFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include EXTRA_DIST = fsg2dot.pl all: all-am @@ -221,9 +320,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/sphinx_jsgf2fsg/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/sphinx_jsgf2fsg/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/sphinx_jsgf2fsg/Makefile + $(AUTOMAKE) --foreign src/sphinx_jsgf2fsg/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -244,14 +343,19 @@ $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + 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|.*|.|' \ + 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 } \ @@ -272,7 +376,8 @@ @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)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -285,9 +390,10 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -sphinx_jsgf2fsg$(EXEEXT): $(sphinx_jsgf2fsg_OBJECTS) $(sphinx_jsgf2fsg_DEPENDENCIES) + +sphinx_jsgf2fsg$(EXEEXT): $(sphinx_jsgf2fsg_OBJECTS) $(sphinx_jsgf2fsg_DEPENDENCIES) $(EXTRA_sphinx_jsgf2fsg_DEPENDENCIES) @rm -f sphinx_jsgf2fsg$(EXEEXT) - $(LINK) $(sphinx_jsgf2fsg_OBJECTS) $(sphinx_jsgf2fsg_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(sphinx_jsgf2fsg_OBJECTS) $(sphinx_jsgf2fsg_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -298,25 +404,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -324,26 +430,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -355,15 +450,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -372,6 +463,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -423,10 +529,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -510,19 +621,19 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic clean-libtool ctags distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/sphinx_lmtools/Makefile.am sphinxbase-0.8+5prealpha/src/sphinx_lmtools/Makefile.am --- sphinxbase-0.8/src/sphinx_lmtools/Makefile.am 2012-12-05 14:06:03.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_lmtools/Makefile.am 2015-08-05 11:17:26.000000000 +0000 @@ -1,12 +1,9 @@ bin_PROGRAMS = sphinx_lm_eval sphinx_lm_convert -bin_SCRIPTS = sphinx_lm_sort -EXTRA_DIST = sphinx_lm_sort - LDADD = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ $(top_builddir)/src/libsphinxbase/lm/libsphinxlm.la -INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ +AM_CFLAGS =-I$(top_srcdir)/include -I$(top_builddir)/include \ -I$(top_srcdir)/src/libsphinxlm diff -Nru sphinxbase-0.8/src/sphinx_lmtools/Makefile.in sphinxbase-0.8+5prealpha/src/sphinx_lmtools/Makefile.in --- sphinxbase-0.8/src/sphinx_lmtools/Makefile.in 2012-12-12 17:28:54.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_lmtools/Makefile.in 2015-08-05 11:17:44.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,8 +14,52 @@ @SET_MAKE@ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,14 +80,14 @@ host_triplet = @host@ bin_PROGRAMS = sphinx_lm_eval$(EXEEXT) sphinx_lm_convert$(EXEEXT) subdir = src/sphinx_lmtools -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -52,7 +95,7 @@ $(top_builddir)/include/sphinx_config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" +am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) sphinx_lm_convert_SOURCES = sphinx_lm_convert.c sphinx_lm_convert_OBJECTS = sphinx_lm_convert.$(OBJEXT) @@ -60,54 +103,80 @@ sphinx_lm_convert_DEPENDENCIES = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ $(top_builddir)/src/libsphinxbase/lm/libsphinxlm.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = sphinx_lm_eval_SOURCES = sphinx_lm_eval.c sphinx_lm_eval_OBJECTS = sphinx_lm_eval.$(OBJEXT) sphinx_lm_eval_LDADD = $(LDADD) sphinx_lm_eval_DEPENDENCIES = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ $(top_builddir)/src/libsphinxbase/lm/libsphinxlm.la -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' -SCRIPTS = $(bin_SCRIPTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = sphinx_lm_convert.c sphinx_lm_eval.c DIST_SOURCES = sphinx_lm_convert.c sphinx_lm_eval.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -121,6 +190,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -130,9 +200,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -140,15 +208,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -164,27 +231,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -217,14 +290,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -233,13 +309,11 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -bin_SCRIPTS = sphinx_lm_sort -EXTRA_DIST = sphinx_lm_sort LDADD = \ $(top_builddir)/src/libsphinxbase/libsphinxbase.la \ $(top_builddir)/src/libsphinxbase/lm/libsphinxlm.la -INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ +AM_CFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include \ -I$(top_srcdir)/src/libsphinxlm all: all-am @@ -255,9 +329,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/sphinx_lmtools/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/sphinx_lmtools/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/sphinx_lmtools/Makefile + $(AUTOMAKE) --foreign src/sphinx_lmtools/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -278,14 +352,19 @@ $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + 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|.*|.|' \ + 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 } \ @@ -306,7 +385,8 @@ @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)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -319,46 +399,14 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -sphinx_lm_convert$(EXEEXT): $(sphinx_lm_convert_OBJECTS) $(sphinx_lm_convert_DEPENDENCIES) + +sphinx_lm_convert$(EXEEXT): $(sphinx_lm_convert_OBJECTS) $(sphinx_lm_convert_DEPENDENCIES) $(EXTRA_sphinx_lm_convert_DEPENDENCIES) @rm -f sphinx_lm_convert$(EXEEXT) - $(LINK) $(sphinx_lm_convert_OBJECTS) $(sphinx_lm_convert_LDADD) $(LIBS) -sphinx_lm_eval$(EXEEXT): $(sphinx_lm_eval_OBJECTS) $(sphinx_lm_eval_DEPENDENCIES) - @rm -f sphinx_lm_eval$(EXEEXT) - $(LINK) $(sphinx_lm_eval_OBJECTS) $(sphinx_lm_eval_LDADD) $(LIBS) -install-binSCRIPTS: $(bin_SCRIPTS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n' \ - -e 'h;s|.*|.|' \ - -e 'p;x;s,.*/,,;$(transform)' | 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; \ - if (++n[d] == $(am__install_max)) { \ - print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ - else { print "f", d "/" $$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_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done + $(AM_V_CCLD)$(LINK) $(sphinx_lm_convert_OBJECTS) $(sphinx_lm_convert_LDADD) $(LIBS) -uninstall-binSCRIPTS: - @$(NORMAL_UNINSTALL) - @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 's,.*/,,;$(transform)'`; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files +sphinx_lm_eval$(EXEEXT): $(sphinx_lm_eval_OBJECTS) $(sphinx_lm_eval_DEPENDENCIES) $(EXTRA_sphinx_lm_eval_DEPENDENCIES) + @rm -f sphinx_lm_eval$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sphinx_lm_eval_OBJECTS) $(sphinx_lm_eval_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -370,25 +418,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sphinx_lm_eval.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -396,26 +444,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -427,15 +464,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -444,6 +477,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -480,9 +528,9 @@ done check-am: all-am check: check-am -all-am: Makefile $(PROGRAMS) $(SCRIPTS) +all-am: Makefile $(PROGRAMS) installdirs: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \ + for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -495,10 +543,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -538,7 +591,7 @@ install-dvi-am: -install-exec-am: install-binPROGRAMS install-binSCRIPTS +install-exec-am: install-binPROGRAMS install-html: install-html-am @@ -578,24 +631,23 @@ ps-am: -uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS +uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic clean-libtool ctags distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-binSCRIPTS install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-binPROGRAMS \ - uninstall-binSCRIPTS + tags tags-am uninstall uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/src/sphinx_lmtools/sphinx_lm_convert.c sphinxbase-0.8+5prealpha/src/sphinx_lmtools/sphinx_lm_convert.c --- sphinxbase-0.8/src/sphinx_lmtools/sphinx_lm_convert.c 2012-12-05 14:06:03.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_lmtools/sphinx_lm_convert.c 2015-07-05 00:26:49.000000000 +0000 @@ -81,16 +81,6 @@ NULL, "Output language model file (will guess if not specified)"}, - { "-ienc", - ARG_STRING, - NULL, - "Input language model text encoding (no conversion done if not specified)"}, - - { "-oenc", - ARG_STRING, - "utf8", - "Output language model text encoding"}, - { "-case", ARG_STRING, NULL, @@ -101,6 +91,11 @@ "no", "Use memory-mapped I/O for reading binary LM files"}, + { "-lm_trie", + ARG_BOOLEAN, + "no", + "Whether trie structure should be used for model holding during convertion"}, + { "-debug", ARG_INT32, NULL, @@ -182,17 +177,6 @@ otype = ngram_file_name_to_type(cmd_ln_str_r(config, "-o")); } - /* Recode the language model if desired. */ - if (cmd_ln_str_r(config, "-ienc")) { - if (ngram_model_recode(lm, cmd_ln_str_r(config, "-ienc"), - cmd_ln_str_r(config, "-oenc")) != 0) { - E_ERROR("Failed to recode language model from %s to %s\n", - cmd_ln_str_r(config, "-ienc"), - cmd_ln_str_r(config, "-oenc")); - goto error_out; - } - } - /* Case fold if requested. */ if ((kase = cmd_ln_str_r(config, "-case"))) { if (0 == strcmp(kase, "lower")) { @@ -216,9 +200,21 @@ /* That's all folks! */ ngram_model_free(lm); + if (lmath) { + logmath_free(lmath); + } + if (config) { + cmd_ln_free_r(config); + } return 0; error_out: ngram_model_free(lm); + if (lmath) { + logmath_free(lmath); + } + if (config) { + cmd_ln_free_r(config); + } return 1; } diff -Nru sphinxbase-0.8/src/sphinx_lmtools/sphinx_lm_eval.c sphinxbase-0.8+5prealpha/src/sphinx_lmtools/sphinx_lm_eval.c --- sphinxbase-0.8/src/sphinx_lmtools/sphinx_lm_eval.c 2012-12-05 14:06:03.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_lmtools/sphinx_lm_eval.c 2015-07-05 00:26:49.000000000 +0000 @@ -105,11 +105,6 @@ "1.0", "Word insertion probability" }, - { "-uw", - ARG_FLOAT32, - "1.0", - "Unigram probability weight (interpolated with uniform distribution)"}, - { "-verbose", ARG_BOOLEAN, "no", @@ -202,7 +197,7 @@ /* We have to keep ch in floating-point to avoid overflows, so * we might as well use log2. */ log_to_log2 = log(logmath_get_base(lmath)) / log(2); - nccs = noovs = nwords = 0; + lscr = nccs = noovs = nwords = 0; ch = 0.0; for (litor = lineiter_start(fh); litor; litor = lineiter_next(litor)) { char **words; @@ -313,8 +308,7 @@ ngram_model_read_classdef(lm, probdefn); ngram_model_apply_weights(lm, cmd_ln_float32_r(config, "-lw"), - cmd_ln_float32_r(config, "-wip"), - cmd_ln_float32_r(config, "-uw")); + cmd_ln_float32_r(config, "-wip")); /* Now evaluate some text. */ lsnfn = cmd_ln_str_r(config, "-lsn"); diff -Nru sphinxbase-0.8/src/sphinx_lmtools/sphinx_lm_sort sphinxbase-0.8+5prealpha/src/sphinx_lmtools/sphinx_lm_sort --- sphinxbase-0.8/src/sphinx_lmtools/sphinx_lm_sort 2012-12-05 14:06:03.000000000 +0000 +++ sphinxbase-0.8+5prealpha/src/sphinx_lmtools/sphinx_lm_sort 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -#!/usr/bin/env perl -use strict; - -if ($ARGV[0] eq '-h' or $ARGV[0] eq '-?' or $ARGV[0] eq '--help') { - print "Usage: $0 < INPUT_LM > OUTPUT_LM\n"; - print "\n\tThis program reads an ARPA-format language model and"; - print "\n\tsorts the N-Grams into the order required by Sphinx."; - print "\n\tIt also replaces 'missing' (actually nonexistent)"; - print "\n\tbackoff weights with dummy values in order to satisfy"; - print "\n\tall versions of Sphinx.\n"; - exit 0; -} - -sub print_sorted_ngrams { - my ($print_bo, $grams) = @_; - @$grams = sort {$a->[0] cmp $b->[0]} @$grams; - foreach my $g (@$grams) { - my ($gram, $prob, $bo) = @$g; - if ($print_bo) { - printf("%.4f %s %.4f\n", $prob, $gram, $bo); - } - else { - printf("%.4f %s\n", $prob, $gram); - } - } - print "\n"; -} - -my $in_data; -my ($n, @ngrams); -while (<>) { - if (/^\\data\\/) { - print; - $in_data = 1; - next; - } - unless ($in_data) { - print; - next; - } - if (/ngram (\d+)=(\d+)/) { - print; - next; - } - if (/\\(\d+)-grams:/) { - print_sorted_ngrams(1,\@ngrams); - $n = $1; - @ngrams = (); - print; - next; - } - unless (defined($n)) { - print; - next; - } - if (/^\\end\\/) { - print_sorted_ngrams(0,\@ngrams); - undef $n; - print; - next; - } - my (@parts) = split; - unless (@parts) { - next; - } - my $prob = shift @parts; - my $bo = 0; - if (@parts == $n + 1) { - $bo = pop @parts; - } - push @ngrams, ["@parts", $prob, $bo]; -} diff -Nru sphinxbase-0.8/swig/cmd_ln.i sphinxbase-0.8+5prealpha/swig/cmd_ln.i --- sphinxbase-0.8/swig/cmd_ln.i 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/cmd_ln.i 2015-03-24 17:26:37.000000000 +0000 @@ -0,0 +1,79 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + +%extend Config { + + ~Config() { + cmd_ln_free_r($self); + } + + void set_boolean(const char *key, bool val) { + cmd_ln_set_boolean_r($self, key, val); + } + + void set_int(const char *key, int val) { + cmd_ln_set_int_r($self, key, val); + } + + void set_float(const char *key, double val) { + cmd_ln_set_float_r($self, key, val); + } + + void set_string(const char *key, const char *val) { + cmd_ln_set_str_r($self, key, val); + } + + bool exists(const char *key) { + return cmd_ln_exists_r($self, key); + } + + bool get_boolean(const char *key) { + return cmd_ln_boolean_r($self, key); + } + + int get_int(const char *key) { + return cmd_ln_int_r($self, key); + } + + double get_float(const char *key) { + return cmd_ln_float_r($self, key); + } + + const char *get_string(const char *key) { + return cmd_ln_str_r($self, key); + } +} diff -Nru sphinxbase-0.8/swig/feat.i sphinxbase-0.8+5prealpha/swig/feat.i --- sphinxbase-0.8/swig/feat.i 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/feat.i 2015-03-24 17:26:37.000000000 +0000 @@ -0,0 +1,47 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + + +%extend Feature { + Feature(feat_t *ptr) { + return ptr; + } + + ~Feature() { + feat_free($self); + } +}; diff -Nru sphinxbase-0.8/swig/fe.i sphinxbase-0.8+5prealpha/swig/fe.i --- sphinxbase-0.8/swig/fe.i 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/fe.i 2015-05-02 16:36:01.000000000 +0000 @@ -0,0 +1,67 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + + +%extend FrontEnd { + FrontEnd(fe_t *ptr) { + return ptr; + } + + ~FrontEnd() { + fe_free($self); + } + + int output_size() { + return fe_get_output_size($self); + } + + void start_utt(int *errcode) { + *errcode = fe_start_utt($self); + } + + int32 process_utt(const int16 *spch, size_t nsamps, mfcc_t ***cep_block, int *errcode) { + int32 nframes; + *errcode = fe_process_utt($self, spch, nsamps, cep_block, &nframes); + return nframes; + } + + int32 end_utt(mfcc_t *out_cepvector, int *errcode) { + int32 nframes; + *errcode = fe_end_utt($self, out_cepvector, &nframes); + return nframes; + } +} diff -Nru sphinxbase-0.8/swig/fsg_model.i sphinxbase-0.8+5prealpha/swig/fsg_model.i --- sphinxbase-0.8/swig/fsg_model.i 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/fsg_model.i 2015-05-02 16:55:57.000000000 +0000 @@ -0,0 +1,89 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + + +// TODO: search for functions returning error code +%extend FsgModel { + + FsgModel(const char *name, LogMath *logmath, float lw, int32 n) { + return fsg_model_init(name, logmath, lw, n); + } + + FsgModel(fsg_model_t *ptr) { + return ptr; + } + + FsgModel(const char *path, LogMath *logmath, float lw) { + return fsg_model_readfile(path, logmath, lw); + } + + ~FsgModel() { + fsg_model_free($self); + } + + int word_id(const char *word) { + return fsg_model_word_id($self, word); + } + + int word_add(const char *word) { + return fsg_model_word_add($self, word); + } + + void trans_add(int32 src, int32 dst, int32 logp, int32 wid) { + fsg_model_trans_add($self, src, dst, logp, wid); + } + + int32 null_trans_add(int32 src, int32 dst, int32 logp) { + return fsg_model_null_trans_add($self, src, dst, logp); + } + + int32 tag_trans_add(int32 src, int32 dst, int32 logp, int32 wid) { + return fsg_model_tag_trans_add($self, src, dst, logp, wid); + } + + int add_silence(const char *silword, int state, int32 silprob) { + return fsg_model_add_silence($self, silword, state, silprob); + } + + int add_alt(const char *baseword, const char *altword) { + return fsg_model_add_alt($self, baseword, altword); + } + + void writefile(const char *path) { + fsg_model_writefile($self, path); + } +} diff -Nru sphinxbase-0.8/swig/iterators.i sphinxbase-0.8+5prealpha/swig/iterators.i --- sphinxbase-0.8/swig/iterators.i 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/iterators.i 2015-05-02 17:39:04.000000000 +0000 @@ -0,0 +1,166 @@ +// Macro to construct iterable objects. +%define sb_iterator(TYPE, PREFIX, VALUE_TYPE) + +#if SWIGJAVA +%typemap(javainterfaces) TYPE##Iterator "java.util.Iterator<"#VALUE_TYPE">" +%typemap(javabody) TYPE##Iterator %{ + + private long swigCPtr; + protected boolean swigCMemOwn; + + public $javaclassname(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + public static long getCPtr($javaclassname obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } +%} +#endif + +// Basic types + +%inline %{ +typedef struct { + PREFIX##_t *ptr; +} TYPE##Iterator; +%} + +// Exception to end iteration + +#if SWIGJAVA +%exception TYPE##Iterator##::next() { + if (!arg1->ptr) { + jclass cls = (*jenv)->FindClass(jenv, "java/util/NoSuchElementException"); + (*jenv)->ThrowNew(jenv, cls, NULL); + return $null; + } + $action; +} +#elif SWIGPYTHON +%exception TYPE##Iterator##::next() { + if (!arg1->ptr) { + SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); + SWIG_fail; + } + $action; +} +%exception TYPE##Iterator##::__next__() { + if (!arg1->ptr) { + SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); + SWIG_fail; + } + $action; +} +#endif + +// Implementation of the iterator itself + +%extend TYPE##Iterator { + TYPE##Iterator(PREFIX##_t *ptr) { + TYPE##Iterator *iter = ckd_malloc(sizeof *iter); + iter->ptr = ptr; + return iter; + } + + ~TYPE##Iterator() { + if ($self->ptr) + PREFIX##_free($self->ptr); + ckd_free($self); + } + +#if SWIGJAVA + %newobject next; + VALUE_TYPE * next() { + if ($self->ptr) { + VALUE_TYPE *value = ##VALUE_TYPE##_fromIter($self->ptr); + $self->ptr = ##PREFIX##_next($self->ptr); + return value; + } + + return NULL; + } + bool hasNext() { + return $self->ptr != NULL; + } +#endif +#if SWIGPYTHON + + // Python2 + %newobject next; + VALUE_TYPE * next() { + if ($self->ptr) { + VALUE_TYPE *value = ##VALUE_TYPE##_fromIter($self->ptr); + $self->ptr = ##PREFIX##_next($self->ptr); + return value; + } + return NULL; + } + + // Python3 + %newobject __next__; + VALUE_TYPE * __next__() { + if ($self->ptr) { + VALUE_TYPE *value = ##VALUE_TYPE##_fromIter($self->ptr); + $self->ptr = ##PREFIX##_next($self->ptr); + return value; + } + return NULL; + } +#endif + +} + +%enddef + + +%define sb_iterable(TYPE, PREFIX, VALUE_TYPE) + +// Methods to retrieve the iterator from the container + +%extend TYPE { + // Also used in Java, but underscores are automatically removed + TYPE##Iterator * __iter__() { + return new_##TYPE##Iterator(PREFIX##($self)); + } +} + +sb_iterable_java(TYPE, VALUE_TYPE) + +%enddef + +%define sb_iterable_java(TYPE, VALUE_TYPE) + +// Same but without __iter__ which can vary from class to class + +#if SWIGJAVA +%typemap(javainterfaces) TYPE "Iterable<"#VALUE_TYPE">" +%typemap(javabody) TYPE %{ + + private long swigCPtr; + protected boolean swigCMemOwn; + + public $javaclassname(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + public static long getCPtr($javaclassname obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @Override + public java.util.Iterator iterator () { + return iter(); + } +%} +%javamethodmodifiers TYPE::__iter__ "private"; +#endif + +%enddef diff -Nru sphinxbase-0.8/swig/jsgf.i sphinxbase-0.8+5prealpha/swig/jsgf.i --- sphinxbase-0.8/swig/jsgf.i 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/jsgf.i 2015-03-24 17:26:37.000000000 +0000 @@ -0,0 +1,92 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + + +%extend Jsgf { +#if SWIGJAVA + %rename(name) getName; +#endif + + Jsgf(const char *path) { + return jsgf_parse_file(path, NULL); + } + + ~Jsgf() { + jsgf_grammar_free($self); + } + + const char * name() { + return jsgf_grammar_name($self); + } + + JsgfRule * get_rule(const char *name) { + return jsgf_get_rule($self, name); + } + + FsgModel * build_fsg(JsgfRule *rule, LogMath *logmath, float lw) { + return jsgf_build_fsg($self, rule, logmath, lw); + } +} + +%extend JsgfRule { +#if SWIGJAVA + %rename(getName) name; + %rename(isPublic) public; + + %javamethodmodifiers JsgfRule "private"; +#endif + + JsgfRule() { + return NULL; + } + + ~JsgfRule() { + } + + static JsgfRule * fromIter(jsgf_rule_iter_t *itor) { + return jsgf_rule_iter_rule(itor); + } + + const char * name() { + return jsgf_rule_name($self); + } + + bool public() { + return jsgf_rule_public($self); + } +} + diff -Nru sphinxbase-0.8/swig/logmath.i sphinxbase-0.8+5prealpha/swig/logmath.i --- sphinxbase-0.8/swig/logmath.i 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/logmath.i 2015-03-24 17:26:37.000000000 +0000 @@ -0,0 +1,51 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + + +%extend LogMath { + LogMath() { + return logmath_init(1.0001f, 0, 0); + } + + LogMath(logmath_t *ptr) { + return ptr; + } + + ~LogMath() { + logmath_free($self); + } +} diff -Nru sphinxbase-0.8/swig/Makefile.am sphinxbase-0.8+5prealpha/swig/Makefile.am --- sphinxbase-0.8/swig/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/Makefile.am 2015-03-24 17:26:37.000000000 +0000 @@ -0,0 +1,14 @@ +SUBDIRS = python + +swigdir = $(datadir)/@PACKAGE@/swig +dist_swig_DATA = \ + cmd_ln.i \ + fe.i \ + feat.i \ + fsg_model.i \ + jsgf.i \ + iterators.i \ + logmath.i \ + ngram_model.i \ + sphinxbase.i \ + typemaps.i diff -Nru sphinxbase-0.8/swig/Makefile.in sphinxbase-0.8+5prealpha/swig/Makefile.in --- sphinxbase-0.8/swig/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -0,0 +1,694 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = swig +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(dist_swig_DATA) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/include/config.h \ + $(top_builddir)/include/sphinx_config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(swigdir)" +DATA = $(dist_swig_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +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@ +PYTHON = @PYTHON@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ +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_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ad_cppflags = @ad_cppflags@ +ad_files = @ad_files@ +ad_libs = @ad_libs@ +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@ +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@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = python +swigdir = $(datadir)/@PACKAGE@/swig +dist_swig_DATA = \ + cmd_ln.i \ + fe.i \ + feat.i \ + fsg_model.i \ + jsgf.i \ + iterators.i \ + logmath.i \ + ngram_model.i \ + sphinxbase.i \ + typemaps.i + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign swig/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign swig/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-dist_swigDATA: $(dist_swig_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_swig_DATA)'; test -n "$(swigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(swigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(swigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(swigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(swigdir)" || exit $$?; \ + done + +uninstall-dist_swigDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_swig_DATA)'; test -n "$(swigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(swigdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(swigdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-dist_swigDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-dist_swigDATA + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-dist_swigDATA install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-dist_swigDATA + + +# 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: diff -Nru sphinxbase-0.8/swig/ngram_model.i sphinxbase-0.8+5prealpha/swig/ngram_model.i --- sphinxbase-0.8/swig/ngram_model.i 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/ngram_model.i 2015-03-24 17:26:37.000000000 +0000 @@ -0,0 +1,127 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES 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. + * + * ==================================================================== + * + */ + + +%extend NGramModel { + + static NGramModel *fromIter(ngram_model_set_iter_t *itor) { + const char *name; + return ngram_model_set_iter_model(itor, &name); + } + + NGramModel(const char *path) { + logmath_t *lmath = logmath_init(1.0001, 0, 0); + ngram_model_t * model = ngram_model_read(NULL, path, NGRAM_AUTO, lmath); + logmath_free(lmath); + return model; + } + + NGramModel(Config *config, LogMath *logmath, const char *path) { + return ngram_model_read(config, path, NGRAM_AUTO, logmath); + } + + ~NGramModel() { + ngram_model_free($self); + } + + void write(const char *path, ngram_file_type_t ftype, int *errcode) { + *errcode = ngram_model_write($self, path, ftype); + } + + ngram_file_type_t str_to_type(const char *str) { + return ngram_str_to_type(str); + } + + const char * type_to_str(int type) { + return ngram_type_to_str(type); + } + + void casefold(int kase, int *errcode) { + *errcode = ngram_model_casefold($self, kase); + } + + int32 size() { + return ngram_model_get_size($self); + } + + int32 add_word(const char *word, float32 weight) { + return ngram_model_add_word($self, word, weight); + } + + int32 add_class(const char *c, float32 w, size_t n, char **ptr, + const float32 *weights) + { + return ngram_model_add_class($self, c, w, ptr, weights, n); + } + + int32 prob(size_t n, const char * const*ptr) { + return ngram_prob($self, ptr, n); + } +} + +// TODO: shares ptr type with NGramModel, docstrings are not generated +%extend NGramModelSet { + NGramModelSet(Config *config, LogMath *logmath, const char *path) { + return ngram_model_set_read(config, path, logmath); + } + + ~NGramModelSet() { + ngram_model_free($self); + } + + int32 count() { + return ngram_model_set_count($self); + } + + NGramModel * add( + NGramModel *model, const char *name, float weight, bool reuse_widmap) { + return ngram_model_set_add($self, model, name, weight, reuse_widmap); + } + + NGramModel * select(const char *name) { + return ngram_model_set_select($self, name); + } + + NGramModel * lookup(const char *name) { + return ngram_model_set_lookup($self, name); + } + + const char * current() { + return ngram_model_set_current($self); + } +} + diff -Nru sphinxbase-0.8/swig/python/__init__.py sphinxbase-0.8+5prealpha/swig/python/__init__.py --- sphinxbase-0.8/swig/python/__init__.py 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/python/__init__.py 2015-05-14 19:36:42.000000000 +0000 @@ -0,0 +1,37 @@ +# -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +# ==================================================================== +# Copyright (c) 2013 Carnegie Mellon University. All rights +# reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# +# This work was supported in part by funding from the Defense Advanced +# Research Projects Agency and the National Science Foundation of the +# United States of America, and the CMU Sphinx Speech Consortium. +# +# THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND +# ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY +# NOR ITS EMPLOYEES 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. +# +# ==================================================================== + + +from sphinxbase import * diff -Nru sphinxbase-0.8/swig/python/Makefile.am sphinxbase-0.8+5prealpha/swig/python/Makefile.am --- sphinxbase-0.8/swig/python/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/python/Makefile.am 2015-05-14 19:36:42.000000000 +0000 @@ -0,0 +1,42 @@ +if BUILD_SWIG + +SWIG_FLAGS = -I$(top_srcdir)/include + +SWIG_DIR = $(top_srcdir)/swig + +SWIG_FILES = \ + $(SWIG_DIR)/sphinxbase.i \ + $(SWIG_DIR)/cmd_ln.i \ + $(SWIG_DIR)/fe.i \ + $(SWIG_DIR)/feat.i \ + $(SWIG_DIR)/jsgf.i \ + $(SWIG_DIR)/fsg_model.i \ + $(SWIG_DIR)/ngram_model.i \ + $(SWIG_DIR)/iterators.i \ + $(SWIG_DIR)/typemaps.i + +if BUILD_DOXYGEN +SWIG_FLAGS += -DHAS_DOC -I$(top_builddir)/doc +SWIG_FILES += $(top_builddir)/doc/pydoc.i +endif + +CLEANFILES = sphinxbase_wrap.c sphinxbase.py sphinxbase.pyc + +nodist_pkgpyexec_PYTHON = sphinxbase.py +pkgpyexec_PYTHON = __init__.py +pkgpyexec_LTLIBRARIES = _sphinxbase.la +nodist__sphinxbase_la_SOURCES = sphinxbase_wrap.c + +_sphinxbase_la_CPPFLAGS = \ + $(PYTHON_CPPFLAGS) \ + -I$(top_srcdir)/include \ + -D_DATADIR=\"$(datadir)/@PACKAGE@\" \ + -Wno-unused-value + +_sphinxbase_la_LDFLAGS = -module +_sphinxbase_la_LIBADD = $(top_builddir)/src/libsphinxbase/libsphinxbase.la + +sphinxbase_wrap.c: $(SWIG_FILES) + $(SWIG) $(SWIG_FLAGS) -outdir . -o $@ -python $< + +endif diff -Nru sphinxbase-0.8/swig/python/Makefile.in sphinxbase-0.8+5prealpha/swig/python/Makefile.in --- sphinxbase-0.8/swig/python/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/python/Makefile.in 2015-05-14 19:36:54.000000000 +0000 @@ -0,0 +1,795 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@BUILD_DOXYGEN_TRUE@@BUILD_SWIG_TRUE@am__append_1 = -DHAS_DOC -I$(top_builddir)/doc +@BUILD_DOXYGEN_TRUE@@BUILD_SWIG_TRUE@am__append_2 = $(top_builddir)/doc/pydoc.i +subdir = swig/python +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(am__pkgpyexec_PYTHON_DIST) \ + $(top_srcdir)/py-compile +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/include/config.h \ + $(top_builddir)/include/sphinx_config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgpyexecdir)" \ + "$(DESTDIR)$(pkgpyexecdir)" "$(DESTDIR)$(pkgpyexecdir)" +LTLIBRARIES = $(pkgpyexec_LTLIBRARIES) +@BUILD_SWIG_TRUE@_sphinxbase_la_DEPENDENCIES = $(top_builddir)/src/libsphinxbase/libsphinxbase.la +@BUILD_SWIG_TRUE@nodist__sphinxbase_la_OBJECTS = \ +@BUILD_SWIG_TRUE@ _sphinxbase_la-sphinxbase_wrap.lo +_sphinxbase_la_OBJECTS = $(nodist__sphinxbase_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +_sphinxbase_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(_sphinxbase_la_LDFLAGS) $(LDFLAGS) -o \ + $@ +@BUILD_SWIG_TRUE@am__sphinxbase_la_rpath = -rpath $(pkgpyexecdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(nodist__sphinxbase_la_SOURCES) +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile) +am__pep3147_tweak = \ + sed -e 's|\.py$$||' -e 's|[^/]*$$|__pycache__/&.*.py|' +am__pkgpyexec_PYTHON_DIST = __init__.py +py_compile = $(top_srcdir)/py-compile +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +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@ +PYTHON = @PYTHON@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ +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_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ad_cppflags = @ad_cppflags@ +ad_files = @ad_files@ +ad_libs = @ad_libs@ +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@ +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@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@BUILD_SWIG_TRUE@SWIG_FLAGS = -I$(top_srcdir)/include $(am__append_1) +@BUILD_SWIG_TRUE@SWIG_DIR = $(top_srcdir)/swig +@BUILD_SWIG_TRUE@SWIG_FILES = $(SWIG_DIR)/sphinxbase.i \ +@BUILD_SWIG_TRUE@ $(SWIG_DIR)/cmd_ln.i $(SWIG_DIR)/fe.i \ +@BUILD_SWIG_TRUE@ $(SWIG_DIR)/feat.i $(SWIG_DIR)/jsgf.i \ +@BUILD_SWIG_TRUE@ $(SWIG_DIR)/fsg_model.i \ +@BUILD_SWIG_TRUE@ $(SWIG_DIR)/ngram_model.i \ +@BUILD_SWIG_TRUE@ $(SWIG_DIR)/iterators.i \ +@BUILD_SWIG_TRUE@ $(SWIG_DIR)/typemaps.i $(am__append_2) +@BUILD_SWIG_TRUE@CLEANFILES = sphinxbase_wrap.c sphinxbase.py sphinxbase.pyc +@BUILD_SWIG_TRUE@nodist_pkgpyexec_PYTHON = sphinxbase.py +@BUILD_SWIG_TRUE@pkgpyexec_PYTHON = __init__.py +@BUILD_SWIG_TRUE@pkgpyexec_LTLIBRARIES = _sphinxbase.la +@BUILD_SWIG_TRUE@nodist__sphinxbase_la_SOURCES = sphinxbase_wrap.c +@BUILD_SWIG_TRUE@_sphinxbase_la_CPPFLAGS = \ +@BUILD_SWIG_TRUE@ $(PYTHON_CPPFLAGS) \ +@BUILD_SWIG_TRUE@ -I$(top_srcdir)/include \ +@BUILD_SWIG_TRUE@ -D_DATADIR=\"$(datadir)/@PACKAGE@\" \ +@BUILD_SWIG_TRUE@ -Wno-unused-value + +@BUILD_SWIG_TRUE@_sphinxbase_la_LDFLAGS = -module +@BUILD_SWIG_TRUE@_sphinxbase_la_LIBADD = $(top_builddir)/src/libsphinxbase/libsphinxbase.la +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign swig/python/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign swig/python/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-pkgpyexecLTLIBRARIES: $(pkgpyexec_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(pkgpyexec_LTLIBRARIES)'; test -n "$(pkgpyexecdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgpyexecdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgpyexecdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgpyexecdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgpyexecdir)"; \ + } + +uninstall-pkgpyexecLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(pkgpyexec_LTLIBRARIES)'; test -n "$(pkgpyexecdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgpyexecdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgpyexecdir)/$$f"; \ + done + +clean-pkgpyexecLTLIBRARIES: + -test -z "$(pkgpyexec_LTLIBRARIES)" || rm -f $(pkgpyexec_LTLIBRARIES) + @list='$(pkgpyexec_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +_sphinxbase.la: $(_sphinxbase_la_OBJECTS) $(_sphinxbase_la_DEPENDENCIES) $(EXTRA__sphinxbase_la_DEPENDENCIES) + $(AM_V_CCLD)$(_sphinxbase_la_LINK) $(am__sphinxbase_la_rpath) $(_sphinxbase_la_OBJECTS) $(_sphinxbase_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_sphinxbase_la-sphinxbase_wrap.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +_sphinxbase_la-sphinxbase_wrap.lo: sphinxbase_wrap.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_sphinxbase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT _sphinxbase_la-sphinxbase_wrap.lo -MD -MP -MF $(DEPDIR)/_sphinxbase_la-sphinxbase_wrap.Tpo -c -o _sphinxbase_la-sphinxbase_wrap.lo `test -f 'sphinxbase_wrap.c' || echo '$(srcdir)/'`sphinxbase_wrap.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/_sphinxbase_la-sphinxbase_wrap.Tpo $(DEPDIR)/_sphinxbase_la-sphinxbase_wrap.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sphinxbase_wrap.c' object='_sphinxbase_la-sphinxbase_wrap.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_sphinxbase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o _sphinxbase_la-sphinxbase_wrap.lo `test -f 'sphinxbase_wrap.c' || echo '$(srcdir)/'`sphinxbase_wrap.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-nodist_pkgpyexecPYTHON: $(nodist_pkgpyexec_PYTHON) + @$(NORMAL_INSTALL) + @list='$(nodist_pkgpyexec_PYTHON)'; dlist=; list2=; test -n "$(pkgpyexecdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgpyexecdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgpyexecdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ + if test -f $$b$$p; then \ + $(am__strip_dir) \ + dlist="$$dlist $$f"; \ + list2="$$list2 $$b$$p"; \ + else :; fi; \ + done; \ + for file in $$list2; do echo $$file; done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgpyexecdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgpyexecdir)" || exit $$?; \ + done || exit $$?; \ + if test -n "$$dlist"; then \ + $(am__py_compile) --destdir "$(DESTDIR)" \ + --basedir "$(pkgpyexecdir)" $$dlist; \ + else :; fi + +uninstall-nodist_pkgpyexecPYTHON: + @$(NORMAL_UNINSTALL) + @list='$(nodist_pkgpyexec_PYTHON)'; test -n "$(pkgpyexecdir)" || list=; \ + py_files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$py_files" || exit 0; \ + dir='$(DESTDIR)$(pkgpyexecdir)'; \ + pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \ + pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \ + py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \ + echo "$$py_files_pep3147";\ + pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \ + pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \ + st=0; \ + for files in \ + "$$py_files" \ + "$$pyc_files" \ + "$$pyo_files" \ + "$$pyc_files_pep3147" \ + "$$pyo_files_pep3147" \ + ; do \ + $(am__uninstall_files_from_dir) || st=$$?; \ + done; \ + exit $$st +install-pkgpyexecPYTHON: $(pkgpyexec_PYTHON) + @$(NORMAL_INSTALL) + @list='$(pkgpyexec_PYTHON)'; dlist=; list2=; test -n "$(pkgpyexecdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgpyexecdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgpyexecdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ + if test -f $$b$$p; then \ + $(am__strip_dir) \ + dlist="$$dlist $$f"; \ + list2="$$list2 $$b$$p"; \ + else :; fi; \ + done; \ + for file in $$list2; do echo $$file; done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgpyexecdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgpyexecdir)" || exit $$?; \ + done || exit $$?; \ + if test -n "$$dlist"; then \ + $(am__py_compile) --destdir "$(DESTDIR)" \ + --basedir "$(pkgpyexecdir)" $$dlist; \ + else :; fi + +uninstall-pkgpyexecPYTHON: + @$(NORMAL_UNINSTALL) + @list='$(pkgpyexec_PYTHON)'; test -n "$(pkgpyexecdir)" || list=; \ + py_files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$py_files" || exit 0; \ + dir='$(DESTDIR)$(pkgpyexecdir)'; \ + pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \ + pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \ + py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \ + echo "$$py_files_pep3147";\ + pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \ + pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \ + st=0; \ + for files in \ + "$$py_files" \ + "$$pyc_files" \ + "$$pyo_files" \ + "$$pyc_files_pep3147" \ + "$$pyo_files_pep3147" \ + ; do \ + $(am__uninstall_files_from_dir) || st=$$?; \ + done; \ + exit $$st + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(pkgpyexecdir)" "$(DESTDIR)$(pkgpyexecdir)" "$(DESTDIR)$(pkgpyexecdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +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 clean-pkgpyexecLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-nodist_pkgpyexecPYTHON \ + install-pkgpyexecLTLIBRARIES install-pkgpyexecPYTHON + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-nodist_pkgpyexecPYTHON \ + uninstall-pkgpyexecLTLIBRARIES uninstall-pkgpyexecPYTHON + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pkgpyexecLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-nodist_pkgpyexecPYTHON \ + install-pdf install-pdf-am install-pkgpyexecLTLIBRARIES \ + install-pkgpyexecPYTHON install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-nodist_pkgpyexecPYTHON \ + uninstall-pkgpyexecLTLIBRARIES uninstall-pkgpyexecPYTHON + + +@BUILD_SWIG_TRUE@sphinxbase_wrap.c: $(SWIG_FILES) +@BUILD_SWIG_TRUE@ $(SWIG) $(SWIG_FLAGS) -outdir . -o $@ -python $< + +# 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: diff -Nru sphinxbase-0.8/swig/sphinxbase.i sphinxbase-0.8+5prealpha/swig/sphinxbase.i --- sphinxbase-0.8/swig/sphinxbase.i 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/sphinxbase.i 2015-05-02 16:34:41.000000000 +0000 @@ -0,0 +1,123 @@ +/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* ==================================================================== + * Copyright (c) 2013 Carnegie Mellon University. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * This work was supported in part by funding from the Defense Advanced + * Research Projects Agency and the National Science Foundation of the + * United States of America, and the CMU Sphinx Speech Consortium. + * + * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND + * ANY EXPRESSED 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 CARNEGIE MELLON UNIVERSITY + * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ==================================================================== + * + */ + + +%define DOCSTRING +"This documentation was automatically generated using original comments in +Doxygen format. As some C types and data structures cannot be directly mapped +into Python types, some non-trivial type conversion could have place. +Basically a type is replaced with another one that has the closest match, and +sometimes one argument of generated function comprises several arguments of the +original function (usually two). + +Functions having error code as the return value and returning effective +value in one of its arguments are transformed so that the effective value is +returned in a regular fashion and run-time exception is being thrown in case of +negative error code." +%enddef + +#if SWIGJAVA +%module SphinxBase +%rename("%(lowercamelcase)s", notregexmatch$name="^[A-Z]") ""; +#else +%module(docstring=DOCSTRING) sphinxbase +#endif + +%feature("autodoc", "1"); + +%include typemaps.i +%include iterators.i + +#if SWIGPYTHON +%begin %{ +#include +%} +#endif + +%begin %{ +#include +#include +#include +#include +#include +#include + +typedef int bool; +#define false 0 +#define true 1 + +typedef cmd_ln_t Config; +typedef jsgf_t Jsgf; +typedef jsgf_rule_t JsgfRule; +typedef feat_t Feature; +typedef fe_t FrontEnd; +typedef fsg_model_t FsgModel; +typedef logmath_t LogMath; +typedef ngram_model_t NGramModel; +typedef ngram_model_t NGramModelSet; +%} + +%nodefaultctor Config; + +typedef struct {} Config; +typedef struct {} FrontEnd; +typedef struct {} Feature; +typedef struct {} FsgModel; +typedef struct {} JsgfRule; +typedef struct {} NGramModel; +typedef struct {} LogMath; + +sb_iterator(NGramModelSet, ngram_model_set_iter, NGramModel); +sb_iterator(Jsgf, jsgf_rule_iter, JsgfRule) + +sb_iterable(NGramModelSet, ngram_model_set_iter, NGramModel) +sb_iterable(Jsgf, jsgf_rule_iter, JsgfRule) + +typedef struct {} NGramModelSet; +typedef struct {} Jsgf; + +#ifdef HAS_DOC +%include pydoc.i +#endif +%include cmd_ln.i +%include fe.i +%include feat.i +%include fsg_model.i +%include jsgf.i +%include ngram_model.i +%include logmath.i + diff -Nru sphinxbase-0.8/swig/typemaps.i sphinxbase-0.8+5prealpha/swig/typemaps.i --- sphinxbase-0.8/swig/typemaps.i 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/swig/typemaps.i 2015-05-02 20:52:03.000000000 +0000 @@ -0,0 +1,100 @@ +%include + +%apply int {int32}; + +#if SWIGPYTHON +// Special typemap for string array +%typemap(in) (size_t n, char **ptr) { + /* Check if is a list */ + $1 = 0; + if (PyList_Check($input)) { + int i; + $1 = PyList_Size($input); + $2 = (char **) calloc(($1 + 1), sizeof(char *)); + for (i = 0; i < $1; i++) { + PyObject *o = PyList_GetItem($input,i); + $2[i] = SWIG_Python_str_AsChar(o); + } + } else { + PyErr_SetString(PyExc_TypeError, "list type expected"); + return NULL; + } +} + +%typemap(freearg) (size_t n, char **ptr) { + int i; + if ($2 != NULL) { + for (i = 0; $2[i] != NULL; i++) { + SWIG_Python_str_DelForPy3($2[i]); + } + free($2); + } +} +#elif SWIGJAVA + +%include + +// Raw data return support +%typemap(in,numinputs=0,noblock=1) int32 *RAWDATA_SIZE { + int32 temp_len; + $1 = &temp_len; +} +%typemap(jstype) int16 *get_rawdata "short[]" +%typemap(jtype) int16 *get_rawdata "short[]" +%typemap(jni) int16 *get_rawdata "jshortArray" +%typemap(javaout) int16 *get_rawdata { + return $jnicall; +} +%typemap(out) int16 *get_rawdata { + $result = JCALL1(NewShortArray, jenv, temp_len); + JCALL4(SetShortArrayRegion, jenv, $result, 0, temp_len, $1); +} + +// Special typemap for arrays of audio. +%apply short[] {const int16 *SDATA}; + +// Typemap for arrays of strings used in ngram for example +%typemap(in) (size_t n, char **ptr) { + int i = 0; + $1 = (*jenv)->GetArrayLength(jenv, $input); + $2 = (char **) malloc(($1)*sizeof(char *)); + /* make a copy of each string */ + for (i = 0; i<$1; i++) { + jstring j_string = (jstring)(*jenv)->GetObjectArrayElement(jenv, $input, i); + const char * c_string = (*jenv)->GetStringUTFChars(jenv, j_string, 0); + $2[i] = malloc((strlen(c_string)+1)*sizeof(char)); + strcpy($2[i], c_string); + (*jenv)->ReleaseStringUTFChars(jenv, j_string, c_string); + (*jenv)->DeleteLocalRef(jenv, j_string); + } +} + +%typemap(freearg) (size_t n, char **ptr) { + int i; + for (i=0; i<$1; i++) + free($2[i]); + free($2); +} + +%typemap(jni) (size_t n, char **ptr) "jobjectArray" +%typemap(jtype) (size_t n, char **ptr) "String[]" +%typemap(jstype) (size_t n, char **ptr) "String[]" +%typemap(javain) (size_t n, char **ptr) "$javainput" + +#endif + +// Define typemaps to wrap error codes returned by some functions, +// into runtime exceptions. +%typemap(in, numinputs=0, noblock=1) int *errcode { + int errcode; + $1 = &errcode; +} + +%typemap(argout) int *errcode { + if (*$1 < 0) { + char buf[64]; + sprintf(buf, "$symname returned %d", *$1); + SWIG_exception(SWIG_RuntimeError, buf); + } +} + diff -Nru sphinxbase-0.8/test/Makefile.in sphinxbase-0.8+5prealpha/test/Makefile.in --- sphinxbase-0.8/test/Makefile.in 2012-12-12 17:28:54.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -34,14 +78,13 @@ build_triplet = @build@ host_triplet = @host@ subdir = test -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -49,20 +92,58 @@ $(top_builddir)/include/sphinx_config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive 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_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -94,6 +175,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -107,6 +189,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -116,9 +199,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -126,15 +207,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -150,27 +230,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -203,14 +289,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -233,9 +322,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/Makefile + $(AUTOMAKE) --foreign test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -262,22 +351,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -292,57 +384,12 @@ $(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: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -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) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -358,12 +405,7 @@ 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -375,15 +417,11 @@ $$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; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -392,6 +430,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -428,13 +481,10 @@ 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 \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -469,10 +519,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -550,22 +605,20 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/regression/chan3.cepview sphinxbase-0.8+5prealpha/test/regression/chan3.cepview --- sphinxbase-0.8/test/regression/chan3.cepview 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/chan3.cepview 2015-03-26 16:52:50.000000000 +0000 @@ -1,2190 +1,2178 @@ - 6.527 -1.576 0.212 0.163 -0.132 0.155 0.062 0.060 -0.166 -0.093 -0.090 -0.043 0.028 - 6.580 -1.617 0.267 0.095 -0.232 0.101 -0.184 -0.056 -0.243 -0.201 -0.064 -0.001 -0.118 - 6.787 -1.367 0.280 0.030 -0.339 -0.004 -0.209 0.050 -0.200 -0.107 -0.097 -0.035 -0.197 - 6.833 -1.400 0.087 0.101 -0.386 0.172 -0.168 -0.191 -0.145 -0.007 -0.139 -0.060 0.011 - 6.604 -1.366 0.049 0.178 -0.321 -0.034 -0.122 -0.117 -0.093 0.102 -0.214 -0.072 0.057 - 6.752 -1.445 0.071 0.264 -0.229 -0.181 -0.077 -0.108 -0.209 0.069 -0.254 -0.209 -0.028 - 6.551 -1.400 0.037 0.175 -0.225 -0.126 0.072 -0.003 -0.294 0.024 -0.273 -0.017 -0.029 - 6.268 -1.333 0.095 0.301 0.026 -0.069 -0.129 -0.171 -0.173 -0.007 -0.182 -0.162 -0.102 - 6.378 -1.177 0.009 0.228 -0.127 -0.070 -0.317 -0.114 -0.123 0.092 -0.095 -0.170 -0.073 - 6.334 -1.275 -0.197 0.101 0.078 -0.074 -0.254 -0.120 -0.065 0.139 -0.074 -0.048 0.008 - 6.125 -1.225 -0.070 -0.042 -0.091 -0.025 -0.122 -0.214 -0.278 -0.101 -0.136 -0.123 -0.044 - 5.942 -0.978 0.098 0.038 -0.091 -0.141 -0.171 0.010 0.001 0.093 0.014 -0.085 -0.038 - 6.246 -0.575 0.512 0.362 -0.002 0.096 0.085 -0.153 -0.096 -0.083 -0.054 -0.007 -0.156 - 5.614 -0.336 0.285 0.198 -0.020 0.020 0.026 0.021 0.018 0.021 0.004 -0.111 -0.222 - 5.514 -0.452 0.211 0.030 -0.064 0.021 -0.043 -0.032 0.054 0.118 -0.075 -0.026 -0.202 - 5.175 -0.549 0.098 0.068 -0.024 -0.038 -0.018 -0.150 -0.170 -0.038 -0.170 0.033 0.055 - 4.895 -0.130 0.032 0.116 0.132 -0.039 -0.026 -0.092 -0.166 0.214 -0.042 -0.147 -0.124 - 4.424 -0.038 0.045 0.170 0.032 -0.175 -0.314 -0.100 -0.157 0.106 -0.040 -0.164 -0.066 - 3.939 0.097 -0.248 -0.008 0.015 -0.029 -0.222 -0.119 -0.110 0.150 0.098 -0.034 0.021 - 3.849 0.105 -0.269 0.013 -0.062 -0.013 -0.251 -0.244 -0.233 -0.108 0.072 0.044 0.046 - 4.145 0.262 -0.109 -0.014 -0.222 -0.001 -0.152 -0.178 -0.151 -0.020 -0.101 -0.123 -0.113 - 4.230 0.273 0.040 -0.017 0.029 -0.053 0.003 -0.123 -0.081 -0.140 -0.154 -0.192 -0.260 - 4.000 0.417 0.057 0.206 0.011 -0.019 -0.297 -0.288 -0.173 -0.044 -0.098 -0.226 0.020 - 4.173 0.361 0.156 0.078 0.105 -0.123 -0.172 -0.406 -0.208 -0.038 0.040 0.004 0.076 - 7.068 -0.518 0.568 0.066 -0.482 0.103 -0.074 -0.271 -0.027 -0.074 -0.134 0.030 -0.173 - 9.454 -0.227 0.593 0.302 -0.427 -0.153 -0.260 -0.208 -0.062 -0.302 -0.196 0.076 -0.287 - 10.594 0.197 0.328 0.570 -0.235 -0.480 -0.531 -0.003 -0.256 -0.318 -0.225 -0.048 -0.306 - 12.189 -0.192 0.303 0.566 -0.308 -0.556 -0.614 -0.056 -0.362 -0.315 -0.271 0.042 -0.256 - 13.377 -0.265 0.159 0.461 -0.377 -0.571 -0.597 0.003 -0.469 -0.268 -0.343 0.133 -0.288 - 13.760 0.015 -0.072 0.453 -0.386 -0.609 -0.711 0.037 -0.530 -0.191 -0.385 0.157 -0.249 - 14.185 0.091 -0.206 0.450 -0.436 -0.700 -0.730 0.009 -0.565 -0.071 -0.394 0.210 -0.213 - 14.378 0.113 -0.290 0.420 -0.431 -0.819 -0.712 0.044 -0.584 0.018 -0.387 0.235 -0.179 - 14.016 0.468 -0.549 0.433 -0.415 -0.788 -0.774 0.163 -0.605 0.025 -0.276 0.066 -0.040 - 14.132 0.576 -0.706 0.340 -0.337 -0.784 -0.781 0.064 -0.441 0.006 -0.198 -0.055 0.032 - 14.319 0.637 -0.726 0.197 -0.352 -0.568 -0.962 0.037 -0.492 0.174 -0.233 -0.131 0.007 - 14.131 0.726 -0.589 -0.049 -0.335 -0.392 -0.815 -0.154 -0.672 0.294 -0.139 -0.296 -0.057 - 13.575 0.980 -0.518 -0.145 -0.465 -0.244 -0.520 -0.262 -0.968 0.211 -0.036 -0.226 -0.129 - 13.009 1.092 -0.339 -0.249 -0.467 -0.304 -0.327 -0.239 -1.013 0.053 -0.044 -0.151 -0.061 - 12.814 1.204 -0.443 -0.215 -0.482 -0.216 -0.385 -0.132 -1.119 0.074 -0.137 -0.053 -0.182 - 12.960 1.093 -0.399 -0.174 -0.407 -0.230 -0.421 -0.185 -1.105 0.142 -0.150 -0.093 -0.283 - 13.230 0.902 -0.401 -0.141 -0.223 -0.252 -0.485 -0.272 -0.984 0.209 -0.133 -0.221 -0.292 - 13.508 0.776 -0.563 0.027 -0.061 -0.372 -0.665 -0.239 -0.787 0.213 -0.228 -0.339 -0.197 - 13.814 0.426 -0.512 0.193 0.094 -0.613 -0.737 -0.085 -0.640 0.116 -0.382 -0.233 -0.100 - 14.000 0.195 -0.498 0.445 -0.012 -0.827 -0.669 0.099 -0.700 -0.014 -0.330 -0.113 -0.086 - 14.293 -0.074 -0.376 0.566 -0.210 -0.917 -0.531 0.125 -0.770 -0.008 -0.287 -0.059 -0.109 - 14.128 -0.094 -0.313 0.611 -0.375 -0.869 -0.491 0.066 -0.729 -0.005 -0.291 0.021 -0.119 - 14.074 -0.145 -0.189 0.514 -0.457 -0.826 -0.436 -0.063 -0.559 -0.064 -0.263 0.085 -0.159 - 14.085 0.032 -0.328 0.440 -0.499 -0.804 -0.465 -0.041 -0.460 -0.120 -0.215 0.134 -0.152 - 13.946 0.158 -0.383 0.321 -0.547 -0.699 -0.607 0.081 -0.419 -0.121 -0.194 0.198 -0.241 - 13.902 0.222 -0.457 0.219 -0.549 -0.652 -0.654 0.144 -0.382 -0.057 -0.269 0.254 -0.265 - 13.927 0.312 -0.595 0.181 -0.554 -0.547 -0.717 0.093 -0.251 -0.113 -0.233 0.165 -0.182 - 13.848 0.440 -0.698 0.088 -0.473 -0.528 -0.766 0.022 -0.203 -0.061 -0.289 0.142 -0.122 - 13.671 0.429 -0.567 -0.132 -0.273 -0.574 -0.757 -0.110 -0.175 0.027 -0.369 0.108 -0.050 - 13.321 0.282 -0.354 -0.267 -0.203 -0.553 -0.555 -0.489 -0.047 0.124 -0.464 0.029 0.028 - 13.222 0.088 -0.128 -0.297 -0.402 -0.135 -0.604 -0.629 -0.048 0.139 -0.307 -0.061 -0.114 - 13.318 0.361 -0.024 -0.383 -0.632 0.261 -0.864 -0.492 -0.175 0.136 -0.269 0.128 -0.394 - 13.509 0.506 0.011 -0.533 -0.810 0.290 -0.814 -0.360 -0.419 0.291 -0.286 0.286 -0.435 - 13.473 0.481 0.188 -0.727 -0.879 0.224 -0.753 -0.204 -0.557 0.239 -0.276 0.467 -0.456 - 13.061 0.688 0.283 -0.867 -0.916 0.140 -0.650 -0.042 -0.658 0.043 -0.249 0.498 -0.407 - 12.807 0.670 0.473 -0.902 -0.966 0.103 -0.596 0.052 -0.699 0.016 -0.358 0.398 -0.260 - 12.435 0.810 0.452 -0.701 -1.162 0.066 -0.430 -0.085 -0.521 -0.035 -0.482 0.411 -0.308 - 11.783 0.872 0.644 -0.626 -1.193 0.002 -0.431 -0.080 -0.377 -0.072 -0.657 0.329 -0.278 - 11.266 0.871 0.799 -0.588 -1.177 -0.010 -0.445 -0.018 -0.356 -0.087 -0.759 0.249 -0.301 - 11.068 0.825 0.921 -0.594 -1.104 -0.080 -0.431 0.003 -0.360 -0.154 -0.758 0.170 -0.364 - 10.991 0.794 1.013 -0.584 -1.091 -0.126 -0.451 -0.003 -0.354 -0.128 -0.705 0.124 -0.462 - 11.031 0.716 1.035 -0.597 -1.116 -0.131 -0.500 -0.067 -0.273 -0.060 -0.625 0.001 -0.476 - 11.417 0.621 0.932 -0.582 -1.119 -0.178 -0.524 -0.057 -0.203 -0.063 -0.640 0.008 -0.343 - 12.427 0.378 0.817 -0.769 -1.205 -0.132 -0.443 -0.021 -0.353 0.020 -0.494 0.013 -0.140 - 13.176 0.323 0.412 -0.930 -1.227 -0.046 -0.403 0.066 -0.341 -0.105 -0.357 0.200 -0.073 - 13.232 0.294 0.339 -0.990 -1.243 0.102 -0.468 0.050 -0.309 -0.024 -0.295 0.256 -0.094 - 13.323 0.252 0.255 -1.041 -1.249 0.199 -0.501 0.147 -0.300 0.020 -0.225 0.222 -0.174 - 13.446 0.273 0.132 -1.090 -1.193 0.274 -0.552 0.233 -0.348 0.078 -0.184 0.211 -0.270 - 13.566 0.337 -0.012 -1.098 -1.119 0.280 -0.477 0.190 -0.344 0.104 -0.152 0.165 -0.316 - 13.716 0.251 -0.063 -1.068 -1.043 0.278 -0.430 0.133 -0.304 0.097 -0.067 0.047 -0.370 - 13.443 0.471 -0.236 -0.990 -0.952 0.252 -0.411 0.038 -0.254 0.057 0.048 -0.010 -0.373 - 13.269 0.537 -0.385 -0.847 -0.834 0.209 -0.394 -0.011 -0.228 0.027 0.125 -0.066 -0.381 - 12.757 0.534 -0.347 -0.719 -0.776 0.156 -0.404 -0.024 -0.244 0.046 0.148 0.003 -0.445 - 12.691 0.456 -0.356 -0.612 -0.703 0.084 -0.305 -0.253 -0.111 0.073 0.040 0.107 -0.552 - 12.648 0.409 -0.479 -0.283 -0.694 0.025 -0.386 -0.335 -0.073 0.229 -0.097 0.086 -0.576 - 12.394 0.423 -0.637 0.077 -0.518 -0.282 -0.510 -0.189 0.028 0.177 -0.256 0.123 -0.461 - 11.791 0.449 -0.605 0.361 -0.430 -0.418 -0.622 -0.005 0.058 0.023 -0.355 0.282 -0.518 - 11.195 0.313 -0.265 0.536 -0.454 -0.498 -0.549 0.100 0.148 -0.269 -0.280 0.349 -0.569 - 10.704 0.176 0.114 0.199 -0.132 -0.506 -0.416 0.131 0.038 -0.342 -0.106 -0.078 -0.404 - 9.875 0.420 0.326 0.087 0.020 -0.447 -0.418 0.261 -0.356 -0.261 0.099 -0.356 -0.292 - 8.935 0.715 0.237 0.170 0.106 -0.371 -0.464 0.321 -0.442 -0.101 -0.136 -0.345 -0.257 - 7.719 0.828 0.622 0.204 -0.009 -0.387 -0.324 0.087 -0.207 -0.149 -0.366 -0.160 -0.170 - 7.406 0.627 0.742 -0.123 0.168 -0.478 0.071 -0.171 -0.009 -0.117 -0.429 -0.195 -0.090 - 8.612 -0.126 0.533 -0.142 0.169 -0.265 0.129 -0.086 -0.024 -0.270 -0.224 -0.069 -0.179 - 9.818 -0.292 0.134 0.080 -0.077 -0.182 -0.055 -0.034 -0.072 -0.160 -0.265 0.062 -0.185 - 9.895 -0.311 0.268 0.210 0.077 -0.419 -0.238 -0.206 0.076 -0.168 -0.364 0.009 -0.105 - 10.841 -0.049 0.223 0.126 -0.033 -0.448 -0.442 -0.329 -0.056 -0.053 -0.447 0.014 -0.114 - 11.381 -0.048 0.069 0.073 0.097 -0.444 -0.636 -0.469 -0.104 -0.080 -0.497 -0.025 -0.019 - 11.139 0.120 0.125 -0.070 -0.031 -0.302 -0.566 -0.495 -0.108 -0.049 -0.448 -0.090 -0.054 - 10.764 -0.162 0.386 -0.013 0.000 -0.294 -0.556 -0.511 -0.034 -0.174 -0.297 -0.213 -0.001 - 10.827 -0.993 0.581 -0.042 0.172 -0.133 -0.162 -0.060 0.031 -0.140 -0.304 -0.178 -0.041 - 10.619 -1.211 0.666 -0.024 0.125 -0.253 -0.037 -0.040 -0.020 -0.083 -0.338 -0.229 -0.175 - 10.766 -1.313 0.644 -0.033 0.365 -0.075 0.041 -0.018 -0.060 -0.091 -0.292 -0.052 -0.265 - 10.855 -1.277 0.577 -0.097 0.494 -0.249 -0.261 -0.101 -0.080 -0.255 -0.201 -0.045 -0.163 - 11.207 -1.251 0.536 -0.160 0.398 -0.322 -0.129 0.003 -0.105 -0.221 -0.203 -0.111 -0.142 - 11.529 -1.056 0.595 -0.083 0.384 -0.329 -0.026 -0.063 -0.019 -0.282 -0.221 0.061 -0.105 - 11.263 -1.528 0.452 -0.138 0.324 -0.268 -0.004 -0.054 -0.121 -0.394 -0.233 -0.039 -0.127 - 11.468 -1.644 0.387 0.003 0.358 -0.190 -0.078 -0.090 -0.156 -0.108 -0.169 -0.029 -0.046 - 10.859 -1.522 0.104 0.203 0.295 -0.591 0.033 0.027 -0.182 -0.279 0.051 -0.024 -0.071 - 7.399 -1.040 -0.014 0.330 0.622 -0.541 -0.018 0.134 -0.105 -0.346 0.104 0.060 -0.239 - 4.866 -0.548 0.099 -0.173 0.379 -0.225 0.120 -0.000 -0.115 -0.022 0.012 -0.062 -0.191 - 4.760 -0.447 0.163 -0.280 0.182 -0.481 -0.019 -0.147 -0.201 -0.189 -0.056 0.045 0.007 - 9.003 -0.451 -0.045 0.373 -0.654 -0.571 -0.147 -0.138 -0.101 -0.003 -0.163 -0.100 -0.079 - 12.107 -0.746 -0.282 -0.041 -0.724 -0.550 -0.057 -0.245 -0.220 -0.025 -0.189 0.009 -0.036 - 12.612 -0.523 -0.082 0.401 -0.351 -0.707 -0.301 -0.237 -0.254 -0.218 -0.094 -0.005 -0.160 - 13.774 -0.172 -0.485 0.317 -0.451 -0.712 -0.651 -0.093 -0.198 -0.093 -0.236 0.244 -0.321 - 14.097 -0.142 -0.631 0.094 -0.515 -0.672 -0.732 0.010 -0.165 0.104 -0.321 0.276 -0.315 - 14.146 -0.083 -0.704 -0.105 -0.601 -0.638 -0.699 0.072 -0.046 0.196 -0.273 0.043 -0.223 - 14.273 -0.159 -0.688 -0.189 -0.566 -0.508 -0.761 0.126 -0.053 0.246 -0.315 -0.038 -0.240 - 14.437 -0.040 -0.761 -0.223 -0.603 -0.398 -0.765 0.205 -0.130 0.264 -0.346 -0.165 -0.223 - 14.378 -0.092 -0.719 -0.181 -0.671 -0.290 -0.869 0.188 -0.187 0.328 -0.405 -0.042 -0.302 - 14.160 0.013 -0.725 -0.177 -0.680 -0.315 -0.913 0.185 -0.126 0.295 -0.424 0.018 -0.291 - 13.665 0.079 -0.683 -0.203 -0.648 -0.444 -0.951 0.142 -0.018 0.262 -0.385 0.094 -0.236 - 12.462 0.396 -0.529 -0.100 -0.493 -0.570 -0.812 -0.034 0.164 -0.067 -0.176 0.221 -0.128 - 11.095 -0.243 -0.057 0.182 -0.541 -0.396 -0.368 0.047 0.142 -0.147 -0.353 0.002 0.063 - 11.625 -1.083 0.450 0.685 -0.330 -0.111 -0.313 -0.200 0.132 -0.120 -0.238 -0.015 -0.075 - 12.127 -1.375 0.614 0.761 -0.319 -0.037 0.035 -0.179 0.005 -0.094 -0.393 -0.065 -0.156 - 12.332 -1.614 0.649 0.659 -0.412 -0.027 0.022 -0.145 -0.093 -0.032 -0.275 -0.108 -0.179 - 12.348 -2.053 0.287 0.509 -0.533 -0.158 0.051 -0.061 0.079 0.043 -0.315 -0.140 -0.183 - 12.363 -2.284 0.303 0.799 -0.438 -0.209 -0.168 -0.019 0.062 -0.086 -0.196 -0.049 -0.101 - 12.124 -2.227 0.167 0.564 -0.558 -0.210 -0.098 0.069 0.141 0.034 -0.054 -0.166 -0.026 - 12.496 -1.767 0.330 0.879 -0.144 -0.098 -0.049 -0.132 -0.023 -0.047 -0.231 -0.183 0.054 - 11.892 -1.213 0.346 0.812 -0.148 -0.355 -0.004 0.009 0.019 -0.014 -0.310 -0.114 0.057 - 11.102 -1.048 0.308 0.695 0.019 -0.157 -0.082 0.003 0.044 -0.135 -0.208 -0.040 -0.013 - 11.998 0.326 -0.408 0.208 -0.422 -0.335 -0.273 -0.069 0.039 0.096 -0.180 -0.069 -0.030 - 12.207 0.709 -0.540 0.019 -0.360 -0.332 -0.431 -0.111 0.020 0.092 -0.444 0.182 -0.279 - 12.091 0.492 -0.500 0.100 -0.447 -0.301 -0.466 -0.219 0.087 0.190 -0.399 0.136 -0.224 - 11.442 0.457 -0.433 0.205 -0.384 -0.306 -0.310 -0.421 0.086 0.254 -0.395 0.035 -0.263 - 11.004 0.015 0.111 0.295 -0.332 -0.341 -0.138 -0.310 -0.084 0.215 -0.474 -0.008 -0.196 - 11.169 -0.158 0.157 0.242 -0.170 -0.403 -0.140 -0.217 -0.174 0.325 -0.536 0.029 -0.326 - 11.282 0.088 -0.387 0.061 0.049 -0.144 -0.564 -0.270 -0.151 0.374 -0.255 0.032 -0.221 - 12.184 0.235 -0.538 -0.087 -0.100 -0.334 -0.644 -0.121 -0.122 0.299 -0.205 -0.049 -0.251 - 12.222 0.260 -0.570 -0.091 -0.272 -0.345 -0.735 -0.086 -0.074 0.417 -0.282 0.015 -0.343 - 12.563 0.264 -0.713 -0.056 -0.458 -0.328 -0.708 -0.126 0.024 0.384 -0.216 -0.005 -0.286 - 12.558 0.443 -0.703 -0.121 -0.344 -0.459 -0.471 -0.318 -0.120 0.343 -0.268 0.008 -0.232 - 11.133 0.722 -0.475 -0.305 -0.183 -0.410 -0.361 -0.510 -0.285 0.234 -0.116 -0.208 -0.269 - 9.966 0.908 -0.464 -0.158 -0.165 -0.351 -0.316 -0.530 -0.449 0.210 0.006 -0.218 -0.285 - 6.511 0.764 -0.019 -0.009 -0.015 -0.062 -0.213 -0.159 -0.103 0.229 -0.058 -0.275 -0.254 - 6.005 0.772 -0.044 0.064 -0.176 0.024 -0.175 -0.224 0.069 0.183 -0.007 -0.279 -0.255 - 5.644 0.899 0.246 0.175 -0.237 -0.270 -0.371 -0.340 -0.000 0.101 -0.084 -0.186 -0.092 - 5.558 0.597 0.367 0.171 -0.195 -0.345 -0.295 -0.205 -0.067 0.222 -0.199 -0.155 -0.118 - 8.199 0.001 0.321 -0.178 -0.128 -0.370 -0.359 -0.103 -0.185 -0.043 -0.355 -0.145 -0.189 - 8.766 0.111 -0.148 -0.094 -0.027 -0.264 -0.166 -0.089 0.081 0.164 -0.070 -0.203 -0.041 - 12.074 0.000 -0.661 -0.012 -0.394 -0.400 -0.437 -0.172 -0.042 0.119 -0.165 -0.143 -0.007 - 13.145 -0.034 -0.662 -0.098 -0.572 -0.558 -0.579 -0.128 -0.003 0.310 -0.223 -0.100 0.001 - 13.351 -0.007 -0.782 -0.020 -0.602 -0.581 -0.502 -0.104 0.073 0.217 -0.311 -0.081 -0.007 - 13.622 -0.133 -0.854 -0.005 -0.648 -0.526 -0.533 -0.047 0.074 0.204 -0.347 -0.046 -0.098 - 13.418 -0.098 -0.892 -0.049 -0.710 -0.422 -0.639 0.111 -0.063 0.336 -0.493 0.046 -0.131 - 13.653 -0.206 -0.873 -0.129 -0.708 -0.401 -0.680 0.207 -0.106 0.435 -0.636 0.003 -0.190 - 13.786 -0.049 -0.940 -0.169 -0.612 -0.421 -0.583 0.182 -0.142 0.425 -0.603 -0.116 -0.147 - 13.769 0.004 -0.991 -0.287 -0.577 -0.349 -0.522 0.192 -0.247 0.420 -0.570 -0.188 -0.123 - 13.393 0.038 -1.072 -0.435 -0.580 -0.332 -0.466 0.213 -0.223 0.462 -0.652 -0.232 -0.123 - 13.445 -0.002 -0.975 -0.431 -0.661 -0.277 -0.528 0.238 -0.253 0.557 -0.629 -0.251 -0.143 - 13.744 0.037 -0.976 -0.422 -0.681 -0.182 -0.553 0.220 -0.294 0.537 -0.580 -0.305 -0.135 - 13.752 -0.083 -0.888 -0.530 -0.651 -0.197 -0.484 0.218 -0.334 0.484 -0.505 -0.347 -0.123 - 13.300 -0.004 -0.820 -0.603 -0.755 -0.119 -0.535 0.231 -0.350 0.616 -0.507 -0.424 -0.136 - 13.696 -0.039 -0.734 -0.594 -0.742 -0.083 -0.541 0.167 -0.408 0.611 -0.449 -0.379 -0.143 - 13.688 0.045 -0.610 -0.685 -0.681 -0.078 -0.590 0.083 -0.467 0.563 -0.328 -0.312 -0.205 - 13.030 0.163 -0.422 -0.806 -0.677 -0.117 -0.593 -0.020 -0.361 0.515 -0.242 -0.320 -0.208 - 12.805 0.193 -0.398 -0.867 -0.696 -0.164 -0.565 -0.085 -0.360 0.550 -0.215 -0.221 -0.223 - 12.574 0.527 -0.422 -0.803 -0.736 -0.223 -0.481 -0.359 -0.351 0.544 -0.276 0.014 -0.192 - 12.487 0.279 -0.194 -0.749 -0.608 -0.210 -0.481 -0.507 -0.429 0.501 -0.394 0.170 -0.218 - 11.090 0.251 0.011 -0.808 -0.512 -0.249 -0.441 -0.698 -0.409 0.663 -0.304 0.251 -0.126 - 11.251 0.371 0.060 -0.654 -0.326 -0.215 -0.343 -0.758 -0.492 0.280 -0.390 0.127 -0.209 - 7.809 0.619 0.267 -0.567 -0.392 -0.224 -0.378 -0.713 -0.376 0.494 -0.544 0.135 -0.254 - 6.426 0.810 0.139 -0.174 -0.377 -0.234 -0.255 -0.062 0.098 0.344 -0.138 -0.130 -0.138 - 6.248 0.884 0.194 -0.076 -0.404 -0.184 -0.336 -0.034 -0.004 0.393 -0.119 -0.115 -0.021 - 5.638 0.677 -0.093 -0.358 -0.553 -0.278 -0.317 -0.091 -0.011 0.446 -0.038 -0.126 -0.090 - 5.239 0.604 -0.117 -0.269 -0.449 -0.187 -0.369 0.044 -0.008 0.199 -0.044 -0.280 -0.158 - 4.960 0.496 -0.017 -0.200 -0.551 -0.161 -0.101 0.060 0.055 0.382 0.059 -0.086 -0.069 - 6.617 0.047 -0.288 0.123 -0.577 -0.462 0.012 -0.012 -0.099 -0.093 -0.201 0.076 -0.027 - 5.999 0.139 -0.295 -0.052 -0.645 -0.348 0.040 -0.164 -0.138 -0.094 -0.217 0.057 -0.046 - 4.453 0.368 -0.094 -0.038 -0.535 -0.202 -0.140 -0.122 -0.100 0.215 0.070 0.133 -0.081 - 4.253 0.341 -0.357 0.015 -0.292 -0.165 -0.106 -0.125 0.062 0.311 0.011 0.016 0.037 - 4.338 0.374 -0.219 -0.125 -0.335 -0.165 -0.122 -0.249 -0.027 0.121 0.130 0.211 -0.079 - 4.038 0.117 -0.302 -0.166 -0.311 -0.095 -0.013 -0.162 -0.183 0.131 0.137 0.028 0.052 - 4.005 0.303 -0.339 -0.130 -0.183 -0.052 -0.111 -0.021 -0.067 0.090 0.048 0.109 -0.036 - 3.883 0.253 -0.213 0.179 -0.094 -0.112 -0.258 -0.182 -0.125 0.238 0.165 0.101 -0.018 - 3.748 0.203 -0.263 -0.017 -0.197 -0.126 -0.205 -0.236 -0.186 0.195 0.068 0.038 -0.025 - 3.788 0.249 -0.293 0.027 -0.304 -0.101 -0.083 -0.180 -0.178 -0.076 -0.116 0.133 0.054 - 3.804 0.307 -0.223 0.066 -0.112 0.115 -0.246 -0.253 -0.111 0.068 -0.044 0.079 -0.203 - 3.777 0.447 -0.175 0.056 -0.142 -0.114 -0.155 -0.120 -0.165 0.100 0.051 0.054 -0.104 - 3.657 0.365 -0.121 0.193 -0.096 -0.138 -0.206 -0.236 -0.084 0.121 0.027 -0.141 -0.041 - 3.873 0.518 0.092 0.193 -0.159 -0.026 -0.022 -0.131 -0.108 -0.021 -0.007 0.093 0.060 - 3.813 0.633 0.021 -0.058 -0.159 0.176 -0.105 -0.220 -0.199 -0.066 0.088 0.065 -0.142 - 4.497 0.388 0.128 -0.155 -0.085 -0.162 0.039 -0.327 -0.063 -0.079 -0.231 -0.180 0.019 - 6.254 0.517 0.428 -0.139 -0.010 -0.316 0.152 -0.331 0.025 -0.074 -0.508 -0.356 0.037 - 5.443 0.172 0.251 0.242 -0.028 -0.217 0.082 0.106 -0.151 -0.060 -0.250 -0.154 -0.286 - 5.412 0.072 0.159 0.151 -0.100 -0.223 0.044 -0.074 -0.135 -0.108 -0.212 -0.041 -0.337 - 4.915 -0.019 -0.166 -0.302 -0.376 -0.266 0.144 -0.183 -0.145 0.146 -0.209 -0.095 -0.148 - 5.157 0.321 -0.265 -0.135 -0.328 -0.246 0.153 -0.025 -0.182 0.008 -0.399 -0.059 -0.013 - 5.292 0.214 -0.355 -0.162 -0.383 -0.256 0.123 0.015 -0.142 -0.163 -0.347 -0.209 0.018 - 5.599 0.151 -0.491 -0.098 -0.238 -0.256 -0.055 -0.106 -0.148 -0.165 -0.517 -0.141 0.115 - 5.552 -0.266 -0.521 0.066 -0.198 -0.177 -0.074 -0.190 -0.110 -0.092 -0.289 0.022 0.072 - 5.827 -0.799 -0.145 0.380 -0.075 -0.077 -0.069 -0.330 -0.209 -0.054 -0.170 0.054 0.140 - 5.780 -0.486 -0.472 0.234 -0.235 -0.268 -0.070 -0.199 -0.212 -0.206 -0.492 -0.051 0.097 - 5.148 0.456 -0.234 0.033 -0.438 -0.379 -0.028 0.106 0.070 -0.015 -0.452 -0.270 -0.051 - 4.839 0.313 -0.072 -0.224 -0.524 -0.301 0.149 -0.004 0.098 0.080 -0.473 -0.146 -0.190 - 4.253 0.076 -0.032 -0.164 -0.329 -0.228 0.262 0.091 0.005 0.035 -0.323 -0.067 -0.306 - 4.281 -0.090 0.054 0.045 0.059 -0.208 -0.021 -0.098 -0.099 0.027 -0.141 -0.033 -0.301 - 4.514 -0.172 0.197 0.091 -0.180 -0.225 0.073 -0.240 -0.178 -0.004 -0.066 0.129 -0.112 - 4.582 -0.172 0.245 0.037 -0.068 -0.208 0.022 -0.291 -0.136 -0.085 -0.121 -0.007 -0.110 - 4.418 -0.105 0.150 0.085 -0.034 -0.212 0.128 -0.100 -0.158 0.011 -0.102 0.019 -0.122 - 4.346 -0.106 0.042 -0.014 -0.204 -0.338 -0.050 -0.134 -0.112 0.093 -0.032 0.046 -0.127 - 4.244 0.069 0.159 0.001 -0.124 -0.168 0.034 -0.193 -0.099 0.054 -0.037 0.058 -0.072 - 4.285 0.059 0.157 0.021 -0.136 -0.293 -0.083 -0.058 -0.097 0.233 -0.024 -0.082 -0.185 - 4.120 0.215 -0.094 -0.074 -0.247 -0.399 -0.021 -0.091 -0.090 0.171 0.021 0.012 -0.005 - 4.455 0.476 0.033 0.081 -0.394 -0.278 0.127 0.025 0.030 -0.005 -0.033 -0.027 -0.108 - 4.287 0.732 -0.056 -0.023 -0.540 -0.042 0.159 0.147 -0.062 -0.046 -0.253 -0.124 -0.150 - 4.476 0.570 -0.280 -0.090 -0.539 -0.214 0.078 0.159 0.147 0.143 -0.219 -0.220 -0.012 - 4.193 0.361 -0.335 -0.045 -0.428 -0.256 0.066 0.188 0.221 0.239 -0.303 -0.184 -0.015 - 3.596 0.430 -0.179 0.076 -0.277 -0.032 0.085 0.015 -0.125 -0.068 -0.188 -0.098 0.028 - 4.239 0.522 -0.357 0.215 0.042 -0.234 -0.090 -0.253 -0.115 0.111 -0.047 -0.007 0.020 - 4.022 0.152 -0.347 0.256 -0.268 -0.244 -0.109 -0.059 -0.061 0.236 -0.069 0.088 -0.004 - 3.610 0.272 -0.149 0.177 -0.083 -0.177 -0.062 0.007 -0.320 0.068 0.047 0.009 -0.001 - 5.081 0.840 -0.847 -0.176 0.012 -0.324 -0.243 -0.031 -0.225 -0.029 -0.032 -0.076 -0.106 - 4.316 0.540 -0.599 0.031 -0.042 -0.185 -0.169 -0.092 -0.141 0.039 -0.009 -0.015 -0.039 - 3.581 0.347 -0.119 0.238 0.097 0.026 -0.160 -0.127 -0.122 -0.053 -0.058 -0.019 -0.188 - 3.896 0.544 -0.146 0.024 -0.105 -0.089 -0.079 -0.066 -0.297 -0.078 -0.084 -0.002 -0.069 - 5.302 0.901 -0.432 -0.206 -0.379 -0.207 -0.042 0.039 -0.635 -0.117 -0.013 0.049 -0.054 - 4.048 0.366 -0.238 0.020 -0.238 -0.023 0.053 -0.121 -0.202 0.004 0.133 0.093 0.044 - 3.709 0.417 0.102 0.187 -0.112 -0.056 -0.279 -0.105 -0.068 0.073 0.032 0.022 -0.098 - 3.586 0.195 -0.180 -0.020 -0.210 -0.021 -0.095 -0.133 -0.144 0.119 -0.006 -0.041 -0.004 - 3.516 0.399 -0.139 -0.035 -0.121 0.032 -0.045 -0.048 -0.248 0.189 0.070 -0.015 0.113 - 3.444 0.248 -0.120 0.283 -0.182 -0.034 -0.025 -0.062 -0.199 0.178 0.129 0.026 -0.013 - 3.320 0.202 0.113 0.330 -0.123 -0.079 -0.254 -0.205 -0.103 0.111 0.013 -0.122 -0.082 - 3.597 0.395 -0.019 0.298 -0.087 -0.044 -0.142 -0.243 -0.232 0.093 0.082 -0.044 -0.109 - 3.508 0.370 -0.149 0.082 -0.064 -0.165 -0.270 -0.278 -0.180 0.197 0.215 -0.002 -0.153 - 3.183 0.267 -0.120 0.202 -0.115 0.060 -0.130 -0.287 -0.060 0.062 0.076 -0.030 -0.042 - 3.266 0.394 -0.156 0.103 -0.002 -0.037 -0.039 -0.162 -0.157 0.105 -0.089 -0.121 -0.018 - 3.376 0.372 -0.317 -0.004 -0.091 -0.161 -0.134 -0.080 -0.258 0.052 -0.077 0.025 0.040 - 3.249 0.173 -0.184 0.214 -0.205 -0.191 -0.173 -0.033 -0.001 0.094 0.038 -0.028 0.045 - 3.238 0.314 -0.152 0.223 0.027 -0.017 -0.026 -0.045 -0.087 0.021 0.058 0.037 0.075 - 3.845 0.563 -0.007 0.281 -0.000 -0.128 -0.177 -0.275 -0.278 -0.018 0.049 0.220 0.133 - 6.223 1.203 0.312 -0.003 -0.133 -0.226 -0.305 -0.168 -0.263 -0.051 -0.115 -0.103 -0.157 - 7.483 1.243 0.361 0.100 -0.113 -0.280 -0.358 -0.200 -0.330 -0.053 -0.094 -0.109 -0.220 - 6.799 1.408 -0.079 0.517 -0.201 -0.622 -0.154 -0.211 -0.412 0.114 -0.099 -0.172 -0.181 - 5.804 1.122 0.307 0.438 -0.185 -0.424 -0.204 -0.231 -0.334 0.051 0.043 -0.139 -0.140 - 4.883 0.514 0.505 0.398 -0.272 -0.006 -0.366 -0.298 -0.325 0.009 0.017 -0.047 -0.140 - 3.711 0.415 0.231 0.022 -0.320 -0.083 -0.267 -0.322 -0.153 -0.036 0.022 -0.049 0.059 - 5.384 0.281 -0.098 0.083 -0.433 -0.315 -0.071 -0.151 -0.160 -0.060 -0.148 -0.104 -0.066 - 8.235 0.145 -0.281 0.074 -0.529 -0.287 0.085 0.036 -0.025 0.070 -0.247 -0.231 -0.208 - 5.642 0.078 0.079 0.011 -0.337 -0.244 0.304 0.033 0.139 0.035 -0.270 -0.262 -0.199 - 4.873 -0.745 0.087 0.070 -0.156 -0.287 0.143 -0.130 -0.039 -0.148 -0.177 -0.050 -0.155 - 5.557 -0.726 0.007 0.014 -0.086 -0.311 -0.179 -0.054 0.103 0.003 -0.138 -0.025 -0.050 - 5.830 -0.801 -0.297 -0.166 -0.201 -0.462 -0.230 0.056 0.348 0.025 -0.191 0.074 -0.054 - 6.114 -0.563 -0.247 -0.146 -0.193 -0.473 -0.118 0.203 0.311 -0.052 -0.349 -0.096 -0.120 - 5.266 -0.339 -0.281 -0.082 -0.214 -0.425 -0.037 -0.049 0.148 0.064 -0.259 -0.087 -0.253 - 4.731 -0.028 -0.073 -0.197 -0.320 -0.152 0.119 0.163 -0.050 -0.048 -0.031 0.019 -0.043 - 4.477 0.333 0.165 0.103 -0.096 -0.065 -0.098 -0.032 -0.193 -0.032 -0.092 -0.187 -0.114 - 4.116 0.370 -0.031 0.060 0.005 -0.034 -0.131 0.017 -0.178 -0.080 -0.021 -0.087 -0.149 - 3.712 0.288 -0.059 -0.087 -0.100 -0.007 -0.086 0.070 -0.149 -0.038 -0.065 0.010 -0.150 - 3.856 0.305 -0.132 0.166 -0.093 -0.054 -0.063 -0.202 -0.221 -0.008 -0.078 -0.153 -0.084 - 3.873 0.359 -0.116 0.091 -0.217 -0.065 0.014 -0.054 -0.215 -0.178 -0.059 -0.082 -0.016 - 4.076 -0.025 0.182 0.103 -0.235 -0.081 0.011 0.033 -0.007 -0.034 -0.052 -0.000 -0.026 - 6.221 -0.417 0.130 0.143 -0.266 -0.222 0.100 -0.274 0.215 -0.216 -0.045 -0.099 -0.179 - 5.068 -0.308 0.259 0.021 -0.281 -0.113 0.102 -0.310 0.064 -0.268 -0.021 0.038 -0.148 - 5.483 0.434 0.085 0.151 -0.390 -0.145 -0.032 -0.080 0.110 -0.205 -0.171 -0.170 -0.124 - 4.623 0.219 0.056 0.123 -0.111 -0.069 0.043 -0.067 0.106 -0.268 -0.083 -0.192 -0.014 - 4.589 0.190 -0.031 0.120 -0.232 -0.107 -0.001 -0.191 -0.028 -0.306 -0.145 -0.220 -0.083 - 5.438 0.600 0.052 -0.042 -0.296 -0.089 -0.093 0.091 0.114 -0.233 -0.245 -0.227 -0.063 - 5.147 0.276 0.113 0.116 -0.118 -0.005 -0.047 0.025 0.019 -0.176 -0.312 -0.235 -0.192 - 5.476 0.022 0.009 -0.064 -0.255 -0.184 -0.023 0.174 -0.084 0.156 -0.039 -0.016 -0.198 - 5.620 -0.263 0.078 -0.162 -0.205 -0.164 0.072 0.024 -0.160 -0.073 -0.223 -0.110 -0.077 - 5.936 -0.223 0.014 -0.115 -0.084 -0.042 0.028 -0.047 -0.013 -0.049 -0.280 -0.028 0.039 - 6.053 -0.286 -0.107 -0.221 -0.183 -0.093 0.161 -0.044 -0.082 -0.033 -0.140 -0.152 -0.087 - 5.707 -0.573 -0.347 -0.421 -0.342 -0.335 0.059 0.035 0.100 0.201 -0.034 -0.063 0.062 - 5.097 -0.637 -0.203 -0.130 -0.210 -0.198 0.053 -0.115 -0.027 0.102 -0.089 -0.094 0.035 - 4.941 -0.377 -0.129 -0.147 -0.217 -0.201 -0.029 -0.242 -0.081 -0.039 -0.247 -0.095 0.149 - 4.514 -0.051 -0.117 -0.254 -0.215 -0.177 -0.007 0.063 -0.049 -0.120 -0.150 0.023 0.118 - 4.270 0.357 -0.094 -0.253 -0.166 -0.109 -0.137 -0.135 -0.097 0.011 -0.159 -0.193 -0.166 - 3.395 0.033 -0.256 0.160 0.086 -0.013 -0.075 -0.088 -0.084 0.144 -0.029 0.012 -0.002 - 3.314 0.116 -0.053 0.148 -0.089 -0.141 -0.190 0.023 -0.157 0.000 0.037 -0.049 -0.063 - 3.606 0.162 -0.102 0.045 -0.056 -0.015 0.063 -0.114 -0.107 0.019 -0.093 -0.056 -0.134 - 4.365 -0.468 0.184 -0.135 0.106 0.092 -0.109 -0.102 -0.127 -0.157 -0.066 -0.054 -0.110 - 4.364 -0.383 0.080 -0.105 0.005 -0.185 -0.182 -0.005 -0.018 0.032 0.092 0.011 0.036 - 3.457 0.014 -0.508 -0.020 0.043 -0.008 -0.172 0.005 -0.251 0.025 0.003 -0.068 -0.064 - 3.557 0.100 -0.361 -0.053 0.016 0.122 -0.083 -0.088 -0.174 0.002 0.018 -0.116 -0.036 - 3.500 0.161 -0.221 0.211 0.077 0.149 -0.066 -0.209 -0.168 0.010 0.091 0.088 -0.025 - 3.652 0.177 -0.167 0.044 -0.211 -0.065 -0.161 -0.114 0.014 -0.081 -0.082 -0.034 0.012 - 3.690 0.247 0.026 0.116 -0.095 0.147 -0.170 -0.181 -0.118 0.075 0.101 0.031 0.009 - 3.701 0.302 -0.093 0.156 0.054 0.045 -0.176 -0.078 -0.170 0.062 0.033 0.054 -0.028 - 3.762 0.319 -0.181 0.055 0.020 0.035 -0.143 -0.125 -0.300 0.001 0.085 0.112 -0.068 - 3.725 0.374 -0.239 -0.085 -0.251 -0.118 -0.084 -0.096 -0.119 0.063 0.127 0.163 -0.033 - 3.362 0.074 -0.259 -0.140 0.036 -0.075 -0.182 -0.219 0.066 0.172 0.010 0.106 -0.037 - 3.582 0.317 0.002 0.041 -0.142 -0.018 -0.279 -0.187 -0.057 -0.045 0.085 0.017 -0.093 - 3.569 0.228 -0.133 0.153 0.002 -0.173 -0.289 -0.306 -0.271 0.039 0.133 -0.034 -0.081 - 3.557 0.283 -0.391 0.075 -0.111 -0.017 -0.273 -0.307 -0.052 -0.002 -0.083 0.066 -0.203 - 3.391 0.165 -0.285 0.232 0.006 0.198 -0.162 -0.123 0.080 0.092 -0.062 -0.048 -0.220 - 3.849 0.379 -0.035 0.256 -0.001 -0.054 -0.169 -0.150 -0.069 -0.026 0.126 0.027 -0.103 - 3.810 0.420 0.017 0.125 0.085 -0.058 -0.342 -0.363 -0.109 0.035 0.073 -0.016 -0.157 - 5.467 -0.262 -0.204 0.047 0.105 -0.025 -0.400 0.130 -0.042 -0.189 -0.050 -0.050 -0.058 - 7.243 -0.515 -0.287 0.042 -0.027 -0.213 -0.542 0.281 0.064 -0.332 -0.112 -0.024 0.004 - 4.698 -0.377 -0.474 0.192 0.089 0.047 -0.522 0.142 -0.061 -0.333 0.086 0.041 0.001 - 3.341 -0.287 -0.407 0.064 0.097 -0.098 -0.187 -0.016 -0.227 -0.195 0.114 0.185 -0.154 - 3.876 -0.221 -0.296 -0.049 0.054 0.099 -0.027 0.015 -0.202 0.008 0.011 -0.013 -0.073 - 5.993 -0.544 -0.488 -0.061 -0.214 -0.079 -0.034 0.117 -0.166 -0.100 0.194 0.164 -0.170 - 7.275 -0.702 -1.124 -0.041 -0.277 -0.272 -0.219 0.293 -0.049 -0.221 0.012 0.178 -0.294 - 8.926 -0.730 -1.063 -0.144 -0.057 -0.244 -0.148 0.050 -0.160 -0.101 0.069 0.182 -0.311 - 10.360 -0.536 -1.073 -0.240 0.042 -0.313 0.118 0.085 -0.090 -0.146 -0.168 0.011 -0.231 - 12.029 0.356 -0.981 -0.446 -0.103 -0.497 0.013 -0.106 -0.252 -0.027 -0.386 0.071 -0.240 - 13.179 0.833 -1.360 -0.356 -0.237 -0.376 -0.254 0.110 -0.161 0.005 -0.366 -0.075 -0.166 - 14.184 0.461 -1.719 -0.169 -0.351 -0.285 -0.186 0.265 -0.087 0.028 -0.376 -0.255 -0.064 - 14.020 0.481 -1.810 -0.253 -0.343 -0.274 -0.172 0.239 -0.040 -0.028 -0.322 -0.308 0.005 - 14.369 0.379 -1.739 -0.180 -0.456 -0.149 -0.254 0.283 -0.092 0.034 -0.344 -0.330 0.023 - 14.575 0.387 -1.614 -0.259 -0.568 -0.028 -0.328 0.244 -0.190 0.160 -0.359 -0.345 -0.061 - 14.540 0.658 -1.502 -0.356 -0.681 0.078 -0.305 0.176 -0.350 0.318 -0.307 -0.316 -0.244 - 13.866 1.162 -1.241 -0.395 -0.726 -0.103 -0.208 0.022 -0.486 0.277 -0.143 -0.232 -0.255 - 12.655 1.025 -0.915 -0.068 -0.635 -0.307 0.099 -0.065 -0.435 0.226 -0.281 0.112 -0.074 - 11.561 0.590 -0.686 0.238 -0.158 -0.135 0.430 -0.047 -0.548 0.102 -0.782 0.087 -0.118 - 11.483 0.600 -0.650 0.227 -0.197 -0.192 0.432 -0.073 -0.446 0.065 -0.726 0.046 -0.038 - 11.485 0.424 -0.560 0.221 -0.149 -0.071 0.370 0.005 -0.546 -0.009 -0.782 -0.017 0.056 - 11.156 0.490 -0.540 0.293 -0.113 -0.079 0.404 0.053 -0.692 -0.020 -0.816 0.004 0.088 - 10.864 0.726 -0.570 0.324 -0.247 -0.097 0.293 0.221 -0.690 0.015 -0.696 -0.139 0.056 - 12.016 0.997 -0.489 -0.182 -0.439 -0.260 -0.162 -0.009 -0.662 0.059 -0.097 0.002 0.127 - 13.444 0.993 -1.041 -0.416 -0.622 -0.137 -0.361 -0.101 -0.578 0.355 -0.003 -0.100 -0.111 - 13.935 0.852 -1.315 -0.323 -0.685 -0.152 -0.532 -0.125 -0.388 0.472 -0.097 -0.319 -0.254 - 14.013 0.714 -1.278 -0.248 -0.461 -0.371 -0.499 -0.265 -0.079 0.465 -0.160 -0.370 -0.123 - 13.561 0.695 -0.999 -0.307 -0.141 -0.690 -0.403 -0.365 0.040 0.479 -0.408 -0.042 -0.033 - 12.310 0.282 -0.437 0.311 -0.259 -0.718 -0.481 -0.118 0.098 -0.035 -0.350 -0.025 -0.048 - 9.903 0.008 -0.147 0.203 -0.339 -0.181 -0.513 -0.079 0.160 0.181 -0.162 0.035 -0.081 - 8.475 0.423 -0.583 -0.054 -0.363 -0.410 -0.077 -0.229 0.204 0.215 -0.245 -0.332 -0.132 - 8.829 -0.275 -0.560 -0.154 -0.447 -0.309 -0.017 -0.085 0.379 0.298 -0.215 -0.348 -0.253 - 7.755 0.050 -0.369 -0.266 -0.395 -0.362 -0.029 -0.134 0.300 0.317 -0.244 -0.193 -0.067 - 11.030 -1.260 -0.351 0.088 -0.833 0.087 -0.237 -0.149 0.055 -0.214 -0.122 -0.152 -0.161 - 11.286 -1.691 -0.145 0.108 -0.878 -0.082 -0.129 -0.224 -0.086 -0.202 -0.096 -0.147 -0.126 - 11.207 -2.470 -0.017 0.466 -0.308 -0.278 -0.052 -0.091 -0.044 0.023 -0.180 -0.185 -0.009 - 12.503 -1.752 -0.431 0.012 -0.259 -0.420 -0.304 -0.148 -0.166 -0.142 -0.161 -0.014 0.045 - 12.091 -1.207 -0.266 0.584 0.183 -0.174 -0.405 -0.100 -0.222 -0.209 -0.198 -0.187 -0.025 - 11.912 -0.279 -0.135 0.334 0.648 0.097 -0.246 -0.297 -0.185 -0.374 -0.377 -0.286 -0.278 - 11.920 0.288 -0.181 0.053 0.328 -0.191 -0.386 -0.285 -0.149 -0.042 -0.050 -0.182 -0.383 - 11.788 0.831 -0.058 0.248 0.256 -0.091 -0.206 -0.245 -0.202 -0.022 -0.107 -0.306 -0.275 - 11.454 0.959 -0.046 0.382 0.121 0.045 -0.262 -0.309 -0.192 -0.049 -0.223 -0.101 -0.279 - 11.435 1.128 0.003 0.284 -0.073 0.018 -0.307 -0.178 -0.073 -0.118 -0.273 -0.132 -0.143 - 10.549 1.151 0.099 0.246 -0.050 0.090 -0.219 -0.184 -0.340 -0.205 -0.245 -0.160 -0.321 - 9.962 0.658 -0.179 0.178 0.090 0.213 0.032 -0.070 -0.376 -0.451 -0.142 -0.008 -0.160 - 10.064 0.591 -0.461 0.102 0.146 0.242 0.119 -0.108 -0.461 -0.399 -0.015 0.049 -0.117 - 9.167 0.346 -0.679 -0.105 0.092 0.485 0.075 -0.404 -0.592 -0.270 0.034 -0.063 -0.009 - 8.346 0.692 -0.262 0.146 -0.031 0.095 -0.192 -0.548 -0.402 -0.181 -0.051 0.031 -0.123 - 6.416 0.391 -0.171 -0.036 0.132 0.026 -0.266 -0.509 -0.359 0.021 0.104 -0.099 -0.152 - 5.692 0.146 -0.247 0.050 0.225 -0.088 -0.064 -0.252 -0.337 0.005 0.044 -0.270 -0.074 - 5.639 -0.263 -0.598 0.415 -0.012 0.002 -0.222 -0.276 -0.124 -0.124 -0.093 -0.177 0.065 - 6.381 -0.318 -0.690 0.474 -0.096 -0.215 -0.367 -0.172 0.062 -0.140 0.155 -0.103 0.205 - 7.245 -0.612 -0.715 0.309 -0.367 -0.208 -0.227 -0.104 0.117 -0.061 0.254 -0.062 0.131 - 8.271 -0.552 -1.006 0.080 -0.202 -0.186 -0.148 0.136 0.213 -0.250 0.063 -0.064 0.097 - 9.811 -0.114 -0.781 0.011 -0.113 -0.277 -0.465 0.175 0.019 -0.066 -0.137 -0.007 -0.055 - 10.414 -0.670 -1.047 -0.248 -0.153 -0.124 -0.177 0.295 -0.072 -0.238 -0.233 0.040 -0.113 - 11.265 -0.644 -1.311 -0.391 -0.055 -0.315 0.022 0.359 0.076 -0.379 -0.187 0.176 -0.147 - 11.826 -0.641 -1.307 -0.273 -0.023 -0.474 0.010 0.073 -0.069 -0.315 -0.059 0.280 -0.138 - 12.105 -0.669 -1.318 -0.213 0.015 -0.305 0.055 0.095 -0.182 -0.239 -0.291 -0.041 -0.214 - 12.256 -0.618 -1.185 -0.324 0.061 -0.097 -0.012 0.056 -0.161 -0.268 -0.418 0.089 -0.168 - 13.065 0.108 -1.003 -0.385 -0.112 -0.298 -0.271 0.117 -0.183 -0.086 -0.474 0.023 -0.144 - 14.045 0.485 -1.378 -0.574 -0.164 -0.388 -0.241 0.212 -0.169 -0.082 -0.371 -0.003 -0.229 - 14.692 0.318 -1.641 -0.428 -0.251 -0.288 -0.366 0.359 -0.162 -0.003 -0.358 -0.162 -0.241 - 14.664 0.382 -1.599 -0.445 -0.330 -0.335 -0.354 0.322 -0.129 -0.007 -0.381 -0.286 -0.083 - 14.916 0.300 -1.398 -0.405 -0.357 -0.332 -0.475 0.395 -0.252 0.155 -0.431 -0.293 -0.158 - 14.957 0.425 -1.296 -0.585 -0.284 -0.355 -0.477 0.250 -0.285 0.314 -0.350 -0.341 -0.302 - 14.663 0.785 -1.246 -0.603 -0.297 -0.420 -0.452 0.045 -0.382 0.529 -0.322 -0.292 -0.469 - 14.671 0.894 -0.861 -0.818 -0.441 -0.410 -0.301 -0.001 -0.610 0.501 -0.309 -0.185 -0.357 - 14.328 0.992 -0.464 -0.841 -0.542 -0.355 -0.200 -0.264 -0.764 0.286 -0.238 0.123 -0.239 - 13.830 0.921 -0.034 -0.748 -0.614 -0.243 -0.330 -0.289 -0.785 0.114 -0.446 0.338 -0.233 - 13.317 0.903 0.311 -0.795 -0.549 -0.244 -0.184 -0.343 -0.834 -0.075 -0.603 0.266 -0.167 - 12.810 1.012 0.377 -0.817 -0.461 -0.316 -0.129 -0.328 -0.758 0.004 -0.681 0.153 -0.205 - 12.165 1.174 0.334 -0.789 -0.308 -0.301 -0.029 -0.332 -0.751 0.024 -0.659 0.020 -0.268 - 11.358 1.468 0.030 -0.762 0.090 -0.362 0.165 -0.464 -0.866 0.036 -0.537 -0.094 -0.376 - 11.298 1.238 -0.293 -0.315 0.422 -0.506 0.003 -0.599 -0.684 0.069 -0.408 -0.430 -0.274 - 11.535 0.855 -0.438 0.280 0.361 -0.725 -0.310 -0.327 -0.484 0.123 -0.525 -0.481 -0.189 - 11.610 0.313 -0.282 0.608 0.133 -0.845 -0.040 -0.167 -0.615 -0.045 -0.327 -0.324 -0.222 - 11.525 -0.381 0.265 0.801 -0.157 -0.392 0.055 -0.350 -0.514 -0.040 -0.473 -0.307 -0.374 - 11.094 -0.426 0.660 0.556 -0.207 -0.345 -0.094 -0.176 -0.495 -0.018 -0.395 -0.355 -0.302 - 11.135 -0.548 0.842 0.501 -0.029 -0.282 -0.142 -0.113 -0.526 -0.031 -0.321 -0.421 -0.368 - 11.877 -0.778 0.960 0.514 -0.252 -0.143 -0.272 0.050 -0.577 0.035 -0.364 -0.325 -0.307 - 12.478 -1.113 0.942 0.633 -0.141 -0.214 -0.427 0.045 -0.531 0.142 -0.316 -0.249 -0.278 - 12.529 -1.186 1.071 0.609 -0.234 -0.167 -0.297 0.111 -0.705 0.116 -0.286 -0.300 -0.270 - 12.590 -1.105 1.013 0.635 -0.266 -0.078 -0.299 0.143 -0.768 0.112 -0.314 -0.292 -0.219 - 12.554 -0.969 0.947 0.634 -0.334 -0.087 -0.367 0.179 -0.667 0.088 -0.356 -0.280 -0.185 - 12.386 -0.783 0.816 0.743 -0.363 -0.134 -0.419 0.100 -0.639 0.110 -0.291 -0.335 -0.184 - 12.479 -0.757 0.754 0.764 -0.368 -0.083 -0.445 0.010 -0.774 0.149 -0.302 -0.269 -0.183 - 12.317 -0.668 0.668 0.807 -0.301 -0.156 -0.381 -0.099 -0.785 0.066 -0.357 -0.146 -0.256 - 12.350 -0.764 0.662 0.916 -0.233 -0.296 -0.270 -0.304 -0.668 -0.064 -0.344 -0.141 -0.245 - 12.608 -0.836 0.637 0.695 -0.293 -0.125 -0.123 -0.279 -0.771 -0.291 -0.262 -0.036 -0.402 - 12.735 -0.788 0.537 0.520 -0.068 -0.411 -0.163 -0.291 -0.551 -0.215 -0.254 -0.179 -0.444 - 12.546 -0.792 0.332 0.527 -0.070 -0.591 -0.164 -0.318 -0.236 -0.401 -0.272 0.033 -0.463 - 12.520 -0.746 0.412 0.296 0.064 -0.616 -0.170 -0.275 -0.339 -0.435 -0.230 -0.074 -0.459 - 12.665 -0.924 0.554 0.161 0.068 -0.502 -0.219 -0.204 -0.449 -0.492 -0.317 -0.077 -0.303 - 12.901 -0.761 0.506 0.164 0.055 -0.630 -0.133 -0.216 -0.291 -0.513 -0.225 -0.112 -0.384 - 13.037 -0.694 0.406 0.223 0.062 -0.480 -0.295 -0.166 -0.478 -0.411 -0.256 -0.120 -0.437 - 13.198 -0.830 0.439 0.490 -0.052 -0.450 -0.168 -0.174 -0.479 -0.361 -0.201 -0.161 -0.435 - 13.201 -0.601 0.347 0.510 -0.113 -0.380 -0.299 -0.070 -0.546 -0.370 -0.186 -0.320 -0.368 - 13.156 -0.677 0.516 0.709 -0.271 -0.447 -0.213 -0.018 -0.621 -0.168 -0.247 -0.391 -0.312 - 13.048 -0.669 0.382 0.952 -0.430 -0.233 -0.284 0.070 -0.707 -0.038 -0.414 -0.249 -0.325 - 12.951 -0.771 0.407 0.917 -0.259 -0.264 -0.275 0.026 -0.708 0.027 -0.420 -0.239 -0.285 - 12.753 -0.661 0.347 0.793 -0.106 -0.398 -0.223 0.067 -0.692 0.094 -0.405 -0.217 -0.244 - 12.530 -0.519 0.227 0.720 0.057 -0.470 -0.265 0.160 -0.662 0.094 -0.406 -0.159 -0.240 - 12.256 -0.405 0.170 0.554 0.276 -0.468 -0.381 0.190 -0.630 0.113 -0.399 -0.177 -0.149 - 11.710 -0.185 0.144 0.374 0.423 -0.355 -0.420 0.116 -0.671 0.175 -0.455 -0.184 -0.011 - 11.291 -0.038 0.130 0.262 0.420 -0.224 -0.329 -0.045 -0.696 0.276 -0.545 -0.213 0.091 - 11.049 0.063 0.125 0.176 0.420 -0.113 -0.358 -0.125 -0.666 0.363 -0.542 -0.288 0.026 - 11.024 0.062 0.208 0.072 0.445 -0.090 -0.416 -0.128 -0.655 0.370 -0.476 -0.298 -0.065 - 11.275 0.050 0.119 0.127 0.441 -0.126 -0.456 -0.046 -0.737 0.418 -0.569 -0.267 -0.090 - 11.412 0.105 0.086 0.194 0.415 -0.224 -0.491 -0.015 -0.666 0.384 -0.654 -0.196 -0.107 - 11.608 0.166 -0.079 0.401 0.302 -0.310 -0.489 0.017 -0.595 0.299 -0.674 -0.170 -0.085 - 11.492 0.298 -0.214 0.518 0.315 -0.450 -0.406 0.021 -0.480 0.084 -0.621 -0.127 -0.152 - 11.511 0.126 -0.143 0.555 0.379 -0.568 -0.355 0.082 -0.522 0.105 -0.576 -0.141 -0.135 - 11.405 0.096 -0.078 0.528 0.281 -0.549 -0.319 0.239 -0.694 0.143 -0.502 -0.183 -0.089 - 10.981 0.165 -0.044 0.498 0.304 -0.611 -0.244 0.261 -0.771 0.261 -0.552 -0.069 -0.283 - 10.724 0.097 -0.076 0.511 0.293 -0.543 -0.197 0.237 -0.656 0.034 -0.450 -0.180 -0.175 - 10.816 -0.010 0.071 0.416 0.277 -0.433 -0.259 0.137 -0.472 -0.018 -0.502 -0.387 0.013 - 10.935 0.338 0.067 0.246 0.374 -0.257 -0.382 0.004 -0.390 0.135 -0.525 -0.583 -0.081 - 10.748 0.515 0.058 0.007 0.479 -0.290 -0.255 -0.114 -0.440 0.313 -0.335 -0.578 -0.012 - 10.714 0.653 0.326 -0.342 0.309 -0.185 -0.246 -0.138 -0.535 0.317 -0.071 -0.337 -0.007 - 10.792 0.997 0.347 -0.582 0.246 -0.240 -0.224 -0.230 -0.716 0.033 -0.072 -0.473 -0.007 - 10.898 1.274 -0.004 -0.535 0.019 -0.224 0.002 -0.304 -0.564 -0.021 0.042 -0.283 0.042 - 11.220 1.250 0.063 -0.537 -0.149 -0.487 0.170 -0.469 -0.271 -0.201 0.056 -0.268 0.110 - 11.582 1.234 0.048 -0.599 -0.472 -0.357 0.056 -0.381 -0.211 -0.211 0.013 -0.212 0.206 - 11.841 1.116 0.007 -0.420 -0.861 -0.237 0.033 -0.267 -0.089 -0.250 -0.102 -0.078 0.141 - 11.848 0.911 0.086 -0.466 -0.911 -0.346 0.092 -0.254 0.152 -0.330 -0.022 -0.119 0.072 - 11.399 1.177 -0.082 -0.425 -0.953 -0.320 0.043 -0.252 0.305 -0.407 0.058 -0.132 -0.119 - 11.767 1.186 -0.198 -0.588 -1.055 -0.035 -0.053 -0.118 0.060 -0.270 -0.012 -0.035 -0.149 - 12.176 1.080 -0.378 -0.677 -0.994 0.112 0.006 -0.198 -0.055 -0.123 0.024 0.030 -0.257 - 12.152 1.202 -0.518 -0.764 -0.805 0.096 -0.055 -0.177 -0.058 -0.028 -0.039 0.065 -0.414 - 12.495 0.951 -0.636 -0.595 -0.727 0.053 0.023 -0.398 0.019 0.137 -0.104 0.097 -0.574 - 12.236 1.090 -0.871 -0.392 -0.664 0.082 -0.111 -0.435 0.054 0.198 -0.138 0.070 -0.614 - 12.079 1.062 -0.806 -0.416 -0.552 0.092 -0.361 -0.369 0.071 0.236 -0.152 0.112 -0.584 - 10.639 0.778 -0.354 -0.060 -0.343 0.183 -0.324 -0.388 0.067 0.091 -0.343 0.123 -0.327 - 10.522 0.824 -0.117 0.205 -0.401 -0.041 -0.286 -0.372 -0.033 0.107 -0.438 0.096 -0.274 - 10.798 0.690 -0.247 0.312 -0.347 -0.169 -0.210 -0.367 -0.101 0.108 -0.399 0.042 -0.193 - 13.088 0.409 -0.934 0.002 -0.122 -0.394 -0.583 0.061 -0.284 0.504 -0.323 0.090 -0.359 - 13.010 0.655 -0.938 -0.109 -0.354 -0.260 -0.629 0.025 -0.206 0.459 -0.350 0.026 -0.356 - 12.771 0.731 -0.835 -0.083 -0.606 -0.181 -0.618 0.022 -0.009 0.345 -0.363 0.008 -0.285 - 12.688 0.808 -0.910 0.009 -0.634 -0.191 -0.682 0.043 0.093 0.209 -0.345 0.075 -0.237 - 12.279 0.891 -0.720 0.092 -0.637 -0.191 -0.706 -0.138 0.092 0.200 -0.230 0.030 -0.152 - 11.848 1.019 -0.602 0.103 -0.429 -0.259 -0.655 -0.212 -0.146 0.259 -0.256 -0.091 -0.168 - 9.766 0.977 0.000 0.139 0.064 -0.174 -0.410 -0.152 -0.237 0.143 -0.179 -0.383 -0.342 - 9.682 0.850 -0.052 0.256 0.106 -0.122 -0.397 -0.027 -0.253 0.005 -0.261 -0.577 -0.071 - 9.760 0.721 0.040 0.218 0.182 -0.365 -0.367 0.085 -0.392 0.168 -0.254 -0.588 0.033 - 9.765 0.631 0.052 0.239 0.167 -0.364 -0.336 0.069 -0.389 0.216 -0.301 -0.534 0.017 - 9.706 0.540 0.165 0.204 0.197 -0.410 -0.229 -0.029 -0.355 0.258 -0.336 -0.607 0.159 - 9.865 0.502 0.089 0.172 0.239 -0.313 -0.180 -0.063 -0.454 0.300 -0.352 -0.465 0.080 - 12.095 0.315 -0.348 0.149 -0.028 -0.357 -0.574 0.041 -0.177 0.151 -0.264 -0.124 0.063 - 12.757 0.091 -0.212 0.214 -0.459 -0.589 -0.577 0.081 -0.339 0.155 -0.038 -0.021 0.019 - 13.028 -0.015 -0.130 0.316 -0.784 -0.515 -0.470 0.049 -0.403 0.344 -0.163 0.027 -0.100 - 13.285 -0.104 -0.122 0.318 -0.793 -0.581 -0.489 0.081 -0.457 0.369 -0.153 0.021 -0.193 - 13.480 -0.230 0.010 0.240 -0.830 -0.423 -0.654 0.144 -0.525 0.445 -0.302 0.139 -0.266 - 13.294 -0.244 0.192 0.184 -0.869 -0.387 -0.579 0.022 -0.550 0.395 -0.242 0.086 -0.201 - 13.238 -0.364 0.321 0.253 -0.856 -0.369 -0.602 -0.011 -0.544 0.338 -0.228 0.082 -0.196 - 13.109 -0.436 0.495 0.290 -0.868 -0.349 -0.516 -0.130 -0.514 0.275 -0.273 0.030 -0.158 - 12.559 -0.370 0.580 0.353 -0.753 -0.260 -0.495 -0.214 -0.548 0.213 -0.345 0.009 -0.121 - 11.825 -0.392 0.684 0.474 -0.769 -0.314 -0.347 -0.215 -0.618 0.192 -0.405 -0.121 -0.169 - 9.920 -0.599 0.707 0.523 -0.594 -0.258 -0.277 -0.111 -0.377 0.167 -0.319 -0.090 0.021 - 7.759 -0.253 0.701 0.264 -0.250 -0.199 0.091 -0.176 0.077 -0.023 -0.215 -0.254 -0.266 - 6.636 -0.149 0.944 0.266 -0.026 -0.174 -0.156 -0.498 -0.025 -0.154 0.004 -0.019 -0.299 - 5.583 0.407 0.483 0.104 -0.265 -0.229 -0.544 -0.253 -0.314 0.256 -0.171 -0.103 -0.107 - 5.470 0.367 0.372 0.158 -0.268 -0.213 -0.514 -0.161 -0.399 0.146 -0.053 0.082 -0.212 - 6.473 -0.090 0.063 0.190 -0.514 -0.095 -0.328 -0.234 -0.150 -0.096 -0.110 0.113 -0.145 - 10.795 -1.212 -0.458 0.039 -0.484 0.027 -0.148 -0.173 0.136 0.037 -0.073 -0.107 -0.284 - 12.236 -1.468 -0.485 -0.036 -0.681 -0.081 -0.283 -0.268 -0.058 -0.159 -0.221 -0.216 -0.164 - 11.931 -0.789 0.719 0.011 -0.521 0.011 -0.392 -0.248 -0.460 -0.085 -0.191 -0.202 -0.106 - 11.852 -0.128 0.794 0.177 -0.448 -0.415 -0.628 -0.014 -0.567 -0.170 -0.196 -0.068 -0.090 - 12.058 0.232 0.319 0.305 -0.489 -0.557 -0.679 0.067 -0.560 -0.237 -0.085 0.146 -0.292 - 12.161 0.217 0.005 0.255 -0.446 -0.506 -0.712 -0.005 -0.414 -0.205 -0.180 0.256 -0.397 - 12.160 0.102 -0.099 0.326 -0.522 -0.409 -0.847 -0.052 -0.407 -0.219 -0.234 0.303 -0.324 - 11.888 0.017 -0.281 0.450 -0.359 -0.243 -0.755 -0.031 -0.329 -0.183 -0.361 0.256 -0.319 - 8.344 -0.193 0.162 0.473 -0.166 -0.204 -0.802 -0.058 -0.080 -0.199 -0.133 0.301 -0.071 - 7.621 -0.071 0.175 0.599 -0.163 0.009 -0.628 0.124 -0.027 -0.026 -0.016 0.100 -0.013 - 6.744 0.341 -0.450 0.227 -0.044 -0.085 -0.367 -0.053 -0.122 0.051 -0.043 0.131 -0.119 - 8.969 0.212 -1.324 -0.275 -0.164 -0.153 -0.370 -0.235 -0.243 -0.233 -0.170 -0.138 -0.041 - 8.961 -0.683 -0.484 -0.220 -0.082 -0.103 -0.381 -0.103 -0.141 -0.208 -0.077 -0.298 -0.021 - 8.720 -0.551 -0.055 -0.258 -0.303 -0.164 -0.271 0.025 -0.177 -0.006 -0.145 -0.099 -0.017 - 9.854 -0.831 -0.372 -0.017 -0.220 -0.115 -0.170 0.061 -0.046 -0.107 -0.170 0.043 -0.098 - 11.528 -0.776 -0.600 -0.008 -0.193 -0.126 -0.180 0.096 -0.007 -0.125 -0.309 -0.163 -0.126 - 11.804 -0.439 -0.424 0.014 -0.055 -0.026 -0.189 -0.034 -0.036 -0.008 -0.229 -0.260 -0.122 - 12.330 0.080 -0.137 0.163 0.104 -0.173 -0.363 -0.246 -0.040 -0.159 -0.332 -0.309 -0.106 - 13.202 0.238 0.081 0.428 0.023 -0.121 -0.511 -0.404 -0.113 -0.168 -0.310 -0.440 -0.384 - 12.612 -0.042 -0.082 0.367 0.090 0.118 -0.449 -0.213 -0.139 -0.125 -0.331 -0.365 -0.246 - 11.890 0.264 -0.273 0.340 0.226 0.023 -0.552 -0.303 -0.267 -0.264 -0.127 -0.474 -0.132 - 12.191 1.023 -0.770 -0.404 -0.103 -0.062 -0.726 -0.331 -0.235 -0.177 -0.072 -0.180 -0.158 - 11.507 1.690 -0.757 -0.283 -0.078 0.119 -0.668 -0.502 -0.158 -0.113 -0.154 -0.044 -0.116 - 10.314 1.912 -0.357 -0.336 0.081 0.233 -0.503 -0.366 -0.108 -0.242 -0.085 -0.194 -0.153 - 7.912 1.708 0.150 -0.192 0.017 0.018 -0.275 -0.091 -0.042 -0.051 -0.055 -0.031 -0.178 - 5.775 1.021 0.079 0.042 0.146 0.246 -0.209 -0.276 -0.136 0.019 0.029 0.021 -0.090 - 5.310 0.815 -0.052 -0.049 0.003 0.091 -0.154 -0.242 -0.078 -0.004 0.047 0.039 -0.107 - 5.079 0.547 -0.156 -0.058 -0.118 -0.108 -0.376 -0.279 -0.113 0.173 0.124 0.021 0.091 - 4.811 0.386 -0.048 -0.091 0.061 -0.047 -0.353 -0.231 -0.081 -0.010 0.037 -0.051 -0.030 - 4.971 0.469 -0.075 -0.049 0.025 -0.012 -0.205 -0.287 -0.238 0.150 -0.150 -0.011 -0.079 - 7.530 -0.796 0.057 0.219 0.044 -0.106 -0.381 -0.043 -0.151 -0.182 0.051 -0.149 0.107 - 12.366 0.466 0.285 0.086 -0.414 -0.260 -0.169 -0.107 -0.336 -0.364 -0.143 -0.286 -0.046 - 13.528 1.184 0.076 0.444 -0.464 -0.391 0.159 -0.258 -0.389 -0.315 -0.225 -0.184 -0.120 - 11.661 0.851 0.385 0.525 -0.552 -0.467 0.047 -0.213 -0.227 -0.116 -0.284 -0.161 -0.087 - 10.374 -0.200 0.553 0.622 -0.196 -0.427 0.168 -0.334 -0.501 -0.188 -0.301 -0.148 -0.162 - 11.225 -0.094 0.315 0.440 -0.497 -0.292 -0.193 -0.341 -0.374 -0.263 -0.263 -0.210 -0.150 - 11.926 -0.146 0.255 0.729 -0.265 -0.454 -0.287 -0.072 -0.643 -0.133 -0.237 -0.236 -0.111 - 12.178 -0.337 0.338 0.720 -0.300 -0.286 -0.211 -0.162 -0.763 -0.011 -0.386 -0.166 -0.169 - 11.918 -0.383 0.362 0.779 -0.227 -0.470 -0.016 -0.092 -0.881 -0.005 -0.326 -0.275 -0.125 - 11.270 -0.191 0.001 0.692 0.175 -0.551 -0.208 0.164 -0.981 -0.110 -0.395 -0.232 -0.102 - 9.960 0.374 0.085 0.542 0.468 -0.477 -0.340 0.415 -0.794 0.058 -0.229 -0.235 -0.151 - 7.602 0.407 0.396 0.074 0.220 -0.055 -0.085 0.095 -0.331 0.111 -0.065 -0.194 -0.075 - 9.281 -0.975 0.381 0.284 0.436 -0.407 -0.020 0.035 0.090 -0.202 -0.494 0.024 -0.064 - 9.442 -1.264 0.132 0.389 0.235 -0.277 0.074 -0.073 0.099 -0.323 -0.448 0.103 -0.084 - 8.476 -0.979 -0.099 0.242 0.094 -0.082 0.071 -0.059 0.056 -0.325 -0.353 0.012 0.002 - 11.798 -0.537 0.068 0.160 -0.081 -0.028 -0.105 -0.126 -0.189 -0.154 -0.149 -0.027 -0.068 - 12.674 1.024 0.173 -0.237 -0.396 -0.219 -0.186 -0.051 -0.189 -0.273 -0.188 -0.014 0.086 - 12.600 1.014 0.358 -0.034 -0.403 -0.080 -0.309 -0.199 -0.252 -0.322 -0.226 -0.169 0.005 - 12.121 1.093 0.523 -0.126 -0.532 0.118 -0.154 -0.151 -0.089 -0.376 -0.168 -0.209 -0.039 - 11.901 0.941 0.711 -0.355 -0.899 0.010 -0.016 -0.318 -0.140 -0.517 -0.091 -0.226 0.040 - 11.241 1.003 0.838 -0.724 -0.711 0.001 -0.078 -0.330 -0.087 -0.420 -0.079 -0.062 0.119 - 10.908 0.447 0.859 -0.710 -0.569 -0.035 -0.146 -0.171 -0.271 -0.324 -0.238 0.129 -0.209 - 8.469 0.404 0.787 -0.206 -0.417 0.053 0.008 0.060 -0.236 -0.133 -0.357 0.061 -0.100 - 6.604 0.313 0.716 0.235 -0.202 -0.151 -0.084 -0.184 -0.050 0.010 -0.226 -0.028 -0.112 - 6.068 0.273 0.504 0.136 -0.061 -0.040 -0.002 -0.299 -0.028 -0.183 -0.093 0.140 -0.088 - 9.418 -0.964 0.037 0.220 -0.368 0.040 -0.377 0.027 0.126 0.058 -0.099 -0.207 -0.138 - 11.343 -1.154 0.054 0.003 -0.386 0.020 -0.389 0.000 0.100 0.103 -0.111 -0.223 -0.207 - 10.525 -0.572 0.732 -0.097 -0.400 -0.035 -0.466 -0.298 -0.408 -0.135 -0.193 -0.062 -0.302 - 11.268 0.213 0.411 -0.026 -0.292 0.281 -0.122 -0.459 -0.562 -0.187 -0.026 0.105 -0.277 - 9.156 0.728 0.629 -0.299 -0.119 0.446 -0.234 -0.524 -0.389 -0.193 0.156 0.102 -0.228 - 6.426 0.721 0.339 0.102 -0.001 0.234 0.142 -0.269 -0.381 -0.156 -0.011 -0.317 -0.139 - 6.052 0.780 0.665 -0.126 0.027 0.239 0.254 -0.077 -0.309 -0.277 -0.172 -0.061 -0.072 - 6.047 0.894 0.448 -0.049 0.038 0.173 0.092 -0.148 -0.241 -0.134 -0.107 -0.191 -0.014 - 6.145 0.839 0.366 0.194 -0.153 0.083 0.184 -0.066 -0.293 -0.195 -0.047 0.031 -0.045 - 5.444 0.543 0.404 0.229 0.051 -0.048 0.145 0.019 -0.087 -0.047 -0.035 -0.029 -0.236 - 5.041 0.580 0.375 0.043 0.163 0.034 -0.002 -0.026 0.021 0.028 -0.182 -0.031 -0.094 - 4.591 0.471 0.167 0.210 0.414 0.201 0.163 0.037 -0.195 0.043 -0.073 -0.193 -0.135 - 10.275 0.467 0.554 0.124 0.064 -0.047 -0.369 -0.209 -0.318 -0.293 -0.068 -0.198 -0.121 - 12.052 1.117 0.730 -0.031 -0.135 -0.132 -0.426 -0.125 -0.280 -0.446 -0.165 -0.323 -0.134 - 10.756 0.964 0.812 0.003 -0.113 0.035 -0.451 -0.181 -0.157 -0.181 -0.034 -0.248 -0.166 - 9.270 0.534 0.792 0.054 -0.157 -0.072 -0.296 -0.074 -0.192 0.034 -0.075 -0.268 -0.164 - 9.030 0.717 1.087 -0.634 -0.603 -0.323 -0.418 -0.155 -0.286 -0.041 -0.457 -0.121 -0.293 - 9.908 0.497 1.128 -0.480 -0.765 -0.182 -0.509 -0.152 -0.165 -0.010 -0.535 -0.082 -0.292 - 10.238 0.365 1.120 -0.597 -0.994 -0.164 -0.173 -0.093 -0.189 -0.334 -0.319 -0.227 -0.255 - 11.283 0.273 0.362 -0.246 -0.890 0.012 -0.251 -0.313 -0.016 -0.527 -0.438 -0.236 -0.210 - 11.692 0.506 -0.099 -0.063 -0.513 0.252 -0.163 -0.806 -0.065 -0.300 -0.373 -0.108 -0.152 - 12.161 0.510 -0.560 0.619 -0.263 -0.062 -0.458 -0.621 -0.122 -0.208 -0.283 -0.175 -0.131 - 12.321 0.110 -0.324 0.987 -0.301 -0.401 -0.506 -0.252 -0.360 -0.183 -0.378 -0.150 -0.094 - 11.821 -0.130 0.066 0.948 -0.215 -0.585 -0.191 -0.214 -0.642 0.089 -0.546 -0.045 -0.343 - 11.531 -0.432 0.411 0.730 -0.098 -0.308 -0.314 -0.183 -0.572 0.110 -0.435 -0.153 -0.307 - 11.045 -0.317 0.268 1.031 -0.380 -0.165 -0.224 -0.180 -0.525 -0.014 -0.269 -0.204 -0.285 - 10.828 -0.355 0.409 0.861 -0.192 -0.232 -0.092 -0.199 -0.678 0.038 -0.292 -0.150 -0.136 - 11.215 -0.641 0.438 0.850 -0.189 -0.331 -0.203 0.012 -0.647 0.123 -0.370 -0.149 -0.148 - 10.825 -0.468 -0.029 1.060 -0.054 -0.453 -0.203 0.096 -0.813 0.266 -0.288 -0.164 -0.239 - 8.779 0.016 -0.042 0.789 0.052 -0.373 -0.063 0.476 -0.764 0.081 -0.425 -0.239 -0.290 - 5.929 0.762 0.287 0.377 -0.112 0.033 0.253 0.191 -0.377 -0.018 -0.257 -0.164 -0.060 - 5.711 0.694 0.129 0.566 -0.178 -0.278 0.265 0.043 -0.342 0.148 -0.073 -0.240 -0.127 - 5.127 0.531 0.137 0.529 0.112 -0.157 0.110 0.025 -0.446 0.165 -0.147 -0.040 -0.040 - 4.736 0.344 -0.050 0.376 0.048 -0.139 -0.023 -0.112 -0.432 0.015 -0.166 -0.007 -0.067 - 4.006 0.321 -0.253 0.218 0.073 -0.084 0.045 -0.117 -0.408 0.123 0.015 0.132 -0.106 - 7.082 -0.575 0.019 0.161 0.041 0.017 -0.074 -0.044 -0.124 -0.155 -0.077 -0.021 -0.110 - 12.746 0.859 0.178 -0.052 -0.231 -0.334 -0.342 -0.081 0.029 -0.160 -0.243 -0.188 -0.359 - 13.085 1.134 0.200 0.131 -0.218 -0.278 -0.354 -0.145 0.036 -0.219 -0.278 -0.134 -0.308 - 11.496 0.753 0.743 0.217 -0.239 -0.195 -0.201 -0.010 -0.037 -0.221 -0.308 -0.065 -0.323 - 10.007 0.036 0.666 0.416 0.012 -0.055 0.004 -0.010 -0.016 -0.179 -0.120 0.008 -0.248 - 8.808 -0.438 0.497 0.174 -0.088 0.081 -0.026 0.079 -0.083 -0.172 -0.154 -0.060 -0.176 - 8.432 -0.820 0.415 0.261 0.138 -0.243 -0.243 -0.084 0.072 -0.107 -0.242 -0.081 -0.038 - 9.211 -0.506 0.248 0.199 0.015 -0.129 -0.125 0.019 -0.018 -0.204 -0.271 -0.064 -0.026 - 10.402 -0.288 0.188 0.116 -0.021 -0.177 -0.101 0.025 0.104 -0.390 -0.310 -0.018 -0.093 - 9.486 -0.437 0.321 0.079 -0.048 -0.214 -0.275 -0.127 0.042 -0.039 -0.339 0.067 -0.216 - 10.450 -0.062 -0.144 0.317 -0.426 -0.468 -0.455 -0.206 -0.105 0.135 -0.322 0.044 -0.161 - 12.103 0.316 -0.467 0.010 -0.456 -0.376 -0.722 0.169 -0.055 0.183 -0.456 0.244 -0.226 - 12.300 0.347 -0.355 -0.059 -0.547 -0.331 -0.995 0.367 0.051 0.111 -0.250 0.307 -0.348 - 12.170 0.214 -0.225 0.246 -0.844 -0.151 -0.770 0.294 -0.013 0.030 -0.124 0.240 -0.444 - 12.464 0.153 -0.113 0.030 -0.638 -0.180 -0.826 0.485 -0.263 0.092 -0.097 0.175 -0.507 - 12.623 -0.091 -0.025 0.251 -0.690 -0.265 -0.590 0.356 -0.360 0.179 -0.012 -0.042 -0.396 - 12.333 -0.227 0.226 0.267 -0.818 -0.187 -0.408 0.130 -0.272 0.179 0.001 -0.148 -0.298 - 11.705 -0.262 0.304 0.291 -0.833 -0.188 -0.204 -0.087 -0.154 0.248 -0.137 -0.160 -0.078 - 11.118 -0.112 0.372 -0.040 -0.293 -0.367 -0.217 -0.004 -0.074 0.009 -0.148 -0.212 0.007 - 10.723 0.217 0.325 -0.165 0.073 -0.557 -0.219 0.148 -0.223 0.022 -0.144 -0.284 0.063 - 10.647 0.372 0.283 -0.221 0.107 -0.580 -0.248 0.254 -0.404 0.150 -0.196 -0.301 0.047 - 10.440 0.372 0.315 -0.219 0.192 -0.610 -0.174 0.245 -0.482 0.156 -0.280 -0.293 0.080 - 9.859 0.384 0.413 -0.085 -0.061 -0.734 0.150 0.109 -0.422 0.121 -0.242 -0.377 0.121 - 9.427 0.275 0.408 0.128 0.015 -0.902 0.085 0.124 -0.335 -0.017 -0.244 -0.340 0.141 - 9.541 0.340 -0.049 0.412 -0.086 -0.701 -0.224 0.135 -0.145 0.119 -0.138 -0.366 0.115 - 10.135 0.279 -0.321 0.185 0.260 -0.529 -0.453 -0.232 -0.131 0.121 -0.228 -0.294 0.062 - 10.325 -0.096 -0.075 -0.036 0.194 -0.613 -0.414 -0.152 0.116 -0.027 -0.290 -0.150 0.023 - 9.650 -0.747 0.310 -0.056 0.057 -0.523 -0.213 -0.034 0.078 -0.173 -0.208 -0.118 0.067 - 9.240 -1.212 0.327 -0.012 0.140 -0.282 -0.289 -0.217 -0.069 -0.152 -0.164 -0.010 0.096 - 9.496 -1.173 0.138 -0.444 0.186 -0.250 -0.159 -0.078 -0.083 -0.136 -0.162 -0.024 -0.118 - 9.556 -1.479 0.156 -0.400 0.147 -0.204 -0.131 -0.059 -0.047 -0.008 -0.119 -0.107 -0.163 - 9.990 -1.559 -0.027 -0.461 0.159 -0.260 -0.072 -0.059 0.008 -0.021 -0.088 -0.075 -0.049 - 10.594 -1.248 0.211 -0.078 0.219 -0.277 -0.309 -0.172 0.069 -0.088 -0.175 -0.040 -0.103 - 11.538 -0.551 0.297 -0.117 -0.043 -0.543 -0.366 -0.374 -0.167 0.094 -0.257 -0.072 -0.184 - 11.986 0.391 -0.068 -0.142 -0.464 -0.604 -0.355 -0.441 0.042 0.014 -0.411 0.208 -0.074 - 12.331 0.760 -0.569 -0.187 -0.397 -0.569 -0.403 -0.366 0.121 0.140 -0.384 0.224 -0.093 - 13.091 0.407 -0.744 -0.191 -0.431 -0.481 -0.474 -0.061 0.120 0.032 -0.275 0.038 -0.074 - 13.413 0.176 -0.762 -0.132 -0.446 -0.616 -0.524 0.142 0.104 0.017 -0.335 0.142 -0.126 - 13.039 0.156 -0.556 -0.202 -0.575 -0.568 -0.547 0.293 -0.001 0.162 -0.467 0.192 -0.248 - 13.351 0.295 -0.704 -0.403 -0.540 -0.307 -0.770 0.230 0.172 0.049 -0.410 0.079 -0.239 - 13.397 0.339 -0.838 -0.447 -0.428 -0.435 -0.661 0.326 0.039 -0.003 -0.263 -0.078 -0.150 - 13.724 0.042 -0.914 -0.267 -0.546 -0.465 -0.467 0.256 0.034 0.123 -0.404 -0.082 -0.126 - 13.189 0.325 -0.897 -0.444 -0.534 -0.302 -0.677 0.315 -0.066 0.282 -0.455 -0.090 -0.144 - 13.655 0.112 -1.024 -0.300 -0.543 -0.496 -0.469 0.269 0.022 0.197 -0.441 -0.135 -0.149 - 13.423 0.237 -0.982 -0.324 -0.603 -0.398 -0.494 0.285 -0.080 0.257 -0.400 -0.208 -0.139 - 13.769 0.202 -0.995 -0.362 -0.539 -0.373 -0.511 0.312 -0.198 0.320 -0.419 -0.250 -0.091 - 13.621 0.176 -1.005 -0.352 -0.591 -0.266 -0.589 0.321 -0.136 0.230 -0.370 -0.255 -0.018 - 13.280 0.378 -1.097 -0.448 -0.487 -0.292 -0.564 0.362 -0.139 0.232 -0.427 -0.220 -0.040 - 13.165 0.340 -0.983 -0.650 -0.425 -0.348 -0.428 0.283 -0.140 0.310 -0.414 -0.397 -0.021 - 13.357 0.425 -1.170 -0.586 -0.384 -0.272 -0.559 0.310 -0.170 0.383 -0.438 -0.456 0.007 - 13.367 0.559 -1.215 -0.663 -0.339 -0.112 -0.588 0.176 -0.202 0.449 -0.418 -0.447 -0.027 - 13.318 0.665 -1.374 -0.534 -0.411 -0.252 -0.380 -0.004 -0.099 0.347 -0.300 -0.384 -0.152 - 12.812 0.701 -1.053 -0.814 -0.431 -0.131 -0.440 0.046 -0.199 0.413 -0.237 -0.458 -0.116 - 12.626 0.684 -0.899 -0.920 -0.476 -0.069 -0.476 0.031 -0.278 0.525 -0.202 -0.418 -0.181 - 12.848 0.710 -0.803 -0.823 -0.596 -0.045 -0.481 -0.010 -0.376 0.495 -0.082 -0.341 -0.228 - 12.497 0.903 -0.706 -0.967 -0.415 -0.075 -0.555 0.042 -0.385 0.324 0.049 -0.298 -0.217 - 12.039 0.854 -0.525 -0.958 -0.479 -0.116 -0.374 -0.125 -0.400 0.295 0.109 -0.209 -0.283 - 11.924 0.803 -0.553 -0.805 -0.569 -0.162 -0.392 -0.190 -0.454 0.344 0.178 -0.200 -0.288 - 12.190 0.725 -0.612 -0.558 -0.654 -0.119 -0.447 -0.213 -0.507 0.342 0.141 -0.198 -0.214 - 12.057 0.711 -0.525 -0.733 -0.445 -0.352 -0.403 -0.503 -0.306 0.177 0.058 -0.150 -0.173 - 10.171 0.700 -0.298 -0.766 -0.296 -0.363 -0.389 -0.673 -0.177 0.232 0.220 -0.072 -0.085 - 9.989 0.782 -0.154 -0.884 -0.001 -0.298 -0.486 -0.721 -0.130 0.015 0.032 -0.077 -0.106 - 6.991 0.464 -0.116 -0.510 -0.133 -0.539 -0.444 -0.701 0.006 0.499 0.170 -0.076 -0.115 - 6.334 0.534 -0.366 -0.294 -0.158 -0.398 -0.407 -0.255 0.013 0.383 -0.011 -0.129 -0.173 - 5.773 0.814 -0.365 -0.329 -0.323 -0.325 -0.284 -0.144 0.027 0.376 0.058 -0.080 -0.097 - 5.233 0.611 -0.340 -0.400 -0.384 -0.338 -0.399 -0.093 0.133 0.278 0.071 -0.065 -0.060 - 4.735 0.671 -0.205 -0.428 -0.282 -0.258 -0.450 0.033 0.204 0.323 0.003 -0.008 -0.151 - 4.397 0.593 -0.135 -0.135 -0.438 -0.461 -0.510 -0.105 -0.011 0.300 0.011 -0.037 -0.181 - 4.423 0.678 -0.305 -0.288 -0.199 -0.181 -0.284 0.044 0.160 0.241 -0.056 0.047 -0.084 - 4.588 0.788 -0.183 -0.212 -0.211 -0.133 -0.335 -0.204 -0.032 0.315 0.011 0.066 -0.298 - 4.323 0.410 -0.368 -0.213 -0.126 -0.068 -0.043 -0.221 0.037 0.268 -0.010 0.133 -0.343 - 8.492 -0.407 -0.232 -0.462 -0.183 -0.266 -0.367 -0.174 -0.056 -0.044 0.009 -0.063 -0.171 - 8.791 -0.352 -0.020 -0.405 -0.044 -0.278 -0.398 -0.205 0.011 -0.040 0.028 -0.079 -0.227 - 7.791 -1.156 0.156 -0.324 0.109 -0.214 -0.202 -0.186 -0.105 0.005 0.054 -0.218 -0.049 - 8.919 -1.667 -0.171 -0.370 0.293 -0.136 0.057 -0.056 -0.065 -0.153 -0.085 -0.060 0.024 - 9.738 -1.547 -0.258 -0.313 0.135 -0.217 -0.097 -0.044 0.048 0.051 -0.011 -0.011 0.045 - 9.997 -1.382 -0.077 -0.299 0.106 -0.239 -0.239 -0.250 -0.082 -0.158 -0.081 -0.012 0.001 - 10.140 -1.330 -0.039 -0.275 0.215 -0.187 0.004 -0.121 -0.052 -0.158 -0.204 -0.123 -0.107 - 10.196 -1.112 0.101 -0.461 0.096 -0.296 -0.179 0.054 -0.092 -0.099 -0.151 0.010 -0.148 - 10.168 -1.238 -0.022 -0.379 0.018 -0.290 -0.240 -0.017 0.135 0.053 -0.185 -0.006 0.036 - 10.147 -1.246 -0.082 -0.443 -0.043 -0.334 -0.193 -0.072 0.070 0.136 -0.334 0.073 -0.120 - 10.342 -0.275 0.432 -0.255 -0.174 -0.510 -0.522 -0.463 0.008 0.096 -0.384 -0.085 -0.071 - 10.970 0.451 0.197 -0.406 -0.322 -0.202 -0.567 -0.776 0.115 -0.014 -0.211 0.075 -0.042 - 11.530 0.471 0.143 -0.499 -0.521 0.078 -0.762 -0.785 0.044 0.269 -0.403 0.189 -0.140 - 12.201 0.332 0.089 -0.435 -0.484 -0.187 -0.663 -0.623 0.031 0.353 -0.494 0.127 -0.114 - 12.477 0.161 -0.104 -0.415 -0.413 -0.304 -0.631 -0.561 0.160 0.241 -0.414 0.073 -0.143 - 12.607 -0.020 -0.214 -0.374 -0.466 -0.458 -0.580 -0.463 0.233 0.218 -0.353 0.064 -0.074 - 12.560 0.043 -0.230 -0.323 -0.526 -0.421 -0.610 -0.383 0.184 0.291 -0.365 0.034 -0.070 - 12.728 0.073 -0.272 -0.280 -0.616 -0.315 -0.568 -0.354 0.165 0.273 -0.336 -0.145 -0.025 - 12.855 0.066 -0.552 -0.298 -0.539 -0.266 -0.536 -0.380 0.211 0.222 -0.323 -0.150 -0.032 - 11.920 0.387 -0.449 -0.515 -0.578 -0.097 -0.704 -0.319 0.234 0.292 -0.278 -0.107 -0.025 - 12.792 0.151 -0.622 -0.419 -0.546 -0.271 -0.557 -0.306 0.196 0.253 -0.240 -0.210 -0.008 - 12.717 0.316 -0.531 -0.467 -0.541 -0.252 -0.487 -0.369 0.188 0.259 -0.288 -0.289 0.033 - 12.149 0.669 -0.649 -0.472 -0.537 -0.134 -0.586 -0.267 0.105 0.228 -0.242 -0.256 -0.078 - 11.866 0.729 -0.684 -0.547 -0.504 -0.106 -0.590 -0.395 0.188 0.294 -0.250 -0.262 -0.014 - 12.407 0.554 -0.817 -0.422 -0.482 -0.230 -0.510 -0.441 0.218 0.252 -0.179 -0.274 -0.018 - 12.633 0.488 -0.752 -0.401 -0.521 -0.178 -0.514 -0.343 0.137 0.145 -0.134 -0.276 -0.032 - 12.511 0.487 -0.815 -0.280 -0.606 -0.207 -0.308 -0.384 0.113 0.160 -0.210 -0.211 -0.092 - 12.284 0.408 -0.961 -0.280 -0.613 -0.201 -0.183 -0.422 0.244 0.090 -0.117 -0.252 -0.063 - 12.434 0.179 -0.915 -0.286 -0.583 -0.217 -0.095 -0.433 0.307 0.039 -0.110 -0.257 -0.219 - 11.977 0.170 -0.742 -0.240 -0.392 -0.229 -0.193 -0.343 0.370 0.065 -0.024 -0.141 -0.283 - 11.485 0.324 -0.707 -0.265 -0.293 -0.123 -0.119 -0.551 0.348 -0.100 0.038 -0.144 -0.444 - 10.476 0.528 -0.595 -0.405 -0.163 -0.015 -0.099 -0.487 0.317 -0.144 0.057 -0.274 -0.494 - 9.434 0.514 -0.431 -0.354 -0.172 0.040 0.002 -0.408 0.323 -0.157 0.139 -0.233 -0.464 - 8.292 0.286 -0.253 -0.216 -0.052 0.056 -0.004 -0.274 0.230 -0.231 -0.097 -0.114 -0.343 - 7.660 -0.093 -0.421 -0.500 -0.029 0.292 0.078 0.054 0.167 -0.032 -0.124 -0.253 -0.264 - 6.829 -0.220 -0.096 -0.443 -0.017 0.124 -0.166 -0.038 0.291 0.045 -0.123 -0.157 -0.280 - 6.105 -0.243 -0.226 -0.544 -0.130 -0.148 -0.133 -0.035 -0.088 0.080 -0.013 -0.100 -0.048 - 5.625 -0.158 0.063 -0.290 -0.270 -0.252 -0.110 -0.082 -0.066 0.142 -0.151 -0.138 0.005 - 5.430 -0.005 -0.249 -0.047 -0.035 -0.213 -0.318 -0.212 -0.073 0.135 -0.065 0.035 -0.146 - 5.831 -0.252 -0.034 -0.133 0.205 -0.329 -0.387 -0.077 -0.005 0.267 -0.096 -0.024 -0.038 - 5.551 -0.494 -0.258 -0.157 0.317 -0.146 -0.415 -0.144 0.170 0.262 -0.258 -0.034 -0.013 - 5.219 -0.377 -0.287 -0.185 0.368 -0.131 -0.304 0.026 0.010 0.174 -0.167 0.001 0.034 - 4.121 -0.039 -0.315 -0.008 0.068 -0.136 -0.079 -0.049 -0.046 0.191 0.024 -0.105 -0.004 - 5.803 -0.389 -0.213 -0.020 0.018 -0.075 -0.301 -0.030 0.028 -0.025 -0.110 -0.080 0.071 - 9.541 -0.630 -0.361 -0.113 0.029 -0.077 -0.456 -0.105 0.000 -0.133 -0.177 -0.120 -0.005 - 7.334 -0.595 -0.246 0.042 0.154 -0.061 -0.469 -0.054 0.073 -0.164 -0.218 -0.130 -0.024 - 7.256 -0.652 -0.232 0.216 0.228 -0.023 -0.260 -0.055 -0.117 -0.284 -0.502 -0.181 0.038 - 7.696 -0.661 -0.394 -0.043 0.051 -0.049 -0.334 -0.060 0.047 -0.124 -0.201 0.046 -0.150 - 7.960 -0.808 -0.497 -0.050 0.096 -0.168 -0.301 -0.130 -0.185 -0.153 -0.114 0.054 -0.069 - 8.374 -0.976 -0.518 0.071 0.256 -0.127 -0.245 -0.023 -0.072 0.023 -0.331 -0.176 -0.111 - 8.592 -1.097 -0.582 -0.037 0.015 -0.080 -0.210 0.103 -0.114 -0.103 -0.169 0.186 0.032 - 8.835 -1.035 -0.647 0.029 -0.004 -0.220 -0.405 -0.042 -0.262 -0.254 -0.233 0.164 -0.061 - 8.839 -1.057 -0.473 0.007 0.041 -0.338 -0.321 -0.041 -0.162 -0.175 -0.195 0.157 -0.084 - 8.680 -1.109 -0.514 0.265 0.128 -0.324 -0.380 -0.076 -0.040 -0.248 -0.315 0.074 -0.159 - 9.164 -0.951 -0.392 -0.033 -0.035 -0.305 -0.297 0.052 -0.058 -0.305 -0.118 0.111 -0.113 - 9.296 -1.178 -0.564 0.028 0.016 -0.171 -0.211 0.047 0.003 -0.306 -0.172 0.156 0.049 - 9.325 -1.117 -0.531 -0.072 0.041 -0.194 -0.256 -0.034 -0.010 -0.157 -0.125 0.244 0.083 - 9.170 -0.938 -0.470 -0.032 0.040 -0.270 -0.395 -0.098 -0.103 0.074 -0.046 0.206 -0.155 - 9.071 -0.903 -0.521 -0.102 -0.095 -0.228 -0.230 0.046 -0.072 0.127 -0.173 0.170 -0.185 - 9.377 -0.826 -0.480 -0.110 -0.282 -0.355 -0.562 -0.027 -0.029 0.028 -0.130 0.169 -0.081 - 9.534 -0.763 -0.250 0.000 -0.119 -0.466 -0.477 -0.114 -0.018 -0.120 -0.345 0.007 -0.108 - 9.577 -0.827 -0.473 0.124 -0.232 -0.531 -0.469 -0.041 0.125 -0.064 -0.356 -0.005 -0.099 - 9.489 -1.082 -0.487 -0.085 -0.379 -0.500 -0.554 -0.027 -0.033 -0.102 -0.255 0.044 0.135 - 9.560 -0.996 -0.382 -0.240 -0.241 -0.304 -0.411 0.134 -0.043 -0.095 -0.202 -0.059 -0.033 - 9.452 -0.877 -0.283 -0.281 -0.209 -0.222 -0.450 0.121 0.130 0.110 -0.208 -0.076 -0.048 - 9.609 -0.976 -0.374 -0.133 -0.129 -0.392 -0.532 -0.018 0.156 -0.179 -0.219 0.065 -0.068 - 9.722 -0.822 -0.455 -0.269 -0.070 -0.396 -0.482 0.001 0.047 -0.147 -0.187 0.112 -0.221 - 10.282 -0.682 -0.321 -0.210 -0.161 -0.222 -0.432 0.232 0.040 0.113 -0.261 0.044 -0.058 - 10.203 -0.915 -0.388 -0.091 -0.126 -0.360 -0.407 0.281 0.027 0.059 -0.231 -0.053 -0.114 - 9.987 -1.038 -0.378 -0.131 -0.033 -0.657 -0.717 0.076 -0.131 -0.128 -0.247 0.107 -0.242 - 9.771 -1.230 -0.301 -0.129 -0.146 -0.518 -0.582 0.095 0.006 -0.014 -0.211 0.239 -0.060 - 9.511 -0.978 -0.373 -0.001 -0.114 -0.566 -0.602 -0.004 -0.007 0.044 -0.094 0.261 -0.040 - 9.594 -0.623 -0.337 -0.030 -0.081 -0.495 -0.625 0.040 -0.237 -0.060 -0.088 0.311 -0.057 - 9.299 -0.720 -0.486 -0.061 0.038 -0.570 -0.643 -0.112 -0.143 -0.027 0.014 0.482 -0.005 - 9.218 -0.920 -0.219 -0.022 0.083 -0.622 -0.673 -0.193 -0.084 -0.044 -0.189 0.371 0.046 - 9.259 -0.801 -0.081 0.127 0.107 -0.708 -0.716 -0.071 -0.164 -0.020 -0.086 0.265 0.045 - 9.458 -0.712 -0.122 -0.067 -0.044 -0.551 -0.574 -0.052 -0.202 -0.012 -0.232 0.252 0.162 - 9.138 -0.735 -0.014 -0.020 0.104 -0.577 -0.703 0.043 -0.283 -0.175 -0.208 0.247 0.111 - 8.993 -0.591 -0.305 -0.018 0.099 -0.316 -0.637 0.011 -0.310 -0.052 -0.285 0.140 0.072 - 9.131 -0.488 -0.222 -0.093 0.111 -0.184 -0.618 -0.127 -0.080 0.075 -0.046 0.283 -0.034 - 9.084 -0.516 -0.014 0.009 0.204 -0.121 -0.481 -0.141 -0.060 -0.065 -0.231 0.178 -0.054 - 8.692 -0.621 -0.099 -0.073 0.276 -0.438 -0.709 -0.101 -0.193 -0.210 -0.106 0.190 0.086 - 8.247 -0.636 -0.040 0.004 0.280 -0.504 -0.555 -0.187 -0.139 -0.044 -0.227 0.178 -0.045 - 8.536 -0.543 -0.122 0.038 0.376 -0.424 -0.405 -0.005 -0.079 -0.270 -0.328 0.220 -0.005 - 8.373 -0.448 -0.291 0.087 0.229 -0.245 -0.383 0.044 0.046 -0.130 -0.300 0.348 -0.036 - 8.137 -0.339 -0.112 0.210 0.185 -0.122 -0.381 0.067 0.050 -0.027 -0.150 0.188 -0.179 - 7.827 -0.388 -0.310 0.127 0.189 -0.112 -0.428 -0.153 -0.138 -0.176 -0.230 0.156 0.080 - 7.305 -0.149 -0.273 0.289 0.280 -0.261 -0.365 -0.065 -0.064 -0.380 -0.240 0.144 -0.013 - 6.750 -0.393 -0.277 0.033 0.438 -0.308 -0.400 0.126 -0.086 -0.320 -0.113 0.297 0.145 - 9.175 1.149 0.010 -0.013 -0.205 -0.601 -0.193 -0.114 -0.234 -0.078 -0.230 -0.079 -0.103 - 10.258 1.463 0.016 0.100 -0.352 -0.678 -0.155 -0.265 -0.199 -0.101 -0.203 -0.108 -0.151 - 7.877 1.304 0.321 -0.197 -0.556 -0.778 -0.360 -0.219 -0.126 -0.182 -0.269 0.075 0.090 - 7.484 0.997 0.512 -0.012 -0.511 -0.459 -0.289 0.094 0.078 -0.085 -0.045 -0.034 -0.174 - 6.991 0.854 0.574 0.055 -0.389 -0.337 -0.156 0.002 -0.151 -0.248 -0.050 0.047 -0.145 - 5.940 0.404 0.400 0.132 -0.173 -0.384 -0.303 -0.088 0.068 -0.012 -0.011 0.022 -0.132 - 5.413 0.533 0.156 0.015 -0.031 -0.060 -0.200 0.013 -0.170 -0.115 -0.081 -0.060 -0.161 - 5.178 0.402 -0.063 0.184 -0.024 -0.011 -0.151 0.081 -0.001 -0.018 -0.157 -0.172 -0.384 - 5.414 0.485 0.090 0.228 0.060 -0.106 -0.173 0.017 -0.264 0.060 -0.097 -0.031 -0.261 - 5.287 0.242 -0.051 0.045 -0.047 -0.123 -0.109 0.116 -0.165 -0.112 -0.102 0.111 -0.236 - 5.117 0.199 -0.036 0.161 -0.108 -0.218 -0.212 0.062 -0.183 -0.083 -0.053 0.109 -0.067 - 5.107 0.299 -0.199 -0.017 -0.064 -0.170 -0.182 -0.003 -0.068 -0.226 -0.075 0.043 -0.045 - 5.620 0.659 0.027 0.031 -0.067 -0.326 -0.289 -0.042 -0.016 -0.075 -0.087 -0.009 0.090 - 5.658 0.699 0.045 0.145 -0.188 -0.425 -0.360 -0.150 -0.043 -0.010 -0.192 -0.072 -0.120 - 5.799 0.647 -0.029 0.066 -0.044 -0.275 -0.326 -0.030 -0.116 -0.035 -0.188 0.103 -0.071 - 8.352 1.151 0.117 -0.346 -0.006 -0.067 -0.440 -0.204 -0.225 0.053 -0.232 -0.004 -0.015 - 7.499 1.001 0.250 0.042 -0.061 -0.056 -0.203 -0.264 -0.133 0.107 -0.200 -0.140 -0.164 - 6.329 0.165 0.131 -0.010 -0.295 -0.235 -0.342 -0.243 -0.154 0.009 -0.102 -0.190 -0.185 - 7.384 -0.085 0.050 -0.026 -0.280 -0.270 -0.375 -0.249 -0.176 -0.086 -0.187 -0.179 -0.109 - 8.004 -0.159 0.141 0.077 -0.238 -0.143 -0.342 -0.168 -0.138 -0.106 -0.141 -0.174 -0.072 - 7.600 -0.026 -0.010 -0.022 -0.163 -0.284 -0.334 -0.208 -0.166 0.177 -0.039 0.001 -0.053 - 7.698 0.045 0.171 -0.039 -0.224 -0.336 -0.418 -0.424 -0.229 -0.223 -0.063 0.154 -0.087 - 8.693 0.141 0.476 0.192 -0.258 -0.261 -0.436 -0.302 -0.247 -0.144 -0.123 -0.075 -0.080 - 8.741 -0.195 0.318 0.067 -0.248 0.044 -0.368 -0.274 -0.048 -0.190 -0.177 -0.073 -0.209 - 8.898 0.036 0.279 0.047 -0.033 -0.043 -0.390 -0.306 0.026 -0.032 -0.254 -0.235 -0.095 - 8.409 0.427 0.018 0.007 0.080 -0.010 -0.435 -0.351 -0.022 -0.241 -0.365 -0.106 -0.018 - 7.230 0.633 -0.081 0.002 0.115 -0.016 -0.282 -0.366 -0.220 -0.011 -0.413 -0.190 -0.076 - 6.609 0.846 0.116 0.040 0.156 0.093 0.032 -0.128 -0.177 -0.116 -0.330 -0.351 -0.219 - 5.091 0.069 0.088 0.210 0.237 0.021 0.029 -0.077 -0.036 -0.069 -0.170 -0.119 -0.125 - 4.695 -0.177 -0.013 0.195 0.112 0.175 -0.192 0.009 -0.191 -0.181 -0.033 -0.269 -0.103 - 4.859 -0.055 -0.070 0.146 -0.037 0.047 -0.065 0.034 -0.126 -0.128 -0.094 -0.174 -0.010 - 4.325 -0.047 -0.100 0.004 0.161 -0.043 -0.084 0.074 -0.203 -0.053 -0.124 -0.099 -0.045 - 4.654 0.434 -0.070 0.325 -0.064 -0.017 -0.097 0.013 -0.114 -0.050 -0.141 -0.008 -0.056 - 4.107 0.179 -0.053 0.364 -0.105 0.047 -0.035 -0.039 -0.093 -0.056 -0.317 0.014 -0.040 - 4.022 0.141 0.012 0.216 0.075 0.151 0.006 -0.026 -0.104 -0.109 -0.215 0.217 0.008 - 3.781 -0.000 0.078 0.226 0.105 0.057 -0.036 -0.038 0.135 0.126 -0.079 0.142 0.014 - 3.897 0.178 0.027 0.109 0.028 0.032 -0.091 0.073 -0.113 0.090 -0.184 -0.075 -0.083 - 4.095 0.365 -0.256 -0.081 -0.077 0.129 -0.131 -0.084 0.005 0.063 -0.087 0.058 -0.028 - 4.173 0.161 -0.282 0.018 -0.071 0.135 -0.088 -0.034 -0.171 -0.053 0.029 0.076 -0.099 - 4.450 0.345 -0.434 -0.109 0.083 -0.147 -0.261 0.064 -0.072 -0.141 -0.098 0.031 -0.144 - 5.043 0.392 -0.308 -0.024 0.077 -0.167 -0.298 0.169 -0.022 -0.088 -0.155 0.025 0.029 - 5.029 0.262 -0.484 0.054 0.231 -0.143 -0.426 0.087 -0.047 -0.017 0.023 0.111 -0.066 - 5.093 0.146 -0.461 -0.024 0.159 -0.279 -0.313 0.025 -0.033 -0.084 -0.042 0.213 0.069 - 5.738 0.143 -0.381 -0.024 0.019 -0.372 -0.341 0.252 0.074 -0.126 -0.098 0.088 -0.109 - 6.031 0.128 -0.416 0.117 0.281 -0.302 -0.309 0.166 -0.026 -0.181 -0.111 0.056 -0.078 - 6.156 0.002 -0.452 0.126 0.253 -0.330 -0.364 0.170 0.081 -0.165 -0.132 0.173 -0.098 - 6.160 -0.120 -0.504 -0.027 0.090 -0.241 -0.407 0.221 -0.011 -0.176 0.003 -0.008 -0.021 - 5.976 -0.118 -0.379 0.107 0.223 -0.469 -0.461 0.151 0.011 -0.279 -0.225 0.069 0.013 - 6.072 -0.335 -0.612 0.070 0.319 -0.439 -0.474 0.115 -0.035 -0.182 0.157 0.209 -0.079 - 5.742 -0.542 -0.498 0.145 0.244 -0.366 -0.321 0.038 0.031 -0.094 0.163 0.132 -0.011 - 5.951 -0.556 -0.412 0.092 0.363 -0.197 -0.315 0.071 -0.043 -0.216 0.099 0.035 -0.078 - 6.069 -0.468 -0.533 0.038 0.341 -0.284 -0.409 0.247 0.139 -0.328 0.075 0.253 -0.076 - 6.154 -0.445 -0.652 0.090 0.165 -0.303 -0.297 0.196 0.054 -0.345 0.127 0.155 -0.043 - 6.124 -0.465 -0.441 0.068 0.453 -0.340 -0.231 0.239 -0.012 -0.226 0.016 0.122 -0.104 - 6.247 -0.551 -0.628 0.068 0.192 -0.082 -0.314 0.382 0.254 -0.088 0.041 -0.114 -0.138 - 6.467 -0.360 -0.507 -0.010 0.074 -0.264 -0.355 0.354 0.197 -0.092 0.075 -0.003 -0.116 - 6.161 -0.489 -0.613 0.075 0.244 -0.036 -0.288 0.011 0.153 -0.193 -0.129 0.019 -0.027 - 6.469 -0.297 -0.434 0.223 0.320 -0.059 -0.247 0.296 -0.022 -0.262 0.034 -0.048 -0.146 - 6.458 -0.312 -0.454 0.043 0.297 -0.198 -0.444 0.080 0.082 -0.236 -0.014 -0.013 -0.099 - 6.248 -0.325 -0.313 0.129 0.174 -0.472 -0.357 0.147 0.169 -0.316 -0.044 -0.010 0.046 - 6.032 -0.141 -0.303 0.398 0.239 -0.377 -0.335 0.126 0.083 -0.384 -0.154 0.131 -0.120 - 6.321 -0.223 -0.428 0.322 0.261 -0.270 -0.424 0.142 0.026 -0.416 -0.164 0.105 -0.061 - 6.286 -0.251 -0.407 0.204 0.183 -0.352 -0.498 0.247 0.242 -0.124 -0.116 -0.006 -0.205 - 6.445 -0.122 -0.311 0.168 0.091 -0.350 -0.463 0.070 0.092 -0.229 0.008 -0.024 0.036 - 6.646 0.376 0.060 0.511 0.441 -0.243 -0.685 0.051 0.015 -0.170 0.183 -0.000 -0.124 - 6.427 0.164 0.039 0.491 0.347 -0.094 -0.509 0.016 0.034 0.055 0.039 0.042 -0.043 - 6.292 -0.101 -0.338 0.389 0.170 -0.430 -0.328 0.225 0.095 -0.350 0.001 0.078 -0.162 - 6.287 -0.109 -0.332 0.083 0.100 -0.455 -0.223 0.337 0.028 -0.404 -0.035 0.053 -0.014 - 6.103 -0.213 -0.339 0.056 -0.025 -0.351 -0.275 0.186 -0.070 -0.345 -0.144 -0.076 -0.053 - 5.898 -0.225 -0.502 0.057 0.213 -0.375 -0.418 0.259 -0.233 -0.368 0.103 -0.071 -0.037 - 5.999 -0.140 -0.514 -0.003 0.189 -0.384 -0.497 0.188 -0.053 -0.252 -0.033 0.145 -0.009 - 5.867 -0.083 -0.447 0.052 0.148 -0.277 -0.428 -0.040 0.048 -0.298 -0.097 0.207 -0.001 - 5.766 -0.035 -0.385 0.050 0.009 -0.335 -0.445 0.068 0.035 -0.161 -0.010 0.048 -0.091 - 5.495 -0.021 -0.309 0.149 -0.133 -0.285 -0.440 0.140 0.128 -0.197 -0.007 0.096 0.012 - 5.540 -0.051 -0.246 -0.027 -0.224 -0.153 -0.272 0.026 -0.093 -0.219 -0.227 0.078 0.116 - 5.940 0.027 -0.278 -0.032 -0.117 -0.168 -0.413 0.107 0.139 0.027 -0.018 0.069 -0.108 - 5.739 0.035 -0.181 0.088 -0.012 -0.071 -0.296 0.139 0.105 -0.130 -0.159 -0.040 -0.167 - 5.491 0.025 -0.220 0.178 -0.001 -0.306 -0.562 0.065 0.154 -0.054 -0.029 0.098 -0.180 - 5.191 -0.187 -0.245 0.322 0.253 -0.017 -0.364 0.064 -0.027 -0.354 -0.147 0.060 0.006 - 5.069 0.056 -0.263 0.218 0.098 -0.015 -0.254 0.061 -0.081 -0.210 -0.124 0.143 -0.034 - 4.940 0.340 -0.220 0.133 0.024 -0.036 -0.139 0.209 0.043 -0.045 -0.238 0.024 -0.261 - 4.597 0.306 -0.258 0.143 -0.181 0.012 -0.312 0.085 0.137 -0.057 -0.166 -0.017 -0.120 - 5.037 0.392 -0.062 0.232 -0.032 -0.337 -0.414 0.011 0.122 0.084 -0.144 -0.007 -0.087 - 4.968 -0.015 -0.169 0.032 -0.036 -0.259 -0.407 0.007 -0.050 -0.047 -0.133 0.112 0.167 - 5.575 0.022 0.188 0.071 -0.104 0.007 -0.218 -0.118 -0.178 -0.042 -0.214 -0.143 -0.002 - 5.754 -0.442 0.066 -0.164 -0.243 -0.284 -0.350 -0.077 0.031 -0.142 -0.067 0.134 0.005 - 5.727 -0.260 0.190 0.050 -0.275 -0.061 -0.311 -0.131 -0.191 -0.040 0.115 0.074 -0.024 - 6.679 -0.356 0.047 0.016 0.009 -0.049 -0.264 0.029 -0.151 -0.073 0.017 0.227 -0.176 - 7.557 -0.088 0.111 -0.167 -0.002 -0.026 -0.209 0.019 -0.110 0.004 -0.126 -0.056 -0.223 - 6.734 -0.126 0.183 -0.084 -0.020 -0.161 -0.250 -0.148 -0.210 0.020 -0.236 0.154 -0.051 - 5.999 -0.332 0.376 0.224 -0.128 -0.128 -0.393 -0.082 -0.178 -0.082 -0.032 0.070 -0.127 - 5.651 -0.325 0.349 0.076 -0.025 -0.126 -0.221 0.046 -0.167 -0.175 -0.109 -0.032 -0.119 - 6.123 -0.236 0.147 -0.175 -0.214 -0.268 -0.319 -0.097 -0.139 -0.058 -0.200 0.051 -0.032 - 6.170 -0.191 0.086 -0.118 -0.186 -0.231 -0.274 -0.127 -0.070 0.007 -0.054 0.034 -0.137 - 6.362 -0.208 0.496 -0.192 -0.018 -0.035 -0.189 0.056 -0.196 -0.146 -0.168 0.074 -0.289 - 6.662 -0.409 0.138 -0.083 0.047 -0.097 0.013 -0.043 -0.235 -0.064 -0.222 -0.036 -0.145 - 7.457 -0.129 -0.095 -0.195 -0.153 -0.199 -0.055 -0.269 -0.025 -0.048 -0.093 -0.149 -0.011 - 6.775 0.358 -0.245 -0.539 -0.514 -0.243 -0.277 -0.192 0.011 0.119 -0.151 -0.057 0.029 - 7.274 0.477 -0.257 -0.487 -0.307 -0.225 -0.540 -0.209 0.196 0.109 -0.402 -0.164 0.029 - 7.894 0.328 -0.501 -0.266 -0.503 -0.516 -0.633 -0.418 0.183 0.207 -0.430 -0.127 0.088 - 8.353 0.074 -0.535 -0.170 -0.501 -0.561 -0.605 -0.474 0.005 0.271 0.050 -0.115 -0.001 - 8.126 0.194 -0.453 -0.052 -0.353 -0.443 -0.538 -0.472 -0.188 0.215 -0.273 -0.055 0.033 - 7.720 0.221 -0.166 0.005 -0.129 -0.523 -0.611 -0.419 -0.095 0.227 -0.533 0.078 0.176 - 7.127 0.291 -0.159 0.050 -0.218 -0.569 -0.424 -0.151 -0.065 0.174 -0.421 0.017 0.126 - 6.596 0.264 -0.016 0.012 -0.121 -0.334 -0.279 -0.016 0.005 0.070 -0.335 -0.119 0.016 - 6.076 -0.013 -0.213 0.004 0.016 -0.285 -0.220 -0.012 0.165 0.337 -0.157 -0.087 0.029 - 5.949 0.224 -0.129 0.040 -0.135 -0.315 -0.144 -0.034 0.038 0.240 -0.211 -0.218 -0.075 - 6.053 0.200 -0.035 0.097 -0.308 -0.339 -0.149 -0.119 0.014 0.167 -0.130 -0.169 -0.073 - 5.987 -0.007 -0.071 0.147 -0.187 -0.253 -0.059 -0.215 -0.066 0.091 -0.255 0.091 0.065 - 6.011 -0.106 -0.146 0.209 -0.459 -0.418 -0.198 -0.324 0.030 -0.038 -0.433 0.049 -0.078 - 5.793 -0.385 -0.018 0.180 -0.306 -0.044 0.050 -0.194 0.179 0.114 -0.205 -0.080 -0.090 - 6.030 -0.303 0.103 0.163 -0.422 -0.464 -0.048 -0.300 -0.100 0.088 0.039 0.169 0.030 - 6.752 -0.141 0.215 0.385 -0.624 -0.485 -0.136 -0.411 -0.037 0.090 -0.055 0.183 0.015 - 7.313 -0.192 0.218 0.287 -0.788 -0.596 -0.171 -0.374 -0.191 -0.026 -0.232 0.207 0.020 - 7.532 -0.613 -0.095 0.321 -0.854 -0.609 -0.309 -0.427 -0.257 -0.019 -0.016 0.287 0.022 - 7.843 -0.540 0.030 0.585 -0.768 -0.599 -0.239 -0.534 -0.414 -0.084 -0.014 0.254 0.005 - 7.936 -0.581 0.102 0.805 -0.578 -0.530 -0.229 -0.643 -0.471 -0.085 -0.050 0.282 0.033 - 8.180 -0.608 0.011 0.653 -0.422 -0.495 -0.399 -0.749 -0.412 0.057 -0.174 0.217 -0.061 - 7.889 -0.509 0.162 0.583 -0.574 -0.428 -0.453 -0.670 -0.476 -0.080 -0.213 0.255 -0.113 - 7.484 -0.263 0.230 0.516 -0.710 -0.582 -0.214 -0.586 -0.413 -0.101 -0.038 0.178 -0.135 - 7.388 0.173 0.552 0.673 -0.360 -0.431 -0.054 -0.442 -0.371 -0.140 -0.186 0.063 -0.210 - 7.300 0.553 0.640 0.622 -0.167 -0.290 -0.192 -0.312 -0.232 -0.063 -0.259 0.077 -0.297 - 6.641 0.097 0.662 0.667 -0.125 -0.228 -0.030 -0.180 -0.399 -0.052 -0.170 0.003 -0.235 - 6.490 0.009 0.386 0.474 -0.218 -0.261 0.031 -0.154 -0.463 -0.308 -0.286 0.048 -0.223 - 6.363 0.167 0.291 0.363 -0.161 -0.094 0.158 -0.128 -0.220 -0.181 -0.243 -0.054 -0.192 - 7.152 0.143 0.255 0.138 -0.214 -0.148 -0.152 -0.240 -0.180 -0.121 -0.140 -0.112 -0.132 - 8.849 1.255 0.513 0.003 -0.224 -0.194 -0.186 -0.185 -0.353 -0.116 -0.267 -0.210 -0.172 - 7.618 0.830 0.590 0.201 -0.140 -0.131 -0.057 -0.131 -0.278 -0.255 -0.184 -0.165 -0.319 - 7.336 0.432 0.471 -0.167 -0.384 -0.193 -0.101 -0.099 -0.075 -0.150 -0.241 -0.056 -0.249 - 7.159 -0.086 0.128 -0.067 -0.137 -0.082 -0.103 -0.034 -0.043 -0.101 -0.256 -0.087 -0.115 - 7.351 0.349 0.156 0.296 -0.145 -0.195 -0.360 -0.232 -0.044 -0.154 -0.253 0.261 -0.182 - 7.793 0.487 0.198 0.371 -0.275 -0.243 -0.413 -0.392 -0.098 -0.266 -0.479 0.244 -0.076 - 8.118 0.661 0.051 0.182 -0.104 -0.138 -0.608 -0.349 -0.102 -0.083 -0.408 0.182 0.049 - 8.136 0.563 0.117 0.021 -0.128 -0.102 -0.513 -0.370 -0.149 -0.201 -0.503 0.019 0.054 - 7.971 0.863 0.173 0.044 0.007 -0.012 -0.430 -0.401 -0.098 -0.218 -0.428 0.026 -0.113 - 7.117 0.756 0.019 0.173 -0.103 -0.237 -0.418 -0.234 -0.008 -0.239 -0.344 0.045 -0.094 - 6.847 0.573 0.126 0.175 -0.126 -0.170 -0.337 -0.179 -0.122 -0.005 -0.250 0.015 -0.131 - 6.592 0.782 0.111 0.062 -0.070 -0.068 -0.187 -0.215 -0.194 -0.048 -0.267 -0.187 -0.173 - 6.655 0.808 -0.070 0.075 -0.006 0.036 0.008 -0.100 -0.135 -0.119 -0.268 -0.101 -0.096 - 6.618 0.946 0.355 0.252 -0.018 -0.227 -0.151 -0.120 -0.041 -0.279 -0.444 -0.184 -0.233 - 6.499 1.130 0.415 0.337 -0.045 -0.219 0.004 -0.105 -0.102 -0.185 -0.317 -0.148 -0.171 - 6.759 0.605 -0.069 0.263 -0.248 -0.224 -0.291 -0.240 -0.085 -0.138 -0.100 0.142 -0.162 - 7.888 0.415 -0.048 0.299 -0.420 -0.283 -0.368 -0.290 -0.210 -0.218 -0.045 0.439 -0.171 - 8.335 0.107 -0.180 0.308 -0.743 -0.462 -0.410 -0.035 -0.001 -0.037 -0.123 0.603 -0.163 - 8.685 0.025 -0.242 0.428 -0.551 -0.648 -0.497 -0.232 -0.156 -0.144 -0.080 0.587 -0.214 - 8.807 -0.089 -0.273 0.463 -0.468 -0.811 -0.597 -0.067 -0.215 -0.194 0.044 0.624 -0.081 - 8.894 -0.179 -0.152 0.432 -0.610 -0.694 -0.621 -0.290 -0.139 -0.258 0.043 0.596 -0.230 - 8.788 -0.137 -0.124 0.227 -0.689 -0.632 -0.455 -0.117 -0.002 -0.161 0.020 0.521 -0.182 - 8.499 -0.023 -0.104 0.054 -0.458 -0.653 -0.332 -0.064 -0.047 -0.103 0.075 0.351 -0.378 - 8.082 0.017 0.110 0.221 -0.377 -0.693 -0.384 -0.034 0.005 -0.079 0.060 0.385 -0.155 - 8.295 0.522 0.006 0.085 -0.345 -0.350 -0.301 -0.177 -0.116 -0.122 0.012 0.256 -0.287 - 7.805 0.556 0.194 0.113 -0.236 -0.471 -0.416 -0.213 -0.165 -0.264 -0.108 0.304 -0.195 - 7.538 0.407 0.282 0.134 -0.099 -0.280 -0.137 -0.047 -0.278 -0.287 -0.308 0.091 -0.196 - 7.284 0.406 0.381 0.300 -0.298 -0.454 -0.278 -0.139 -0.198 -0.203 -0.114 0.001 -0.123 - 7.166 0.281 0.398 0.139 -0.185 -0.414 -0.395 -0.095 -0.060 -0.299 -0.061 0.345 -0.113 - 7.354 0.293 0.482 0.105 -0.170 -0.243 -0.171 0.046 -0.057 -0.241 -0.079 0.191 -0.148 - 8.464 0.511 -0.079 0.238 0.136 -0.167 -0.005 -0.170 -0.175 -0.214 -0.234 0.051 -0.214 - 8.956 0.577 -0.105 0.067 0.089 -0.098 0.112 -0.134 -0.106 -0.345 -0.347 0.056 -0.241 - 7.536 0.422 0.509 -0.066 -0.211 -0.353 -0.061 -0.079 -0.299 -0.064 -0.151 0.020 0.018 - 7.650 0.289 0.591 -0.030 -0.145 -0.207 0.142 -0.039 -0.241 -0.221 -0.230 -0.049 -0.224 - 7.388 0.072 0.324 0.068 -0.065 -0.236 -0.089 -0.113 -0.143 -0.079 -0.227 0.151 -0.108 - 7.211 0.006 0.421 -0.182 0.037 -0.114 -0.089 -0.042 -0.138 -0.162 -0.055 -0.090 -0.123 - 7.279 -0.057 0.377 -0.038 0.199 -0.267 -0.127 -0.305 -0.179 -0.194 -0.181 -0.144 -0.054 - 7.045 -0.223 0.150 0.160 0.063 -0.435 -0.146 0.068 -0.070 -0.184 -0.202 -0.084 -0.167 - 9.655 0.145 -0.061 0.373 -0.137 -0.615 0.017 -0.094 0.144 -0.426 -0.113 -0.154 -0.269 - 10.259 0.563 -0.216 0.204 -0.011 -0.432 0.127 -0.112 0.148 -0.462 -0.214 -0.209 -0.261 - 9.916 1.138 -0.297 0.005 0.203 -0.530 0.054 0.169 -0.207 -0.343 -0.314 -0.259 -0.264 - 10.244 1.123 -0.287 0.014 0.213 -0.499 -0.133 0.432 -0.296 -0.384 -0.303 -0.285 -0.295 - 11.297 1.094 -0.329 -0.075 -0.048 -0.457 -0.276 0.206 -0.186 -0.275 -0.139 -0.145 -0.195 - 12.395 1.545 -0.434 -0.373 -0.122 -0.525 -0.440 0.062 -0.163 -0.279 -0.127 -0.100 -0.183 - 12.240 2.313 -0.672 -0.756 -0.350 -0.536 -0.524 0.199 -0.251 -0.327 -0.231 0.134 0.103 - 12.943 2.392 -0.585 -0.888 -0.282 -0.360 -0.810 0.434 -0.366 -0.349 -0.330 0.090 0.120 - 12.881 2.618 -0.685 -0.968 -0.295 -0.259 -0.828 0.351 -0.289 -0.248 -0.340 -0.028 0.207 - 13.143 2.457 -0.628 -1.045 -0.287 -0.066 -0.855 0.163 -0.229 -0.186 -0.272 -0.114 0.256 - 13.567 2.293 -0.697 -1.029 -0.181 -0.110 -0.780 0.064 -0.333 -0.103 -0.274 -0.002 0.128 - 13.307 2.615 -0.981 -1.009 -0.022 -0.082 -0.912 0.068 -0.464 0.040 -0.253 0.021 0.049 - 13.403 2.376 -0.856 -0.985 0.060 -0.125 -0.873 -0.106 -0.367 0.046 -0.238 0.081 -0.086 - 13.436 2.193 -0.924 -0.813 0.178 -0.083 -0.966 -0.226 -0.275 -0.015 -0.166 -0.020 -0.137 - 12.950 2.104 -1.012 -0.534 0.256 0.117 -1.167 -0.291 -0.127 -0.119 -0.185 -0.103 -0.165 - 12.418 1.584 -0.838 -0.421 0.510 0.030 -1.180 -0.297 0.015 -0.299 -0.198 -0.166 -0.142 - 11.406 1.248 -0.761 -0.206 0.502 0.011 -1.076 -0.137 0.161 -0.255 -0.368 -0.196 -0.171 - 10.277 0.834 -0.665 0.294 0.651 -0.088 -0.888 0.034 0.164 -0.451 -0.490 0.027 -0.149 - 10.144 0.749 -0.481 0.450 0.613 -0.348 -1.005 0.199 0.019 -0.455 -0.338 0.112 -0.116 - 11.904 0.295 -0.534 0.405 0.478 -0.317 -0.840 0.283 -0.433 -0.564 -0.104 0.023 -0.137 - 13.489 0.410 -0.453 0.372 0.349 -0.458 -1.208 0.387 -0.511 -0.490 -0.117 0.030 -0.239 - 13.889 0.644 -0.658 0.274 0.027 -0.580 -1.195 0.407 -0.281 -0.267 -0.049 0.131 -0.255 - 13.318 1.073 -0.833 0.156 0.102 -0.558 -1.192 0.350 -0.121 -0.228 -0.167 0.174 -0.267 - 11.720 0.883 -0.609 0.334 -0.001 -0.620 -0.888 0.086 0.094 0.003 -0.389 0.185 -0.014 - 10.936 0.857 -0.390 0.305 0.118 -0.347 -0.433 -0.470 0.151 0.208 -0.789 0.106 0.056 - 10.856 0.873 -0.378 0.179 0.128 -0.263 -0.359 -0.579 0.125 0.285 -0.738 0.030 -0.052 - 10.776 0.966 -0.486 0.143 0.032 -0.298 -0.139 -0.572 0.068 0.217 -0.532 0.099 -0.216 - 10.780 0.916 -0.429 0.214 -0.198 -0.264 -0.031 -0.478 -0.127 0.172 -0.405 0.214 -0.241 - 11.502 0.727 -0.330 -0.049 -0.129 -0.260 -0.043 -0.406 -0.133 0.118 -0.406 0.232 -0.259 - 11.779 1.092 -0.612 -0.179 -0.078 -0.232 -0.187 -0.274 -0.103 0.055 -0.391 0.247 -0.138 - 11.810 1.219 -0.608 -0.010 -0.268 -0.425 -0.113 -0.180 0.006 -0.171 -0.222 0.065 -0.114 - 11.837 0.635 -0.490 0.274 -0.459 -0.489 -0.043 -0.097 -0.095 0.055 -0.272 -0.021 0.002 - 11.644 0.714 -0.485 0.223 -0.380 -0.600 -0.161 -0.076 -0.015 0.037 -0.153 -0.057 0.011 - 11.115 1.399 -0.779 0.156 -0.518 -0.763 -0.023 -0.125 0.148 0.029 -0.057 -0.173 -0.070 - 10.908 1.912 -1.058 -0.028 -0.479 -0.939 0.127 -0.077 0.074 0.083 -0.199 -0.067 -0.155 - 10.868 1.906 -1.112 -0.086 -0.545 -0.970 0.183 0.018 0.093 0.139 -0.274 -0.039 -0.182 - 10.895 1.754 -1.187 0.002 -0.460 -0.852 0.256 0.001 0.065 0.037 -0.263 -0.065 -0.078 - 10.978 1.892 -1.353 0.140 -0.593 -0.751 0.235 0.050 0.047 -0.032 -0.305 -0.046 -0.066 - 10.878 1.899 -1.309 0.020 -0.390 -0.780 0.150 0.135 -0.047 -0.101 -0.198 -0.085 -0.078 - 12.340 0.862 -0.655 -0.505 -0.560 -0.513 0.076 0.377 -0.411 -0.060 0.159 -0.225 0.056 - 12.526 0.844 -0.652 -0.604 -0.540 -0.378 -0.012 0.258 -0.379 0.057 0.173 -0.231 -0.110 - 11.893 0.993 -0.464 -0.802 -0.581 -0.232 -0.376 -0.049 -0.453 0.066 -0.038 -0.134 0.026 - 9.518 0.907 -0.203 -0.363 -0.025 -0.293 -0.234 -0.082 -0.392 0.072 -0.038 -0.017 0.037 - 9.580 0.169 -0.153 -0.248 0.218 -0.399 -0.115 -0.133 -0.073 -0.037 -0.143 -0.084 -0.133 - 10.673 -0.248 -0.537 -0.487 0.143 -0.473 -0.278 -0.151 -0.235 -0.046 -0.115 0.021 0.008 - 9.455 -1.039 0.227 -0.387 -0.035 -0.315 -0.200 -0.281 0.009 -0.007 -0.103 -0.164 0.024 - 9.868 -1.677 0.511 -0.253 0.222 -0.244 -0.329 -0.160 -0.068 -0.134 -0.131 -0.127 -0.103 - 10.079 -1.593 0.551 -0.455 0.277 -0.271 -0.143 -0.079 -0.030 0.057 -0.062 0.044 -0.106 - 9.577 -1.740 0.318 -0.459 0.119 -0.285 0.070 0.082 0.059 -0.064 -0.289 -0.009 0.009 - 8.071 -1.443 0.439 -0.708 0.041 -0.512 -0.267 0.156 0.037 -0.093 -0.229 -0.006 -0.212 - 6.730 -0.791 0.644 -0.183 -0.036 -0.383 0.014 0.017 -0.031 0.096 -0.067 -0.175 -0.168 - 6.076 -0.203 0.240 -0.146 -0.033 -0.290 -0.063 -0.108 0.066 0.062 0.069 -0.060 -0.090 - 6.361 -0.399 0.171 -0.169 0.261 -0.224 -0.179 -0.176 -0.093 0.051 -0.139 0.073 -0.017 - 9.514 -1.057 -0.077 -0.344 0.073 -0.322 -0.170 0.051 -0.295 -0.128 -0.293 0.087 -0.257 - 11.016 -1.129 0.084 -0.400 0.002 -0.417 -0.360 -0.046 -0.310 -0.166 -0.216 0.053 -0.079 - 10.720 -1.006 0.167 -0.216 -0.119 -0.320 -0.500 -0.081 0.211 -0.116 -0.098 -0.027 0.185 - 12.084 0.612 -0.449 -0.001 -0.176 -0.283 -0.518 -0.241 -0.070 -0.109 -0.186 -0.213 0.124 - 11.536 1.215 -0.905 0.219 -0.190 -0.420 -0.337 -0.443 -0.076 -0.008 -0.286 0.005 -0.034 - 10.706 1.046 -0.800 0.188 -0.103 -0.412 -0.192 -0.441 -0.130 0.007 -0.125 -0.072 -0.150 - 9.599 0.652 -0.366 0.474 0.127 -0.360 -0.071 -0.317 -0.222 -0.043 -0.156 -0.114 -0.377 - 9.645 0.659 -0.409 0.594 0.181 -0.363 -0.236 -0.365 -0.240 0.074 -0.122 -0.005 -0.422 - 9.557 0.794 -0.539 0.597 0.229 -0.383 -0.263 -0.399 -0.205 -0.054 -0.026 -0.133 -0.348 - 9.410 0.937 -0.578 0.508 0.239 -0.381 -0.238 -0.299 -0.249 -0.144 0.040 -0.233 -0.361 - 11.073 0.976 -0.851 0.035 0.268 -0.463 -0.552 -0.229 -0.122 0.023 -0.041 -0.327 0.007 - 11.842 0.998 -1.162 0.414 -0.072 -0.602 -0.691 -0.056 -0.027 -0.032 -0.210 -0.027 0.124 - 12.160 0.721 -0.888 0.391 -0.168 -0.820 -0.615 0.054 -0.110 -0.057 -0.141 0.130 0.027 - 12.459 0.503 -0.657 0.366 -0.249 -0.895 -0.512 0.093 -0.261 -0.042 -0.066 0.145 -0.113 - 12.435 0.546 -0.577 0.372 -0.263 -0.879 -0.414 -0.026 -0.335 -0.047 -0.069 0.135 -0.192 - 12.178 0.205 -0.161 0.476 -0.345 -0.690 -0.392 -0.055 -0.404 -0.140 -0.150 0.147 -0.233 - 11.061 0.123 0.096 0.445 -0.525 -0.675 -0.391 -0.113 -0.419 -0.206 -0.062 0.124 -0.206 - 10.571 0.192 -0.196 0.424 -0.303 -0.456 -0.212 -0.376 -0.328 -0.217 -0.146 -0.087 -0.011 - 8.452 0.060 -0.411 0.309 -0.215 -0.453 -0.029 -0.266 -0.152 -0.063 -0.139 -0.084 -0.018 - 6.252 0.005 0.097 0.154 -0.099 -0.519 -0.492 -0.131 -0.069 0.019 -0.086 -0.080 -0.221 - 7.384 -0.384 -0.131 0.165 -0.102 -0.507 -0.189 -0.151 -0.120 0.119 -0.112 0.076 0.004 - 11.055 -0.984 -0.567 0.146 -0.059 -0.384 -0.164 -0.307 -0.212 -0.002 -0.190 0.042 -0.038 - 11.366 -0.584 -0.354 0.061 -0.147 -0.341 -0.341 -0.478 -0.269 -0.039 -0.261 0.105 -0.039 - 11.203 0.256 0.167 0.547 -0.311 -0.663 -0.478 -0.090 -0.529 -0.117 -0.223 -0.032 -0.165 - 12.458 0.528 0.022 0.188 -0.369 -0.512 -0.902 0.216 -0.683 0.018 -0.278 0.127 -0.143 - 12.429 0.898 -0.514 0.022 -0.064 -0.789 -0.877 0.232 -0.512 0.006 -0.246 0.194 -0.061 - 12.033 0.816 -0.482 0.037 -0.119 -0.845 -0.801 0.091 -0.302 -0.019 -0.263 0.268 -0.094 - 11.169 0.698 -0.219 -0.123 -0.094 -0.695 -0.830 -0.134 -0.310 0.121 -0.505 0.204 0.130 - 8.906 0.783 0.143 0.076 0.071 -0.376 -0.298 -0.167 -0.242 -0.085 -0.224 -0.132 -0.040 - 8.624 0.112 0.294 0.219 -0.093 -0.321 -0.353 0.121 -0.353 -0.141 -0.031 -0.114 -0.041 - 11.083 -0.345 -0.700 -0.096 -0.180 -0.618 -0.360 0.301 -0.396 -0.218 0.039 0.033 -0.088 - 11.921 -0.036 -0.479 0.132 0.006 -0.594 -0.472 0.263 -0.328 -0.220 -0.194 0.005 -0.147 - 11.583 0.311 -0.677 -0.112 0.317 -0.023 -0.420 0.286 -0.117 -0.143 -0.235 -0.089 -0.041 - 12.188 -0.526 -0.729 -0.357 0.125 0.211 0.017 0.105 -0.049 -0.177 -0.110 -0.122 -0.029 - 11.546 -0.333 -0.632 -0.382 0.091 0.083 0.057 0.108 -0.416 -0.201 0.098 -0.253 0.137 - 11.809 0.446 -0.296 -0.030 0.084 0.076 0.018 0.093 -0.461 -0.282 -0.291 -0.266 -0.010 - 12.049 -0.077 -0.456 0.060 0.097 0.303 -0.167 0.212 -0.462 -0.046 0.095 -0.573 0.054 - 12.188 -0.532 -0.795 -0.136 -0.351 0.239 -0.172 0.271 -0.447 -0.061 0.350 -0.527 0.158 - 11.579 -0.329 -0.528 -0.115 -0.212 0.296 -0.095 0.279 -0.524 -0.020 0.108 -0.537 -0.128 - 11.373 0.388 -0.425 -0.335 -0.197 0.256 -0.050 0.335 -0.629 -0.113 -0.256 -0.416 -0.249 - 11.384 1.145 -0.298 -0.321 -0.407 -0.099 -0.125 0.124 -0.479 0.089 -0.116 -0.270 -0.229 - 11.704 1.851 -0.638 -0.988 -0.648 -0.070 -0.249 0.151 -0.412 -0.112 -0.025 -0.087 -0.101 - 11.961 2.073 -1.194 -0.956 -0.295 -0.240 -0.677 0.575 -0.569 -0.216 0.235 -0.095 -0.296 - 11.896 2.007 -1.234 -0.958 -0.312 -0.189 -0.667 0.463 -0.580 -0.141 0.290 -0.079 -0.241 - 12.043 1.869 -1.176 -1.050 -0.299 -0.139 -0.736 0.351 -0.455 -0.120 0.241 -0.035 -0.180 - 12.256 1.888 -1.280 -1.015 -0.190 -0.091 -0.858 0.264 -0.360 -0.116 0.217 -0.147 -0.038 - 12.024 2.106 -1.368 -1.114 0.005 -0.079 -0.929 0.181 -0.313 0.026 0.022 -0.136 0.100 - 11.510 2.123 -1.319 -1.133 0.002 -0.011 -0.955 0.080 -0.316 0.108 -0.013 -0.035 0.003 - 11.644 1.822 -1.133 -1.278 0.039 -0.044 -0.994 -0.028 -0.174 0.118 0.012 -0.052 -0.016 - 11.805 1.913 -1.166 -1.195 0.003 0.061 -1.151 -0.083 -0.119 0.135 -0.037 -0.109 0.103 - 11.887 1.872 -1.242 -1.118 0.018 0.084 -1.112 -0.172 -0.087 0.101 0.008 -0.180 0.087 - 11.519 1.922 -1.323 -1.045 0.063 -0.004 -1.123 -0.121 -0.123 0.171 -0.026 -0.186 0.092 - 11.207 2.032 -1.447 -0.986 0.136 -0.072 -1.173 -0.195 -0.020 0.154 -0.000 -0.183 0.124 - 11.749 1.859 -1.472 -0.865 0.186 -0.177 -1.116 -0.297 0.045 0.097 -0.102 -0.138 0.092 - 11.911 1.659 -1.346 -0.776 0.175 -0.173 -1.214 -0.204 0.039 0.051 -0.133 -0.193 0.144 - 11.616 1.527 -1.299 -0.665 0.167 -0.156 -1.339 -0.073 0.108 -0.131 -0.053 -0.123 0.062 - 11.632 1.363 -1.236 -0.566 0.193 -0.193 -1.409 -0.077 0.064 -0.151 -0.096 -0.058 0.085 - 12.021 1.306 -1.191 -0.442 0.146 -0.142 -1.434 -0.048 0.046 -0.298 -0.054 -0.144 0.170 - 12.105 1.181 -1.169 -0.259 0.080 -0.078 -1.454 0.037 0.040 -0.417 -0.067 -0.139 0.105 - 11.883 0.971 -1.105 -0.062 0.175 -0.268 -1.306 -0.017 0.088 -0.510 -0.125 -0.031 0.049 - 11.715 0.867 -1.033 -0.024 0.260 -0.407 -1.283 -0.031 0.064 -0.624 -0.065 -0.035 -0.025 - 11.505 0.772 -0.894 0.133 0.268 -0.299 -1.209 0.110 -0.072 -0.584 -0.201 0.008 -0.170 - 9.212 0.422 -0.779 0.376 0.554 -0.274 -0.902 0.364 -0.178 -0.401 -0.168 0.175 -0.252 - 9.600 -0.449 -0.577 0.454 0.346 -0.252 -0.299 0.192 -0.194 -0.215 -0.207 -0.086 -0.190 - 8.643 -0.213 -0.203 0.298 0.556 -0.348 -0.248 0.188 -0.134 -0.345 -0.074 -0.012 -0.025 - 8.178 -0.202 0.135 0.174 0.443 -0.195 -0.499 0.181 -0.123 -0.265 0.051 0.003 0.024 - 10.043 -0.458 -0.380 0.273 0.020 -0.222 -0.251 0.000 -0.175 -0.129 -0.141 -0.047 -0.133 - 12.117 -0.439 -0.442 -0.271 -0.307 -0.480 -0.120 -0.028 -0.144 -0.257 -0.245 -0.055 -0.147 - 11.388 -0.361 -0.106 0.082 -0.270 -0.656 -0.206 -0.117 0.082 -0.375 -0.123 -0.123 -0.089 - 11.366 -0.415 -0.559 0.142 0.151 -0.337 0.055 0.138 0.148 -0.602 -0.144 -0.124 -0.142 - 11.111 -0.212 -1.014 0.226 0.102 -0.576 -0.016 0.190 0.033 -0.368 -0.085 -0.047 -0.070 - 11.276 -0.241 -0.946 0.202 -0.009 -0.355 -0.049 0.143 -0.039 -0.137 -0.050 -0.004 -0.001 - 11.297 -0.099 -0.907 0.010 -0.000 -0.344 -0.192 0.340 0.122 -0.191 0.085 0.133 -0.257 - 11.005 -0.437 -0.734 -0.012 -0.134 -0.252 -0.257 0.038 0.127 -0.301 -0.227 0.322 -0.261 - 10.398 -0.531 -0.570 0.284 0.140 -0.223 -0.212 0.123 0.138 -0.315 -0.395 -0.005 -0.205 - 9.986 -0.196 -0.318 0.351 0.335 0.003 -0.185 0.273 0.123 -0.312 -0.446 -0.260 -0.334 - 9.924 -0.590 -0.738 0.179 0.057 -0.087 -0.242 0.204 -0.157 -0.158 -0.185 0.034 -0.140 - 9.982 -0.656 -0.784 0.095 0.236 0.015 -0.181 0.131 0.097 -0.226 -0.231 -0.039 -0.218 - 9.377 -0.648 -0.427 0.117 0.391 -0.207 -0.254 0.175 0.002 -0.121 -0.254 0.191 0.011 - 8.852 -0.535 -0.299 0.040 0.127 -0.217 -0.227 0.226 -0.060 -0.141 -0.101 0.277 0.011 - 8.654 -0.474 -0.441 0.085 0.411 -0.108 -0.050 0.369 0.100 -0.256 -0.456 0.065 -0.035 - 9.141 -0.263 -0.256 0.141 0.326 -0.425 -0.287 0.050 0.103 -0.136 -0.491 0.055 -0.054 - 9.236 0.243 0.260 0.224 -0.110 -0.507 -0.468 -0.083 0.162 -0.044 -0.484 0.212 -0.240 - 6.025 0.303 0.370 0.194 -0.140 -0.327 -0.415 -0.190 0.150 0.049 -0.300 0.208 -0.259 - 5.825 0.722 0.298 0.124 -0.169 -0.175 -0.225 0.123 -0.110 -0.098 -0.189 -0.052 -0.079 - 5.599 0.383 0.360 -0.160 -0.233 -0.086 -0.253 0.001 0.034 0.054 -0.127 0.030 0.109 - 4.812 -0.006 0.113 -0.055 -0.058 0.097 -0.071 0.070 -0.082 0.087 -0.072 -0.221 -0.033 - 4.782 0.069 -0.030 0.025 -0.039 -0.124 -0.241 -0.017 0.003 0.074 0.014 -0.095 -0.025 - 4.525 -0.005 -0.001 0.050 0.014 0.044 -0.344 -0.090 -0.056 0.033 0.055 0.005 -0.052 - 8.889 0.432 -0.993 -0.060 -0.325 -0.395 -0.217 -0.242 0.086 -0.091 -0.110 -0.117 -0.005 - 11.861 0.126 -0.902 -0.062 -0.305 -0.492 -0.262 -0.286 0.347 -0.100 -0.111 -0.075 0.011 - 12.307 -0.221 -0.720 -0.291 0.067 -0.301 -0.117 -0.166 0.285 -0.170 -0.274 0.063 -0.076 - 13.095 -0.400 -0.244 -0.110 0.107 -0.283 -0.129 -0.022 -0.203 -0.365 -0.305 -0.081 -0.106 - 13.774 -0.071 -0.170 -0.108 0.188 -0.504 -0.192 0.074 -0.205 -0.252 -0.279 -0.153 -0.318 - 12.786 -0.298 -0.222 -0.029 0.375 -0.198 -0.041 -0.104 -0.290 -0.016 -0.255 0.069 -0.215 - 12.376 -0.469 -0.665 0.009 0.383 -0.022 -0.046 -0.250 -0.257 0.052 -0.091 0.074 -0.215 - 12.305 -0.595 -1.029 -0.138 0.410 -0.158 -0.178 -0.096 -0.108 0.228 -0.026 0.012 -0.141 - 11.930 -0.902 -1.162 -0.268 0.053 -0.477 -0.340 -0.086 0.238 0.297 0.105 0.020 -0.171 - 11.874 -0.928 -1.055 -0.244 0.148 -0.506 -0.365 0.006 0.423 0.076 0.135 0.046 -0.192 - 11.560 -1.216 -1.025 -0.258 0.163 -0.446 -0.375 -0.120 0.417 0.135 0.131 0.205 -0.072 - 11.225 -0.970 -0.769 -0.185 0.192 -0.362 -0.463 -0.292 0.328 0.127 -0.054 0.015 -0.203 - 11.269 -0.845 -0.615 -0.067 0.312 -0.437 -0.374 -0.246 0.259 0.190 0.027 -0.128 -0.173 - 11.200 -0.933 -0.776 -0.172 0.167 -0.335 -0.343 -0.154 0.200 0.305 0.135 -0.228 -0.092 - 11.062 -1.189 -0.881 -0.259 0.118 -0.627 -0.310 -0.115 0.246 0.247 0.121 -0.060 -0.209 - 10.890 -1.063 -0.856 -0.107 0.177 -0.471 -0.163 -0.089 0.143 0.173 0.280 -0.137 -0.075 - 10.755 -1.333 -1.036 -0.417 0.206 -0.556 -0.199 0.016 0.152 0.207 0.225 -0.056 0.031 - 10.664 -1.154 -0.944 -0.346 0.261 -0.515 -0.237 -0.013 0.123 0.253 0.175 -0.051 -0.046 - 10.538 -1.232 -0.980 -0.456 0.086 -0.409 -0.175 0.003 0.012 0.337 0.256 -0.154 -0.029 - 10.693 -1.224 -0.902 -0.330 0.158 -0.617 -0.394 -0.257 -0.109 0.137 0.301 -0.126 -0.156 - 10.819 -1.177 -1.118 -0.252 0.252 -0.635 -0.392 -0.016 -0.072 -0.038 0.243 0.025 -0.364 - 10.681 -1.236 -1.099 -0.304 0.278 -0.716 -0.500 -0.033 0.041 -0.002 0.005 -0.006 -0.192 - 10.581 -1.010 -1.044 -0.382 0.230 -0.522 -0.319 -0.025 0.165 -0.061 -0.125 -0.008 -0.135 - 10.708 -0.916 -1.117 -0.261 0.188 -0.671 -0.194 0.096 0.167 -0.133 -0.215 -0.149 -0.054 - 10.444 -1.135 -1.079 -0.356 -0.136 -0.590 -0.186 -0.090 0.083 -0.072 0.011 -0.090 -0.065 - 10.394 -1.094 -0.990 -0.350 0.102 -0.446 -0.218 -0.130 0.177 0.095 -0.241 -0.176 -0.209 - 10.313 -0.968 -0.911 -0.290 -0.069 -0.505 -0.258 -0.033 -0.059 -0.179 -0.198 -0.136 -0.163 - 10.354 -0.932 -0.901 -0.172 0.089 -0.670 -0.288 -0.123 -0.059 -0.227 -0.152 -0.063 -0.120 - 10.251 -0.825 -0.891 -0.177 0.047 -0.593 -0.425 -0.121 -0.035 -0.209 -0.200 -0.013 -0.074 - 10.116 -0.743 -0.993 -0.259 -0.006 -0.504 -0.340 -0.218 -0.014 -0.195 -0.235 -0.075 -0.073 - 10.089 -0.750 -0.883 -0.203 0.067 -0.558 -0.106 -0.161 -0.115 -0.097 -0.095 0.014 -0.181 - 10.102 -0.629 -0.777 -0.250 0.029 -0.577 -0.146 -0.149 -0.024 -0.138 -0.185 -0.021 -0.156 - 10.065 -0.668 -0.737 -0.336 0.019 -0.584 -0.170 -0.126 -0.044 -0.272 -0.041 -0.056 -0.048 - 10.062 -0.653 -0.805 -0.357 -0.011 -0.634 -0.158 -0.252 -0.039 -0.157 -0.029 -0.073 -0.067 - 10.047 -0.589 -0.743 -0.307 -0.014 -0.627 -0.309 -0.117 -0.002 -0.019 0.024 -0.055 -0.087 - 9.778 -0.881 -0.804 -0.402 -0.182 -0.537 -0.330 -0.025 0.066 -0.139 -0.127 0.126 -0.086 - 9.800 -0.698 -0.601 -0.285 -0.007 -0.605 -0.278 -0.011 0.205 -0.266 -0.087 0.023 -0.095 - 10.305 -0.250 -0.220 -0.163 0.044 -0.392 -0.152 -0.090 0.006 -0.234 -0.167 0.054 -0.172 - 10.724 0.088 -0.203 -0.027 0.187 -0.331 -0.205 0.007 0.011 -0.330 -0.301 0.078 -0.089 - 10.006 -0.451 -0.653 -0.249 0.021 -0.437 -0.161 0.036 0.191 -0.279 -0.078 0.027 -0.123 - 9.652 -0.647 -0.723 -0.299 -0.184 -0.549 -0.339 -0.124 0.134 -0.096 -0.039 -0.014 -0.116 - 9.372 -0.588 -0.601 -0.357 -0.063 -0.552 -0.253 0.002 0.190 -0.077 -0.095 0.062 -0.196 - 9.334 -0.782 -0.723 -0.454 -0.019 -0.449 -0.242 0.042 0.209 0.122 -0.002 -0.057 -0.106 - 9.385 -0.644 -0.683 -0.488 -0.372 -0.436 -0.176 0.055 0.322 0.134 0.051 -0.084 -0.094 - 9.465 -0.491 -0.595 -0.525 -0.355 -0.607 -0.276 0.013 0.388 0.086 0.065 0.050 -0.176 - 9.237 -0.610 -0.688 -0.385 -0.204 -0.687 -0.398 -0.052 0.327 0.073 0.208 0.062 -0.178 - 9.257 -0.481 -0.659 -0.525 -0.238 -0.587 -0.355 0.111 0.361 0.079 0.101 0.071 -0.146 - 9.705 -0.028 -0.360 -0.212 -0.037 -0.298 -0.326 0.066 0.366 0.010 0.033 0.071 -0.266 - 9.529 -0.137 -0.377 -0.124 -0.006 -0.327 -0.373 -0.039 0.337 0.045 0.080 0.158 -0.148 - 9.374 -0.400 -0.650 -0.546 -0.181 -0.253 -0.236 0.066 0.289 -0.100 -0.077 -0.077 -0.092 - 9.149 -0.498 -0.699 -0.458 -0.255 -0.231 -0.178 0.066 0.435 -0.030 -0.178 -0.096 -0.147 - 9.293 -0.402 -0.587 -0.253 -0.124 -0.359 -0.356 0.039 0.266 -0.090 -0.169 -0.259 -0.125 - 8.959 -0.605 -0.715 -0.347 -0.034 -0.318 -0.291 0.060 0.131 -0.013 -0.306 -0.350 -0.118 - 9.117 -0.366 -0.506 -0.195 0.141 -0.147 -0.140 0.107 0.108 -0.038 -0.305 -0.320 -0.325 - 9.882 0.133 0.014 0.154 0.192 -0.120 -0.225 -0.152 -0.118 -0.097 -0.139 -0.174 -0.091 - 9.688 -0.058 -0.095 -0.032 0.136 -0.142 -0.202 -0.066 0.031 -0.017 -0.122 -0.185 -0.135 - 9.779 -0.424 -0.525 -0.149 0.015 -0.125 -0.367 -0.114 -0.047 -0.062 -0.066 0.033 -0.159 - 9.802 -0.366 -0.424 -0.251 -0.172 -0.277 -0.234 -0.221 -0.059 -0.050 -0.107 0.010 -0.029 - 10.207 -0.399 -0.129 -0.190 -0.074 -0.151 -0.168 -0.171 -0.159 -0.137 -0.112 -0.030 -0.096 - 10.652 -0.292 -0.181 -0.171 -0.132 -0.086 -0.377 -0.317 -0.173 -0.216 -0.183 -0.136 -0.205 - 10.597 -0.379 -0.359 -0.245 -0.128 -0.212 -0.304 -0.267 -0.047 -0.190 -0.229 -0.113 -0.108 - 10.270 -0.358 -0.277 -0.271 -0.198 -0.102 -0.255 -0.215 0.162 0.045 -0.309 -0.184 -0.097 - 10.180 -0.352 -0.333 -0.401 -0.048 -0.095 -0.245 -0.239 0.093 -0.084 -0.297 -0.140 -0.245 - 10.217 -0.444 -0.388 -0.386 0.020 -0.325 -0.370 -0.082 -0.046 -0.220 -0.255 0.030 -0.133 - 10.489 -0.455 -0.519 -0.163 -0.021 0.007 -0.173 -0.254 0.013 -0.242 -0.248 -0.097 -0.036 - 10.627 -0.509 -0.503 -0.483 -0.267 -0.195 -0.255 -0.227 -0.067 -0.335 -0.335 -0.171 -0.088 - 10.251 -0.739 -0.553 -0.545 -0.237 -0.246 -0.189 -0.063 0.134 -0.108 -0.193 0.002 -0.130 - 10.011 -0.368 -0.440 -0.329 -0.135 -0.339 -0.336 -0.188 0.133 -0.202 -0.305 -0.018 -0.068 - 10.024 -0.473 -0.298 -0.402 -0.131 -0.276 -0.309 -0.246 0.195 0.061 -0.168 -0.001 -0.021 - 10.077 -0.358 -0.097 -0.368 -0.276 -0.458 -0.164 -0.169 0.132 0.046 -0.243 -0.198 -0.039 - 10.067 -0.149 -0.061 -0.285 -0.091 -0.192 -0.226 -0.265 0.194 0.024 -0.096 -0.172 -0.269 - 9.607 -0.488 -0.272 -0.428 -0.176 -0.427 -0.376 -0.197 0.368 0.089 -0.171 0.021 -0.211 - 9.471 -0.575 -0.416 -0.426 -0.196 -0.564 -0.416 -0.229 0.333 0.019 -0.233 -0.009 -0.221 - 9.629 -0.441 -0.374 -0.372 -0.183 -0.422 -0.325 -0.235 0.294 -0.034 -0.227 -0.036 -0.233 - 9.746 -0.643 -0.460 -0.350 -0.321 -0.331 -0.317 0.029 0.340 -0.030 -0.247 -0.000 -0.188 - 9.561 -0.487 -0.377 -0.242 -0.277 -0.077 -0.006 0.111 0.482 0.041 -0.277 -0.060 -0.249 - 9.478 -0.362 -0.411 -0.125 -0.257 -0.313 -0.073 0.048 0.388 0.033 -0.358 -0.069 -0.171 - 9.512 -0.508 -0.385 -0.056 -0.368 -0.549 -0.107 0.161 0.250 -0.001 -0.163 -0.051 -0.149 - 8.921 -0.381 -0.289 -0.113 -0.386 -0.291 -0.211 0.112 0.308 0.141 -0.057 -0.035 -0.251 - 11.823 0.486 -0.391 0.020 -0.079 -0.294 -0.312 0.122 -0.184 -0.056 -0.354 -0.065 -0.299 - 13.082 0.555 -0.334 -0.010 -0.153 -0.382 -0.383 0.200 -0.218 0.022 -0.317 0.122 -0.284 - 12.452 0.340 -0.389 -0.024 -0.146 -0.535 -0.505 0.151 -0.169 0.113 -0.206 0.294 -0.166 - 9.849 0.321 -0.100 -0.155 -0.030 -0.457 -0.607 0.187 -0.001 0.126 -0.269 0.066 -0.132 - 9.111 -0.129 -0.226 -0.182 -0.257 -0.605 -0.364 0.050 0.241 0.147 -0.262 0.024 -0.161 - 8.990 -0.298 -0.403 -0.419 -0.171 -0.620 -0.430 -0.067 0.240 0.081 -0.282 0.093 -0.094 - 9.149 -0.294 -0.323 -0.355 -0.175 -0.489 -0.281 0.012 0.232 -0.097 -0.165 0.102 0.061 - 9.142 -0.407 -0.335 -0.439 -0.182 -0.642 -0.166 0.141 0.275 -0.293 -0.267 0.209 0.114 - 9.117 -0.508 -0.274 -0.478 -0.238 -0.538 -0.211 0.225 0.063 -0.257 -0.152 0.123 0.040 - 8.986 -0.646 -0.281 -0.564 -0.122 -0.450 -0.286 0.128 0.174 -0.278 -0.336 0.043 0.051 - 8.454 -0.884 -0.373 -0.446 -0.189 -0.600 -0.214 0.109 0.361 -0.268 -0.523 0.042 0.104 - 8.359 -0.881 -0.447 -0.359 -0.115 -0.222 -0.169 0.210 0.240 -0.398 -0.382 -0.126 0.036 - 8.426 -0.849 -0.490 -0.232 -0.012 -0.492 -0.052 0.180 0.323 -0.279 -0.427 -0.277 0.043 - 8.492 -0.961 -0.512 -0.311 0.020 -0.337 -0.057 0.216 0.308 -0.246 -0.310 -0.186 0.067 - 8.476 -0.825 -0.338 -0.234 -0.099 -0.385 -0.075 0.204 0.278 -0.176 -0.412 -0.250 -0.103 - 7.978 -0.953 -0.473 -0.352 -0.004 -0.346 -0.112 0.107 0.224 -0.354 -0.443 -0.341 -0.167 - 7.603 -1.051 -0.566 -0.416 -0.007 -0.438 -0.092 0.026 0.382 -0.189 -0.305 -0.323 -0.149 - 7.693 -0.997 -0.462 -0.356 0.024 -0.413 -0.226 -0.035 0.546 -0.016 -0.260 -0.228 -0.182 - 7.534 -1.005 -0.487 -0.320 0.012 -0.531 -0.146 0.130 0.523 -0.165 -0.408 -0.298 -0.202 - 7.790 -0.686 -0.399 -0.525 0.093 -0.578 -0.296 -0.038 0.552 -0.006 -0.333 -0.181 -0.043 - 7.523 -0.780 -0.388 -0.439 0.044 -0.518 -0.250 0.066 0.566 0.126 -0.406 -0.180 0.077 - 7.474 -0.691 -0.495 -0.505 0.105 -0.329 -0.383 0.108 0.457 0.115 -0.159 -0.125 -0.040 - 6.849 -1.102 -0.697 -0.638 0.108 -0.242 -0.365 0.051 0.512 0.038 -0.000 -0.132 -0.198 - 6.857 -0.889 -0.479 -0.425 0.265 -0.418 -0.396 -0.095 0.302 -0.073 -0.053 -0.084 -0.184 - 6.695 -0.926 -0.378 -0.324 0.403 -0.249 -0.186 0.061 0.343 -0.279 -0.062 -0.096 -0.190 - 7.020 -0.557 -0.152 -0.295 0.305 -0.372 -0.247 -0.193 0.276 -0.038 0.030 0.055 -0.017 - 7.592 -0.468 -0.110 -0.125 0.175 -0.194 -0.096 -0.276 -0.106 -0.252 -0.103 0.099 0.040 - 7.676 -0.489 -0.164 -0.140 0.058 -0.052 -0.355 -0.400 -0.075 -0.250 0.005 0.177 0.042 - 7.510 -0.439 -0.447 -0.096 0.142 0.088 -0.222 -0.462 -0.081 -0.248 -0.011 -0.002 -0.015 - 7.003 -0.260 -0.269 -0.251 0.151 -0.005 -0.253 -0.147 -0.242 -0.306 0.045 0.092 0.008 - 6.447 -0.086 -0.015 -0.205 0.275 -0.288 -0.386 -0.001 -0.055 -0.166 0.008 0.228 0.083 - 6.222 -0.027 0.154 -0.254 0.325 -0.107 -0.246 0.112 0.118 -0.039 -0.271 0.021 -0.077 - 6.083 -0.208 -0.142 -0.103 0.061 0.050 -0.239 -0.192 0.113 0.090 -0.136 0.134 0.164 - 6.335 0.090 -0.126 0.036 0.068 0.104 -0.450 -0.217 -0.055 -0.081 -0.103 -0.021 -0.079 - 6.757 0.096 0.190 0.080 0.020 0.026 -0.270 -0.168 0.015 -0.060 -0.029 0.037 -0.024 - 6.606 0.293 0.084 0.017 0.079 0.148 -0.334 -0.174 -0.043 0.028 -0.174 0.005 -0.034 - 6.457 0.386 0.097 -0.089 -0.182 0.125 -0.347 -0.127 0.069 -0.078 -0.093 0.044 -0.033 - 6.921 0.263 0.343 0.110 0.114 0.363 -0.363 -0.263 -0.264 -0.110 -0.099 -0.099 -0.083 - 6.723 0.346 0.098 -0.166 -0.075 0.284 -0.324 -0.233 -0.391 -0.116 0.001 0.001 -0.047 - 6.436 0.108 0.114 -0.179 -0.157 0.194 -0.433 -0.184 -0.375 -0.114 -0.122 0.078 0.088 - 5.008 0.122 0.019 -0.063 -0.029 0.099 -0.283 -0.092 -0.066 0.171 0.058 -0.130 -0.082 - 4.753 0.073 -0.235 0.118 -0.070 -0.021 -0.253 -0.143 -0.198 -0.111 -0.011 0.090 -0.090 - 4.735 0.344 -0.460 0.136 -0.078 -0.239 -0.330 -0.246 -0.194 -0.020 -0.079 -0.038 0.197 - 4.337 0.132 -0.403 0.163 -0.167 -0.083 0.126 -0.203 -0.206 0.229 0.183 -0.117 0.024 - 5.192 -0.235 -0.225 0.240 -0.340 0.085 -0.021 -0.318 -0.028 0.050 0.082 0.188 -0.109 - 5.883 -0.534 0.059 0.231 -0.509 -0.080 -0.257 -0.123 0.109 0.097 -0.008 0.274 -0.087 - 5.872 -0.638 0.242 0.272 -0.485 -0.160 -0.235 -0.048 0.130 0.045 0.016 0.081 -0.176 - 5.690 -0.600 0.250 0.278 -0.299 -0.037 -0.027 -0.290 0.119 0.196 0.052 0.041 -0.057 - 5.932 -0.687 0.005 0.167 -0.404 -0.257 0.011 -0.228 0.015 0.094 -0.012 0.080 0.057 - 6.609 -0.601 -0.246 0.142 -0.366 -0.203 0.223 0.025 -0.151 -0.147 -0.012 0.068 -0.097 - 6.728 -0.494 -0.278 0.072 -0.331 -0.198 0.214 0.099 -0.076 -0.281 -0.127 -0.021 -0.072 - 6.733 -0.318 -0.441 0.225 -0.260 -0.084 0.042 0.142 0.087 -0.168 -0.225 0.093 0.074 - 7.291 -0.204 -0.695 0.121 -0.303 -0.245 -0.195 0.132 0.156 -0.114 -0.145 0.048 -0.182 - 7.425 -0.202 -0.991 0.000 -0.181 -0.047 -0.142 0.140 0.256 -0.220 -0.072 0.156 -0.137 - 7.504 -0.217 -1.227 -0.132 -0.119 0.055 -0.348 -0.001 0.123 -0.112 -0.038 0.336 0.042 - 7.945 -0.226 -1.225 0.012 -0.160 0.100 -0.450 -0.161 0.345 -0.086 -0.129 0.242 -0.058 - 8.085 -0.203 -1.277 0.031 -0.219 0.289 -0.536 -0.245 0.305 -0.192 -0.148 0.269 0.039 - 8.313 -0.162 -1.290 -0.126 -0.174 0.346 -0.458 -0.235 0.375 -0.193 -0.063 0.242 -0.002 - 8.578 -0.243 -1.099 -0.362 -0.220 0.352 -0.477 -0.272 0.230 -0.239 -0.113 0.121 -0.039 - 8.671 -0.390 -1.085 -0.491 -0.248 0.387 -0.404 -0.154 0.350 -0.137 -0.005 0.106 0.044 - 8.581 -0.403 -0.926 -0.456 -0.280 0.529 -0.460 -0.163 0.241 -0.190 0.108 0.045 0.010 - 8.336 -0.436 -0.824 -0.408 -0.385 0.577 -0.385 -0.183 0.170 -0.184 0.194 0.086 -0.153 - 8.134 -0.363 -0.680 -0.356 -0.349 0.475 -0.312 -0.143 0.191 -0.147 0.098 0.070 -0.142 - 7.852 -0.172 -0.402 -0.243 -0.332 0.282 -0.276 -0.190 0.152 -0.056 -0.086 0.095 -0.100 - 7.839 -0.069 -0.684 -0.048 -0.308 -0.040 -0.124 0.077 0.019 0.018 -0.088 -0.016 -0.013 - 7.825 0.135 -0.624 0.008 -0.162 -0.184 -0.278 -0.063 0.056 0.026 -0.147 -0.131 0.018 - 7.530 0.386 -0.564 -0.023 -0.153 -0.161 -0.347 -0.043 -0.007 0.074 -0.160 -0.108 -0.033 - 6.906 0.373 -0.506 -0.006 -0.132 -0.069 0.028 0.057 0.057 -0.072 -0.163 -0.123 -0.169 - 7.950 1.159 -0.143 0.103 -0.145 -0.107 -0.294 -0.084 -0.053 -0.038 -0.043 -0.139 -0.124 - 7.842 0.978 0.000 0.064 0.013 -0.161 -0.370 0.011 -0.044 0.069 -0.036 -0.111 -0.058 - 6.980 0.118 -0.541 0.530 0.273 -0.077 -0.202 0.111 -0.100 -0.096 -0.275 -0.154 -0.125 - 7.087 0.257 -0.574 0.589 -0.005 -0.332 -0.220 -0.088 -0.137 -0.167 -0.113 0.086 -0.127 - 7.223 0.266 -0.487 0.621 -0.070 -0.488 -0.408 0.019 -0.112 -0.071 -0.022 0.237 -0.035 - 7.489 0.470 -0.514 0.581 -0.062 -0.593 -0.447 0.122 -0.052 -0.229 0.074 0.350 0.094 - 7.192 0.059 -0.763 0.581 0.117 -0.789 -0.759 0.151 -0.027 -0.250 0.165 0.258 0.151 - 7.283 0.300 -0.644 0.381 0.067 -0.685 -0.760 0.209 -0.025 -0.106 -0.003 0.098 0.156 - 7.206 0.408 -0.477 0.013 -0.094 -0.661 -0.873 0.145 0.044 -0.144 -0.005 0.169 0.203 - 6.907 0.413 -0.596 -0.046 -0.253 -0.752 -0.711 0.002 -0.165 -0.367 -0.044 0.035 0.048 - 6.914 0.362 -0.548 0.088 -0.167 -0.601 -0.625 0.141 -0.217 -0.249 0.047 0.097 0.228 - 7.412 -0.013 -0.273 0.452 0.031 -0.643 -0.603 -0.067 -0.216 -0.279 -0.025 0.032 -0.037 - 7.899 -0.128 -0.187 0.556 0.104 -0.471 -0.571 -0.059 -0.187 -0.438 -0.061 0.041 -0.029 - 7.962 0.098 -0.205 0.525 -0.058 -0.585 -0.523 -0.206 -0.100 -0.295 -0.167 0.054 0.091 - 7.826 -0.033 -0.361 0.498 -0.207 -0.502 -0.348 -0.232 -0.107 -0.150 -0.026 0.040 -0.020 - 7.523 -0.066 -0.485 0.493 -0.223 -0.617 -0.449 -0.298 -0.222 0.032 0.096 -0.001 0.065 - 7.268 -0.148 -0.162 0.493 -0.487 -0.537 -0.221 -0.190 0.031 0.024 0.005 0.005 -0.011 - 7.395 -0.151 -0.119 0.446 -0.429 -0.477 -0.240 -0.294 -0.012 -0.208 0.139 0.155 -0.250 - 7.454 -0.374 -0.072 0.342 -0.571 -0.548 -0.209 -0.007 -0.058 -0.173 0.081 0.229 -0.326 - 7.562 -0.243 0.053 0.179 -0.319 -0.699 -0.508 -0.101 -0.085 -0.063 -0.099 0.251 -0.225 - 6.967 -0.226 0.129 0.158 -0.229 -0.568 -0.578 -0.090 -0.098 -0.171 -0.042 0.215 -0.182 - 6.737 0.032 0.133 0.265 -0.161 -0.302 -0.465 0.002 -0.086 -0.445 -0.148 0.175 -0.264 - 6.140 0.157 0.214 0.062 -0.284 -0.214 -0.398 -0.143 -0.113 -0.267 -0.042 0.145 -0.188 - 5.649 0.128 0.077 0.062 -0.158 -0.225 -0.353 -0.103 -0.093 -0.275 -0.180 0.119 -0.081 - 5.542 0.133 0.153 0.260 -0.059 -0.389 -0.363 -0.326 -0.185 -0.341 -0.179 -0.008 -0.076 - 5.443 -0.060 0.175 0.251 0.052 -0.278 -0.363 -0.250 -0.190 -0.289 -0.090 0.011 -0.243 - 5.610 0.149 0.153 0.119 0.024 -0.234 -0.365 -0.301 -0.224 -0.283 -0.209 0.008 -0.114 - 6.011 0.059 0.232 -0.005 -0.304 -0.338 -0.523 -0.257 -0.006 -0.126 -0.137 -0.080 -0.213 - 6.647 -0.137 0.099 0.237 -0.459 -0.280 -0.317 -0.224 0.050 0.021 0.053 -0.091 -0.183 - 6.879 -0.223 0.147 0.296 -0.339 -0.258 -0.346 -0.371 -0.046 -0.096 0.063 0.017 -0.224 - 6.816 -0.113 0.143 -0.176 -0.162 -0.041 -0.363 -0.414 -0.027 0.001 -0.051 -0.078 -0.166 - 6.931 -0.209 0.189 -0.114 -0.279 -0.198 -0.579 -0.412 0.010 0.021 -0.150 -0.074 -0.062 - 7.012 -0.238 0.005 0.037 -0.220 -0.032 -0.398 -0.481 -0.200 -0.065 -0.128 0.012 0.080 - 7.111 0.019 0.028 -0.020 -0.298 -0.080 -0.355 -0.521 -0.233 -0.104 -0.067 0.008 -0.021 - 6.073 0.046 0.016 0.068 -0.179 0.008 -0.263 -0.446 -0.213 -0.176 -0.195 -0.080 -0.091 - 5.448 0.347 -0.028 0.296 -0.142 -0.242 -0.601 -0.254 0.010 -0.139 -0.166 0.050 -0.093 - 6.058 0.193 -0.171 0.131 -0.202 -0.278 -0.685 -0.132 0.088 -0.105 -0.354 0.110 -0.121 - 6.523 0.190 -0.473 -0.051 -0.313 -0.277 -0.760 -0.012 0.253 -0.190 -0.518 0.183 -0.272 - 6.915 0.005 -0.546 -0.252 -0.374 -0.284 -0.722 0.073 0.309 -0.253 -0.534 0.221 -0.187 - 6.954 -0.056 -0.806 -0.329 -0.168 -0.101 -0.652 0.102 0.042 -0.310 -0.663 0.069 -0.175 - 7.195 -0.056 -0.855 -0.394 -0.220 -0.030 -0.640 0.056 0.123 -0.209 -0.659 0.137 -0.245 - 7.300 -0.053 -0.843 -0.272 -0.171 0.084 -0.611 0.085 0.116 -0.223 -0.622 0.143 -0.129 - 7.282 -0.066 -0.960 -0.256 -0.322 0.243 -0.501 -0.050 0.199 -0.297 -0.452 0.147 -0.050 - 7.051 -0.067 -1.061 -0.206 -0.283 0.334 -0.416 -0.007 0.236 -0.424 -0.485 0.179 -0.176 - 7.000 -0.264 -1.028 -0.387 -0.066 0.389 -0.338 0.146 0.137 -0.382 -0.598 0.340 -0.204 - 7.277 -0.112 -0.984 -0.379 -0.096 0.284 -0.430 0.106 0.078 -0.215 -0.433 0.360 -0.175 - 7.234 -0.116 -1.040 -0.425 -0.097 0.239 -0.442 -0.065 -0.056 -0.281 -0.511 0.330 -0.222 - 7.261 -0.018 -1.148 -0.382 -0.174 0.214 -0.401 -0.093 -0.067 -0.197 -0.341 0.341 -0.240 - 7.437 -0.039 -1.076 -0.456 -0.386 0.222 -0.516 -0.031 -0.044 -0.162 -0.326 0.241 -0.302 - 7.321 -0.138 -1.168 -0.418 -0.530 -0.038 -0.542 -0.122 -0.072 -0.082 -0.327 0.313 -0.350 - 7.094 -0.041 -1.055 -0.258 -0.358 -0.190 -0.523 0.092 -0.124 0.051 -0.213 0.426 -0.364 - 7.099 -0.031 -1.076 -0.316 -0.228 -0.075 -0.664 0.070 -0.151 0.042 -0.218 0.393 -0.300 - 7.119 0.040 -1.024 -0.444 -0.275 0.184 -0.450 0.029 0.081 0.026 -0.377 0.341 -0.220 - 6.928 0.140 -0.825 -0.493 -0.261 0.151 -0.365 0.117 0.206 -0.125 -0.213 0.261 -0.327 - 6.057 0.198 -0.513 -0.420 -0.098 0.077 -0.381 0.059 0.158 -0.038 -0.239 0.165 -0.164 - 5.919 0.366 -0.527 -0.451 -0.208 0.000 -0.301 -0.091 0.179 -0.084 -0.212 0.172 -0.076 - 5.924 0.217 -0.523 -0.339 -0.297 -0.054 -0.291 0.084 0.210 0.095 -0.207 0.004 -0.270 - 5.556 0.300 -0.485 -0.345 -0.226 0.015 -0.273 0.029 0.418 0.103 -0.261 -0.025 -0.201 - 5.100 0.388 -0.372 -0.123 -0.196 -0.034 -0.368 0.036 0.182 0.148 0.029 0.151 -0.168 - 6.258 -0.310 -0.505 -0.155 -0.121 0.308 0.093 -0.250 0.035 -0.049 0.037 -0.016 -0.086 - 8.539 -0.640 -0.591 -0.199 -0.249 0.251 0.102 -0.524 -0.040 0.065 0.108 0.014 -0.039 - 9.152 -0.583 -0.649 -0.032 -0.245 0.057 -0.055 -0.553 -0.033 -0.034 -0.205 -0.068 -0.034 - 9.318 -0.604 -0.685 -0.101 -0.258 0.078 -0.029 -0.401 0.086 0.075 0.012 0.010 0.041 - 9.213 -0.427 -0.348 -0.166 -0.190 0.130 -0.022 -0.516 -0.050 0.156 0.008 -0.027 -0.068 - 9.609 -0.314 -0.359 -0.192 -0.324 0.064 -0.181 -0.477 -0.102 -0.009 -0.150 0.019 -0.101 - 9.802 -0.438 -0.386 -0.056 -0.132 0.007 -0.338 -0.398 0.018 0.152 -0.114 -0.028 0.012 - 9.804 -0.446 -0.473 -0.092 -0.137 0.045 -0.083 -0.319 0.201 0.025 -0.031 -0.047 0.001 - 9.718 0.038 -0.334 -0.156 -0.217 -0.092 -0.185 -0.286 0.135 0.022 -0.064 -0.121 -0.033 - 8.803 0.108 -0.110 -0.159 -0.074 0.047 -0.188 -0.364 -0.201 0.068 -0.139 -0.090 0.025 - 8.240 -0.126 -0.327 -0.249 -0.193 0.077 -0.300 -0.219 -0.055 0.158 0.004 0.006 -0.075 - 7.872 -0.089 -0.095 -0.114 -0.170 -0.119 -0.211 -0.040 0.035 0.138 0.024 -0.027 -0.053 - 6.931 -0.102 -0.019 -0.082 -0.138 0.033 -0.202 0.093 0.042 0.046 -0.076 -0.219 -0.047 - 5.641 -0.066 0.124 0.015 -0.186 -0.038 -0.154 -0.194 -0.049 0.041 0.003 -0.003 0.047 - 5.058 -0.293 0.146 -0.018 -0.253 0.045 -0.457 -0.135 0.039 0.081 -0.175 0.019 0.150 - 4.897 -0.430 -0.109 0.120 -0.171 -0.023 -0.200 0.083 -0.113 0.067 0.035 0.072 0.052 - 4.983 -0.102 0.046 0.156 -0.094 0.048 -0.219 -0.064 -0.097 0.007 -0.123 -0.100 -0.074 - 5.166 -0.116 0.176 0.048 0.043 0.056 -0.373 -0.191 0.104 0.015 -0.115 -0.049 -0.015 - 5.347 -0.350 -0.033 -0.065 -0.030 0.246 -0.163 0.033 0.142 0.044 -0.162 -0.093 -0.182 - 5.242 -0.220 0.150 0.028 -0.056 -0.013 -0.154 0.150 -0.057 -0.049 -0.060 -0.049 -0.082 - 5.357 -0.174 0.165 -0.032 -0.290 -0.276 -0.386 0.011 -0.067 0.051 -0.086 -0.002 -0.026 - 5.628 0.150 0.263 -0.089 -0.241 -0.009 -0.151 -0.033 -0.119 -0.159 -0.158 -0.074 -0.176 - 6.791 0.457 0.348 -0.039 -0.117 0.101 0.135 0.135 -0.105 -0.074 -0.181 -0.009 -0.094 - 5.995 0.276 0.509 -0.002 -0.209 -0.000 -0.216 0.085 -0.069 0.054 -0.100 -0.008 -0.308 - 5.738 0.020 0.203 -0.191 -0.544 -0.264 -0.177 0.151 -0.165 0.013 0.097 -0.071 -0.134 - 5.936 -0.005 0.249 -0.049 -0.324 -0.153 -0.225 0.058 -0.089 0.068 -0.156 -0.078 0.011 - 5.681 0.120 0.386 -0.116 -0.225 -0.008 -0.122 0.024 -0.096 -0.041 -0.075 -0.048 -0.122 - 5.932 0.180 0.398 0.113 -0.209 -0.052 -0.185 0.041 -0.047 -0.068 -0.137 -0.090 -0.258 - 6.122 0.440 0.649 0.251 -0.130 -0.146 -0.374 -0.147 0.091 0.165 -0.147 -0.225 -0.090 - 5.830 0.467 0.359 0.068 -0.033 -0.027 -0.266 -0.361 -0.289 0.115 -0.126 -0.193 -0.008 - 7.798 0.306 -0.346 -0.371 0.036 -0.246 -0.221 -0.061 -0.114 -0.118 -0.169 -0.036 -0.102 - 8.452 0.397 -0.339 -0.327 0.117 -0.218 -0.199 -0.069 -0.070 -0.194 -0.163 -0.032 -0.139 - 5.553 0.211 0.549 0.148 -0.083 -0.100 -0.196 -0.134 -0.171 0.034 -0.147 -0.231 -0.135 - 5.444 0.282 0.414 0.014 -0.032 0.058 -0.112 -0.123 -0.202 -0.066 -0.168 -0.030 -0.250 - 5.522 0.259 0.467 -0.126 -0.034 0.098 0.053 0.041 -0.080 -0.000 -0.181 -0.077 -0.237 - 5.616 0.147 0.272 -0.050 -0.199 -0.188 -0.089 -0.019 -0.102 0.077 -0.060 -0.079 -0.130 - 6.792 -0.166 0.045 -0.191 -0.020 -0.017 -0.085 0.000 -0.231 -0.093 -0.185 -0.077 -0.066 - 4.957 0.177 0.081 0.055 0.005 -0.128 -0.145 -0.182 -0.124 -0.048 -0.126 0.057 -0.065 - 4.604 0.113 0.073 0.178 0.043 0.006 -0.053 0.099 -0.051 -0.029 -0.093 0.000 -0.109 - 4.734 0.343 0.192 0.025 -0.052 -0.095 -0.161 -0.028 -0.078 -0.054 -0.114 -0.107 -0.053 - 4.681 0.222 0.035 0.060 0.020 -0.035 -0.105 0.051 -0.185 -0.048 -0.157 -0.078 -0.029 - 5.039 0.213 0.116 -0.093 -0.278 -0.090 -0.171 -0.189 -0.242 -0.054 -0.061 0.029 -0.055 - 4.617 0.195 0.071 0.013 -0.151 -0.148 -0.309 -0.087 -0.124 -0.032 -0.106 -0.020 -0.187 - 4.775 0.172 0.033 -0.041 -0.177 -0.048 0.072 -0.110 -0.075 -0.028 -0.015 0.130 -0.001 - 4.737 0.152 0.054 0.064 -0.219 -0.121 -0.029 -0.057 -0.176 -0.133 -0.231 0.051 -0.035 - 5.117 0.175 0.101 -0.059 -0.330 -0.176 -0.105 -0.067 -0.004 0.002 -0.006 -0.111 0.026 - 6.688 -0.578 0.039 -0.085 -0.178 -0.175 -0.316 -0.200 -0.162 -0.033 -0.058 -0.041 -0.108 - 5.894 -0.065 0.252 -0.142 -0.280 -0.168 -0.163 -0.168 -0.175 -0.151 -0.148 -0.081 -0.072 - 5.081 0.395 0.075 0.164 -0.321 -0.247 -0.144 -0.160 -0.129 -0.234 -0.020 0.006 0.057 - 4.906 0.396 0.220 -0.020 -0.114 -0.145 -0.077 -0.142 -0.225 -0.175 -0.182 -0.123 -0.076 - 5.078 0.111 -0.008 0.036 -0.175 0.004 0.025 -0.117 -0.018 -0.081 -0.172 -0.068 -0.055 - 4.903 0.132 0.146 -0.007 -0.144 -0.104 -0.071 -0.215 -0.239 0.061 -0.062 -0.098 -0.224 - 4.142 0.164 -0.032 0.072 -0.082 -0.240 -0.051 -0.264 -0.145 -0.112 -0.117 -0.046 -0.205 - 4.168 -0.001 -0.130 0.052 -0.151 -0.128 -0.079 0.053 -0.137 0.055 -0.024 -0.063 -0.215 - 4.119 -0.010 -0.149 0.103 -0.045 -0.141 -0.088 -0.059 -0.174 -0.043 -0.067 0.067 0.048 - 4.330 0.209 -0.185 0.128 -0.107 -0.185 -0.074 0.127 -0.176 -0.045 -0.165 -0.132 -0.118 - 4.038 0.216 -0.008 0.283 -0.057 -0.052 -0.056 -0.044 -0.227 -0.137 -0.045 -0.102 -0.113 - 3.923 0.153 -0.182 0.223 0.048 -0.131 0.068 0.111 -0.023 -0.145 -0.164 -0.146 -0.020 - 3.993 0.060 -0.229 0.173 -0.005 -0.099 0.276 0.148 -0.042 -0.059 -0.049 -0.067 -0.206 - 4.163 0.342 -0.198 0.016 -0.195 -0.055 -0.050 -0.025 -0.119 0.025 -0.034 0.038 -0.119 - 4.029 0.265 -0.152 0.124 -0.132 0.001 0.008 -0.119 -0.024 -0.083 -0.120 -0.056 -0.078 - 4.504 -0.086 0.152 -0.176 0.024 -0.145 -0.043 0.044 -0.167 -0.103 -0.189 -0.058 -0.213 - 4.592 0.098 0.166 -0.195 0.019 -0.022 -0.100 0.055 -0.165 0.009 0.039 -0.030 -0.217 - 4.529 0.285 -0.125 0.075 -0.216 -0.051 -0.097 -0.005 -0.007 0.040 -0.016 0.010 -0.081 - 4.469 0.188 -0.102 0.039 -0.190 0.007 0.073 0.013 -0.125 -0.174 -0.089 -0.180 -0.178 - 4.297 0.358 0.027 0.037 -0.297 -0.063 -0.003 0.080 -0.026 -0.033 0.063 -0.104 -0.237 - 4.277 0.091 -0.054 0.051 -0.164 -0.334 -0.240 -0.067 0.061 0.032 -0.107 -0.103 -0.096 - 4.707 0.174 0.130 0.105 -0.157 -0.230 -0.065 0.060 0.067 -0.041 -0.045 -0.112 -0.369 - 5.102 0.455 -0.015 -0.013 -0.219 -0.129 0.014 -0.009 -0.177 -0.206 -0.019 -0.151 -0.121 - 5.040 0.214 -0.018 -0.075 -0.424 -0.337 -0.005 -0.056 -0.094 -0.078 -0.108 0.041 -0.114 - 4.962 0.218 0.044 0.056 -0.422 -0.186 0.112 -0.075 -0.192 -0.043 -0.176 -0.150 -0.190 - 4.822 0.513 -0.285 0.068 -0.271 -0.090 -0.087 -0.099 -0.198 0.003 -0.039 0.012 -0.093 - 4.420 0.462 0.029 0.112 -0.228 -0.085 -0.102 -0.155 -0.030 -0.046 -0.312 -0.140 -0.031 - 4.764 0.550 -0.197 -0.018 -0.191 -0.123 0.003 -0.126 -0.130 0.055 -0.083 -0.024 -0.054 - 4.632 0.570 -0.069 0.010 -0.231 -0.040 0.101 0.037 -0.082 -0.155 -0.295 0.004 -0.037 - 4.604 0.462 -0.107 -0.016 -0.342 -0.149 -0.066 -0.058 -0.131 -0.007 -0.198 -0.083 -0.043 - 4.991 0.671 -0.200 -0.100 -0.396 -0.134 -0.027 -0.095 -0.014 -0.078 -0.191 -0.163 -0.048 - 5.046 0.656 -0.133 0.206 -0.252 -0.100 0.104 -0.196 -0.261 0.033 -0.203 -0.043 -0.173 - 4.754 0.426 0.080 0.261 -0.297 -0.213 -0.033 -0.024 -0.258 0.050 -0.229 0.013 -0.063 - 4.903 0.669 0.018 0.164 -0.433 -0.096 -0.053 -0.211 -0.099 -0.049 -0.368 0.010 0.048 - 4.716 0.402 -0.195 0.344 -0.326 -0.305 -0.021 0.005 -0.127 -0.247 -0.153 0.080 0.193 - 5.200 0.593 -0.084 0.197 -0.020 -0.201 -0.132 -0.227 -0.200 -0.048 -0.033 0.086 -0.134 - 5.505 0.502 0.111 0.222 -0.087 -0.112 -0.231 -0.454 -0.164 -0.007 0.015 0.099 -0.346 - 5.832 0.437 -0.011 0.108 -0.216 -0.247 -0.189 -0.319 -0.279 0.076 -0.003 0.144 -0.227 - 5.675 0.477 0.044 0.100 -0.307 -0.229 -0.165 -0.261 -0.314 0.160 -0.040 0.071 -0.221 - 5.606 0.666 0.151 0.138 -0.401 -0.151 -0.129 -0.373 -0.362 0.229 -0.097 -0.079 -0.228 - 5.701 0.581 0.168 0.130 -0.413 -0.109 -0.198 -0.329 -0.380 0.244 -0.128 -0.014 -0.213 - 5.772 0.602 0.323 0.118 -0.319 -0.160 -0.179 -0.342 -0.492 0.199 -0.040 -0.083 -0.260 - 6.037 0.586 -0.036 0.075 -0.290 -0.156 -0.124 -0.344 -0.434 0.150 -0.208 0.030 -0.338 - 6.052 0.561 -0.023 0.061 -0.041 0.004 -0.108 -0.254 -0.478 -0.162 -0.139 0.074 -0.250 - 5.666 0.561 0.177 0.210 -0.149 -0.041 -0.249 -0.275 -0.539 -0.006 0.031 -0.005 -0.085 - 6.132 0.793 0.269 0.005 -0.094 -0.067 0.106 0.080 -0.173 -0.122 -0.225 -0.264 -0.280 - 6.068 0.803 0.567 0.276 -0.107 -0.015 -0.027 -0.079 -0.199 -0.121 -0.307 -0.258 -0.279 - 5.645 0.551 0.215 0.064 -0.292 -0.116 -0.113 -0.212 -0.160 -0.032 -0.090 -0.049 0.031 - 5.429 0.228 0.098 0.280 -0.039 -0.147 -0.238 -0.227 -0.322 -0.070 -0.158 -0.002 -0.011 - 5.840 -0.028 -0.035 0.281 -0.081 -0.290 -0.160 -0.388 -0.324 -0.078 -0.128 -0.016 0.048 - 7.103 0.101 0.061 0.268 -0.350 -0.275 -0.081 -0.300 -0.212 0.188 -0.106 -0.039 -0.076 - 8.854 0.411 0.282 0.128 -0.480 -0.087 -0.353 -0.302 -0.094 0.227 -0.063 -0.063 -0.190 - 7.506 0.162 0.233 0.528 -0.283 -0.227 0.105 -0.319 -0.207 0.130 -0.243 -0.048 -0.192 - 8.800 0.533 0.121 0.185 -0.264 -0.075 0.052 -0.200 -0.277 0.045 -0.302 -0.052 -0.208 - 9.231 0.666 0.202 0.171 -0.318 0.098 0.169 -0.305 -0.266 -0.042 -0.298 -0.016 -0.202 - 6.992 0.054 0.344 0.311 -0.324 -0.178 0.375 -0.211 -0.204 0.150 -0.378 0.072 -0.180 - 6.778 0.031 0.231 0.207 -0.580 -0.316 0.150 -0.518 -0.201 0.141 -0.278 0.109 -0.009 - 6.429 -0.064 0.242 0.247 -0.468 -0.406 0.096 -0.641 -0.152 0.128 -0.293 0.264 -0.125 - 6.597 -0.014 0.390 0.513 -0.517 -0.320 -0.015 -0.626 -0.282 0.056 -0.341 0.037 -0.128 - 7.067 -0.265 0.296 0.531 -0.457 -0.346 -0.155 -0.751 -0.285 0.128 -0.384 -0.068 -0.177 - 6.844 -0.196 0.337 0.550 -0.638 -0.447 0.052 -0.789 -0.415 -0.014 -0.437 -0.084 -0.237 - 7.027 -0.281 0.400 0.503 -0.723 -0.570 0.202 -0.523 -0.284 0.114 -0.443 -0.063 -0.304 - 6.888 -0.432 0.346 0.443 -0.882 -0.811 0.137 -0.540 -0.214 0.273 -0.228 0.028 -0.228 - 6.818 -0.375 0.147 0.264 -0.830 -0.655 0.225 -0.531 -0.067 0.259 -0.231 0.043 -0.108 - 6.773 -0.313 0.050 0.326 -0.819 -0.621 0.141 -0.622 -0.142 0.205 -0.210 -0.006 -0.062 - 6.562 -0.155 0.250 0.348 -0.580 -0.759 0.019 -0.441 -0.091 0.118 -0.439 0.028 -0.084 - 5.925 -0.242 0.330 0.307 -0.609 -0.424 0.244 -0.535 -0.218 0.090 -0.367 0.007 -0.123 - 6.017 0.014 0.278 0.399 -0.447 -0.434 0.076 -0.225 -0.065 0.280 -0.309 -0.056 -0.198 - 6.053 0.026 0.247 0.324 -0.194 -0.265 0.094 -0.188 -0.064 -0.031 -0.099 0.019 -0.148 - 5.940 -0.002 0.252 0.248 -0.018 -0.262 0.007 -0.147 -0.117 0.043 -0.128 -0.075 -0.122 - 5.471 0.051 0.159 0.162 -0.175 -0.259 -0.143 -0.124 -0.187 -0.094 0.052 -0.043 -0.109 - 5.688 0.289 0.113 0.337 -0.246 -0.193 -0.000 -0.214 -0.110 -0.009 -0.227 -0.039 -0.048 - 5.989 0.322 0.342 0.290 -0.061 -0.004 -0.181 -0.129 -0.212 0.078 -0.189 -0.033 -0.102 - 5.911 0.008 0.145 0.036 -0.214 0.032 0.061 -0.231 -0.060 0.073 -0.119 -0.013 -0.026 - 6.258 0.037 0.175 0.264 -0.357 -0.223 0.117 -0.325 -0.100 0.056 -0.267 -0.051 -0.208 - 6.256 -0.171 0.268 0.463 -0.351 -0.319 0.088 -0.454 -0.130 0.066 -0.227 -0.037 -0.182 - 6.388 -0.220 0.391 0.434 -0.565 -0.379 -0.014 -0.534 -0.242 0.196 -0.135 0.029 -0.186 - 6.872 -0.203 0.305 0.529 -0.614 -0.547 -0.038 -0.358 -0.208 0.118 0.068 0.008 -0.280 - 6.905 -0.286 -0.043 0.315 -0.422 -0.524 0.049 -0.179 -0.169 -0.090 -0.135 0.105 -0.247 - 6.559 -0.456 -0.154 0.245 -0.264 -0.396 0.198 0.040 -0.117 0.043 -0.063 0.129 -0.455 - 6.590 -0.323 -0.046 0.254 -0.140 -0.405 -0.002 -0.055 -0.035 -0.012 -0.055 0.090 -0.493 - 6.774 -0.183 -0.086 0.335 -0.094 -0.504 -0.063 -0.186 -0.093 -0.090 -0.074 0.160 -0.368 - 6.724 -0.185 -0.217 0.106 -0.151 -0.499 -0.030 0.015 0.007 -0.067 -0.142 0.344 -0.343 - 6.599 -0.081 -0.520 -0.181 -0.216 -0.551 -0.089 0.177 0.061 -0.162 -0.290 0.322 -0.392 - 9.163 1.225 -0.149 -0.072 -0.117 -0.261 -0.207 -0.190 -0.137 -0.212 -0.261 0.090 -0.232 - 9.616 1.224 -0.069 0.078 -0.140 -0.269 -0.174 -0.163 -0.170 -0.145 -0.188 0.084 -0.066 - 7.488 0.773 -0.039 0.188 -0.100 -0.359 -0.041 0.148 0.039 -0.311 -0.178 0.224 -0.317 - 6.610 0.084 -0.107 -0.026 -0.189 -0.323 -0.073 0.237 0.328 -0.130 -0.289 0.320 -0.228 - 6.464 -0.058 -0.280 0.062 -0.172 -0.334 -0.172 0.348 0.176 -0.320 -0.269 0.232 -0.376 - 6.463 0.078 -0.404 -0.017 -0.273 -0.362 -0.191 0.197 -0.017 -0.206 -0.245 0.253 -0.412 - 6.589 0.342 -0.339 0.051 -0.156 -0.318 -0.296 0.202 0.228 -0.317 -0.212 0.170 -0.328 - 8.641 0.351 0.018 -0.340 -0.312 -0.358 -0.132 -0.140 -0.228 0.005 -0.240 -0.002 -0.169 - 8.800 0.072 0.169 -0.048 -0.414 -0.351 -0.040 -0.074 -0.140 0.172 -0.212 0.010 -0.064 - 9.704 -0.237 0.375 0.052 -0.283 -0.253 -0.185 -0.020 -0.225 0.163 -0.394 -0.099 -0.066 - 7.009 0.208 0.384 0.316 -0.075 -0.336 -0.204 0.086 -0.007 0.121 -0.173 0.043 -0.105 - 6.541 0.380 0.278 0.099 -0.220 -0.323 -0.122 0.131 -0.024 -0.105 -0.091 -0.142 -0.324 - 6.031 0.257 0.139 0.112 -0.033 -0.249 -0.121 0.010 -0.171 -0.200 -0.200 0.006 -0.192 - 6.275 0.440 0.082 0.014 -0.213 -0.278 0.040 0.012 -0.066 -0.283 -0.058 -0.084 -0.273 - 6.292 0.459 0.368 0.200 -0.160 -0.160 -0.047 -0.094 -0.270 -0.183 -0.128 0.008 -0.204 - 6.048 0.347 0.298 0.109 -0.174 -0.022 -0.134 -0.128 -0.425 -0.188 -0.118 -0.101 -0.347 - 5.757 0.308 0.123 0.045 -0.184 -0.389 -0.103 -0.170 -0.298 -0.166 -0.110 -0.062 -0.167 - 5.297 0.140 0.090 0.219 -0.226 -0.349 -0.185 -0.087 -0.147 -0.001 -0.136 -0.139 -0.071 - 5.282 0.225 0.027 0.152 -0.179 -0.391 -0.058 0.029 -0.195 -0.065 -0.179 -0.213 -0.214 - 5.874 0.422 0.146 -0.107 -0.243 -0.196 -0.137 -0.136 -0.343 -0.099 -0.046 0.064 -0.092 - 5.552 0.550 -0.134 -0.130 -0.176 -0.114 0.096 -0.020 -0.339 -0.237 -0.200 0.072 -0.191 - 5.906 0.594 -0.133 -0.070 -0.265 -0.205 0.050 -0.036 -0.170 0.153 -0.051 -0.113 -0.131 - 6.343 0.887 0.213 -0.026 -0.083 -0.031 0.187 -0.040 -0.153 0.042 0.015 -0.207 -0.225 - 6.173 0.550 0.055 -0.106 -0.075 -0.074 0.030 -0.038 -0.157 0.004 -0.055 0.035 0.028 - 5.752 0.281 0.072 -0.140 -0.187 -0.197 -0.045 0.026 -0.121 -0.131 -0.073 -0.070 -0.221 - 5.458 0.249 -0.053 -0.050 -0.258 -0.162 0.049 0.088 -0.144 -0.216 -0.122 -0.159 -0.135 - 5.408 0.269 -0.034 0.000 -0.085 -0.133 -0.049 0.084 -0.028 -0.060 -0.241 -0.251 -0.089 - 5.650 0.189 -0.118 -0.106 -0.082 -0.081 -0.116 -0.003 -0.232 -0.154 -0.232 -0.089 -0.058 - 5.746 0.102 -0.017 -0.070 -0.167 -0.155 -0.151 -0.024 -0.034 -0.036 -0.142 -0.124 -0.085 - 5.987 -0.109 -0.154 -0.450 -0.065 -0.207 -0.088 -0.057 -0.042 -0.076 -0.106 0.030 -0.193 - 5.607 -0.041 0.158 -0.137 -0.150 -0.188 -0.044 -0.013 -0.097 -0.084 -0.129 -0.014 -0.055 - 5.329 -0.031 0.105 -0.202 -0.210 -0.145 -0.035 0.082 0.056 -0.042 -0.089 -0.056 -0.046 - 5.536 0.140 -0.007 -0.185 -0.102 0.047 0.062 -0.020 -0.230 -0.120 -0.199 -0.140 -0.153 - 5.280 -0.053 0.057 -0.076 -0.123 -0.037 -0.000 -0.011 -0.056 0.225 -0.001 -0.082 -0.101 - 4.685 0.079 0.128 0.187 -0.140 -0.086 -0.069 0.020 -0.163 0.012 -0.105 -0.133 -0.170 - 5.243 0.155 0.202 0.029 -0.248 -0.066 -0.208 -0.079 -0.042 0.030 -0.146 -0.027 0.029 - 5.243 0.193 0.005 -0.083 -0.240 -0.150 -0.044 -0.072 -0.190 -0.014 0.063 -0.025 -0.037 - 5.073 0.103 -0.239 -0.245 -0.252 -0.079 -0.180 -0.122 -0.227 -0.029 -0.141 -0.135 -0.176 - 4.833 0.090 -0.262 -0.029 -0.209 -0.177 -0.207 -0.076 -0.151 -0.055 -0.185 -0.217 -0.150 - 4.944 0.172 -0.297 0.144 -0.100 -0.003 0.009 -0.070 -0.174 -0.040 -0.128 -0.156 -0.096 - 4.780 0.166 -0.188 0.226 -0.148 -0.076 -0.204 -0.102 -0.211 -0.249 -0.123 -0.101 -0.051 - 4.172 0.185 -0.181 0.204 -0.083 -0.132 0.008 0.075 0.065 0.176 0.049 -0.064 0.073 - 4.242 0.298 -0.225 0.145 -0.124 -0.089 0.102 0.256 0.020 -0.053 -0.132 -0.098 -0.032 - 4.413 0.186 -0.322 0.206 0.006 -0.093 0.175 0.186 -0.103 -0.125 -0.247 -0.240 -0.132 - 4.441 0.223 -0.281 0.083 -0.061 -0.086 0.155 0.029 -0.120 0.024 -0.091 -0.165 -0.127 - 4.285 0.223 -0.191 0.098 -0.244 -0.062 0.014 0.014 -0.287 -0.183 -0.053 -0.001 -0.139 - 4.429 0.459 -0.158 0.199 -0.082 -0.099 0.081 -0.016 -0.307 -0.249 -0.258 -0.048 -0.089 - 4.301 0.323 -0.114 0.189 -0.026 -0.033 -0.045 -0.031 -0.197 -0.122 -0.076 -0.070 -0.242 - 4.061 -0.052 -0.112 0.292 0.060 -0.144 0.096 -0.151 -0.350 -0.163 -0.039 -0.062 -0.132 - 4.414 -0.102 -0.013 0.141 -0.146 -0.157 0.009 0.059 -0.058 0.053 -0.076 -0.086 -0.032 - 4.761 0.192 -0.022 0.035 -0.151 -0.142 -0.082 0.070 0.002 0.139 -0.212 -0.084 -0.182 - 4.893 0.383 0.008 0.158 -0.282 -0.058 -0.023 0.001 -0.132 -0.023 0.037 -0.011 -0.182 - 5.873 0.256 0.307 0.318 -0.355 -0.142 0.014 -0.040 -0.211 -0.009 -0.107 -0.018 -0.117 - 5.780 0.099 0.088 0.489 -0.344 -0.196 -0.031 -0.177 -0.107 0.078 -0.040 0.004 -0.102 - 6.066 -0.071 0.069 0.625 -0.380 -0.119 -0.039 -0.206 -0.174 0.034 -0.010 0.067 -0.058 - 6.349 0.089 0.087 0.386 -0.407 -0.277 -0.170 -0.161 -0.258 0.046 -0.032 -0.066 -0.224 - 6.847 0.223 0.276 0.462 -0.354 -0.271 0.112 -0.014 0.035 0.061 -0.090 -0.131 -0.248 - 7.269 0.836 0.492 0.239 -0.368 -0.112 0.083 -0.275 -0.207 -0.244 -0.102 0.027 -0.079 - 7.753 0.614 0.295 0.223 -0.360 -0.049 -0.086 -0.186 -0.224 -0.074 -0.234 0.048 -0.116 - 8.061 0.641 0.059 0.152 -0.099 -0.169 -0.181 -0.300 -0.207 -0.073 -0.362 0.022 -0.004 - 8.459 0.831 0.209 0.201 0.003 -0.071 -0.201 -0.335 -0.376 -0.029 -0.385 -0.087 -0.032 - 7.218 0.075 0.186 0.168 -0.079 -0.309 -0.359 -0.158 -0.102 -0.173 -0.242 -0.021 -0.046 - 8.151 -0.420 0.030 0.032 -0.085 -0.317 -0.063 -0.166 -0.183 0.082 -0.198 -0.032 -0.082 - 7.376 -0.235 0.224 0.086 -0.108 -0.272 -0.170 -0.143 -0.086 0.056 -0.174 -0.041 -0.029 - 6.848 -0.345 0.381 0.257 0.096 -0.025 -0.345 -0.152 -0.281 -0.223 -0.274 0.079 0.066 - 7.619 -0.379 0.417 0.114 0.002 -0.104 -0.157 -0.017 -0.191 -0.010 -0.049 -0.072 0.039 - 7.199 -0.111 0.515 0.013 -0.057 -0.050 -0.187 0.070 -0.114 -0.051 -0.172 -0.187 -0.159 - 6.887 -0.204 0.377 0.062 -0.163 -0.135 -0.281 0.006 -0.305 -0.135 -0.161 -0.094 -0.210 - 6.229 -0.224 0.345 0.137 -0.050 -0.045 -0.053 -0.057 -0.310 -0.159 -0.252 -0.038 -0.107 - 5.606 -0.289 0.248 0.044 -0.013 -0.097 -0.270 -0.053 -0.102 -0.119 -0.094 -0.019 -0.075 - 5.925 -0.058 0.290 0.035 0.235 0.315 -0.020 -0.027 -0.059 -0.221 -0.184 -0.040 -0.106 - 5.517 -0.152 0.227 0.069 0.100 0.084 -0.064 -0.004 -0.122 -0.059 -0.217 -0.112 -0.174 - 5.252 -0.344 0.076 0.095 0.040 0.032 -0.023 -0.014 -0.042 -0.062 -0.260 -0.322 -0.249 - 6.268 0.353 0.100 -0.113 -0.068 -0.112 -0.356 -0.209 -0.156 -0.141 -0.158 -0.155 -0.254 - 6.380 0.951 0.499 -0.047 -0.076 -0.181 -0.349 -0.298 -0.121 -0.056 -0.096 -0.017 -0.137 - 5.057 -0.005 0.507 -0.035 0.100 -0.024 -0.177 -0.219 -0.070 -0.010 0.025 0.052 0.014 - 4.800 -0.153 0.060 -0.191 -0.190 -0.128 -0.155 -0.188 -0.112 -0.025 0.108 0.130 -0.080 - 4.831 -0.101 0.117 -0.080 -0.214 -0.130 -0.107 -0.135 0.034 -0.060 0.035 0.043 -0.041 - 4.206 -0.169 -0.007 -0.017 0.025 -0.142 -0.133 -0.102 -0.064 0.092 0.150 0.088 -0.038 - 4.467 -0.154 0.099 0.034 -0.048 -0.187 -0.004 -0.059 -0.045 -0.004 -0.016 -0.028 -0.023 - 4.487 -0.227 0.046 0.122 0.038 -0.112 -0.088 -0.165 -0.140 -0.083 -0.043 -0.081 -0.000 - 4.236 0.332 0.054 0.159 -0.018 -0.125 -0.065 -0.123 -0.231 -0.106 -0.146 0.113 0.000 - 4.201 0.114 -0.030 0.099 -0.113 0.018 -0.057 -0.125 -0.142 -0.111 0.036 0.035 -0.225 - 4.125 -0.067 -0.158 0.053 -0.271 0.156 0.127 0.086 -0.021 -0.033 -0.003 0.125 0.030 - 4.500 -0.064 -0.257 0.081 -0.157 -0.149 -0.140 -0.106 -0.070 0.015 0.054 0.081 0.006 - 4.536 0.184 0.033 0.144 -0.072 0.042 -0.091 -0.197 -0.066 0.017 -0.067 0.030 -0.074 - 3.760 0.136 -0.032 -0.024 -0.159 -0.085 0.022 -0.029 -0.076 -0.182 -0.027 0.113 -0.021 - 3.916 0.143 -0.009 -0.087 -0.087 -0.110 0.042 0.058 -0.166 -0.138 0.066 0.119 -0.029 - 3.945 -0.254 -0.020 -0.082 -0.057 -0.084 -0.091 0.174 0.047 -0.105 -0.009 0.136 -0.024 - 4.315 0.019 -0.007 0.008 -0.005 -0.041 0.092 -0.065 -0.223 0.022 -0.211 -0.226 -0.019 - 4.403 0.030 0.107 -0.111 -0.166 0.072 0.103 -0.173 -0.330 -0.069 -0.077 -0.058 -0.002 - 4.708 -0.123 0.319 -0.075 -0.025 -0.044 -0.105 0.035 -0.043 -0.082 -0.158 -0.096 -0.079 - 4.585 -0.291 0.301 0.030 0.097 -0.097 -0.245 -0.038 -0.064 -0.161 -0.141 -0.039 -0.067 - 4.491 -0.444 0.173 -0.069 0.165 0.094 -0.194 -0.030 -0.151 -0.061 -0.116 -0.018 0.093 - 4.733 -0.380 0.256 0.135 0.084 0.073 -0.139 -0.073 -0.275 -0.060 -0.305 -0.140 0.182 - 4.829 -0.371 0.149 0.042 -0.077 0.001 -0.132 -0.000 -0.178 0.168 0.046 0.108 0.044 - 5.341 -0.483 0.246 0.026 -0.044 -0.020 0.032 -0.027 0.014 0.088 -0.057 -0.036 -0.106 - 5.472 -0.606 0.096 -0.073 -0.007 -0.076 -0.099 -0.180 -0.188 -0.098 0.011 -0.027 -0.045 - 5.135 -0.154 0.137 0.116 -0.155 0.005 -0.071 -0.069 -0.148 -0.073 -0.076 -0.260 -0.178 - 4.633 -0.366 0.069 0.096 -0.088 0.018 -0.020 -0.055 -0.092 -0.085 -0.208 -0.233 -0.205 - 4.844 -0.180 0.048 0.052 -0.390 -0.277 -0.228 0.020 -0.006 0.034 -0.037 0.100 -0.140 - 4.323 0.368 0.268 0.060 -0.215 -0.288 -0.118 0.135 -0.100 -0.139 -0.251 -0.055 0.068 - 4.435 -0.083 0.267 0.131 -0.136 0.081 -0.090 0.098 -0.108 -0.161 -0.130 -0.104 0.050 - 4.963 0.328 0.336 0.053 -0.339 0.101 -0.198 -0.054 -0.033 -0.058 0.006 0.053 -0.069 - 5.246 0.514 0.377 -0.079 -0.279 0.044 0.006 0.016 0.030 -0.083 0.001 0.036 -0.074 - 5.579 0.497 0.332 0.066 -0.253 -0.092 0.005 0.075 -0.086 -0.019 -0.165 0.071 -0.018 - 6.098 0.390 0.254 -0.080 -0.358 0.052 0.008 0.013 -0.090 -0.071 -0.011 -0.059 -0.210 - 6.748 0.329 0.297 0.140 -0.306 -0.053 -0.024 -0.240 -0.123 -0.059 -0.112 -0.039 -0.140 - 7.247 0.198 0.079 0.077 -0.217 -0.108 -0.090 -0.253 -0.103 -0.063 -0.077 -0.083 -0.091 - 6.926 0.103 0.226 -0.093 -0.230 0.022 -0.090 -0.024 -0.057 -0.101 -0.159 -0.013 -0.098 - 6.717 0.193 0.111 -0.135 -0.281 0.102 -0.106 -0.019 0.057 -0.057 -0.246 0.143 -0.019 - 6.769 0.316 -0.010 0.009 -0.278 0.042 -0.136 -0.013 -0.088 -0.061 -0.170 0.150 -0.080 - 6.975 0.279 0.171 0.065 -0.210 -0.004 0.021 -0.194 -0.246 -0.040 -0.236 -0.019 -0.177 - 6.425 -0.005 0.249 0.316 -0.178 -0.195 -0.331 -0.131 -0.038 0.070 -0.051 0.066 -0.141 - 7.263 -0.612 0.163 -0.047 -0.353 -0.391 -0.328 -0.121 0.035 0.198 0.022 0.306 0.236 - 7.862 -0.339 0.294 -0.013 -0.247 -0.096 -0.180 0.005 -0.048 0.082 0.023 -0.065 0.007 - 7.902 -0.234 0.296 0.124 -0.252 -0.192 -0.232 -0.174 -0.206 -0.099 -0.039 -0.038 -0.068 - 8.017 -0.494 0.156 0.159 -0.230 -0.093 -0.180 -0.365 -0.159 -0.056 0.047 0.056 -0.117 - 7.933 -0.532 0.031 0.124 -0.325 -0.069 -0.141 -0.206 -0.046 0.056 0.059 0.110 0.006 - 7.627 -0.495 0.116 -0.056 -0.465 -0.131 -0.134 -0.309 -0.191 0.072 0.000 -0.094 0.042 - 7.938 -0.495 0.012 0.115 -0.365 -0.103 -0.166 -0.357 -0.158 -0.006 -0.128 0.008 -0.104 - 8.007 -0.516 0.053 0.104 -0.516 -0.352 -0.156 -0.304 -0.100 -0.153 -0.113 0.077 -0.053 - 7.410 -0.642 -0.107 0.103 -0.575 -0.294 -0.080 -0.329 -0.097 -0.023 0.026 0.077 -0.061 - 7.249 -0.548 0.053 0.052 -0.264 -0.128 0.117 -0.376 -0.094 0.023 0.022 -0.137 -0.084 - 7.147 -0.632 -0.105 0.139 -0.271 -0.272 0.088 -0.252 -0.115 -0.073 0.014 0.024 -0.105 - 7.324 -0.924 -0.191 0.169 -0.404 -0.290 0.080 -0.378 -0.149 -0.141 -0.036 0.021 -0.020 - 6.853 -1.121 -0.352 0.040 -0.152 -0.252 -0.223 -0.415 -0.124 -0.055 0.074 0.184 -0.090 - 6.785 -0.752 -0.217 0.122 -0.193 -0.141 -0.283 -0.347 -0.175 -0.028 0.004 0.141 -0.135 - 6.353 -0.659 -0.181 0.180 -0.066 0.057 -0.182 -0.465 -0.366 -0.030 -0.027 0.123 -0.081 - 6.155 -0.128 -0.069 -0.049 -0.459 -0.183 -0.099 -0.082 0.040 -0.033 -0.110 0.035 -0.015 - 5.482 0.088 0.233 -0.133 -0.503 -0.062 -0.027 -0.139 -0.106 -0.009 -0.085 -0.048 -0.013 - 5.389 0.733 0.132 -0.049 -0.199 -0.140 -0.420 -0.255 -0.211 -0.109 -0.128 -0.011 -0.114 - 6.892 0.897 -0.297 0.000 -0.438 0.013 -0.420 -0.411 -0.063 -0.060 -0.174 -0.026 0.017 - 7.482 0.942 -0.510 0.117 -0.580 0.108 -0.496 -0.508 -0.036 0.003 -0.189 -0.068 0.093 - 7.741 0.797 -0.378 0.023 -0.530 0.130 -0.473 -0.540 -0.035 0.075 -0.211 -0.075 0.111 - 7.488 0.929 -0.412 0.112 -0.554 0.139 -0.414 -0.604 0.001 0.041 -0.201 -0.048 0.085 - 7.184 1.026 -0.371 0.150 -0.494 0.079 -0.356 -0.666 -0.035 0.024 -0.180 -0.021 0.045 - 6.942 0.964 -0.242 0.145 -0.354 0.059 -0.314 -0.578 -0.142 0.012 -0.172 -0.058 -0.023 - 6.665 0.890 -0.247 0.198 -0.248 0.122 -0.268 -0.544 -0.167 -0.025 -0.290 -0.029 -0.037 - 5.941 0.898 -0.118 0.257 -0.162 0.017 -0.060 -0.409 -0.097 -0.081 -0.371 -0.235 0.031 - 5.492 0.701 -0.059 0.208 -0.084 0.073 -0.129 -0.314 -0.023 -0.088 -0.218 -0.001 0.009 - 5.225 0.790 0.117 -0.093 -0.105 -0.107 -0.407 -0.297 -0.032 -0.074 -0.020 0.059 0.087 - 4.782 0.685 0.168 0.206 -0.060 -0.195 -0.403 -0.310 0.036 -0.042 -0.073 0.016 0.073 - 4.635 0.636 0.145 0.154 -0.039 -0.193 -0.359 -0.266 -0.185 0.002 0.064 0.153 0.035 - 4.546 0.567 -0.091 0.048 -0.074 0.085 -0.254 -0.222 -0.089 0.017 0.014 0.033 0.030 - 4.580 0.673 0.100 0.033 -0.236 0.046 -0.348 -0.227 -0.012 -0.020 0.039 0.064 0.041 - 4.772 0.745 -0.010 -0.020 -0.089 0.135 -0.143 -0.209 -0.022 -0.017 -0.039 -0.055 0.003 - 5.422 0.793 -0.036 -0.254 -0.154 0.024 -0.079 -0.101 -0.124 0.135 0.079 -0.020 0.049 - 5.828 0.958 -0.269 -0.248 -0.075 0.030 -0.017 -0.025 0.000 0.180 -0.064 -0.065 0.008 - 5.982 1.064 -0.486 -0.253 -0.105 0.050 0.075 -0.043 -0.096 0.328 -0.037 -0.170 -0.098 - 6.127 1.154 -0.600 -0.219 -0.092 0.105 -0.087 -0.092 -0.050 0.245 -0.134 -0.134 -0.036 - 6.087 1.073 -0.432 -0.240 -0.256 0.071 -0.094 -0.101 -0.100 0.262 -0.088 -0.171 0.047 - 5.776 0.845 -0.355 -0.168 -0.168 -0.065 -0.171 -0.037 -0.078 0.243 -0.050 -0.023 0.049 - 5.559 0.724 -0.346 0.097 -0.235 -0.103 -0.212 -0.136 -0.040 0.098 0.059 0.023 0.113 - 5.162 0.620 -0.170 0.225 -0.249 -0.008 -0.090 -0.149 -0.057 0.245 0.168 -0.003 0.104 - 4.284 0.611 -0.143 0.147 -0.261 -0.073 -0.067 -0.074 -0.117 0.166 -0.023 -0.065 -0.119 - 4.476 0.488 -0.220 0.158 -0.144 -0.006 0.070 -0.067 -0.118 0.111 0.014 0.101 0.033 - 3.821 0.558 0.062 0.269 0.082 -0.040 -0.068 0.028 0.082 0.042 -0.073 0.078 0.032 - 3.730 0.423 -0.228 0.148 0.110 0.178 -0.194 -0.054 0.059 0.044 -0.064 0.061 -0.059 - 3.698 0.377 -0.218 0.039 -0.117 0.000 -0.219 -0.137 -0.115 -0.127 -0.012 -0.056 -0.069 - 3.442 0.298 -0.037 0.317 -0.085 -0.086 -0.262 -0.142 -0.026 -0.090 0.020 -0.029 -0.038 - 3.608 0.490 0.126 0.327 0.067 -0.012 -0.075 -0.197 -0.251 0.008 0.102 -0.048 -0.054 - 3.620 0.538 -0.164 0.075 0.081 -0.061 -0.184 -0.117 -0.054 0.154 0.021 -0.042 0.048 - 5.454 0.191 0.343 0.322 -0.013 0.124 -0.075 -0.321 -0.077 -0.106 -0.058 -0.238 0.002 - 7.521 -0.128 -0.002 0.189 0.063 0.236 -0.266 -0.375 -0.027 0.017 -0.021 -0.397 0.028 - 5.609 -0.142 -0.227 0.073 -0.051 0.234 -0.188 -0.267 0.169 0.261 0.231 -0.289 -0.085 - 3.803 0.030 -0.040 0.132 -0.015 0.127 -0.068 -0.015 -0.030 0.075 0.107 -0.009 0.060 - 4.599 -0.083 0.112 -0.073 0.026 0.054 -0.038 -0.214 -0.272 -0.031 -0.020 -0.009 0.031 - 4.762 -0.174 -0.114 0.078 0.107 -0.025 -0.075 -0.129 -0.153 -0.136 -0.119 -0.002 -0.002 - 5.815 -0.687 -0.078 0.096 -0.183 -0.042 0.065 -0.309 0.037 0.128 0.018 -0.023 -0.073 - 6.307 -0.465 -0.020 0.133 -0.440 0.036 0.070 -0.323 -0.144 0.127 -0.017 -0.083 -0.173 - 6.342 -0.969 -0.162 0.180 -0.282 0.166 -0.057 -0.173 -0.048 0.175 0.080 0.068 -0.118 - 5.896 -0.295 -0.001 0.207 -0.077 0.054 -0.015 -0.138 -0.204 0.096 0.042 -0.164 -0.036 - 6.188 0.013 0.037 0.084 0.059 -0.110 -0.194 -0.422 -0.257 0.199 -0.049 -0.118 -0.047 - 5.838 -0.024 0.333 0.094 -0.191 -0.120 -0.138 -0.173 0.048 0.004 0.031 0.015 -0.034 - 5.557 0.241 0.251 0.150 -0.053 -0.143 -0.187 -0.216 -0.110 -0.093 -0.063 -0.103 -0.023 - 5.212 0.051 -0.125 0.103 -0.061 0.030 -0.136 -0.225 -0.056 -0.176 -0.125 -0.068 0.004 - 5.327 0.008 0.014 0.074 -0.131 -0.037 -0.075 -0.150 -0.150 -0.043 -0.131 -0.175 -0.068 - 5.067 0.193 0.052 0.005 -0.136 -0.092 0.009 -0.187 -0.085 -0.086 -0.100 -0.191 -0.259 - 5.031 0.037 0.072 -0.012 -0.233 -0.128 -0.004 -0.178 -0.200 -0.098 -0.123 0.009 -0.087 - 4.508 0.305 -0.033 0.045 -0.013 0.012 -0.108 -0.127 -0.102 0.015 0.008 -0.033 0.044 - 4.145 0.422 0.040 -0.088 -0.247 -0.053 -0.139 -0.118 -0.198 -0.137 -0.045 0.044 -0.197 - 4.616 -0.124 -0.154 0.019 -0.332 0.015 -0.245 -0.171 -0.071 -0.153 -0.127 0.069 0.008 - 5.149 -0.204 -0.132 -0.034 -0.216 0.033 0.035 -0.174 -0.026 0.024 0.022 -0.001 -0.035 - 5.202 0.017 0.061 -0.121 -0.214 0.118 0.035 -0.148 -0.054 -0.008 -0.112 0.039 0.060 - 5.800 -0.689 0.076 0.087 0.035 0.096 -0.202 -0.230 -0.162 0.028 0.041 -0.021 -0.044 - 5.331 -0.355 0.065 -0.003 -0.176 -0.059 -0.169 -0.174 -0.044 0.104 0.024 0.013 -0.053 - 5.803 0.402 0.378 -0.035 -0.361 -0.248 -0.339 -0.124 -0.295 -0.144 -0.138 -0.041 0.008 - 5.492 -0.016 0.106 0.180 -0.103 -0.230 -0.202 -0.287 -0.282 0.069 -0.092 0.071 -0.083 - 7.013 -0.206 0.048 0.126 -0.393 -0.374 -0.182 -0.169 -0.288 0.077 0.001 -0.101 0.127 - 7.046 -0.244 0.144 0.188 -0.592 -0.302 -0.170 -0.311 -0.134 0.116 -0.075 -0.155 -0.002 - 6.461 -0.209 0.099 0.538 -0.770 -0.321 -0.279 -0.321 -0.274 0.062 0.056 0.061 -0.188 - 6.334 -0.187 0.053 0.431 -0.843 -0.381 -0.269 0.009 -0.284 0.024 -0.041 0.043 -0.119 - 5.313 -0.154 -0.065 0.284 -0.321 -0.140 -0.253 -0.044 -0.269 0.066 -0.120 -0.011 -0.243 - 4.855 -0.061 0.163 0.197 -0.377 -0.320 -0.237 -0.110 -0.238 0.075 -0.190 -0.046 -0.077 - 4.961 0.027 0.368 0.207 -0.269 -0.263 -0.169 -0.223 -0.265 -0.090 0.002 -0.008 0.000 - 4.826 0.344 0.209 0.266 -0.319 -0.029 -0.127 -0.028 -0.273 -0.219 -0.110 -0.088 -0.057 - 4.482 0.129 0.143 0.179 -0.131 -0.143 -0.073 -0.095 -0.137 -0.114 -0.382 -0.136 -0.052 - 5.180 0.119 0.110 -0.003 -0.324 -0.225 -0.102 -0.230 -0.180 -0.115 -0.239 0.002 0.024 - 5.049 -0.258 0.170 0.076 -0.313 -0.175 -0.175 -0.280 -0.136 -0.264 0.111 0.232 -0.011 - 5.891 -0.100 -0.158 0.356 -0.305 -0.470 -0.455 -0.412 -0.067 -0.300 -0.020 0.354 0.153 - 6.786 -0.279 -0.457 0.216 -0.526 -0.511 -0.695 -0.474 -0.085 -0.331 -0.162 0.428 0.091 - 7.444 -0.207 -0.302 0.188 -0.492 -0.330 -0.726 -0.313 0.018 -0.213 -0.347 0.440 -0.098 - 7.576 -0.220 -0.351 0.072 -0.619 -0.345 -0.830 -0.225 0.133 -0.046 -0.342 0.414 -0.211 - 7.545 -0.259 -0.341 0.003 -0.614 -0.256 -0.677 -0.093 0.279 0.086 -0.448 0.287 -0.261 - 7.648 -0.016 -0.235 0.036 -0.624 -0.323 -0.714 -0.135 0.316 0.183 -0.472 0.206 -0.175 - 7.456 0.108 -0.331 -0.224 -0.725 -0.336 -0.680 -0.218 0.271 0.073 -0.495 0.209 -0.172 - 7.381 0.161 0.215 -0.247 -0.530 -0.272 -0.620 -0.124 0.142 -0.047 -0.103 0.255 -0.255 - 6.974 0.271 -0.105 -0.105 -0.381 -0.236 -0.718 -0.196 0.056 0.033 -0.246 0.338 -0.193 - 6.488 0.400 -0.145 -0.147 -0.369 -0.156 -0.466 -0.237 0.080 0.054 -0.110 0.068 -0.130 - 5.857 0.405 -0.202 -0.120 -0.278 -0.144 -0.359 -0.009 0.204 0.050 -0.285 0.011 -0.126 - 5.840 0.591 0.021 0.003 -0.404 -0.260 -0.292 -0.182 -0.040 0.198 -0.210 0.061 -0.140 - 5.575 0.547 -0.118 -0.031 -0.228 -0.154 -0.205 -0.221 -0.275 -0.080 -0.161 -0.062 -0.207 - 5.377 0.509 -0.315 -0.179 -0.238 -0.353 -0.320 -0.320 -0.212 0.029 -0.154 -0.128 -0.140 - 5.398 0.363 -0.181 -0.179 -0.409 -0.209 -0.260 -0.270 -0.108 0.067 -0.092 -0.068 0.005 - 5.585 0.393 -0.313 -0.159 -0.394 -0.197 -0.298 -0.369 -0.244 0.061 -0.126 -0.009 -0.004 - 5.722 0.339 -0.099 -0.128 -0.215 -0.294 -0.290 -0.302 -0.084 0.003 -0.182 0.033 -0.094 - 5.870 0.317 0.016 -0.035 -0.134 -0.151 -0.214 -0.103 -0.157 -0.036 -0.276 -0.036 -0.100 - 5.951 0.274 -0.108 -0.018 -0.127 -0.050 -0.170 -0.291 -0.226 -0.165 -0.256 0.023 -0.035 - 6.047 0.480 0.070 -0.323 -0.202 -0.173 -0.212 -0.268 -0.199 -0.071 -0.180 -0.060 -0.015 - 5.779 0.672 0.151 -0.237 -0.384 -0.159 -0.287 -0.271 -0.168 -0.061 -0.207 -0.072 0.035 - 7.500 -0.221 0.007 -0.152 -0.270 -0.316 -0.224 -0.210 -0.206 -0.049 -0.126 0.070 0.020 - 6.550 -0.011 -0.056 -0.391 -0.545 -0.408 -0.230 -0.171 -0.219 -0.100 -0.191 0.006 0.015 - 5.926 0.621 -0.011 -0.395 -0.424 0.143 -0.303 -0.014 -0.162 -0.320 -0.152 -0.198 -0.142 - 5.900 0.699 -0.033 -0.369 -0.431 -0.049 -0.295 -0.037 -0.110 -0.105 -0.125 -0.122 -0.201 - 6.059 0.741 -0.288 -0.550 -0.386 0.015 -0.382 -0.104 -0.192 0.075 -0.025 -0.047 -0.167 - 6.547 0.776 -0.496 -0.509 -0.311 0.194 -0.481 -0.131 -0.071 0.107 -0.105 -0.118 -0.201 - 6.674 0.353 -0.607 -0.312 -0.352 0.228 -0.416 -0.047 0.021 0.010 -0.233 -0.192 -0.316 - 7.182 0.080 -0.713 -0.310 -0.646 0.008 -0.394 0.161 0.191 -0.043 -0.280 0.062 -0.026 - 7.565 0.088 -0.729 -0.113 -0.608 -0.139 -0.529 0.178 0.205 -0.097 -0.285 0.165 -0.156 - 7.783 -0.122 -0.722 -0.068 -0.647 -0.224 -0.409 0.356 0.109 0.016 -0.229 0.252 -0.129 - 7.437 -0.298 -0.628 0.047 -0.728 -0.415 -0.249 0.166 -0.045 0.105 -0.164 0.016 -0.282 - 7.414 -0.212 -0.445 0.202 -0.649 -0.404 -0.139 0.112 -0.138 0.253 -0.228 0.010 -0.204 - 7.075 -0.354 -0.350 0.242 -0.770 -0.480 -0.163 -0.007 -0.280 0.036 -0.121 0.139 -0.041 - 6.551 -0.436 -0.230 0.356 -0.580 -0.428 0.051 -0.024 -0.178 0.011 -0.102 0.130 -0.065 - 5.884 -0.261 -0.347 0.237 -0.362 -0.133 0.059 -0.204 -0.247 0.011 -0.143 0.021 -0.056 - 6.251 -0.259 0.017 0.164 -0.207 -0.175 -0.230 -0.136 -0.043 -0.100 -0.201 -0.157 0.029 - 6.330 -0.210 0.126 -0.034 -0.043 -0.100 -0.274 -0.164 -0.049 -0.112 -0.223 -0.053 -0.020 - 7.690 -0.428 0.059 0.163 -0.142 -0.128 -0.441 -0.296 -0.168 -0.161 -0.149 -0.183 -0.125 - 8.127 -0.722 -0.002 0.231 -0.039 0.007 -0.308 -0.259 -0.181 -0.159 -0.049 -0.010 -0.169 - 7.712 -0.384 -0.125 -0.019 -0.039 -0.101 -0.292 -0.168 -0.049 -0.020 0.074 -0.133 -0.114 - 7.734 -0.173 -0.175 -0.176 -0.205 -0.091 -0.122 -0.292 -0.107 0.023 -0.080 -0.280 -0.065 - 6.925 -0.073 -0.299 -0.001 -0.533 -0.020 -0.067 -0.079 -0.135 0.031 -0.089 -0.201 -0.057 - 7.033 -0.212 -0.310 0.100 -0.430 -0.252 -0.285 -0.348 -0.276 -0.108 0.003 0.154 -0.103 - 8.344 -0.305 -0.280 0.170 -0.344 -0.172 -0.312 -0.201 -0.034 0.086 0.004 0.093 -0.128 - 6.889 -0.369 -0.146 0.114 -0.286 -0.077 -0.199 -0.014 -0.275 0.067 0.068 0.090 -0.083 - 6.056 -0.094 -0.082 0.174 -0.271 -0.094 -0.113 -0.213 -0.318 0.060 0.081 0.003 -0.085 - 6.703 -0.414 -0.144 0.360 -0.616 -0.154 -0.144 -0.074 -0.185 0.088 0.133 0.009 -0.044 - 6.746 -0.287 -0.135 0.319 -0.446 -0.082 -0.303 -0.142 -0.284 -0.023 0.062 0.123 -0.038 - 6.975 -0.316 -0.312 0.140 -0.420 -0.180 -0.233 -0.266 -0.239 0.210 -0.062 -0.051 -0.187 - 6.857 -0.289 -0.117 0.296 -0.318 -0.084 -0.129 -0.421 -0.448 -0.002 -0.352 -0.159 -0.149 - 7.403 -0.385 -0.139 0.251 -0.132 -0.035 -0.231 -0.319 -0.385 -0.138 -0.260 -0.074 -0.178 - 7.131 -0.437 -0.014 0.313 -0.111 -0.129 -0.127 -0.178 -0.264 -0.206 -0.185 -0.185 -0.378 - 6.754 -0.263 0.235 0.196 -0.282 -0.054 -0.140 -0.336 -0.325 -0.024 -0.278 -0.099 -0.159 - 6.350 -0.266 0.407 0.364 -0.392 -0.072 -0.096 -0.360 -0.263 0.180 -0.282 -0.091 -0.151 - 6.081 -0.362 0.300 0.203 -0.323 -0.044 0.119 -0.329 -0.361 0.049 -0.540 -0.182 -0.111 - 6.158 -0.196 0.476 0.375 -0.389 -0.130 0.179 -0.185 -0.301 0.049 -0.542 -0.224 -0.165 - 7.453 0.025 0.129 0.199 -0.482 -0.122 -0.089 -0.264 -0.264 0.075 -0.320 0.009 -0.017 - 7.667 0.118 0.185 -0.177 -0.505 -0.099 -0.200 -0.355 -0.326 -0.178 -0.202 -0.027 -0.021 - 7.306 0.154 0.066 -0.058 -0.540 -0.030 -0.212 -0.354 -0.283 -0.054 -0.232 0.032 -0.078 - 6.065 0.011 0.152 0.023 -0.459 -0.015 -0.203 -0.310 -0.233 -0.100 -0.019 -0.072 -0.091 - 6.209 -0.060 0.216 0.112 -0.374 -0.118 -0.322 -0.475 -0.282 -0.150 -0.034 0.132 -0.001 - 6.172 -0.115 -0.183 0.105 -0.497 -0.053 -0.268 -0.285 -0.068 0.092 -0.035 0.192 -0.011 - 6.191 -0.437 -0.369 0.080 -0.435 0.106 -0.091 -0.242 -0.195 0.137 -0.032 0.014 -0.104 - 6.250 -0.569 -0.207 0.119 -0.487 -0.104 -0.444 -0.294 -0.176 0.057 -0.109 -0.082 0.026 - 5.932 0.114 -0.033 0.253 -0.422 -0.393 -0.469 -0.405 -0.114 -0.024 -0.122 -0.092 0.034 - 4.350 0.116 -0.117 0.250 -0.327 -0.116 -0.218 -0.227 -0.105 -0.050 -0.213 -0.012 -0.026 - 3.780 0.204 -0.008 0.343 -0.135 -0.098 -0.134 -0.097 -0.104 0.020 -0.213 0.037 0.064 - 3.761 0.310 -0.053 0.187 -0.197 -0.048 -0.042 -0.027 -0.049 -0.049 -0.100 0.127 -0.099 - 3.632 0.191 -0.059 0.104 0.047 0.066 -0.157 -0.126 0.003 -0.130 -0.102 -0.201 -0.256 - 3.594 0.170 -0.206 0.084 0.070 0.206 -0.073 -0.127 -0.068 -0.001 -0.173 -0.102 -0.299 - 4.447 0.323 -0.196 -0.083 -0.065 0.042 -0.381 -0.105 -0.104 0.155 0.034 0.021 -0.069 - 6.560 0.319 -0.474 -0.221 -0.450 0.072 -0.778 -0.137 -0.056 0.309 -0.166 0.014 0.036 - 7.288 0.210 -0.476 -0.340 -0.548 0.042 -0.879 -0.075 0.012 0.103 -0.379 0.008 -0.022 - 7.535 0.020 -0.539 -0.263 -0.553 0.121 -0.913 -0.105 0.005 0.031 -0.436 -0.007 -0.115 - 7.564 -0.053 -0.664 -0.211 -0.513 0.180 -0.938 -0.208 -0.104 -0.004 -0.427 0.024 -0.138 - 7.704 0.123 -0.605 -0.237 -0.621 0.200 -0.823 0.041 -0.102 -0.022 -0.429 0.008 -0.150 - 7.761 0.200 -0.609 -0.229 -0.545 0.180 -0.849 -0.005 -0.043 -0.073 -0.464 0.162 -0.190 - 7.783 -0.061 -0.685 -0.324 -0.540 -0.068 -0.943 0.027 -0.098 -0.220 -0.409 0.183 -0.252 - 8.163 -0.181 -0.574 -0.134 -0.476 -0.108 -0.806 0.161 -0.031 0.026 -0.400 0.127 -0.481 - 7.908 -0.040 -0.671 -0.159 -0.728 -0.238 -0.533 0.260 0.105 -0.089 -0.353 0.183 -0.527 - 7.366 -0.014 -0.665 -0.159 -0.705 -0.276 -0.624 0.297 0.199 -0.055 -0.333 0.268 -0.314 - 6.805 -0.020 -0.533 -0.062 -0.482 -0.306 -0.639 0.255 0.096 -0.013 -0.161 0.315 -0.263 - 6.441 0.043 -0.386 0.120 -0.607 -0.382 -0.593 0.163 -0.009 0.067 -0.054 0.173 -0.646 - 6.503 0.137 -0.468 0.106 -0.598 -0.437 -0.633 0.174 0.114 0.114 0.155 0.196 -0.246 - 6.380 0.268 -0.429 0.130 -0.683 -0.339 -0.743 0.136 0.140 -0.048 -0.070 0.128 -0.210 - 6.308 0.010 -0.523 0.166 -0.659 -0.274 -0.716 -0.047 0.023 -0.137 0.007 0.232 -0.124 - 6.008 0.263 -0.516 0.207 -0.533 -0.260 -0.626 -0.097 -0.058 -0.145 -0.064 0.149 -0.132 - 5.671 0.239 -0.295 0.103 -0.407 -0.234 -0.547 -0.101 0.116 -0.084 -0.034 0.318 -0.102 - 5.338 0.260 -0.165 0.137 -0.294 -0.203 -0.615 -0.182 -0.071 -0.177 0.082 0.176 -0.202 - 4.900 0.199 -0.184 0.133 -0.315 -0.121 -0.391 0.054 0.062 -0.063 -0.157 0.014 -0.155 - 4.678 0.382 -0.150 0.125 -0.254 -0.240 -0.332 0.043 -0.089 -0.011 -0.053 0.101 -0.060 - 4.372 0.211 -0.257 -0.016 -0.224 -0.199 -0.506 0.028 -0.186 0.041 0.013 0.044 -0.067 - 4.426 0.202 -0.249 0.211 0.054 -0.018 -0.151 0.048 0.003 0.032 -0.087 0.100 -0.297 - 4.164 0.353 -0.183 0.240 -0.203 0.055 -0.352 -0.004 -0.042 0.035 -0.002 0.021 -0.206 - 4.236 0.293 -0.219 0.194 -0.150 0.071 -0.351 -0.027 -0.053 -0.075 -0.049 0.147 -0.023 - 3.869 0.185 -0.252 0.077 -0.169 0.135 -0.148 0.044 0.008 -0.113 -0.031 0.152 0.025 - 3.672 0.066 -0.397 0.145 -0.088 0.029 -0.255 -0.096 0.007 0.024 0.031 0.073 -0.099 - 3.624 0.104 -0.520 0.192 -0.044 -0.032 -0.094 0.001 0.175 0.074 0.087 0.194 0.005 - 3.697 0.283 -0.405 0.204 0.027 0.142 -0.186 -0.005 -0.024 -0.085 0.054 -0.005 -0.118 - 3.711 0.343 -0.217 0.158 0.124 -0.018 -0.183 -0.102 0.045 0.008 -0.110 0.205 0.050 - 3.403 0.199 -0.391 0.001 0.005 0.055 -0.073 0.004 0.162 -0.015 -0.064 0.117 0.025 - 3.331 0.327 -0.065 0.016 -0.104 0.118 -0.238 -0.057 0.119 0.056 -0.132 0.130 0.086 - 3.324 0.336 -0.125 0.028 -0.254 -0.133 -0.092 -0.022 -0.012 -0.056 0.050 0.027 -0.114 - 3.232 0.060 -0.414 -0.008 -0.023 0.016 -0.104 -0.024 0.011 0.074 0.097 0.050 -0.075 - 3.568 0.227 -0.411 0.034 0.071 0.039 -0.191 -0.016 -0.051 -0.041 -0.018 -0.027 -0.095 - 3.386 0.293 -0.233 -0.044 0.121 0.082 -0.070 -0.222 -0.124 -0.070 0.145 0.126 0.011 - 3.406 0.327 -0.132 0.054 0.107 0.057 -0.136 -0.197 -0.051 -0.001 -0.083 0.174 0.175 - 3.444 0.419 -0.067 0.035 -0.137 -0.003 -0.039 -0.083 -0.050 -0.087 -0.005 0.008 -0.142 - 3.486 0.245 -0.320 0.129 0.010 -0.115 -0.178 -0.130 -0.044 0.112 -0.011 -0.004 -0.040 - 3.216 0.164 -0.325 -0.009 -0.026 -0.089 -0.042 0.049 0.066 0.135 -0.138 -0.050 0.068 - 3.304 0.191 -0.209 0.032 -0.032 0.057 -0.199 -0.029 -0.213 0.033 -0.036 0.004 0.004 - 3.460 0.178 -0.257 0.106 -0.051 -0.037 -0.103 -0.152 -0.162 0.115 0.020 0.148 -0.013 - 3.157 0.107 -0.210 0.129 0.038 0.130 -0.117 -0.223 -0.047 0.241 0.063 0.192 0.039 - 3.483 0.245 -0.203 0.205 -0.027 0.086 -0.187 -0.211 -0.142 0.048 0.081 0.202 -0.016 - 3.537 0.220 -0.217 0.067 -0.144 -0.006 -0.119 -0.137 -0.028 -0.058 0.084 0.179 -0.036 - 3.416 0.215 -0.268 -0.042 -0.231 -0.042 -0.053 -0.156 -0.066 0.024 0.141 0.155 0.001 - 3.376 0.257 -0.032 0.079 -0.046 0.118 -0.280 -0.210 -0.057 -0.058 0.053 -0.061 -0.082 - 3.123 0.092 -0.171 0.148 -0.104 -0.008 -0.180 -0.132 -0.025 0.036 0.008 -0.065 -0.128 - 3.121 0.106 -0.489 -0.012 0.092 -0.037 -0.203 0.014 0.072 -0.020 -0.043 0.081 -0.002 - 3.133 0.244 -0.233 0.130 0.067 0.119 -0.259 -0.206 -0.059 0.027 -0.052 -0.037 -0.000 - 3.088 0.389 -0.062 -0.013 -0.110 0.080 -0.175 -0.268 0.103 0.020 0.019 0.017 0.000 - 3.185 0.401 -0.264 -0.030 -0.053 -0.087 -0.328 -0.207 0.022 0.043 0.110 -0.028 -0.049 - 3.004 0.036 -0.170 -0.026 -0.314 0.072 -0.024 0.002 -0.113 0.049 0.258 0.170 0.016 - 3.203 0.257 -0.249 -0.162 -0.023 0.077 0.014 -0.056 -0.175 0.058 0.215 0.214 0.084 - 3.355 0.274 -0.171 -0.095 -0.299 -0.032 -0.223 -0.170 -0.085 -0.095 -0.118 0.154 0.118 - 3.406 0.365 -0.118 0.038 -0.080 -0.038 -0.062 -0.149 0.116 0.149 -0.120 0.068 -0.136 - 3.078 0.280 -0.182 0.038 -0.116 0.004 -0.258 -0.237 0.089 0.002 0.033 0.100 0.021 - 3.289 0.256 -0.187 0.297 0.113 0.115 -0.230 -0.301 -0.052 0.143 0.046 0.157 0.010 - 3.068 0.071 -0.265 0.113 0.116 0.086 -0.159 -0.115 -0.078 0.048 -0.007 0.007 -0.022 - 3.474 0.324 -0.184 0.115 -0.044 -0.042 -0.110 -0.169 -0.214 -0.108 0.007 0.003 0.034 - 3.786 0.428 -0.019 0.159 -0.018 -0.082 -0.240 -0.307 -0.132 -0.086 0.022 -0.011 -0.052 - 3.735 0.091 -0.274 0.060 -0.184 -0.060 -0.186 -0.094 0.022 -0.068 -0.098 -0.009 -0.128 - 3.511 0.000 -0.216 0.167 -0.166 -0.101 -0.122 -0.221 -0.051 0.082 0.061 0.162 -0.082 - 3.402 0.087 -0.201 -0.061 -0.213 0.003 -0.157 -0.141 -0.180 0.016 0.030 0.055 -0.074 - 3.448 0.216 -0.144 0.177 -0.043 0.047 -0.064 0.084 -0.091 -0.028 -0.197 -0.011 0.062 - 3.492 0.154 -0.208 0.082 0.040 -0.008 0.022 0.003 0.016 0.022 -0.101 -0.048 -0.180 - 3.321 0.343 0.029 0.224 -0.025 0.098 -0.002 -0.278 -0.060 0.097 0.028 0.092 0.036 - 3.262 0.384 -0.210 0.047 0.013 0.043 -0.025 -0.071 -0.011 0.105 0.011 0.075 0.015 - 3.693 0.213 -0.341 0.029 -0.080 -0.005 -0.064 -0.236 0.005 0.236 0.159 -0.022 0.011 - 3.489 0.141 -0.320 0.083 0.003 0.077 -0.140 -0.292 -0.046 0.022 0.214 0.003 -0.102 - 3.523 0.275 -0.166 0.083 -0.092 0.109 -0.038 -0.125 -0.063 -0.034 0.102 -0.010 -0.008 - 3.498 0.321 -0.376 -0.031 0.034 0.174 -0.017 -0.129 -0.112 -0.041 -0.089 -0.085 0.082 - 3.527 0.116 -0.292 0.062 0.124 0.147 -0.061 -0.094 -0.062 0.055 -0.165 0.035 -0.044 - 3.752 0.076 -0.279 0.033 0.009 -0.051 -0.033 -0.067 -0.061 0.028 0.008 0.131 0.044 - 3.744 -0.231 -0.293 -0.067 0.035 0.075 0.135 -0.070 -0.082 -0.011 -0.185 -0.083 -0.095 - 4.057 -0.412 -0.208 -0.008 0.015 0.077 0.020 -0.130 -0.106 0.179 0.059 -0.006 0.046 - 4.343 -0.644 -0.053 0.027 -0.250 -0.085 0.088 0.147 -0.140 0.293 0.099 -0.132 0.071 - 5.003 -0.504 0.020 -0.002 -0.201 -0.002 -0.032 0.082 -0.180 0.124 -0.002 -0.103 -0.032 - 5.292 -0.615 -0.054 -0.099 -0.123 -0.045 -0.116 -0.148 -0.241 0.118 -0.110 -0.060 -0.039 - 5.497 -0.873 0.066 -0.082 -0.169 -0.024 0.015 -0.142 -0.065 -0.047 -0.162 -0.039 -0.098 - 5.806 -0.964 -0.016 0.062 0.056 -0.005 -0.209 -0.073 -0.138 0.042 -0.142 -0.009 0.027 - 5.686 -1.036 -0.152 0.027 0.106 0.039 -0.142 0.067 -0.046 0.147 0.093 -0.029 -0.049 - 6.063 -1.007 -0.040 0.238 0.067 -0.063 -0.361 -0.183 -0.140 0.113 0.045 0.031 0.164 - 6.133 -1.106 -0.120 -0.054 -0.107 -0.168 0.077 -0.165 -0.232 0.221 -0.032 -0.023 -0.059 - 6.117 -0.942 -0.387 -0.019 0.097 -0.070 0.079 0.019 -0.217 0.069 -0.101 -0.176 -0.085 - 6.061 -1.036 -0.296 -0.040 -0.015 0.013 -0.025 -0.008 -0.164 0.010 -0.118 -0.162 -0.101 - 5.772 -0.905 -0.195 0.109 0.044 -0.018 -0.026 0.055 -0.216 -0.104 -0.021 -0.076 0.151 - 5.665 -1.119 -0.072 0.180 -0.014 0.013 -0.003 -0.004 -0.092 -0.009 0.030 -0.097 0.073 - 5.317 -1.008 -0.122 -0.032 -0.024 -0.213 -0.015 0.066 0.067 0.105 -0.104 -0.002 0.012 - 5.693 -0.842 -0.113 0.009 -0.081 -0.010 -0.119 -0.050 -0.164 0.055 -0.091 -0.054 -0.021 - 5.805 -0.840 -0.155 0.039 -0.096 -0.085 0.110 -0.088 -0.343 0.162 -0.009 0.002 -0.077 - 5.350 -0.665 -0.141 0.071 -0.074 -0.075 0.055 -0.122 -0.261 0.085 0.070 -0.050 0.002 - 5.141 -0.375 0.013 -0.058 0.033 0.067 -0.027 0.012 -0.265 -0.009 -0.001 0.090 0.019 - 5.478 -0.536 -0.293 0.275 0.096 0.114 -0.222 -0.238 -0.068 -0.060 -0.031 0.017 -0.023 - 5.273 -0.553 -0.331 0.193 -0.008 0.034 -0.343 -0.168 0.019 0.085 -0.037 0.086 -0.028 - 4.091 0.013 -0.148 0.058 0.047 0.040 -0.140 -0.136 0.004 0.172 0.041 0.049 -0.128 - 3.658 0.240 -0.009 0.125 0.035 0.121 -0.064 0.026 -0.062 0.048 -0.026 -0.111 -0.130 - 5.644 -0.649 0.260 0.113 0.215 -0.301 0.044 -0.216 -0.329 0.023 0.036 -0.129 0.207 - 5.244 -0.809 0.245 0.199 0.162 -0.190 0.025 -0.276 -0.187 0.065 0.096 -0.188 0.196 - 3.526 0.046 -0.072 -0.046 0.020 0.165 0.081 -0.319 -0.130 -0.000 -0.084 0.232 0.011 - 4.126 -0.326 0.097 -0.197 0.040 0.001 -0.161 -0.313 -0.236 -0.036 -0.071 0.088 -0.007 - 4.270 -0.433 0.258 -0.046 0.086 0.307 -0.336 -0.194 -0.138 0.087 0.024 0.094 0.019 - 4.021 0.248 0.105 -0.013 0.064 -0.051 -0.152 -0.130 -0.153 -0.012 -0.072 0.139 -0.103 - 3.861 0.228 -0.048 0.153 -0.143 -0.048 -0.189 -0.162 -0.095 -0.050 -0.028 0.153 -0.006 - 5.331 -0.063 0.106 0.187 -0.238 0.033 -0.231 -0.094 -0.088 -0.005 -0.049 0.153 -0.147 - 9.892 -0.297 0.554 0.214 -0.051 -0.202 -0.237 -0.167 -0.076 -0.247 -0.079 0.059 -0.246 - 12.353 -0.380 0.411 0.441 0.001 -0.284 -0.445 -0.161 -0.318 -0.352 -0.183 -0.104 -0.339 - 13.936 -0.458 0.120 0.624 -0.284 -0.205 -0.645 0.010 -0.585 -0.313 -0.282 0.037 -0.346 - 14.756 -0.547 0.135 0.641 -0.405 -0.248 -0.724 0.066 -0.641 -0.314 -0.266 0.020 -0.371 - 14.922 -0.590 0.153 0.672 -0.436 -0.240 -0.789 0.091 -0.680 -0.325 -0.288 0.064 -0.470 - 14.925 -0.665 0.206 0.720 -0.407 -0.287 -0.759 0.053 -0.690 -0.318 -0.297 0.075 -0.497 - 14.685 -0.597 0.223 0.708 -0.386 -0.269 -0.744 0.036 -0.694 -0.267 -0.328 0.088 -0.528 - 14.022 -0.511 0.215 0.681 -0.287 -0.209 -0.691 0.032 -0.610 -0.254 -0.382 0.121 -0.511 - 12.646 -0.285 0.185 0.271 -0.373 -0.310 -0.368 0.123 -0.423 -0.193 -0.397 0.063 -0.361 - 8.965 0.208 0.538 0.368 0.005 -0.114 -0.163 0.175 -0.281 -0.036 -0.390 -0.001 -0.301 - 7.414 0.343 0.516 0.595 0.118 -0.048 -0.330 0.364 -0.244 -0.106 -0.384 0.181 -0.446 - 7.016 0.496 0.622 0.767 0.074 -0.089 -0.340 0.250 -0.178 -0.091 -0.210 0.213 -0.450 - 6.717 0.605 0.534 0.697 0.054 -0.078 -0.338 0.331 -0.222 -0.098 -0.299 0.239 -0.393 - 7.925 0.214 0.426 0.406 0.420 -0.012 -0.082 -0.288 -0.259 -0.143 -0.272 0.128 -0.334 - 11.598 -0.415 0.278 0.152 0.107 -0.190 -0.195 -0.213 -0.219 -0.312 -0.278 -0.026 -0.446 - 12.460 -0.742 0.297 0.231 0.066 -0.349 -0.277 -0.062 -0.259 -0.347 -0.140 -0.027 -0.320 - 13.172 -0.444 0.112 0.494 -0.100 -0.377 -0.372 -0.046 -0.450 -0.351 -0.303 0.033 -0.458 - 13.709 -0.400 0.119 0.587 -0.135 -0.416 -0.446 -0.140 -0.560 -0.293 -0.165 -0.033 -0.477 - 13.711 -0.260 0.067 0.675 -0.266 -0.385 -0.505 -0.104 -0.559 -0.275 -0.186 -0.078 -0.481 - 13.801 -0.197 0.011 0.663 -0.385 -0.326 -0.512 -0.116 -0.501 -0.286 -0.232 -0.065 -0.506 - 13.363 -0.083 -0.074 0.685 -0.332 -0.285 -0.532 -0.068 -0.491 -0.278 -0.252 -0.062 -0.542 - 12.386 -0.076 -0.041 0.593 -0.119 -0.304 -0.383 -0.023 -0.448 -0.322 -0.295 0.008 -0.560 - 9.902 0.035 0.084 0.538 0.047 -0.320 -0.302 0.076 -0.337 -0.234 -0.305 0.156 -0.422 - 7.016 0.494 0.523 0.624 0.192 -0.296 -0.013 0.217 -0.094 -0.258 -0.181 0.034 -0.401 - 6.950 0.379 0.325 0.327 0.022 -0.027 0.183 0.359 -0.129 -0.166 -0.232 -0.211 -0.341 - 6.761 0.429 0.656 0.228 0.045 -0.167 -0.059 0.208 -0.111 -0.238 -0.219 -0.133 -0.306 - 6.277 0.283 0.580 0.045 0.132 -0.201 -0.041 -0.172 -0.097 -0.184 -0.124 -0.169 -0.171 - 6.205 0.046 0.804 0.276 0.253 -0.161 0.086 -0.214 -0.200 -0.319 -0.061 -0.258 -0.229 - 6.160 -0.091 0.792 0.230 0.110 0.020 0.023 0.111 -0.201 -0.279 -0.078 -0.338 -0.349 - 8.814 -0.353 0.457 -0.127 -0.097 0.093 -0.073 -0.018 -0.078 -0.022 -0.136 -0.156 -0.313 - 10.640 -0.510 0.568 -0.082 -0.123 -0.084 -0.185 -0.116 -0.191 -0.172 -0.170 -0.122 -0.342 - 11.844 -0.727 0.553 0.224 -0.098 -0.433 -0.246 -0.017 -0.283 -0.471 -0.074 -0.051 -0.429 - 13.032 -0.453 0.217 0.384 0.009 -0.480 -0.346 -0.184 -0.298 -0.427 -0.159 -0.037 -0.432 - 13.781 -0.370 0.086 0.489 -0.312 -0.297 -0.461 -0.052 -0.562 -0.332 -0.175 -0.003 -0.381 - 14.175 -0.351 0.012 0.668 -0.388 -0.260 -0.599 -0.055 -0.612 -0.275 -0.328 0.059 -0.413 - 14.453 -0.329 -0.072 0.668 -0.403 -0.306 -0.585 -0.047 -0.620 -0.300 -0.342 0.061 -0.413 - 14.506 -0.302 -0.056 0.617 -0.389 -0.356 -0.531 -0.129 -0.561 -0.350 -0.349 0.058 -0.405 - 14.118 -0.212 -0.099 0.626 -0.228 -0.359 -0.578 -0.081 -0.537 -0.365 -0.433 0.147 -0.438 - 13.527 -0.300 0.064 0.528 -0.071 -0.387 -0.570 -0.043 -0.408 -0.404 -0.479 0.189 -0.318 - 12.658 -0.180 0.153 0.326 -0.228 -0.343 -0.508 0.185 -0.262 -0.294 -0.517 0.007 -0.257 - 12.904 -0.254 0.213 0.423 -0.147 -0.273 -0.646 -0.054 -0.374 -0.292 -0.473 0.061 -0.278 - 13.154 -0.316 0.096 0.526 -0.021 -0.276 -0.508 -0.174 -0.475 -0.361 -0.440 0.215 -0.110 - 13.276 -0.087 -0.067 0.695 -0.218 -0.343 -0.533 -0.142 -0.420 -0.265 -0.456 0.169 -0.162 - 13.593 -0.034 -0.157 0.619 -0.326 -0.226 -0.586 -0.066 -0.450 -0.357 -0.360 0.131 -0.243 - 13.898 -0.036 -0.235 0.699 -0.420 -0.221 -0.641 -0.047 -0.503 -0.308 -0.349 0.142 -0.370 - 13.775 0.040 -0.332 0.770 -0.462 -0.225 -0.687 0.013 -0.480 -0.223 -0.380 0.138 -0.502 - 13.348 0.055 -0.312 0.818 -0.426 -0.191 -0.686 0.050 -0.376 -0.090 -0.484 0.070 -0.475 - 12.170 0.316 -0.441 0.781 -0.391 -0.116 -0.512 0.063 -0.217 -0.188 -0.545 -0.046 -0.371 - 8.769 0.818 -0.414 0.430 0.052 0.013 -0.178 0.050 -0.269 -0.088 -0.434 -0.362 -0.387 - 6.757 0.729 0.012 0.619 0.370 -0.041 -0.357 -0.002 -0.168 -0.119 -0.343 -0.234 -0.422 - 6.729 0.937 -0.002 0.475 0.365 0.004 -0.211 -0.069 -0.169 -0.134 -0.421 -0.074 -0.462 - 6.100 0.765 0.180 0.536 0.369 -0.075 -0.169 0.006 -0.220 -0.038 -0.277 -0.199 -0.419 - 6.241 0.502 0.031 0.547 0.275 -0.052 -0.241 -0.065 -0.193 -0.251 -0.292 -0.046 -0.315 - 6.362 0.391 -0.137 0.312 0.016 -0.022 0.064 0.072 -0.044 0.015 -0.256 -0.121 -0.247 - 8.895 0.191 -0.533 0.168 -0.220 -0.149 0.019 -0.001 -0.013 -0.027 -0.416 -0.331 -0.244 - 6.416 0.498 -0.152 0.221 -0.123 -0.058 0.051 0.052 -0.018 0.007 -0.358 -0.297 -0.194 - 4.778 0.406 0.218 0.348 0.049 -0.084 -0.132 -0.052 -0.168 0.020 0.075 0.180 -0.157 - 4.538 0.372 -0.106 0.241 -0.095 -0.112 -0.233 0.156 -0.153 -0.053 -0.029 -0.082 -0.076 - 4.291 0.203 -0.193 0.177 0.013 -0.127 -0.175 -0.095 -0.226 -0.174 -0.050 -0.059 -0.180 - 4.029 0.172 -0.072 0.234 -0.028 -0.248 -0.124 0.016 -0.223 -0.104 -0.143 -0.080 -0.131 - 4.152 0.119 -0.295 0.287 0.081 -0.070 -0.050 -0.028 -0.285 -0.032 -0.014 0.021 -0.204 - 4.240 0.198 -0.294 0.253 0.012 -0.114 -0.118 0.032 -0.210 -0.065 -0.090 0.150 0.011 - 3.851 0.286 -0.095 0.246 -0.166 -0.051 -0.191 -0.070 -0.070 -0.198 -0.024 0.098 -0.082 - 3.742 0.239 -0.170 0.177 -0.083 0.022 -0.110 0.120 -0.138 -0.051 0.170 0.187 -0.109 - 3.722 0.186 -0.150 0.173 -0.024 -0.026 -0.116 0.088 -0.065 0.073 0.012 0.066 -0.014 - 3.913 0.157 -0.285 0.054 0.017 0.059 -0.027 -0.077 -0.278 -0.263 -0.075 0.037 -0.023 - 3.768 0.267 -0.282 0.147 -0.026 -0.105 -0.114 -0.064 -0.210 -0.095 -0.021 0.109 -0.018 - 3.784 0.321 -0.437 0.044 0.015 0.005 -0.103 -0.135 -0.123 0.055 -0.056 0.066 -0.051 - 3.907 0.263 -0.187 0.202 0.110 0.020 0.070 -0.063 -0.193 -0.126 -0.042 -0.033 -0.080 - 3.533 0.196 -0.149 0.092 0.005 -0.084 -0.172 -0.013 -0.147 0.153 0.039 0.060 -0.015 - 3.521 0.254 -0.099 0.043 0.163 0.077 -0.172 -0.124 -0.179 0.065 0.103 0.148 -0.122 - 3.751 0.176 -0.131 0.194 0.223 0.104 0.027 -0.131 -0.254 0.050 0.123 0.195 -0.073 - 8.193 0.328 -0.434 -0.138 -0.257 -0.186 -0.570 -0.427 -0.204 -0.004 -0.100 -0.165 -0.087 - 8.105 0.410 -0.318 -0.277 -0.247 -0.272 -0.858 -0.660 -0.074 0.193 0.048 -0.171 0.043 - 6.775 -0.363 -0.024 -0.224 -0.437 -0.780 -0.464 -0.288 0.289 0.502 0.285 -0.258 -0.008 - 6.874 -0.069 -0.635 -0.489 -0.197 -0.254 -0.274 0.009 0.142 0.185 -0.005 -0.195 -0.171 - 9.556 0.151 -1.343 -0.587 -0.322 -0.083 -0.354 0.011 -0.142 0.311 -0.030 -0.158 0.034 - 12.328 0.885 -1.161 -0.876 -0.288 0.068 -0.456 0.223 -0.358 0.245 -0.370 -0.290 -0.057 - 12.996 0.833 -1.402 -0.634 -0.396 0.041 -0.340 0.219 -0.300 0.275 -0.577 -0.248 -0.057 - 13.546 0.539 -1.437 -0.305 -0.514 -0.089 -0.315 0.160 -0.147 0.277 -0.650 -0.190 -0.004 - 13.709 0.643 -1.357 -0.278 -0.489 -0.216 -0.277 0.095 -0.134 0.159 -0.504 -0.211 -0.047 - 14.430 0.358 -1.271 -0.138 -0.494 -0.437 -0.277 0.169 -0.089 0.091 -0.508 -0.102 -0.143 - 14.075 0.525 -1.065 -0.038 -0.477 -0.622 -0.352 0.171 -0.188 0.063 -0.432 0.102 -0.281 - 14.105 0.512 -0.921 0.245 -0.505 -0.628 -0.547 0.159 -0.428 0.074 -0.462 0.232 -0.343 - 13.406 0.547 -0.798 0.474 -0.457 -0.621 -0.546 0.014 -0.505 0.003 -0.538 0.357 -0.373 - 13.003 0.455 -0.681 0.587 -0.373 -0.454 -0.399 -0.114 -0.483 -0.097 -0.686 0.323 -0.398 - 13.012 0.557 -0.598 0.603 -0.382 -0.566 -0.441 -0.212 -0.480 -0.064 -0.607 0.362 -0.431 - 13.651 0.383 -0.554 0.643 -0.446 -0.555 -0.452 -0.159 -0.525 -0.039 -0.453 0.216 -0.455 - 13.951 0.269 -0.581 0.674 -0.546 -0.598 -0.389 -0.093 -0.556 -0.018 -0.410 0.147 -0.464 - 13.870 0.196 -0.447 0.697 -0.624 -0.531 -0.389 -0.093 -0.589 -0.047 -0.357 0.013 -0.414 - 13.723 -0.017 -0.228 0.780 -0.627 -0.517 -0.427 -0.072 -0.546 0.041 -0.322 0.024 -0.385 - 13.143 0.092 -0.164 0.664 -0.692 -0.419 -0.227 0.029 -0.459 0.039 -0.357 -0.078 -0.367 - 12.309 0.252 -0.108 0.529 -0.603 -0.415 -0.007 0.050 -0.394 0.044 -0.286 -0.157 -0.286 - 11.132 0.497 0.129 0.408 -0.112 -0.309 0.077 0.027 -0.360 0.116 -0.381 -0.178 -0.307 - 10.661 0.668 0.171 0.283 0.058 -0.460 0.187 -0.075 -0.257 0.320 -0.606 -0.130 -0.223 - 10.954 0.580 0.222 0.223 0.064 -0.507 0.117 -0.006 -0.330 0.280 -0.628 -0.141 -0.160 - 11.083 0.425 0.287 0.292 0.000 -0.517 0.056 -0.034 -0.313 0.229 -0.611 -0.196 -0.116 - 11.546 0.016 0.465 0.457 -0.347 -0.328 -0.063 -0.157 -0.299 0.172 -0.472 -0.196 -0.147 - 12.037 -0.136 0.512 0.445 -0.744 -0.230 -0.087 -0.237 -0.274 0.329 -0.342 -0.241 -0.185 - 12.024 -0.145 0.461 0.469 -0.974 -0.034 -0.230 -0.139 -0.415 0.294 -0.308 -0.326 -0.202 - 11.909 -0.239 0.659 0.421 -0.936 -0.002 -0.250 -0.152 -0.412 0.147 -0.331 -0.397 -0.176 - 11.699 -0.259 0.750 0.445 -0.869 -0.006 -0.293 -0.127 -0.458 0.095 -0.309 -0.393 -0.167 - 11.610 -0.365 0.820 0.456 -0.805 -0.041 -0.293 -0.185 -0.494 0.098 -0.235 -0.348 -0.199 - 11.701 -0.340 0.700 0.567 -0.804 -0.227 -0.187 -0.148 -0.532 0.075 -0.264 -0.307 -0.207 - 11.710 0.019 0.291 0.631 -0.482 -0.572 -0.090 -0.065 -0.586 0.032 -0.257 -0.348 -0.119 - 11.356 0.343 0.137 0.412 0.001 -0.687 -0.279 0.046 -0.636 0.008 -0.245 -0.412 -0.035 - 10.839 0.705 -0.044 0.395 0.261 -0.627 -0.358 -0.108 -0.560 0.004 -0.271 -0.365 -0.024 - 10.851 0.924 -0.187 0.404 0.097 -0.549 -0.354 0.007 -0.420 -0.086 -0.385 -0.313 0.003 - 11.397 0.585 0.081 0.249 0.060 -0.583 -0.349 0.079 -0.394 -0.130 -0.319 -0.412 0.066 - 11.619 0.618 -0.108 0.474 -0.075 -0.668 -0.289 0.092 -0.542 -0.010 -0.237 -0.357 -0.041 - 12.185 0.344 -0.128 0.707 -0.245 -0.712 -0.220 0.064 -0.513 -0.037 -0.209 -0.215 -0.166 - 11.976 0.231 0.079 0.654 -0.388 -0.528 -0.207 0.118 -0.476 0.022 -0.274 -0.132 -0.136 - 10.430 0.542 0.364 0.468 0.047 -0.349 -0.167 -0.012 -0.244 0.076 -0.583 -0.074 -0.241 - 10.224 0.522 0.480 0.452 0.116 -0.400 -0.138 -0.128 -0.006 -0.199 -0.468 0.025 -0.269 - 10.215 0.629 0.484 0.265 0.062 -0.333 -0.023 -0.120 -0.087 -0.250 -0.475 -0.040 -0.169 - 10.030 0.483 0.645 0.268 -0.054 -0.347 0.038 -0.088 -0.222 -0.040 -0.456 -0.088 -0.317 - 9.479 0.588 0.481 0.276 -0.079 -0.526 0.093 -0.003 -0.055 -0.029 -0.395 -0.158 -0.270 - 8.522 0.594 0.124 0.229 -0.004 -0.239 0.179 -0.114 0.004 -0.036 -0.272 -0.241 -0.305 - 6.987 0.618 0.247 0.248 -0.044 -0.302 0.108 -0.002 0.140 0.034 -0.325 -0.247 -0.249 - 6.275 0.385 -0.024 0.048 -0.163 -0.321 0.223 0.162 0.244 0.089 -0.471 -0.224 -0.199 - 5.518 0.361 0.060 -0.066 -0.289 -0.222 0.117 0.100 0.013 -0.028 -0.456 -0.190 -0.186 - 9.753 -0.717 -0.097 0.067 -0.485 0.101 -0.365 -0.034 -0.106 -0.211 -0.044 -0.152 -0.125 - 12.218 -1.272 0.099 -0.134 -0.384 -0.027 -0.390 -0.248 -0.082 -0.148 -0.175 -0.067 -0.247 - 12.664 -2.094 0.546 -0.045 -0.350 -0.035 -0.383 -0.183 -0.063 -0.175 -0.066 -0.148 -0.175 - 12.787 -2.594 0.650 0.061 -0.563 0.082 -0.105 -0.281 0.005 -0.080 0.006 -0.076 -0.174 - 13.152 -2.483 0.546 0.229 -0.549 0.009 -0.003 -0.210 -0.139 -0.263 -0.120 -0.173 -0.124 - 13.078 -2.295 0.435 0.337 -0.506 -0.012 -0.043 -0.285 -0.194 -0.184 -0.014 -0.130 -0.319 - 12.850 -2.227 0.276 0.416 -0.292 -0.131 -0.010 -0.021 -0.088 -0.223 0.013 -0.047 -0.291 - 13.180 -1.969 0.484 0.503 -0.420 -0.222 -0.017 -0.035 -0.113 -0.236 -0.006 0.044 -0.090 - 12.628 -1.823 0.276 0.594 -0.612 -0.232 -0.090 -0.084 -0.093 -0.299 -0.190 0.154 -0.092 - 11.328 -1.283 0.227 0.793 -0.509 -0.139 0.010 -0.078 -0.090 -0.109 -0.189 0.068 -0.174 - 13.131 0.310 -0.354 0.280 -0.444 -0.600 -0.258 -0.221 -0.133 -0.204 -0.200 0.047 -0.238 - 14.941 0.236 -0.752 0.212 -0.545 -0.760 -0.342 -0.124 -0.228 -0.066 -0.196 0.193 -0.285 - 15.598 -0.116 -0.670 0.066 -0.693 -0.790 -0.472 0.091 -0.225 0.054 -0.202 0.126 -0.359 - 15.665 -0.073 -0.809 -0.005 -0.689 -0.722 -0.612 0.234 -0.333 0.063 -0.235 0.141 -0.418 - 15.681 -0.227 -0.765 -0.215 -0.612 -0.743 -0.488 0.411 -0.331 0.181 -0.329 0.034 -0.457 - 15.359 -0.289 -0.724 -0.198 -0.540 -0.758 -0.489 0.403 -0.300 0.216 -0.278 0.007 -0.418 - 15.087 -0.228 -0.707 -0.190 -0.530 -0.797 -0.451 0.375 -0.335 0.187 -0.241 -0.014 -0.384 - 14.449 -0.011 -0.547 -0.118 -0.460 -0.912 -0.413 0.226 -0.324 0.184 -0.147 0.016 -0.366 - 13.474 0.110 -0.211 0.032 -0.549 -1.020 -0.235 0.030 -0.285 0.160 -0.179 0.060 -0.359 - 11.635 -0.091 0.052 0.264 -0.542 -0.989 -0.163 -0.193 -0.342 0.095 -0.101 0.070 -0.174 - 9.009 0.126 -0.311 0.079 -0.433 -0.703 -0.066 0.227 -0.066 0.268 0.097 -0.033 -0.219 - 7.810 0.194 -0.087 0.083 -0.674 -0.810 -0.404 0.337 -0.083 0.006 0.115 0.153 -0.366 - 7.217 0.042 -0.116 0.117 -0.389 -0.821 -0.284 0.356 -0.126 0.071 0.140 0.125 -0.200 - 8.065 -0.926 0.053 0.407 -0.558 -0.272 -0.614 0.111 0.034 -0.100 0.081 -0.033 -0.210 - 8.346 -0.993 -0.101 0.189 -0.553 -0.132 -0.599 0.033 0.209 0.052 0.100 -0.158 -0.267 - 6.281 0.069 -0.198 -0.026 -0.359 -0.631 -0.453 0.165 0.109 0.160 -0.023 -0.042 -0.158 - 5.981 -0.037 -0.223 -0.248 -0.408 -0.534 -0.335 0.387 0.168 0.253 -0.038 -0.078 -0.131 - 5.965 0.052 -0.205 -0.103 -0.242 -0.691 -0.518 0.430 -0.042 0.097 -0.060 0.058 -0.228 - 10.544 -1.378 0.029 -0.244 -0.124 -0.091 -0.432 0.001 -0.054 -0.238 -0.227 0.018 -0.042 - 11.361 -1.529 -0.078 -0.412 -0.260 -0.146 -0.504 -0.043 -0.118 -0.170 -0.141 0.056 0.011 - 8.345 -1.548 0.326 -0.525 -0.150 -0.033 -0.340 0.113 -0.079 -0.081 -0.092 0.026 -0.038 - 9.234 -1.185 0.812 -0.625 -0.166 0.010 -0.455 0.045 -0.188 -0.091 -0.147 -0.125 -0.109 - 10.593 -0.646 0.972 -0.146 -0.153 -0.173 -0.382 -0.169 -0.324 -0.284 -0.112 -0.181 -0.250 - 11.762 -0.322 0.667 0.257 -0.232 -0.478 -0.692 0.184 -0.728 -0.048 -0.239 0.009 -0.380 - 12.625 -0.076 0.257 0.188 -0.302 -0.588 -0.656 0.076 -0.585 -0.151 -0.179 0.061 -0.253 - 13.172 -0.035 0.093 0.108 -0.524 -0.570 -0.653 0.089 -0.417 -0.113 -0.170 0.083 -0.228 - 13.480 0.030 -0.261 0.090 -0.475 -0.561 -0.805 0.200 -0.425 -0.002 -0.193 0.330 -0.376 - 13.648 0.027 -0.358 -0.079 -0.446 -0.645 -0.789 0.295 -0.233 0.028 -0.247 0.337 -0.466 - 13.587 0.046 -0.372 -0.182 -0.404 -0.625 -0.829 0.252 -0.130 0.064 -0.298 0.340 -0.382 - 13.352 0.173 -0.274 -0.282 -0.420 -0.498 -0.803 -0.022 0.041 0.168 -0.484 0.431 -0.342 - 12.810 -0.046 -0.175 -0.313 -0.307 -0.444 -0.515 -0.178 0.158 0.218 -0.560 0.206 -0.130 - 12.236 -0.160 -0.272 -0.520 -0.302 -0.368 -0.509 -0.037 0.183 0.129 -0.546 -0.037 -0.083 - 11.508 -1.263 0.492 -0.550 -0.066 -0.196 -0.354 0.091 0.159 0.002 -0.259 -0.145 -0.028 - 11.391 -1.815 0.808 -0.657 0.121 -0.028 -0.140 -0.083 -0.020 -0.179 -0.132 -0.141 -0.041 - 10.728 -1.874 1.047 -0.719 -0.059 -0.076 -0.104 -0.042 0.015 -0.163 -0.224 0.040 -0.008 - 10.702 -1.846 1.012 -0.697 0.007 -0.222 -0.298 -0.104 -0.217 -0.131 -0.267 0.095 -0.019 - 10.396 -1.788 0.956 -0.511 -0.007 -0.387 -0.206 0.020 -0.114 -0.070 -0.170 -0.049 -0.266 - 9.282 -1.755 0.713 -0.542 0.023 -0.240 -0.252 -0.096 -0.189 -0.028 0.019 0.074 -0.057 - 8.391 -1.100 0.663 -0.640 -0.209 -0.354 -0.411 -0.246 -0.291 -0.258 -0.155 0.105 -0.082 - 8.441 -1.075 0.440 -0.409 -0.254 0.009 -0.485 -0.098 -0.357 -0.169 -0.351 -0.185 -0.221 - 9.459 -1.476 0.606 -0.333 -0.384 0.094 -0.513 -0.092 -0.313 -0.249 -0.254 -0.288 -0.227 - 10.440 -2.138 0.807 0.107 -0.560 0.112 -0.308 -0.029 -0.157 -0.103 -0.220 -0.160 -0.089 - 12.629 -1.775 0.428 -0.271 -0.676 0.049 -0.242 -0.121 -0.186 -0.167 -0.146 -0.148 -0.196 - 13.204 -1.405 0.136 -0.197 -0.724 -0.086 -0.336 -0.218 -0.211 -0.244 -0.192 -0.040 -0.178 - 12.532 -0.402 0.240 0.268 -0.355 -0.311 -0.435 -0.299 -0.091 -0.168 -0.363 0.051 -0.091 - 12.307 0.500 -0.207 0.281 -0.087 -0.539 -0.683 0.030 -0.531 -0.000 -0.500 -0.011 -0.077 - 12.206 0.424 -0.222 0.321 -0.113 -0.366 -0.995 0.362 -0.618 -0.058 -0.396 0.032 -0.096 - 11.776 0.280 -0.250 0.563 -0.151 -0.264 -0.805 -0.005 -0.399 -0.098 -0.428 0.037 0.024 - 9.967 0.301 -0.256 0.668 0.098 -0.381 -0.672 -0.067 -0.358 -0.138 -0.385 -0.003 0.107 - 7.847 0.071 0.088 0.611 0.114 -0.144 -0.260 0.068 -0.026 -0.080 -0.403 -0.122 0.192 - 7.554 -0.201 0.271 0.803 0.293 -0.073 0.001 0.001 -0.069 -0.183 -0.344 -0.329 -0.102 - 8.470 -0.053 -0.111 0.615 -0.100 0.010 -0.209 -0.106 0.008 -0.094 -0.314 -0.086 -0.103 - 12.650 -0.125 -0.396 0.494 -0.371 -0.267 -0.700 0.007 -0.329 -0.107 -0.365 0.159 -0.155 - 13.149 0.064 -0.407 0.157 -0.194 -0.728 -0.648 0.014 -0.310 0.031 -0.278 0.197 -0.065 - 13.163 0.165 -0.481 0.111 -0.156 -0.910 -0.619 -0.026 -0.310 0.131 -0.286 0.324 -0.129 - 13.422 0.197 -0.525 0.145 -0.293 -0.909 -0.597 -0.007 -0.334 0.125 -0.240 0.265 -0.165 - 13.577 -0.002 -0.365 0.231 -0.376 -0.856 -0.556 0.024 -0.361 0.051 -0.127 0.144 -0.113 - 13.202 0.020 -0.302 0.372 -0.435 -0.761 -0.635 0.183 -0.502 0.040 -0.054 0.011 -0.053 - 13.038 -0.065 -0.244 0.415 -0.379 -0.741 -0.578 0.065 -0.494 0.090 -0.149 0.055 -0.073 - 12.731 -0.000 -0.269 0.477 -0.369 -0.735 -0.574 0.128 -0.668 0.153 -0.179 0.026 -0.099 - 12.571 0.027 -0.275 0.447 -0.195 -0.811 -0.568 0.211 -0.779 0.106 -0.160 -0.079 -0.118 - 12.434 0.128 -0.158 0.254 0.160 -0.823 -0.591 0.191 -0.773 0.048 -0.361 -0.063 -0.210 - 11.802 0.628 -0.190 0.050 0.144 -0.448 -0.441 -0.139 -0.747 0.178 -0.416 -0.305 -0.199 - 10.911 0.933 -0.022 -0.249 -0.013 -0.293 -0.164 -0.115 -0.813 0.015 -0.400 -0.043 -0.142 - 10.368 0.968 0.228 -0.336 -0.237 -0.339 -0.061 -0.050 -0.771 -0.017 -0.441 -0.045 -0.093 - 10.349 1.007 0.256 -0.316 -0.285 -0.373 -0.136 0.076 -0.793 -0.029 -0.428 -0.160 -0.103 - 10.736 0.992 0.212 -0.327 -0.420 -0.364 -0.212 0.143 -0.849 -0.106 -0.398 -0.185 -0.059 - 11.102 1.159 0.065 -0.429 -0.427 -0.354 -0.243 0.097 -1.006 -0.022 -0.267 -0.095 -0.088 - 11.916 1.020 -0.101 -0.366 -0.388 -0.332 -0.359 -0.030 -0.865 0.033 -0.122 -0.034 -0.122 - 12.248 1.008 -0.373 -0.445 -0.446 -0.332 -0.339 -0.202 -0.717 0.213 0.060 -0.024 -0.119 - 12.745 0.864 -0.569 -0.467 -0.466 -0.291 -0.420 -0.314 -0.503 0.245 0.090 -0.150 -0.118 - 13.115 0.712 -0.639 -0.439 -0.506 -0.364 -0.412 -0.380 -0.319 0.418 0.155 -0.277 -0.138 - 13.409 0.531 -0.728 -0.285 -0.499 -0.370 -0.422 -0.391 -0.206 0.481 0.002 -0.367 -0.123 - 13.585 0.469 -0.855 -0.285 -0.594 -0.402 -0.394 -0.224 -0.116 0.429 -0.255 -0.213 -0.073 - 13.717 0.300 -0.745 -0.170 -0.697 -0.183 -0.617 -0.141 -0.094 0.434 -0.400 -0.143 -0.052 - 13.375 0.319 -0.652 -0.189 -0.610 -0.228 -0.599 -0.186 -0.114 0.446 -0.376 -0.095 -0.021 - 12.988 0.335 -0.598 -0.144 -0.639 -0.197 -0.765 -0.223 -0.181 0.617 -0.396 -0.057 0.033 - 12.534 0.228 -0.395 -0.001 -0.578 -0.074 -0.851 -0.311 -0.462 0.649 -0.373 -0.102 0.048 - 11.474 0.273 -0.215 0.045 -0.353 0.022 -0.615 -0.295 -0.547 0.317 -0.324 -0.234 -0.036 - 11.819 0.214 -0.272 0.049 -0.371 0.127 -0.757 -0.248 -0.469 0.285 -0.441 -0.117 -0.041 - 12.551 0.162 -0.350 0.060 -0.490 0.046 -0.834 -0.290 -0.351 0.402 -0.462 -0.065 0.032 - 12.916 0.098 -0.373 0.034 -0.514 -0.094 -0.921 -0.245 -0.311 0.465 -0.478 -0.005 0.073 - 13.168 0.076 -0.397 -0.007 -0.493 -0.238 -0.926 -0.241 -0.225 0.447 -0.432 -0.014 0.118 - 13.245 0.175 -0.541 0.124 -0.460 -0.401 -0.839 -0.236 -0.187 0.339 -0.386 -0.111 0.101 - 13.062 0.421 -0.653 -0.031 -0.101 -0.502 -0.850 -0.057 -0.321 0.159 -0.201 -0.149 -0.071 - 12.505 0.821 -0.753 -0.297 0.145 -0.355 -0.977 -0.066 -0.203 -0.028 -0.219 0.061 -0.259 - 11.701 1.096 -0.669 -0.415 0.232 -0.256 -0.965 -0.228 -0.201 -0.015 -0.308 0.142 -0.263 - 11.099 1.339 -0.672 -0.530 0.248 -0.236 -0.826 -0.411 -0.215 0.030 -0.337 0.104 -0.162 - 10.664 1.690 -0.679 -0.600 0.082 -0.090 -0.725 -0.452 -0.238 -0.095 -0.272 0.132 -0.154 - 10.794 1.858 -0.753 -0.649 0.062 -0.198 -0.572 -0.367 -0.288 -0.219 -0.243 0.157 -0.177 - 10.754 1.693 -0.622 -0.657 0.091 -0.244 -0.534 -0.249 -0.401 -0.266 -0.183 0.211 -0.183 - 10.433 1.430 -0.543 -0.656 0.106 -0.316 -0.535 -0.299 -0.400 -0.398 -0.062 0.293 -0.208 - 11.098 1.448 -0.574 -0.814 0.255 -0.538 -0.374 -0.278 -0.526 -0.300 -0.099 0.249 -0.299 - 11.185 1.254 -0.437 -0.745 0.237 -0.466 -0.385 -0.211 -0.512 -0.263 0.081 0.059 -0.303 - 10.753 1.249 -0.529 -0.660 0.189 -0.503 -0.393 -0.355 -0.512 -0.256 0.196 0.022 -0.380 - 11.343 1.373 -0.743 -0.529 0.147 -0.615 -0.411 -0.463 -0.467 -0.140 0.182 -0.020 -0.459 - 11.743 1.175 -0.687 -0.214 -0.007 -0.586 -0.436 -0.422 -0.372 -0.026 0.121 -0.198 -0.271 - 12.146 0.835 -0.655 -0.070 -0.129 -0.427 -0.502 -0.499 -0.281 0.123 -0.182 -0.142 -0.144 - 12.579 0.345 -0.459 0.004 -0.263 -0.295 -0.759 -0.375 -0.360 0.283 -0.306 -0.106 0.035 - 12.789 0.201 -0.343 -0.029 -0.327 -0.258 -0.804 -0.304 -0.335 0.310 -0.428 -0.100 0.066 - 12.404 0.126 -0.228 -0.020 -0.259 -0.143 -0.624 -0.291 -0.250 0.316 -0.517 -0.164 0.104 - 11.886 -0.304 0.304 -0.221 -0.064 -0.116 -0.778 -0.113 -0.149 -0.060 -0.490 -0.114 -0.022 - 11.185 -1.205 0.698 -0.238 0.271 -0.184 -0.684 -0.045 -0.260 -0.105 -0.461 -0.006 -0.056 - 10.745 -1.535 1.059 -0.256 0.091 -0.156 -0.600 -0.121 -0.266 -0.106 -0.460 0.017 -0.035 - 10.797 -1.605 1.125 -0.379 0.032 -0.147 -0.598 -0.111 -0.259 -0.101 -0.259 0.025 -0.111 - 11.326 -1.329 0.940 -0.452 -0.076 0.023 -0.628 0.094 -0.026 -0.033 -0.367 -0.087 -0.140 - 11.042 -1.319 0.763 -0.165 -0.242 0.176 -0.841 0.031 -0.082 -0.131 -0.276 0.102 0.101 - 10.076 -0.725 0.485 0.264 -0.352 -0.020 -0.636 -0.150 0.240 -0.238 -0.193 0.083 0.079 - 9.309 0.355 0.298 -0.023 -0.243 -0.321 -0.288 -0.101 0.071 0.014 -0.374 -0.085 -0.002 - 9.181 0.407 0.275 0.170 0.303 -0.305 -0.177 -0.062 0.032 -0.243 -0.318 -0.224 -0.121 - 9.540 0.597 0.179 0.145 0.239 -0.350 -0.075 -0.138 -0.085 -0.077 -0.252 -0.253 -0.277 - 10.021 0.375 0.168 0.182 0.234 -0.296 -0.191 -0.112 -0.082 0.035 -0.126 -0.288 -0.281 - 10.455 0.492 -0.152 0.368 0.311 -0.477 -0.127 -0.102 -0.193 -0.040 -0.127 -0.223 -0.243 - 10.415 0.132 0.094 0.326 0.376 -0.365 -0.113 -0.027 -0.504 0.170 -0.203 -0.189 -0.283 - 10.243 0.284 0.180 0.124 0.322 -0.407 -0.032 -0.019 -0.583 0.104 -0.195 -0.170 -0.144 - 10.862 0.644 0.029 -0.196 0.157 -0.411 -0.186 -0.142 -0.472 0.131 -0.007 -0.265 -0.103 - 11.350 0.770 -0.135 -0.293 0.078 -0.490 -0.418 -0.116 -0.611 0.275 0.016 -0.237 -0.058 - 11.677 0.685 -0.022 -0.389 0.173 -0.413 -0.515 -0.110 -0.634 0.379 -0.078 -0.268 -0.037 - 11.774 0.660 -0.127 -0.228 0.207 -0.472 -0.520 -0.109 -0.648 0.404 -0.087 -0.410 0.066 - 12.069 0.520 -0.188 -0.168 0.174 -0.432 -0.531 -0.093 -0.612 0.312 -0.119 -0.396 -0.033 - 11.773 0.568 -0.155 -0.168 0.190 -0.475 -0.491 -0.150 -0.646 0.337 -0.187 -0.357 -0.056 - 11.621 0.672 -0.241 -0.166 0.280 -0.538 -0.489 -0.161 -0.675 0.310 -0.240 -0.364 -0.089 - 11.639 0.696 -0.347 -0.029 0.316 -0.515 -0.490 -0.241 -0.680 0.218 -0.216 -0.381 -0.091 - 11.801 0.664 -0.397 -0.046 0.182 -0.370 -0.494 -0.286 -0.649 0.147 -0.169 -0.507 0.026 - 11.611 0.707 -0.306 -0.009 0.191 -0.285 -0.475 -0.114 -0.658 0.228 -0.307 -0.340 -0.063 - 11.406 0.518 -0.194 -0.020 0.175 -0.240 -0.378 -0.189 -0.477 0.150 -0.207 -0.420 -0.093 - 10.876 0.506 -0.224 -0.084 0.091 -0.257 -0.399 -0.104 -0.522 0.250 -0.105 -0.315 -0.092 - 10.882 0.344 -0.229 -0.099 0.008 -0.328 -0.611 -0.099 -0.607 0.288 -0.107 -0.374 -0.076 - 10.839 0.400 -0.429 -0.025 0.052 -0.382 -0.561 0.058 -0.381 0.213 -0.194 -0.405 -0.015 - 11.632 0.315 -0.439 -0.047 -0.108 -0.270 -0.616 0.113 -0.490 0.200 -0.199 -0.338 -0.001 - 11.981 0.228 -0.604 -0.123 -0.123 -0.479 -0.741 0.190 -0.512 0.218 -0.173 -0.344 0.085 - 12.585 0.239 -0.560 -0.002 -0.127 -0.591 -0.763 0.219 -0.395 0.337 -0.108 -0.251 0.197 - 12.855 0.230 -0.693 0.077 -0.218 -0.865 -0.623 0.178 -0.222 0.195 0.030 -0.201 0.239 - 13.484 0.134 -0.560 0.117 -0.209 -0.851 -0.563 0.305 -0.210 0.101 0.025 -0.323 0.151 - 13.206 0.205 -0.729 0.309 -0.393 -0.653 -0.519 0.313 -0.246 0.153 0.040 -0.169 0.051 - 12.892 0.171 -0.786 0.485 -0.638 -0.546 -0.386 0.425 -0.341 0.272 0.007 -0.091 -0.056 - 12.682 0.093 -0.576 0.419 -0.662 -0.603 -0.271 0.405 -0.422 0.355 -0.032 -0.148 -0.079 - 12.343 0.281 -0.553 0.452 -0.691 -0.620 -0.167 0.361 -0.554 0.494 -0.171 -0.089 -0.146 - 11.904 0.311 -0.300 0.241 -0.529 -0.512 0.024 0.127 -0.530 0.502 -0.220 -0.196 -0.085 - 11.368 0.254 0.003 -0.062 -0.285 -0.437 -0.044 0.086 -0.385 0.372 -0.469 -0.104 0.017 - 10.665 0.444 -0.127 -0.229 -0.017 -0.634 -0.111 0.150 -0.335 0.216 -0.305 -0.020 -0.066 - 9.962 0.309 0.024 -0.109 0.200 -0.628 0.049 0.121 -0.280 0.058 -0.293 -0.017 -0.027 - 9.036 -0.160 0.429 0.008 0.143 -0.688 0.049 0.001 -0.277 0.005 -0.379 -0.242 -0.104 - 7.816 0.075 0.222 0.455 -0.376 -0.469 -0.296 0.163 -0.235 -0.076 -0.201 -0.172 -0.020 - 7.406 -0.019 0.108 0.536 -0.472 -0.312 -0.158 0.187 -0.423 -0.385 -0.227 -0.088 -0.032 - 7.194 -0.070 0.032 0.586 -0.396 -0.153 -0.162 0.080 -0.359 -0.204 -0.156 -0.099 -0.076 - 7.147 0.050 0.112 0.677 -0.300 -0.084 -0.347 0.143 -0.421 -0.214 -0.116 -0.145 -0.025 - 6.935 0.104 0.076 0.697 -0.223 -0.270 -0.501 -0.019 -0.340 -0.310 -0.200 -0.036 0.063 - 6.593 0.193 0.102 0.658 -0.147 -0.158 -0.307 0.047 -0.432 -0.270 -0.340 -0.241 -0.067 - 6.077 0.266 0.118 0.602 -0.041 -0.154 -0.348 -0.034 -0.257 -0.263 -0.300 -0.225 -0.069 - 6.012 0.221 0.087 0.544 -0.158 -0.195 -0.429 -0.086 -0.308 -0.296 -0.164 -0.228 0.035 - 6.253 0.326 -0.092 0.481 -0.090 -0.157 -0.378 0.045 -0.124 -0.247 -0.257 -0.084 0.064 - 6.687 -0.084 -0.140 0.410 -0.245 0.060 -0.252 0.005 0.107 -0.189 -0.213 0.027 0.014 - 6.712 0.065 -0.031 0.401 -0.261 -0.037 -0.365 -0.118 0.102 -0.160 -0.153 0.030 0.002 - 6.506 0.436 0.140 0.248 -0.218 -0.094 -0.442 -0.090 -0.066 -0.352 -0.212 -0.169 0.065 - 6.730 0.686 -0.041 0.302 -0.151 -0.138 -0.487 -0.280 0.036 -0.328 -0.337 -0.204 0.017 - 6.430 0.857 -0.196 0.303 -0.065 -0.053 -0.726 -0.252 0.018 -0.362 -0.406 -0.303 -0.009 - 6.559 0.667 -0.295 0.288 0.100 -0.090 -0.684 -0.277 -0.300 -0.272 -0.324 -0.204 -0.051 - 6.563 0.636 -0.343 -0.028 -0.080 -0.070 -0.657 -0.338 -0.345 -0.051 -0.229 -0.130 -0.015 - 6.439 0.631 -0.218 -0.257 -0.255 -0.054 -0.480 -0.095 -0.462 -0.258 -0.217 -0.137 0.056 - 6.503 0.373 0.044 -0.014 -0.174 0.063 -0.324 0.020 -0.597 -0.154 -0.336 -0.133 -0.053 - 6.585 0.449 0.144 0.103 -0.228 -0.137 -0.313 0.254 -0.436 -0.159 -0.255 -0.220 -0.208 - 6.635 0.538 0.101 -0.061 -0.200 -0.135 -0.183 0.214 -0.436 -0.233 -0.292 -0.155 -0.089 - 6.764 0.365 0.215 -0.106 -0.271 -0.020 -0.125 0.078 -0.434 -0.085 -0.304 -0.148 -0.191 - 6.779 0.283 0.165 -0.019 -0.263 -0.049 0.044 0.107 -0.598 -0.325 -0.323 -0.125 -0.106 - 7.057 0.290 0.144 -0.055 -0.395 -0.089 -0.092 0.045 -0.623 -0.302 -0.159 -0.020 0.018 - 7.137 0.353 0.056 -0.351 -0.306 -0.046 -0.114 0.040 -0.470 -0.118 0.042 0.104 -0.129 - 7.408 0.386 -0.044 -0.228 -0.353 -0.076 -0.197 -0.038 -0.329 0.023 0.028 -0.023 -0.275 - 7.526 0.407 -0.018 -0.321 -0.233 -0.062 -0.209 -0.032 -0.423 -0.007 0.131 -0.070 -0.216 - 7.595 0.296 -0.202 -0.220 -0.431 -0.165 -0.397 -0.030 -0.221 0.257 0.240 0.083 -0.325 - 7.320 0.185 -0.084 -0.118 -0.332 -0.277 -0.448 0.019 -0.295 0.119 -0.055 -0.086 -0.241 - 7.231 -0.058 -0.223 -0.133 -0.193 -0.188 -0.285 0.210 -0.312 0.081 0.020 -0.064 -0.267 - 6.908 -0.208 0.009 -0.064 -0.109 -0.204 -0.281 0.131 -0.130 0.145 0.010 -0.149 -0.322 - 7.498 -0.108 -0.035 0.031 -0.423 -0.265 -0.340 0.158 -0.228 0.012 0.094 0.050 -0.257 - 7.717 -0.143 -0.233 -0.103 -0.331 -0.297 -0.354 0.192 -0.101 0.185 0.091 -0.083 -0.314 - 7.893 -0.091 -0.252 -0.243 -0.444 -0.167 -0.321 0.144 0.025 0.292 0.049 -0.192 -0.239 - 7.679 -0.195 -0.364 -0.362 -0.602 -0.192 -0.278 0.225 0.146 0.210 0.048 -0.029 -0.244 - 7.888 -0.088 -0.345 -0.396 -0.491 -0.239 -0.339 0.206 0.003 0.096 0.020 0.044 -0.349 - 8.049 -0.132 -0.302 -0.290 -0.389 -0.233 -0.364 0.288 0.044 0.004 -0.215 -0.016 -0.180 - 7.886 -0.161 -0.270 -0.092 -0.298 -0.222 -0.459 0.245 0.281 0.056 -0.295 -0.015 -0.191 - 7.799 -0.199 -0.178 0.056 -0.154 -0.223 -0.451 0.349 0.112 -0.039 -0.169 0.009 -0.229 - 7.704 -0.344 -0.148 0.120 -0.176 -0.219 -0.358 0.427 0.064 0.021 -0.148 -0.012 -0.178 - 7.793 -0.143 -0.059 -0.050 -0.310 -0.393 -0.408 0.366 0.168 0.027 -0.244 0.162 -0.060 - 7.533 -0.302 -0.046 0.043 -0.269 -0.454 -0.390 0.315 0.058 0.016 -0.043 0.171 -0.130 - 7.062 -0.621 -0.196 0.161 -0.220 -0.379 -0.295 0.315 -0.012 -0.030 -0.076 -0.005 -0.172 - 6.990 -0.510 -0.322 0.164 -0.108 -0.458 -0.431 0.167 -0.122 0.109 0.029 -0.015 -0.159 - 6.930 -0.662 -0.224 0.158 0.094 -0.365 -0.467 0.085 -0.130 0.074 0.200 0.117 -0.215 - 6.884 -0.735 -0.213 0.005 -0.064 -0.214 -0.388 0.068 -0.063 0.009 0.182 -0.055 -0.129 - 6.738 -0.819 -0.209 -0.072 -0.274 -0.388 -0.537 0.116 0.052 0.097 0.186 0.114 -0.115 - 6.851 -0.796 -0.039 0.063 -0.085 -0.267 -0.216 0.216 -0.105 -0.066 0.191 0.035 -0.171 - 6.297 -0.941 -0.017 0.114 -0.146 -0.159 -0.189 0.136 -0.138 0.069 0.243 0.112 -0.092 - 6.495 -0.978 -0.185 0.182 -0.082 -0.334 -0.214 0.255 -0.084 0.002 0.149 0.147 -0.118 - 6.703 -0.887 -0.107 0.132 -0.016 -0.377 -0.288 0.367 0.094 -0.049 0.209 0.019 -0.151 - 6.521 -0.770 -0.281 0.025 -0.117 -0.230 -0.288 0.296 -0.187 -0.166 0.035 -0.011 -0.234 - 6.467 -0.837 -0.324 -0.021 -0.166 -0.178 -0.314 0.248 -0.110 -0.073 0.048 0.200 -0.039 - 6.381 -0.879 -0.344 0.134 -0.111 -0.293 -0.345 0.116 -0.102 -0.068 0.049 0.055 0.005 - 6.706 -0.458 -0.257 0.073 -0.160 -0.361 -0.428 0.205 -0.153 -0.116 0.098 -0.020 -0.238 - 7.387 -0.110 -0.162 0.054 -0.081 -0.275 -0.536 -0.020 -0.183 -0.182 -0.000 0.016 0.080 - 7.903 0.094 -0.193 -0.274 -0.173 -0.179 -0.546 -0.188 -0.117 0.025 -0.018 -0.062 0.053 - 8.044 0.229 -0.476 -0.389 -0.226 -0.352 -0.699 0.004 0.012 0.005 -0.013 -0.074 -0.103 - 8.080 0.262 -0.392 -0.215 -0.381 -0.403 -0.728 -0.214 -0.005 0.093 0.157 -0.190 -0.079 - 8.223 0.398 -0.339 -0.273 -0.330 -0.257 -0.558 -0.241 0.015 0.092 0.121 -0.087 -0.072 - 8.428 0.190 -0.445 -0.160 -0.295 -0.271 -0.528 -0.109 -0.072 0.146 0.107 -0.018 -0.130 - 8.487 0.347 -0.414 -0.193 -0.361 -0.331 -0.587 -0.381 -0.116 0.033 -0.090 0.036 -0.058 - 8.582 0.395 -0.371 -0.173 -0.284 -0.313 -0.826 -0.363 -0.085 -0.081 -0.107 -0.030 -0.108 - 8.435 0.310 -0.371 0.069 -0.285 -0.308 -0.715 -0.268 -0.043 0.035 -0.046 -0.045 -0.081 - 8.402 0.315 -0.393 0.167 -0.177 -0.245 -0.657 -0.303 -0.156 0.050 -0.125 -0.178 -0.102 - 8.441 0.132 -0.229 0.562 -0.286 -0.369 -0.660 -0.234 -0.038 0.033 -0.115 -0.141 -0.078 - 8.124 0.058 -0.258 0.309 -0.394 -0.104 -0.600 -0.227 0.026 -0.008 0.045 0.067 -0.074 - 7.719 0.356 -0.122 0.320 -0.168 -0.448 -0.564 -0.251 -0.066 0.021 -0.114 -0.018 -0.115 - 7.075 0.050 -0.290 0.214 -0.097 -0.133 -0.523 -0.108 0.066 0.165 0.002 -0.067 -0.077 - 7.191 0.231 -0.253 0.063 -0.135 -0.361 -0.593 -0.077 0.027 0.158 -0.006 -0.014 -0.109 - 6.980 0.148 -0.298 0.108 -0.087 -0.204 -0.582 -0.206 -0.125 0.119 -0.244 -0.161 0.051 - 7.175 -0.190 -0.321 0.073 0.013 -0.353 -0.453 -0.113 0.034 -0.034 -0.157 -0.071 -0.083 - 7.444 -0.244 -0.131 0.064 0.016 -0.554 -0.547 -0.150 -0.014 -0.391 -0.175 0.012 -0.036 - 7.416 -0.238 -0.166 0.097 -0.232 -0.373 -0.349 -0.376 0.048 -0.288 -0.374 0.016 -0.007 - 7.305 -0.439 -0.192 0.502 -0.211 -0.223 -0.516 -0.293 -0.022 -0.260 -0.266 0.101 -0.165 - 7.994 -0.275 -0.044 0.501 -0.388 -0.230 -0.662 -0.288 -0.001 -0.294 -0.195 0.097 -0.266 - 7.829 -0.463 -0.092 0.544 -0.421 -0.303 -0.564 -0.092 0.108 -0.222 -0.081 0.321 -0.217 - 7.657 -0.301 0.026 0.649 -0.424 -0.313 -0.672 -0.161 -0.077 -0.127 0.028 0.302 -0.278 - 7.682 -0.410 -0.069 0.579 -0.458 -0.267 -0.697 -0.176 -0.174 -0.176 0.046 0.291 -0.214 - 7.850 -0.320 -0.160 0.487 -0.514 -0.224 -0.795 -0.239 -0.173 -0.203 -0.015 0.049 -0.233 - 7.922 -0.212 -0.159 0.344 -0.653 -0.469 -0.733 -0.084 -0.234 -0.205 -0.111 0.088 -0.351 - 7.191 -0.254 -0.184 0.330 -0.470 -0.446 -0.704 -0.058 -0.088 -0.079 -0.150 0.167 -0.148 - 7.214 0.050 -0.130 0.211 -0.249 -0.255 -0.620 -0.007 -0.150 -0.186 -0.320 0.067 -0.234 - 7.164 0.165 -0.144 0.259 -0.201 -0.243 -0.734 -0.078 -0.247 -0.206 -0.285 0.131 -0.225 - 6.980 0.076 -0.110 0.427 -0.139 -0.148 -0.617 -0.112 -0.216 -0.345 -0.316 0.049 -0.176 - 6.389 0.094 -0.167 0.285 -0.284 -0.155 -0.633 -0.152 -0.207 -0.355 -0.206 0.151 -0.258 - 6.366 0.314 -0.188 0.176 -0.137 -0.159 -0.582 -0.183 -0.081 -0.186 -0.300 0.101 -0.096 - 6.573 0.075 -0.172 0.274 -0.137 -0.272 -0.705 -0.132 -0.165 -0.233 -0.191 0.102 -0.184 - 6.326 0.139 -0.105 0.274 -0.211 -0.250 -0.500 -0.137 -0.253 -0.233 -0.332 0.112 -0.180 - 5.911 0.246 -0.195 0.160 -0.121 -0.348 -0.508 0.008 -0.222 -0.105 -0.184 -0.051 -0.084 - 5.647 0.194 -0.168 0.160 -0.094 -0.337 -0.438 0.023 -0.188 -0.249 -0.238 0.158 -0.241 - 5.910 0.093 -0.181 0.195 0.070 0.005 -0.695 -0.132 0.033 -0.055 -0.168 0.013 -0.226 - 6.000 -0.033 -0.358 0.166 0.049 -0.025 -0.591 -0.136 -0.081 -0.212 -0.249 0.260 0.025 - 5.716 0.216 -0.281 0.042 -0.166 -0.084 -0.512 -0.001 -0.038 -0.130 -0.277 -0.190 -0.167 - 5.817 0.251 -0.293 0.048 -0.240 0.044 -0.497 -0.053 0.109 -0.007 -0.250 -0.181 -0.204 - 6.014 0.385 -0.502 0.057 -0.280 -0.232 -0.487 0.090 0.175 0.099 -0.259 -0.292 -0.093 - 6.073 0.303 -0.606 -0.137 -0.220 0.040 -0.616 -0.064 0.173 0.144 -0.147 -0.281 -0.199 - 6.582 -0.003 -0.589 -0.002 -0.294 0.126 -0.681 -0.022 0.298 0.182 -0.315 -0.250 -0.054 - 6.847 -0.009 -0.593 0.030 -0.304 0.149 -0.745 -0.007 0.286 0.306 -0.252 -0.174 0.114 - 7.026 0.192 -0.476 0.038 -0.286 -0.022 -0.686 -0.012 0.129 0.399 -0.169 -0.002 -0.092 - 6.356 0.396 -0.394 0.187 -0.242 -0.156 -0.718 0.003 0.095 0.333 -0.277 -0.059 -0.003 - 5.982 0.476 -0.198 0.212 -0.072 -0.107 -0.752 -0.016 -0.065 0.097 -0.324 -0.137 -0.095 - 5.573 0.526 -0.209 -0.033 -0.201 -0.327 -0.664 -0.124 -0.151 0.048 -0.359 -0.184 -0.179 - 5.152 0.324 -0.406 -0.105 -0.050 -0.386 -0.499 -0.031 0.011 0.205 -0.326 -0.238 -0.079 - 5.168 0.400 -0.235 -0.122 -0.001 -0.241 -0.233 -0.118 0.002 0.203 -0.242 -0.148 0.034 - 5.812 -0.194 0.092 0.150 -0.148 0.048 -0.441 -0.168 -0.008 -0.029 -0.080 -0.185 -0.087 - 5.152 0.047 0.109 0.136 -0.184 -0.074 -0.244 -0.176 -0.093 -0.082 -0.056 -0.134 -0.185 - 4.688 -0.012 -0.022 0.172 -0.156 -0.084 -0.196 -0.270 -0.231 -0.124 -0.132 -0.140 -0.037 - 4.980 -0.113 -0.056 0.324 -0.176 -0.044 -0.299 -0.216 -0.116 -0.019 -0.074 0.007 -0.036 - 5.328 -0.101 0.184 0.495 -0.221 -0.068 -0.348 -0.168 -0.167 -0.178 -0.210 -0.176 0.051 - 5.226 -0.168 -0.150 0.442 -0.025 -0.071 -0.374 -0.146 -0.250 -0.169 -0.206 -0.238 -0.007 - 5.246 -0.109 -0.271 0.233 -0.258 -0.300 -0.183 -0.120 -0.232 -0.294 -0.242 -0.141 -0.079 - 5.428 -0.087 -0.367 0.324 -0.231 -0.090 -0.068 -0.121 -0.110 -0.335 -0.233 -0.214 -0.045 - 5.810 -0.168 -0.413 0.286 -0.298 -0.088 -0.037 0.169 -0.108 -0.286 -0.167 -0.139 -0.140 - 6.004 -0.160 -0.433 0.402 -0.290 -0.079 -0.077 0.103 -0.162 -0.253 -0.167 -0.323 -0.380 - 6.339 0.038 -0.239 0.457 -0.513 -0.376 -0.207 0.201 -0.045 -0.058 -0.193 -0.337 -0.367 - 6.658 0.056 -0.555 0.257 -0.561 -0.239 -0.343 0.110 -0.115 0.037 0.024 -0.139 -0.302 - 6.047 0.098 -0.481 0.312 -0.542 -0.163 -0.223 0.120 -0.185 0.011 -0.075 -0.183 -0.069 - 6.372 -0.056 -0.401 0.331 -0.701 -0.214 -0.170 0.175 -0.084 -0.030 -0.180 -0.181 -0.225 - 6.392 -0.067 -0.395 0.278 -0.700 -0.295 0.018 0.211 -0.117 0.076 -0.181 -0.121 -0.187 - 6.482 0.042 -0.155 0.288 -0.869 -0.270 -0.076 0.255 -0.184 -0.012 -0.254 -0.097 -0.205 - 6.117 0.098 -0.028 0.134 -0.848 -0.074 -0.036 0.262 -0.174 -0.116 -0.370 -0.019 -0.236 - 5.764 0.015 0.023 0.296 -0.661 -0.193 -0.109 0.034 -0.130 0.157 -0.195 -0.048 -0.130 - 5.521 -0.110 -0.162 0.104 -0.674 -0.266 -0.025 -0.105 -0.074 0.144 -0.268 -0.097 -0.081 - 5.317 0.096 -0.199 0.068 -0.421 -0.085 -0.039 0.024 -0.173 0.049 -0.120 -0.122 -0.114 - 5.368 0.081 -0.321 0.343 -0.226 -0.330 -0.145 0.084 -0.039 -0.043 -0.297 -0.158 -0.111 - 5.965 -0.356 -0.473 0.243 0.041 -0.041 0.024 0.105 -0.072 -0.110 -0.205 -0.001 -0.018 - 6.569 -0.852 -0.236 -0.019 -0.073 -0.116 -0.147 0.049 0.067 -0.181 -0.188 0.073 -0.032 - 7.060 -1.198 -0.173 0.114 -0.119 -0.075 -0.172 -0.235 -0.113 -0.130 -0.298 -0.037 0.008 - 7.526 -1.283 -0.121 0.272 -0.203 -0.229 -0.184 -0.042 -0.142 -0.162 -0.191 -0.023 -0.208 - 7.822 -1.232 -0.082 0.003 -0.233 -0.161 -0.283 0.023 0.142 -0.183 -0.126 -0.024 -0.053 - 8.183 -1.264 -0.103 0.235 -0.030 -0.206 -0.182 -0.065 0.035 -0.044 -0.046 0.043 -0.115 - 8.268 -1.147 -0.239 0.170 -0.093 -0.268 -0.206 -0.014 -0.051 -0.203 -0.404 0.075 0.036 - 8.270 -0.677 -0.448 0.040 -0.039 -0.002 -0.325 0.116 -0.106 -0.108 -0.329 0.181 0.063 - 7.696 -0.106 -0.282 -0.023 0.102 -0.058 -0.168 0.010 -0.023 0.002 -0.279 0.102 -0.021 - 9.492 0.655 0.348 0.041 -0.182 -0.423 -0.560 -0.117 -0.021 0.166 -0.445 0.112 -0.068 - 11.383 0.636 0.115 -0.196 -0.271 -0.350 -0.776 -0.154 -0.087 0.290 -0.400 0.138 -0.083 - 12.162 0.634 -0.160 -0.373 -0.299 -0.280 -1.048 0.032 -0.162 0.370 -0.406 0.160 -0.191 - 10.984 0.904 -0.188 -0.118 -0.265 -0.472 -1.138 0.135 0.178 0.245 -0.271 -0.142 -0.177 - 11.103 0.753 -0.240 -0.025 -0.312 -0.419 -0.963 0.146 -0.036 0.331 -0.308 -0.154 -0.081 - 11.064 0.713 -0.276 -0.244 -0.228 -0.353 -0.875 0.060 0.017 0.371 -0.210 -0.151 -0.279 - 11.284 0.691 -0.354 -0.353 -0.233 -0.306 -0.852 0.102 -0.007 0.403 -0.187 -0.162 -0.257 - 11.749 0.691 -0.457 -0.415 -0.320 -0.254 -0.801 0.140 -0.043 0.436 -0.220 -0.207 -0.224 - 12.247 0.635 -0.524 -0.441 -0.318 -0.293 -0.689 0.117 -0.155 0.568 -0.340 -0.157 -0.266 - 12.476 0.512 -0.535 -0.430 -0.353 -0.242 -0.601 -0.012 -0.077 0.536 -0.299 -0.236 -0.245 - 12.448 0.578 -0.633 -0.388 -0.368 -0.297 -0.469 -0.061 -0.132 0.571 -0.298 -0.233 -0.265 - 12.148 0.586 -0.573 -0.457 -0.349 -0.320 -0.414 -0.067 -0.153 0.593 -0.262 -0.228 -0.330 - 12.034 0.551 -0.505 -0.492 -0.353 -0.324 -0.381 -0.090 -0.164 0.567 -0.206 -0.209 -0.348 - 12.110 0.607 -0.532 -0.478 -0.394 -0.296 -0.339 -0.172 -0.137 0.538 -0.147 -0.222 -0.351 - 12.044 0.745 -0.620 -0.381 -0.458 -0.198 -0.424 -0.103 -0.222 0.527 -0.135 -0.174 -0.394 - 12.059 0.699 -0.520 -0.347 -0.495 -0.212 -0.334 -0.130 -0.261 0.516 -0.142 -0.109 -0.400 - 11.843 0.786 -0.558 -0.351 -0.530 -0.259 -0.135 -0.153 -0.315 0.452 -0.117 0.025 -0.415 - 11.588 0.740 -0.418 -0.459 -0.567 -0.286 0.029 -0.244 -0.278 0.365 -0.084 0.059 -0.303 - 11.363 0.669 -0.335 -0.494 -0.585 -0.411 0.185 -0.191 -0.241 0.140 -0.084 0.130 -0.128 - 10.683 0.751 -0.099 -0.424 -0.633 -0.640 0.423 -0.010 0.069 -0.338 -0.155 0.130 0.027 - 9.741 0.485 0.363 -0.303 -0.464 -0.566 0.351 -0.092 0.154 -0.231 -0.381 0.015 -0.013 - 8.832 -0.141 0.077 0.002 -0.186 -0.431 0.137 -0.118 0.004 0.086 -0.298 0.011 -0.166 - 8.114 -0.264 0.054 -0.158 -0.156 -0.086 0.142 0.034 0.091 0.004 -0.330 -0.005 -0.125 - 8.036 -0.331 0.194 -0.146 -0.150 0.074 0.012 0.172 0.106 0.145 -0.252 0.011 -0.092 - 8.004 -0.463 0.477 0.091 -0.002 -0.129 -0.159 -0.029 -0.120 0.146 -0.143 0.117 0.074 - 8.130 -0.638 0.527 0.155 -0.099 -0.282 0.002 -0.055 -0.138 0.110 -0.067 0.116 -0.155 - 8.083 -0.758 0.486 0.124 0.077 -0.224 0.208 -0.038 -0.225 0.032 -0.176 -0.149 -0.202 - 7.905 -0.652 0.412 0.130 -0.033 -0.253 0.103 0.002 -0.162 0.181 -0.215 -0.135 -0.084 - 7.555 -0.837 0.469 0.319 -0.156 -0.144 0.055 -0.076 -0.147 0.176 -0.180 0.103 0.016 - 7.884 -0.559 0.605 0.186 -0.174 -0.199 0.036 0.030 -0.144 0.143 -0.247 -0.198 -0.066 - 8.098 -0.265 0.417 -0.150 -0.314 -0.135 0.143 0.029 0.057 0.227 -0.185 -0.207 -0.095 - 8.020 -0.127 0.251 -0.316 -0.300 -0.180 0.137 -0.086 -0.008 0.252 -0.010 -0.186 -0.105 - 8.204 0.121 -0.184 -0.635 -0.495 -0.028 -0.023 -0.122 0.012 0.337 -0.077 -0.157 -0.064 - 8.534 0.352 -0.263 -0.535 -0.434 -0.178 -0.224 -0.132 0.139 0.415 -0.071 -0.127 -0.146 - 8.552 0.408 -0.329 -0.671 -0.467 -0.217 -0.243 -0.191 0.155 0.310 -0.191 -0.134 -0.111 - 8.390 0.461 -0.285 -0.589 -0.542 -0.105 -0.171 -0.066 0.203 0.333 -0.254 0.055 -0.025 - 8.270 0.464 -0.366 -0.453 -0.563 -0.146 -0.134 -0.140 0.132 0.327 -0.174 0.003 -0.010 - 8.359 0.492 -0.294 -0.386 -0.513 -0.126 -0.284 -0.215 0.063 0.404 -0.124 -0.009 -0.011 - 8.339 0.585 -0.297 -0.336 -0.533 -0.299 -0.479 -0.178 0.036 0.462 -0.126 -0.219 -0.059 - 8.027 0.517 -0.208 -0.365 -0.597 -0.241 -0.364 -0.221 0.154 0.402 -0.156 -0.142 -0.090 - 7.567 0.269 -0.279 -0.367 -0.519 -0.214 -0.447 -0.306 0.175 0.343 -0.137 -0.310 -0.083 - 7.135 0.239 -0.254 -0.404 -0.448 -0.081 -0.074 -0.130 0.107 0.298 -0.168 -0.205 -0.099 - 7.226 0.337 -0.266 -0.413 -0.436 -0.127 -0.208 -0.250 0.096 0.421 -0.061 -0.155 0.027 - 7.478 0.473 -0.186 -0.434 -0.387 -0.086 -0.168 -0.159 0.023 0.271 0.044 -0.148 -0.102 - 7.219 0.157 -0.288 -0.420 -0.273 -0.186 -0.188 -0.137 -0.004 0.274 0.004 0.074 -0.130 - 7.316 0.265 -0.133 -0.278 -0.165 -0.055 -0.184 -0.224 -0.118 0.142 -0.118 -0.028 -0.240 - 7.581 0.255 -0.057 -0.116 -0.313 -0.161 -0.237 -0.195 -0.193 0.206 -0.018 -0.105 -0.178 - 7.807 -0.007 0.075 -0.053 -0.312 -0.202 -0.328 -0.251 -0.306 0.301 -0.184 -0.041 -0.086 - 7.976 -0.576 0.254 0.382 -0.368 -0.189 -0.440 -0.411 -0.451 0.373 -0.331 0.091 0.010 - 8.248 -0.502 0.252 0.260 -0.747 -0.375 -0.502 -0.464 -0.392 0.466 -0.208 0.273 0.129 - 8.664 -0.447 0.385 0.257 -0.686 -0.256 -0.398 -0.482 -0.599 0.307 -0.228 0.329 0.169 - 9.145 -0.286 0.283 0.322 -0.802 -0.317 -0.423 -0.443 -0.538 0.332 -0.191 0.218 -0.011 - 9.597 -0.399 0.272 0.416 -0.816 -0.272 -0.481 -0.420 -0.574 0.417 -0.176 0.225 0.064 - 9.639 -0.471 0.279 0.208 -0.805 -0.421 -0.517 -0.325 -0.526 0.441 -0.163 0.212 0.080 - 9.685 -0.282 0.369 0.117 -0.760 -0.437 -0.466 -0.356 -0.577 0.377 -0.250 0.130 -0.031 + 6.472 -1.575 0.213 0.164 -0.131 0.156 0.063 0.061 -0.166 -0.093 -0.089 -0.043 0.029 + 6.523 -1.616 0.270 0.095 -0.232 0.101 -0.184 -0.055 -0.242 -0.200 -0.063 -0.000 -0.116 + 6.689 -1.370 0.276 0.002 -0.338 -0.004 -0.214 0.057 -0.195 -0.101 -0.098 -0.035 -0.192 + 6.772 -1.395 0.086 0.099 -0.389 0.172 -0.169 -0.191 -0.144 -0.006 -0.138 -0.059 0.012 + 6.514 -1.346 0.047 0.165 -0.311 -0.040 -0.125 -0.113 -0.092 0.103 -0.214 -0.066 0.054 + 6.645 -1.439 0.056 0.244 -0.226 -0.194 -0.082 -0.106 -0.206 0.071 -0.251 -0.200 -0.028 + 6.387 -1.356 0.012 0.138 -0.193 -0.161 0.076 0.000 -0.291 0.022 -0.264 -0.010 -0.034 + 6.046 -1.273 0.068 0.283 0.082 -0.118 -0.124 -0.173 -0.171 -0.012 -0.173 -0.162 -0.097 + 6.124 -1.127 0.003 0.211 -0.058 -0.114 -0.331 -0.111 -0.123 0.089 -0.094 -0.158 -0.073 + 5.946 -1.121 -0.256 0.079 0.170 -0.138 -0.258 -0.119 -0.069 0.145 -0.082 -0.036 0.014 + 5.680 -1.063 -0.168 -0.075 0.012 -0.091 -0.110 -0.219 -0.281 -0.086 -0.143 -0.123 -0.038 + 5.562 -0.793 0.043 0.018 -0.013 -0.203 -0.161 0.012 -0.002 0.099 0.012 -0.078 -0.031 + 5.726 -0.382 0.607 0.323 0.015 0.058 0.108 -0.150 -0.100 -0.073 -0.068 -0.020 -0.144 + 5.002 -0.083 0.390 0.161 -0.086 0.045 0.044 0.015 0.015 0.029 -0.003 -0.119 -0.215 + 4.924 -0.224 0.320 -0.017 -0.110 0.060 -0.041 -0.046 0.059 0.118 -0.081 -0.025 -0.197 + 4.471 -0.399 0.147 -0.031 -0.123 -0.037 0.007 -0.158 -0.165 -0.022 -0.164 0.028 0.059 + 4.258 0.023 0.026 0.054 0.107 -0.015 -0.017 -0.101 -0.153 0.219 -0.040 -0.134 -0.110 + 3.754 0.077 0.065 0.202 0.002 -0.174 -0.334 -0.107 -0.146 0.105 -0.045 -0.156 -0.053 + 3.356 0.169 -0.253 -0.008 -0.050 -0.030 -0.236 -0.119 -0.098 0.149 0.099 -0.023 0.035 + 3.292 0.105 -0.260 0.029 -0.095 0.021 -0.259 -0.252 -0.222 -0.101 0.080 0.040 0.037 + 3.738 0.283 -0.064 -0.009 -0.289 0.014 -0.156 -0.182 -0.146 -0.015 -0.089 -0.122 -0.115 + 3.919 0.280 0.103 -0.010 -0.044 -0.027 0.006 -0.130 -0.079 -0.137 -0.144 -0.189 -0.256 + 3.689 0.359 0.161 0.248 -0.056 0.003 -0.296 -0.301 -0.173 -0.040 -0.088 -0.227 0.021 + 3.851 0.261 0.304 0.134 0.010 -0.108 -0.166 -0.416 -0.211 -0.031 0.051 -0.003 0.073 + 6.780 -0.459 0.712 0.008 -0.552 0.154 -0.062 -0.291 -0.025 -0.066 -0.138 0.023 -0.162 + 9.415 -0.219 0.607 0.300 -0.432 -0.151 -0.260 -0.207 -0.061 -0.301 -0.196 0.074 -0.285 + 10.578 0.201 0.329 0.572 -0.236 -0.480 -0.532 -0.002 -0.256 -0.318 -0.225 -0.048 -0.306 + 12.180 -0.191 0.302 0.567 -0.309 -0.556 -0.614 -0.056 -0.362 -0.315 -0.271 0.042 -0.256 + 13.369 -0.265 0.158 0.461 -0.378 -0.571 -0.597 0.003 -0.469 -0.268 -0.342 0.133 -0.288 + 13.751 0.016 -0.073 0.453 -0.387 -0.609 -0.711 0.037 -0.530 -0.191 -0.385 0.157 -0.249 + 14.173 0.092 -0.207 0.450 -0.436 -0.700 -0.730 0.009 -0.565 -0.070 -0.394 0.210 -0.213 + 14.364 0.115 -0.292 0.421 -0.432 -0.819 -0.712 0.045 -0.584 0.018 -0.387 0.235 -0.179 + 13.981 0.488 -0.567 0.447 -0.426 -0.780 -0.780 0.166 -0.605 0.025 -0.275 0.065 -0.039 + 13.954 0.714 -0.790 0.374 -0.348 -0.772 -0.795 0.075 -0.448 0.017 -0.217 -0.032 0.017 + 14.155 0.742 -0.761 0.195 -0.357 -0.554 -0.971 0.042 -0.496 0.179 -0.246 -0.111 -0.006 + 13.919 0.844 -0.590 -0.083 -0.340 -0.367 -0.827 -0.150 -0.673 0.299 -0.157 -0.268 -0.066 + 13.253 1.122 -0.445 -0.220 -0.492 -0.209 -0.518 -0.266 -0.966 0.212 -0.057 -0.198 -0.137 + 12.590 1.256 -0.278 -0.309 -0.473 -0.296 -0.292 -0.244 -1.016 0.060 -0.052 -0.138 -0.061 + 12.257 1.408 -0.397 -0.268 -0.477 -0.212 -0.335 -0.137 -1.121 0.086 -0.129 -0.055 -0.170 + 12.486 1.238 -0.335 -0.236 -0.387 -0.232 -0.377 -0.184 -1.111 0.156 -0.140 -0.099 -0.267 + 12.851 1.003 -0.348 -0.210 -0.192 -0.238 -0.457 -0.270 -0.985 0.217 -0.125 -0.221 -0.279 + 13.122 0.870 -0.512 -0.031 -0.016 -0.363 -0.649 -0.236 -0.788 0.216 -0.216 -0.326 -0.186 + 13.416 0.512 -0.512 0.221 0.160 -0.646 -0.729 -0.080 -0.644 0.117 -0.368 -0.199 -0.098 + 13.669 0.215 -0.481 0.508 0.027 -0.849 -0.679 0.112 -0.701 -0.006 -0.315 -0.091 -0.085 + 14.023 -0.128 -0.311 0.636 -0.188 -0.945 -0.533 0.142 -0.768 -0.000 -0.275 -0.043 -0.107 + 13.859 -0.172 -0.235 0.699 -0.380 -0.895 -0.479 0.083 -0.726 0.000 -0.280 0.032 -0.110 + 13.834 -0.192 -0.080 0.585 -0.502 -0.866 -0.421 -0.047 -0.556 -0.066 -0.266 0.089 -0.148 + 13.802 0.010 -0.197 0.466 -0.542 -0.817 -0.461 -0.033 -0.458 -0.114 -0.217 0.126 -0.135 + 13.638 0.166 -0.325 0.338 -0.616 -0.688 -0.598 0.094 -0.418 -0.110 -0.198 0.187 -0.232 + 13.562 0.201 -0.393 0.190 -0.605 -0.637 -0.648 0.159 -0.380 -0.046 -0.278 0.239 -0.245 + 13.549 0.324 -0.548 0.148 -0.601 -0.533 -0.715 0.105 -0.250 -0.101 -0.230 0.143 -0.167 + 13.358 0.536 -0.689 0.061 -0.526 -0.501 -0.777 0.040 -0.205 -0.051 -0.284 0.138 -0.127 + 13.148 0.543 -0.556 -0.173 -0.309 -0.554 -0.776 -0.085 -0.177 0.038 -0.368 0.110 -0.055 + 12.791 0.398 -0.317 -0.383 -0.165 -0.575 -0.547 -0.476 -0.049 0.129 -0.458 0.037 0.029 + 12.749 0.083 -0.087 -0.369 -0.421 -0.109 -0.598 -0.629 -0.041 0.151 -0.310 -0.039 -0.105 + 12.917 0.379 0.033 -0.432 -0.682 0.292 -0.856 -0.488 -0.169 0.139 -0.280 0.142 -0.371 + 13.190 0.534 0.040 -0.565 -0.862 0.327 -0.811 -0.354 -0.414 0.291 -0.296 0.296 -0.418 + 13.189 0.493 0.217 -0.744 -0.940 0.241 -0.738 -0.193 -0.554 0.241 -0.286 0.469 -0.442 + 12.779 0.695 0.295 -0.858 -0.975 0.125 -0.623 -0.026 -0.656 0.043 -0.252 0.494 -0.395 + 12.528 0.664 0.473 -0.873 -1.006 0.055 -0.570 0.077 -0.694 0.015 -0.361 0.405 -0.260 + 12.122 0.854 0.386 -0.668 -1.151 -0.031 -0.380 -0.069 -0.512 -0.036 -0.485 0.419 -0.306 + 11.403 0.943 0.484 -0.517 -1.178 -0.110 -0.367 -0.073 -0.360 -0.063 -0.671 0.365 -0.282 + 10.916 0.877 0.612 -0.432 -1.132 -0.124 -0.387 -0.017 -0.332 -0.075 -0.769 0.295 -0.300 + 10.773 0.846 0.663 -0.402 -1.066 -0.193 -0.371 -0.010 -0.327 -0.143 -0.770 0.220 -0.373 + 10.732 0.749 0.723 -0.341 -1.016 -0.227 -0.399 -0.029 -0.321 -0.115 -0.718 0.174 -0.471 + 10.872 0.612 0.705 -0.364 -1.034 -0.227 -0.446 -0.092 -0.237 -0.048 -0.631 0.048 -0.480 + 11.283 0.587 0.496 -0.321 -1.069 -0.279 -0.462 -0.093 -0.158 -0.055 -0.652 0.064 -0.347 + 12.395 0.282 0.386 -0.563 -1.149 -0.211 -0.398 -0.030 -0.318 0.042 -0.496 0.055 -0.131 + 13.272 0.160 0.081 -0.799 -1.168 -0.149 -0.385 0.068 -0.319 -0.078 -0.370 0.227 -0.064 + 13.305 0.093 -0.007 -0.884 -1.211 -0.006 -0.452 0.061 -0.284 0.002 -0.314 0.272 -0.082 + 13.355 0.047 -0.061 -0.941 -1.228 0.084 -0.490 0.166 -0.274 0.048 -0.245 0.234 -0.159 + 13.396 0.069 -0.130 -1.003 -1.190 0.160 -0.543 0.262 -0.321 0.105 -0.202 0.222 -0.250 + 13.444 0.152 -0.237 -1.066 -1.135 0.199 -0.459 0.222 -0.324 0.124 -0.166 0.179 -0.289 + 13.488 0.079 -0.239 -1.099 -1.060 0.245 -0.408 0.167 -0.287 0.118 -0.068 0.064 -0.335 + 13.099 0.368 -0.396 -1.032 -0.994 0.252 -0.390 0.066 -0.238 0.077 0.044 0.012 -0.346 + 12.729 0.568 -0.537 -0.917 -0.871 0.218 -0.359 0.003 -0.215 0.052 0.117 -0.050 -0.340 + 12.065 0.587 -0.459 -0.774 -0.791 0.170 -0.392 -0.009 -0.233 0.060 0.131 0.031 -0.396 + 11.842 0.407 -0.469 -0.555 -0.672 0.174 -0.316 -0.244 -0.110 0.078 0.024 0.119 -0.508 + 11.775 0.363 -0.557 -0.285 -0.663 0.137 -0.404 -0.327 -0.065 0.234 -0.114 0.102 -0.530 + 11.652 0.298 -0.764 0.169 -0.513 -0.223 -0.504 -0.177 0.033 0.177 -0.250 0.151 -0.446 + 11.027 0.305 -0.784 0.469 -0.380 -0.384 -0.604 0.019 0.074 0.038 -0.337 0.295 -0.507 + 10.388 0.199 -0.367 0.594 -0.440 -0.477 -0.535 0.143 0.168 -0.244 -0.280 0.347 -0.542 + 9.855 0.138 0.033 0.173 -0.115 -0.499 -0.399 0.184 0.055 -0.324 -0.112 -0.063 -0.384 + 9.039 0.382 0.301 -0.003 -0.016 -0.397 -0.394 0.299 -0.334 -0.251 0.100 -0.327 -0.278 + 8.129 0.677 0.259 -0.020 0.042 -0.269 -0.462 0.344 -0.409 -0.088 -0.121 -0.323 -0.250 + 7.044 0.752 0.604 -0.027 -0.092 -0.301 -0.335 0.110 -0.172 -0.136 -0.345 -0.131 -0.162 + 6.880 0.542 0.696 -0.372 0.072 -0.399 0.049 -0.149 0.025 -0.107 -0.407 -0.164 -0.086 + 8.257 -0.259 0.479 -0.437 0.069 -0.211 0.103 -0.075 0.008 -0.261 -0.204 -0.037 -0.173 + 9.530 -0.399 0.064 -0.259 -0.192 -0.128 -0.103 -0.031 -0.039 -0.155 -0.252 0.097 -0.178 + 9.697 -0.407 0.176 -0.152 -0.064 -0.369 -0.289 -0.216 0.105 -0.164 -0.357 0.042 -0.098 + 10.737 -0.079 0.169 -0.212 -0.173 -0.375 -0.458 -0.343 -0.025 -0.031 -0.432 0.038 -0.095 + 11.354 -0.032 0.034 -0.264 -0.017 -0.375 -0.651 -0.475 -0.078 -0.061 -0.467 -0.016 -0.012 + 11.119 0.149 0.098 -0.415 -0.147 -0.228 -0.580 -0.503 -0.083 -0.027 -0.416 -0.087 -0.047 + 10.765 -0.097 0.340 -0.382 -0.122 -0.218 -0.571 -0.527 -0.008 -0.147 -0.271 -0.211 0.009 + 10.620 -0.875 0.442 -0.494 -0.005 -0.075 -0.164 -0.116 0.051 -0.079 -0.300 -0.177 0.010 + 10.449 -1.088 0.511 -0.545 -0.050 -0.211 -0.070 -0.108 0.001 -0.034 -0.338 -0.227 -0.115 + 10.686 -1.132 0.498 -0.536 0.207 -0.041 0.016 -0.082 -0.043 -0.046 -0.294 -0.050 -0.211 + 10.825 -1.058 0.429 -0.612 0.338 -0.224 -0.297 -0.164 -0.065 -0.218 -0.202 -0.040 -0.114 + 11.215 -1.050 0.402 -0.657 0.231 -0.309 -0.171 -0.060 -0.096 -0.192 -0.209 -0.100 -0.098 + 11.643 -0.874 0.481 -0.438 0.234 -0.335 -0.038 -0.099 -0.017 -0.260 -0.221 0.070 -0.054 + 11.354 -1.394 0.316 -0.499 0.128 -0.316 -0.038 -0.102 -0.130 -0.382 -0.238 -0.025 -0.066 + 11.594 -1.505 0.277 -0.329 0.133 -0.258 -0.103 -0.134 -0.174 -0.101 -0.171 -0.014 0.010 + 11.021 -1.342 -0.011 -0.131 0.083 -0.675 0.008 -0.011 -0.202 -0.275 0.046 -0.004 -0.015 + 7.126 -0.422 -0.235 -0.075 0.447 -0.614 -0.050 0.077 -0.127 -0.322 0.081 0.064 -0.161 + 4.674 0.103 -0.048 -0.659 0.189 -0.236 0.056 -0.079 -0.114 -0.008 -0.013 -0.057 -0.125 + 4.756 0.199 0.013 -0.768 -0.009 -0.495 -0.086 -0.228 -0.202 -0.178 -0.083 0.048 0.071 + 8.862 0.027 -0.222 -0.087 -0.734 -0.512 -0.187 -0.189 -0.074 0.031 -0.184 -0.104 -0.028 + 11.560 -0.764 -0.385 -0.013 -0.785 -0.533 -0.023 -0.250 -0.208 -0.021 -0.183 0.011 -0.030 + 12.263 -0.484 -0.157 0.472 -0.416 -0.731 -0.299 -0.230 -0.248 -0.202 -0.085 0.004 -0.164 + 13.613 -0.086 -0.574 0.358 -0.481 -0.715 -0.650 -0.094 -0.197 -0.087 -0.237 0.247 -0.317 + 14.008 -0.107 -0.674 0.101 -0.523 -0.681 -0.728 0.008 -0.163 0.107 -0.317 0.274 -0.308 + 14.086 -0.073 -0.729 -0.109 -0.606 -0.645 -0.698 0.072 -0.044 0.198 -0.271 0.045 -0.221 + 14.227 -0.163 -0.701 -0.202 -0.567 -0.515 -0.759 0.126 -0.051 0.249 -0.313 -0.036 -0.239 + 14.402 -0.052 -0.764 -0.242 -0.599 -0.406 -0.762 0.205 -0.127 0.267 -0.345 -0.161 -0.222 + 14.351 -0.115 -0.712 -0.208 -0.662 -0.301 -0.864 0.187 -0.185 0.331 -0.405 -0.038 -0.302 + 14.139 -0.021 -0.707 -0.213 -0.664 -0.330 -0.906 0.182 -0.124 0.299 -0.425 0.023 -0.291 + 13.600 0.055 -0.635 -0.284 -0.611 -0.454 -0.954 0.142 -0.017 0.272 -0.391 0.096 -0.227 + 11.972 0.527 -0.409 -0.216 -0.381 -0.661 -0.786 -0.033 0.150 -0.035 -0.196 0.202 -0.125 + 10.061 -0.477 0.126 0.122 -0.450 -0.413 -0.304 0.063 0.149 -0.122 -0.357 0.038 0.052 + 10.824 -1.212 0.572 0.811 -0.355 -0.053 -0.273 -0.206 0.124 -0.114 -0.238 -0.007 -0.070 + 11.417 -1.457 0.703 0.878 -0.354 0.030 0.063 -0.180 -0.007 -0.087 -0.394 -0.063 -0.146 + 11.840 -1.776 0.767 0.720 -0.425 0.016 0.053 -0.143 -0.097 -0.035 -0.269 -0.103 -0.178 + 11.839 -2.278 0.306 0.475 -0.595 -0.141 0.070 -0.056 0.089 0.055 -0.295 -0.125 -0.177 + 11.988 -2.469 0.285 0.764 -0.488 -0.204 -0.157 -0.013 0.073 -0.077 -0.180 -0.035 -0.098 + 11.816 -2.356 0.161 0.506 -0.620 -0.199 -0.088 0.070 0.149 0.039 -0.040 -0.149 -0.026 + 12.318 -1.801 0.355 0.841 -0.181 -0.074 -0.039 -0.134 -0.020 -0.052 -0.226 -0.172 0.049 + 11.674 -1.127 0.318 0.730 -0.141 -0.367 0.013 0.004 0.023 -0.022 -0.302 -0.113 0.064 + 10.561 -0.632 0.157 0.566 0.050 -0.151 -0.114 0.019 0.047 -0.148 -0.206 -0.031 -0.019 + 11.259 0.555 -0.479 0.173 -0.371 -0.326 -0.300 -0.050 0.042 0.082 -0.171 -0.056 -0.035 + 11.445 0.890 -0.473 0.061 -0.321 -0.318 -0.456 -0.113 0.024 0.095 -0.442 0.178 -0.290 + 11.437 0.634 -0.432 0.094 -0.424 -0.249 -0.465 -0.230 0.091 0.196 -0.403 0.132 -0.231 + 10.804 0.537 -0.334 0.235 -0.365 -0.265 -0.317 -0.432 0.089 0.257 -0.401 0.038 -0.266 + 10.273 -0.029 0.254 0.389 -0.313 -0.329 -0.165 -0.321 -0.080 0.220 -0.463 0.019 -0.191 + 10.497 -0.217 0.285 0.333 -0.172 -0.384 -0.164 -0.225 -0.170 0.329 -0.530 0.061 -0.327 + 10.645 -0.078 -0.352 0.089 0.049 -0.078 -0.563 -0.276 -0.150 0.366 -0.261 0.076 -0.200 + 11.650 0.099 -0.436 -0.036 -0.120 -0.269 -0.647 -0.142 -0.119 0.301 -0.223 -0.023 -0.245 + 11.759 0.084 -0.521 -0.040 -0.270 -0.273 -0.741 -0.107 -0.071 0.430 -0.286 0.049 -0.348 + 12.238 0.166 -0.662 -0.092 -0.515 -0.286 -0.712 -0.138 0.032 0.393 -0.230 0.029 -0.292 + 12.283 0.352 -0.627 -0.186 -0.407 -0.405 -0.480 -0.332 -0.109 0.357 -0.287 0.043 -0.239 + 10.766 0.547 -0.317 -0.342 -0.249 -0.296 -0.347 -0.542 -0.277 0.260 -0.131 -0.179 -0.284 + 9.513 0.596 -0.240 -0.100 -0.210 -0.239 -0.297 -0.568 -0.455 0.235 -0.009 -0.187 -0.281 + 5.825 0.196 0.221 0.110 -0.106 -0.003 -0.163 -0.151 -0.107 0.254 -0.049 -0.239 -0.268 + 5.505 0.196 0.189 0.177 -0.272 0.079 -0.129 -0.218 0.063 0.206 0.001 -0.244 -0.270 + 5.324 0.311 0.468 0.280 -0.339 -0.218 -0.326 -0.336 -0.007 0.123 -0.079 -0.154 -0.111 + 5.420 -0.001 0.580 0.269 -0.302 -0.296 -0.253 -0.202 -0.076 0.242 -0.195 -0.125 -0.139 + 8.194 -0.580 0.499 -0.068 -0.249 -0.316 -0.323 -0.097 -0.197 -0.023 -0.356 -0.117 -0.213 + 8.852 -0.470 -0.007 0.013 -0.174 -0.212 -0.144 -0.084 0.065 0.188 -0.070 -0.173 -0.063 + 11.472 -0.423 -0.607 0.012 -0.411 -0.348 -0.420 -0.148 -0.021 0.152 -0.160 -0.132 -0.026 + 12.762 -0.073 -0.719 -0.157 -0.593 -0.618 -0.574 -0.110 0.007 0.318 -0.207 -0.095 -0.007 + 13.091 0.011 -0.876 -0.030 -0.625 -0.604 -0.496 -0.097 0.083 0.219 -0.295 -0.081 -0.003 + 13.442 -0.135 -0.928 0.000 -0.678 -0.534 -0.528 -0.043 0.081 0.210 -0.340 -0.043 -0.093 + 13.264 -0.125 -0.955 -0.052 -0.747 -0.421 -0.643 0.121 -0.058 0.342 -0.484 0.049 -0.126 + 13.499 -0.254 -0.941 -0.148 -0.748 -0.406 -0.687 0.216 -0.100 0.443 -0.624 0.009 -0.182 + 13.649 -0.076 -1.001 -0.177 -0.642 -0.418 -0.587 0.191 -0.137 0.430 -0.592 -0.111 -0.140 + 13.632 -0.017 -1.056 -0.295 -0.604 -0.344 -0.526 0.201 -0.242 0.425 -0.559 -0.182 -0.116 + 13.201 0.011 -1.166 -0.468 -0.606 -0.342 -0.468 0.221 -0.214 0.467 -0.632 -0.225 -0.112 + 13.215 -0.050 -1.082 -0.461 -0.678 -0.274 -0.523 0.250 -0.241 0.567 -0.603 -0.237 -0.130 + 13.500 0.004 -1.058 -0.445 -0.709 -0.171 -0.542 0.230 -0.284 0.545 -0.560 -0.290 -0.120 + 13.495 -0.112 -0.976 -0.553 -0.682 -0.183 -0.474 0.229 -0.323 0.492 -0.485 -0.331 -0.109 + 12.973 -0.031 -0.900 -0.643 -0.793 -0.116 -0.517 0.246 -0.337 0.624 -0.486 -0.405 -0.120 + 13.377 -0.030 -0.777 -0.639 -0.798 -0.078 -0.525 0.174 -0.399 0.611 -0.435 -0.361 -0.130 + 13.395 0.059 -0.631 -0.738 -0.726 -0.077 -0.576 0.089 -0.460 0.563 -0.316 -0.297 -0.193 + 12.558 0.213 -0.324 -0.972 -0.696 -0.054 -0.616 -0.030 -0.343 0.515 -0.233 -0.316 -0.197 + 12.310 0.234 -0.284 -1.020 -0.733 -0.113 -0.576 -0.094 -0.346 0.557 -0.206 -0.226 -0.213 + 11.932 0.687 -0.394 -0.916 -0.726 -0.208 -0.483 -0.372 -0.338 0.548 -0.266 -0.004 -0.186 + 11.892 0.344 -0.152 -0.811 -0.572 -0.198 -0.486 -0.524 -0.420 0.511 -0.387 0.147 -0.209 + 10.343 0.273 -0.010 -0.847 -0.475 -0.287 -0.463 -0.706 -0.398 0.677 -0.303 0.251 -0.126 + 10.542 0.371 0.064 -0.638 -0.275 -0.253 -0.363 -0.761 -0.479 0.306 -0.372 0.135 -0.218 + 6.899 0.580 0.101 -0.509 -0.375 -0.221 -0.406 -0.684 -0.357 0.533 -0.511 0.177 -0.258 + 5.616 0.688 -0.092 -0.167 -0.379 -0.241 -0.283 -0.031 0.115 0.379 -0.109 -0.088 -0.140 + 5.622 0.755 -0.046 -0.072 -0.412 -0.194 -0.367 -0.007 0.011 0.425 -0.092 -0.075 -0.025 + 5.199 0.547 -0.336 -0.359 -0.563 -0.291 -0.351 -0.066 0.001 0.477 -0.014 -0.088 -0.097 + 4.990 0.471 -0.363 -0.272 -0.461 -0.203 -0.406 0.066 0.002 0.227 -0.022 -0.244 -0.168 + 4.901 0.361 -0.266 -0.207 -0.566 -0.180 -0.141 0.080 0.062 0.408 0.078 -0.052 -0.081 + 6.729 -0.083 -0.537 0.106 -0.591 -0.485 -0.030 0.005 -0.094 -0.071 -0.183 0.108 -0.042 + 6.292 0.009 -0.546 -0.075 -0.658 -0.374 -0.005 -0.150 -0.136 -0.075 -0.200 0.087 -0.064 + 4.935 0.236 -0.349 -0.064 -0.551 -0.231 -0.188 -0.110 -0.100 0.231 0.084 0.160 -0.101 + 4.924 0.206 -0.614 -0.015 -0.311 -0.197 -0.157 -0.116 0.059 0.324 0.023 0.041 0.014 + 5.197 0.237 -0.479 -0.158 -0.356 -0.199 -0.175 -0.242 -0.032 0.132 0.139 0.233 -0.105 + 5.083 -0.020 -0.564 -0.204 -0.334 -0.133 -0.069 -0.157 -0.191 0.139 0.145 0.048 0.024 + 5.235 0.164 -0.604 -0.172 -0.210 -0.093 -0.169 -0.020 -0.077 0.095 0.054 0.127 -0.066 + 5.295 0.112 -0.480 0.131 -0.123 -0.156 -0.319 -0.183 -0.137 0.241 0.169 0.117 -0.051 + 5.342 0.061 -0.532 -0.070 -0.228 -0.173 -0.268 -0.239 -0.201 0.194 0.070 0.051 -0.060 + 5.553 0.107 -0.557 -0.033 -0.343 -0.151 -0.148 -0.187 -0.195 -0.081 -0.117 0.146 0.017 + 5.729 0.161 -0.483 -0.005 -0.161 0.060 -0.311 -0.262 -0.130 0.060 -0.048 0.091 -0.241 + 5.858 0.297 -0.428 -0.025 -0.204 -0.172 -0.220 -0.132 -0.186 0.087 0.044 0.066 -0.143 + 5.884 0.214 -0.366 0.098 -0.173 -0.201 -0.271 -0.250 -0.107 0.103 0.017 -0.131 -0.080 + 6.230 0.360 -0.151 0.080 -0.250 -0.096 -0.089 -0.148 -0.133 -0.043 -0.019 0.102 0.022 + 6.257 0.478 -0.215 -0.182 -0.253 0.093 -0.171 -0.241 -0.226 -0.094 0.075 0.068 -0.178 + 6.970 0.241 -0.126 -0.290 -0.194 -0.251 -0.036 -0.352 -0.095 -0.115 -0.249 -0.185 -0.016 + 8.528 0.364 0.134 -0.303 -0.111 -0.409 0.040 -0.370 -0.020 -0.128 -0.542 -0.369 0.007 + 7.639 0.089 0.006 0.019 -0.131 -0.279 -0.046 0.065 -0.191 -0.131 -0.278 -0.164 -0.337 + 7.564 0.016 -0.087 -0.103 -0.208 -0.282 -0.098 -0.118 -0.176 -0.191 -0.242 -0.050 -0.403 + 7.042 -0.075 -0.402 -0.566 -0.486 -0.333 -0.014 -0.228 -0.191 0.056 -0.243 -0.107 -0.218 + 7.222 0.257 -0.470 -0.401 -0.416 -0.302 -0.023 -0.066 -0.224 -0.087 -0.434 -0.067 -0.083 + 7.283 0.145 -0.549 -0.455 -0.470 -0.309 -0.069 -0.031 -0.183 -0.272 -0.384 -0.215 -0.051 + 7.437 0.106 -0.634 -0.439 -0.334 -0.304 -0.265 -0.151 -0.179 -0.290 -0.552 -0.144 0.046 + 7.152 -0.268 -0.550 -0.333 -0.318 -0.199 -0.288 -0.226 -0.119 -0.221 -0.319 0.017 0.027 + 7.311 -0.734 -0.193 -0.047 -0.172 -0.093 -0.292 -0.351 -0.218 -0.182 -0.186 0.041 0.106 + 7.190 -0.390 -0.500 -0.242 -0.325 -0.265 -0.321 -0.215 -0.211 -0.350 -0.507 -0.058 0.052 + 6.444 0.536 -0.217 -0.483 -0.497 -0.340 -0.314 0.092 0.090 -0.188 -0.467 -0.277 -0.116 + 6.119 0.347 -0.083 -0.709 -0.549 -0.240 -0.122 -0.020 0.118 -0.086 -0.492 -0.154 -0.256 + 5.586 0.110 -0.050 -0.618 -0.350 -0.182 -0.003 0.078 0.019 -0.128 -0.340 -0.075 -0.378 + 5.605 -0.047 0.048 -0.376 0.016 -0.184 -0.283 -0.113 -0.089 -0.130 -0.164 -0.033 -0.375 + 5.834 -0.123 0.152 -0.325 -0.229 -0.211 -0.186 -0.252 -0.173 -0.155 -0.087 0.143 -0.184 + 5.898 -0.114 0.180 -0.382 -0.133 -0.205 -0.239 -0.303 -0.136 -0.234 -0.144 0.015 -0.179 + 5.735 -0.033 0.075 -0.339 -0.115 -0.220 -0.137 -0.114 -0.160 -0.139 -0.127 0.047 -0.190 + 5.655 -0.034 -0.058 -0.438 -0.289 -0.349 -0.312 -0.144 -0.116 -0.050 -0.051 0.084 -0.190 + 5.555 0.129 0.043 -0.426 -0.220 -0.190 -0.230 -0.206 -0.109 -0.089 -0.056 0.097 -0.134 + 5.509 0.085 0.017 -0.385 -0.216 -0.293 -0.334 -0.067 -0.108 0.102 -0.038 -0.041 -0.252 + 5.281 0.179 -0.248 -0.476 -0.310 -0.382 -0.265 -0.101 -0.096 0.046 0.015 0.060 -0.065 + 5.499 0.361 -0.117 -0.284 -0.385 -0.212 -0.098 0.028 0.036 -0.127 -0.021 0.032 -0.161 + 5.277 0.577 -0.204 -0.373 -0.502 0.039 -0.060 0.152 -0.055 -0.168 -0.232 -0.058 -0.192 + 5.269 0.365 -0.354 -0.415 -0.508 -0.122 -0.125 0.175 0.165 0.033 -0.188 -0.158 -0.053 + 4.828 0.114 -0.381 -0.391 -0.421 -0.149 -0.143 0.193 0.244 0.128 -0.288 -0.124 -0.054 + 4.242 0.172 -0.229 -0.285 -0.286 0.055 -0.138 0.008 -0.109 -0.189 -0.180 -0.043 -0.007 + 4.668 0.239 -0.271 -0.156 -0.012 -0.126 -0.309 -0.260 -0.068 -0.003 -0.044 0.061 -0.002 + 4.341 -0.136 -0.320 -0.103 -0.307 -0.129 -0.305 -0.069 -0.014 0.137 -0.070 0.172 -0.007 + 2.578 0.358 -0.078 -0.240 -0.128 0.081 -0.108 -0.006 -0.211 0.157 0.119 0.036 0.118 + 2.517 0.281 -0.068 0.066 -0.173 0.015 -0.091 -0.015 -0.163 0.143 0.177 0.074 -0.013 + 2.388 0.256 0.137 0.099 -0.132 -0.037 -0.312 -0.159 -0.067 0.086 0.056 -0.072 -0.079 + 2.619 0.487 -0.008 0.057 -0.095 -0.002 -0.192 -0.194 -0.200 0.068 0.131 -0.005 -0.102 + 2.389 0.412 -0.173 -0.203 -0.103 -0.140 -0.323 -0.227 -0.147 0.182 0.283 0.044 -0.148 + 2.093 0.306 -0.135 -0.091 -0.176 0.091 -0.176 -0.243 -0.026 0.053 0.139 0.015 -0.031 + 2.097 0.448 -0.147 -0.205 -0.060 -0.003 -0.092 -0.118 -0.125 0.090 -0.028 -0.082 -0.015 + 2.136 0.435 -0.321 -0.300 -0.125 -0.134 -0.192 -0.032 -0.224 0.033 -0.013 0.063 0.039 + 1.861 0.278 -0.153 -0.116 -0.250 -0.126 -0.219 0.005 0.043 0.086 0.092 0.015 0.050 + 1.893 0.471 -0.049 -0.056 -0.001 0.087 -0.055 -0.008 -0.040 0.010 0.090 0.079 0.073 + 2.559 0.875 0.180 0.065 0.029 -0.064 -0.237 -0.226 -0.252 -0.055 0.086 0.247 0.106 + 5.835 1.371 0.385 -0.079 -0.098 -0.230 -0.321 -0.158 -0.265 -0.049 -0.113 -0.106 -0.149 + 7.370 1.287 0.384 0.081 -0.104 -0.282 -0.363 -0.198 -0.330 -0.053 -0.095 -0.108 -0.217 + 6.706 1.447 -0.077 0.520 -0.196 -0.632 -0.153 -0.209 -0.412 0.113 -0.098 -0.171 -0.180 + 5.493 1.294 0.233 0.536 -0.226 -0.437 -0.200 -0.232 -0.333 0.051 0.033 -0.128 -0.136 + 4.036 0.354 0.678 0.475 -0.333 0.057 -0.335 -0.299 -0.317 0.030 0.028 -0.064 -0.152 + 2.634 0.294 0.320 0.073 -0.379 -0.020 -0.268 -0.309 -0.138 -0.004 0.017 -0.017 0.071 + 4.510 0.033 0.093 0.147 -0.479 -0.291 -0.048 -0.148 -0.153 -0.044 -0.130 -0.098 -0.050 + 7.999 -0.033 -0.400 0.015 -0.549 -0.278 0.107 0.056 -0.007 0.089 -0.223 -0.206 -0.187 + 5.242 -0.081 0.115 -0.022 -0.393 -0.238 0.320 0.048 0.149 0.051 -0.232 -0.243 -0.193 + 3.959 -0.861 0.365 0.061 -0.125 -0.286 0.138 -0.124 -0.032 -0.136 -0.155 -0.057 -0.139 + 4.925 -0.884 0.216 0.077 -0.067 -0.312 -0.208 -0.048 0.122 0.027 -0.142 -0.036 -0.030 + 5.384 -0.907 -0.182 -0.125 -0.118 -0.445 -0.284 0.050 0.355 0.042 -0.173 0.074 -0.056 + 5.736 -0.646 -0.133 -0.075 -0.101 -0.475 -0.176 0.195 0.316 -0.034 -0.339 -0.099 -0.119 + 4.902 -0.356 -0.155 -0.013 -0.119 -0.446 -0.091 -0.058 0.149 0.081 -0.247 -0.101 -0.249 + 3.862 0.247 0.159 -0.129 -0.325 -0.186 0.104 0.154 -0.042 -0.057 -0.016 0.013 -0.050 + 3.627 0.652 0.326 0.197 -0.118 -0.109 -0.101 -0.041 -0.189 -0.031 -0.087 -0.186 -0.124 + 3.381 0.668 0.134 0.154 -0.026 -0.086 -0.133 0.009 -0.175 -0.081 -0.015 -0.088 -0.162 + 3.107 0.574 0.113 0.013 -0.138 -0.069 -0.088 0.063 -0.147 -0.042 -0.059 0.008 -0.165 + 3.342 0.573 0.050 0.262 -0.137 -0.124 -0.061 -0.205 -0.223 -0.015 -0.072 -0.156 -0.099 + 3.433 0.602 0.074 0.188 -0.258 -0.142 0.013 -0.055 -0.216 -0.188 -0.055 -0.084 -0.028 + 3.663 0.241 0.352 0.192 -0.268 -0.168 0.011 0.028 -0.008 -0.044 -0.044 -0.002 -0.037 + 5.583 -0.339 0.458 0.228 -0.367 -0.248 0.099 -0.284 0.211 -0.196 -0.044 -0.097 -0.172 + 4.418 -0.241 0.573 0.111 -0.372 -0.141 0.099 -0.316 0.061 -0.251 -0.021 0.045 -0.135 + 4.546 0.450 0.196 0.279 -0.500 -0.080 -0.049 -0.075 0.109 -0.169 -0.161 -0.152 -0.112 + 3.509 0.325 0.204 0.177 -0.145 -0.077 0.029 -0.046 0.118 -0.247 -0.064 -0.172 -0.013 + 3.505 0.232 0.134 0.173 -0.279 -0.103 -0.021 -0.165 -0.014 -0.285 -0.136 -0.194 -0.088 + 4.401 0.634 0.134 -0.093 -0.384 -0.035 -0.062 0.125 0.126 -0.204 -0.228 -0.187 -0.060 + 4.154 0.341 0.194 0.121 -0.150 0.042 -0.042 0.054 0.022 -0.162 -0.299 -0.194 -0.190 + 4.600 -0.033 0.074 -0.104 -0.230 -0.122 -0.041 0.197 -0.066 0.164 -0.030 0.001 -0.176 + 4.854 -0.401 0.110 -0.254 -0.196 -0.118 0.086 0.062 -0.136 -0.057 -0.206 -0.089 -0.068 + 5.235 -0.469 -0.029 -0.172 -0.017 0.020 0.057 -0.020 0.009 -0.029 -0.252 -0.011 0.034 + 5.494 -0.502 -0.180 -0.293 -0.153 -0.065 0.182 -0.024 -0.064 -0.018 -0.122 -0.137 -0.081 + 5.213 -0.770 -0.443 -0.526 -0.354 -0.335 0.076 0.059 0.122 0.221 -0.005 -0.035 0.076 + 4.383 -0.923 -0.219 -0.118 -0.151 -0.176 0.064 -0.102 -0.010 0.116 -0.060 -0.064 0.044 + 4.124 -0.697 -0.139 -0.124 -0.137 -0.149 -0.002 -0.228 -0.067 -0.026 -0.215 -0.061 0.153 + 3.185 -0.071 -0.085 -0.271 -0.177 -0.130 0.010 0.087 -0.025 -0.099 -0.103 0.021 0.140 + 2.875 0.362 -0.117 -0.277 -0.152 -0.041 -0.093 -0.111 -0.076 0.044 -0.140 -0.186 -0.135 + 1.998 -0.007 -0.211 0.152 0.112 0.028 -0.052 -0.066 -0.065 0.172 0.001 0.036 0.015 + 1.977 0.041 0.024 0.139 -0.071 -0.107 -0.165 0.045 -0.140 0.028 0.071 -0.019 -0.057 + 2.261 0.066 -0.004 0.031 -0.050 0.013 0.096 -0.093 -0.089 0.045 -0.060 -0.028 -0.126 + 3.021 -0.569 0.285 -0.192 0.074 0.146 -0.073 -0.074 -0.105 -0.141 -0.027 -0.034 -0.115 + 2.988 -0.545 0.245 -0.160 -0.039 -0.144 -0.132 0.020 -0.001 0.049 0.143 0.041 0.028 + 1.980 -0.011 -0.419 -0.053 0.004 0.031 -0.117 0.023 -0.238 0.045 0.043 -0.032 -0.058 + 2.139 0.071 -0.309 -0.113 0.007 0.165 -0.031 -0.080 -0.156 0.019 0.051 -0.081 -0.022 + 2.044 0.108 -0.174 0.108 0.036 0.191 -0.004 -0.194 -0.146 0.037 0.132 0.120 -0.008 + 2.016 0.067 -0.109 -0.060 -0.259 -0.018 -0.082 -0.086 0.035 -0.046 -0.032 -0.012 0.016 + 2.098 0.230 0.214 0.067 -0.137 0.160 -0.102 -0.150 -0.114 0.083 0.133 0.039 0.001 + 2.096 0.300 0.163 0.137 0.031 0.078 -0.090 -0.047 -0.176 0.069 0.068 0.066 -0.038 + 2.297 0.399 0.026 -0.037 0.034 0.118 -0.077 -0.133 -0.293 0.032 0.099 0.104 -0.062 + 2.290 0.444 -0.093 -0.229 -0.266 -0.102 -0.062 -0.102 -0.107 0.089 0.117 0.137 -0.016 + 1.662 0.068 -0.083 -0.272 -0.022 -0.060 -0.151 -0.223 0.082 0.192 0.004 0.094 -0.027 + 1.883 0.368 0.204 -0.080 -0.181 -0.018 -0.252 -0.191 -0.042 -0.027 0.084 0.004 -0.086 + 1.915 0.346 0.104 0.085 -0.009 -0.190 -0.263 -0.300 -0.252 0.070 0.142 -0.039 -0.069 + 2.017 0.313 -0.318 0.039 -0.020 -0.007 -0.267 -0.296 -0.032 0.021 -0.052 0.075 -0.183 + 1.619 0.019 -0.318 0.128 0.095 0.262 -0.118 -0.101 0.112 0.115 -0.017 -0.041 -0.208 + 2.236 0.545 0.183 0.342 0.097 -0.114 -0.171 -0.146 -0.059 -0.002 0.146 0.004 -0.112 + 2.179 0.768 0.216 0.095 0.201 -0.103 -0.381 -0.360 -0.094 0.045 0.081 -0.009 -0.163 + 5.017 -0.358 -0.177 0.070 0.153 -0.025 -0.424 0.140 -0.035 -0.174 -0.042 -0.047 -0.062 + 7.109 -0.565 -0.283 0.047 -0.030 -0.226 -0.544 0.289 0.067 -0.327 -0.105 -0.019 0.004 + 3.918 -0.622 -0.728 0.268 0.069 0.124 -0.518 0.195 -0.046 -0.287 0.084 0.075 0.009 + 1.975 -0.287 -0.428 0.018 0.120 -0.054 -0.159 0.002 -0.207 -0.174 0.124 0.195 -0.129 + 2.620 -0.229 -0.306 -0.090 0.073 0.135 -0.007 0.035 -0.183 0.029 0.021 -0.005 -0.052 + 5.420 -0.720 -0.619 -0.101 -0.263 -0.075 0.024 0.134 -0.142 -0.082 0.205 0.172 -0.152 + 6.973 -0.896 -1.298 -0.140 -0.321 -0.292 -0.203 0.307 -0.033 -0.205 0.037 0.196 -0.262 + 8.823 -0.810 -1.129 -0.186 -0.077 -0.249 -0.142 0.059 -0.152 -0.095 0.073 0.184 -0.309 + 10.338 -0.546 -1.082 -0.244 0.042 -0.312 0.120 0.086 -0.089 -0.145 -0.167 0.012 -0.230 + 12.020 0.358 -0.982 -0.447 -0.103 -0.498 0.013 -0.106 -0.251 -0.027 -0.386 0.071 -0.240 + 13.170 0.835 -1.361 -0.356 -0.237 -0.376 -0.254 0.110 -0.161 0.005 -0.366 -0.075 -0.166 + 14.175 0.462 -1.720 -0.168 -0.352 -0.285 -0.186 0.266 -0.087 0.028 -0.376 -0.255 -0.064 + 14.008 0.482 -1.812 -0.252 -0.344 -0.274 -0.172 0.240 -0.040 -0.028 -0.322 -0.307 0.005 + 14.333 0.399 -1.758 -0.166 -0.465 -0.145 -0.255 0.282 -0.091 0.034 -0.344 -0.327 0.020 + 14.537 0.408 -1.633 -0.245 -0.577 -0.023 -0.329 0.244 -0.189 0.159 -0.360 -0.342 -0.064 + 14.519 0.661 -1.503 -0.355 -0.683 0.080 -0.305 0.177 -0.349 0.317 -0.307 -0.316 -0.244 + 13.706 1.232 -1.229 -0.366 -0.791 -0.084 -0.194 0.021 -0.487 0.274 -0.147 -0.233 -0.239 + 12.034 1.248 -0.828 -0.015 -0.704 -0.318 0.144 -0.082 -0.438 0.220 -0.255 0.085 -0.102 + 10.844 0.641 -0.504 0.310 -0.115 -0.135 0.446 -0.063 -0.561 0.112 -0.749 0.070 -0.126 + 10.760 0.593 -0.490 0.330 -0.128 -0.191 0.436 -0.087 -0.459 0.065 -0.698 0.046 -0.027 + 10.857 0.422 -0.436 0.306 -0.083 -0.067 0.370 -0.005 -0.556 -0.009 -0.759 -0.016 0.067 + 10.624 0.492 -0.450 0.360 -0.050 -0.072 0.400 0.047 -0.699 -0.020 -0.797 0.005 0.099 + 10.372 0.779 -0.529 0.367 -0.182 -0.083 0.273 0.224 -0.694 0.013 -0.684 -0.132 0.066 + 11.586 1.078 -0.440 -0.170 -0.351 -0.265 -0.199 -0.003 -0.667 0.065 -0.087 0.003 0.140 + 13.029 1.136 -0.983 -0.458 -0.570 -0.132 -0.398 -0.090 -0.581 0.364 -0.007 -0.114 -0.111 + 13.624 0.932 -1.285 -0.346 -0.703 -0.126 -0.545 -0.132 -0.385 0.469 -0.092 -0.316 -0.259 + 13.749 0.743 -1.210 -0.284 -0.471 -0.363 -0.497 -0.276 -0.074 0.455 -0.155 -0.360 -0.127 + 13.253 0.706 -0.887 -0.270 -0.138 -0.719 -0.412 -0.374 0.042 0.466 -0.392 -0.031 -0.032 + 11.665 0.271 -0.240 0.364 -0.230 -0.759 -0.473 -0.121 0.101 -0.018 -0.317 -0.057 -0.053 + 8.780 -0.002 -0.191 0.160 -0.362 -0.181 -0.449 -0.066 0.184 0.207 -0.133 0.056 -0.069 + 7.427 0.485 -0.658 -0.084 -0.386 -0.394 -0.048 -0.201 0.221 0.240 -0.230 -0.305 -0.113 + 7.945 -0.212 -0.616 -0.183 -0.482 -0.283 0.005 -0.062 0.393 0.315 -0.199 -0.322 -0.240 + 7.024 0.129 -0.406 -0.319 -0.428 -0.331 -0.012 -0.116 0.312 0.329 -0.226 -0.171 -0.059 + 10.636 -1.339 -0.305 0.005 -0.888 0.130 -0.219 -0.144 0.066 -0.197 -0.109 -0.137 -0.147 + 11.020 -1.741 -0.102 0.012 -0.931 -0.039 -0.115 -0.223 -0.077 -0.190 -0.081 -0.137 -0.117 + 11.050 -2.473 0.022 0.354 -0.365 -0.231 -0.040 -0.094 -0.037 0.030 -0.164 -0.175 -0.008 + 12.460 -1.736 -0.437 -0.080 -0.304 -0.398 -0.292 -0.147 -0.162 -0.139 -0.154 -0.004 0.052 + 12.013 -1.182 -0.318 0.406 0.125 -0.165 -0.407 -0.095 -0.213 -0.202 -0.194 -0.171 -0.013 + 11.486 0.144 -0.210 0.116 0.661 0.095 -0.249 -0.286 -0.188 -0.370 -0.377 -0.281 -0.255 + 11.432 0.731 -0.253 -0.133 0.275 -0.168 -0.380 -0.285 -0.141 -0.044 -0.047 -0.157 -0.373 + 11.298 1.214 -0.078 0.063 0.206 -0.046 -0.210 -0.246 -0.189 -0.031 -0.098 -0.277 -0.269 + 11.040 1.294 -0.045 0.214 0.071 0.083 -0.269 -0.309 -0.181 -0.059 -0.214 -0.071 -0.273 + 11.035 1.365 0.020 0.170 -0.089 0.060 -0.321 -0.181 -0.061 -0.131 -0.272 -0.105 -0.128 + 10.255 1.337 0.111 0.141 -0.068 0.124 -0.236 -0.187 -0.329 -0.220 -0.243 -0.129 -0.304 + 9.699 0.725 -0.231 0.033 0.037 0.219 0.002 -0.072 -0.362 -0.466 -0.131 0.043 -0.123 + 9.861 0.572 -0.557 -0.091 0.044 0.215 0.076 -0.114 -0.451 -0.415 0.002 0.106 -0.077 + 9.124 0.323 -0.760 -0.298 -0.020 0.452 0.032 -0.410 -0.585 -0.288 0.048 -0.011 0.027 + 8.448 0.650 -0.326 -0.030 -0.147 0.046 -0.241 -0.553 -0.398 -0.206 -0.037 0.090 -0.084 + 6.704 0.345 -0.234 -0.213 0.011 -0.026 -0.316 -0.516 -0.358 -0.007 0.115 -0.043 -0.115 + 6.168 0.098 -0.312 -0.129 0.100 -0.142 -0.117 -0.262 -0.338 -0.025 0.053 -0.216 -0.040 + 6.301 -0.312 -0.663 0.231 -0.139 -0.055 -0.277 -0.288 -0.128 -0.157 -0.087 -0.126 0.097 + 7.215 -0.365 -0.748 0.282 -0.227 -0.273 -0.425 -0.186 0.056 -0.176 0.158 -0.054 0.235 + 8.203 -0.637 -0.763 0.095 -0.489 -0.265 -0.291 -0.118 0.111 -0.101 0.256 -0.014 0.159 + 9.219 -0.551 -0.978 -0.156 -0.329 -0.231 -0.208 0.119 0.210 -0.298 0.054 -0.018 0.125 + 10.372 -0.183 -0.646 -0.115 -0.189 -0.288 -0.475 0.165 0.011 -0.085 -0.150 0.016 -0.029 + 10.631 -0.597 -0.899 -0.309 -0.168 -0.149 -0.200 0.292 -0.080 -0.250 -0.263 0.047 -0.102 + 11.224 -0.444 -1.176 -0.363 -0.058 -0.341 -0.026 0.372 0.069 -0.390 -0.214 0.175 -0.165 + 11.752 -0.455 -1.199 -0.194 0.008 -0.488 -0.011 0.071 -0.088 -0.323 -0.082 0.282 -0.155 + 12.117 -0.480 -1.240 -0.137 0.061 -0.309 0.046 0.083 -0.205 -0.259 -0.305 -0.047 -0.215 + 12.199 -0.475 -1.131 -0.209 0.143 -0.070 -0.007 0.032 -0.192 -0.295 -0.428 0.069 -0.161 + 13.021 0.188 -0.987 -0.336 -0.081 -0.274 -0.262 0.122 -0.191 -0.099 -0.485 0.008 -0.152 + 13.968 0.565 -1.407 -0.534 -0.162 -0.365 -0.238 0.221 -0.170 -0.089 -0.376 -0.014 -0.236 + 14.615 0.365 -1.682 -0.399 -0.260 -0.267 -0.365 0.370 -0.160 -0.007 -0.361 -0.169 -0.248 + 14.580 0.420 -1.646 -0.420 -0.344 -0.314 -0.354 0.334 -0.126 -0.009 -0.383 -0.292 -0.089 + 14.866 0.337 -1.417 -0.385 -0.362 -0.319 -0.477 0.399 -0.251 0.152 -0.432 -0.297 -0.161 + 14.901 0.459 -1.318 -0.568 -0.291 -0.345 -0.480 0.254 -0.284 0.311 -0.349 -0.342 -0.304 + 14.539 0.839 -1.242 -0.587 -0.341 -0.395 -0.450 0.047 -0.382 0.524 -0.325 -0.285 -0.465 + 14.336 1.040 -0.785 -0.911 -0.440 -0.407 -0.286 -0.002 -0.608 0.485 -0.301 -0.175 -0.362 + 13.910 1.125 -0.341 -0.947 -0.542 -0.339 -0.191 -0.266 -0.764 0.278 -0.225 0.113 -0.248 + 13.371 1.023 0.122 -0.823 -0.621 -0.231 -0.324 -0.295 -0.788 0.115 -0.428 0.305 -0.241 + 12.808 0.948 0.459 -0.817 -0.522 -0.233 -0.178 -0.345 -0.839 -0.067 -0.572 0.240 -0.189 + 12.318 1.035 0.503 -0.805 -0.411 -0.317 -0.140 -0.331 -0.759 0.010 -0.659 0.131 -0.217 + 11.437 1.267 0.359 -0.760 -0.188 -0.314 -0.035 -0.327 -0.765 0.047 -0.651 0.034 -0.252 + 10.608 1.613 -0.042 -0.628 0.166 -0.360 0.129 -0.462 -0.876 0.053 -0.528 -0.066 -0.364 + 10.680 1.362 -0.392 -0.195 0.485 -0.503 -0.036 -0.591 -0.693 0.088 -0.401 -0.404 -0.262 + 11.022 0.933 -0.564 0.367 0.389 -0.721 -0.346 -0.316 -0.486 0.144 -0.511 -0.454 -0.177 + 11.155 0.355 -0.421 0.632 0.149 -0.835 -0.066 -0.159 -0.613 -0.038 -0.309 -0.294 -0.222 + 11.107 -0.316 0.036 0.808 -0.167 -0.393 0.036 -0.348 -0.506 -0.040 -0.442 -0.296 -0.366 + 10.846 -0.390 0.450 0.505 -0.194 -0.364 -0.117 -0.175 -0.488 -0.019 -0.366 -0.348 -0.291 + 11.028 -0.468 0.696 0.380 0.045 -0.291 -0.191 -0.089 -0.532 -0.032 -0.304 -0.417 -0.364 + 11.952 -0.720 0.806 0.386 -0.192 -0.150 -0.327 0.071 -0.583 0.029 -0.345 -0.325 -0.305 + 12.689 -1.045 0.758 0.511 -0.102 -0.226 -0.475 0.057 -0.535 0.131 -0.296 -0.246 -0.284 + 12.838 -1.087 0.855 0.472 -0.196 -0.187 -0.348 0.123 -0.711 0.102 -0.267 -0.295 -0.278 + 12.984 -0.972 0.767 0.478 -0.229 -0.103 -0.357 0.156 -0.776 0.093 -0.294 -0.287 -0.229 + 13.012 -0.808 0.673 0.451 -0.297 -0.114 -0.431 0.193 -0.676 0.064 -0.334 -0.273 -0.196 + 12.853 -0.561 0.477 0.561 -0.347 -0.152 -0.493 0.115 -0.646 0.082 -0.268 -0.322 -0.199 + 12.989 -0.524 0.386 0.554 -0.358 -0.104 -0.522 0.027 -0.781 0.120 -0.276 -0.252 -0.195 + 12.839 -0.398 0.269 0.565 -0.292 -0.191 -0.456 -0.086 -0.789 0.031 -0.323 -0.130 -0.260 + 12.864 -0.420 0.237 0.648 -0.218 -0.349 -0.336 -0.299 -0.664 -0.105 -0.303 -0.128 -0.239 + 13.113 -0.447 0.174 0.445 -0.301 -0.187 -0.194 -0.281 -0.767 -0.332 -0.223 -0.011 -0.394 + 13.206 -0.413 0.148 0.242 -0.071 -0.468 -0.226 -0.287 -0.548 -0.248 -0.220 -0.158 -0.434 + 12.834 -0.422 -0.070 0.190 -0.117 -0.644 -0.243 -0.328 -0.235 -0.423 -0.257 0.062 -0.434 + 12.754 -0.406 0.041 -0.028 0.009 -0.658 -0.245 -0.291 -0.338 -0.455 -0.224 -0.048 -0.433 + 12.867 -0.642 0.261 -0.186 0.041 -0.561 -0.291 -0.223 -0.451 -0.518 -0.314 -0.058 -0.271 + 12.978 -0.537 0.228 -0.108 0.018 -0.656 -0.187 -0.242 -0.289 -0.528 -0.237 -0.093 -0.349 + 13.012 -0.545 0.212 0.009 0.043 -0.492 -0.314 -0.173 -0.470 -0.411 -0.248 -0.106 -0.398 + 13.119 -0.707 0.271 0.333 -0.057 -0.459 -0.163 -0.178 -0.468 -0.359 -0.187 -0.145 -0.396 + 13.055 -0.529 0.226 0.423 -0.129 -0.358 -0.297 -0.067 -0.539 -0.367 -0.178 -0.309 -0.338 + 12.993 -0.627 0.387 0.676 -0.289 -0.396 -0.209 -0.012 -0.616 -0.167 -0.246 -0.378 -0.296 + 12.879 -0.636 0.260 0.935 -0.444 -0.174 -0.272 0.075 -0.703 -0.037 -0.416 -0.236 -0.312 + 12.766 -0.743 0.297 0.902 -0.278 -0.207 -0.257 0.032 -0.703 0.029 -0.423 -0.227 -0.274 + 12.460 -0.629 0.233 0.749 -0.096 -0.358 -0.191 0.079 -0.685 0.093 -0.408 -0.199 -0.242 + 12.134 -0.437 0.096 0.691 0.085 -0.453 -0.211 0.165 -0.653 0.092 -0.405 -0.150 -0.234 + 11.775 -0.318 0.100 0.497 0.306 -0.445 -0.335 0.202 -0.625 0.119 -0.401 -0.171 -0.142 + 11.033 -0.051 0.092 0.287 0.446 -0.323 -0.378 0.126 -0.662 0.183 -0.450 -0.182 -0.009 + 10.556 0.071 0.151 0.179 0.410 -0.202 -0.275 -0.043 -0.689 0.284 -0.543 -0.203 0.095 + 10.344 0.142 0.105 0.059 0.442 -0.103 -0.332 -0.117 -0.653 0.373 -0.534 -0.266 0.037 + 10.313 0.109 0.226 -0.015 0.433 -0.083 -0.376 -0.127 -0.644 0.381 -0.472 -0.271 -0.050 + 10.589 0.043 0.137 0.080 0.427 -0.126 -0.412 -0.044 -0.725 0.429 -0.565 -0.236 -0.078 + 10.769 0.023 0.086 0.188 0.435 -0.222 -0.453 -0.014 -0.654 0.397 -0.645 -0.166 -0.102 + 10.934 0.005 -0.056 0.434 0.355 -0.291 -0.451 0.011 -0.586 0.313 -0.668 -0.141 -0.082 + 10.813 0.081 -0.152 0.602 0.383 -0.452 -0.381 0.012 -0.468 0.107 -0.621 -0.123 -0.158 + 10.848 -0.132 -0.061 0.656 0.454 -0.563 -0.331 0.067 -0.512 0.129 -0.576 -0.138 -0.144 + 10.723 -0.204 0.048 0.661 0.349 -0.557 -0.291 0.225 -0.680 0.171 -0.512 -0.191 -0.087 + 10.243 -0.206 0.125 0.631 0.357 -0.598 -0.192 0.248 -0.762 0.285 -0.570 -0.070 -0.265 + 9.988 -0.306 0.102 0.625 0.339 -0.517 -0.147 0.219 -0.645 0.064 -0.471 -0.188 -0.152 + 9.943 -0.397 0.277 0.538 0.254 -0.376 -0.183 0.115 -0.475 0.008 -0.513 -0.393 0.041 + 10.163 -0.010 0.228 0.350 0.327 -0.210 -0.309 -0.008 -0.393 0.161 -0.516 -0.579 -0.052 + 10.059 0.164 0.135 0.133 0.461 -0.201 -0.202 -0.135 -0.447 0.331 -0.325 -0.566 0.032 + 10.179 0.401 0.374 -0.251 0.210 -0.094 -0.195 -0.158 -0.535 0.337 -0.084 -0.363 0.043 + 10.481 0.878 0.359 -0.506 0.072 -0.149 -0.189 -0.252 -0.718 0.065 -0.070 -0.510 0.039 + 10.673 1.165 0.015 -0.458 -0.186 -0.139 0.045 -0.324 -0.571 0.012 0.045 -0.333 0.084 + 10.986 1.193 0.044 -0.448 -0.366 -0.403 0.201 -0.483 -0.276 -0.176 0.064 -0.321 0.151 + 11.303 1.217 0.018 -0.546 -0.657 -0.295 0.086 -0.396 -0.205 -0.198 0.026 -0.264 0.247 + 11.423 1.135 0.016 -0.445 -0.989 -0.204 0.040 -0.258 -0.084 -0.237 -0.106 -0.096 0.157 + 11.384 0.924 0.132 -0.528 -1.012 -0.348 0.104 -0.236 0.158 -0.324 -0.024 -0.125 0.065 + 10.912 1.171 -0.019 -0.526 -1.048 -0.321 0.042 -0.229 0.315 -0.403 0.056 -0.134 -0.126 + 11.284 1.188 -0.155 -0.690 -1.152 -0.019 -0.065 -0.093 0.070 -0.267 -0.016 -0.033 -0.157 + 11.754 1.077 -0.391 -0.774 -1.111 0.162 -0.002 -0.192 -0.046 -0.112 0.015 0.026 -0.252 + 11.654 1.179 -0.572 -0.892 -0.931 0.162 -0.063 -0.174 -0.045 -0.016 -0.047 0.073 -0.402 + 11.896 0.927 -0.726 -0.737 -0.863 0.151 0.021 -0.395 0.041 0.161 -0.104 0.119 -0.549 + 11.590 1.057 -0.976 -0.503 -0.736 0.148 -0.131 -0.429 0.073 0.202 -0.127 0.091 -0.580 + 11.501 1.053 -0.926 -0.506 -0.622 0.127 -0.389 -0.366 0.081 0.234 -0.154 0.124 -0.560 + 9.569 0.568 -0.340 -0.043 -0.337 0.259 -0.311 -0.366 0.090 0.107 -0.310 0.130 -0.351 + 9.356 0.652 -0.019 0.154 -0.451 0.034 -0.245 -0.342 -0.011 0.120 -0.423 0.113 -0.292 + 9.698 0.529 -0.187 0.249 -0.421 -0.097 -0.155 -0.343 -0.083 0.124 -0.381 0.057 -0.213 + 12.596 0.244 -1.069 0.007 -0.092 -0.417 -0.593 0.067 -0.271 0.502 -0.317 0.077 -0.366 + 12.534 0.486 -1.053 -0.088 -0.313 -0.278 -0.643 0.029 -0.193 0.460 -0.346 0.014 -0.367 + 12.380 0.625 -0.952 -0.121 -0.619 -0.234 -0.631 0.030 0.002 0.340 -0.353 0.012 -0.283 + 12.215 0.757 -1.037 0.036 -0.710 -0.216 -0.705 0.053 0.101 0.220 -0.346 0.088 -0.249 + 11.739 0.859 -0.763 0.098 -0.738 -0.199 -0.721 -0.131 0.099 0.215 -0.225 0.032 -0.171 + 11.106 1.074 -0.628 0.098 -0.448 -0.267 -0.650 -0.215 -0.129 0.276 -0.253 -0.091 -0.200 + 8.648 1.023 0.010 0.036 0.139 -0.137 -0.346 -0.137 -0.216 0.173 -0.179 -0.383 -0.337 + 8.678 0.899 -0.087 0.152 0.161 -0.083 -0.339 -0.010 -0.231 0.032 -0.258 -0.583 -0.062 + 8.847 0.794 -0.051 0.118 0.209 -0.319 -0.318 0.104 -0.368 0.192 -0.246 -0.601 0.047 + 8.952 0.692 -0.111 0.163 0.167 -0.316 -0.282 0.087 -0.362 0.234 -0.295 -0.550 0.025 + 8.961 0.616 -0.066 0.139 0.166 -0.352 -0.187 -0.009 -0.329 0.274 -0.331 -0.630 0.171 + 9.244 0.577 -0.145 0.081 0.219 -0.272 -0.130 -0.053 -0.429 0.316 -0.352 -0.489 0.091 + 11.550 0.271 -0.471 0.068 -0.032 -0.313 -0.524 0.062 -0.156 0.168 -0.272 -0.131 0.054 + 12.326 -0.026 -0.265 0.179 -0.460 -0.596 -0.554 0.095 -0.324 0.162 -0.049 -0.033 0.004 + 12.629 -0.197 -0.139 0.354 -0.790 -0.525 -0.463 0.058 -0.388 0.352 -0.174 0.010 -0.107 + 12.915 -0.279 -0.101 0.364 -0.817 -0.611 -0.488 0.094 -0.442 0.377 -0.157 0.016 -0.192 + 13.128 -0.391 0.063 0.292 -0.878 -0.476 -0.659 0.161 -0.510 0.449 -0.308 0.139 -0.256 + 12.885 -0.391 0.274 0.261 -0.942 -0.437 -0.586 0.044 -0.537 0.394 -0.246 0.094 -0.190 + 12.791 -0.512 0.433 0.330 -0.937 -0.410 -0.608 0.006 -0.534 0.336 -0.226 0.093 -0.193 + 12.614 -0.614 0.650 0.371 -0.920 -0.378 -0.524 -0.129 -0.503 0.281 -0.265 0.034 -0.169 + 12.017 -0.584 0.725 0.466 -0.756 -0.266 -0.508 -0.224 -0.537 0.229 -0.327 0.015 -0.137 + 11.267 -0.640 0.776 0.575 -0.742 -0.294 -0.353 -0.226 -0.608 0.212 -0.376 -0.100 -0.175 + 8.754 -0.637 0.556 0.445 -0.459 -0.237 -0.258 -0.095 -0.360 0.182 -0.309 -0.070 0.027 + 6.755 -0.299 0.524 0.180 -0.133 -0.184 0.101 -0.162 0.092 -0.010 -0.204 -0.235 -0.259 + 5.801 -0.198 0.745 0.179 0.075 -0.162 -0.154 -0.488 -0.012 -0.142 0.015 -0.002 -0.292 + 4.897 0.393 0.245 0.045 -0.192 -0.201 -0.557 -0.238 -0.306 0.264 -0.159 -0.092 -0.099 + 4.974 0.349 0.132 0.097 -0.199 -0.187 -0.530 -0.149 -0.394 0.151 -0.043 0.091 -0.207 + 6.163 -0.111 -0.178 0.127 -0.448 -0.072 -0.347 -0.224 -0.147 -0.093 -0.103 0.120 -0.141 + 10.286 -1.278 -0.415 0.032 -0.511 0.003 -0.161 -0.168 0.150 0.053 -0.078 -0.112 -0.279 + 11.803 -1.488 -0.488 -0.021 -0.721 -0.076 -0.300 -0.278 -0.049 -0.145 -0.217 -0.218 -0.180 + 11.321 -0.915 0.844 -0.106 -0.617 0.039 -0.397 -0.264 -0.446 -0.075 -0.218 -0.208 -0.091 + 11.056 -0.096 1.112 0.072 -0.449 -0.382 -0.636 -0.007 -0.561 -0.168 -0.180 -0.060 -0.100 + 11.393 0.333 0.443 0.311 -0.426 -0.577 -0.696 0.087 -0.560 -0.226 -0.073 0.120 -0.278 + 11.469 0.447 -0.034 0.291 -0.366 -0.541 -0.706 0.007 -0.422 -0.177 -0.173 0.236 -0.393 + 11.601 0.306 -0.176 0.350 -0.463 -0.416 -0.849 -0.046 -0.411 -0.202 -0.224 0.288 -0.307 + 11.256 0.163 -0.398 0.470 -0.283 -0.228 -0.757 -0.023 -0.331 -0.165 -0.345 0.248 -0.301 + 6.980 -0.371 0.293 0.512 -0.152 -0.184 -0.790 -0.041 -0.057 -0.175 -0.115 0.316 -0.060 + 6.410 -0.229 0.285 0.640 -0.156 0.024 -0.618 0.138 -0.005 -0.002 -0.002 0.117 -0.005 + 5.695 0.199 -0.356 0.278 -0.044 -0.076 -0.355 -0.044 -0.103 0.074 -0.033 0.144 -0.111 + 8.185 0.086 -1.310 -0.273 -0.113 -0.099 -0.373 -0.243 -0.230 -0.224 -0.166 -0.115 -0.030 + 8.203 -0.812 -0.416 -0.149 -0.041 -0.082 -0.406 -0.114 -0.130 -0.199 -0.064 -0.275 -0.011 + 7.943 -0.687 0.128 -0.111 -0.333 -0.204 -0.293 0.037 -0.152 0.013 -0.146 -0.105 -0.010 + 9.038 -0.888 -0.162 0.129 -0.260 -0.156 -0.207 0.074 -0.018 -0.089 -0.178 0.032 -0.087 + 10.835 -0.623 -0.631 -0.010 -0.131 -0.136 -0.189 0.094 0.003 -0.115 -0.297 -0.146 -0.156 + 11.252 -0.274 -0.477 -0.028 0.036 -0.063 -0.161 -0.040 -0.030 0.003 -0.233 -0.240 -0.144 + 11.901 0.185 -0.203 0.167 0.175 -0.177 -0.332 -0.255 -0.038 -0.159 -0.327 -0.295 -0.118 + 12.889 0.323 0.006 0.456 0.068 -0.121 -0.487 -0.408 -0.115 -0.164 -0.308 -0.420 -0.379 + 12.295 -0.016 -0.146 0.426 0.136 0.142 -0.435 -0.216 -0.144 -0.120 -0.328 -0.336 -0.236 + 11.379 0.360 -0.351 0.367 0.358 0.046 -0.542 -0.303 -0.279 -0.254 -0.142 -0.428 -0.134 + 11.491 1.387 -0.993 -0.470 -0.048 -0.094 -0.717 -0.317 -0.229 -0.167 -0.065 -0.179 -0.157 + 10.826 2.063 -0.888 -0.392 -0.015 0.125 -0.684 -0.484 -0.152 -0.120 -0.138 -0.050 -0.125 + 9.634 2.231 -0.412 -0.447 0.100 0.255 -0.505 -0.360 -0.096 -0.245 -0.076 -0.197 -0.162 + 6.751 1.689 0.261 -0.084 0.084 0.053 -0.242 -0.085 -0.041 -0.056 -0.053 -0.030 -0.172 + 4.712 0.916 0.113 0.087 0.166 0.257 -0.186 -0.265 -0.121 0.032 0.051 0.038 -0.073 + 4.437 0.707 -0.021 -0.007 0.020 0.099 -0.133 -0.233 -0.065 0.007 0.066 0.053 -0.093 + 4.397 0.436 -0.127 -0.018 -0.104 -0.103 -0.358 -0.273 -0.103 0.181 0.140 0.034 0.103 + 4.320 0.273 -0.022 -0.054 0.072 -0.044 -0.338 -0.228 -0.073 -0.004 0.051 -0.041 -0.021 + 4.669 0.354 -0.053 -0.015 0.034 -0.012 -0.192 -0.286 -0.233 0.154 -0.138 -0.003 -0.072 + 7.301 -0.821 0.030 0.268 0.042 -0.103 -0.371 -0.046 -0.147 -0.183 0.064 -0.149 0.115 + 11.949 0.506 0.314 0.046 -0.393 -0.228 -0.159 -0.103 -0.334 -0.364 -0.140 -0.250 -0.047 + 13.324 1.251 0.109 0.475 -0.511 -0.401 0.183 -0.258 -0.392 -0.313 -0.230 -0.174 -0.121 + 11.355 0.944 0.417 0.581 -0.565 -0.515 0.069 -0.215 -0.226 -0.125 -0.282 -0.141 -0.081 + 9.620 -0.447 0.458 0.626 -0.093 -0.393 0.206 -0.335 -0.494 -0.190 -0.273 -0.117 -0.132 + 10.564 -0.336 0.276 0.406 -0.429 -0.204 -0.184 -0.346 -0.363 -0.262 -0.248 -0.176 -0.121 + 11.376 -0.395 0.202 0.721 -0.212 -0.388 -0.263 -0.071 -0.635 -0.136 -0.230 -0.198 -0.082 + 11.711 -0.592 0.273 0.736 -0.261 -0.237 -0.179 -0.156 -0.756 -0.015 -0.379 -0.135 -0.142 + 11.497 -0.610 0.296 0.783 -0.190 -0.421 0.016 -0.087 -0.873 -0.010 -0.321 -0.246 -0.101 + 10.798 -0.298 -0.085 0.652 0.258 -0.532 -0.186 0.181 -0.975 -0.118 -0.392 -0.204 -0.085 + 9.375 0.454 -0.086 0.514 0.541 -0.466 -0.313 0.425 -0.790 0.061 -0.242 -0.201 -0.133 + 6.856 0.679 0.266 -0.054 0.279 0.026 -0.098 0.089 -0.304 0.095 -0.074 -0.161 -0.056 + 8.812 -0.817 0.372 0.065 0.538 -0.350 -0.029 0.032 0.108 -0.213 -0.510 0.049 -0.037 + 9.128 -1.081 0.092 0.190 0.337 -0.236 0.064 -0.074 0.108 -0.332 -0.463 0.118 -0.060 + 8.169 -0.686 -0.169 0.068 0.156 -0.028 0.070 -0.085 0.081 -0.338 -0.389 0.045 0.016 + 11.383 -0.451 0.220 0.125 -0.100 -0.029 -0.107 -0.124 -0.192 -0.152 -0.156 -0.019 -0.059 + 12.338 1.087 0.193 -0.326 -0.398 -0.210 -0.181 -0.044 -0.188 -0.263 -0.196 -0.016 0.095 + 12.217 1.199 0.340 -0.037 -0.444 -0.054 -0.317 -0.193 -0.255 -0.309 -0.239 -0.160 0.003 + 11.685 1.316 0.505 -0.122 -0.615 0.183 -0.164 -0.151 -0.090 -0.369 -0.189 -0.184 -0.039 + 11.456 1.061 0.806 -0.379 -1.006 0.011 0.024 -0.323 -0.145 -0.504 -0.105 -0.210 0.045 + 10.755 1.080 0.864 -0.761 -0.810 -0.030 -0.022 -0.324 -0.084 -0.411 -0.087 -0.049 0.116 + 10.392 0.409 0.813 -0.771 -0.663 -0.085 -0.085 -0.157 -0.266 -0.311 -0.239 0.157 -0.196 + 7.433 0.308 0.668 0.004 -0.393 -0.014 0.065 0.078 -0.207 -0.140 -0.356 0.112 -0.092 + 5.759 0.213 0.596 0.441 -0.180 -0.221 -0.029 -0.168 -0.023 0.001 -0.228 0.020 -0.106 + 5.406 0.176 0.379 0.341 -0.041 -0.114 0.052 -0.287 -0.003 -0.195 -0.096 0.185 -0.083 + 8.733 -0.955 -0.070 0.415 -0.383 -0.022 -0.329 0.046 0.139 0.054 -0.114 -0.164 -0.129 + 10.833 -1.265 0.198 0.016 -0.410 0.057 -0.377 0.000 0.104 0.106 -0.109 -0.207 -0.200 + 10.010 -0.655 0.933 -0.084 -0.469 -0.012 -0.430 -0.292 -0.410 -0.133 -0.196 -0.051 -0.295 + 10.716 0.175 0.467 -0.075 -0.333 0.338 -0.099 -0.455 -0.556 -0.180 -0.040 0.123 -0.259 + 8.316 0.966 0.539 -0.314 -0.152 0.440 -0.179 -0.524 -0.380 -0.185 0.137 0.129 -0.217 + 5.649 0.920 0.348 0.149 -0.080 0.166 0.207 -0.245 -0.385 -0.162 -0.014 -0.278 -0.146 + 5.456 0.974 0.666 -0.080 -0.058 0.168 0.314 -0.054 -0.314 -0.286 -0.177 -0.024 -0.081 + 5.630 1.083 0.441 -0.005 -0.053 0.100 0.148 -0.127 -0.249 -0.144 -0.114 -0.157 -0.024 + 5.907 1.020 0.356 0.232 -0.248 0.007 0.237 -0.047 -0.303 -0.208 -0.056 0.064 -0.057 + 5.389 0.718 0.391 0.262 -0.048 -0.127 0.196 0.035 -0.099 -0.061 -0.046 0.001 -0.251 + 5.171 0.750 0.359 0.073 0.059 -0.047 0.046 -0.012 0.007 0.012 -0.195 -0.003 -0.111 + 4.904 0.637 0.149 0.235 0.306 0.118 0.208 0.049 -0.212 0.024 -0.088 -0.168 -0.155 + 10.083 0.530 0.477 0.096 -0.048 -0.088 -0.323 -0.180 -0.320 -0.280 -0.050 -0.179 -0.114 + 11.638 1.295 0.704 0.036 -0.097 -0.191 -0.429 -0.129 -0.274 -0.452 -0.160 -0.320 -0.122 + 10.327 1.142 0.803 0.053 -0.074 -0.008 -0.470 -0.177 -0.156 -0.182 -0.035 -0.243 -0.155 + 8.350 0.519 0.829 0.119 -0.182 -0.123 -0.268 -0.057 -0.178 0.029 -0.071 -0.259 -0.137 + 8.132 0.755 1.058 -0.600 -0.729 -0.398 -0.367 -0.124 -0.275 -0.044 -0.447 -0.081 -0.250 + 9.134 0.535 1.161 -0.490 -0.836 -0.288 -0.476 -0.117 -0.156 -0.023 -0.539 -0.055 -0.260 + 9.578 0.330 1.198 -0.589 -1.068 -0.262 -0.150 -0.056 -0.179 -0.350 -0.322 -0.200 -0.227 + 10.687 0.241 0.387 -0.290 -1.002 0.031 -0.222 -0.300 -0.013 -0.512 -0.413 -0.210 -0.200 + 11.299 0.567 -0.254 -0.057 -0.560 0.287 -0.146 -0.802 -0.054 -0.285 -0.358 -0.093 -0.139 + 11.792 0.647 -0.783 0.738 -0.343 -0.022 -0.483 -0.603 -0.126 -0.193 -0.289 -0.169 -0.131 + 11.913 0.158 -0.501 1.148 -0.342 -0.362 -0.551 -0.238 -0.367 -0.165 -0.397 -0.136 -0.102 + 11.352 -0.182 0.060 1.122 -0.198 -0.643 -0.216 -0.210 -0.618 0.097 -0.522 -0.058 -0.335 + 10.868 -0.603 0.502 0.883 -0.059 -0.341 -0.292 -0.164 -0.560 0.113 -0.416 -0.136 -0.278 + 10.294 -0.502 0.380 1.092 -0.384 -0.133 -0.188 -0.161 -0.519 -0.010 -0.251 -0.183 -0.264 + 10.089 -0.558 0.452 0.878 -0.206 -0.197 -0.047 -0.170 -0.662 0.047 -0.274 -0.133 -0.118 + 10.541 -0.826 0.464 0.843 -0.207 -0.298 -0.163 0.040 -0.631 0.133 -0.351 -0.133 -0.130 + 10.212 -0.585 -0.078 1.051 -0.015 -0.481 -0.153 0.132 -0.795 0.271 -0.267 -0.146 -0.225 + 7.920 0.205 -0.198 0.776 0.089 -0.378 -0.025 0.498 -0.752 0.101 -0.414 -0.235 -0.264 + 5.151 0.967 0.195 0.299 -0.099 0.070 0.276 0.202 -0.360 -0.012 -0.235 -0.156 -0.054 + 5.110 0.885 0.027 0.482 -0.169 -0.244 0.286 0.053 -0.326 0.154 -0.053 -0.234 -0.122 + 4.715 0.717 0.032 0.442 0.117 -0.126 0.128 0.033 -0.432 0.168 -0.129 -0.037 -0.038 + 4.512 0.527 -0.157 0.287 0.050 -0.110 -0.008 -0.107 -0.421 0.016 -0.150 -0.005 -0.067 + 3.970 0.500 -0.361 0.129 0.072 -0.059 0.058 -0.114 -0.399 0.122 0.029 0.131 -0.109 + 7.173 -0.372 -0.103 0.096 0.022 0.046 -0.069 -0.040 -0.119 -0.162 -0.062 -0.025 -0.113 + 12.427 1.041 0.148 -0.088 -0.209 -0.353 -0.319 -0.092 0.032 -0.163 -0.243 -0.178 -0.369 + 12.816 1.317 0.143 0.118 -0.198 -0.289 -0.343 -0.152 0.035 -0.214 -0.281 -0.132 -0.308 + 11.136 0.884 0.817 0.234 -0.297 -0.220 -0.170 -0.009 -0.042 -0.215 -0.302 -0.064 -0.343 + 9.090 -0.086 0.740 0.590 0.042 -0.067 0.070 0.003 -0.015 -0.189 -0.130 0.040 -0.262 + 7.857 -0.546 0.455 0.270 -0.069 0.009 0.049 0.085 -0.064 -0.168 -0.149 -0.003 -0.193 + 7.605 -0.881 0.350 0.362 0.149 -0.319 -0.164 -0.086 0.092 -0.107 -0.238 -0.026 -0.059 + 8.491 -0.520 0.172 0.299 0.021 -0.208 -0.047 0.012 0.000 -0.206 -0.272 -0.009 -0.050 + 9.777 -0.309 0.177 0.212 -0.048 -0.240 -0.038 0.028 0.111 -0.395 -0.313 0.034 -0.108 + 8.922 -0.383 0.291 0.170 -0.063 -0.302 -0.199 -0.134 0.050 -0.047 -0.348 0.121 -0.235 + 9.686 0.176 -0.235 0.449 -0.480 -0.504 -0.404 -0.216 -0.086 0.117 -0.305 0.057 -0.157 + 11.714 0.399 -0.550 0.075 -0.437 -0.390 -0.724 0.170 -0.047 0.172 -0.438 0.245 -0.235 + 12.048 0.423 -0.422 -0.051 -0.557 -0.306 -1.009 0.378 0.053 0.109 -0.247 0.309 -0.343 + 11.953 0.269 -0.282 0.264 -0.867 -0.116 -0.784 0.304 -0.013 0.030 -0.123 0.242 -0.440 + 12.238 0.213 -0.112 0.007 -0.658 -0.148 -0.841 0.495 -0.259 0.094 -0.105 0.175 -0.500 + 12.414 -0.077 -0.005 0.222 -0.724 -0.237 -0.590 0.361 -0.355 0.180 -0.021 -0.038 -0.386 + 12.095 -0.254 0.256 0.273 -0.863 -0.170 -0.397 0.137 -0.268 0.178 -0.014 -0.148 -0.287 + 11.288 -0.342 0.408 0.341 -0.877 -0.150 -0.183 -0.083 -0.155 0.250 -0.124 -0.149 -0.091 + 10.396 -0.195 0.497 0.014 -0.260 -0.356 -0.164 0.015 -0.078 0.019 -0.140 -0.194 -0.020 + 9.806 0.246 0.479 -0.245 0.174 -0.550 -0.188 0.177 -0.233 0.046 -0.126 -0.303 0.066 + 9.770 0.367 0.409 -0.291 0.189 -0.574 -0.217 0.284 -0.406 0.176 -0.178 -0.320 0.052 + 9.640 0.351 0.406 -0.303 0.238 -0.609 -0.139 0.279 -0.479 0.183 -0.258 -0.305 0.087 + 9.101 0.377 0.452 -0.143 -0.026 -0.735 0.178 0.137 -0.415 0.150 -0.228 -0.385 0.128 + 8.672 0.209 0.429 0.191 0.064 -0.921 0.083 0.139 -0.320 -0.003 -0.245 -0.341 0.153 + 8.800 0.316 -0.080 0.503 -0.097 -0.680 -0.242 0.159 -0.134 0.131 -0.139 -0.368 0.130 + 9.461 0.230 -0.336 0.264 0.241 -0.500 -0.477 -0.211 -0.121 0.130 -0.223 -0.285 0.070 + 9.739 -0.200 -0.032 0.010 0.192 -0.597 -0.423 -0.141 0.127 -0.022 -0.285 -0.144 0.028 + 9.075 -0.836 0.411 0.004 0.045 -0.537 -0.215 -0.018 0.089 -0.168 -0.212 -0.125 0.079 + 8.575 -1.213 0.504 0.020 0.111 -0.321 -0.271 -0.189 -0.060 -0.151 -0.195 -0.019 0.138 + 8.875 -1.127 0.339 -0.418 0.164 -0.312 -0.143 -0.044 -0.079 -0.140 -0.194 -0.034 -0.074 + 8.976 -1.376 0.383 -0.404 0.143 -0.286 -0.117 -0.019 -0.049 -0.020 -0.146 -0.124 -0.120 + 9.366 -1.387 0.267 -0.497 0.159 -0.358 -0.061 -0.008 -0.001 -0.041 -0.113 -0.100 -0.004 + 10.069 -1.109 0.494 -0.106 0.199 -0.342 -0.316 -0.133 0.068 -0.113 -0.192 -0.053 -0.090 + 10.990 -0.533 0.454 -0.121 0.047 -0.517 -0.369 -0.376 -0.168 0.080 -0.255 -0.072 -0.184 + 11.445 0.634 -0.146 -0.168 -0.489 -0.606 -0.341 -0.454 0.055 0.006 -0.379 0.192 -0.075 + 11.822 1.042 -0.737 -0.189 -0.429 -0.569 -0.399 -0.379 0.137 0.130 -0.351 0.209 -0.094 + 12.763 0.637 -0.912 -0.122 -0.471 -0.474 -0.470 -0.065 0.126 0.031 -0.265 0.029 -0.065 + 13.210 0.304 -0.873 -0.086 -0.479 -0.606 -0.527 0.143 0.108 0.019 -0.331 0.141 -0.127 + 12.880 0.236 -0.628 -0.185 -0.593 -0.567 -0.547 0.295 0.003 0.163 -0.461 0.190 -0.247 + 13.180 0.385 -0.789 -0.373 -0.571 -0.294 -0.775 0.233 0.175 0.052 -0.409 0.083 -0.242 + 13.209 0.434 -0.914 -0.440 -0.441 -0.426 -0.670 0.331 0.043 0.002 -0.267 -0.069 -0.155 + 13.574 0.067 -0.988 -0.252 -0.559 -0.449 -0.462 0.262 0.040 0.127 -0.396 -0.072 -0.123 + 13.058 0.359 -0.955 -0.441 -0.550 -0.299 -0.676 0.317 -0.060 0.284 -0.451 -0.086 -0.146 + 13.524 0.139 -1.084 -0.299 -0.558 -0.495 -0.467 0.271 0.028 0.200 -0.437 -0.130 -0.151 + 13.290 0.254 -1.039 -0.330 -0.614 -0.401 -0.490 0.287 -0.074 0.260 -0.396 -0.201 -0.141 + 13.655 0.205 -1.037 -0.379 -0.541 -0.379 -0.505 0.314 -0.192 0.323 -0.415 -0.243 -0.092 + 13.496 0.181 -1.052 -0.366 -0.596 -0.270 -0.584 0.323 -0.129 0.233 -0.367 -0.246 -0.022 + 13.144 0.378 -1.141 -0.473 -0.484 -0.301 -0.556 0.363 -0.132 0.236 -0.424 -0.210 -0.044 + 12.916 0.407 -1.040 -0.720 -0.373 -0.384 -0.417 0.291 -0.133 0.312 -0.411 -0.377 -0.035 + 13.068 0.506 -1.219 -0.660 -0.345 -0.303 -0.540 0.312 -0.160 0.384 -0.440 -0.425 -0.011 + 13.037 0.651 -1.218 -0.785 -0.285 -0.128 -0.582 0.181 -0.191 0.446 -0.419 -0.415 -0.043 + 12.900 0.859 -1.484 -0.600 -0.336 -0.332 -0.318 -0.024 -0.089 0.358 -0.313 -0.349 -0.167 + 12.268 0.918 -1.090 -0.921 -0.390 -0.187 -0.377 0.026 -0.190 0.428 -0.260 -0.422 -0.114 + 11.905 0.947 -0.866 -1.118 -0.400 -0.076 -0.458 0.014 -0.265 0.536 -0.217 -0.403 -0.175 + 12.206 0.903 -0.716 -0.995 -0.576 -0.023 -0.479 -0.022 -0.360 0.506 -0.098 -0.327 -0.237 + 11.894 1.098 -0.646 -1.107 -0.396 -0.061 -0.550 0.031 -0.372 0.333 0.035 -0.286 -0.228 + 11.337 1.112 -0.548 -1.051 -0.421 -0.141 -0.342 -0.147 -0.386 0.304 0.102 -0.214 -0.290 + 11.228 1.039 -0.606 -0.897 -0.519 -0.192 -0.363 -0.211 -0.437 0.354 0.175 -0.199 -0.298 + 11.475 0.933 -0.626 -0.618 -0.570 -0.157 -0.449 -0.230 -0.493 0.344 0.131 -0.189 -0.222 + 11.276 0.929 -0.582 -0.791 -0.335 -0.391 -0.418 -0.509 -0.299 0.186 0.060 -0.146 -0.181 + 9.294 0.824 -0.371 -0.760 -0.232 -0.448 -0.425 -0.664 -0.161 0.251 0.241 -0.073 -0.112 + 9.192 0.856 -0.257 -0.896 0.099 -0.383 -0.500 -0.718 -0.113 0.040 0.064 -0.070 -0.132 + 6.106 0.458 -0.415 -0.514 -0.084 -0.570 -0.447 -0.677 0.033 0.523 0.227 -0.051 -0.108 + 5.629 0.521 -0.665 -0.292 -0.104 -0.428 -0.412 -0.235 0.038 0.405 0.043 -0.107 -0.169 + 5.260 0.801 -0.665 -0.329 -0.271 -0.358 -0.292 -0.127 0.049 0.395 0.109 -0.060 -0.096 + 4.905 0.591 -0.646 -0.404 -0.335 -0.373 -0.409 -0.078 0.153 0.295 0.120 -0.048 -0.062 + 4.594 0.645 -0.516 -0.436 -0.236 -0.296 -0.463 0.047 0.222 0.337 0.051 0.007 -0.154 + 4.446 0.565 -0.449 -0.146 -0.395 -0.501 -0.525 -0.094 0.004 0.312 0.056 -0.024 -0.187 + 4.660 0.647 -0.621 -0.303 -0.158 -0.224 -0.302 0.052 0.173 0.251 -0.013 0.057 -0.092 + 5.013 0.753 -0.504 -0.231 -0.174 -0.179 -0.356 -0.198 -0.021 0.323 0.051 0.075 -0.308 + 4.935 0.374 -0.693 -0.235 -0.091 -0.117 -0.066 -0.218 0.045 0.273 0.028 0.139 -0.356 + 8.945 -0.232 -0.631 -0.491 -0.153 -0.326 -0.379 -0.181 -0.042 -0.056 0.052 -0.046 -0.203 + 9.304 -0.204 -0.379 -0.498 -0.029 -0.342 -0.412 -0.210 0.019 -0.049 0.064 -0.056 -0.253 + 8.363 -0.937 -0.213 -0.451 0.139 -0.287 -0.224 -0.185 -0.105 -0.002 0.083 -0.194 -0.078 + 9.424 -1.376 -0.420 -0.595 0.305 -0.173 0.004 -0.043 -0.066 -0.175 -0.055 -0.043 0.015 + 10.188 -1.235 -0.385 -0.588 0.088 -0.228 -0.155 -0.042 0.048 0.034 -0.005 0.006 0.056 + 10.468 -1.092 -0.200 -0.558 0.000 -0.266 -0.280 -0.266 -0.082 -0.177 -0.087 0.016 0.021 + 10.581 -1.053 -0.156 -0.551 0.071 -0.234 -0.043 -0.149 -0.058 -0.185 -0.223 -0.096 -0.080 + 10.604 -0.849 -0.004 -0.721 -0.034 -0.337 -0.229 0.026 -0.096 -0.129 -0.178 0.034 -0.119 + 10.499 -1.006 -0.100 -0.615 -0.105 -0.318 -0.286 -0.049 0.137 0.028 -0.220 0.012 0.076 + 10.414 -1.059 -0.165 -0.658 -0.161 -0.373 -0.241 -0.104 0.070 0.112 -0.371 0.082 -0.076 + 10.356 -0.153 0.386 -0.455 -0.209 -0.449 -0.524 -0.487 0.032 0.094 -0.394 -0.061 -0.016 + 10.454 0.668 0.258 -0.355 -0.474 -0.116 -0.575 -0.788 0.106 0.002 -0.229 0.079 -0.018 + 11.092 0.648 0.183 -0.468 -0.598 0.141 -0.769 -0.807 0.048 0.265 -0.393 0.176 -0.130 + 11.967 0.382 0.152 -0.425 -0.516 -0.144 -0.680 -0.631 0.031 0.352 -0.479 0.119 -0.128 + 12.271 0.245 -0.091 -0.392 -0.456 -0.272 -0.649 -0.560 0.159 0.243 -0.402 0.070 -0.155 + 12.497 0.031 -0.235 -0.349 -0.486 -0.446 -0.588 -0.462 0.233 0.219 -0.352 0.065 -0.076 + 12.430 0.070 -0.268 -0.300 -0.543 -0.404 -0.612 -0.380 0.183 0.292 -0.364 0.039 -0.067 + 12.602 0.099 -0.313 -0.254 -0.636 -0.296 -0.570 -0.349 0.164 0.274 -0.335 -0.139 -0.023 + 12.733 0.094 -0.602 -0.270 -0.559 -0.247 -0.538 -0.375 0.210 0.223 -0.323 -0.143 -0.030 + 11.723 0.468 -0.523 -0.474 -0.621 -0.053 -0.718 -0.311 0.232 0.296 -0.278 -0.101 -0.028 + 12.619 0.220 -0.712 -0.366 -0.586 -0.238 -0.566 -0.297 0.194 0.256 -0.242 -0.199 -0.011 + 12.507 0.418 -0.647 -0.398 -0.591 -0.212 -0.499 -0.357 0.180 0.269 -0.298 -0.272 0.027 + 11.900 0.785 -0.740 -0.454 -0.544 -0.113 -0.595 -0.253 0.101 0.236 -0.257 -0.231 -0.087 + 11.446 0.945 -0.755 -0.613 -0.454 -0.088 -0.615 -0.373 0.181 0.304 -0.259 -0.250 -0.009 + 12.129 0.725 -0.923 -0.389 -0.492 -0.217 -0.519 -0.431 0.214 0.260 -0.191 -0.258 -0.024 + 12.381 0.645 -0.864 -0.347 -0.551 -0.154 -0.525 -0.334 0.133 0.153 -0.142 -0.266 -0.032 + 12.259 0.639 -0.928 -0.225 -0.637 -0.183 -0.318 -0.375 0.109 0.168 -0.219 -0.201 -0.092 + 12.049 0.540 -1.082 -0.207 -0.659 -0.172 -0.189 -0.414 0.240 0.096 -0.120 -0.246 -0.062 + 12.116 0.256 -1.080 -0.202 -0.621 -0.156 -0.088 -0.414 0.303 0.049 -0.108 -0.242 -0.211 + 11.589 0.191 -0.912 -0.177 -0.438 -0.169 -0.166 -0.318 0.374 0.077 -0.026 -0.127 -0.269 + 10.907 0.335 -0.829 -0.177 -0.270 -0.045 -0.091 -0.535 0.350 -0.092 0.026 -0.163 -0.416 + 9.577 0.560 -0.563 -0.354 -0.138 0.078 -0.124 -0.491 0.320 -0.142 0.037 -0.264 -0.453 + 8.491 0.609 -0.369 -0.376 -0.119 0.108 -0.014 -0.411 0.333 -0.175 0.144 -0.223 -0.446 + 7.301 0.233 -0.197 -0.228 -0.067 0.072 -0.011 -0.252 0.250 -0.230 -0.067 -0.102 -0.345 + 6.841 -0.141 -0.379 -0.507 -0.045 0.305 0.068 0.073 0.185 -0.032 -0.095 -0.243 -0.267 + 6.163 -0.259 -0.069 -0.453 -0.042 0.136 -0.177 -0.020 0.307 0.044 -0.100 -0.147 -0.286 + 5.608 -0.264 -0.210 -0.551 -0.158 -0.141 -0.145 -0.021 -0.075 0.077 0.007 -0.091 -0.058 + 5.305 -0.174 0.068 -0.297 -0.303 -0.246 -0.125 -0.070 -0.056 0.137 -0.134 -0.131 -0.008 + 5.293 -0.022 -0.250 -0.056 -0.071 -0.210 -0.335 -0.203 -0.065 0.127 -0.051 0.040 -0.161 + 5.846 -0.242 -0.060 -0.133 0.158 -0.326 -0.406 -0.071 -0.001 0.260 -0.088 -0.018 -0.057 + 5.722 -0.461 -0.303 -0.148 0.258 -0.144 -0.435 -0.139 0.170 0.255 -0.256 -0.028 -0.035 + 5.552 -0.327 -0.346 -0.172 0.299 -0.129 -0.327 0.028 0.005 0.167 -0.169 0.007 0.009 + 4.639 0.010 -0.377 0.002 -0.004 -0.136 -0.104 -0.050 -0.053 0.181 0.019 -0.101 -0.032 + 6.442 -0.299 -0.303 -0.005 -0.063 -0.078 -0.325 -0.036 0.018 -0.036 -0.116 -0.081 0.045 + 9.697 -0.419 -0.363 -0.242 -0.073 -0.081 -0.467 -0.123 -0.001 -0.154 -0.184 -0.118 -0.014 + 7.534 -0.307 -0.298 -0.083 0.043 -0.073 -0.476 -0.079 0.073 -0.190 -0.226 -0.129 -0.037 + 7.416 -0.231 -0.376 0.119 0.077 -0.016 -0.287 -0.083 -0.113 -0.320 -0.509 -0.189 0.031 + 7.879 -0.187 -0.539 -0.168 -0.084 -0.066 -0.356 -0.096 0.057 -0.173 -0.201 0.030 -0.150 + 8.240 -0.392 -0.538 -0.255 0.002 -0.213 -0.331 -0.150 -0.187 -0.197 -0.124 0.046 -0.067 + 8.608 -0.521 -0.506 -0.191 0.174 -0.195 -0.284 -0.028 -0.088 -0.016 -0.347 -0.198 -0.098 + 8.859 -0.686 -0.544 -0.268 -0.095 -0.174 -0.255 0.108 -0.131 -0.148 -0.206 0.190 0.044 + 9.050 -0.642 -0.598 -0.212 -0.133 -0.342 -0.452 -0.025 -0.285 -0.307 -0.277 0.175 -0.036 + 9.031 -0.707 -0.427 -0.223 -0.102 -0.463 -0.352 -0.020 -0.181 -0.225 -0.230 0.176 -0.044 + 8.925 -0.784 -0.472 0.051 -0.062 -0.447 -0.409 -0.064 -0.060 -0.297 -0.354 0.087 -0.107 + 9.281 -0.728 -0.360 -0.225 -0.230 -0.448 -0.343 0.063 -0.075 -0.355 -0.162 0.122 -0.056 + 9.357 -1.005 -0.525 -0.150 -0.192 -0.324 -0.256 0.065 -0.011 -0.357 -0.217 0.174 0.115 + 9.324 -1.003 -0.495 -0.232 -0.197 -0.371 -0.295 -0.010 -0.022 -0.210 -0.164 0.270 0.158 + 8.996 -0.906 -0.433 -0.172 -0.165 -0.440 -0.427 -0.061 -0.103 0.037 -0.074 0.244 -0.074 + 8.713 -0.941 -0.492 -0.188 -0.273 -0.358 -0.247 0.084 -0.064 0.103 -0.190 0.206 -0.115 + 8.861 -0.983 -0.474 -0.134 -0.358 -0.400 -0.568 0.005 -0.010 0.035 -0.110 0.209 -0.034 + 9.167 -0.871 -0.181 0.037 -0.175 -0.553 -0.500 -0.090 0.001 -0.118 -0.349 0.010 -0.084 + 9.165 -0.966 -0.388 0.222 -0.252 -0.620 -0.508 -0.024 0.149 -0.057 -0.361 -0.008 -0.081 + 9.123 -1.212 -0.440 -0.040 -0.423 -0.570 -0.573 -0.008 -0.016 -0.091 -0.248 0.047 0.141 + 9.133 -1.156 -0.321 -0.195 -0.292 -0.366 -0.411 0.163 -0.024 -0.079 -0.188 -0.046 -0.020 + 8.889 -1.079 -0.261 -0.322 -0.253 -0.273 -0.466 0.152 0.145 0.114 -0.204 -0.048 -0.035 + 9.134 -1.137 -0.340 -0.129 -0.127 -0.444 -0.568 -0.000 0.171 -0.164 -0.215 0.074 -0.063 + 9.275 -0.969 -0.439 -0.284 -0.063 -0.432 -0.509 0.018 0.060 -0.131 -0.185 0.115 -0.215 + 10.042 -0.736 -0.289 -0.206 -0.168 -0.239 -0.432 0.247 0.044 0.115 -0.260 0.044 -0.057 + 9.973 -0.963 -0.340 -0.068 -0.135 -0.388 -0.408 0.297 0.031 0.063 -0.227 -0.051 -0.116 + 9.686 -1.139 -0.345 -0.095 -0.037 -0.706 -0.741 0.087 -0.120 -0.120 -0.243 0.114 -0.234 + 9.338 -1.395 -0.219 -0.040 -0.168 -0.611 -0.622 0.117 0.032 -0.002 -0.213 0.236 -0.050 + 8.999 -1.189 -0.304 0.101 -0.120 -0.661 -0.653 0.013 0.026 0.064 -0.101 0.242 -0.044 + 8.963 -0.737 -0.277 0.089 -0.038 -0.607 -0.660 0.048 -0.203 -0.044 -0.086 0.285 -0.059 + 8.543 -0.797 -0.470 0.040 0.082 -0.683 -0.694 -0.097 -0.113 -0.005 0.011 0.451 0.009 + 8.472 -1.065 -0.178 0.023 0.138 -0.748 -0.719 -0.174 -0.062 -0.024 -0.201 0.337 0.059 + 8.529 -0.872 0.037 0.200 0.189 -0.843 -0.763 -0.038 -0.139 0.004 -0.101 0.240 0.051 + 8.750 -0.772 0.047 0.015 0.011 -0.680 -0.613 -0.018 -0.175 0.004 -0.228 0.216 0.156 + 8.384 -0.788 0.190 0.079 0.174 -0.720 -0.761 0.081 -0.250 -0.157 -0.213 0.211 0.114 + 8.063 -0.617 -0.085 0.102 0.155 -0.417 -0.705 0.045 -0.279 -0.037 -0.268 0.115 0.068 + 8.130 -0.447 -0.074 -0.067 0.226 -0.165 -0.659 -0.107 -0.073 0.075 -0.025 0.270 -0.034 + 8.093 -0.409 0.165 0.051 0.308 -0.107 -0.516 -0.143 -0.062 -0.061 -0.218 0.188 -0.036 + 7.655 -0.656 0.173 -0.043 0.347 -0.465 -0.755 -0.078 -0.172 -0.197 -0.087 0.212 0.082 + 7.020 -0.641 0.274 0.022 0.314 -0.601 -0.583 -0.140 -0.118 -0.023 -0.218 0.191 -0.013 + 7.369 -0.540 0.090 0.078 0.483 -0.513 -0.451 0.031 -0.065 -0.243 -0.311 0.227 0.021 + 7.110 -0.393 -0.156 0.197 0.345 -0.316 -0.435 0.082 0.059 -0.114 -0.296 0.341 -0.010 + 6.737 -0.270 0.158 0.302 0.279 -0.169 -0.402 0.108 0.059 -0.035 -0.161 0.187 -0.160 + 6.364 -0.350 -0.137 0.158 0.273 -0.177 -0.440 -0.095 -0.118 -0.163 -0.230 0.139 0.097 + 5.834 -0.119 -0.097 0.339 0.345 -0.324 -0.387 -0.006 -0.037 -0.372 -0.243 0.127 0.003 + 5.323 -0.346 -0.095 0.088 0.466 -0.369 -0.420 0.182 -0.058 -0.318 -0.122 0.288 0.161 + 8.295 1.523 0.206 -0.141 -0.242 -0.592 -0.185 -0.102 -0.245 -0.071 -0.224 -0.091 -0.101 + 9.605 1.779 0.113 0.039 -0.407 -0.682 -0.112 -0.272 -0.203 -0.105 -0.203 -0.097 -0.169 + 6.943 1.593 0.562 -0.422 -0.656 -0.742 -0.355 -0.218 -0.131 -0.169 -0.241 0.066 0.076 + 6.327 1.065 0.733 -0.200 -0.629 -0.477 -0.283 0.140 0.085 -0.102 -0.018 0.001 -0.146 + 5.730 0.761 0.789 -0.008 -0.372 -0.306 -0.161 0.038 -0.130 -0.245 -0.025 0.057 -0.138 + 4.844 0.322 0.608 0.067 -0.157 -0.357 -0.310 -0.053 0.086 -0.012 0.013 0.029 -0.128 + 4.485 0.457 0.361 -0.052 -0.017 -0.039 -0.210 0.045 -0.154 -0.117 -0.060 -0.055 -0.160 + 4.414 0.332 0.144 0.114 -0.013 0.004 -0.164 0.112 0.011 -0.022 -0.137 -0.169 -0.386 + 4.795 0.428 0.298 0.155 0.066 -0.096 -0.188 0.046 -0.254 0.054 -0.078 -0.030 -0.267 + 4.800 0.205 0.159 -0.026 -0.046 -0.121 -0.126 0.144 -0.159 -0.120 -0.085 0.111 -0.246 + 4.759 0.189 0.175 0.083 -0.110 -0.221 -0.230 0.087 -0.180 -0.093 -0.037 0.107 -0.080 + 4.869 0.305 0.028 -0.096 -0.072 -0.179 -0.204 0.022 -0.068 -0.241 -0.060 0.038 -0.061 + 5.460 0.682 0.269 -0.049 -0.083 -0.341 -0.313 -0.017 -0.019 -0.091 -0.074 -0.017 0.076 + 5.547 0.739 0.300 0.056 -0.204 -0.440 -0.386 -0.125 -0.048 -0.028 -0.182 -0.085 -0.136 + 5.675 0.732 0.247 -0.021 -0.072 -0.304 -0.347 -0.005 -0.125 -0.053 -0.182 0.094 -0.086 + 7.641 1.243 0.038 -0.413 0.127 -0.023 -0.441 -0.181 -0.225 0.042 -0.233 0.004 -0.027 + 6.811 1.083 0.190 0.012 0.045 0.029 -0.221 -0.246 -0.137 0.098 -0.213 -0.135 -0.170 + 5.370 0.126 0.171 -0.003 -0.330 -0.207 -0.381 -0.216 -0.139 0.034 -0.123 -0.175 -0.175 + 6.707 -0.229 0.069 -0.008 -0.286 -0.248 -0.394 -0.254 -0.164 -0.080 -0.175 -0.158 -0.097 + 7.454 -0.382 0.175 0.118 -0.233 -0.137 -0.356 -0.171 -0.129 -0.103 -0.127 -0.149 -0.067 + 7.103 -0.240 -0.003 0.015 -0.139 -0.260 -0.338 -0.211 -0.159 0.179 -0.031 0.025 -0.037 + 7.110 -0.200 0.207 -0.008 -0.209 -0.296 -0.407 -0.424 -0.222 -0.221 -0.059 0.176 -0.054 + 8.203 -0.086 0.532 0.303 -0.197 -0.235 -0.443 -0.315 -0.247 -0.139 -0.109 -0.046 -0.052 + 8.305 -0.439 0.293 0.123 -0.175 0.106 -0.353 -0.279 -0.049 -0.189 -0.173 -0.060 -0.190 + 8.560 -0.137 0.291 0.124 0.048 0.008 -0.390 -0.319 0.020 -0.033 -0.242 -0.215 -0.077 + 8.091 0.324 0.029 0.013 0.155 0.046 -0.434 -0.352 -0.020 -0.237 -0.352 -0.092 -0.016 + 6.359 0.785 -0.223 0.037 0.208 0.062 -0.262 -0.381 -0.209 -0.025 -0.392 -0.159 -0.083 + 5.565 0.976 0.112 0.031 0.283 0.208 0.025 -0.139 -0.179 -0.135 -0.336 -0.341 -0.207 + 3.744 -0.041 0.164 0.242 0.241 0.038 0.022 -0.066 -0.013 -0.051 -0.159 -0.110 -0.105 + 3.514 -0.282 0.065 0.223 0.112 0.190 -0.201 0.016 -0.172 -0.166 -0.022 -0.263 -0.086 + 3.838 -0.153 0.014 0.167 -0.039 0.062 -0.078 0.039 -0.109 -0.115 -0.086 -0.171 0.005 + 3.466 -0.142 -0.011 0.022 0.153 -0.028 -0.101 0.075 -0.188 -0.042 -0.117 -0.099 -0.033 + 3.942 0.333 0.027 0.335 -0.075 -0.001 -0.117 0.010 -0.100 -0.040 -0.136 -0.009 -0.046 + 3.548 0.081 0.049 0.365 -0.115 0.062 -0.061 -0.044 -0.080 -0.048 -0.315 0.011 -0.032 + 3.609 0.044 0.117 0.213 0.063 0.164 -0.024 -0.034 -0.093 -0.104 -0.216 0.215 0.014 + 3.509 -0.093 0.184 0.215 0.090 0.070 -0.070 -0.048 0.144 0.129 -0.082 0.141 0.019 + 3.748 0.089 0.137 0.103 0.010 0.043 -0.129 0.060 -0.105 0.093 -0.189 -0.079 -0.081 + 4.011 0.256 -0.104 -0.064 -0.099 0.130 -0.174 -0.098 0.014 0.068 -0.091 0.054 -0.031 + 4.135 0.058 -0.089 0.044 -0.097 0.126 -0.136 -0.050 -0.162 -0.048 0.027 0.072 -0.107 + 4.372 0.222 -0.158 -0.057 0.026 -0.154 -0.300 0.042 -0.064 -0.132 -0.102 0.024 -0.155 + 4.821 0.238 0.011 0.075 0.013 -0.177 -0.326 0.143 -0.015 -0.071 -0.163 0.017 0.037 + 4.736 0.091 -0.162 0.222 0.198 -0.187 -0.471 0.071 -0.028 0.012 0.013 0.096 -0.048 + 4.740 0.012 -0.179 0.167 0.163 -0.304 -0.383 -0.001 -0.017 -0.044 -0.040 0.204 0.079 + 5.252 0.114 -0.193 0.140 0.036 -0.386 -0.394 0.238 0.081 -0.087 -0.085 0.086 -0.094 + 5.462 0.160 -0.379 0.251 0.293 -0.317 -0.352 0.178 -0.016 -0.144 -0.101 0.058 -0.057 + 5.495 0.085 -0.538 0.278 0.263 -0.342 -0.387 0.184 0.090 -0.134 -0.119 0.181 -0.072 + 5.551 -0.044 -0.596 0.028 0.151 -0.250 -0.428 0.245 -0.011 -0.145 0.008 0.022 -0.019 + 5.370 -0.211 -0.402 0.144 0.315 -0.504 -0.471 0.173 0.021 -0.256 -0.203 0.092 0.021 + 5.412 -0.487 -0.635 0.174 0.486 -0.455 -0.493 0.107 -0.039 -0.171 0.170 0.229 -0.064 + 5.127 -0.729 -0.489 0.291 0.381 -0.382 -0.352 0.024 0.032 -0.074 0.187 0.157 -0.000 + 5.287 -0.809 -0.379 0.263 0.507 -0.181 -0.338 0.049 -0.049 -0.198 0.124 0.073 -0.053 + 5.497 -0.687 -0.534 0.162 0.459 -0.282 -0.437 0.236 0.142 -0.305 0.097 0.276 -0.059 + 5.588 -0.669 -0.670 0.200 0.261 -0.292 -0.307 0.194 0.059 -0.325 0.139 0.171 -0.021 + 5.475 -0.727 -0.471 0.173 0.578 -0.334 -0.239 0.239 -0.004 -0.206 0.029 0.137 -0.087 + 5.744 -0.774 -0.683 0.127 0.261 -0.075 -0.325 0.386 0.264 -0.067 0.060 -0.091 -0.120 + 6.038 -0.531 -0.556 0.016 0.102 -0.275 -0.362 0.368 0.209 -0.073 0.096 0.029 -0.091 + 5.636 -0.749 -0.723 0.100 0.296 -0.013 -0.277 0.027 0.171 -0.165 -0.101 0.052 -0.004 + 6.003 -0.499 -0.497 0.281 0.398 -0.019 -0.229 0.308 -0.019 -0.259 0.039 -0.027 -0.122 + 5.960 -0.539 -0.538 0.084 0.372 -0.159 -0.424 0.096 0.087 -0.232 -0.012 0.003 -0.079 + 5.753 -0.511 -0.323 0.226 0.248 -0.471 -0.369 0.151 0.177 -0.295 -0.022 0.012 0.048 + 5.460 -0.282 -0.246 0.551 0.295 -0.414 -0.350 0.129 0.094 -0.360 -0.136 0.142 -0.114 + 5.751 -0.342 -0.408 0.499 0.330 -0.287 -0.459 0.136 0.035 -0.384 -0.134 0.111 -0.069 + 5.759 -0.350 -0.393 0.336 0.206 -0.399 -0.535 0.254 0.254 -0.104 -0.097 0.004 -0.190 + 5.970 -0.213 -0.243 0.259 0.092 -0.397 -0.492 0.076 0.103 -0.216 0.025 -0.008 0.030 + 6.081 0.355 0.250 0.647 0.489 -0.292 -0.750 0.049 0.031 -0.160 0.178 0.011 -0.138 + 5.941 0.129 0.186 0.639 0.383 -0.127 -0.557 0.005 0.042 0.056 0.040 0.053 -0.052 + 5.704 -0.222 -0.232 0.578 0.199 -0.525 -0.394 0.232 0.127 -0.325 -0.002 0.068 -0.158 + 5.687 -0.258 -0.326 0.141 0.076 -0.509 -0.218 0.366 0.046 -0.385 -0.029 0.063 0.007 + 5.490 -0.375 -0.340 0.112 -0.038 -0.380 -0.253 0.218 -0.052 -0.323 -0.128 -0.057 -0.034 + 5.068 -0.417 -0.491 0.102 0.248 -0.410 -0.389 0.305 -0.209 -0.350 0.090 -0.060 -0.030 + 5.181 -0.265 -0.562 0.031 0.278 -0.416 -0.469 0.224 -0.034 -0.235 -0.032 0.153 -0.015 + 5.087 -0.139 -0.476 0.071 0.231 -0.298 -0.419 -0.019 0.058 -0.283 -0.087 0.182 -0.003 + 4.749 -0.062 -0.304 0.131 0.050 -0.338 -0.447 0.078 0.047 -0.146 -0.004 0.025 -0.095 + 4.331 0.017 -0.201 0.301 -0.163 -0.246 -0.470 0.160 0.134 -0.171 -0.017 0.088 0.003 + 4.455 0.029 -0.137 0.108 -0.277 -0.119 -0.251 0.042 -0.096 -0.197 -0.227 0.066 0.090 + 5.134 0.053 -0.173 0.046 -0.184 -0.172 -0.405 0.131 0.145 0.026 -0.023 0.064 -0.112 + 4.753 -0.009 -0.089 0.168 -0.058 -0.070 -0.284 0.174 0.116 -0.132 -0.159 -0.036 -0.139 + 4.484 0.082 -0.113 0.296 -0.035 -0.327 -0.585 0.094 0.171 -0.053 -0.043 0.087 -0.153 + 3.843 -0.328 -0.151 0.566 0.321 0.020 -0.391 0.085 -0.014 -0.326 -0.157 0.048 0.012 + 3.689 0.058 -0.172 0.368 0.126 0.001 -0.270 0.088 -0.065 -0.179 -0.123 0.144 -0.016 + 3.375 0.407 -0.125 0.291 0.070 -0.050 -0.163 0.236 0.060 -0.006 -0.223 0.030 -0.252 + 3.012 0.420 -0.189 0.262 -0.174 -0.024 -0.321 0.131 0.156 -0.031 -0.170 -0.016 -0.085 + 3.506 0.581 -0.014 0.378 -0.020 -0.407 -0.437 0.054 0.143 0.100 -0.162 -0.005 -0.045 + 3.276 0.074 -0.072 0.185 0.053 -0.324 -0.464 0.044 -0.014 -0.004 -0.124 0.082 0.183 + 4.262 0.018 0.406 0.145 -0.043 -0.061 -0.240 -0.085 -0.153 -0.006 -0.188 -0.165 0.009 + 4.740 -0.576 0.334 -0.131 -0.259 -0.279 -0.341 -0.079 0.049 -0.100 -0.049 0.098 0.016 + 4.815 -0.440 0.431 0.115 -0.299 -0.055 -0.315 -0.135 -0.167 -0.001 0.114 0.044 -0.019 + 6.046 -0.496 0.213 0.022 -0.024 -0.009 -0.236 0.022 -0.141 -0.057 0.009 0.212 -0.166 + 7.282 -0.101 0.208 -0.201 -0.036 0.001 -0.188 0.014 -0.107 0.005 -0.131 -0.049 -0.208 + 6.409 -0.143 0.308 -0.115 -0.056 -0.121 -0.227 -0.161 -0.208 0.021 -0.240 0.157 -0.046 + 5.369 -0.468 0.641 0.322 -0.194 -0.155 -0.376 -0.075 -0.173 -0.086 -0.039 0.082 -0.095 + 4.766 -0.523 0.663 0.180 -0.038 -0.134 -0.226 0.052 -0.152 -0.161 -0.103 -0.001 -0.096 + 5.264 -0.407 0.407 -0.053 -0.241 -0.308 -0.331 -0.091 -0.121 -0.034 -0.194 0.072 -0.030 + 5.330 -0.288 0.314 -0.101 -0.262 -0.289 -0.263 -0.105 -0.056 0.017 -0.064 0.042 -0.123 + 5.652 -0.244 0.824 -0.232 -0.121 -0.014 -0.159 0.049 -0.197 -0.133 -0.164 0.080 -0.283 + 6.157 -0.491 0.295 -0.103 -0.016 -0.065 0.066 -0.044 -0.237 -0.052 -0.205 -0.019 -0.134 + 7.177 -0.159 -0.030 -0.228 -0.183 -0.171 -0.029 -0.273 -0.021 -0.044 -0.083 -0.135 -0.009 + 6.355 0.402 -0.267 -0.603 -0.617 -0.203 -0.266 -0.201 0.024 0.125 -0.144 -0.041 0.020 + 6.743 0.662 -0.355 -0.547 -0.386 -0.183 -0.560 -0.210 0.207 0.114 -0.386 -0.143 0.012 + 7.488 0.469 -0.630 -0.276 -0.589 -0.487 -0.654 -0.414 0.187 0.217 -0.420 -0.105 0.069 + 8.087 0.137 -0.674 -0.154 -0.575 -0.559 -0.616 -0.471 0.010 0.285 0.050 -0.093 -0.009 + 7.878 0.219 -0.581 -0.054 -0.417 -0.445 -0.547 -0.471 -0.180 0.222 -0.269 -0.040 0.027 + 7.427 0.174 -0.215 0.036 -0.110 -0.519 -0.611 -0.419 -0.087 0.240 -0.507 0.080 0.165 + 6.659 0.287 -0.149 0.103 -0.182 -0.629 -0.418 -0.144 -0.055 0.188 -0.384 0.015 0.101 + 5.715 0.264 -0.019 -0.005 -0.050 -0.345 -0.249 0.016 0.011 0.074 -0.299 -0.106 0.025 + 4.747 0.110 -0.166 0.036 0.038 -0.243 -0.202 -0.004 0.179 0.339 -0.155 -0.078 0.040 + 4.729 0.335 -0.079 0.059 -0.115 -0.275 -0.133 -0.029 0.053 0.241 -0.205 -0.213 -0.063 + 4.893 0.284 -0.003 0.081 -0.289 -0.311 -0.151 -0.116 0.031 0.170 -0.115 -0.162 -0.058 + 4.873 0.095 -0.040 0.103 -0.156 -0.233 -0.072 -0.209 -0.049 0.093 -0.241 0.103 0.080 + 5.092 -0.108 -0.182 0.244 -0.516 -0.401 -0.191 -0.334 0.047 -0.032 -0.409 0.054 -0.056 + 4.940 -0.346 -0.061 0.206 -0.359 -0.038 0.053 -0.208 0.196 0.118 -0.182 -0.079 -0.067 + 5.250 -0.309 0.057 0.172 -0.433 -0.479 -0.030 -0.312 -0.084 0.095 0.063 0.189 0.055 + 6.094 -0.188 0.168 0.442 -0.659 -0.492 -0.127 -0.427 -0.028 0.093 -0.037 0.205 0.031 + 6.778 -0.313 0.235 0.326 -0.806 -0.584 -0.175 -0.393 -0.186 -0.025 -0.216 0.223 0.018 + 7.099 -0.766 -0.091 0.362 -0.891 -0.634 -0.319 -0.428 -0.245 -0.014 -0.005 0.307 0.029 + 7.486 -0.689 -0.005 0.604 -0.792 -0.612 -0.248 -0.538 -0.403 -0.078 -0.010 0.267 0.016 + 7.570 -0.732 0.106 0.874 -0.575 -0.542 -0.241 -0.646 -0.460 -0.080 -0.052 0.287 0.042 + 7.754 -0.774 0.072 0.734 -0.461 -0.536 -0.403 -0.740 -0.395 0.064 -0.183 0.211 -0.046 + 7.470 -0.661 0.250 0.681 -0.612 -0.473 -0.461 -0.661 -0.459 -0.073 -0.223 0.251 -0.096 + 7.000 -0.390 0.333 0.628 -0.749 -0.622 -0.209 -0.580 -0.399 -0.097 -0.046 0.175 -0.116 + 6.781 0.217 0.697 0.809 -0.371 -0.449 -0.054 -0.455 -0.367 -0.136 -0.202 0.062 -0.184 + 6.345 0.687 0.871 0.708 -0.100 -0.363 -0.210 -0.300 -0.230 -0.064 -0.269 0.082 -0.268 + 5.580 0.169 0.803 0.811 -0.026 -0.235 -0.035 -0.187 -0.412 -0.068 -0.166 0.021 -0.194 + 5.389 0.043 0.504 0.537 -0.170 -0.238 0.037 -0.157 -0.465 -0.319 -0.265 0.068 -0.201 + 5.312 0.229 0.321 0.389 -0.168 -0.065 0.187 -0.131 -0.211 -0.173 -0.224 -0.034 -0.184 + 6.167 0.187 0.357 0.143 -0.267 -0.128 -0.097 -0.244 -0.177 -0.106 -0.124 -0.110 -0.143 + 8.402 1.443 0.551 -0.067 -0.238 -0.156 -0.179 -0.191 -0.349 -0.119 -0.269 -0.200 -0.172 + 7.107 0.993 0.654 0.146 -0.184 -0.079 -0.023 -0.143 -0.276 -0.252 -0.186 -0.152 -0.305 + 6.602 0.409 0.492 -0.302 -0.520 -0.187 -0.046 -0.100 -0.068 -0.134 -0.223 -0.027 -0.229 + 6.446 -0.212 0.097 -0.135 -0.146 -0.049 -0.056 -0.013 -0.020 -0.082 -0.219 -0.063 -0.123 + 6.554 0.286 0.052 0.303 -0.073 -0.175 -0.332 -0.225 -0.028 -0.150 -0.218 0.267 -0.169 + 7.090 0.513 0.118 0.382 -0.244 -0.259 -0.415 -0.383 -0.083 -0.262 -0.440 0.240 -0.078 + 7.571 0.718 -0.019 0.152 -0.058 -0.124 -0.623 -0.337 -0.090 -0.074 -0.379 0.185 0.036 + 7.622 0.625 0.063 -0.055 -0.067 -0.074 -0.532 -0.353 -0.137 -0.192 -0.482 0.023 0.041 + 7.424 0.957 0.076 -0.039 0.047 0.005 -0.438 -0.385 -0.084 -0.207 -0.402 0.029 -0.114 + 6.312 0.846 -0.176 0.158 -0.033 -0.204 -0.392 -0.216 0.011 -0.215 -0.310 0.069 -0.090 + 5.763 0.571 0.032 0.215 -0.063 -0.117 -0.305 -0.176 -0.109 0.005 -0.234 0.036 -0.115 + 5.458 0.837 0.064 0.075 -0.058 -0.016 -0.147 -0.217 -0.176 -0.042 -0.254 -0.155 -0.145 + 5.588 0.961 -0.115 0.077 0.013 0.101 0.045 -0.110 -0.120 -0.120 -0.262 -0.090 -0.070 + 5.552 1.137 0.353 0.325 -0.024 -0.222 -0.124 -0.119 -0.034 -0.288 -0.422 -0.164 -0.208 + 5.442 1.340 0.454 0.397 -0.080 -0.192 0.050 -0.100 -0.101 -0.191 -0.288 -0.146 -0.170 + 5.576 0.734 -0.116 0.340 -0.207 -0.246 -0.273 -0.216 -0.065 -0.120 -0.068 0.135 -0.155 + 7.092 0.574 -0.180 0.362 -0.436 -0.261 -0.368 -0.279 -0.198 -0.204 -0.036 0.397 -0.145 + 7.871 0.081 -0.242 0.342 -0.814 -0.471 -0.410 -0.023 0.010 -0.027 -0.118 0.590 -0.151 + 8.333 -0.052 -0.289 0.462 -0.597 -0.675 -0.501 -0.217 -0.146 -0.134 -0.072 0.573 -0.211 + 8.476 -0.184 -0.293 0.514 -0.510 -0.842 -0.602 -0.048 -0.204 -0.181 0.051 0.607 -0.086 + 8.612 -0.291 -0.190 0.459 -0.632 -0.712 -0.626 -0.278 -0.130 -0.248 0.048 0.588 -0.232 + 8.515 -0.246 -0.145 0.240 -0.724 -0.656 -0.456 -0.107 0.006 -0.155 0.017 0.515 -0.173 + 8.228 -0.140 -0.152 0.031 -0.498 -0.669 -0.323 -0.051 -0.040 -0.097 0.074 0.351 -0.362 + 7.552 -0.100 0.114 0.158 -0.349 -0.712 -0.383 -0.005 0.017 -0.070 0.061 0.406 -0.144 + 7.686 0.441 -0.045 -0.121 -0.347 -0.352 -0.309 -0.153 -0.102 -0.112 0.034 0.271 -0.268 + 6.989 0.571 0.154 -0.034 -0.231 -0.421 -0.431 -0.206 -0.146 -0.255 -0.107 0.317 -0.180 + 6.572 0.425 0.340 0.058 -0.068 -0.218 -0.102 -0.036 -0.261 -0.262 -0.293 0.086 -0.196 + 6.194 0.438 0.489 0.362 -0.281 -0.449 -0.265 -0.132 -0.187 -0.180 -0.096 0.015 -0.124 + 5.979 0.190 0.425 0.191 -0.185 -0.435 -0.393 -0.081 -0.033 -0.272 -0.048 0.362 -0.099 + 6.348 0.181 0.606 0.184 -0.116 -0.242 -0.164 0.063 -0.041 -0.240 -0.077 0.178 -0.136 + 7.835 0.572 -0.021 0.165 0.211 -0.109 0.014 -0.173 -0.171 -0.215 -0.233 0.048 -0.207 + 8.508 0.676 -0.125 0.003 0.172 -0.079 0.137 -0.130 -0.102 -0.348 -0.334 0.064 -0.249 + 6.954 0.470 0.678 -0.120 -0.247 -0.345 -0.001 -0.070 -0.309 -0.058 -0.135 0.026 0.010 + 6.906 0.318 0.811 -0.105 -0.161 -0.205 0.175 -0.029 -0.246 -0.207 -0.208 -0.063 -0.217 + 6.433 -0.088 0.529 0.077 -0.050 -0.258 -0.103 -0.103 -0.125 -0.062 -0.220 0.142 -0.097 + 6.263 -0.170 0.594 -0.210 0.048 -0.137 -0.116 -0.026 -0.114 -0.145 -0.062 -0.108 -0.114 + 6.425 -0.206 0.504 -0.093 0.218 -0.278 -0.152 -0.295 -0.160 -0.183 -0.195 -0.158 -0.038 + 6.187 -0.338 0.330 0.117 0.044 -0.462 -0.163 0.081 -0.052 -0.173 -0.214 -0.103 -0.166 + 9.371 0.075 -0.070 0.401 -0.124 -0.621 0.033 -0.081 0.148 -0.419 -0.101 -0.137 -0.261 + 10.106 0.554 -0.249 0.217 0.012 -0.419 0.144 -0.108 0.149 -0.456 -0.207 -0.196 -0.255 + 9.610 1.266 -0.376 -0.009 0.280 -0.547 0.076 0.180 -0.213 -0.333 -0.312 -0.236 -0.266 + 9.976 1.239 -0.326 -0.034 0.301 -0.515 -0.130 0.450 -0.303 -0.378 -0.300 -0.274 -0.292 + 11.175 1.168 -0.355 -0.089 -0.024 -0.464 -0.281 0.214 -0.187 -0.277 -0.140 -0.138 -0.201 + 12.305 1.602 -0.443 -0.402 -0.089 -0.540 -0.441 0.068 -0.163 -0.281 -0.128 -0.093 -0.192 + 12.056 2.452 -0.735 -0.755 -0.339 -0.531 -0.541 0.211 -0.251 -0.329 -0.237 0.148 0.088 + 12.772 2.519 -0.637 -0.893 -0.269 -0.355 -0.828 0.446 -0.366 -0.351 -0.334 0.102 0.107 + 12.632 2.773 -0.687 -1.037 -0.268 -0.226 -0.869 0.367 -0.287 -0.255 -0.336 -0.021 0.192 + 12.895 2.610 -0.629 -1.114 -0.260 -0.032 -0.896 0.179 -0.227 -0.192 -0.269 -0.107 0.241 + 13.334 2.437 -0.708 -1.079 -0.165 -0.079 -0.813 0.077 -0.331 -0.111 -0.268 0.006 0.108 + 13.130 2.735 -1.022 -1.025 -0.003 -0.076 -0.930 0.080 -0.463 0.037 -0.256 0.032 0.037 + 13.193 2.490 -0.889 -0.987 0.091 -0.122 -0.897 -0.096 -0.367 0.040 -0.244 0.093 -0.095 + 13.250 2.286 -0.949 -0.818 0.212 -0.085 -0.986 -0.217 -0.275 -0.022 -0.168 -0.012 -0.144 + 12.588 2.104 -1.025 -0.406 0.349 0.139 -1.210 -0.306 -0.137 -0.112 -0.185 -0.088 -0.173 + 11.961 1.560 -0.887 -0.305 0.626 0.089 -1.207 -0.307 -0.006 -0.292 -0.203 -0.133 -0.131 + 10.819 1.151 -0.802 -0.139 0.568 0.030 -1.114 -0.127 0.168 -0.220 -0.346 -0.168 -0.172 + 9.487 0.719 -0.703 0.285 0.651 -0.072 -0.895 0.063 0.180 -0.412 -0.480 0.021 -0.135 + 9.379 0.714 -0.517 0.437 0.582 -0.339 -0.996 0.228 0.030 -0.428 -0.333 0.117 -0.108 + 11.485 0.123 -0.551 0.401 0.437 -0.336 -0.819 0.311 -0.418 -0.549 -0.100 0.031 -0.127 + 13.238 0.289 -0.467 0.371 0.317 -0.475 -1.196 0.406 -0.499 -0.471 -0.103 0.036 -0.233 + 13.655 0.519 -0.687 0.273 0.007 -0.570 -1.165 0.430 -0.267 -0.247 -0.034 0.135 -0.251 + 13.110 1.002 -0.858 0.180 0.093 -0.520 -1.160 0.369 -0.118 -0.215 -0.158 0.171 -0.263 + 11.163 0.947 -0.726 0.247 -0.048 -0.567 -0.805 0.091 0.112 0.018 -0.359 0.167 -0.019 + 10.379 0.969 -0.549 0.200 0.012 -0.282 -0.352 -0.476 0.176 0.231 -0.762 0.094 0.055 + 10.406 1.003 -0.542 0.055 0.023 -0.195 -0.287 -0.585 0.149 0.311 -0.715 0.019 -0.050 + 10.437 1.111 -0.655 0.005 -0.069 -0.229 -0.077 -0.578 0.089 0.243 -0.514 0.088 -0.214 + 10.516 1.092 -0.634 0.081 -0.309 -0.186 0.014 -0.480 -0.106 0.196 -0.392 0.203 -0.242 + 11.326 0.855 -0.505 -0.211 -0.210 -0.209 0.006 -0.411 -0.113 0.141 -0.400 0.227 -0.263 + 11.542 1.164 -0.759 -0.280 -0.141 -0.193 -0.147 -0.272 -0.089 0.072 -0.389 0.249 -0.140 + 11.529 1.214 -0.747 -0.063 -0.280 -0.372 -0.076 -0.174 0.019 -0.161 -0.232 0.062 -0.116 + 11.562 0.640 -0.658 0.217 -0.453 -0.431 -0.006 -0.090 -0.082 0.066 -0.283 -0.028 0.003 + 11.413 0.708 -0.692 0.171 -0.354 -0.544 -0.114 -0.066 -0.000 0.048 -0.167 -0.061 0.012 + 10.868 1.390 -1.026 0.094 -0.480 -0.701 0.014 -0.108 0.161 0.038 -0.076 -0.172 -0.073 + 10.675 1.905 -1.297 -0.092 -0.451 -0.885 0.128 -0.053 0.076 0.092 -0.223 -0.058 -0.151 + 10.695 1.878 -1.331 -0.196 -0.525 -0.924 0.170 0.052 0.099 0.156 -0.288 -0.022 -0.174 + 10.776 1.665 -1.387 -0.093 -0.456 -0.805 0.242 0.033 0.075 0.053 -0.270 -0.046 -0.076 + 10.858 1.748 -1.516 0.043 -0.597 -0.700 0.211 0.081 0.059 -0.018 -0.309 -0.022 -0.066 + 10.719 1.674 -1.426 -0.070 -0.395 -0.716 0.121 0.164 -0.031 -0.090 -0.202 -0.062 -0.087 + 11.886 0.841 -0.855 -0.584 -0.528 -0.563 0.090 0.395 -0.395 -0.041 0.186 -0.208 0.049 + 12.149 0.725 -0.817 -0.697 -0.550 -0.407 -0.013 0.283 -0.362 0.080 0.196 -0.215 -0.116 + 11.383 0.828 -0.654 -0.916 -0.576 -0.274 -0.386 -0.022 -0.434 0.091 -0.004 -0.124 0.036 + 8.525 0.738 -0.459 -0.326 0.174 -0.336 -0.259 -0.054 -0.379 0.132 0.023 -0.038 0.051 + 8.744 -0.011 -0.393 -0.236 0.420 -0.462 -0.132 -0.109 -0.061 0.024 -0.092 -0.101 -0.123 + 9.911 -0.463 -0.635 -0.516 0.284 -0.525 -0.292 -0.116 -0.219 -0.002 -0.072 0.000 0.036 + 8.869 -1.254 0.129 -0.417 0.090 -0.355 -0.227 -0.245 0.025 0.034 -0.068 -0.178 0.042 + 9.461 -1.898 0.415 -0.269 0.311 -0.264 -0.363 -0.129 -0.050 -0.096 -0.105 -0.136 -0.090 + 9.767 -1.761 0.445 -0.485 0.368 -0.298 -0.178 -0.047 -0.016 0.093 -0.039 0.034 -0.095 + 9.378 -1.864 0.202 -0.487 0.196 -0.314 0.039 0.109 0.069 -0.033 -0.267 -0.021 0.018 + 7.904 -1.451 0.285 -0.774 0.174 -0.588 -0.288 0.191 0.032 -0.062 -0.203 -0.028 -0.200 + 6.418 -0.506 0.278 -0.148 0.073 -0.483 0.019 0.035 -0.040 0.137 -0.058 -0.189 -0.164 + 5.943 0.084 -0.128 -0.122 0.079 -0.396 -0.061 -0.090 0.051 0.103 0.075 -0.077 -0.086 + 6.409 -0.116 -0.198 -0.149 0.368 -0.333 -0.180 -0.160 -0.110 0.090 -0.136 0.054 -0.015 + 9.486 -0.737 -0.313 -0.433 0.158 -0.417 -0.171 0.075 -0.315 -0.106 -0.285 0.068 -0.254 + 10.902 -0.998 0.045 -0.588 -0.076 -0.399 -0.378 -0.033 -0.310 -0.159 -0.206 0.043 -0.072 + 10.524 -0.887 0.107 -0.408 -0.295 -0.286 -0.498 -0.089 0.205 -0.093 -0.086 -0.031 0.192 + 11.670 0.729 -0.456 0.065 -0.215 -0.203 -0.547 -0.241 -0.078 -0.094 -0.184 -0.195 0.101 + 11.097 1.376 -1.007 0.366 -0.157 -0.421 -0.347 -0.466 -0.070 -0.013 -0.273 -0.007 -0.029 + 10.264 1.192 -0.872 0.300 -0.040 -0.424 -0.203 -0.459 -0.128 0.008 -0.121 -0.075 -0.148 + 8.932 0.719 -0.305 0.537 0.157 -0.321 -0.033 -0.330 -0.228 -0.043 -0.162 -0.094 -0.348 + 8.949 0.690 -0.322 0.613 0.209 -0.342 -0.183 -0.358 -0.246 0.073 -0.129 0.014 -0.411 + 8.952 0.805 -0.440 0.583 0.246 -0.361 -0.211 -0.390 -0.211 -0.053 -0.029 -0.115 -0.342 + 8.917 0.918 -0.489 0.479 0.260 -0.371 -0.190 -0.283 -0.253 -0.140 0.038 -0.222 -0.354 + 10.711 0.948 -0.817 0.034 0.418 -0.462 -0.557 -0.228 -0.132 0.026 -0.030 -0.311 0.004 + 11.579 0.954 -1.090 0.446 0.058 -0.646 -0.722 -0.060 -0.032 -0.030 -0.211 -0.026 0.121 + 11.978 0.680 -0.816 0.412 -0.082 -0.876 -0.634 0.054 -0.114 -0.055 -0.144 0.140 0.030 + 12.274 0.444 -0.557 0.410 -0.196 -0.958 -0.524 0.095 -0.261 -0.043 -0.074 0.151 -0.100 + 12.254 0.507 -0.459 0.388 -0.257 -0.934 -0.396 -0.019 -0.336 -0.045 -0.081 0.134 -0.180 + 11.880 0.143 0.031 0.553 -0.374 -0.770 -0.377 -0.037 -0.400 -0.148 -0.161 0.149 -0.214 + 10.478 -0.052 0.372 0.619 -0.494 -0.751 -0.423 -0.117 -0.403 -0.185 -0.050 0.121 -0.208 + 9.841 0.046 0.037 0.550 -0.258 -0.492 -0.242 -0.396 -0.323 -0.182 -0.125 -0.069 -0.000 + 7.444 -0.152 -0.277 0.217 -0.074 -0.469 -0.055 -0.233 -0.148 -0.044 -0.119 -0.064 -0.009 + 5.424 -0.202 0.223 0.059 0.043 -0.542 -0.519 -0.100 -0.068 0.036 -0.068 -0.064 -0.214 + 6.716 -0.569 -0.025 0.077 0.034 -0.534 -0.216 -0.126 -0.121 0.134 -0.096 0.089 0.008 + 10.339 -1.068 -0.542 0.266 -0.061 -0.425 -0.163 -0.306 -0.194 0.004 -0.166 0.034 -0.030 + 10.834 -0.759 -0.302 0.157 -0.142 -0.370 -0.346 -0.472 -0.257 -0.038 -0.260 0.109 -0.021 + 10.564 0.186 0.241 0.762 -0.319 -0.715 -0.523 -0.089 -0.505 -0.097 -0.199 -0.040 -0.168 + 11.980 0.613 0.174 0.174 -0.381 -0.500 -0.930 0.226 -0.678 0.013 -0.271 0.129 -0.150 + 12.078 1.051 -0.517 0.010 -0.033 -0.801 -0.899 0.248 -0.510 0.002 -0.239 0.189 -0.063 + 11.513 1.110 -0.555 0.017 -0.049 -0.895 -0.804 0.102 -0.305 -0.017 -0.257 0.256 -0.081 + 10.529 0.993 -0.222 -0.217 -0.041 -0.704 -0.865 -0.120 -0.305 0.109 -0.474 0.192 0.127 + 7.572 0.758 0.234 0.165 0.099 -0.359 -0.277 -0.157 -0.231 -0.076 -0.214 -0.122 -0.025 + 7.424 0.040 0.311 0.279 -0.087 -0.323 -0.336 0.135 -0.333 -0.124 -0.011 -0.097 -0.025 + 9.985 -0.364 -0.762 0.052 -0.198 -0.631 -0.333 0.313 -0.375 -0.212 0.046 0.045 -0.067 + 11.187 -0.141 -0.561 0.146 0.002 -0.598 -0.448 0.295 -0.309 -0.194 -0.182 0.020 -0.143 + 10.975 0.361 -0.791 -0.113 0.363 0.026 -0.403 0.310 -0.112 -0.124 -0.245 -0.080 -0.041 + 11.761 -0.513 -0.771 -0.396 0.174 0.260 0.037 0.114 -0.045 -0.167 -0.125 -0.104 -0.035 + 11.098 -0.354 -0.658 -0.472 0.103 0.125 0.065 0.117 -0.404 -0.185 0.078 -0.224 0.136 + 11.221 0.634 -0.281 -0.074 0.116 0.080 0.056 0.091 -0.455 -0.280 -0.308 -0.258 -0.016 + 11.692 0.009 -0.463 0.064 0.093 0.356 -0.169 0.213 -0.458 -0.044 0.073 -0.548 0.033 + 11.744 -0.566 -0.873 -0.160 -0.384 0.272 -0.182 0.272 -0.435 -0.054 0.327 -0.512 0.131 + 11.159 -0.297 -0.606 -0.118 -0.273 0.323 -0.126 0.286 -0.519 -0.012 0.084 -0.518 -0.150 + 10.777 0.635 -0.397 -0.438 -0.208 0.259 -0.065 0.337 -0.622 -0.109 -0.261 -0.423 -0.261 + 10.596 1.494 -0.335 -0.410 -0.372 -0.072 -0.107 0.132 -0.483 0.107 -0.121 -0.272 -0.218 + 11.031 2.177 -0.661 -1.086 -0.638 -0.057 -0.235 0.158 -0.417 -0.097 -0.036 -0.089 -0.086 + 11.408 2.365 -1.206 -1.039 -0.293 -0.230 -0.664 0.572 -0.569 -0.203 0.211 -0.084 -0.277 + 11.475 2.240 -1.286 -1.023 -0.283 -0.194 -0.666 0.470 -0.583 -0.130 0.278 -0.072 -0.231 + 11.666 2.062 -1.211 -1.123 -0.275 -0.135 -0.740 0.356 -0.455 -0.112 0.235 -0.029 -0.175 + 11.950 2.039 -1.320 -1.078 -0.161 -0.093 -0.861 0.268 -0.361 -0.107 0.212 -0.141 -0.034 + 11.783 2.211 -1.401 -1.168 0.029 -0.081 -0.932 0.185 -0.314 0.035 0.017 -0.129 0.103 + 11.299 2.182 -1.322 -1.194 0.007 -0.001 -0.956 0.079 -0.315 0.115 -0.016 -0.022 0.001 + 11.386 1.796 -1.131 -1.279 0.060 -0.033 -1.007 -0.037 -0.172 0.125 0.003 -0.040 -0.018 + 11.557 1.855 -1.152 -1.195 -0.000 0.071 -1.159 -0.095 -0.117 0.142 -0.049 -0.087 0.103 + 11.702 1.809 -1.229 -1.123 -0.003 0.085 -1.117 -0.179 -0.086 0.107 -0.003 -0.150 0.091 + 11.354 1.814 -1.289 -1.022 0.039 -0.015 -1.131 -0.124 -0.122 0.176 -0.035 -0.150 0.096 + 11.065 1.863 -1.405 -0.940 0.125 -0.079 -1.182 -0.201 -0.020 0.160 -0.013 -0.150 0.123 + 11.556 1.650 -1.434 -0.781 0.222 -0.175 -1.147 -0.309 0.046 0.110 -0.117 -0.107 0.088 + 11.669 1.496 -1.303 -0.700 0.186 -0.185 -1.254 -0.206 0.044 0.066 -0.144 -0.153 0.138 + 11.261 1.413 -1.262 -0.591 0.185 -0.201 -1.371 -0.069 0.117 -0.114 -0.057 -0.088 0.043 + 11.171 1.319 -1.260 -0.489 0.252 -0.257 -1.428 -0.080 0.073 -0.129 -0.099 -0.031 0.059 + 11.434 1.393 -1.266 -0.393 0.245 -0.243 -1.428 -0.058 0.054 -0.274 -0.056 -0.123 0.152 + 11.589 1.188 -1.226 -0.172 0.110 -0.086 -1.483 0.036 0.047 -0.389 -0.057 -0.121 0.094 + 11.320 0.957 -1.184 0.056 0.187 -0.257 -1.330 -0.006 0.096 -0.475 -0.112 -0.021 0.057 + 11.135 0.892 -1.138 0.091 0.253 -0.377 -1.319 -0.015 0.068 -0.589 -0.056 -0.029 -0.012 + 10.986 0.766 -0.946 0.214 0.255 -0.283 -1.225 0.122 -0.065 -0.556 -0.195 0.001 -0.144 + 8.340 0.463 -0.946 0.281 0.619 -0.311 -0.867 0.397 -0.176 -0.372 -0.169 0.170 -0.199 + 8.969 -0.528 -0.698 0.374 0.294 -0.248 -0.246 0.192 -0.180 -0.199 -0.198 -0.083 -0.148 + 7.974 -0.183 -0.297 0.081 0.578 -0.356 -0.222 0.195 -0.128 -0.314 -0.083 -0.008 0.025 + 7.470 -0.057 0.057 -0.144 0.490 -0.181 -0.507 0.188 -0.110 -0.243 0.045 0.011 0.055 + 9.727 -0.468 -0.518 0.090 -0.037 -0.214 -0.225 -0.018 -0.161 -0.120 -0.132 -0.054 -0.102 + 11.803 -0.559 -0.556 -0.366 -0.310 -0.478 -0.111 -0.046 -0.136 -0.266 -0.248 -0.055 -0.114 + 11.106 -0.476 -0.256 -0.032 -0.257 -0.645 -0.199 -0.138 0.089 -0.388 -0.130 -0.126 -0.059 + 11.157 -0.476 -0.725 0.059 0.162 -0.318 0.055 0.114 0.153 -0.615 -0.163 -0.122 -0.115 + 10.850 -0.158 -1.251 0.183 0.104 -0.564 -0.013 0.155 0.039 -0.383 -0.110 -0.045 -0.043 + 10.948 -0.060 -1.224 0.236 -0.028 -0.323 -0.069 0.118 -0.035 -0.157 -0.071 0.002 0.015 + 11.049 -0.010 -1.093 0.047 0.034 -0.328 -0.220 0.322 0.124 -0.207 0.076 0.136 -0.255 + 10.715 -0.353 -0.894 -0.055 -0.089 -0.234 -0.313 0.018 0.126 -0.311 -0.229 0.311 -0.237 + 10.117 -0.381 -0.707 0.188 0.187 -0.192 -0.282 0.099 0.143 -0.337 -0.397 -0.022 -0.182 + 9.755 0.046 -0.415 0.230 0.420 0.039 -0.261 0.256 0.130 -0.339 -0.460 -0.272 -0.316 + 9.667 -0.328 -0.820 -0.035 0.177 -0.101 -0.348 0.208 -0.155 -0.198 -0.188 0.023 -0.151 + 9.803 -0.394 -0.836 -0.082 0.307 -0.001 -0.286 0.123 0.104 -0.257 -0.244 -0.057 -0.227 + 9.200 -0.289 -0.496 -0.100 0.508 -0.258 -0.358 0.178 0.000 -0.161 -0.258 0.164 0.000 + 8.767 -0.154 -0.396 -0.174 0.244 -0.272 -0.328 0.224 -0.063 -0.183 -0.108 0.252 0.001 + 8.622 -0.020 -0.574 -0.122 0.523 -0.178 -0.141 0.356 0.095 -0.294 -0.479 0.044 -0.045 + 9.122 0.183 -0.406 -0.078 0.420 -0.486 -0.371 0.029 0.098 -0.172 -0.525 0.032 -0.052 + 9.001 0.452 -0.044 -0.014 0.067 -0.483 -0.490 -0.082 0.157 -0.072 -0.500 0.225 -0.206 + 5.841 0.574 -0.038 -0.011 0.006 -0.309 -0.423 -0.208 0.157 0.019 -0.326 0.233 -0.243 + 5.808 0.972 -0.127 -0.086 -0.028 -0.157 -0.234 0.104 -0.107 -0.131 -0.217 -0.029 -0.063 + 5.747 0.622 -0.076 -0.376 -0.092 -0.071 -0.262 -0.020 0.035 0.019 -0.158 0.054 0.124 + 5.143 0.231 -0.325 -0.274 0.082 0.108 -0.082 0.046 -0.084 0.049 -0.106 -0.200 -0.020 + 5.292 0.304 -0.471 -0.195 0.098 -0.116 -0.254 -0.044 -0.002 0.035 -0.022 -0.077 -0.014 + 5.212 0.227 -0.444 -0.170 0.149 0.047 -0.359 -0.119 -0.063 -0.008 0.019 0.021 -0.044 + 8.768 0.424 -1.183 -0.151 -0.127 -0.418 -0.233 -0.243 0.066 -0.082 -0.104 -0.112 0.009 + 11.577 0.178 -1.003 -0.043 -0.360 -0.495 -0.244 -0.284 0.353 -0.089 -0.107 -0.065 0.009 + 12.215 -0.226 -0.727 -0.313 0.052 -0.292 -0.110 -0.167 0.287 -0.169 -0.270 0.068 -0.078 + 13.066 -0.405 -0.243 -0.113 0.107 -0.281 -0.128 -0.022 -0.202 -0.364 -0.304 -0.080 -0.106 + 13.753 -0.071 -0.167 -0.109 0.189 -0.503 -0.191 0.075 -0.205 -0.252 -0.279 -0.152 -0.317 + 12.759 -0.299 -0.219 -0.030 0.377 -0.197 -0.039 -0.103 -0.290 -0.016 -0.255 0.070 -0.215 + 12.041 -0.708 -0.755 0.048 0.478 0.053 -0.011 -0.243 -0.261 0.044 -0.098 0.077 -0.198 + 11.872 -0.792 -1.190 -0.100 0.486 -0.093 -0.133 -0.085 -0.098 0.227 -0.028 0.018 -0.135 + 11.577 -1.030 -1.288 -0.252 0.062 -0.490 -0.347 -0.091 0.246 0.293 0.099 0.027 -0.161 + 11.508 -1.073 -1.117 -0.170 0.150 -0.533 -0.392 0.005 0.433 0.080 0.134 0.060 -0.188 + 11.167 -1.292 -1.087 -0.181 0.166 -0.459 -0.405 -0.120 0.422 0.148 0.124 0.219 -0.067 + 10.781 -1.044 -0.754 -0.169 0.213 -0.337 -0.487 -0.295 0.332 0.137 -0.050 0.037 -0.192 + 10.799 -0.881 -0.533 -0.065 0.297 -0.397 -0.380 -0.255 0.264 0.195 0.023 -0.097 -0.157 + 10.772 -0.945 -0.663 -0.191 0.177 -0.302 -0.354 -0.161 0.206 0.301 0.138 -0.202 -0.083 + 10.693 -1.191 -0.760 -0.229 0.115 -0.621 -0.300 -0.119 0.246 0.241 0.114 -0.035 -0.197 + 10.495 -1.052 -0.686 -0.058 0.177 -0.462 -0.153 -0.095 0.140 0.172 0.269 -0.117 -0.068 + 10.368 -1.248 -0.859 -0.400 0.258 -0.557 -0.211 0.010 0.148 0.202 0.214 -0.024 0.025 + 10.306 -1.057 -0.724 -0.280 0.279 -0.542 -0.238 -0.019 0.113 0.247 0.174 -0.027 -0.066 + 10.199 -1.111 -0.739 -0.380 0.113 -0.422 -0.176 -0.016 -0.004 0.334 0.251 -0.133 -0.040 + 10.366 -1.089 -0.655 -0.235 0.196 -0.627 -0.398 -0.282 -0.132 0.130 0.295 -0.103 -0.166 + 10.551 -1.027 -0.902 -0.108 0.327 -0.670 -0.418 -0.042 -0.096 -0.038 0.232 0.037 -0.368 + 10.386 -1.048 -0.884 -0.110 0.365 -0.765 -0.540 -0.067 0.011 0.005 -0.003 0.009 -0.209 + 10.231 -0.787 -0.842 -0.147 0.327 -0.543 -0.382 -0.076 0.127 -0.053 -0.121 -0.007 -0.152 + 10.445 -0.664 -0.933 -0.065 0.266 -0.680 -0.230 0.055 0.121 -0.146 -0.216 -0.142 -0.064 + 10.081 -0.834 -0.806 -0.180 -0.104 -0.568 -0.195 -0.148 0.026 -0.106 0.001 -0.056 -0.079 + 10.036 -0.759 -0.695 -0.186 0.141 -0.427 -0.214 -0.197 0.114 0.054 -0.253 -0.152 -0.203 + 9.956 -0.615 -0.593 -0.123 -0.041 -0.458 -0.274 -0.101 -0.125 -0.219 -0.220 -0.119 -0.153 + 9.998 -0.559 -0.579 -0.004 0.125 -0.631 -0.295 -0.193 -0.126 -0.270 -0.173 -0.052 -0.115 + 9.858 -0.390 -0.605 0.009 0.090 -0.539 -0.460 -0.191 -0.101 -0.249 -0.215 -0.008 -0.081 + 9.739 -0.320 -0.703 -0.040 0.068 -0.479 -0.375 -0.291 -0.083 -0.242 -0.253 -0.065 -0.075 + 9.685 -0.336 -0.602 0.001 0.160 -0.541 -0.153 -0.228 -0.177 -0.135 -0.114 0.029 -0.178 + 9.613 -0.232 -0.507 -0.028 0.128 -0.578 -0.185 -0.211 -0.075 -0.174 -0.211 -0.008 -0.148 + 9.501 -0.234 -0.515 -0.159 0.160 -0.607 -0.182 -0.186 -0.086 -0.308 -0.073 -0.042 -0.049 + 9.464 -0.205 -0.597 -0.159 0.125 -0.651 -0.160 -0.314 -0.079 -0.195 -0.067 -0.061 -0.069 + 9.339 -0.136 -0.564 -0.134 0.109 -0.659 -0.300 -0.174 -0.035 -0.046 -0.010 -0.034 -0.085 + 8.890 -0.318 -0.635 -0.201 -0.074 -0.553 -0.356 -0.069 0.024 -0.165 -0.154 0.137 -0.066 + 8.897 -0.259 -0.388 -0.126 0.112 -0.649 -0.285 -0.053 0.176 -0.288 -0.116 0.053 -0.074 + 9.255 0.077 -0.157 -0.138 0.090 -0.424 -0.133 -0.105 0.011 -0.225 -0.182 0.083 -0.155 + 9.674 0.506 -0.090 -0.058 0.212 -0.362 -0.180 -0.007 0.014 -0.322 -0.321 0.098 -0.093 + 8.761 -0.134 -0.615 -0.354 -0.005 -0.444 -0.134 0.031 0.210 -0.253 -0.084 0.059 -0.109 + 8.248 -0.428 -0.653 -0.328 -0.229 -0.555 -0.323 -0.120 0.157 -0.082 -0.051 0.030 -0.074 + 7.798 -0.221 -0.571 -0.386 -0.054 -0.601 -0.220 0.006 0.212 -0.068 -0.109 0.111 -0.162 + 7.772 -0.493 -0.646 -0.484 -0.021 -0.475 -0.207 0.056 0.226 0.129 -0.022 0.003 -0.067 + 7.950 -0.343 -0.546 -0.509 -0.432 -0.456 -0.171 0.080 0.338 0.135 0.012 -0.033 -0.058 + 8.031 -0.147 -0.462 -0.512 -0.417 -0.643 -0.256 0.030 0.405 0.080 0.036 0.072 -0.116 + 7.713 -0.227 -0.532 -0.355 -0.217 -0.721 -0.388 -0.044 0.345 0.074 0.170 0.081 -0.135 + 7.767 -0.038 -0.567 -0.499 -0.187 -0.625 -0.352 0.115 0.372 0.081 0.070 0.086 -0.112 + 8.123 0.322 -0.352 -0.212 -0.033 -0.349 -0.333 0.080 0.387 0.021 0.014 0.088 -0.223 + 7.957 0.266 -0.339 -0.073 -0.034 -0.364 -0.387 -0.013 0.360 0.050 0.052 0.155 -0.111 + 7.704 -0.054 -0.732 -0.524 -0.203 -0.217 -0.227 0.092 0.302 -0.074 -0.052 -0.049 -0.049 + 7.492 -0.119 -0.741 -0.427 -0.333 -0.201 -0.158 0.099 0.440 -0.006 -0.144 -0.070 -0.105 + 7.576 -0.127 -0.516 -0.176 -0.252 -0.334 -0.346 0.095 0.265 -0.078 -0.176 -0.183 -0.085 + 7.391 -0.390 -0.641 -0.265 -0.146 -0.315 -0.258 0.105 0.133 -0.020 -0.298 -0.282 -0.092 + 7.450 -0.101 -0.394 -0.161 0.080 -0.137 -0.129 0.129 0.126 -0.045 -0.299 -0.284 -0.272 + 8.509 0.420 0.289 0.339 0.140 -0.154 -0.252 -0.135 -0.107 -0.104 -0.165 -0.140 -0.087 + 8.362 0.177 0.262 0.076 0.105 -0.161 -0.238 -0.055 0.048 -0.023 -0.147 -0.160 -0.123 + 8.717 -0.298 -0.370 -0.165 0.002 -0.087 -0.393 -0.118 -0.031 -0.051 -0.074 0.044 -0.155 + 8.806 -0.349 -0.328 -0.272 -0.218 -0.261 -0.234 -0.224 -0.046 -0.047 -0.116 0.006 -0.032 + 9.443 -0.419 0.003 -0.213 -0.125 -0.127 -0.165 -0.177 -0.146 -0.124 -0.115 -0.034 -0.095 + 10.074 -0.288 -0.022 -0.168 -0.179 -0.048 -0.375 -0.333 -0.167 -0.203 -0.183 -0.136 -0.195 + 10.115 -0.377 -0.248 -0.249 -0.164 -0.183 -0.297 -0.277 -0.042 -0.182 -0.218 -0.102 -0.102 + 9.716 -0.364 -0.129 -0.274 -0.247 -0.062 -0.247 -0.229 0.164 0.051 -0.282 -0.163 -0.100 + 9.498 -0.395 -0.273 -0.462 -0.068 -0.020 -0.209 -0.245 0.107 -0.065 -0.262 -0.121 -0.220 + 9.644 -0.446 -0.331 -0.421 0.043 -0.295 -0.365 -0.082 -0.036 -0.202 -0.238 0.034 -0.133 + 9.931 -0.544 -0.491 -0.180 -0.034 0.041 -0.167 -0.254 0.027 -0.225 -0.232 -0.088 -0.030 + 10.164 -0.558 -0.462 -0.510 -0.283 -0.148 -0.239 -0.229 -0.056 -0.316 -0.317 -0.162 -0.088 + 9.638 -0.907 -0.566 -0.609 -0.257 -0.178 -0.145 -0.045 0.153 -0.090 -0.175 0.011 -0.133 + 9.371 -0.478 -0.394 -0.371 -0.148 -0.275 -0.304 -0.179 0.144 -0.179 -0.273 -0.019 -0.078 + 9.234 -0.601 -0.173 -0.367 -0.131 -0.293 -0.325 -0.246 0.207 0.066 -0.149 -0.006 -0.021 + 9.191 -0.386 0.175 -0.351 -0.393 -0.543 -0.105 -0.136 0.123 0.031 -0.209 -0.185 -0.035 + 9.267 -0.053 0.163 -0.321 -0.091 -0.201 -0.219 -0.273 0.198 0.027 -0.097 -0.171 -0.239 + 8.498 -0.495 -0.012 -0.544 -0.268 -0.448 -0.367 -0.199 0.379 0.105 -0.182 0.003 -0.156 + 8.402 -0.520 -0.251 -0.514 -0.238 -0.573 -0.430 -0.224 0.343 0.030 -0.225 -0.012 -0.185 + 8.575 -0.437 -0.218 -0.438 -0.219 -0.432 -0.310 -0.231 0.300 -0.023 -0.203 -0.024 -0.198 + 8.779 -0.671 -0.368 -0.336 -0.368 -0.343 -0.317 0.037 0.349 -0.015 -0.225 -0.001 -0.145 + 8.543 -0.495 -0.240 -0.242 -0.365 -0.049 0.032 0.116 0.482 0.047 -0.247 -0.048 -0.205 + 8.372 -0.253 -0.384 -0.083 -0.389 -0.277 -0.023 0.057 0.393 0.028 -0.307 -0.064 -0.138 + 8.352 -0.470 -0.358 0.093 -0.558 -0.583 -0.063 0.207 0.259 -0.016 -0.144 -0.029 -0.089 + 7.548 -0.321 -0.119 -0.070 -0.572 -0.271 -0.168 0.123 0.312 0.144 -0.038 -0.031 -0.198 + 11.486 0.663 -0.453 0.070 -0.093 -0.297 -0.307 0.121 -0.179 -0.062 -0.344 -0.077 -0.288 + 12.931 0.653 -0.381 0.021 -0.167 -0.377 -0.388 0.204 -0.217 0.018 -0.311 0.115 -0.280 + 12.308 0.430 -0.435 0.007 -0.159 -0.530 -0.511 0.155 -0.168 0.109 -0.200 0.287 -0.162 + 8.791 0.430 0.041 -0.203 0.019 -0.477 -0.631 0.223 0.013 0.122 -0.225 0.034 -0.145 + 7.720 -0.027 -0.235 -0.141 -0.237 -0.590 -0.347 0.068 0.258 0.160 -0.244 0.034 -0.141 + 7.740 -0.179 -0.420 -0.370 -0.157 -0.603 -0.418 -0.051 0.254 0.092 -0.268 0.100 -0.075 + 8.040 -0.168 -0.329 -0.319 -0.146 -0.486 -0.265 0.022 0.245 -0.089 -0.154 0.106 0.079 + 8.174 -0.295 -0.306 -0.426 -0.123 -0.661 -0.144 0.144 0.285 -0.286 -0.266 0.215 0.131 + 8.268 -0.381 -0.237 -0.471 -0.165 -0.569 -0.191 0.226 0.067 -0.253 -0.153 0.123 0.062 + 8.311 -0.504 -0.239 -0.584 -0.067 -0.475 -0.262 0.130 0.175 -0.272 -0.339 0.047 0.060 + 7.851 -0.685 -0.341 -0.470 -0.117 -0.644 -0.186 0.105 0.359 -0.264 -0.531 0.040 0.119 + 7.863 -0.655 -0.412 -0.372 -0.050 -0.264 -0.150 0.204 0.237 -0.399 -0.396 -0.128 0.046 + 7.981 -0.556 -0.464 -0.252 0.073 -0.549 -0.040 0.171 0.319 -0.285 -0.437 -0.292 0.058 + 8.104 -0.642 -0.442 -0.343 0.099 -0.390 -0.056 0.208 0.302 -0.253 -0.326 -0.205 0.077 + 8.104 -0.451 -0.242 -0.276 -0.019 -0.439 -0.078 0.191 0.271 -0.182 -0.434 -0.277 -0.090 + 7.637 -0.508 -0.389 -0.382 0.071 -0.410 -0.115 0.088 0.219 -0.365 -0.462 -0.381 -0.155 + 7.343 -0.584 -0.454 -0.442 0.065 -0.508 -0.104 0.007 0.376 -0.201 -0.326 -0.375 -0.139 + 7.511 -0.494 -0.330 -0.384 0.086 -0.491 -0.240 -0.053 0.538 -0.030 -0.282 -0.287 -0.174 + 7.427 -0.468 -0.338 -0.356 0.067 -0.602 -0.172 0.114 0.511 -0.180 -0.428 -0.369 -0.193 + 7.801 -0.166 -0.215 -0.573 0.162 -0.661 -0.325 -0.052 0.535 -0.019 -0.354 -0.254 -0.040 + 7.590 -0.220 -0.211 -0.468 0.101 -0.597 -0.284 0.051 0.548 0.110 -0.426 -0.261 0.083 + 7.557 -0.076 -0.327 -0.505 0.151 -0.410 -0.423 0.087 0.444 0.091 -0.174 -0.207 -0.040 + 6.962 -0.459 -0.477 -0.623 0.129 -0.338 -0.403 0.028 0.500 0.014 -0.019 -0.217 -0.203 + 7.017 -0.221 -0.227 -0.412 0.268 -0.510 -0.434 -0.122 0.288 -0.102 -0.070 -0.173 -0.198 + 6.895 -0.244 -0.068 -0.322 0.374 -0.343 -0.220 0.035 0.331 -0.310 -0.079 -0.193 -0.210 + 7.164 0.084 0.166 -0.270 0.282 -0.478 -0.285 -0.206 0.267 -0.074 0.012 -0.040 -0.029 + 7.484 0.077 0.207 -0.101 0.157 -0.317 -0.136 -0.244 -0.102 -0.303 -0.136 -0.001 0.052 + 7.450 -0.013 0.135 -0.042 -0.004 -0.137 -0.374 -0.370 -0.073 -0.305 -0.043 0.106 0.059 + 7.274 0.084 -0.235 -0.062 0.116 0.033 -0.242 -0.446 -0.082 -0.297 -0.060 -0.077 0.011 + 6.689 0.303 -0.067 -0.260 0.148 -0.077 -0.275 -0.122 -0.246 -0.356 -0.003 0.021 0.035 + 5.962 0.432 0.200 -0.180 0.250 -0.409 -0.384 0.045 -0.059 -0.226 -0.024 0.172 0.116 + 5.728 0.418 0.284 -0.252 0.275 -0.245 -0.251 0.152 0.124 -0.084 -0.297 -0.029 -0.044 + 5.647 0.229 -0.027 -0.108 0.019 -0.097 -0.246 -0.152 0.115 0.049 -0.161 0.085 0.200 + 5.869 0.489 -0.051 0.028 0.036 -0.047 -0.453 -0.179 -0.055 -0.116 -0.128 -0.070 -0.047 + 6.111 0.411 0.171 0.053 -0.000 -0.125 -0.265 -0.132 0.017 -0.080 -0.044 0.004 0.017 + 5.833 0.579 -0.001 0.005 0.064 -0.015 -0.315 -0.138 -0.037 0.021 -0.194 -0.016 0.017 + 5.652 0.632 0.040 -0.026 -0.124 -0.028 -0.332 -0.095 0.082 -0.068 -0.107 0.023 0.010 + 6.148 0.566 0.340 0.208 0.174 0.209 -0.360 -0.229 -0.255 -0.098 -0.125 -0.116 -0.053 + 5.936 0.697 0.041 -0.105 0.012 0.149 -0.307 -0.212 -0.392 -0.097 -0.020 -0.021 -0.022 + 5.562 0.389 0.022 -0.147 -0.102 0.035 -0.430 -0.151 -0.367 -0.081 -0.142 0.066 0.113 + 3.965 0.312 -0.164 -0.027 0.039 -0.120 -0.273 -0.060 -0.052 0.204 0.029 -0.145 -0.026 + 3.800 0.270 -0.387 0.129 -0.001 -0.231 -0.245 -0.109 -0.190 -0.083 -0.036 0.073 -0.040 + 3.836 0.540 -0.568 0.119 -0.001 -0.440 -0.329 -0.200 -0.193 0.007 -0.098 -0.063 0.255 + 3.550 0.321 -0.503 0.145 -0.071 -0.284 0.120 -0.154 -0.211 0.260 0.163 -0.150 0.078 + 4.528 -0.099 -0.309 0.277 -0.299 -0.068 -0.031 -0.286 -0.013 0.064 0.074 0.157 -0.066 + 5.192 -0.476 0.014 0.358 -0.543 -0.144 -0.265 -0.105 0.129 0.107 -0.005 0.253 -0.057 + 5.168 -0.671 0.238 0.426 -0.488 -0.169 -0.250 -0.034 0.144 0.068 0.025 0.066 -0.162 + 5.035 -0.667 0.273 0.400 -0.287 -0.059 -0.036 -0.282 0.135 0.219 0.067 0.025 -0.045 + 5.258 -0.777 0.073 0.315 -0.400 -0.285 0.018 -0.227 0.027 0.109 0.007 0.075 0.058 + 5.983 -0.703 -0.182 0.287 -0.390 -0.251 0.253 0.042 -0.137 -0.142 -0.005 0.072 -0.083 + 6.168 -0.581 -0.236 0.137 -0.402 -0.224 0.278 0.126 -0.067 -0.272 -0.116 -0.014 -0.063 + 6.170 -0.367 -0.538 0.292 -0.295 -0.114 0.088 0.162 0.110 -0.148 -0.201 0.097 0.070 + 6.792 -0.202 -0.878 0.180 -0.338 -0.237 -0.165 0.155 0.174 -0.098 -0.121 0.064 -0.169 + 6.893 -0.081 -1.285 0.119 -0.271 0.012 -0.147 0.174 0.256 -0.195 -0.067 0.176 -0.125 + 7.064 -0.129 -1.468 -0.037 -0.166 0.111 -0.343 0.019 0.132 -0.094 -0.028 0.341 0.044 + 7.473 -0.092 -1.505 0.145 -0.236 0.180 -0.465 -0.128 0.340 -0.056 -0.131 0.256 -0.063 + 7.705 -0.112 -1.502 0.123 -0.291 0.348 -0.553 -0.219 0.301 -0.167 -0.156 0.281 0.028 + 7.966 -0.097 -1.494 -0.060 -0.240 0.396 -0.473 -0.213 0.373 -0.171 -0.069 0.251 -0.009 + 8.289 -0.240 -1.255 -0.342 -0.263 0.386 -0.481 -0.255 0.233 -0.222 -0.118 0.127 -0.046 + 8.406 -0.433 -1.187 -0.523 -0.277 0.417 -0.402 -0.146 0.357 -0.124 -0.001 0.108 0.036 + 8.317 -0.458 -1.024 -0.499 -0.314 0.556 -0.461 -0.156 0.249 -0.177 0.112 0.048 0.003 + 7.979 -0.471 -0.830 -0.484 -0.456 0.622 -0.375 -0.187 0.180 -0.167 0.187 0.096 -0.141 + 7.723 -0.423 -0.691 -0.462 -0.411 0.534 -0.304 -0.146 0.204 -0.129 0.090 0.079 -0.119 + 7.335 -0.175 -0.324 -0.309 -0.403 0.346 -0.257 -0.203 0.157 -0.047 -0.076 0.097 -0.092 + 7.167 -0.025 -0.630 -0.019 -0.356 -0.116 -0.067 0.087 0.021 0.004 -0.063 0.011 -0.014 + 7.183 0.295 -0.591 0.086 -0.237 -0.249 -0.226 -0.061 0.063 0.005 -0.129 -0.106 0.007 + 6.862 0.603 -0.556 0.054 -0.234 -0.205 -0.318 -0.032 -0.004 0.058 -0.151 -0.079 -0.040 + 6.170 0.583 -0.572 0.091 -0.207 -0.071 0.058 0.073 0.053 -0.074 -0.158 -0.078 -0.169 + 7.319 1.448 -0.136 0.182 -0.213 -0.117 -0.297 -0.069 -0.060 -0.037 -0.054 -0.109 -0.132 + 7.219 1.238 0.006 0.176 -0.053 -0.159 -0.389 0.025 -0.050 0.075 -0.054 -0.088 -0.064 + 6.224 0.171 -0.650 0.696 0.302 -0.018 -0.207 0.123 -0.116 -0.078 -0.284 -0.125 -0.114 + 6.280 0.208 -0.744 0.731 0.028 -0.268 -0.225 -0.066 -0.144 -0.144 -0.128 0.119 -0.110 + 6.537 0.264 -0.652 0.743 -0.091 -0.458 -0.434 0.039 -0.112 -0.044 -0.045 0.251 -0.041 + 6.861 0.520 -0.676 0.688 -0.112 -0.582 -0.479 0.139 -0.053 -0.208 0.043 0.358 0.094 + 6.616 0.155 -0.966 0.680 0.087 -0.769 -0.794 0.167 -0.031 -0.231 0.138 0.268 0.151 + 6.722 0.417 -0.861 0.493 0.039 -0.650 -0.794 0.222 -0.031 -0.089 -0.028 0.102 0.159 + 6.640 0.543 -0.638 0.074 -0.120 -0.614 -0.903 0.150 0.042 -0.134 -0.024 0.166 0.223 + 6.251 0.610 -0.732 0.056 -0.303 -0.647 -0.750 0.008 -0.172 -0.346 -0.066 0.041 0.066 + 6.241 0.601 -0.670 0.187 -0.243 -0.470 -0.658 0.137 -0.221 -0.229 0.025 0.101 0.258 + 6.800 0.120 -0.355 0.501 0.086 -0.594 -0.578 -0.088 -0.213 -0.275 -0.039 0.048 0.004 + 7.370 -0.124 -0.245 0.575 0.240 -0.461 -0.553 -0.065 -0.189 -0.431 -0.070 0.053 -0.007 + 7.456 0.052 -0.260 0.567 0.041 -0.578 -0.499 -0.207 -0.094 -0.287 -0.169 0.067 0.101 + 7.337 -0.080 -0.374 0.559 -0.184 -0.529 -0.324 -0.222 -0.094 -0.137 -0.028 0.049 -0.010 + 6.937 -0.095 -0.446 0.605 -0.221 -0.661 -0.423 -0.288 -0.211 0.039 0.089 0.016 0.078 + 6.635 -0.185 -0.122 0.564 -0.510 -0.568 -0.185 -0.182 0.038 0.024 -0.001 0.031 0.004 + 6.758 -0.181 -0.070 0.506 -0.473 -0.489 -0.204 -0.291 -0.006 -0.198 0.136 0.160 -0.220 + 6.858 -0.481 -0.017 0.376 -0.607 -0.553 -0.179 0.000 -0.051 -0.174 0.075 0.230 -0.296 + 6.966 -0.292 0.157 0.188 -0.311 -0.720 -0.489 -0.095 -0.077 -0.061 -0.100 0.243 -0.185 + 6.315 -0.220 0.269 0.131 -0.189 -0.587 -0.579 -0.085 -0.093 -0.168 -0.041 0.204 -0.143 + 5.916 0.096 0.237 0.238 -0.107 -0.286 -0.477 0.002 -0.082 -0.430 -0.147 0.180 -0.221 + 5.183 0.296 0.219 0.118 -0.213 -0.196 -0.404 -0.157 -0.109 -0.256 -0.027 0.152 -0.153 + 4.590 0.325 -0.011 0.136 -0.084 -0.218 -0.337 -0.122 -0.082 -0.282 -0.172 0.133 -0.065 + 4.596 0.351 0.095 0.353 0.001 -0.391 -0.360 -0.350 -0.173 -0.345 -0.165 0.004 -0.063 + 4.551 0.147 0.109 0.351 0.092 -0.287 -0.361 -0.272 -0.175 -0.296 -0.077 0.019 -0.233 + 4.738 0.325 0.085 0.239 0.044 -0.257 -0.363 -0.317 -0.206 -0.287 -0.196 0.012 -0.104 + 5.109 0.184 0.185 0.136 -0.248 -0.389 -0.505 -0.283 0.015 -0.122 -0.129 -0.074 -0.212 + 5.517 -0.116 0.039 0.307 -0.404 -0.329 -0.303 -0.217 0.069 0.037 0.047 -0.072 -0.175 + 5.867 -0.298 0.193 0.366 -0.305 -0.258 -0.350 -0.369 -0.032 -0.073 0.062 0.037 -0.194 + 5.961 -0.223 0.179 -0.231 -0.079 -0.005 -0.375 -0.406 -0.013 0.015 -0.050 -0.046 -0.130 + 6.163 -0.322 0.263 -0.177 -0.236 -0.169 -0.600 -0.410 0.027 0.027 -0.162 -0.052 -0.020 + 6.382 -0.327 0.056 -0.023 -0.192 0.016 -0.404 -0.485 -0.184 -0.050 -0.127 0.017 0.098 + 6.481 -0.051 0.051 -0.110 -0.255 -0.023 -0.362 -0.522 -0.215 -0.092 -0.066 0.016 -0.010 + 4.971 0.154 -0.020 0.045 -0.129 0.039 -0.228 -0.451 -0.195 -0.140 -0.200 -0.060 -0.056 + 4.026 0.482 -0.011 0.398 -0.046 -0.295 -0.616 -0.243 0.025 -0.103 -0.152 0.075 -0.057 + 4.754 0.330 -0.208 0.198 -0.075 -0.320 -0.717 -0.126 0.099 -0.070 -0.325 0.134 -0.113 + 5.501 0.375 -0.588 -0.068 -0.278 -0.314 -0.777 0.020 0.261 -0.157 -0.484 0.203 -0.256 + 6.102 0.100 -0.619 -0.342 -0.356 -0.295 -0.742 0.106 0.324 -0.235 -0.477 0.230 -0.165 + 6.146 -0.026 -0.957 -0.466 -0.110 -0.080 -0.655 0.150 0.068 -0.282 -0.597 0.075 -0.148 + 6.491 -0.009 -0.985 -0.555 -0.145 0.005 -0.646 0.100 0.144 -0.187 -0.600 0.136 -0.209 + 6.617 -0.016 -0.989 -0.432 -0.100 0.111 -0.609 0.126 0.138 -0.199 -0.566 0.143 -0.090 + 6.610 -0.113 -1.180 -0.397 -0.305 0.282 -0.490 -0.011 0.231 -0.263 -0.404 0.156 -0.006 + 6.389 -0.104 -1.270 -0.345 -0.266 0.380 -0.408 0.032 0.268 -0.387 -0.439 0.187 -0.131 + 6.307 -0.289 -1.257 -0.532 -0.044 0.425 -0.327 0.187 0.164 -0.336 -0.556 0.348 -0.153 + 6.599 -0.126 -1.190 -0.519 -0.047 0.330 -0.410 0.153 0.101 -0.173 -0.399 0.358 -0.125 + 6.536 -0.248 -1.295 -0.611 -0.084 0.267 -0.424 -0.016 -0.018 -0.234 -0.458 0.342 -0.170 + 6.448 -0.172 -1.444 -0.564 -0.119 0.252 -0.357 -0.033 -0.023 -0.150 -0.283 0.330 -0.191 + 6.676 -0.151 -1.325 -0.633 -0.453 0.248 -0.495 -0.006 -0.007 -0.121 -0.284 0.252 -0.232 + 6.592 -0.218 -1.429 -0.579 -0.601 -0.045 -0.519 -0.107 -0.041 -0.055 -0.282 0.318 -0.275 + 6.345 -0.115 -1.275 -0.382 -0.436 -0.226 -0.504 0.097 -0.103 0.063 -0.186 0.416 -0.288 + 6.274 -0.080 -1.315 -0.463 -0.226 -0.144 -0.660 0.078 -0.143 0.044 -0.197 0.374 -0.243 + 6.260 0.001 -1.279 -0.645 -0.300 0.116 -0.451 0.039 0.087 0.033 -0.345 0.317 -0.166 + 5.977 0.276 -1.051 -0.641 -0.201 0.163 -0.329 0.152 0.219 -0.104 -0.193 0.240 -0.260 + 4.767 0.444 -0.484 -0.572 -0.080 0.094 -0.337 0.081 0.160 -0.019 -0.226 0.155 -0.124 + 4.582 0.557 -0.507 -0.502 -0.173 0.015 -0.270 -0.066 0.183 -0.076 -0.196 0.163 -0.044 + 4.648 0.425 -0.566 -0.421 -0.286 -0.057 -0.270 0.113 0.217 0.104 -0.174 0.010 -0.224 + 4.324 0.530 -0.563 -0.382 -0.196 0.038 -0.247 0.065 0.427 0.103 -0.226 -0.028 -0.157 + 3.851 0.554 -0.443 -0.095 -0.114 0.008 -0.351 0.060 0.185 0.140 0.049 0.134 -0.121 + 5.098 -0.345 -0.459 -0.112 0.025 0.337 0.134 -0.236 0.033 -0.052 0.042 -0.016 -0.075 + 8.097 -0.767 -0.589 -0.147 -0.227 0.313 0.143 -0.526 -0.042 0.062 0.089 0.018 -0.041 + 8.909 -0.657 -0.616 -0.007 -0.233 0.098 -0.036 -0.561 -0.033 -0.036 -0.202 -0.053 -0.036 + 9.168 -0.647 -0.676 -0.099 -0.264 0.099 -0.014 -0.402 0.087 0.073 0.009 0.016 0.040 + 9.092 -0.446 -0.319 -0.161 -0.198 0.145 -0.012 -0.520 -0.050 0.153 0.005 -0.021 -0.068 + 9.522 -0.322 -0.334 -0.188 -0.330 0.074 -0.176 -0.480 -0.102 -0.010 -0.151 0.024 -0.101 + 9.730 -0.447 -0.369 -0.049 -0.131 0.013 -0.336 -0.400 0.019 0.151 -0.115 -0.025 0.011 + 9.713 -0.476 -0.477 -0.095 -0.138 0.053 -0.077 -0.318 0.202 0.022 -0.034 -0.046 0.002 + 9.654 0.038 -0.322 -0.153 -0.218 -0.089 -0.183 -0.287 0.135 0.021 -0.064 -0.119 -0.033 + 8.552 0.194 -0.045 -0.212 -0.068 0.053 -0.178 -0.365 -0.201 0.063 -0.153 -0.058 0.013 + 7.567 -0.033 -0.211 -0.302 -0.155 0.123 -0.333 -0.214 -0.047 0.156 -0.010 0.017 -0.079 + 6.855 -0.073 0.099 -0.144 -0.215 -0.132 -0.222 -0.013 0.050 0.137 0.012 -0.035 -0.044 + 5.702 -0.069 0.004 -0.008 -0.106 0.078 -0.166 0.103 0.056 0.057 -0.065 -0.217 -0.041 + 4.544 -0.080 0.096 0.050 -0.181 -0.011 -0.128 -0.185 -0.032 0.059 0.023 0.007 0.062 + 4.120 -0.307 0.117 0.021 -0.249 0.069 -0.434 -0.130 0.054 0.096 -0.157 0.029 0.165 + 4.126 -0.441 -0.141 0.157 -0.171 -0.001 -0.180 0.084 -0.101 0.079 0.051 0.081 0.064 + 4.373 -0.116 0.004 0.187 -0.098 0.068 -0.200 -0.065 -0.087 0.018 -0.109 -0.093 -0.064 + 4.699 -0.135 0.116 0.074 0.031 0.074 -0.353 -0.193 0.114 0.023 -0.102 -0.044 -0.007 + 4.999 -0.356 -0.107 -0.038 -0.045 0.261 -0.143 0.027 0.150 0.050 -0.151 -0.091 -0.176 + 4.999 -0.221 0.055 0.053 -0.080 0.003 -0.135 0.140 -0.049 -0.045 -0.049 -0.049 -0.077 + 5.171 -0.188 0.036 -0.005 -0.308 -0.244 -0.361 0.001 -0.060 0.053 -0.076 -0.004 -0.023 + 5.441 0.077 0.083 -0.060 -0.254 0.030 -0.126 -0.041 -0.109 -0.159 -0.150 -0.079 -0.174 + 6.492 0.401 0.216 0.108 -0.047 0.184 0.141 0.099 -0.122 -0.093 -0.172 0.003 -0.073 + 5.691 0.216 0.331 0.153 -0.124 0.101 -0.200 0.046 -0.088 0.028 -0.089 0.005 -0.287 + 5.311 -0.147 -0.110 -0.121 -0.501 -0.170 -0.159 0.129 -0.163 -0.003 0.121 -0.060 -0.111 + 5.479 -0.128 -0.075 0.013 -0.277 -0.049 -0.208 0.037 -0.088 0.049 -0.137 -0.072 0.040 + 5.209 0.002 0.030 -0.040 -0.175 0.108 -0.103 0.005 -0.095 -0.065 -0.053 -0.041 -0.093 + 5.391 0.094 0.040 0.198 -0.114 0.080 -0.149 0.018 -0.048 -0.099 -0.110 -0.069 -0.229 + 5.678 0.549 0.422 0.386 -0.055 -0.042 -0.359 -0.185 0.085 0.132 -0.136 -0.230 -0.073 + 5.315 0.570 0.180 0.220 -0.001 0.041 -0.272 -0.396 -0.288 0.103 -0.105 -0.210 0.002 + 7.241 0.565 -0.516 -0.326 0.046 -0.240 -0.216 -0.070 -0.106 -0.114 -0.153 -0.049 -0.087 + 8.083 0.565 -0.418 -0.386 0.194 -0.263 -0.187 -0.066 -0.073 -0.185 -0.155 -0.034 -0.129 + 4.200 0.447 0.626 0.332 -0.081 -0.062 -0.201 -0.161 -0.177 0.047 -0.118 -0.226 -0.106 + 4.183 0.514 0.452 0.179 -0.023 0.092 -0.111 -0.146 -0.204 -0.056 -0.141 -0.025 -0.225 + 4.262 0.428 0.414 0.010 -0.022 0.148 0.075 0.037 -0.078 0.003 -0.167 -0.081 -0.215 + 4.363 0.286 0.149 0.043 -0.185 -0.139 -0.063 -0.012 -0.088 0.088 -0.043 -0.086 -0.111 + 5.661 -0.246 0.053 -0.229 0.047 -0.002 -0.074 0.027 -0.215 -0.079 -0.157 -0.076 -0.053 + 3.634 0.370 -0.096 0.090 0.044 -0.111 -0.126 -0.168 -0.105 -0.034 -0.098 0.046 -0.040 + 3.406 0.308 -0.111 0.195 0.082 0.017 -0.037 0.112 -0.034 -0.016 -0.066 -0.011 -0.085 + 3.639 0.530 -0.000 0.035 -0.004 -0.084 -0.143 -0.014 -0.063 -0.042 -0.088 -0.120 -0.029 + 3.674 0.410 -0.157 0.058 0.068 -0.028 -0.090 0.064 -0.172 -0.037 -0.133 -0.092 -0.004 + 4.008 0.388 -0.103 -0.104 -0.194 -0.093 -0.150 -0.169 -0.232 -0.040 -0.033 0.021 -0.028 + 3.626 0.366 -0.159 -0.011 -0.054 -0.150 -0.281 -0.065 -0.112 -0.017 -0.077 -0.029 -0.163 + 3.762 0.344 -0.207 -0.070 -0.055 -0.061 0.094 -0.083 -0.069 -0.009 0.016 0.125 0.028 + 3.682 0.337 -0.193 0.012 -0.069 -0.139 -0.011 -0.028 -0.178 -0.115 -0.205 0.048 -0.004 + 3.934 0.357 -0.166 -0.088 -0.139 -0.183 -0.077 -0.033 -0.010 0.022 0.025 -0.123 0.061 + 5.827 -0.927 0.093 -0.002 -0.151 -0.134 -0.268 -0.170 -0.147 -0.021 -0.046 -0.022 -0.091 + 5.050 -0.359 0.369 -0.013 -0.240 -0.152 -0.151 -0.157 -0.159 -0.129 -0.129 -0.064 -0.061 + 3.889 0.448 0.059 0.328 -0.294 -0.231 -0.161 -0.158 -0.117 -0.202 -0.004 0.027 0.065 + 3.504 0.509 0.246 0.031 0.007 -0.124 -0.105 -0.139 -0.217 -0.145 -0.144 -0.105 -0.057 + 3.555 0.098 -0.050 0.020 -0.057 0.067 0.054 -0.073 0.001 -0.058 -0.150 -0.067 -0.044 + 3.316 0.009 0.067 0.028 -0.021 -0.074 -0.055 -0.180 -0.218 0.092 -0.038 -0.077 -0.198 + 2.588 0.046 -0.066 0.070 0.037 -0.190 -0.049 -0.228 -0.124 -0.084 -0.087 -0.034 -0.184 + 2.696 -0.127 -0.164 0.072 -0.031 -0.094 -0.072 0.088 -0.118 0.086 -0.003 -0.049 -0.190 + 2.662 -0.129 -0.135 0.112 0.061 -0.102 -0.083 -0.027 -0.155 -0.015 -0.047 0.083 0.075 + 2.816 0.056 -0.132 0.132 -0.009 -0.137 -0.066 0.154 -0.152 -0.015 -0.148 -0.114 -0.088 + 2.465 0.054 0.089 0.233 0.025 0.018 -0.053 -0.020 -0.197 -0.108 -0.015 -0.085 -0.092 + 2.339 -0.013 -0.040 0.159 0.112 -0.052 0.068 0.128 0.010 -0.116 -0.138 -0.129 0.004 + 2.408 -0.129 -0.079 0.153 0.056 -0.046 0.270 0.165 -0.009 -0.033 -0.021 -0.034 -0.184 + 2.476 0.149 -0.015 -0.045 -0.121 0.041 -0.052 -0.012 -0.082 0.059 -0.007 0.059 -0.099 + 2.288 0.079 0.051 0.033 -0.085 0.073 -0.002 -0.097 0.017 -0.052 -0.093 -0.028 -0.050 + 2.584 -0.246 0.345 -0.250 0.032 -0.082 -0.055 0.080 -0.122 -0.083 -0.138 -0.023 -0.180 + 2.889 0.007 0.399 -0.410 0.042 0.048 -0.099 0.093 -0.137 0.028 0.065 -0.043 -0.178 + 2.697 0.560 -0.018 -0.075 -0.216 0.014 -0.117 0.002 0.028 0.046 -0.037 0.026 -0.047 + 2.677 0.364 -0.177 -0.118 -0.179 0.054 0.116 0.041 -0.090 -0.149 -0.059 -0.140 -0.141 + 2.362 0.630 0.131 -0.170 -0.336 -0.053 0.020 0.115 -0.009 -0.022 0.080 -0.066 -0.180 + 2.416 0.263 -0.019 0.009 -0.253 -0.412 -0.246 -0.038 0.083 0.022 -0.102 -0.090 -0.044 + 3.207 0.260 0.342 0.171 -0.290 -0.307 -0.036 0.125 0.083 -0.053 -0.076 -0.087 -0.283 + 4.046 0.718 0.033 -0.033 -0.293 -0.127 0.039 0.005 -0.179 -0.179 -0.034 -0.130 -0.102 + 4.169 0.348 0.036 -0.090 -0.545 -0.364 0.038 -0.047 -0.097 -0.060 -0.099 0.043 -0.101 + 4.087 0.333 0.121 0.055 -0.587 -0.206 0.172 -0.071 -0.201 -0.029 -0.153 -0.137 -0.184 + 3.768 0.903 -0.485 0.159 -0.410 -0.085 -0.045 -0.115 -0.170 -0.009 -0.009 0.009 -0.084 + 3.096 0.862 -0.023 0.237 -0.336 -0.113 -0.057 -0.167 -0.008 -0.059 -0.263 -0.131 -0.060 + 3.491 1.007 -0.344 -0.007 -0.257 -0.115 0.049 -0.151 -0.103 0.050 -0.064 -0.005 -0.083 + 3.401 1.012 -0.216 0.008 -0.330 0.017 0.124 0.021 -0.063 -0.166 -0.255 -0.005 -0.033 + 3.304 0.906 -0.223 -0.025 -0.486 -0.105 -0.032 -0.072 -0.116 -0.007 -0.150 -0.108 -0.047 + 3.838 1.188 -0.385 -0.097 -0.476 -0.113 -0.004 -0.109 0.015 -0.090 -0.155 -0.158 -0.058 + 4.023 1.151 -0.312 0.332 -0.361 -0.067 0.137 -0.230 -0.231 0.003 -0.165 -0.053 -0.176 + 3.670 0.775 0.075 0.378 -0.390 -0.239 0.011 -0.041 -0.234 0.031 -0.210 0.010 -0.079 + 3.769 1.067 -0.032 0.310 -0.569 -0.073 -0.015 -0.223 -0.091 -0.055 -0.328 0.005 0.013 + 3.544 0.729 -0.369 0.616 -0.401 -0.297 0.001 0.002 -0.099 -0.240 -0.116 0.059 0.157 + 4.263 0.939 -0.272 0.365 -0.059 -0.219 -0.102 -0.243 -0.168 -0.060 -0.019 0.064 -0.134 + 4.832 0.642 0.113 0.307 -0.062 -0.134 -0.229 -0.468 -0.150 -0.005 0.014 0.075 -0.323 + 5.135 0.512 0.107 0.165 -0.281 -0.263 -0.165 -0.262 -0.302 0.159 -0.045 0.056 -0.210 + 5.023 0.743 0.252 0.170 -0.449 -0.145 -0.112 -0.376 -0.356 0.224 -0.097 -0.080 -0.218 + 5.107 0.647 0.297 0.151 -0.472 -0.090 -0.181 -0.335 -0.376 0.240 -0.122 -0.016 -0.212 + 5.184 0.662 0.490 0.162 -0.388 -0.160 -0.161 -0.341 -0.492 0.188 -0.039 -0.074 -0.252 + 5.577 0.641 0.032 0.117 -0.307 -0.164 -0.119 -0.340 -0.429 0.145 -0.204 0.028 -0.330 + 5.635 0.574 0.006 0.088 -0.019 0.025 -0.088 -0.252 -0.474 -0.156 -0.133 0.066 -0.248 + 5.175 0.589 0.249 0.248 -0.100 -0.029 -0.257 -0.278 -0.535 -0.004 0.017 -0.012 -0.081 + 5.656 0.856 0.369 -0.027 -0.079 -0.086 0.126 0.102 -0.177 -0.122 -0.219 -0.253 -0.286 + 5.554 0.876 0.753 0.260 -0.119 -0.034 -0.014 -0.060 -0.204 -0.120 -0.298 -0.244 -0.281 + 5.034 0.594 0.357 0.021 -0.335 -0.075 -0.087 -0.209 -0.153 -0.023 -0.077 -0.041 0.010 + 4.759 0.114 0.177 0.320 0.006 -0.154 -0.268 -0.229 -0.305 -0.050 -0.144 -0.001 -0.025 + 5.308 -0.174 -0.007 0.360 -0.037 -0.308 -0.177 -0.392 -0.310 -0.061 -0.115 -0.015 0.040 + 6.806 0.002 0.066 0.277 -0.384 -0.309 -0.084 -0.293 -0.202 0.197 -0.098 -0.038 -0.078 + 8.776 0.391 0.285 0.122 -0.493 -0.088 -0.351 -0.299 -0.091 0.228 -0.063 -0.061 -0.190 + 7.438 0.157 0.252 0.537 -0.290 -0.228 0.106 -0.320 -0.206 0.129 -0.243 -0.046 -0.190 + 8.733 0.513 0.114 0.183 -0.264 -0.067 0.059 -0.198 -0.278 0.044 -0.301 -0.048 -0.203 + 9.196 0.669 0.206 0.171 -0.320 0.100 0.171 -0.305 -0.266 -0.042 -0.297 -0.016 -0.201 + 6.581 -0.102 0.418 0.403 -0.334 -0.234 0.390 -0.181 -0.189 0.157 -0.356 0.092 -0.155 + 5.843 -0.223 0.291 0.299 -0.576 -0.353 0.223 -0.502 -0.194 0.146 -0.245 0.126 0.005 + 5.539 -0.268 0.321 0.298 -0.467 -0.416 0.162 -0.634 -0.150 0.138 -0.257 0.269 -0.113 + 5.770 -0.188 0.449 0.548 -0.513 -0.322 0.052 -0.620 -0.280 0.064 -0.309 0.041 -0.116 + 6.453 -0.394 0.431 0.576 -0.511 -0.341 -0.118 -0.751 -0.286 0.139 -0.364 -0.067 -0.184 + 6.338 -0.284 0.456 0.615 -0.676 -0.450 0.088 -0.791 -0.419 -0.009 -0.420 -0.072 -0.241 + 6.539 -0.367 0.493 0.548 -0.751 -0.554 0.250 -0.523 -0.289 0.116 -0.423 -0.043 -0.298 + 6.464 -0.525 0.429 0.445 -0.920 -0.794 0.184 -0.536 -0.214 0.268 -0.214 0.035 -0.224 + 6.414 -0.446 0.237 0.271 -0.859 -0.635 0.271 -0.531 -0.069 0.250 -0.225 0.041 -0.112 + 6.376 -0.356 0.160 0.346 -0.844 -0.597 0.190 -0.625 -0.148 0.194 -0.207 -0.009 -0.067 + 6.136 -0.117 0.318 0.360 -0.553 -0.745 0.068 -0.448 -0.097 0.106 -0.441 0.024 -0.097 + 5.308 -0.144 0.451 0.248 -0.527 -0.354 0.286 -0.548 -0.228 0.082 -0.385 -0.009 -0.118 + 5.352 0.146 0.356 0.354 -0.339 -0.360 0.124 -0.226 -0.081 0.269 -0.321 -0.080 -0.198 + 5.362 0.133 0.347 0.253 -0.112 -0.182 0.123 -0.192 -0.066 -0.033 -0.122 0.016 -0.148 + 5.285 0.075 0.317 0.201 0.056 -0.201 0.030 -0.138 -0.121 0.045 -0.134 -0.088 -0.123 + 4.760 0.195 0.201 0.179 -0.137 -0.197 -0.118 -0.126 -0.191 -0.095 0.038 -0.045 -0.119 + 4.875 0.429 0.128 0.397 -0.236 -0.126 0.026 -0.211 -0.113 -0.010 -0.233 -0.048 -0.049 + 5.040 0.343 0.309 0.350 -0.085 0.032 -0.141 -0.113 -0.203 0.096 -0.180 -0.035 -0.098 + 4.982 -0.040 0.166 0.118 -0.212 0.073 0.080 -0.225 -0.055 0.077 -0.100 0.005 -0.021 + 5.294 -0.052 0.206 0.314 -0.324 -0.205 0.139 -0.309 -0.089 0.064 -0.253 -0.025 -0.198 + 5.293 -0.268 0.369 0.485 -0.329 -0.309 0.107 -0.430 -0.115 0.081 -0.230 -0.017 -0.165 + 5.460 -0.409 0.545 0.506 -0.531 -0.346 0.008 -0.522 -0.230 0.213 -0.130 0.033 -0.186 + 6.192 -0.342 0.457 0.637 -0.661 -0.616 -0.030 -0.319 -0.186 0.124 0.052 0.009 -0.268 + 6.311 -0.465 0.002 0.412 -0.412 -0.560 0.054 -0.153 -0.151 -0.083 -0.149 0.101 -0.226 + 5.902 -0.681 -0.151 0.306 -0.217 -0.384 0.227 0.075 -0.101 0.056 -0.072 0.124 -0.425 + 5.958 -0.527 -0.061 0.287 -0.084 -0.395 0.020 -0.021 -0.021 0.002 -0.063 0.088 -0.459 + 6.151 -0.374 -0.127 0.352 -0.025 -0.497 -0.047 -0.155 -0.081 -0.076 -0.083 0.155 -0.341 + 6.093 -0.313 -0.271 0.061 -0.086 -0.506 -0.012 0.048 0.019 -0.048 -0.131 0.332 -0.313 + 5.978 -0.144 -0.630 -0.248 -0.164 -0.542 -0.057 0.223 0.074 -0.135 -0.264 0.313 -0.356 + 8.921 1.368 -0.150 -0.147 -0.060 -0.265 -0.224 -0.179 -0.143 -0.204 -0.261 0.078 -0.215 + 9.458 1.318 -0.071 0.031 -0.102 -0.270 -0.187 -0.155 -0.172 -0.140 -0.193 0.082 -0.059 + 7.009 0.820 -0.028 0.157 -0.048 -0.368 -0.041 0.175 0.042 -0.294 -0.166 0.211 -0.301 + 5.719 -0.039 -0.118 -0.046 -0.123 -0.353 -0.081 0.268 0.346 -0.100 -0.257 0.312 -0.188 + 5.627 -0.128 -0.295 0.054 -0.124 -0.339 -0.193 0.380 0.191 -0.293 -0.243 0.222 -0.338 + 5.671 0.067 -0.416 -0.027 -0.227 -0.363 -0.215 0.227 -0.006 -0.185 -0.221 0.241 -0.380 + 5.764 0.449 -0.386 0.054 -0.109 -0.323 -0.317 0.229 0.231 -0.290 -0.204 0.168 -0.307 + 8.124 0.257 0.052 -0.380 -0.273 -0.362 -0.137 -0.114 -0.217 0.018 -0.243 -0.004 -0.136 + 8.400 -0.072 0.179 -0.064 -0.420 -0.352 -0.024 -0.053 -0.129 0.180 -0.200 0.032 -0.041 + 9.396 -0.409 0.331 0.033 -0.276 -0.235 -0.172 -0.009 -0.215 0.169 -0.377 -0.064 -0.037 + 5.923 0.285 0.339 0.426 -0.001 -0.323 -0.234 0.092 -0.001 0.149 -0.146 0.055 -0.095 + 5.336 0.504 0.377 0.133 -0.192 -0.309 -0.118 0.136 -0.017 -0.090 -0.070 -0.131 -0.321 + 4.933 0.330 0.209 0.122 -0.018 -0.232 -0.108 0.023 -0.160 -0.187 -0.184 0.011 -0.195 + 5.301 0.495 0.158 0.028 -0.200 -0.264 0.049 0.024 -0.057 -0.274 -0.043 -0.082 -0.281 + 5.428 0.476 0.424 0.207 -0.151 -0.152 -0.038 -0.079 -0.261 -0.174 -0.114 0.009 -0.212 + 5.325 0.368 0.373 0.128 -0.165 -0.023 -0.130 -0.117 -0.420 -0.182 -0.102 -0.100 -0.357 + 5.146 0.315 0.204 0.059 -0.178 -0.386 -0.099 -0.159 -0.294 -0.164 -0.094 -0.063 -0.180 + 4.781 0.128 0.171 0.215 -0.224 -0.345 -0.179 -0.073 -0.144 -0.002 -0.122 -0.145 -0.088 + 4.870 0.211 0.132 0.141 -0.180 -0.382 -0.055 0.040 -0.194 -0.067 -0.164 -0.225 -0.236 + 5.465 0.366 0.276 -0.086 -0.236 -0.193 -0.138 -0.124 -0.344 -0.106 -0.027 0.057 -0.112 + 5.147 0.439 0.045 -0.063 -0.160 -0.128 0.080 -0.010 -0.336 -0.248 -0.189 0.062 -0.208 + 5.417 0.407 0.090 0.019 -0.238 -0.213 0.031 -0.025 -0.163 0.151 -0.034 -0.131 -0.150 + 5.801 0.623 0.381 0.027 -0.050 -0.013 0.173 -0.034 -0.146 0.047 0.037 -0.229 -0.236 + 5.527 0.244 0.216 -0.072 -0.061 -0.049 0.034 -0.022 -0.146 0.010 -0.036 0.012 0.026 + 4.998 -0.045 0.238 -0.098 -0.201 -0.204 -0.047 0.047 -0.102 -0.118 -0.036 -0.090 -0.235 + 4.650 -0.077 0.176 0.022 -0.272 -0.197 0.032 0.111 -0.125 -0.206 -0.080 -0.179 -0.156 + 4.583 -0.024 0.232 0.064 -0.110 -0.173 -0.061 0.112 -0.010 -0.053 -0.204 -0.278 -0.107 + 4.724 -0.056 0.175 -0.034 -0.128 -0.127 -0.115 0.029 -0.217 -0.152 -0.201 -0.115 -0.073 + 4.736 -0.085 0.245 -0.000 -0.171 -0.189 -0.158 0.002 -0.020 -0.033 -0.103 -0.144 -0.105 + 4.852 -0.206 0.065 -0.338 -0.039 -0.233 -0.096 -0.054 -0.024 -0.075 -0.066 0.031 -0.235 + 4.296 -0.116 0.472 0.004 -0.191 -0.238 -0.023 0.007 -0.080 -0.079 -0.107 -0.030 -0.081 + 3.984 -0.077 0.426 -0.057 -0.240 -0.201 -0.019 0.099 0.075 -0.038 -0.068 -0.072 -0.070 + 4.179 0.132 0.277 -0.086 -0.126 0.018 0.086 -0.009 -0.213 -0.110 -0.185 -0.171 -0.176 + 3.796 -0.014 0.313 0.063 -0.133 -0.064 -0.005 0.008 -0.034 0.232 0.021 -0.098 -0.118 + 3.156 0.136 0.420 0.301 -0.149 -0.135 -0.062 0.053 -0.141 0.016 -0.082 -0.161 -0.194 + 3.562 0.196 0.483 0.120 -0.216 -0.094 -0.190 -0.042 -0.026 0.031 -0.118 -0.051 0.019 + 3.520 0.267 0.337 0.014 -0.212 -0.190 -0.043 -0.040 -0.170 -0.005 0.100 -0.054 -0.056 + 3.368 0.156 -0.020 -0.195 -0.131 -0.032 -0.169 -0.107 -0.220 -0.045 -0.122 -0.149 -0.169 + 3.070 0.144 0.020 0.032 -0.085 -0.133 -0.203 -0.057 -0.146 -0.076 -0.166 -0.230 -0.150 + 3.259 0.204 -0.073 0.219 0.048 0.018 0.015 -0.042 -0.166 -0.060 -0.119 -0.161 -0.095 + 3.001 0.179 0.103 0.321 -0.001 -0.083 -0.195 -0.050 -0.201 -0.265 -0.128 -0.132 -0.030 + 2.182 0.144 0.213 0.218 -0.019 -0.115 0.022 0.125 0.079 0.169 0.078 -0.090 0.083 + 2.222 0.219 0.172 0.132 -0.072 -0.076 0.101 0.301 0.041 -0.052 -0.096 -0.119 -0.017 + 2.556 0.189 -0.003 0.100 0.044 -0.083 0.167 0.251 -0.086 -0.132 -0.189 -0.244 -0.120 + 2.476 0.187 0.085 0.051 -0.040 -0.117 0.155 0.103 -0.093 0.014 -0.069 -0.166 -0.086 + 2.219 0.139 0.158 0.131 -0.164 -0.102 0.004 0.089 -0.255 -0.184 -0.046 -0.018 -0.105 + 2.399 0.494 0.223 0.080 -0.046 -0.049 0.093 0.032 -0.296 -0.249 -0.215 -0.054 -0.067 + 2.267 0.343 0.302 0.192 0.001 -0.003 -0.040 -0.018 -0.183 -0.098 -0.036 -0.088 -0.211 + 1.984 0.037 0.249 0.305 0.101 -0.137 0.103 -0.121 -0.333 -0.158 0.002 -0.060 -0.123 + 2.274 -0.200 0.221 0.314 -0.134 -0.186 0.075 0.104 -0.029 0.053 -0.068 -0.065 -0.029 + 2.970 0.177 0.219 0.028 -0.178 -0.177 -0.105 0.107 0.026 0.147 -0.185 -0.086 -0.159 + 3.405 0.500 0.320 0.128 -0.415 -0.003 -0.005 0.003 -0.113 -0.006 0.010 -0.019 -0.132 + 5.111 0.267 0.630 0.390 -0.505 -0.163 0.062 -0.028 -0.221 -0.015 -0.105 -0.025 -0.114 + 5.130 0.045 0.342 0.644 -0.437 -0.253 -0.020 -0.156 -0.099 0.067 -0.049 0.003 -0.097 + 5.543 -0.160 0.232 0.768 -0.433 -0.160 -0.041 -0.191 -0.163 0.026 -0.020 0.066 -0.053 + 5.992 0.051 0.209 0.483 -0.445 -0.306 -0.175 -0.156 -0.252 0.040 -0.037 -0.064 -0.215 + 6.578 0.202 0.385 0.534 -0.389 -0.303 0.113 -0.008 0.038 0.055 -0.091 -0.126 -0.242 + 7.099 0.859 0.563 0.251 -0.406 -0.116 0.098 -0.276 -0.208 -0.244 -0.102 0.025 -0.078 + 7.640 0.634 0.335 0.224 -0.379 -0.045 -0.080 -0.188 -0.224 -0.075 -0.233 0.048 -0.116 + 7.988 0.658 0.072 0.150 -0.101 -0.166 -0.181 -0.301 -0.207 -0.074 -0.359 0.021 -0.005 + 8.378 0.862 0.216 0.187 0.018 -0.077 -0.200 -0.335 -0.376 -0.032 -0.381 -0.086 -0.037 + 6.994 -0.013 0.164 0.132 -0.103 -0.331 -0.381 -0.156 -0.096 -0.170 -0.230 -0.013 -0.038 + 7.873 -0.618 -0.091 -0.038 -0.113 -0.328 -0.059 -0.153 -0.169 0.093 -0.181 -0.007 -0.055 + 7.023 -0.459 0.153 0.090 -0.096 -0.286 -0.183 -0.138 -0.078 0.058 -0.165 -0.017 0.003 + 6.218 -0.657 0.413 0.350 0.179 -0.005 -0.361 -0.146 -0.267 -0.199 -0.256 0.086 0.080 + 7.080 -0.648 0.449 0.198 0.045 -0.121 -0.176 -0.003 -0.174 0.008 -0.039 -0.057 0.063 + 6.624 -0.305 0.588 0.005 -0.027 -0.056 -0.221 0.093 -0.094 -0.031 -0.162 -0.171 -0.124 + 6.279 -0.391 0.495 0.078 -0.149 -0.155 -0.310 0.034 -0.282 -0.113 -0.158 -0.091 -0.177 + 5.395 -0.418 0.582 0.197 -0.063 -0.005 -0.065 -0.052 -0.292 -0.140 -0.251 -0.029 -0.090 + 4.458 -0.142 0.344 0.140 -0.029 -0.075 -0.261 -0.061 -0.091 -0.106 -0.074 -0.026 -0.069 + 4.754 0.114 0.404 0.102 0.234 0.296 -0.018 -0.026 -0.046 -0.211 -0.166 -0.030 -0.115 + 4.436 0.026 0.355 0.144 0.089 0.054 -0.065 -0.004 -0.109 -0.051 -0.201 -0.104 -0.187 + 4.259 -0.155 0.224 0.170 0.019 0.000 -0.025 -0.016 -0.030 -0.053 -0.245 -0.321 -0.265 + 5.339 0.502 0.179 -0.067 -0.079 -0.141 -0.366 -0.204 -0.141 -0.146 -0.156 -0.156 -0.261 + 5.553 1.092 0.540 -0.068 -0.136 -0.202 -0.344 -0.293 -0.111 -0.054 -0.077 -0.004 -0.133 + 3.915 -0.157 0.555 0.023 0.106 -0.020 -0.140 -0.200 -0.056 0.008 0.054 0.072 0.022 + 3.721 -0.231 0.092 -0.123 -0.197 -0.115 -0.127 -0.169 -0.100 -0.013 0.138 0.151 -0.081 + 3.791 -0.155 0.182 -0.035 -0.222 -0.121 -0.078 -0.115 0.045 -0.054 0.062 0.068 -0.043 + 3.210 -0.221 0.103 0.038 0.015 -0.144 -0.109 -0.086 -0.056 0.093 0.174 0.115 -0.040 + 3.466 -0.181 0.268 0.092 -0.057 -0.197 0.007 -0.043 -0.037 -0.005 0.004 -0.007 -0.024 + 3.484 -0.205 0.264 0.156 0.024 -0.125 -0.081 -0.149 -0.135 -0.086 -0.024 -0.065 -0.003 + 3.269 0.348 0.292 0.200 -0.037 -0.135 -0.066 -0.107 -0.225 -0.113 -0.130 0.130 -0.001 + 3.249 0.146 0.236 0.141 -0.142 0.000 -0.062 -0.105 -0.136 -0.122 0.055 0.052 -0.232 + 3.156 -0.006 0.156 0.094 -0.290 0.121 0.108 0.109 -0.011 -0.048 0.012 0.139 0.026 + 3.427 0.034 0.143 0.111 -0.188 -0.179 -0.159 -0.083 -0.063 -0.002 0.069 0.095 0.003 + 3.361 0.276 0.458 0.168 -0.109 0.004 -0.111 -0.167 -0.055 0.001 -0.050 0.046 -0.076 + 2.624 0.229 0.407 0.011 -0.195 -0.127 -0.005 -0.001 -0.062 -0.201 -0.013 0.128 -0.025 + 2.776 0.250 0.440 -0.035 -0.123 -0.153 0.009 0.082 -0.151 -0.156 0.081 0.137 -0.034 + 2.771 -0.062 0.376 0.002 -0.075 -0.151 -0.132 0.195 0.065 -0.114 0.003 0.142 -0.028 + 2.937 0.268 0.437 0.019 -0.078 -0.072 0.076 -0.038 -0.210 0.005 -0.206 -0.209 -0.020 + 3.002 0.352 0.423 -0.177 -0.196 0.101 0.085 -0.171 -0.313 -0.071 -0.082 -0.052 0.012 + 3.313 -0.011 0.742 -0.142 -0.079 -0.032 -0.116 0.048 -0.022 -0.091 -0.151 -0.069 -0.056 + 3.306 -0.303 0.679 -0.021 0.091 -0.108 -0.280 -0.008 -0.040 -0.155 -0.122 -0.038 -0.060 + 3.311 -0.518 0.510 -0.111 0.218 0.113 -0.284 -0.013 -0.109 -0.065 -0.099 0.004 0.081 + 3.633 -0.547 0.508 0.142 0.109 0.064 -0.190 -0.052 -0.246 -0.066 -0.280 -0.103 0.164 + 3.706 -0.654 0.361 0.150 -0.022 -0.004 -0.175 0.002 -0.158 0.185 0.091 0.150 0.030 + 4.412 -0.807 0.386 0.159 0.016 -0.008 0.024 -0.022 0.027 0.108 -0.016 0.004 -0.104 + 4.669 -0.964 0.100 -0.018 0.047 -0.049 -0.093 -0.173 -0.172 -0.080 0.032 -0.005 -0.043 + 4.248 -0.558 0.099 0.116 -0.159 0.019 -0.044 -0.036 -0.119 -0.046 -0.031 -0.188 -0.139 + 3.466 -0.630 -0.018 0.209 -0.188 0.070 -0.002 -0.006 -0.082 -0.056 -0.185 -0.139 -0.176 + 3.811 -0.280 -0.004 0.140 -0.550 -0.330 -0.251 0.057 0.003 0.038 -0.041 0.133 -0.103 + 3.030 0.551 0.335 0.019 -0.311 -0.376 -0.074 0.172 -0.099 -0.140 -0.235 -0.015 0.085 + 2.894 -0.090 0.350 0.096 -0.156 0.105 -0.055 0.147 -0.093 -0.133 -0.103 -0.050 0.066 + 3.833 0.521 0.601 0.049 -0.494 0.145 -0.180 -0.048 -0.038 -0.042 -0.011 0.069 -0.063 + 4.293 0.774 0.599 -0.133 -0.459 0.144 0.033 -0.003 0.019 -0.046 -0.020 0.037 -0.062 + 4.701 0.792 0.495 0.055 -0.426 -0.011 0.029 0.067 -0.109 0.009 -0.159 0.068 -0.034 + 5.585 0.558 0.338 -0.091 -0.463 0.112 0.016 0.012 -0.093 -0.061 -0.018 -0.060 -0.203 + 6.504 0.396 0.348 0.140 -0.349 -0.037 -0.014 -0.243 -0.123 -0.058 -0.113 -0.038 -0.136 + 7.117 0.233 0.087 0.083 -0.231 -0.103 -0.087 -0.254 -0.102 -0.063 -0.077 -0.081 -0.089 + 6.814 0.124 0.238 -0.094 -0.239 0.027 -0.088 -0.024 -0.056 -0.100 -0.158 -0.012 -0.097 + 6.559 0.198 0.121 -0.154 -0.291 0.124 -0.101 -0.018 0.058 -0.057 -0.240 0.145 -0.017 + 6.634 0.355 -0.020 0.018 -0.297 0.057 -0.141 -0.009 -0.088 -0.060 -0.166 0.148 -0.078 + 6.858 0.305 0.175 0.066 -0.218 0.003 0.022 -0.194 -0.245 -0.039 -0.233 -0.020 -0.176 + 6.170 -0.045 0.307 0.410 -0.149 -0.207 -0.357 -0.137 -0.034 0.072 -0.057 0.055 -0.140 + 6.978 -0.768 0.109 -0.075 -0.388 -0.425 -0.344 -0.120 0.042 0.200 0.019 0.296 0.237 + 7.741 -0.393 0.274 -0.028 -0.257 -0.095 -0.174 0.011 -0.045 0.080 0.019 -0.067 0.007 + 7.812 -0.265 0.292 0.120 -0.258 -0.194 -0.230 -0.170 -0.203 -0.098 -0.040 -0.039 -0.068 + 7.930 -0.529 0.147 0.156 -0.234 -0.093 -0.178 -0.361 -0.155 -0.054 0.046 0.055 -0.116 + 7.816 -0.595 -0.001 0.110 -0.331 -0.066 -0.135 -0.200 -0.043 0.055 0.055 0.108 0.007 + 7.462 -0.599 0.047 -0.102 -0.497 -0.145 -0.136 -0.306 -0.185 0.076 0.003 -0.090 0.047 + 7.825 -0.548 -0.017 0.096 -0.383 -0.113 -0.170 -0.356 -0.153 0.001 -0.121 0.015 -0.098 + 7.894 -0.568 0.024 0.084 -0.536 -0.363 -0.159 -0.303 -0.094 -0.146 -0.106 0.083 -0.048 + 7.239 -0.737 -0.171 0.061 -0.611 -0.311 -0.082 -0.324 -0.088 -0.014 0.031 0.080 -0.058 + 6.928 -0.673 0.004 0.069 -0.271 -0.127 0.120 -0.377 -0.092 0.027 0.018 -0.125 -0.077 + 6.764 -0.750 -0.255 0.118 -0.265 -0.269 0.129 -0.241 -0.102 -0.058 0.028 0.032 -0.079 + 6.881 -1.118 -0.340 0.154 -0.409 -0.269 0.132 -0.349 -0.127 -0.111 -0.019 0.035 -0.001 + 6.332 -1.373 -0.466 0.109 -0.047 -0.212 -0.191 -0.417 -0.122 -0.056 0.082 0.188 -0.057 + 6.226 -0.954 -0.309 0.155 -0.065 -0.105 -0.263 -0.341 -0.175 -0.022 0.004 0.148 -0.098 + 5.673 -0.772 -0.257 0.185 0.008 0.128 -0.178 -0.455 -0.359 -0.026 -0.025 0.123 -0.033 + 5.136 0.023 -0.205 -0.066 -0.400 -0.186 -0.081 -0.048 0.051 -0.007 -0.079 0.048 -0.011 + 4.349 0.190 0.256 -0.182 -0.556 -0.042 0.026 -0.114 -0.095 0.015 -0.057 -0.026 -0.016 + 4.392 0.823 0.243 -0.027 -0.260 -0.172 -0.409 -0.236 -0.201 -0.101 -0.115 0.014 -0.107 + 6.357 1.130 -0.314 -0.080 -0.417 0.027 -0.432 -0.411 -0.053 -0.063 -0.167 -0.014 0.010 + 6.970 1.208 -0.516 0.001 -0.530 0.115 -0.509 -0.507 -0.029 -0.002 -0.185 -0.057 0.088 + 7.363 0.988 -0.384 -0.036 -0.533 0.157 -0.477 -0.548 -0.029 0.072 -0.209 -0.063 0.098 + 7.156 1.100 -0.423 0.055 -0.538 0.151 -0.417 -0.609 0.004 0.040 -0.197 -0.043 0.075 + 6.862 1.182 -0.363 0.082 -0.469 0.087 -0.355 -0.673 -0.032 0.023 -0.175 -0.018 0.039 + 6.614 1.105 -0.205 0.065 -0.332 0.072 -0.310 -0.588 -0.139 0.011 -0.168 -0.053 -0.029 + 6.245 1.006 -0.188 0.109 -0.184 0.135 -0.256 -0.548 -0.167 -0.017 -0.292 -0.025 -0.034 + 5.293 0.931 0.048 0.211 -0.105 0.008 -0.020 -0.399 -0.110 -0.069 -0.349 -0.221 0.029 + 4.587 0.605 0.210 0.263 0.018 0.063 -0.117 -0.315 -0.036 -0.088 -0.217 0.013 0.025 + 4.307 0.630 0.295 -0.071 -0.018 -0.104 -0.371 -0.279 -0.033 -0.071 -0.018 0.063 0.095 + 3.913 0.511 0.297 0.177 0.008 -0.196 -0.370 -0.286 0.043 -0.030 -0.063 0.028 0.085 + 3.838 0.487 0.257 0.094 0.018 -0.181 -0.324 -0.248 -0.177 0.014 0.073 0.169 0.049 + 3.788 0.395 -0.003 -0.033 -0.044 0.082 -0.225 -0.210 -0.080 0.035 0.030 0.058 0.051 + 3.883 0.511 0.181 -0.036 -0.205 0.033 -0.319 -0.218 -0.007 -0.004 0.055 0.089 0.060 + 4.124 0.615 0.089 -0.051 -0.051 0.128 -0.112 -0.202 -0.018 -0.006 -0.026 -0.036 0.015 + 4.680 0.725 0.071 -0.217 -0.105 0.046 -0.051 -0.113 -0.123 0.141 0.086 -0.014 0.057 + 5.111 1.014 -0.146 -0.273 -0.108 0.084 0.045 -0.042 -0.002 0.196 -0.052 -0.068 0.018 + 5.374 1.188 -0.407 -0.303 -0.145 0.073 0.119 -0.051 -0.095 0.345 -0.036 -0.180 -0.076 + 5.635 1.288 -0.626 -0.275 -0.069 0.118 -0.062 -0.094 -0.046 0.257 -0.137 -0.131 -0.010 + 5.540 1.237 -0.459 -0.311 -0.235 0.088 -0.065 -0.105 -0.093 0.274 -0.090 -0.165 0.073 + 5.221 1.022 -0.428 -0.190 -0.156 -0.059 -0.136 -0.042 -0.071 0.253 -0.047 -0.022 0.075 + 4.769 0.828 -0.343 0.125 -0.258 -0.152 -0.191 -0.118 -0.027 0.118 0.052 0.024 0.140 + 4.222 0.722 -0.057 0.352 -0.247 -0.064 -0.080 -0.137 -0.044 0.254 0.153 0.002 0.126 + 2.984 0.700 0.022 0.121 -0.250 -0.060 -0.053 -0.088 -0.099 0.206 -0.003 -0.054 -0.091 + 3.164 0.624 -0.066 0.113 -0.129 0.009 0.084 -0.078 -0.101 0.149 0.035 0.115 0.057 + 2.594 0.752 0.208 0.238 0.096 -0.017 -0.055 0.012 0.097 0.071 -0.056 0.090 0.055 + 2.532 0.637 -0.102 0.091 0.124 0.194 -0.177 -0.069 0.076 0.075 -0.042 0.080 -0.041 + 2.547 0.630 -0.113 -0.018 -0.101 0.017 -0.202 -0.152 -0.099 -0.101 0.011 -0.040 -0.054 + 2.318 0.579 0.023 0.234 -0.069 -0.067 -0.245 -0.153 -0.007 -0.068 0.043 -0.011 -0.025 + 2.488 0.794 0.136 0.230 0.068 0.017 -0.057 -0.205 -0.227 0.027 0.129 -0.029 -0.039 + 2.508 0.860 -0.157 -0.015 0.061 -0.024 -0.163 -0.128 -0.031 0.174 0.051 -0.027 0.063 + 4.676 0.138 0.522 0.283 -0.076 0.201 -0.028 -0.332 -0.078 -0.094 -0.043 -0.217 -0.001 + 7.203 -0.275 0.041 0.293 0.147 0.272 -0.280 -0.395 -0.036 0.016 -0.006 -0.370 0.042 + 5.045 -0.473 -0.294 0.107 0.017 0.310 -0.153 -0.255 0.178 0.263 0.245 -0.252 -0.062 + 2.324 0.045 0.001 0.126 -0.004 0.167 -0.040 0.002 -0.010 0.096 0.132 0.015 0.072 + 3.307 -0.182 0.240 -0.110 0.073 0.084 -0.025 -0.190 -0.260 -0.015 0.013 0.006 0.059 + 3.561 -0.280 -0.012 0.080 0.178 -0.008 -0.074 -0.106 -0.142 -0.121 -0.097 0.007 0.034 + 4.947 -1.007 0.008 0.251 -0.134 -0.071 0.100 -0.298 0.049 0.132 0.040 -0.009 -0.037 + 5.578 -0.799 0.039 0.245 -0.422 0.038 0.111 -0.304 -0.132 0.131 -0.000 -0.059 -0.141 + 5.691 -1.347 -0.168 0.295 -0.201 0.229 -0.016 -0.161 -0.043 0.178 0.080 0.081 -0.090 + 5.143 -0.731 -0.009 0.338 -0.002 0.099 0.021 -0.118 -0.188 0.112 0.055 -0.147 -0.017 + 5.459 -0.137 0.127 0.124 0.164 -0.172 -0.207 -0.406 -0.241 0.219 -0.042 -0.117 -0.044 + 5.051 -0.133 0.480 0.110 -0.155 -0.207 -0.142 -0.131 0.069 0.027 0.026 0.009 -0.016 + 4.669 0.228 0.446 0.190 0.017 -0.235 -0.208 -0.187 -0.090 -0.067 -0.053 -0.123 -0.010 + 4.057 0.043 -0.063 0.224 0.023 -0.023 -0.136 -0.225 -0.031 -0.129 -0.113 -0.061 0.017 + 4.153 -0.115 0.087 0.141 -0.042 -0.040 -0.067 -0.144 -0.132 -0.025 -0.106 -0.167 -0.048 + 3.881 0.244 0.094 0.039 -0.193 -0.069 0.049 -0.169 -0.076 -0.070 -0.084 -0.158 -0.223 + 3.827 0.060 0.082 0.011 -0.293 -0.093 0.039 -0.157 -0.186 -0.075 -0.100 0.042 -0.061 + 3.049 0.127 0.005 0.121 -0.033 0.081 -0.070 -0.114 -0.084 0.038 0.030 -0.013 0.055 + 2.838 0.290 0.140 0.035 -0.256 -0.003 -0.123 -0.123 -0.191 -0.123 -0.024 0.074 -0.170 + 3.102 -0.352 -0.064 0.147 -0.294 0.066 -0.218 -0.169 -0.060 -0.143 -0.104 0.103 0.026 + 3.594 -0.337 -0.058 0.011 -0.191 0.112 0.076 -0.165 -0.006 0.041 0.034 0.015 -0.028 + 3.861 -0.110 0.140 -0.247 -0.245 0.188 0.100 -0.117 -0.030 0.028 -0.074 0.043 0.068 + 4.725 -1.152 0.097 0.129 0.135 0.176 -0.176 -0.205 -0.137 0.050 0.049 -0.006 -0.015 + 4.122 -0.846 0.166 0.081 -0.111 -0.015 -0.147 -0.142 -0.011 0.134 0.042 0.049 -0.009 + 5.079 0.374 0.648 -0.004 -0.437 -0.294 -0.348 -0.095 -0.286 -0.135 -0.131 -0.037 0.001 + 4.699 -0.083 0.319 0.268 -0.135 -0.305 -0.210 -0.270 -0.264 0.084 -0.073 0.057 -0.084 + 6.671 -0.294 0.112 0.157 -0.436 -0.426 -0.183 -0.155 -0.277 0.085 0.009 -0.096 0.126 + 6.744 -0.340 0.201 0.220 -0.646 -0.353 -0.174 -0.298 -0.125 0.122 -0.065 -0.144 0.000 + 6.004 -0.337 0.228 0.667 -0.852 -0.407 -0.300 -0.291 -0.249 0.070 0.049 0.049 -0.178 + 5.859 -0.261 0.114 0.546 -0.976 -0.452 -0.280 0.045 -0.269 0.030 -0.033 0.050 -0.117 + 4.280 -0.261 0.065 0.442 -0.329 -0.236 -0.274 -0.010 -0.225 0.081 -0.100 -0.027 -0.171 + 3.499 -0.133 0.306 0.265 -0.378 -0.387 -0.220 -0.066 -0.219 0.085 -0.173 -0.011 -0.020 + 3.678 0.054 0.627 0.303 -0.284 -0.312 -0.180 -0.210 -0.245 -0.067 0.034 0.003 0.009 + 3.558 0.398 0.452 0.416 -0.341 -0.087 -0.131 -0.019 -0.253 -0.200 -0.096 -0.072 -0.054 + 3.218 0.080 0.293 0.256 -0.200 -0.180 -0.036 -0.066 -0.127 -0.110 -0.365 -0.098 -0.028 + 4.018 0.109 0.238 0.065 -0.400 -0.253 -0.075 -0.205 -0.169 -0.100 -0.204 0.051 0.032 + 3.764 -0.393 0.289 0.158 -0.352 -0.280 -0.165 -0.245 -0.103 -0.253 0.099 0.249 0.005 + 4.980 -0.141 -0.114 0.484 -0.273 -0.579 -0.512 -0.409 -0.025 -0.258 -0.012 0.313 0.143 + 6.295 -0.396 -0.512 0.291 -0.515 -0.537 -0.723 -0.476 -0.068 -0.306 -0.151 0.417 0.089 + 7.133 -0.316 -0.370 0.176 -0.517 -0.349 -0.742 -0.307 0.032 -0.199 -0.330 0.442 -0.089 + 7.336 -0.299 -0.411 0.054 -0.653 -0.367 -0.850 -0.221 0.143 -0.039 -0.331 0.416 -0.200 + 7.280 -0.361 -0.429 -0.023 -0.648 -0.268 -0.690 -0.083 0.292 0.099 -0.427 0.300 -0.243 + 7.417 -0.088 -0.293 0.024 -0.643 -0.325 -0.720 -0.125 0.328 0.191 -0.456 0.215 -0.162 + 7.198 0.049 -0.390 -0.278 -0.764 -0.329 -0.690 -0.212 0.283 0.084 -0.469 0.217 -0.161 + 7.052 0.190 0.290 -0.344 -0.539 -0.236 -0.627 -0.121 0.150 -0.040 -0.094 0.255 -0.240 + 6.580 0.320 -0.003 -0.188 -0.354 -0.206 -0.751 -0.195 0.065 0.034 -0.250 0.332 -0.184 + 5.668 0.702 -0.286 -0.186 -0.312 -0.134 -0.456 -0.229 0.083 0.057 -0.110 0.059 -0.123 + 4.932 0.622 -0.234 -0.138 -0.239 -0.098 -0.346 -0.012 0.214 0.046 -0.279 0.033 -0.114 + 4.961 0.754 0.036 0.007 -0.371 -0.229 -0.284 -0.181 -0.035 0.196 -0.197 0.083 -0.135 + 4.674 0.591 -0.116 -0.002 -0.168 -0.102 -0.208 -0.228 -0.273 -0.079 -0.146 -0.038 -0.187 + 4.504 0.520 -0.346 -0.172 -0.203 -0.305 -0.328 -0.320 -0.203 0.037 -0.128 -0.109 -0.117 + 4.581 0.378 -0.243 -0.176 -0.380 -0.151 -0.271 -0.269 -0.099 0.073 -0.069 -0.057 0.036 + 4.800 0.415 -0.366 -0.149 -0.412 -0.167 -0.309 -0.366 -0.231 0.072 -0.115 -0.019 0.024 + 4.918 0.375 -0.143 -0.121 -0.251 -0.253 -0.309 -0.300 -0.070 0.016 -0.167 0.017 -0.064 + 5.145 0.431 -0.040 0.007 -0.166 -0.105 -0.230 -0.098 -0.147 -0.030 -0.253 -0.046 -0.082 + 5.224 0.430 -0.180 0.029 -0.153 -0.006 -0.179 -0.284 -0.216 -0.158 -0.227 0.024 -0.015 + 5.419 0.585 0.074 -0.330 -0.193 -0.161 -0.212 -0.268 -0.192 -0.059 -0.157 -0.069 0.006 + 5.098 0.842 0.146 -0.219 -0.391 -0.124 -0.299 -0.273 -0.162 -0.054 -0.180 -0.095 0.056 + 7.142 -0.230 0.052 -0.195 -0.280 -0.323 -0.208 -0.201 -0.199 -0.046 -0.131 0.082 0.025 + 6.151 -0.045 -0.045 -0.475 -0.586 -0.429 -0.217 -0.162 -0.211 -0.091 -0.186 0.027 0.028 + 5.167 0.806 -0.022 -0.482 -0.507 0.222 -0.326 0.003 -0.156 -0.284 -0.168 -0.162 -0.137 + 5.030 0.908 -0.043 -0.460 -0.492 0.058 -0.296 -0.031 -0.098 -0.069 -0.127 -0.089 -0.179 + 5.204 1.054 -0.338 -0.661 -0.384 0.072 -0.372 -0.110 -0.176 0.085 -0.020 -0.045 -0.142 + 5.774 0.992 -0.496 -0.646 -0.330 0.294 -0.485 -0.136 -0.051 0.117 -0.119 -0.096 -0.190 + 5.985 0.511 -0.687 -0.434 -0.322 0.297 -0.434 -0.026 0.033 0.025 -0.240 -0.152 -0.319 + 6.631 0.057 -0.906 -0.422 -0.706 0.045 -0.420 0.183 0.203 -0.016 -0.275 0.086 -0.011 + 7.081 0.003 -0.948 -0.167 -0.703 -0.132 -0.542 0.199 0.215 -0.071 -0.273 0.185 -0.151 + 7.443 -0.241 -0.861 -0.108 -0.699 -0.216 -0.401 0.380 0.122 0.031 -0.216 0.260 -0.121 + 7.029 -0.468 -0.795 -0.007 -0.828 -0.438 -0.249 0.187 -0.033 0.124 -0.147 0.026 -0.268 + 6.851 -0.399 -0.523 0.238 -0.722 -0.444 -0.133 0.136 -0.123 0.252 -0.233 0.013 -0.167 + 6.518 -0.542 -0.391 0.325 -0.849 -0.515 -0.165 0.025 -0.263 0.041 -0.123 0.151 -0.010 + 5.837 -0.691 -0.276 0.445 -0.606 -0.439 0.068 -0.001 -0.161 0.018 -0.099 0.143 -0.056 + 4.787 -0.302 -0.531 0.339 -0.373 -0.118 0.133 -0.195 -0.217 0.018 -0.111 0.048 -0.045 + 5.231 -0.386 0.046 0.162 -0.183 -0.127 -0.205 -0.125 -0.029 -0.089 -0.181 -0.112 0.035 + 5.395 -0.297 0.238 -0.073 0.017 -0.052 -0.266 -0.154 -0.041 -0.103 -0.216 -0.014 -0.000 + 7.059 -0.524 0.269 0.189 -0.136 -0.107 -0.463 -0.300 -0.158 -0.148 -0.147 -0.160 -0.109 + 7.809 -0.833 0.062 0.285 -0.021 0.036 -0.293 -0.263 -0.182 -0.160 -0.052 0.005 -0.155 + 7.348 -0.494 -0.047 0.027 -0.006 -0.055 -0.283 -0.179 -0.052 -0.022 0.070 -0.119 -0.096 + 7.404 -0.249 -0.131 -0.169 -0.165 -0.044 -0.106 -0.296 -0.107 0.020 -0.079 -0.259 -0.069 + 6.272 -0.079 -0.373 0.033 -0.560 0.048 -0.040 -0.068 -0.135 0.041 -0.112 -0.168 -0.048 + 6.330 -0.222 -0.337 0.202 -0.533 -0.231 -0.251 -0.344 -0.268 -0.103 0.001 0.143 -0.089 + 8.061 -0.382 -0.307 0.215 -0.327 -0.145 -0.306 -0.199 -0.030 0.086 -0.003 0.088 -0.130 + 6.348 -0.491 -0.230 0.190 -0.269 -0.014 -0.170 0.005 -0.268 0.062 0.054 0.093 -0.072 + 4.904 0.035 -0.099 0.268 -0.221 -0.120 -0.078 -0.199 -0.311 0.062 0.058 0.031 -0.054 + 5.724 -0.532 -0.106 0.480 -0.667 -0.167 -0.127 -0.038 -0.173 0.086 0.120 0.047 -0.024 + 5.912 -0.377 -0.104 0.376 -0.503 -0.080 -0.301 -0.119 -0.274 -0.027 0.037 0.154 -0.028 + 6.215 -0.425 -0.332 0.235 -0.492 -0.172 -0.220 -0.253 -0.235 0.204 -0.073 -0.022 -0.177 + 6.143 -0.353 -0.086 0.414 -0.327 -0.084 -0.107 -0.422 -0.444 -0.007 -0.341 -0.128 -0.134 + 6.750 -0.517 -0.114 0.366 -0.109 -0.008 -0.209 -0.323 -0.386 -0.139 -0.247 -0.039 -0.144 + 6.519 -0.634 0.045 0.442 -0.062 -0.114 -0.119 -0.185 -0.265 -0.201 -0.179 -0.159 -0.343 + 5.984 -0.391 0.384 0.257 -0.245 -0.010 -0.114 -0.356 -0.333 -0.027 -0.257 -0.080 -0.140 + 5.465 -0.429 0.563 0.486 -0.370 -0.044 -0.070 -0.365 -0.273 0.173 -0.258 -0.074 -0.138 + 5.140 -0.508 0.462 0.353 -0.305 -0.044 0.149 -0.333 -0.369 0.039 -0.518 -0.168 -0.091 + 5.225 -0.289 0.676 0.522 -0.363 -0.145 0.204 -0.187 -0.311 0.039 -0.514 -0.194 -0.158 + 6.751 0.021 0.352 0.273 -0.551 -0.124 -0.042 -0.262 -0.277 0.071 -0.301 0.012 -0.017 + 7.111 0.190 0.410 -0.229 -0.611 -0.059 -0.145 -0.375 -0.340 -0.159 -0.189 -0.043 -0.026 + 6.815 0.239 0.224 -0.125 -0.603 0.018 -0.190 -0.369 -0.282 -0.045 -0.230 0.035 -0.078 + 4.886 0.124 0.272 0.008 -0.602 0.021 -0.173 -0.296 -0.241 -0.075 -0.024 -0.057 -0.106 + 4.974 -0.088 0.438 0.161 -0.480 -0.152 -0.325 -0.454 -0.265 -0.133 -0.048 0.133 -0.010 + 4.834 -0.168 -0.012 0.120 -0.623 -0.052 -0.241 -0.257 -0.054 0.105 -0.039 0.223 0.014 + 4.998 -0.477 -0.296 0.058 -0.491 0.189 -0.059 -0.245 -0.182 0.163 -0.036 0.019 -0.086 + 5.091 -0.680 -0.123 0.183 -0.520 -0.018 -0.433 -0.287 -0.169 0.085 -0.093 -0.054 0.026 + 4.668 0.147 0.071 0.279 -0.469 -0.378 -0.476 -0.389 -0.104 -0.007 -0.109 -0.080 0.013 + 2.907 0.136 0.014 0.282 -0.391 -0.063 -0.161 -0.217 -0.103 -0.025 -0.184 0.003 -0.021 + 2.366 0.268 0.124 0.348 -0.204 -0.057 -0.087 -0.086 -0.101 0.048 -0.184 0.057 0.062 + 2.381 0.399 0.081 0.154 -0.241 -0.019 0.002 -0.015 -0.043 -0.022 -0.068 0.147 -0.098 + 2.362 0.271 0.069 0.066 -0.007 0.088 -0.109 -0.117 0.007 -0.103 -0.068 -0.188 -0.257 + 2.422 0.229 -0.063 0.050 -0.006 0.220 -0.022 -0.117 -0.067 0.025 -0.137 -0.090 -0.307 + 3.271 0.348 -0.019 -0.085 -0.163 0.048 -0.318 -0.095 -0.109 0.184 0.080 0.032 -0.085 + 5.788 0.402 -0.547 -0.361 -0.431 0.068 -0.836 -0.117 -0.043 0.298 -0.145 0.047 0.024 + 6.714 0.260 -0.588 -0.502 -0.559 0.056 -0.935 -0.051 0.022 0.100 -0.353 0.019 -0.018 + 7.165 0.037 -0.619 -0.359 -0.591 0.148 -0.958 -0.090 0.015 0.040 -0.418 -0.005 -0.103 + 7.220 -0.069 -0.755 -0.282 -0.547 0.221 -0.969 -0.192 -0.092 0.013 -0.404 0.029 -0.126 + 7.388 0.100 -0.704 -0.300 -0.660 0.236 -0.851 0.057 -0.090 -0.005 -0.407 0.016 -0.137 + 7.473 0.196 -0.696 -0.277 -0.578 0.217 -0.874 0.009 -0.033 -0.057 -0.444 0.169 -0.178 + 7.490 -0.044 -0.742 -0.380 -0.593 -0.044 -0.972 0.040 -0.090 -0.205 -0.401 0.183 -0.232 + 7.957 -0.207 -0.648 -0.177 -0.512 -0.101 -0.827 0.171 -0.024 0.036 -0.387 0.132 -0.467 + 7.658 -0.080 -0.771 -0.214 -0.757 -0.246 -0.539 0.268 0.114 -0.080 -0.333 0.187 -0.501 + 6.882 -0.142 -0.734 -0.203 -0.820 -0.333 -0.629 0.319 0.205 -0.049 -0.312 0.270 -0.288 + 6.098 -0.041 -0.627 -0.055 -0.604 -0.383 -0.635 0.272 0.111 -0.012 -0.148 0.305 -0.213 + 5.327 0.198 -0.514 0.152 -0.663 -0.481 -0.600 0.204 0.001 0.081 -0.072 0.202 -0.587 + 5.561 0.291 -0.540 0.156 -0.674 -0.502 -0.664 0.218 0.119 0.126 0.120 0.212 -0.212 + 5.429 0.391 -0.492 0.187 -0.725 -0.399 -0.778 0.171 0.149 -0.033 -0.104 0.128 -0.187 + 5.374 0.032 -0.562 0.249 -0.746 -0.271 -0.750 -0.027 0.035 -0.117 -0.013 0.223 -0.105 + 5.033 0.340 -0.535 0.266 -0.534 -0.269 -0.647 -0.076 -0.041 -0.122 -0.062 0.152 -0.119 + 4.646 0.352 -0.296 0.111 -0.340 -0.218 -0.564 -0.071 0.128 -0.068 -0.014 0.323 -0.091 + 4.330 0.347 -0.157 0.080 -0.241 -0.168 -0.642 -0.149 -0.051 -0.166 0.120 0.182 -0.203 + 3.913 0.205 -0.235 0.058 -0.265 -0.067 -0.401 0.098 0.081 -0.055 -0.124 0.021 -0.144 + 3.800 0.382 -0.208 0.053 -0.209 -0.185 -0.344 0.087 -0.072 -0.005 -0.022 0.104 -0.048 + 3.533 0.149 -0.378 -0.133 -0.224 -0.179 -0.535 0.068 -0.166 0.057 0.057 0.058 -0.045 + 3.745 0.203 -0.311 0.143 0.075 0.022 -0.173 0.091 0.018 0.039 -0.056 0.102 -0.288 + 3.596 0.358 -0.241 0.172 -0.184 0.084 -0.378 0.037 -0.031 0.040 0.031 0.021 -0.196 + 3.721 0.285 -0.281 0.119 -0.141 0.088 -0.381 0.016 -0.041 -0.068 -0.017 0.148 -0.009 + 3.395 0.137 -0.342 -0.017 -0.180 0.126 -0.194 0.083 0.020 -0.105 0.005 0.156 0.048 + 3.259 -0.001 -0.499 0.029 -0.125 0.000 -0.309 -0.058 0.018 0.034 0.070 0.075 -0.076 + 3.296 0.062 -0.570 0.085 -0.081 -0.052 -0.146 0.043 0.186 0.079 0.121 0.193 0.026 + 3.405 0.229 -0.434 0.093 -0.030 0.112 -0.238 0.037 -0.014 -0.082 0.085 -0.006 -0.096 + 3.464 0.307 -0.223 0.061 0.052 -0.042 -0.230 -0.058 0.055 0.010 -0.088 0.208 0.077 + 3.170 0.137 -0.386 -0.091 -0.086 0.016 -0.130 0.046 0.173 -0.015 -0.050 0.120 0.055 + 3.121 0.282 -0.071 -0.049 -0.184 0.071 -0.293 -0.010 0.129 0.056 -0.123 0.130 0.124 + 3.053 0.213 -0.181 -0.049 -0.329 -0.196 -0.166 0.019 0.000 -0.050 0.065 0.025 -0.078 + 2.964 -0.038 -0.451 -0.078 -0.102 -0.053 -0.179 0.021 0.023 0.078 0.111 0.045 -0.041 + 3.208 0.129 -0.428 -0.022 -0.036 -0.043 -0.260 0.030 -0.038 -0.040 -0.014 -0.030 -0.057 + 3.017 0.188 -0.272 -0.136 0.004 0.002 -0.131 -0.177 -0.114 -0.064 0.158 0.125 0.052 + 3.017 0.249 -0.169 -0.017 0.002 -0.014 -0.183 -0.139 -0.037 0.010 -0.073 0.179 0.229 + 2.919 0.324 -0.097 0.007 -0.197 -0.079 -0.103 -0.027 -0.029 -0.075 -0.002 0.000 -0.085 + 2.826 0.146 -0.340 0.110 -0.084 -0.200 -0.233 -0.070 -0.019 0.124 -0.004 0.006 0.019 + 2.465 0.062 -0.394 -0.017 -0.128 -0.176 -0.106 0.099 0.091 0.148 -0.135 -0.040 0.126 + 2.385 0.142 -0.306 0.045 -0.145 -0.049 -0.259 0.026 -0.187 0.048 -0.038 -0.002 0.078 + 2.454 0.148 -0.331 0.143 -0.138 -0.126 -0.141 -0.092 -0.132 0.131 0.025 0.150 0.049 + 2.128 0.073 -0.282 0.141 -0.019 0.022 -0.148 -0.156 -0.016 0.259 0.074 0.195 0.108 + 2.319 0.276 -0.280 0.239 -0.087 0.003 -0.198 -0.143 -0.114 0.065 0.092 0.211 0.046 + 2.277 0.240 -0.239 0.115 -0.235 -0.075 -0.119 -0.076 0.002 -0.042 0.101 0.205 0.017 + 2.155 0.218 -0.302 -0.061 -0.290 -0.106 -0.053 -0.107 -0.038 0.051 0.166 0.174 0.056 + 1.997 0.282 0.042 0.106 -0.054 0.059 -0.322 -0.146 -0.021 -0.028 0.049 -0.051 -0.040 + 1.572 0.073 -0.157 0.151 -0.138 -0.053 -0.224 -0.067 0.012 0.073 0.012 -0.030 -0.073 + 1.379 0.114 -0.536 -0.074 0.048 -0.066 -0.247 0.065 0.101 0.002 -0.019 0.126 0.057 + 1.547 0.223 -0.286 0.110 0.029 0.136 -0.303 -0.168 -0.036 0.048 -0.029 0.020 0.039 + 1.372 0.426 -0.059 -0.026 -0.055 0.079 -0.220 -0.219 0.129 0.048 0.057 0.060 0.023 + 1.370 0.488 -0.298 -0.050 0.048 -0.121 -0.384 -0.169 0.044 0.065 0.161 -0.010 -0.035 + 1.102 -0.027 -0.239 -0.118 -0.358 0.091 -0.047 0.050 -0.084 0.093 0.268 0.209 0.060 + 1.487 0.382 -0.383 -0.292 0.043 0.144 0.070 0.002 -0.148 0.100 0.211 0.213 0.095 + 1.720 0.474 -0.178 -0.224 -0.306 0.036 -0.191 -0.144 -0.062 -0.042 -0.094 0.161 0.104 + 1.866 0.545 0.063 0.021 -0.151 -0.051 0.013 -0.125 0.114 0.152 -0.058 0.061 -0.128 + 1.363 0.390 -0.118 0.018 -0.161 0.003 -0.248 -0.216 0.108 0.019 0.055 0.084 0.031 + 1.735 0.375 -0.146 0.472 0.203 0.144 -0.234 -0.318 -0.043 0.151 0.074 0.168 0.002 + 1.366 -0.062 -0.336 0.210 0.247 0.155 -0.112 -0.096 -0.059 0.052 0.022 0.036 -0.006 + 2.051 0.416 -0.148 0.193 0.021 -0.033 -0.057 -0.170 -0.197 -0.090 0.031 0.045 0.039 + 2.547 0.547 0.127 0.325 0.072 -0.130 -0.264 -0.328 -0.120 -0.063 0.039 0.017 -0.050 + 2.750 0.033 -0.253 0.146 -0.195 -0.081 -0.168 -0.078 0.043 -0.042 -0.057 0.023 -0.107 + 2.375 -0.211 -0.184 0.305 -0.184 -0.152 -0.107 -0.195 -0.019 0.093 0.064 0.161 -0.042 + 2.229 -0.100 -0.147 -0.014 -0.258 0.000 -0.090 -0.107 -0.161 0.025 0.051 0.084 -0.039 + 2.241 0.132 -0.024 0.307 -0.055 0.049 -0.010 0.122 -0.085 -0.023 -0.155 0.014 0.056 + 2.337 0.087 -0.140 0.173 0.073 -0.053 0.084 0.032 0.025 0.030 -0.057 -0.018 -0.154 + 2.559 0.245 -0.374 0.073 -0.039 0.006 0.003 -0.221 0.016 0.227 0.160 0.027 0.012 + 2.303 0.049 -0.444 0.081 0.004 0.101 -0.104 -0.278 -0.027 0.038 0.219 0.059 -0.076 + 2.411 0.281 -0.156 0.103 -0.068 0.191 0.011 -0.110 -0.058 -0.028 0.081 0.029 0.015 + 2.357 0.422 -0.452 -0.052 0.047 0.258 0.026 -0.120 -0.098 -0.030 -0.088 -0.032 0.074 + 2.464 0.137 -0.334 0.026 0.195 0.188 -0.016 -0.078 -0.050 0.061 -0.134 0.056 -0.040 + 2.755 -0.063 -0.365 0.030 0.105 -0.013 0.026 -0.039 -0.044 0.041 0.037 0.154 0.054 + 2.759 -0.509 -0.392 -0.105 0.083 0.097 0.212 -0.024 -0.044 0.025 -0.135 -0.054 -0.074 + 3.165 -0.795 -0.324 -0.071 0.019 0.109 0.078 -0.095 -0.075 0.200 0.088 0.021 0.053 + 3.557 -1.035 -0.127 -0.045 -0.329 -0.100 0.135 0.188 -0.112 0.316 0.142 -0.070 0.098 + 4.478 -0.747 0.027 -0.007 -0.248 -0.016 0.003 0.115 -0.163 0.137 0.024 -0.063 -0.013 + 4.898 -0.819 -0.081 -0.119 -0.160 -0.061 -0.103 -0.131 -0.226 0.132 -0.088 -0.031 -0.026 + 5.153 -1.067 0.032 -0.099 -0.195 -0.027 0.032 -0.127 -0.052 -0.031 -0.137 -0.010 -0.078 + 5.504 -1.146 -0.050 0.075 0.063 -0.006 -0.205 -0.064 -0.127 0.058 -0.119 0.011 0.033 + 5.314 -1.286 -0.238 0.023 0.117 0.044 -0.132 0.080 -0.036 0.155 0.106 -0.011 -0.031 + 5.779 -1.179 -0.060 0.284 0.097 -0.066 -0.368 -0.180 -0.132 0.121 0.052 0.034 0.162 + 5.872 -1.278 -0.181 -0.061 -0.111 -0.176 0.076 -0.158 -0.220 0.233 -0.022 -0.014 -0.052 + 5.853 -1.125 -0.477 -0.045 0.102 -0.054 0.102 0.038 -0.201 0.088 -0.078 -0.153 -0.068 + 5.764 -1.247 -0.411 -0.080 -0.012 0.035 0.002 0.015 -0.144 0.032 -0.091 -0.131 -0.076 + 5.494 -1.086 -0.273 0.108 0.076 0.017 0.002 0.073 -0.201 -0.084 0.002 -0.055 0.161 + 5.331 -1.324 -0.136 0.191 0.009 0.040 0.031 0.022 -0.073 0.015 0.055 -0.082 0.074 + 4.694 -1.375 -0.244 -0.013 -0.011 -0.247 -0.009 0.089 0.097 0.140 -0.053 0.035 0.039 + 5.230 -1.106 -0.201 -0.021 -0.078 -0.002 -0.112 -0.029 -0.143 0.081 -0.068 -0.041 -0.007 + 5.461 -1.035 -0.236 0.003 -0.118 -0.079 0.134 -0.070 -0.328 0.177 0.003 0.015 -0.062 + 4.920 -0.812 -0.202 0.087 -0.089 -0.080 0.084 -0.111 -0.247 0.095 0.077 -0.051 0.019 + 4.616 -0.359 0.050 -0.111 0.058 0.062 0.009 0.027 -0.257 -0.003 0.005 0.088 0.027 + 4.809 -0.387 -0.468 0.362 0.125 0.179 -0.222 -0.232 -0.065 -0.050 -0.016 -0.010 -0.004 + 4.569 -0.507 -0.494 0.301 0.014 0.099 -0.372 -0.161 0.021 0.103 -0.032 0.072 -0.007 + 3.100 0.224 -0.130 0.041 0.120 0.048 -0.161 -0.129 0.011 0.169 0.050 0.049 -0.136 + 2.513 0.303 0.128 0.152 0.069 0.153 -0.031 0.035 -0.067 0.045 -0.019 -0.093 -0.107 + 4.938 -0.633 0.428 0.183 0.217 -0.354 0.066 -0.204 -0.326 0.023 0.031 -0.108 0.192 + 4.587 -0.821 0.382 0.286 0.180 -0.217 0.049 -0.278 -0.184 0.065 0.091 -0.178 0.181 + 2.282 0.059 -0.065 -0.041 0.094 0.251 0.112 -0.303 -0.113 0.016 -0.080 0.236 0.032 + 3.015 -0.345 0.107 -0.174 0.090 0.068 -0.145 -0.310 -0.223 -0.015 -0.055 0.108 0.028 + 3.264 -0.443 0.312 0.009 0.127 0.353 -0.325 -0.192 -0.127 0.102 0.027 0.095 0.032 + 3.069 0.279 0.266 0.081 0.073 -0.071 -0.167 -0.133 -0.142 0.001 -0.065 0.134 -0.100 + 2.830 0.249 0.165 0.274 -0.134 -0.096 -0.208 -0.153 -0.078 -0.046 -0.030 0.153 -0.011 + 4.537 0.092 0.261 0.256 -0.319 0.018 -0.206 -0.097 -0.087 0.006 -0.045 0.132 -0.142 + 9.861 -0.296 0.565 0.216 -0.051 -0.204 -0.238 -0.166 -0.076 -0.246 -0.079 0.058 -0.246 + 12.345 -0.380 0.411 0.442 0.001 -0.284 -0.445 -0.161 -0.318 -0.352 -0.183 -0.104 -0.339 + 13.929 -0.458 0.120 0.624 -0.285 -0.205 -0.645 0.010 -0.585 -0.313 -0.282 0.037 -0.346 + 14.748 -0.547 0.135 0.641 -0.405 -0.247 -0.724 0.066 -0.641 -0.314 -0.266 0.020 -0.371 + 14.912 -0.589 0.153 0.673 -0.436 -0.240 -0.789 0.091 -0.679 -0.325 -0.288 0.064 -0.470 + 14.912 -0.665 0.206 0.721 -0.408 -0.286 -0.759 0.053 -0.690 -0.318 -0.297 0.075 -0.497 + 14.667 -0.597 0.224 0.709 -0.386 -0.269 -0.744 0.036 -0.694 -0.267 -0.328 0.088 -0.528 + 13.997 -0.511 0.215 0.682 -0.287 -0.208 -0.691 0.032 -0.610 -0.254 -0.381 0.122 -0.511 + 12.120 -0.109 0.124 0.196 -0.327 -0.337 -0.351 0.133 -0.427 -0.190 -0.392 0.059 -0.348 + 7.670 0.197 0.556 0.403 0.022 -0.096 -0.151 0.193 -0.263 -0.017 -0.374 0.016 -0.286 + 6.308 0.326 0.528 0.625 0.131 -0.033 -0.320 0.380 -0.227 -0.089 -0.370 0.197 -0.433 + 6.095 0.472 0.627 0.790 0.082 -0.078 -0.333 0.264 -0.164 -0.075 -0.198 0.227 -0.439 + 5.981 0.573 0.533 0.716 0.057 -0.071 -0.334 0.342 -0.210 -0.084 -0.288 0.252 -0.384 + 7.370 0.174 0.419 0.421 0.417 -0.009 -0.082 -0.279 -0.248 -0.131 -0.263 0.138 -0.326 + 11.081 -0.511 0.330 0.191 0.103 -0.220 -0.199 -0.201 -0.206 -0.296 -0.272 -0.017 -0.444 + 11.855 -0.867 0.423 0.278 0.064 -0.392 -0.280 -0.047 -0.243 -0.329 -0.133 -0.020 -0.310 + 12.547 -0.465 0.225 0.380 -0.092 -0.342 -0.367 -0.040 -0.438 -0.337 -0.298 0.032 -0.466 + 13.393 -0.339 0.073 0.544 -0.092 -0.432 -0.418 -0.139 -0.560 -0.297 -0.165 -0.021 -0.480 + 13.453 -0.145 0.032 0.660 -0.235 -0.412 -0.478 -0.113 -0.557 -0.277 -0.181 -0.073 -0.484 + 13.565 -0.063 -0.081 0.715 -0.407 -0.321 -0.506 -0.118 -0.500 -0.284 -0.232 -0.064 -0.501 + 13.136 0.040 -0.157 0.730 -0.349 -0.282 -0.526 -0.070 -0.490 -0.278 -0.250 -0.062 -0.537 + 12.013 0.099 -0.144 0.626 -0.109 -0.290 -0.373 -0.025 -0.442 -0.326 -0.279 0.009 -0.563 + 8.715 -0.021 0.263 0.590 0.097 -0.264 -0.294 0.096 -0.327 -0.238 -0.308 0.165 -0.422 + 5.951 0.349 0.606 0.623 0.198 -0.274 -0.011 0.239 -0.073 -0.242 -0.164 0.050 -0.387 + 6.085 0.245 0.392 0.330 0.025 -0.013 0.184 0.378 -0.111 -0.152 -0.213 -0.201 -0.333 + 6.042 0.314 0.733 0.204 0.054 -0.157 -0.063 0.226 -0.095 -0.232 -0.202 -0.120 -0.307 + 5.704 0.168 0.678 0.012 0.137 -0.184 -0.046 -0.156 -0.083 -0.184 -0.111 -0.154 -0.171 + 5.811 -0.074 0.894 0.245 0.253 -0.146 0.075 -0.200 -0.188 -0.320 -0.050 -0.245 -0.231 + 5.946 -0.218 0.871 0.194 0.103 0.031 0.009 0.122 -0.192 -0.282 -0.068 -0.327 -0.352 + 8.699 -0.469 0.521 -0.130 -0.111 0.097 -0.095 -0.010 -0.070 -0.027 -0.128 -0.147 -0.320 + 10.366 -0.583 0.598 0.003 -0.119 -0.114 -0.211 -0.112 -0.180 -0.168 -0.166 -0.112 -0.352 + 11.213 -0.781 0.611 0.238 -0.062 -0.470 -0.243 -0.008 -0.273 -0.459 -0.061 -0.016 -0.433 + 12.582 -0.500 0.220 0.381 0.057 -0.469 -0.346 -0.179 -0.297 -0.414 -0.156 -0.039 -0.428 + 13.656 -0.382 0.088 0.486 -0.309 -0.296 -0.459 -0.050 -0.560 -0.329 -0.173 -0.003 -0.382 + 14.086 -0.343 -0.002 0.683 -0.398 -0.251 -0.604 -0.052 -0.611 -0.273 -0.325 0.058 -0.413 + 14.383 -0.318 -0.088 0.684 -0.413 -0.298 -0.590 -0.044 -0.620 -0.299 -0.340 0.060 -0.412 + 14.441 -0.288 -0.073 0.632 -0.401 -0.349 -0.536 -0.126 -0.561 -0.349 -0.347 0.057 -0.405 + 14.048 -0.197 -0.117 0.642 -0.237 -0.352 -0.583 -0.078 -0.537 -0.364 -0.430 0.146 -0.437 + 13.398 -0.258 0.057 0.517 -0.066 -0.378 -0.579 -0.039 -0.407 -0.405 -0.470 0.184 -0.322 + 12.120 -0.122 0.234 0.272 -0.168 -0.346 -0.535 0.208 -0.265 -0.303 -0.480 0.003 -0.267 + 12.344 -0.252 0.326 0.423 -0.123 -0.253 -0.671 -0.039 -0.375 -0.286 -0.460 0.060 -0.296 + 12.636 -0.308 0.157 0.546 0.026 -0.277 -0.527 -0.163 -0.477 -0.361 -0.412 0.214 -0.136 + 12.747 0.007 -0.098 0.716 -0.192 -0.310 -0.547 -0.133 -0.421 -0.266 -0.437 0.174 -0.192 + 13.207 0.118 -0.266 0.668 -0.347 -0.180 -0.606 -0.054 -0.456 -0.350 -0.370 0.143 -0.274 + 13.601 0.075 -0.308 0.717 -0.452 -0.179 -0.655 -0.041 -0.503 -0.309 -0.345 0.143 -0.388 + 13.539 0.113 -0.391 0.775 -0.477 -0.203 -0.696 0.020 -0.478 -0.227 -0.375 0.135 -0.509 + 13.074 0.157 -0.391 0.840 -0.449 -0.167 -0.695 0.056 -0.375 -0.090 -0.483 0.074 -0.487 + 11.584 0.481 -0.545 0.819 -0.361 -0.093 -0.502 0.052 -0.213 -0.201 -0.532 -0.029 -0.370 + 7.432 0.775 -0.325 0.411 0.097 0.007 -0.154 0.067 -0.252 -0.063 -0.417 -0.348 -0.369 + 5.612 0.681 0.096 0.599 0.414 -0.053 -0.334 0.014 -0.153 -0.096 -0.329 -0.222 -0.406 + 5.764 0.888 0.079 0.449 0.403 -0.008 -0.192 -0.057 -0.156 -0.112 -0.409 -0.063 -0.448 + 5.325 0.715 0.256 0.502 0.403 -0.091 -0.151 0.017 -0.210 -0.018 -0.266 -0.190 -0.407 + 5.650 0.445 0.104 0.513 0.307 -0.071 -0.227 -0.058 -0.185 -0.234 -0.284 -0.040 -0.306 + 5.958 0.330 -0.067 0.276 0.045 -0.045 0.074 0.077 -0.039 0.030 -0.251 -0.118 -0.240 + 8.601 0.113 -0.440 0.164 -0.187 -0.179 0.018 0.000 -0.008 -0.013 -0.416 -0.337 -0.238 + 6.305 0.415 -0.060 0.217 -0.092 -0.091 0.047 0.050 -0.015 0.018 -0.360 -0.306 -0.191 + 4.857 0.320 0.306 0.341 0.077 -0.120 -0.139 -0.057 -0.168 0.029 0.071 0.169 -0.156 + 4.807 0.283 -0.020 0.232 -0.071 -0.151 -0.243 0.149 -0.155 -0.047 -0.036 -0.096 -0.077 + 4.749 0.111 -0.110 0.167 0.034 -0.168 -0.188 -0.105 -0.230 -0.169 -0.059 -0.075 -0.183 + 4.676 0.078 0.008 0.222 -0.009 -0.292 -0.140 0.004 -0.230 -0.102 -0.154 -0.098 -0.137 + 4.985 0.022 -0.216 0.275 0.096 -0.117 -0.069 -0.042 -0.294 -0.032 -0.027 0.000 -0.213 + 5.258 0.098 -0.217 0.240 0.024 -0.165 -0.140 0.015 -0.221 -0.068 -0.106 0.128 0.001 + 5.054 0.183 -0.019 0.234 -0.157 -0.105 -0.216 -0.090 -0.084 -0.204 -0.042 0.073 -0.095 + 5.126 0.131 -0.094 0.167 -0.077 -0.037 -0.139 0.099 -0.154 -0.059 0.150 0.160 -0.125 + 5.287 0.075 -0.076 0.163 -0.021 -0.089 -0.148 0.064 -0.083 0.063 -0.009 0.038 -0.032 + 5.646 0.044 -0.211 0.054 0.015 -0.009 -0.066 -0.102 -0.298 -0.276 -0.098 0.006 -0.042 + 5.673 0.149 -0.208 0.153 -0.033 -0.178 -0.157 -0.092 -0.231 -0.110 -0.046 0.075 -0.039 + 5.844 0.195 -0.351 0.064 0.001 -0.078 -0.152 -0.164 -0.144 0.038 -0.083 0.030 -0.074 + 6.117 0.137 -0.102 0.234 0.087 -0.068 0.014 -0.092 -0.215 -0.145 -0.070 -0.073 -0.104 + 5.898 0.068 -0.066 0.133 -0.025 -0.175 -0.233 -0.044 -0.170 0.132 0.009 0.017 -0.041 + 6.015 0.116 -0.023 0.097 0.121 -0.021 -0.238 -0.155 -0.201 0.042 0.072 0.104 -0.150 + 6.339 0.036 -0.060 0.260 0.166 0.001 -0.046 -0.160 -0.276 0.025 0.092 0.150 -0.102 + 9.467 0.007 -0.319 0.248 -0.129 -0.270 -0.689 -0.486 -0.209 -0.023 -0.124 -0.229 -0.040 + 9.179 0.143 -0.256 0.134 -0.089 -0.345 -0.967 -0.724 -0.091 0.158 0.022 -0.234 0.108 + 7.793 -0.564 0.061 0.220 -0.265 -0.875 -0.600 -0.363 0.280 0.481 0.263 -0.338 0.050 + 7.819 -0.273 -0.515 0.013 -0.026 -0.356 -0.427 -0.078 0.133 0.162 -0.025 -0.265 -0.098 + 9.996 0.318 -1.148 -0.331 -0.337 -0.057 -0.384 -0.085 -0.201 0.270 -0.014 -0.198 0.089 + 12.329 0.825 -1.190 -0.851 -0.341 0.080 -0.435 0.216 -0.355 0.243 -0.355 -0.305 -0.058 + 12.948 0.855 -1.400 -0.657 -0.378 0.037 -0.345 0.224 -0.300 0.275 -0.581 -0.242 -0.060 + 13.531 0.541 -1.439 -0.304 -0.514 -0.088 -0.315 0.161 -0.147 0.277 -0.650 -0.190 -0.004 + 13.694 0.644 -1.359 -0.277 -0.490 -0.216 -0.277 0.096 -0.133 0.159 -0.503 -0.211 -0.047 + 14.416 0.358 -1.271 -0.136 -0.494 -0.438 -0.277 0.170 -0.089 0.091 -0.508 -0.102 -0.143 + 14.057 0.525 -1.064 -0.035 -0.477 -0.623 -0.352 0.172 -0.188 0.063 -0.432 0.101 -0.281 + 13.988 0.491 -0.848 0.289 -0.534 -0.655 -0.541 0.166 -0.426 0.077 -0.469 0.220 -0.338 + 13.117 0.462 -0.685 0.638 -0.444 -0.660 -0.580 0.016 -0.492 0.015 -0.546 0.331 -0.380 + 12.539 0.403 -0.572 0.814 -0.360 -0.507 -0.423 -0.116 -0.469 -0.090 -0.677 0.304 -0.386 + 12.496 0.564 -0.481 0.759 -0.354 -0.603 -0.463 -0.219 -0.470 -0.055 -0.586 0.325 -0.410 + 13.256 0.316 -0.416 0.811 -0.454 -0.590 -0.457 -0.160 -0.520 -0.037 -0.448 0.219 -0.450 + 13.631 0.205 -0.435 0.816 -0.575 -0.636 -0.398 -0.087 -0.549 -0.020 -0.413 0.149 -0.465 + 13.548 0.119 -0.326 0.819 -0.658 -0.566 -0.396 -0.083 -0.580 -0.046 -0.358 0.015 -0.418 + 13.414 -0.129 -0.120 0.881 -0.634 -0.535 -0.422 -0.064 -0.541 0.044 -0.316 0.035 -0.383 + 12.802 -0.033 -0.072 0.732 -0.707 -0.419 -0.213 0.037 -0.454 0.040 -0.349 -0.067 -0.375 + 11.928 0.184 -0.032 0.564 -0.609 -0.391 -0.004 0.052 -0.387 0.046 -0.279 -0.140 -0.303 + 10.359 0.647 0.097 0.317 0.034 -0.293 0.099 0.041 -0.363 0.119 -0.376 -0.161 -0.310 + 10.014 0.809 0.114 0.199 0.187 -0.448 0.204 -0.061 -0.259 0.323 -0.598 -0.114 -0.226 + 10.465 0.675 0.165 0.129 0.184 -0.492 0.123 0.013 -0.333 0.281 -0.613 -0.135 -0.159 + 10.695 0.515 0.199 0.204 0.110 -0.503 0.061 -0.017 -0.315 0.232 -0.599 -0.191 -0.116 + 11.223 0.068 0.339 0.340 -0.236 -0.321 -0.059 -0.131 -0.296 0.175 -0.452 -0.201 -0.146 + 11.790 -0.140 0.379 0.334 -0.632 -0.197 -0.096 -0.203 -0.268 0.333 -0.325 -0.243 -0.196 + 11.805 -0.240 0.269 0.381 -0.876 0.001 -0.234 -0.102 -0.401 0.309 -0.291 -0.318 -0.217 + 11.714 -0.353 0.430 0.344 -0.820 0.033 -0.251 -0.111 -0.400 0.166 -0.313 -0.393 -0.192 + 11.586 -0.349 0.506 0.390 -0.736 0.025 -0.296 -0.090 -0.454 0.112 -0.292 -0.391 -0.182 + 11.590 -0.418 0.565 0.419 -0.660 -0.023 -0.302 -0.154 -0.497 0.117 -0.214 -0.346 -0.212 + 11.716 -0.419 0.399 0.526 -0.665 -0.216 -0.201 -0.118 -0.534 0.100 -0.233 -0.302 -0.211 + 11.613 0.037 -0.005 0.573 -0.300 -0.588 -0.103 -0.037 -0.593 0.051 -0.220 -0.339 -0.140 + 11.075 0.421 -0.101 0.353 0.153 -0.706 -0.273 0.064 -0.638 0.027 -0.217 -0.399 -0.050 + 10.414 0.802 -0.208 0.347 0.349 -0.652 -0.324 -0.098 -0.555 0.028 -0.252 -0.353 -0.025 + 10.216 1.056 -0.323 0.409 0.120 -0.536 -0.338 0.025 -0.414 -0.068 -0.367 -0.304 0.020 + 10.705 0.609 0.049 0.270 0.107 -0.570 -0.325 0.093 -0.392 -0.116 -0.313 -0.406 0.088 + 10.820 0.630 -0.028 0.510 -0.058 -0.632 -0.275 0.091 -0.541 -0.001 -0.228 -0.358 -0.035 + 11.424 0.328 -0.094 0.831 -0.190 -0.727 -0.226 0.069 -0.507 -0.021 -0.206 -0.224 -0.165 + 11.200 0.155 0.180 0.788 -0.340 -0.543 -0.208 0.112 -0.470 0.034 -0.272 -0.128 -0.145 + 9.416 0.567 0.512 0.527 0.091 -0.271 -0.174 -0.030 -0.240 0.086 -0.582 -0.058 -0.243 + 9.257 0.491 0.595 0.514 0.166 -0.305 -0.129 -0.138 -0.006 -0.197 -0.472 0.044 -0.263 + 9.325 0.539 0.620 0.325 0.127 -0.247 -0.019 -0.132 -0.086 -0.247 -0.486 -0.023 -0.161 + 9.196 0.385 0.755 0.336 0.004 -0.258 0.034 -0.098 -0.218 -0.034 -0.469 -0.074 -0.311 + 8.680 0.418 0.527 0.338 -0.031 -0.427 0.096 0.000 -0.042 -0.018 -0.408 -0.150 -0.269 + 7.705 0.352 0.049 0.273 -0.031 -0.145 0.158 -0.096 0.024 -0.008 -0.270 -0.220 -0.293 + 6.357 0.373 0.182 0.295 -0.068 -0.211 0.086 0.011 0.157 0.060 -0.326 -0.230 -0.239 + 5.828 0.139 -0.082 0.102 -0.184 -0.230 0.199 0.172 0.258 0.111 -0.476 -0.210 -0.193 + 5.238 0.108 -0.009 -0.010 -0.317 -0.133 0.087 0.109 0.024 -0.007 -0.463 -0.178 -0.183 + 9.107 -0.778 -0.148 0.181 -0.483 0.096 -0.394 -0.015 -0.092 -0.193 -0.043 -0.139 -0.134 + 11.707 -1.464 0.132 -0.173 -0.312 0.078 -0.392 -0.255 -0.073 -0.144 -0.182 -0.070 -0.234 + 12.255 -2.321 0.533 -0.006 -0.265 0.045 -0.368 -0.188 -0.064 -0.177 -0.068 -0.149 -0.170 + 12.408 -2.807 0.653 0.120 -0.482 0.158 -0.088 -0.290 0.001 -0.086 0.002 -0.077 -0.174 + 12.780 -2.699 0.550 0.309 -0.461 0.084 0.019 -0.219 -0.147 -0.274 -0.131 -0.173 -0.119 + 12.748 -2.500 0.418 0.414 -0.418 0.050 -0.024 -0.289 -0.200 -0.194 -0.027 -0.136 -0.312 + 12.519 -2.437 0.248 0.494 -0.202 -0.075 0.006 -0.025 -0.093 -0.230 0.001 -0.054 -0.285 + 12.791 -2.229 0.415 0.563 -0.326 -0.146 0.022 -0.023 -0.111 -0.238 -0.014 0.037 -0.085 + 12.107 -2.009 0.166 0.703 -0.544 -0.156 -0.059 -0.065 -0.091 -0.303 -0.205 0.141 -0.098 + 10.358 -1.293 0.125 0.981 -0.448 -0.130 0.044 -0.078 -0.070 -0.109 -0.182 0.034 -0.189 + 12.689 0.575 -0.516 0.274 -0.408 -0.646 -0.246 -0.218 -0.131 -0.192 -0.205 0.057 -0.236 + 14.627 0.471 -0.894 0.232 -0.518 -0.797 -0.324 -0.129 -0.224 -0.064 -0.201 0.203 -0.292 + 15.281 0.122 -0.813 0.084 -0.663 -0.832 -0.452 0.085 -0.224 0.059 -0.211 0.140 -0.367 + 15.462 0.049 -0.904 -0.006 -0.681 -0.750 -0.606 0.231 -0.327 0.061 -0.230 0.152 -0.426 + 15.489 -0.125 -0.828 -0.250 -0.580 -0.775 -0.488 0.415 -0.328 0.179 -0.325 0.046 -0.463 + 15.174 -0.242 -0.773 -0.249 -0.492 -0.784 -0.483 0.412 -0.298 0.218 -0.268 0.023 -0.413 + 14.856 -0.245 -0.790 -0.269 -0.497 -0.823 -0.440 0.388 -0.328 0.193 -0.233 0.003 -0.377 + 14.229 0.003 -0.624 -0.191 -0.434 -0.954 -0.403 0.231 -0.321 0.189 -0.147 0.024 -0.361 + 12.811 0.125 -0.062 0.115 -0.598 -1.103 -0.212 0.048 -0.276 0.167 -0.197 0.105 -0.355 + 10.745 -0.220 0.221 0.246 -0.579 -0.993 -0.168 -0.204 -0.321 0.127 -0.117 0.077 -0.184 + 8.173 -0.130 -0.212 0.044 -0.444 -0.666 -0.042 0.229 -0.045 0.302 0.094 -0.002 -0.201 + 7.164 -0.065 0.009 0.045 -0.688 -0.776 -0.383 0.336 -0.064 0.037 0.110 0.182 -0.350 + 6.756 -0.214 -0.028 0.079 -0.407 -0.790 -0.265 0.352 -0.110 0.100 0.132 0.152 -0.187 + 7.785 -1.177 0.136 0.364 -0.574 -0.246 -0.596 0.104 0.047 -0.074 0.071 -0.009 -0.199 + 8.241 -1.235 -0.024 0.138 -0.565 -0.115 -0.582 0.025 0.219 0.075 0.089 -0.137 -0.259 + 6.366 -0.176 -0.124 -0.079 -0.373 -0.616 -0.440 0.155 0.117 0.180 -0.036 -0.023 -0.153 + 6.257 -0.284 -0.152 -0.304 -0.425 -0.522 -0.324 0.374 0.174 0.271 -0.054 -0.062 -0.128 + 6.431 -0.199 -0.136 -0.161 -0.262 -0.681 -0.509 0.415 -0.039 0.112 -0.078 0.072 -0.228 + 10.851 -1.365 -0.068 -0.217 -0.184 -0.076 -0.441 0.002 -0.060 -0.231 -0.239 0.024 -0.042 + 11.475 -1.293 -0.279 -0.320 -0.341 -0.164 -0.507 -0.040 -0.124 -0.170 -0.152 0.061 0.005 + 8.587 -1.261 0.083 -0.410 -0.245 -0.053 -0.343 0.111 -0.085 -0.087 -0.101 0.023 -0.039 + 9.615 -0.888 0.537 -0.498 -0.281 -0.006 -0.469 0.048 -0.199 -0.095 -0.162 -0.125 -0.118 + 10.889 -0.473 0.531 -0.116 -0.328 -0.254 -0.401 -0.190 -0.328 -0.301 -0.118 -0.186 -0.242 + 12.153 -0.140 0.377 0.259 -0.331 -0.531 -0.692 0.179 -0.723 -0.061 -0.224 0.002 -0.372 + 12.656 0.113 0.134 0.177 -0.376 -0.641 -0.656 0.084 -0.581 -0.167 -0.162 0.061 -0.240 + 12.772 0.110 0.169 0.132 -0.556 -0.613 -0.666 0.106 -0.411 -0.125 -0.164 0.075 -0.215 + 13.121 0.177 -0.203 0.065 -0.489 -0.561 -0.815 0.203 -0.422 -0.007 -0.191 0.320 -0.350 + 13.331 0.148 -0.359 -0.106 -0.394 -0.630 -0.810 0.300 -0.234 0.030 -0.236 0.312 -0.455 + 13.306 0.162 -0.387 -0.205 -0.353 -0.621 -0.846 0.258 -0.130 0.065 -0.293 0.321 -0.372 + 13.037 0.314 -0.241 -0.356 -0.405 -0.459 -0.826 -0.024 0.045 0.161 -0.464 0.412 -0.338 + 12.327 0.164 -0.185 -0.385 -0.299 -0.393 -0.527 -0.183 0.169 0.202 -0.535 0.194 -0.122 + 11.416 0.079 -0.451 -0.557 -0.303 -0.312 -0.514 -0.017 0.202 0.135 -0.520 -0.015 -0.090 + 10.399 -1.473 0.689 -0.596 -0.005 -0.198 -0.365 0.124 0.181 0.013 -0.243 -0.134 -0.018 + 10.456 -2.030 0.997 -0.687 0.155 -0.020 -0.158 -0.058 0.005 -0.166 -0.128 -0.124 -0.034 + 9.919 -2.049 1.212 -0.748 -0.020 -0.080 -0.125 -0.018 0.036 -0.151 -0.221 0.053 -0.001 + 10.015 -1.980 1.152 -0.726 0.051 -0.237 -0.320 -0.081 -0.201 -0.121 -0.265 0.104 -0.013 + 9.798 -1.854 1.064 -0.552 0.058 -0.424 -0.227 0.045 -0.106 -0.062 -0.164 -0.049 -0.260 + 8.644 -1.627 0.692 -0.531 0.088 -0.306 -0.253 -0.078 -0.190 -0.016 0.026 0.055 -0.032 + 7.802 -0.853 0.537 -0.561 -0.185 -0.412 -0.409 -0.243 -0.285 -0.249 -0.158 0.096 -0.074 + 8.013 -0.834 0.311 -0.331 -0.231 -0.058 -0.486 -0.097 -0.352 -0.162 -0.357 -0.196 -0.215 + 9.200 -1.256 0.485 -0.262 -0.369 0.034 -0.530 -0.082 -0.317 -0.237 -0.272 -0.294 -0.231 + 10.383 -1.978 0.729 0.151 -0.566 0.077 -0.350 -0.014 -0.162 -0.094 -0.236 -0.173 -0.096 + 12.469 -1.735 0.441 -0.150 -0.707 -0.023 -0.312 -0.106 -0.171 -0.160 -0.157 -0.178 -0.215 + 12.916 -1.440 0.097 -0.179 -0.794 -0.081 -0.356 -0.215 -0.208 -0.245 -0.203 -0.063 -0.192 + 12.006 -0.243 0.227 0.403 -0.408 -0.305 -0.419 -0.320 -0.083 -0.173 -0.364 0.024 -0.082 + 11.766 0.694 -0.265 0.342 -0.023 -0.562 -0.649 0.014 -0.529 0.003 -0.506 -0.002 -0.085 + 11.709 0.587 -0.286 0.360 -0.000 -0.391 -0.976 0.357 -0.626 -0.044 -0.406 0.039 -0.094 + 11.264 0.365 -0.268 0.635 -0.013 -0.283 -0.805 -0.018 -0.410 -0.085 -0.435 0.046 0.028 + 9.205 0.261 -0.069 0.824 0.191 -0.439 -0.697 -0.071 -0.354 -0.122 -0.383 -0.004 0.103 + 6.833 -0.118 0.303 0.577 0.073 -0.158 -0.248 0.078 -0.013 -0.060 -0.405 -0.122 0.213 + 6.722 -0.399 0.479 0.761 0.246 -0.092 0.009 0.009 -0.058 -0.165 -0.348 -0.331 -0.083 + 7.810 -0.258 0.098 0.566 -0.152 -0.012 -0.205 -0.100 0.018 -0.077 -0.320 -0.090 -0.085 + 12.181 -0.321 -0.336 0.482 -0.252 -0.287 -0.698 0.023 -0.330 -0.092 -0.382 0.161 -0.146 + 12.988 0.023 -0.368 0.106 -0.128 -0.765 -0.637 0.022 -0.313 0.043 -0.294 0.205 -0.066 + 13.053 0.151 -0.439 0.066 -0.096 -0.947 -0.610 -0.025 -0.314 0.143 -0.306 0.339 -0.133 + 13.354 0.173 -0.490 0.108 -0.249 -0.942 -0.584 -0.008 -0.337 0.137 -0.259 0.281 -0.171 + 13.472 0.012 -0.353 0.201 -0.331 -0.897 -0.535 0.020 -0.364 0.065 -0.145 0.160 -0.118 + 13.067 0.049 -0.289 0.332 -0.371 -0.821 -0.604 0.177 -0.509 0.058 -0.075 0.027 -0.056 + 12.857 -0.027 -0.210 0.367 -0.320 -0.801 -0.538 0.056 -0.501 0.107 -0.173 0.078 -0.077 + 12.496 0.009 -0.208 0.430 -0.302 -0.790 -0.519 0.119 -0.675 0.174 -0.206 0.058 -0.100 + 12.231 -0.004 -0.195 0.415 -0.095 -0.863 -0.502 0.205 -0.788 0.136 -0.185 -0.038 -0.124 + 12.003 0.074 -0.066 0.262 0.311 -0.831 -0.563 0.161 -0.781 0.066 -0.390 -0.026 -0.216 + 11.373 0.619 -0.042 -0.038 0.244 -0.418 -0.410 -0.170 -0.745 0.204 -0.449 -0.265 -0.201 + 10.459 0.900 0.215 -0.366 0.032 -0.240 -0.119 -0.159 -0.808 0.057 -0.442 -0.028 -0.135 + 9.944 0.855 0.471 -0.428 -0.211 -0.295 -0.000 -0.083 -0.772 0.026 -0.474 -0.034 -0.091 + 9.990 0.839 0.514 -0.373 -0.270 -0.353 -0.078 0.051 -0.795 0.013 -0.453 -0.146 -0.110 + 10.492 0.808 0.466 -0.370 -0.406 -0.361 -0.164 0.118 -0.848 -0.063 -0.423 -0.175 -0.072 + 10.999 0.968 0.283 -0.500 -0.422 -0.354 -0.191 0.074 -1.005 0.018 -0.296 -0.080 -0.087 + 11.807 0.835 0.098 -0.441 -0.366 -0.342 -0.298 -0.047 -0.866 0.075 -0.147 -0.020 -0.118 + 12.169 0.900 -0.200 -0.542 -0.426 -0.360 -0.292 -0.221 -0.718 0.247 0.025 -0.017 -0.112 + 12.541 0.868 -0.503 -0.592 -0.407 -0.321 -0.392 -0.320 -0.504 0.270 0.060 -0.139 -0.112 + 12.813 0.825 -0.676 -0.504 -0.466 -0.399 -0.385 -0.380 -0.321 0.437 0.126 -0.262 -0.129 + 13.071 0.645 -0.834 -0.309 -0.487 -0.382 -0.396 -0.391 -0.204 0.490 -0.010 -0.355 -0.112 + 13.257 0.520 -0.963 -0.306 -0.626 -0.385 -0.368 -0.224 -0.112 0.429 -0.257 -0.203 -0.069 + 13.429 0.282 -0.788 -0.193 -0.747 -0.161 -0.599 -0.136 -0.092 0.433 -0.395 -0.129 -0.056 + 13.056 0.310 -0.674 -0.228 -0.665 -0.191 -0.587 -0.183 -0.111 0.446 -0.366 -0.085 -0.026 + 12.647 0.332 -0.597 -0.207 -0.685 -0.152 -0.761 -0.222 -0.175 0.619 -0.388 -0.051 0.033 + 11.953 0.119 -0.316 0.045 -0.538 -0.037 -0.865 -0.324 -0.460 0.640 -0.374 -0.091 0.048 + 10.546 0.155 -0.041 0.074 -0.291 0.044 -0.611 -0.274 -0.534 0.333 -0.340 -0.208 -0.026 + 10.991 0.147 -0.093 0.082 -0.312 0.137 -0.758 -0.236 -0.464 0.298 -0.455 -0.088 -0.027 + 11.849 0.032 -0.178 0.155 -0.497 0.055 -0.809 -0.286 -0.350 0.409 -0.458 -0.054 0.045 + 12.363 0.012 -0.238 0.087 -0.497 -0.075 -0.931 -0.255 -0.307 0.468 -0.464 0.009 0.064 + 12.642 -0.012 -0.290 0.064 -0.477 -0.196 -0.954 -0.256 -0.221 0.455 -0.411 -0.010 0.102 + 12.729 0.093 -0.466 0.233 -0.443 -0.357 -0.873 -0.252 -0.184 0.349 -0.359 -0.111 0.076 + 12.508 0.404 -0.654 0.123 -0.040 -0.487 -0.902 -0.063 -0.317 0.177 -0.193 -0.147 -0.078 + 11.683 1.104 -0.893 -0.225 0.277 -0.376 -0.996 -0.063 -0.211 -0.009 -0.206 0.055 -0.266 + 10.921 1.356 -0.785 -0.376 0.354 -0.244 -0.993 -0.227 -0.205 -0.011 -0.297 0.134 -0.270 + 10.335 1.564 -0.725 -0.509 0.317 -0.205 -0.846 -0.417 -0.210 0.030 -0.333 0.101 -0.169 + 9.885 1.842 -0.680 -0.583 0.118 -0.031 -0.719 -0.462 -0.232 -0.090 -0.270 0.135 -0.153 + 10.137 1.980 -0.760 -0.651 0.074 -0.134 -0.553 -0.373 -0.282 -0.209 -0.235 0.161 -0.181 + 10.149 1.773 -0.595 -0.654 0.067 -0.176 -0.502 -0.259 -0.396 -0.255 -0.179 0.217 -0.183 + 9.831 1.417 -0.544 -0.647 0.048 -0.259 -0.498 -0.294 -0.390 -0.383 -0.052 0.297 -0.216 + 10.627 1.429 -0.570 -0.767 0.206 -0.481 -0.350 -0.275 -0.524 -0.286 -0.085 0.254 -0.310 + 10.794 1.187 -0.400 -0.699 0.181 -0.418 -0.354 -0.213 -0.512 -0.251 0.093 0.064 -0.318 + 10.393 1.107 -0.524 -0.616 0.136 -0.441 -0.360 -0.354 -0.508 -0.244 0.212 0.032 -0.394 + 11.015 1.193 -0.717 -0.448 0.096 -0.574 -0.394 -0.461 -0.465 -0.130 0.201 -0.007 -0.477 + 11.428 1.008 -0.626 -0.126 -0.048 -0.553 -0.420 -0.420 -0.372 -0.021 0.138 -0.185 -0.289 + 11.651 0.715 -0.522 0.015 -0.157 -0.388 -0.507 -0.504 -0.280 0.128 -0.168 -0.114 -0.152 + 11.948 0.338 -0.408 0.099 -0.240 -0.285 -0.748 -0.388 -0.359 0.288 -0.292 -0.076 0.027 + 12.312 0.088 -0.241 0.042 -0.319 -0.218 -0.806 -0.316 -0.335 0.314 -0.401 -0.078 0.047 + 11.885 -0.029 -0.119 0.058 -0.251 -0.101 -0.612 -0.297 -0.253 0.320 -0.487 -0.144 0.087 + 11.124 -0.517 0.549 -0.189 -0.108 -0.023 -0.716 -0.129 -0.161 -0.043 -0.472 -0.116 -0.013 + 10.293 -1.459 0.921 -0.293 0.245 -0.085 -0.665 -0.059 -0.238 -0.078 -0.463 0.007 -0.030 + 9.921 -1.769 1.273 -0.287 0.087 -0.064 -0.590 -0.136 -0.247 -0.084 -0.465 0.026 -0.014 + 10.002 -1.860 1.285 -0.425 0.031 -0.051 -0.580 -0.119 -0.240 -0.081 -0.266 0.033 -0.089 + 10.606 -1.609 1.030 -0.502 -0.094 0.108 -0.598 0.090 -0.009 -0.013 -0.369 -0.088 -0.123 + 10.403 -1.570 0.826 -0.227 -0.263 0.257 -0.816 0.025 -0.066 -0.113 -0.282 0.101 0.118 + 9.294 -0.731 0.351 0.294 -0.428 0.078 -0.621 -0.153 0.251 -0.218 -0.201 0.077 0.104 + 8.472 0.468 0.152 -0.076 -0.191 -0.279 -0.250 -0.107 0.090 0.018 -0.391 -0.079 -0.001 + 8.514 0.537 0.165 0.125 0.369 -0.247 -0.142 -0.074 0.044 -0.249 -0.343 -0.225 -0.122 + 8.962 0.702 0.092 0.082 0.310 -0.274 -0.046 -0.149 -0.075 -0.090 -0.280 -0.263 -0.283 + 9.478 0.455 0.133 0.097 0.303 -0.204 -0.171 -0.123 -0.072 0.022 -0.150 -0.306 -0.292 + 9.974 0.509 -0.163 0.330 0.391 -0.409 -0.103 -0.108 -0.192 -0.048 -0.156 -0.240 -0.243 + 9.961 0.086 0.124 0.323 0.444 -0.315 -0.094 -0.034 -0.504 0.160 -0.230 -0.193 -0.285 + 9.787 0.171 0.249 0.144 0.395 -0.360 -0.026 -0.028 -0.585 0.089 -0.220 -0.166 -0.142 + 10.316 0.439 0.174 -0.149 0.194 -0.379 -0.167 -0.130 -0.473 0.117 -0.016 -0.244 -0.090 + 11.061 0.667 0.025 -0.337 0.038 -0.470 -0.401 -0.111 -0.605 0.272 -0.001 -0.232 -0.050 + 11.466 0.605 0.129 -0.447 0.133 -0.382 -0.504 -0.113 -0.627 0.378 -0.098 -0.257 -0.024 + 11.630 0.583 -0.018 -0.279 0.197 -0.447 -0.524 -0.110 -0.643 0.407 -0.104 -0.401 0.078 + 11.948 0.457 -0.105 -0.217 0.180 -0.415 -0.539 -0.091 -0.608 0.318 -0.134 -0.389 -0.019 + 11.659 0.502 -0.071 -0.215 0.194 -0.455 -0.501 -0.148 -0.642 0.344 -0.203 -0.347 -0.041 + 11.526 0.592 -0.156 -0.205 0.278 -0.513 -0.501 -0.162 -0.670 0.318 -0.257 -0.352 -0.075 + 11.564 0.600 -0.256 -0.067 0.319 -0.488 -0.507 -0.241 -0.674 0.226 -0.233 -0.367 -0.078 + 11.713 0.577 -0.306 -0.103 0.200 -0.347 -0.512 -0.282 -0.644 0.155 -0.183 -0.493 0.039 + 11.471 0.590 -0.220 -0.060 0.238 -0.246 -0.484 -0.109 -0.654 0.239 -0.317 -0.322 -0.048 + 11.190 0.419 -0.100 -0.095 0.226 -0.202 -0.384 -0.181 -0.474 0.155 -0.219 -0.399 -0.076 + 10.461 0.351 -0.104 -0.229 0.138 -0.165 -0.397 -0.095 -0.501 0.259 -0.123 -0.290 -0.067 + 10.142 0.045 -0.107 -0.223 0.024 -0.284 -0.600 -0.089 -0.587 0.305 -0.137 -0.348 -0.015 + 10.139 0.087 -0.332 -0.105 0.094 -0.422 -0.575 0.102 -0.362 0.246 -0.176 -0.367 0.039 + 11.133 0.164 -0.454 -0.190 -0.082 -0.343 -0.596 0.143 -0.494 0.230 -0.194 -0.337 0.031 + 11.558 0.113 -0.674 -0.247 -0.100 -0.543 -0.732 0.214 -0.510 0.238 -0.171 -0.328 0.096 + 12.209 0.148 -0.705 -0.083 -0.152 -0.636 -0.761 0.231 -0.391 0.351 -0.109 -0.231 0.203 + 12.488 0.199 -0.843 0.059 -0.281 -0.903 -0.631 0.194 -0.220 0.207 0.030 -0.192 0.232 + 13.211 0.131 -0.650 0.125 -0.243 -0.875 -0.557 0.318 -0.205 0.105 0.024 -0.316 0.139 + 12.979 0.195 -0.826 0.325 -0.435 -0.656 -0.514 0.324 -0.242 0.158 0.035 -0.163 0.047 + 12.593 0.154 -0.876 0.526 -0.714 -0.540 -0.377 0.448 -0.340 0.279 0.002 -0.088 -0.052 + 12.300 0.080 -0.597 0.460 -0.787 -0.597 -0.238 0.429 -0.425 0.359 -0.041 -0.140 -0.071 + 11.930 0.296 -0.593 0.491 -0.797 -0.627 -0.128 0.381 -0.553 0.493 -0.174 -0.084 -0.140 + 11.317 0.333 -0.342 0.308 -0.612 -0.520 0.093 0.140 -0.523 0.492 -0.198 -0.201 -0.075 + 10.382 0.365 0.004 -0.071 -0.280 -0.390 0.012 0.105 -0.380 0.382 -0.432 -0.111 0.007 + 9.577 0.511 -0.195 -0.298 -0.013 -0.611 -0.063 0.196 -0.317 0.250 -0.275 -0.009 -0.079 + 8.858 0.331 -0.060 -0.072 0.228 -0.610 0.057 0.149 -0.267 0.083 -0.286 -0.009 -0.032 + 8.044 -0.234 0.365 0.038 0.188 -0.718 0.045 0.017 -0.258 0.032 -0.370 -0.220 -0.102 + 6.924 0.089 0.081 0.550 -0.381 -0.462 -0.327 0.192 -0.226 -0.050 -0.197 -0.152 -0.024 + 6.673 -0.019 -0.057 0.610 -0.485 -0.316 -0.191 0.214 -0.415 -0.361 -0.222 -0.069 -0.038 + 6.632 -0.067 -0.140 0.655 -0.407 -0.165 -0.197 0.103 -0.353 -0.183 -0.152 -0.082 -0.083 + 6.748 0.059 -0.073 0.739 -0.309 -0.105 -0.381 0.162 -0.416 -0.197 -0.113 -0.132 -0.033 + 6.696 0.107 -0.124 0.748 -0.234 -0.298 -0.535 -0.003 -0.337 -0.296 -0.200 -0.026 0.054 + 6.519 0.189 -0.112 0.699 -0.161 -0.192 -0.342 0.061 -0.431 -0.260 -0.342 -0.234 -0.077 + 6.176 0.255 -0.106 0.635 -0.059 -0.194 -0.385 -0.024 -0.259 -0.256 -0.305 -0.220 -0.082 + 6.283 0.209 -0.145 0.571 -0.177 -0.242 -0.466 -0.078 -0.312 -0.293 -0.171 -0.226 0.021 + 6.685 0.312 -0.329 0.501 -0.114 -0.211 -0.416 0.049 -0.130 -0.247 -0.266 -0.084 0.049 + 7.222 -0.069 -0.379 0.416 -0.256 -0.024 -0.280 0.004 0.102 -0.194 -0.226 0.028 -0.004 + 7.369 0.086 -0.276 0.402 -0.272 -0.138 -0.389 -0.122 0.097 -0.169 -0.169 0.031 -0.017 + 7.277 0.440 -0.126 0.246 -0.234 -0.209 -0.465 -0.100 -0.071 -0.364 -0.229 -0.170 0.048 + 7.572 0.644 -0.309 0.301 -0.186 -0.273 -0.512 -0.290 0.033 -0.343 -0.361 -0.207 0.005 + 7.357 0.784 -0.435 0.315 -0.126 -0.213 -0.748 -0.258 0.019 -0.382 -0.442 -0.312 -0.014 + 7.586 0.595 -0.503 0.321 0.022 -0.271 -0.706 -0.279 -0.295 -0.297 -0.365 -0.216 -0.057 + 7.660 0.546 -0.533 0.043 -0.159 -0.275 -0.686 -0.336 -0.330 -0.078 -0.278 -0.145 -0.021 + 7.590 0.523 -0.405 -0.135 -0.326 -0.282 -0.522 -0.095 -0.432 -0.286 -0.282 -0.163 0.051 + 7.664 0.312 -0.210 0.138 -0.263 -0.188 -0.368 0.006 -0.561 -0.185 -0.413 -0.158 -0.062 + 7.717 0.378 -0.154 0.264 -0.334 -0.406 -0.369 0.221 -0.394 -0.194 -0.335 -0.253 -0.226 + 7.746 0.452 -0.235 0.121 -0.320 -0.415 -0.254 0.170 -0.386 -0.270 -0.374 -0.193 -0.112 + 7.819 0.304 -0.192 0.108 -0.396 -0.305 -0.208 0.021 -0.376 -0.117 -0.388 -0.187 -0.220 + 7.798 0.300 -0.283 0.184 -0.414 -0.328 -0.042 0.042 -0.550 -0.361 -0.402 -0.160 -0.144 + 7.919 0.364 -0.358 0.150 -0.534 -0.355 -0.163 -0.030 -0.572 -0.336 -0.224 -0.048 -0.018 + 7.771 0.366 -0.514 -0.075 -0.404 -0.265 -0.182 -0.038 -0.406 -0.133 -0.004 0.082 -0.177 + 7.685 0.250 -0.663 0.106 -0.346 -0.195 -0.228 -0.101 -0.263 0.037 0.007 -0.037 -0.335 + 7.634 0.242 -0.648 -0.018 -0.236 -0.175 -0.221 -0.101 -0.356 -0.009 0.123 -0.082 -0.260 + 7.354 0.013 -0.818 0.112 -0.356 -0.188 -0.353 -0.066 -0.159 0.272 0.243 0.104 -0.365 + 6.918 -0.108 -0.593 0.221 -0.227 -0.323 -0.419 -0.022 -0.233 0.148 -0.037 -0.062 -0.282 + 6.786 -0.365 -0.599 0.129 -0.088 -0.233 -0.257 0.182 -0.262 0.100 0.048 -0.053 -0.299 + 6.498 -0.536 -0.291 0.147 -0.005 -0.259 -0.258 0.115 -0.085 0.166 0.033 -0.143 -0.354 + 6.971 -0.466 -0.293 0.193 -0.329 -0.301 -0.320 0.156 -0.195 0.035 0.119 0.064 -0.274 + 7.202 -0.485 -0.452 0.008 -0.277 -0.341 -0.343 0.194 -0.080 0.198 0.107 -0.052 -0.312 + 7.342 -0.425 -0.430 -0.180 -0.425 -0.203 -0.315 0.156 0.046 0.307 0.075 -0.151 -0.209 + 7.235 -0.429 -0.511 -0.368 -0.656 -0.244 -0.266 0.243 0.164 0.220 0.068 0.001 -0.222 + 7.417 -0.299 -0.490 -0.416 -0.553 -0.284 -0.317 0.220 0.020 0.106 0.047 0.076 -0.326 + 7.544 -0.350 -0.401 -0.363 -0.467 -0.260 -0.350 0.308 0.060 0.019 -0.184 0.014 -0.166 + 7.280 -0.372 -0.292 -0.156 -0.377 -0.241 -0.458 0.260 0.294 0.065 -0.255 0.029 -0.172 + 7.280 -0.407 -0.233 0.067 -0.165 -0.260 -0.466 0.367 0.127 -0.027 -0.145 0.041 -0.194 + 7.047 -0.618 -0.172 0.198 -0.076 -0.174 -0.361 0.437 0.072 0.040 -0.119 0.005 -0.162 + 7.142 -0.359 -0.018 -0.001 -0.263 -0.382 -0.428 0.377 0.182 0.043 -0.229 0.152 -0.053 + 6.747 -0.598 -0.070 0.075 -0.199 -0.466 -0.418 0.325 0.074 0.032 -0.032 0.151 -0.111 + 6.042 -1.075 -0.234 0.182 -0.183 -0.354 -0.282 0.346 0.021 0.005 -0.062 0.006 -0.113 + 5.968 -0.912 -0.385 0.201 -0.076 -0.454 -0.415 0.205 -0.090 0.147 0.035 0.002 -0.101 + 5.908 -1.053 -0.243 0.165 0.135 -0.377 -0.462 0.130 -0.092 0.111 0.210 0.135 -0.157 + 5.828 -1.106 -0.161 0.009 -0.073 -0.229 -0.371 0.115 -0.026 0.038 0.187 -0.022 -0.069 + 5.632 -1.139 -0.108 -0.119 -0.281 -0.377 -0.523 0.160 0.088 0.125 0.195 0.153 -0.068 + 5.736 -1.115 0.074 -0.009 -0.114 -0.250 -0.203 0.253 -0.070 -0.035 0.210 0.071 -0.126 + 5.213 -1.224 0.110 0.032 -0.203 -0.152 -0.166 0.174 -0.110 0.087 0.266 0.172 -0.060 + 5.586 -1.288 -0.162 0.163 -0.119 -0.360 -0.199 0.293 -0.055 0.032 0.175 0.178 -0.075 + 5.793 -1.202 -0.104 0.112 -0.039 -0.418 -0.282 0.411 0.128 -0.017 0.224 0.052 -0.101 + 5.542 -1.068 -0.247 -0.006 -0.134 -0.271 -0.297 0.341 -0.152 -0.133 0.043 0.016 -0.177 + 5.416 -1.099 -0.295 -0.010 -0.201 -0.229 -0.329 0.296 -0.076 -0.044 0.053 0.220 0.033 + 5.288 -1.137 -0.302 0.142 -0.175 -0.351 -0.355 0.164 -0.070 -0.044 0.057 0.075 0.070 + 5.576 -0.589 -0.179 0.152 -0.164 -0.409 -0.456 0.238 -0.120 -0.075 0.090 -0.025 -0.202 + 6.674 -0.058 -0.101 0.100 -0.029 -0.281 -0.576 -0.013 -0.172 -0.159 0.009 0.008 0.076 + 7.416 0.212 -0.147 -0.338 -0.138 -0.152 -0.558 -0.192 -0.109 0.033 -0.016 -0.056 0.051 + 7.628 0.393 -0.468 -0.491 -0.187 -0.341 -0.724 0.013 0.016 0.011 -0.009 -0.074 -0.099 + 7.641 0.472 -0.441 -0.274 -0.357 -0.399 -0.747 -0.209 -0.003 0.106 0.148 -0.180 -0.074 + 7.750 0.653 -0.381 -0.329 -0.319 -0.239 -0.568 -0.248 0.020 0.099 0.115 -0.079 -0.066 + 8.097 0.364 -0.497 -0.174 -0.294 -0.263 -0.532 -0.112 -0.070 0.154 0.101 -0.014 -0.124 + 8.177 0.512 -0.469 -0.196 -0.371 -0.321 -0.586 -0.388 -0.115 0.039 -0.090 0.036 -0.053 + 8.254 0.549 -0.414 -0.203 -0.303 -0.290 -0.841 -0.370 -0.083 -0.073 -0.100 -0.029 -0.106 + 8.111 0.488 -0.429 0.078 -0.308 -0.278 -0.728 -0.272 -0.042 0.041 -0.044 -0.045 -0.085 + 8.060 0.496 -0.475 0.239 -0.213 -0.227 -0.675 -0.301 -0.159 0.055 -0.124 -0.168 -0.104 + 8.055 0.263 -0.279 0.712 -0.318 -0.369 -0.694 -0.233 -0.040 0.039 -0.116 -0.127 -0.086 + 7.655 0.171 -0.280 0.504 -0.438 -0.098 -0.646 -0.221 0.023 0.008 0.038 0.071 -0.089 + 7.022 0.503 -0.117 0.566 -0.166 -0.488 -0.601 -0.273 -0.046 0.033 -0.092 -0.048 -0.129 + 5.816 0.135 -0.304 0.371 -0.037 -0.111 -0.482 -0.101 0.075 0.167 0.003 -0.073 -0.073 + 5.883 0.427 -0.249 0.136 -0.084 -0.346 -0.580 -0.054 0.032 0.169 -0.014 -0.013 -0.097 + 5.463 0.262 -0.329 0.164 -0.109 -0.161 -0.571 -0.186 -0.110 0.151 -0.239 -0.139 0.070 + 6.027 -0.156 -0.431 0.080 0.100 -0.369 -0.441 -0.090 0.046 0.003 -0.128 -0.063 -0.081 + 6.376 -0.186 -0.147 0.018 0.184 -0.599 -0.550 -0.126 -0.024 -0.347 -0.149 0.013 -0.019 + 6.545 -0.267 -0.187 0.129 -0.188 -0.364 -0.324 -0.381 0.057 -0.259 -0.337 0.005 0.002 + 6.494 -0.481 -0.149 0.597 -0.183 -0.214 -0.529 -0.312 -0.015 -0.228 -0.233 0.093 -0.145 + 7.299 -0.287 -0.061 0.636 -0.407 -0.212 -0.693 -0.289 0.008 -0.260 -0.165 0.090 -0.250 + 7.187 -0.517 -0.050 0.735 -0.390 -0.281 -0.605 -0.102 0.113 -0.198 -0.061 0.312 -0.207 + 7.011 -0.360 0.114 0.829 -0.414 -0.304 -0.711 -0.162 -0.067 -0.103 0.037 0.284 -0.262 + 7.077 -0.482 0.018 0.780 -0.453 -0.283 -0.744 -0.174 -0.159 -0.154 0.052 0.278 -0.209 + 7.178 -0.456 -0.085 0.689 -0.527 -0.265 -0.858 -0.235 -0.147 -0.169 -0.002 0.043 -0.232 + 7.261 -0.347 -0.084 0.536 -0.679 -0.519 -0.793 -0.072 -0.207 -0.179 -0.104 0.086 -0.341 + 6.365 -0.262 -0.126 0.502 -0.479 -0.514 -0.745 -0.053 -0.056 -0.069 -0.123 0.149 -0.144 + 6.110 0.104 0.007 0.221 -0.185 -0.266 -0.679 0.021 -0.137 -0.189 -0.279 0.072 -0.226 + 5.971 0.215 -0.032 0.353 -0.074 -0.253 -0.803 -0.081 -0.236 -0.187 -0.240 0.111 -0.230 + 5.777 0.171 -0.031 0.544 -0.022 -0.137 -0.670 -0.123 -0.210 -0.319 -0.273 0.044 -0.166 + 5.091 0.216 -0.078 0.460 -0.212 -0.155 -0.682 -0.165 -0.202 -0.320 -0.188 0.153 -0.236 + 5.017 0.365 -0.085 0.340 -0.103 -0.157 -0.622 -0.185 -0.064 -0.148 -0.291 0.101 -0.082 + 5.239 0.133 -0.068 0.447 -0.111 -0.266 -0.750 -0.135 -0.146 -0.192 -0.182 0.095 -0.173 + 4.888 0.159 0.073 0.495 -0.220 -0.269 -0.556 -0.134 -0.225 -0.190 -0.330 0.113 -0.161 + 4.394 0.138 -0.085 0.357 -0.141 -0.346 -0.552 0.021 -0.188 -0.057 -0.181 -0.054 -0.060 + 4.183 0.063 -0.066 0.368 -0.124 -0.328 -0.485 0.034 -0.157 -0.200 -0.235 0.157 -0.216 + 4.464 -0.028 -0.087 0.431 0.052 0.006 -0.749 -0.121 0.066 -0.006 -0.161 0.005 -0.206 + 4.614 -0.144 -0.369 0.370 0.061 -0.005 -0.657 -0.129 -0.055 -0.160 -0.233 0.253 0.048 + 4.295 0.111 -0.232 0.271 -0.185 -0.048 -0.556 0.006 -0.017 -0.080 -0.262 -0.199 -0.145 + 4.555 0.219 -0.318 0.190 -0.272 0.082 -0.535 -0.043 0.122 0.022 -0.231 -0.163 -0.161 + 4.866 0.386 -0.584 0.086 -0.395 -0.197 -0.497 0.113 0.193 0.129 -0.219 -0.251 -0.044 + 5.009 0.387 -0.709 -0.150 -0.294 0.123 -0.631 -0.052 0.197 0.163 -0.125 -0.248 -0.132 + 5.636 0.031 -0.695 0.016 -0.366 0.219 -0.710 -0.000 0.308 0.200 -0.298 -0.194 -0.029 + 6.008 -0.017 -0.670 0.026 -0.360 0.258 -0.771 0.021 0.296 0.327 -0.235 -0.110 0.121 + 6.329 0.246 -0.533 0.016 -0.345 0.052 -0.716 0.001 0.134 0.397 -0.171 0.035 -0.099 + 5.359 0.499 -0.385 0.232 -0.303 -0.147 -0.738 0.025 0.107 0.321 -0.267 -0.048 -0.016 + 4.877 0.702 -0.152 0.299 -0.113 -0.102 -0.789 0.003 -0.052 0.086 -0.309 -0.124 -0.082 + 4.190 0.738 -0.098 0.051 -0.349 -0.281 -0.683 -0.106 -0.144 0.062 -0.362 -0.152 -0.123 + 3.584 0.310 -0.424 -0.043 -0.187 -0.291 -0.502 -0.004 0.025 0.241 -0.312 -0.192 -0.017 + 3.605 0.268 -0.220 -0.022 -0.055 -0.135 -0.235 -0.118 0.017 0.237 -0.234 -0.116 0.081 + 4.262 -0.331 0.131 0.140 -0.104 0.074 -0.426 -0.169 0.013 -0.004 -0.072 -0.132 -0.057 + 3.590 -0.042 0.132 0.081 -0.110 -0.064 -0.235 -0.176 -0.073 -0.061 -0.039 -0.085 -0.159 + 3.220 -0.082 -0.027 0.126 -0.083 -0.080 -0.193 -0.270 -0.212 -0.107 -0.118 -0.085 -0.013 + 3.507 -0.128 -0.070 0.239 -0.082 -0.044 -0.313 -0.213 -0.097 -0.006 -0.058 0.073 -0.017 + 3.970 -0.070 0.156 0.462 -0.119 -0.076 -0.344 -0.167 -0.152 -0.164 -0.204 -0.131 0.076 + 3.962 -0.168 -0.191 0.424 0.077 -0.093 -0.379 -0.134 -0.240 -0.154 -0.203 -0.186 0.028 + 4.063 -0.076 -0.411 0.202 -0.205 -0.368 -0.159 -0.116 -0.217 -0.268 -0.224 -0.082 -0.037 + 4.327 -0.098 -0.552 0.275 -0.244 -0.145 -0.038 -0.113 -0.090 -0.308 -0.212 -0.168 -0.006 + 4.820 -0.249 -0.659 0.249 -0.322 -0.124 0.003 0.178 -0.082 -0.259 -0.145 -0.109 -0.118 + 5.114 -0.185 -0.640 0.466 -0.299 -0.086 -0.033 0.111 -0.134 -0.236 -0.139 -0.301 -0.361 + 5.640 0.027 -0.396 0.499 -0.566 -0.413 -0.182 0.211 -0.024 -0.053 -0.162 -0.298 -0.329 + 6.109 0.072 -0.680 0.267 -0.644 -0.260 -0.323 0.118 -0.102 0.041 0.032 -0.120 -0.272 + 5.408 0.134 -0.649 0.338 -0.656 -0.178 -0.205 0.134 -0.172 0.013 -0.062 -0.171 -0.037 + 5.761 -0.061 -0.525 0.370 -0.834 -0.228 -0.152 0.200 -0.076 -0.022 -0.169 -0.163 -0.201 + 5.769 -0.125 -0.518 0.269 -0.827 -0.327 0.057 0.226 -0.103 0.078 -0.157 -0.098 -0.153 + 5.914 0.027 -0.230 0.316 -0.997 -0.296 -0.041 0.279 -0.175 -0.012 -0.232 -0.089 -0.182 + 5.412 0.104 0.041 0.114 -1.012 -0.054 0.020 0.273 -0.182 -0.117 -0.318 -0.004 -0.230 + 4.974 -0.019 0.098 0.328 -0.782 -0.176 -0.066 0.044 -0.130 0.150 -0.158 -0.043 -0.121 + 4.501 -0.223 -0.135 0.109 -0.748 -0.324 -0.003 -0.101 -0.060 0.130 -0.239 -0.084 -0.055 + 3.928 0.112 -0.236 0.040 -0.429 -0.139 -0.005 0.032 -0.151 0.057 -0.095 -0.087 -0.087 + 3.788 -0.030 -0.484 0.410 -0.247 -0.363 -0.073 0.095 0.000 -0.031 -0.248 -0.100 -0.111 + 4.860 -0.476 -0.561 0.239 0.174 -0.059 0.098 0.142 -0.056 -0.090 -0.189 -0.012 -0.015 + 5.774 -1.185 -0.286 -0.044 -0.038 -0.078 -0.099 0.087 0.096 -0.153 -0.166 0.066 -0.014 + 6.522 -1.523 -0.297 0.080 -0.103 -0.053 -0.145 -0.211 -0.088 -0.104 -0.271 -0.024 0.022 + 7.005 -1.635 -0.247 0.272 -0.172 -0.210 -0.167 -0.023 -0.119 -0.138 -0.168 -0.004 -0.188 + 7.418 -1.514 -0.204 -0.027 -0.222 -0.140 -0.259 0.047 0.165 -0.158 -0.105 -0.015 -0.052 + 7.877 -1.470 -0.173 0.251 0.015 -0.170 -0.159 -0.050 0.046 -0.033 -0.039 0.042 -0.120 + 8.001 -1.323 -0.298 0.187 -0.052 -0.238 -0.187 -0.000 -0.039 -0.188 -0.392 0.076 0.029 + 8.054 -0.812 -0.498 0.057 0.009 0.036 -0.305 0.125 -0.097 -0.098 -0.323 0.175 0.052 + 7.386 -0.030 -0.373 -0.007 0.143 -0.050 -0.159 0.017 -0.015 -0.004 -0.264 0.088 -0.021 + 9.307 0.772 0.317 0.030 -0.153 -0.439 -0.562 -0.113 -0.020 0.159 -0.432 0.100 -0.061 + 11.294 0.702 0.080 -0.181 -0.277 -0.345 -0.781 -0.152 -0.086 0.285 -0.392 0.132 -0.082 + 12.124 0.658 -0.174 -0.365 -0.307 -0.272 -1.055 0.035 -0.163 0.370 -0.404 0.159 -0.190 + 10.835 0.999 -0.255 -0.042 -0.308 -0.453 -1.159 0.144 0.175 0.248 -0.274 -0.130 -0.185 + 10.934 0.858 -0.303 0.034 -0.337 -0.409 -0.983 0.156 -0.038 0.332 -0.312 -0.137 -0.094 + 10.909 0.826 -0.353 -0.201 -0.253 -0.334 -0.890 0.068 0.016 0.373 -0.217 -0.138 -0.292 + 11.154 0.776 -0.407 -0.330 -0.244 -0.295 -0.863 0.110 -0.008 0.404 -0.191 -0.153 -0.265 + 11.661 0.742 -0.496 -0.394 -0.334 -0.243 -0.806 0.143 -0.044 0.438 -0.222 -0.202 -0.226 + 12.190 0.658 -0.545 -0.432 -0.326 -0.285 -0.694 0.122 -0.156 0.567 -0.339 -0.156 -0.264 + 12.435 0.518 -0.544 -0.430 -0.354 -0.240 -0.601 -0.011 -0.076 0.536 -0.298 -0.235 -0.244 + 12.406 0.583 -0.642 -0.388 -0.369 -0.294 -0.467 -0.060 -0.131 0.571 -0.298 -0.232 -0.264 + 12.077 0.609 -0.591 -0.459 -0.342 -0.327 -0.405 -0.068 -0.152 0.591 -0.257 -0.232 -0.323 + 11.958 0.571 -0.522 -0.496 -0.346 -0.330 -0.372 -0.091 -0.163 0.566 -0.202 -0.212 -0.342 + 12.006 0.626 -0.529 -0.479 -0.401 -0.304 -0.323 -0.171 -0.136 0.538 -0.146 -0.227 -0.340 + 11.933 0.767 -0.619 -0.382 -0.465 -0.205 -0.409 -0.102 -0.220 0.527 -0.134 -0.179 -0.384 + 11.926 0.740 -0.534 -0.334 -0.514 -0.210 -0.324 -0.127 -0.260 0.515 -0.139 -0.116 -0.388 + 11.634 0.846 -0.546 -0.327 -0.574 -0.267 -0.106 -0.152 -0.315 0.453 -0.119 0.012 -0.393 + 11.349 0.793 -0.386 -0.425 -0.623 -0.303 0.061 -0.238 -0.280 0.368 -0.082 0.043 -0.287 + 11.093 0.742 -0.312 -0.480 -0.612 -0.441 0.224 -0.187 -0.244 0.148 -0.090 0.126 -0.121 + 10.211 0.823 -0.093 -0.400 -0.649 -0.628 0.460 -0.006 0.068 -0.317 -0.154 0.124 0.020 + 8.992 0.527 0.456 -0.345 -0.434 -0.499 0.390 -0.092 0.153 -0.220 -0.365 0.034 -0.033 + 7.875 -0.295 0.071 -0.014 -0.136 -0.408 0.153 -0.120 0.020 0.101 -0.271 0.029 -0.155 + 7.283 -0.328 0.018 -0.156 -0.121 -0.063 0.140 0.034 0.105 0.012 -0.303 0.006 -0.115 + 7.238 -0.290 0.100 -0.149 -0.108 0.095 -0.002 0.178 0.119 0.148 -0.232 0.028 -0.081 + 7.236 -0.359 0.334 0.072 0.051 -0.111 -0.164 -0.026 -0.108 0.145 -0.127 0.143 0.081 + 7.603 -0.615 0.445 0.083 -0.037 -0.260 -0.012 -0.049 -0.131 0.109 -0.056 0.139 -0.147 + 7.665 -0.714 0.397 0.010 0.154 -0.216 0.194 -0.035 -0.218 0.030 -0.167 -0.124 -0.201 + 7.574 -0.554 0.294 -0.003 0.048 -0.252 0.084 0.005 -0.156 0.176 -0.207 -0.112 -0.085 + 7.307 -0.680 0.322 0.166 -0.069 -0.148 0.027 -0.072 -0.143 0.168 -0.176 0.126 0.014 + 7.721 -0.366 0.419 0.015 -0.092 -0.209 0.002 0.033 -0.141 0.131 -0.244 -0.176 -0.070 + 7.992 -0.028 0.180 -0.321 -0.243 -0.152 0.106 0.027 0.060 0.214 -0.185 -0.184 -0.103 + 7.946 0.163 -0.021 -0.496 -0.212 -0.215 0.108 -0.091 -0.007 0.236 -0.008 -0.169 -0.108 + 8.009 0.479 -0.488 -0.734 -0.437 -0.044 -0.062 -0.124 0.014 0.319 -0.069 -0.150 -0.067 + 8.140 0.658 -0.515 -0.608 -0.389 -0.178 -0.227 -0.135 0.147 0.413 -0.070 -0.126 -0.151 + 7.967 0.676 -0.534 -0.721 -0.425 -0.203 -0.216 -0.202 0.168 0.314 -0.203 -0.131 -0.112 + 7.718 0.686 -0.445 -0.625 -0.477 -0.097 -0.132 -0.081 0.216 0.340 -0.272 0.069 -0.022 + 7.535 0.667 -0.497 -0.494 -0.480 -0.138 -0.093 -0.153 0.144 0.337 -0.192 0.023 -0.002 + 7.581 0.670 -0.413 -0.409 -0.464 -0.121 -0.238 -0.231 0.078 0.409 -0.136 -0.001 -0.004 + 7.444 0.709 -0.421 -0.380 -0.479 -0.272 -0.414 -0.187 0.052 0.469 -0.142 -0.216 -0.052 + 7.067 0.572 -0.358 -0.418 -0.517 -0.190 -0.270 -0.216 0.174 0.412 -0.169 -0.135 -0.079 + 6.604 0.363 -0.415 -0.460 -0.418 -0.171 -0.349 -0.297 0.191 0.360 -0.159 -0.306 -0.074 + 6.217 0.352 -0.384 -0.507 -0.340 -0.040 0.016 -0.122 0.121 0.313 -0.192 -0.204 -0.089 + 6.320 0.452 -0.386 -0.523 -0.328 -0.088 -0.121 -0.242 0.107 0.437 -0.084 -0.157 0.042 + 6.489 0.558 -0.299 -0.540 -0.294 -0.060 -0.088 -0.149 0.038 0.288 0.034 -0.144 -0.090 + 6.164 0.283 -0.389 -0.525 -0.209 -0.164 -0.111 -0.137 0.015 0.288 0.002 0.087 -0.130 + 6.172 0.395 -0.263 -0.392 -0.121 -0.046 -0.106 -0.224 -0.094 0.156 -0.118 -0.007 -0.246 + 6.308 0.453 -0.175 -0.272 -0.253 -0.143 -0.175 -0.194 -0.167 0.221 -0.011 -0.082 -0.178 + 6.819 0.135 0.081 -0.197 -0.275 -0.161 -0.328 -0.237 -0.285 0.317 -0.171 -0.045 -0.065 + 7.389 -0.654 0.247 0.342 -0.437 -0.153 -0.403 -0.407 -0.436 0.387 -0.313 0.087 0.019 + 7.764 -0.573 0.277 0.216 -0.837 -0.339 -0.468 -0.470 -0.383 0.479 -0.193 0.261 0.129 + 8.194 -0.540 0.435 0.241 -0.790 -0.247 -0.375 -0.484 -0.592 0.313 -0.216 0.329 0.171 + 8.656 -0.416 0.361 0.376 -0.886 -0.328 -0.409 -0.434 -0.529 0.336 -0.183 0.221 -0.011 + 9.119 -0.550 0.373 0.533 -0.865 -0.294 -0.485 -0.409 -0.563 0.425 -0.168 0.227 0.061 + 9.109 -0.659 0.405 0.376 -0.827 -0.456 -0.536 -0.315 -0.509 0.457 -0.155 0.209 0.074 + 9.150 -0.450 0.529 0.295 -0.817 -0.509 -0.500 -0.333 -0.554 0.390 -0.259 0.121 -0.031 diff -Nru sphinxbase-0.8/test/regression/chan3-dither.cepview sphinxbase-0.8+5prealpha/test/regression/chan3-dither.cepview --- sphinxbase-0.8/test/regression/chan3-dither.cepview 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/chan3-dither.cepview 2015-03-26 16:52:50.000000000 +0000 @@ -1,2190 +1,2178 @@ - 6.513 -1.581 0.213 0.167 -0.125 0.161 0.064 0.054 -0.173 -0.099 -0.090 -0.040 0.030 - 6.586 -1.617 0.269 0.104 -0.230 0.093 -0.188 -0.056 -0.242 -0.200 -0.063 -0.004 -0.118 - 6.789 -1.365 0.281 0.034 -0.347 -0.016 -0.210 0.056 -0.194 -0.110 -0.100 -0.034 -0.194 - 6.848 -1.391 0.085 0.094 -0.397 0.165 -0.165 -0.187 -0.147 -0.010 -0.143 -0.060 0.013 - 6.613 -1.366 0.043 0.170 -0.322 -0.037 -0.121 -0.113 -0.092 0.102 -0.210 -0.068 0.057 - 6.754 -1.442 0.065 0.261 -0.230 -0.186 -0.080 -0.108 -0.203 0.070 -0.250 -0.205 -0.025 - 6.551 -1.398 0.038 0.176 -0.230 -0.130 0.071 0.000 -0.292 0.025 -0.271 -0.012 -0.029 - 6.280 -1.329 0.094 0.296 0.020 -0.066 -0.125 -0.166 -0.177 -0.010 -0.185 -0.158 -0.102 - 6.376 -1.176 0.011 0.228 -0.130 -0.064 -0.320 -0.118 -0.124 0.096 -0.094 -0.170 -0.078 - 6.329 -1.272 -0.194 0.096 0.076 -0.066 -0.251 -0.125 -0.069 0.140 -0.072 -0.044 0.013 - 6.127 -1.232 -0.071 -0.043 -0.090 -0.023 -0.119 -0.215 -0.277 -0.104 -0.136 -0.125 -0.043 - 5.945 -0.986 0.102 0.032 -0.097 -0.143 -0.162 0.011 -0.004 0.097 0.019 -0.085 -0.039 - 6.259 -0.572 0.503 0.354 -0.003 0.101 0.090 -0.153 -0.101 -0.080 -0.052 -0.007 -0.158 - 5.613 -0.328 0.280 0.201 -0.026 0.020 0.020 0.023 0.022 0.028 0.002 -0.114 -0.229 - 5.518 -0.451 0.211 0.031 -0.068 0.023 -0.044 -0.027 0.059 0.115 -0.085 -0.027 -0.196 - 5.194 -0.555 0.104 0.064 -0.031 -0.038 -0.019 -0.146 -0.161 -0.040 -0.162 0.020 0.056 - 4.913 -0.148 0.053 0.111 0.114 -0.035 -0.023 -0.084 -0.163 0.204 -0.031 -0.172 -0.111 - 4.429 -0.040 0.057 0.158 0.025 -0.167 -0.330 -0.079 -0.150 0.102 -0.044 -0.174 -0.076 - 3.963 0.078 -0.231 -0.003 0.011 -0.036 -0.226 -0.115 -0.101 0.127 0.113 -0.043 0.005 - 3.843 0.108 -0.282 0.049 -0.085 -0.007 -0.266 -0.246 -0.227 -0.099 0.079 0.033 0.051 - 4.186 0.230 -0.086 -0.038 -0.204 -0.009 -0.152 -0.190 -0.131 -0.042 -0.068 -0.159 -0.078 - 4.257 0.255 0.045 -0.018 0.040 -0.072 0.010 -0.124 -0.071 -0.154 -0.149 -0.200 -0.233 - 4.027 0.394 0.067 0.222 0.016 -0.070 -0.266 -0.303 -0.164 -0.033 -0.105 -0.215 0.016 - 4.171 0.352 0.159 0.095 0.098 -0.130 -0.164 -0.415 -0.207 -0.025 0.031 0.018 0.061 - 7.069 -0.517 0.568 0.065 -0.481 0.104 -0.074 -0.274 -0.029 -0.070 -0.132 0.026 -0.175 - 9.456 -0.227 0.591 0.302 -0.426 -0.153 -0.259 -0.208 -0.062 -0.300 -0.196 0.076 -0.287 - 10.595 0.196 0.329 0.570 -0.236 -0.480 -0.531 -0.002 -0.256 -0.320 -0.224 -0.047 -0.306 - 12.190 -0.192 0.303 0.566 -0.309 -0.556 -0.613 -0.056 -0.362 -0.316 -0.271 0.043 -0.256 - 13.377 -0.265 0.159 0.461 -0.378 -0.571 -0.597 0.003 -0.469 -0.268 -0.343 0.133 -0.288 - 13.760 0.015 -0.072 0.453 -0.386 -0.609 -0.711 0.037 -0.530 -0.191 -0.385 0.157 -0.249 - 14.184 0.091 -0.206 0.450 -0.436 -0.700 -0.730 0.009 -0.565 -0.070 -0.395 0.210 -0.213 - 14.378 0.113 -0.290 0.420 -0.432 -0.819 -0.712 0.045 -0.584 0.018 -0.387 0.235 -0.179 - 14.016 0.469 -0.549 0.433 -0.415 -0.789 -0.774 0.163 -0.604 0.025 -0.276 0.066 -0.039 - 14.133 0.576 -0.705 0.340 -0.336 -0.785 -0.780 0.063 -0.441 0.006 -0.198 -0.055 0.032 - 14.320 0.636 -0.725 0.196 -0.351 -0.569 -0.961 0.036 -0.491 0.173 -0.233 -0.132 0.008 - 14.130 0.726 -0.589 -0.049 -0.334 -0.392 -0.814 -0.154 -0.672 0.294 -0.139 -0.296 -0.057 - 13.575 0.980 -0.518 -0.146 -0.464 -0.244 -0.520 -0.263 -0.968 0.211 -0.036 -0.226 -0.128 - 13.009 1.092 -0.339 -0.249 -0.467 -0.304 -0.327 -0.239 -1.013 0.053 -0.044 -0.151 -0.061 - 12.815 1.203 -0.442 -0.216 -0.482 -0.216 -0.384 -0.133 -1.118 0.073 -0.137 -0.053 -0.183 - 12.959 1.094 -0.399 -0.173 -0.407 -0.230 -0.421 -0.185 -1.106 0.143 -0.152 -0.092 -0.283 - 13.231 0.901 -0.400 -0.142 -0.222 -0.253 -0.484 -0.273 -0.983 0.208 -0.132 -0.223 -0.291 - 13.508 0.776 -0.563 0.027 -0.061 -0.373 -0.664 -0.239 -0.787 0.213 -0.228 -0.339 -0.197 - 13.813 0.426 -0.513 0.194 0.094 -0.614 -0.737 -0.084 -0.640 0.116 -0.383 -0.233 -0.100 - 13.999 0.195 -0.499 0.446 -0.012 -0.827 -0.669 0.099 -0.700 -0.013 -0.330 -0.113 -0.087 - 14.293 -0.074 -0.376 0.566 -0.210 -0.917 -0.531 0.125 -0.771 -0.008 -0.288 -0.059 -0.109 - 14.128 -0.095 -0.313 0.610 -0.374 -0.869 -0.490 0.066 -0.729 -0.006 -0.291 0.021 -0.119 - 14.074 -0.146 -0.189 0.514 -0.457 -0.826 -0.436 -0.063 -0.559 -0.064 -0.263 0.085 -0.159 - 14.085 0.032 -0.328 0.440 -0.499 -0.804 -0.465 -0.041 -0.460 -0.121 -0.215 0.134 -0.152 - 13.946 0.157 -0.383 0.321 -0.547 -0.699 -0.607 0.081 -0.419 -0.121 -0.193 0.198 -0.241 - 13.903 0.221 -0.456 0.218 -0.548 -0.653 -0.653 0.142 -0.381 -0.057 -0.268 0.253 -0.264 - 13.927 0.312 -0.595 0.181 -0.554 -0.547 -0.717 0.092 -0.251 -0.114 -0.233 0.165 -0.181 - 13.848 0.440 -0.698 0.088 -0.473 -0.528 -0.766 0.022 -0.203 -0.061 -0.289 0.142 -0.122 - 13.670 0.429 -0.568 -0.131 -0.274 -0.573 -0.757 -0.110 -0.176 0.027 -0.369 0.108 -0.050 - 13.321 0.282 -0.355 -0.267 -0.203 -0.553 -0.555 -0.489 -0.047 0.124 -0.464 0.029 0.028 - 13.222 0.088 -0.128 -0.297 -0.402 -0.135 -0.604 -0.629 -0.048 0.139 -0.307 -0.062 -0.114 - 13.318 0.361 -0.024 -0.384 -0.632 0.261 -0.864 -0.493 -0.175 0.136 -0.269 0.128 -0.393 - 13.510 0.505 0.012 -0.534 -0.810 0.289 -0.813 -0.361 -0.419 0.291 -0.285 0.285 -0.434 - 13.474 0.481 0.188 -0.728 -0.879 0.223 -0.753 -0.204 -0.557 0.239 -0.276 0.466 -0.456 - 13.061 0.688 0.281 -0.865 -0.917 0.140 -0.650 -0.041 -0.660 0.044 -0.249 0.498 -0.407 - 12.805 0.671 0.472 -0.901 -0.967 0.105 -0.598 0.054 -0.700 0.017 -0.359 0.399 -0.262 - 12.434 0.810 0.451 -0.699 -1.164 0.066 -0.429 -0.085 -0.523 -0.033 -0.482 0.410 -0.308 - 11.784 0.871 0.645 -0.625 -1.194 0.001 -0.429 -0.080 -0.377 -0.071 -0.657 0.328 -0.277 - 11.268 0.871 0.796 -0.585 -1.177 -0.012 -0.446 -0.016 -0.357 -0.086 -0.759 0.249 -0.302 - 11.070 0.823 0.922 -0.594 -1.103 -0.082 -0.430 0.002 -0.359 -0.156 -0.756 0.169 -0.364 - 10.990 0.794 1.014 -0.583 -1.093 -0.126 -0.451 -0.003 -0.354 -0.129 -0.706 0.126 -0.461 - 11.032 0.714 1.037 -0.599 -1.115 -0.133 -0.500 -0.068 -0.271 -0.062 -0.624 0.002 -0.476 - 11.418 0.620 0.933 -0.583 -1.119 -0.178 -0.523 -0.059 -0.202 -0.063 -0.639 0.007 -0.342 - 12.429 0.378 0.816 -0.769 -1.204 -0.132 -0.444 -0.020 -0.353 0.019 -0.493 0.014 -0.141 - 13.176 0.323 0.413 -0.931 -1.227 -0.046 -0.403 0.066 -0.340 -0.106 -0.356 0.201 -0.073 - 13.232 0.294 0.339 -0.990 -1.243 0.102 -0.468 0.050 -0.309 -0.025 -0.295 0.256 -0.094 - 13.323 0.252 0.255 -1.041 -1.248 0.199 -0.500 0.147 -0.300 0.020 -0.225 0.222 -0.174 - 13.447 0.272 0.133 -1.091 -1.193 0.273 -0.551 0.232 -0.347 0.077 -0.184 0.211 -0.269 - 13.566 0.337 -0.012 -1.098 -1.119 0.281 -0.477 0.190 -0.344 0.104 -0.152 0.165 -0.316 - 13.716 0.251 -0.063 -1.068 -1.043 0.278 -0.430 0.134 -0.304 0.097 -0.067 0.047 -0.370 - 13.444 0.470 -0.236 -0.990 -0.952 0.251 -0.411 0.038 -0.254 0.057 0.048 -0.010 -0.372 - 13.269 0.537 -0.384 -0.848 -0.834 0.209 -0.394 -0.012 -0.228 0.027 0.125 -0.066 -0.381 - 12.757 0.534 -0.347 -0.719 -0.776 0.156 -0.404 -0.024 -0.244 0.046 0.148 0.003 -0.445 - 12.691 0.456 -0.357 -0.611 -0.704 0.085 -0.305 -0.253 -0.111 0.073 0.040 0.107 -0.552 - 12.649 0.409 -0.478 -0.284 -0.693 0.024 -0.385 -0.336 -0.072 0.228 -0.096 0.085 -0.575 - 12.396 0.421 -0.636 0.075 -0.516 -0.284 -0.509 -0.191 0.030 0.175 -0.255 0.122 -0.461 - 11.789 0.451 -0.606 0.363 -0.431 -0.416 -0.624 -0.004 0.056 0.024 -0.357 0.284 -0.520 - 11.193 0.315 -0.267 0.538 -0.456 -0.497 -0.550 0.101 0.147 -0.267 -0.282 0.350 -0.570 - 10.704 0.175 0.115 0.198 -0.131 -0.506 -0.415 0.131 0.039 -0.343 -0.106 -0.078 -0.405 - 9.874 0.421 0.326 0.085 0.021 -0.445 -0.419 0.261 -0.356 -0.262 0.101 -0.355 -0.294 - 8.932 0.719 0.234 0.172 0.104 -0.369 -0.464 0.323 -0.446 -0.099 -0.137 -0.344 -0.256 - 7.720 0.826 0.623 0.209 -0.015 -0.383 -0.323 0.084 -0.205 -0.146 -0.368 -0.160 -0.171 - 7.406 0.623 0.747 -0.122 0.164 -0.473 0.068 -0.169 -0.008 -0.118 -0.430 -0.194 -0.090 - 8.610 -0.125 0.534 -0.142 0.169 -0.265 0.129 -0.086 -0.024 -0.271 -0.223 -0.066 -0.183 - 9.818 -0.292 0.133 0.080 -0.077 -0.182 -0.054 -0.035 -0.072 -0.160 -0.265 0.063 -0.187 - 9.896 -0.311 0.267 0.211 0.078 -0.419 -0.238 -0.207 0.077 -0.168 -0.365 0.009 -0.105 - 10.842 -0.050 0.223 0.126 -0.033 -0.447 -0.443 -0.329 -0.055 -0.053 -0.448 0.015 -0.114 - 11.381 -0.048 0.068 0.072 0.097 -0.445 -0.636 -0.468 -0.105 -0.080 -0.497 -0.024 -0.020 - 11.138 0.120 0.125 -0.069 -0.031 -0.302 -0.566 -0.495 -0.108 -0.049 -0.449 -0.090 -0.054 - 10.764 -0.162 0.387 -0.013 -0.000 -0.294 -0.556 -0.511 -0.034 -0.173 -0.298 -0.214 0.000 - 10.827 -0.994 0.580 -0.041 0.172 -0.133 -0.162 -0.060 0.031 -0.139 -0.305 -0.179 -0.040 - 10.620 -1.211 0.665 -0.024 0.125 -0.254 -0.036 -0.040 -0.021 -0.083 -0.338 -0.228 -0.174 - 10.766 -1.314 0.644 -0.032 0.365 -0.076 0.040 -0.018 -0.060 -0.091 -0.291 -0.052 -0.265 - 10.855 -1.277 0.577 -0.097 0.494 -0.249 -0.262 -0.102 -0.079 -0.255 -0.200 -0.045 -0.164 - 11.206 -1.251 0.537 -0.160 0.397 -0.324 -0.129 0.003 -0.104 -0.221 -0.203 -0.111 -0.142 - 11.529 -1.056 0.596 -0.082 0.384 -0.330 -0.026 -0.062 -0.019 -0.283 -0.220 0.061 -0.106 - 11.263 -1.528 0.452 -0.137 0.325 -0.268 -0.004 -0.054 -0.120 -0.394 -0.233 -0.040 -0.127 - 11.469 -1.644 0.386 0.003 0.358 -0.190 -0.078 -0.090 -0.156 -0.108 -0.169 -0.029 -0.046 - 10.859 -1.522 0.104 0.203 0.295 -0.591 0.033 0.027 -0.182 -0.279 0.051 -0.024 -0.071 - 7.401 -1.040 -0.014 0.330 0.623 -0.540 -0.016 0.134 -0.108 -0.348 0.100 0.060 -0.235 - 4.884 -0.541 0.092 -0.171 0.374 -0.229 0.130 -0.011 -0.120 -0.011 0.003 -0.054 -0.193 - 4.784 -0.450 0.154 -0.281 0.195 -0.494 -0.024 -0.139 -0.216 -0.178 -0.057 0.055 0.010 - 9.005 -0.451 -0.045 0.372 -0.653 -0.571 -0.146 -0.138 -0.101 -0.004 -0.163 -0.100 -0.079 - 12.108 -0.745 -0.282 -0.041 -0.724 -0.550 -0.057 -0.245 -0.220 -0.025 -0.189 0.008 -0.036 - 12.612 -0.523 -0.082 0.401 -0.351 -0.707 -0.301 -0.237 -0.254 -0.218 -0.095 -0.005 -0.160 - 13.774 -0.172 -0.485 0.317 -0.451 -0.712 -0.651 -0.094 -0.198 -0.093 -0.236 0.244 -0.321 - 14.097 -0.142 -0.631 0.094 -0.515 -0.672 -0.732 0.010 -0.165 0.104 -0.321 0.276 -0.315 - 14.145 -0.083 -0.704 -0.105 -0.601 -0.639 -0.699 0.072 -0.047 0.196 -0.273 0.043 -0.223 - 14.273 -0.159 -0.688 -0.189 -0.566 -0.508 -0.761 0.126 -0.053 0.246 -0.315 -0.038 -0.240 - 14.437 -0.040 -0.761 -0.223 -0.603 -0.398 -0.765 0.205 -0.130 0.265 -0.346 -0.165 -0.223 - 14.378 -0.092 -0.719 -0.181 -0.670 -0.290 -0.869 0.188 -0.187 0.328 -0.405 -0.042 -0.302 - 14.160 0.013 -0.725 -0.177 -0.680 -0.315 -0.913 0.184 -0.126 0.295 -0.424 0.018 -0.291 - 13.666 0.079 -0.683 -0.203 -0.648 -0.444 -0.951 0.142 -0.018 0.262 -0.385 0.094 -0.236 - 12.462 0.396 -0.529 -0.100 -0.493 -0.569 -0.812 -0.034 0.164 -0.068 -0.176 0.221 -0.128 - 11.096 -0.243 -0.057 0.182 -0.541 -0.396 -0.367 0.047 0.141 -0.147 -0.353 0.002 0.063 - 11.625 -1.083 0.450 0.685 -0.330 -0.111 -0.313 -0.200 0.133 -0.119 -0.238 -0.015 -0.075 - 12.125 -1.375 0.615 0.762 -0.320 -0.038 0.035 -0.178 0.005 -0.094 -0.394 -0.066 -0.156 - 12.332 -1.614 0.649 0.659 -0.412 -0.027 0.023 -0.144 -0.093 -0.032 -0.275 -0.108 -0.179 - 12.348 -2.053 0.287 0.509 -0.533 -0.159 0.051 -0.061 0.079 0.043 -0.315 -0.140 -0.183 - 12.364 -2.283 0.302 0.798 -0.438 -0.208 -0.168 -0.019 0.061 -0.086 -0.196 -0.049 -0.101 - 12.124 -2.227 0.166 0.564 -0.558 -0.210 -0.098 0.069 0.141 0.035 -0.054 -0.166 -0.026 - 12.496 -1.767 0.330 0.878 -0.144 -0.097 -0.048 -0.132 -0.024 -0.048 -0.231 -0.183 0.054 - 11.892 -1.214 0.346 0.812 -0.147 -0.355 -0.004 0.009 0.019 -0.013 -0.310 -0.114 0.056 - 11.102 -1.048 0.308 0.695 0.018 -0.158 -0.083 0.003 0.045 -0.135 -0.209 -0.040 -0.012 - 11.999 0.326 -0.408 0.208 -0.422 -0.334 -0.274 -0.069 0.039 0.095 -0.179 -0.069 -0.030 - 12.208 0.708 -0.540 0.018 -0.360 -0.333 -0.431 -0.111 0.021 0.091 -0.443 0.182 -0.278 - 12.093 0.490 -0.499 0.098 -0.446 -0.303 -0.464 -0.220 0.088 0.190 -0.399 0.136 -0.224 - 11.442 0.457 -0.432 0.205 -0.383 -0.307 -0.309 -0.422 0.086 0.254 -0.396 0.036 -0.264 - 11.005 0.014 0.112 0.295 -0.333 -0.340 -0.139 -0.310 -0.084 0.215 -0.474 -0.009 -0.195 - 11.170 -0.158 0.157 0.241 -0.169 -0.404 -0.140 -0.217 -0.174 0.324 -0.536 0.029 -0.326 - 11.280 0.089 -0.387 0.061 0.049 -0.145 -0.564 -0.270 -0.150 0.375 -0.256 0.032 -0.222 - 12.183 0.236 -0.538 -0.086 -0.100 -0.334 -0.645 -0.121 -0.122 0.300 -0.206 -0.048 -0.252 - 12.222 0.260 -0.570 -0.091 -0.272 -0.345 -0.735 -0.086 -0.074 0.418 -0.283 0.015 -0.344 - 12.564 0.263 -0.712 -0.056 -0.457 -0.328 -0.708 -0.126 0.025 0.384 -0.216 -0.005 -0.286 - 12.558 0.443 -0.703 -0.121 -0.344 -0.459 -0.471 -0.318 -0.120 0.343 -0.268 0.008 -0.232 - 11.133 0.722 -0.475 -0.305 -0.183 -0.410 -0.361 -0.509 -0.286 0.234 -0.117 -0.207 -0.269 - 9.970 0.905 -0.463 -0.159 -0.164 -0.351 -0.317 -0.529 -0.449 0.210 0.006 -0.219 -0.284 - 6.519 0.758 -0.017 -0.011 -0.013 -0.061 -0.216 -0.155 -0.103 0.220 -0.043 -0.288 -0.245 - 6.006 0.766 -0.032 0.055 -0.173 0.023 -0.172 -0.228 0.065 0.187 -0.006 -0.278 -0.257 - 5.669 0.875 0.266 0.158 -0.211 -0.301 -0.354 -0.342 -0.001 0.094 -0.075 -0.198 -0.078 - 5.588 0.564 0.382 0.181 -0.203 -0.343 -0.306 -0.198 -0.063 0.215 -0.191 -0.155 -0.133 - 8.199 -0.001 0.323 -0.179 -0.131 -0.366 -0.358 -0.105 -0.187 -0.043 -0.354 -0.146 -0.188 - 8.768 0.109 -0.147 -0.094 -0.028 -0.262 -0.166 -0.088 0.080 0.164 -0.070 -0.203 -0.038 - 12.075 0.000 -0.660 -0.013 -0.393 -0.401 -0.436 -0.172 -0.042 0.119 -0.165 -0.143 -0.007 - 13.145 -0.034 -0.662 -0.099 -0.571 -0.558 -0.579 -0.128 -0.003 0.310 -0.222 -0.100 0.001 - 13.351 -0.007 -0.782 -0.020 -0.602 -0.581 -0.502 -0.104 0.073 0.217 -0.311 -0.081 -0.008 - 13.622 -0.133 -0.854 -0.005 -0.648 -0.526 -0.533 -0.046 0.073 0.204 -0.347 -0.046 -0.098 - 13.417 -0.098 -0.892 -0.048 -0.711 -0.421 -0.639 0.111 -0.064 0.336 -0.493 0.046 -0.131 - 13.653 -0.206 -0.872 -0.129 -0.708 -0.401 -0.680 0.207 -0.105 0.435 -0.636 0.003 -0.190 - 13.786 -0.050 -0.940 -0.169 -0.612 -0.421 -0.582 0.182 -0.142 0.424 -0.602 -0.117 -0.147 - 13.769 0.004 -0.991 -0.288 -0.576 -0.350 -0.522 0.192 -0.247 0.419 -0.570 -0.189 -0.122 - 13.393 0.037 -1.071 -0.435 -0.580 -0.333 -0.466 0.212 -0.222 0.462 -0.651 -0.233 -0.122 - 13.445 -0.002 -0.976 -0.430 -0.662 -0.277 -0.529 0.238 -0.253 0.557 -0.629 -0.251 -0.143 - 13.744 0.038 -0.976 -0.422 -0.681 -0.183 -0.553 0.220 -0.294 0.537 -0.580 -0.305 -0.135 - 13.751 -0.083 -0.888 -0.530 -0.651 -0.197 -0.483 0.218 -0.333 0.484 -0.505 -0.347 -0.123 - 13.300 -0.004 -0.819 -0.603 -0.755 -0.120 -0.534 0.231 -0.350 0.615 -0.507 -0.424 -0.136 - 13.696 -0.039 -0.734 -0.595 -0.741 -0.083 -0.541 0.167 -0.408 0.611 -0.449 -0.379 -0.143 - 13.688 0.045 -0.610 -0.685 -0.681 -0.078 -0.590 0.083 -0.466 0.563 -0.327 -0.312 -0.205 - 13.030 0.163 -0.422 -0.807 -0.678 -0.117 -0.593 -0.020 -0.362 0.516 -0.242 -0.320 -0.208 - 12.805 0.193 -0.398 -0.867 -0.696 -0.164 -0.565 -0.085 -0.360 0.550 -0.215 -0.221 -0.223 - 12.574 0.526 -0.421 -0.803 -0.736 -0.223 -0.481 -0.360 -0.351 0.544 -0.276 0.014 -0.192 - 12.488 0.278 -0.194 -0.749 -0.608 -0.209 -0.482 -0.507 -0.429 0.501 -0.394 0.170 -0.218 - 11.090 0.251 0.011 -0.808 -0.512 -0.249 -0.442 -0.698 -0.409 0.663 -0.304 0.251 -0.126 - 11.251 0.371 0.060 -0.655 -0.326 -0.214 -0.343 -0.758 -0.491 0.280 -0.391 0.128 -0.209 - 7.815 0.616 0.263 -0.567 -0.388 -0.227 -0.383 -0.707 -0.372 0.487 -0.543 0.139 -0.254 - 6.427 0.800 0.153 -0.175 -0.387 -0.223 -0.261 -0.061 0.100 0.339 -0.133 -0.126 -0.147 - 6.250 0.881 0.199 -0.079 -0.398 -0.193 -0.333 -0.037 0.003 0.388 -0.117 -0.122 -0.014 - 5.645 0.680 -0.112 -0.341 -0.568 -0.268 -0.322 -0.088 -0.009 0.441 -0.037 -0.123 -0.085 - 5.246 0.605 -0.119 -0.274 -0.437 -0.196 -0.367 0.039 -0.007 0.206 -0.050 -0.284 -0.142 - 4.945 0.489 0.006 -0.210 -0.538 -0.190 -0.068 0.029 0.072 0.383 0.062 -0.083 -0.068 - 6.617 0.050 -0.291 0.120 -0.569 -0.466 0.011 -0.014 -0.097 -0.090 -0.207 0.078 -0.031 - 6.002 0.135 -0.287 -0.062 -0.637 -0.357 0.049 -0.170 -0.137 -0.098 -0.218 0.063 -0.048 - 4.493 0.332 -0.055 -0.072 -0.504 -0.241 -0.108 -0.126 -0.082 0.183 0.090 0.132 -0.091 - 4.316 0.299 -0.340 0.016 -0.290 -0.169 -0.108 -0.120 0.066 0.284 0.033 0.005 0.044 - 4.381 0.329 -0.192 -0.143 -0.322 -0.178 -0.110 -0.266 -0.005 0.096 0.156 0.193 -0.074 - 4.041 0.085 -0.266 -0.209 -0.276 -0.134 -0.001 -0.177 -0.171 0.149 0.127 0.039 0.056 - 4.020 0.282 -0.328 -0.135 -0.182 -0.056 -0.119 -0.010 -0.073 0.101 0.064 0.095 -0.025 - 3.944 0.221 -0.205 0.178 -0.126 -0.094 -0.247 -0.192 -0.109 0.236 0.162 0.093 -0.041 - 3.772 0.170 -0.227 -0.040 -0.200 -0.100 -0.220 -0.263 -0.171 0.188 0.100 0.006 -0.003 - 3.800 0.233 -0.288 0.028 -0.293 -0.110 -0.087 -0.163 -0.189 -0.084 -0.121 0.158 0.034 - 3.810 0.291 -0.183 0.018 -0.077 0.096 -0.223 -0.275 -0.088 0.056 -0.045 0.076 -0.182 - 3.853 0.382 -0.132 0.040 -0.159 -0.067 -0.190 -0.126 -0.153 0.112 0.033 0.060 -0.107 - 3.730 0.310 -0.106 0.186 -0.102 -0.109 -0.223 -0.239 -0.086 0.111 0.031 -0.129 -0.031 - 3.960 0.464 0.116 0.143 -0.114 -0.031 -0.033 -0.129 -0.111 0.009 -0.030 0.114 0.040 - 3.903 0.571 0.056 -0.090 -0.133 0.152 -0.087 -0.238 -0.162 -0.106 0.133 0.028 -0.128 - 4.522 0.371 0.125 -0.155 -0.067 -0.183 0.024 -0.263 -0.117 -0.065 -0.229 -0.179 0.023 - 6.277 0.501 0.424 -0.126 -0.014 -0.315 0.139 -0.308 0.018 -0.091 -0.497 -0.346 0.022 - 5.459 0.156 0.264 0.235 -0.033 -0.205 0.078 0.101 -0.148 -0.066 -0.239 -0.157 -0.279 - 5.420 0.058 0.179 0.143 -0.105 -0.223 0.034 -0.056 -0.132 -0.128 -0.202 -0.048 -0.325 - 4.937 -0.040 -0.144 -0.313 -0.371 -0.265 0.125 -0.169 -0.132 0.130 -0.212 -0.104 -0.115 - 5.178 0.309 -0.261 -0.128 -0.334 -0.235 0.146 -0.024 -0.179 0.000 -0.393 -0.069 -0.007 - 5.305 0.207 -0.351 -0.159 -0.383 -0.248 0.128 0.018 -0.153 -0.165 -0.342 -0.212 0.014 - 5.605 0.156 -0.492 -0.100 -0.234 -0.253 -0.056 -0.105 -0.156 -0.157 -0.531 -0.130 0.105 - 5.574 -0.281 -0.521 0.056 -0.201 -0.166 -0.084 -0.191 -0.106 -0.098 -0.283 0.023 0.075 - 5.842 -0.803 -0.145 0.375 -0.075 -0.065 -0.072 -0.330 -0.210 -0.052 -0.167 0.049 0.134 - 5.796 -0.501 -0.466 0.234 -0.234 -0.265 -0.073 -0.201 -0.213 -0.209 -0.487 -0.055 0.102 - 5.176 0.429 -0.224 0.019 -0.424 -0.373 -0.037 0.113 0.065 -0.013 -0.449 -0.285 -0.034 - 4.859 0.300 -0.083 -0.212 -0.541 -0.284 0.143 0.006 0.096 0.060 -0.454 -0.155 -0.174 - 4.342 0.018 -0.027 -0.161 -0.339 -0.193 0.241 0.102 0.001 0.019 -0.301 -0.090 -0.277 - 4.327 -0.123 0.061 0.044 0.062 -0.209 -0.014 -0.114 -0.089 0.021 -0.129 -0.053 -0.287 - 4.519 -0.184 0.209 0.091 -0.186 -0.224 0.068 -0.225 -0.179 -0.012 -0.062 0.116 -0.088 - 4.590 -0.186 0.267 0.033 -0.090 -0.202 0.024 -0.276 -0.142 -0.095 -0.127 0.014 -0.097 - 4.437 -0.095 0.138 0.071 -0.020 -0.216 0.135 -0.120 -0.139 0.013 -0.108 0.012 -0.120 - 4.349 -0.098 0.045 -0.043 -0.184 -0.354 -0.016 -0.165 -0.085 0.085 -0.036 0.043 -0.122 - 4.262 0.072 0.147 -0.014 -0.092 -0.183 0.036 -0.195 -0.106 0.083 -0.059 0.054 -0.071 - 4.321 0.027 0.168 0.009 -0.136 -0.278 -0.070 -0.088 -0.088 0.222 -0.011 -0.075 -0.182 - 4.166 0.182 -0.079 -0.091 -0.242 -0.395 -0.023 -0.102 -0.069 0.168 0.013 0.011 0.003 - 4.529 0.436 0.040 0.072 -0.393 -0.273 0.139 0.010 0.015 0.023 -0.048 -0.016 -0.118 - 4.369 0.654 0.017 -0.085 -0.485 -0.089 0.198 0.114 -0.043 -0.062 -0.239 -0.141 -0.153 - 4.514 0.528 -0.223 -0.140 -0.505 -0.250 0.111 0.139 0.149 0.128 -0.199 -0.240 0.006 - 4.211 0.341 -0.333 -0.052 -0.430 -0.237 0.040 0.201 0.222 0.256 -0.298 -0.207 0.012 - 3.631 0.395 -0.146 0.070 -0.296 -0.002 0.046 0.028 -0.097 -0.084 -0.196 -0.094 0.046 - 4.310 0.454 -0.290 0.171 0.056 -0.249 -0.072 -0.254 -0.133 0.147 -0.107 0.033 -0.009 - 4.044 0.136 -0.327 0.212 -0.258 -0.269 -0.062 -0.098 -0.031 0.240 -0.069 0.080 -0.011 - 3.609 0.267 -0.170 0.195 -0.073 -0.181 -0.060 0.012 -0.339 0.085 0.017 0.062 -0.027 - 5.175 0.768 -0.812 -0.184 -0.006 -0.309 -0.238 -0.050 -0.191 -0.062 -0.010 -0.092 -0.101 - 4.432 0.440 -0.529 -0.004 -0.037 -0.183 -0.173 -0.088 -0.152 0.060 -0.043 0.005 -0.048 - 3.651 0.291 -0.076 0.193 0.138 0.014 -0.149 -0.146 -0.124 -0.051 -0.069 0.006 -0.206 - 3.939 0.508 -0.127 -0.005 -0.075 -0.104 -0.074 -0.064 -0.309 -0.052 -0.120 0.015 -0.067 - 5.376 0.838 -0.390 -0.237 -0.356 -0.210 -0.052 0.048 -0.636 -0.127 0.003 0.033 -0.045 - 4.135 0.289 -0.178 -0.021 -0.222 -0.033 0.047 -0.106 -0.207 0.004 0.140 0.082 0.039 - 3.715 0.408 0.119 0.180 -0.111 -0.058 -0.287 -0.138 -0.031 0.076 0.055 -0.001 -0.109 - 3.609 0.175 -0.170 -0.018 -0.220 0.010 -0.125 -0.131 -0.133 0.128 -0.025 -0.021 -0.016 - 3.573 0.350 -0.104 -0.050 -0.080 -0.009 -0.011 -0.098 -0.212 0.169 0.088 -0.018 0.102 - 3.534 0.176 -0.090 0.263 -0.137 -0.078 -0.002 -0.074 -0.176 0.142 0.126 0.071 -0.027 - 3.330 0.207 0.112 0.313 -0.122 -0.095 -0.237 -0.204 -0.098 0.099 0.028 -0.099 -0.106 - 3.709 0.310 0.048 0.240 -0.063 -0.072 -0.118 -0.266 -0.185 0.045 0.104 -0.051 -0.115 - 3.589 0.296 -0.095 0.053 -0.031 -0.205 -0.216 -0.347 -0.118 0.143 0.229 -0.001 -0.149 - 3.267 0.197 -0.045 0.121 -0.066 0.028 -0.106 -0.305 -0.054 0.085 0.049 -0.006 -0.052 - 3.348 0.309 -0.064 0.035 0.012 -0.012 -0.063 -0.142 -0.180 0.148 -0.091 -0.154 -0.028 - 3.452 0.291 -0.246 -0.046 -0.074 -0.150 -0.123 -0.103 -0.240 0.028 -0.039 -0.001 0.019 - 3.326 0.126 -0.123 0.152 -0.198 -0.192 -0.149 -0.039 0.004 0.088 0.024 -0.014 0.004 - 3.291 0.262 -0.103 0.179 0.049 -0.012 -0.005 -0.084 -0.046 0.000 0.049 0.032 0.094 - 3.885 0.532 0.028 0.239 0.016 -0.146 -0.132 -0.305 -0.262 -0.041 0.067 0.194 0.147 - 6.236 1.190 0.325 -0.011 -0.127 -0.234 -0.293 -0.183 -0.249 -0.059 -0.115 -0.097 -0.162 - 7.489 1.237 0.364 0.100 -0.115 -0.281 -0.351 -0.209 -0.324 -0.053 -0.099 -0.102 -0.228 - 6.787 1.414 -0.071 0.500 -0.186 -0.633 -0.153 -0.194 -0.438 0.132 -0.108 -0.175 -0.170 - 5.817 1.110 0.321 0.423 -0.179 -0.428 -0.195 -0.235 -0.341 0.058 0.043 -0.148 -0.127 - 4.906 0.462 0.574 0.371 -0.266 -0.043 -0.315 -0.309 -0.340 -0.011 0.043 -0.035 -0.148 - 3.741 0.380 0.277 0.000 -0.312 -0.118 -0.224 -0.338 -0.157 -0.011 -0.020 -0.021 0.040 - 5.408 0.267 -0.089 0.066 -0.417 -0.320 -0.068 -0.158 -0.160 -0.058 -0.146 -0.106 -0.063 - 8.242 0.143 -0.283 0.069 -0.525 -0.284 0.084 0.036 -0.029 0.073 -0.249 -0.226 -0.212 - 5.655 0.072 0.069 0.020 -0.341 -0.231 0.293 0.034 0.147 0.028 -0.265 -0.265 -0.200 - 4.881 -0.748 0.078 0.067 -0.149 -0.275 0.145 -0.132 -0.036 -0.144 -0.190 -0.046 -0.148 - 5.562 -0.729 0.007 0.006 -0.088 -0.306 -0.176 -0.054 0.099 0.004 -0.143 -0.024 -0.042 - 5.818 -0.805 -0.289 -0.155 -0.210 -0.470 -0.230 0.059 0.357 0.025 -0.191 0.070 -0.044 - 6.105 -0.559 -0.242 -0.141 -0.196 -0.472 -0.116 0.204 0.316 -0.057 -0.351 -0.092 -0.117 - 5.274 -0.339 -0.275 -0.086 -0.213 -0.428 -0.038 -0.044 0.145 0.064 -0.256 -0.082 -0.252 - 4.727 -0.040 -0.054 -0.185 -0.344 -0.160 0.132 0.171 -0.058 -0.057 -0.035 0.038 -0.051 - 4.518 0.315 0.154 0.124 -0.124 -0.052 -0.089 -0.049 -0.183 -0.030 -0.110 -0.185 -0.108 - 4.152 0.345 -0.029 0.088 -0.011 -0.060 -0.097 -0.016 -0.141 -0.107 0.004 -0.119 -0.138 - 3.729 0.274 -0.036 -0.113 -0.069 -0.054 -0.079 0.118 -0.194 -0.056 -0.013 -0.052 -0.114 - 3.920 0.268 -0.103 0.124 -0.058 -0.084 -0.039 -0.212 -0.229 -0.003 -0.072 -0.154 -0.092 - 3.913 0.336 -0.110 0.123 -0.253 -0.059 0.015 -0.037 -0.234 -0.165 -0.065 -0.076 -0.016 - 4.080 -0.039 0.171 0.122 -0.244 -0.079 0.002 0.062 -0.012 -0.041 -0.051 0.020 -0.060 - 6.231 -0.423 0.126 0.146 -0.261 -0.225 0.097 -0.273 0.217 -0.214 -0.043 -0.101 -0.179 - 5.081 -0.319 0.255 0.024 -0.273 -0.110 0.094 -0.300 0.060 -0.269 -0.015 0.036 -0.149 - 5.516 0.411 0.096 0.128 -0.364 -0.141 -0.055 -0.057 0.088 -0.189 -0.179 -0.162 -0.119 - 4.676 0.191 0.058 0.114 -0.101 -0.074 0.042 -0.061 0.091 -0.255 -0.081 -0.188 -0.020 - 4.625 0.161 -0.014 0.114 -0.228 -0.119 0.001 -0.185 -0.027 -0.310 -0.148 -0.207 -0.075 - 5.446 0.593 0.038 -0.015 -0.309 -0.089 -0.090 0.096 0.109 -0.232 -0.248 -0.222 -0.073 - 5.172 0.251 0.130 0.114 -0.115 -0.016 -0.049 0.036 0.020 -0.186 -0.303 -0.245 -0.188 - 5.469 0.021 0.018 -0.064 -0.263 -0.179 -0.028 0.180 -0.092 0.163 -0.046 -0.020 -0.188 - 5.606 -0.256 0.082 -0.161 -0.213 -0.159 0.073 0.018 -0.160 -0.067 -0.230 -0.102 -0.085 - 5.953 -0.227 0.012 -0.111 -0.095 -0.035 0.023 -0.051 -0.016 -0.043 -0.282 -0.025 0.038 - 6.047 -0.281 -0.114 -0.217 -0.182 -0.094 0.172 -0.042 -0.086 -0.033 -0.147 -0.148 -0.096 - 5.708 -0.567 -0.338 -0.419 -0.343 -0.334 0.065 0.026 0.105 0.198 -0.037 -0.067 0.060 - 5.094 -0.639 -0.206 -0.139 -0.199 -0.188 0.046 -0.116 -0.028 0.110 -0.090 -0.089 0.028 - 4.948 -0.379 -0.139 -0.149 -0.213 -0.203 -0.030 -0.238 -0.085 -0.037 -0.241 -0.086 0.143 - 4.533 -0.066 -0.111 -0.244 -0.235 -0.182 0.015 0.056 -0.056 -0.106 -0.163 0.039 0.118 - 4.281 0.332 -0.047 -0.281 -0.167 -0.082 -0.153 -0.122 -0.101 0.013 -0.152 -0.214 -0.138 - 3.424 0.027 -0.250 0.167 0.049 0.038 -0.115 -0.079 -0.072 0.114 -0.014 -0.005 0.014 - 3.416 0.018 -0.016 0.141 -0.072 -0.146 -0.181 -0.002 -0.131 -0.026 0.029 -0.021 -0.073 - 3.644 0.110 -0.060 0.028 -0.015 -0.052 0.083 -0.134 -0.101 0.006 -0.090 -0.040 -0.158 - 4.380 -0.477 0.193 -0.133 0.112 0.079 -0.106 -0.112 -0.136 -0.144 -0.047 -0.057 -0.118 - 4.398 -0.396 0.082 -0.100 -0.012 -0.205 -0.164 -0.005 -0.022 0.049 0.091 0.017 0.045 - 3.474 -0.014 -0.501 -0.010 0.028 0.005 -0.165 -0.022 -0.212 -0.004 0.038 -0.089 -0.067 - 3.575 0.063 -0.355 -0.039 0.028 0.142 -0.098 -0.094 -0.152 -0.042 0.041 -0.127 -0.026 - 3.497 0.165 -0.229 0.217 0.075 0.168 -0.077 -0.216 -0.167 0.001 0.082 0.118 -0.033 - 3.661 0.161 -0.166 0.046 -0.189 -0.082 -0.160 -0.108 0.002 -0.084 -0.067 -0.044 0.026 - 3.740 0.211 0.027 0.113 -0.069 0.109 -0.145 -0.197 -0.082 0.041 0.122 0.018 0.040 - 3.734 0.286 -0.080 0.157 0.031 0.055 -0.169 -0.093 -0.145 0.034 0.049 0.045 -0.022 - 3.835 0.239 -0.130 0.037 0.035 0.033 -0.137 -0.155 -0.275 -0.003 0.084 0.101 -0.041 - 3.805 0.303 -0.196 -0.118 -0.224 -0.124 -0.100 -0.090 -0.112 0.057 0.156 0.136 -0.025 - 3.389 0.054 -0.226 -0.167 0.042 -0.072 -0.211 -0.218 0.086 0.180 -0.004 0.113 -0.040 - 3.666 0.274 -0.022 0.061 -0.124 -0.040 -0.276 -0.168 -0.094 -0.047 0.097 0.030 -0.107 - 3.651 0.191 -0.115 0.117 0.002 -0.183 -0.278 -0.272 -0.276 0.018 0.108 -0.030 -0.091 - 3.634 0.199 -0.308 0.030 -0.078 -0.083 -0.209 -0.349 -0.028 0.003 -0.062 0.012 -0.164 - 3.457 0.082 -0.197 0.184 0.044 0.142 -0.128 -0.140 0.092 0.082 -0.040 -0.069 -0.228 - 3.953 0.283 0.033 0.210 0.048 -0.088 -0.192 -0.110 -0.067 -0.041 0.131 0.013 -0.078 - 3.856 0.399 0.037 0.090 0.109 -0.081 -0.342 -0.327 -0.101 0.002 0.076 -0.019 -0.150 - 5.463 -0.264 -0.198 0.046 0.111 -0.030 -0.401 0.136 -0.046 -0.189 -0.051 -0.054 -0.053 - 7.238 -0.514 -0.291 0.042 -0.030 -0.211 -0.542 0.285 0.059 -0.332 -0.112 -0.022 0.006 - 4.713 -0.396 -0.464 0.190 0.092 0.035 -0.510 0.135 -0.049 -0.338 0.093 0.033 0.010 - 3.409 -0.342 -0.387 0.056 0.102 -0.080 -0.189 -0.009 -0.220 -0.203 0.102 0.174 -0.139 - 3.915 -0.235 -0.281 -0.054 0.064 0.097 -0.018 0.014 -0.221 0.009 0.011 -0.047 -0.068 - 6.008 -0.548 -0.478 -0.066 -0.203 -0.083 -0.036 0.112 -0.171 -0.100 0.189 0.160 -0.170 - 7.276 -0.705 -1.123 -0.046 -0.275 -0.272 -0.220 0.293 -0.049 -0.221 0.015 0.175 -0.294 - 8.924 -0.732 -1.064 -0.145 -0.057 -0.244 -0.146 0.052 -0.159 -0.100 0.068 0.182 -0.312 - 10.360 -0.536 -1.073 -0.240 0.042 -0.313 0.118 0.085 -0.091 -0.145 -0.169 0.012 -0.231 - 12.029 0.356 -0.981 -0.446 -0.103 -0.497 0.013 -0.106 -0.251 -0.027 -0.386 0.071 -0.240 - 13.178 0.834 -1.360 -0.356 -0.237 -0.376 -0.255 0.111 -0.162 0.006 -0.366 -0.075 -0.166 - 14.185 0.460 -1.718 -0.170 -0.351 -0.286 -0.186 0.265 -0.087 0.028 -0.376 -0.255 -0.064 - 14.021 0.480 -1.810 -0.254 -0.343 -0.275 -0.171 0.239 -0.040 -0.028 -0.322 -0.308 0.005 - 14.368 0.380 -1.740 -0.179 -0.457 -0.149 -0.255 0.284 -0.093 0.035 -0.344 -0.329 0.023 - 14.574 0.389 -1.616 -0.257 -0.570 -0.027 -0.329 0.246 -0.191 0.161 -0.360 -0.344 -0.062 - 14.539 0.658 -1.503 -0.355 -0.682 0.079 -0.306 0.177 -0.351 0.318 -0.308 -0.315 -0.244 - 13.865 1.163 -1.241 -0.394 -0.727 -0.102 -0.209 0.023 -0.487 0.278 -0.143 -0.232 -0.255 - 12.653 1.027 -0.917 -0.067 -0.637 -0.305 0.097 -0.063 -0.436 0.227 -0.282 0.113 -0.074 - 11.561 0.590 -0.685 0.237 -0.157 -0.137 0.431 -0.048 -0.548 0.101 -0.781 0.085 -0.116 - 11.483 0.600 -0.650 0.227 -0.197 -0.192 0.433 -0.074 -0.446 0.064 -0.725 0.044 -0.037 - 11.486 0.423 -0.560 0.220 -0.148 -0.072 0.371 0.004 -0.546 -0.009 -0.781 -0.017 0.057 - 11.154 0.492 -0.541 0.293 -0.114 -0.079 0.404 0.054 -0.693 -0.018 -0.816 0.004 0.087 - 10.859 0.732 -0.574 0.327 -0.250 -0.094 0.289 0.225 -0.694 0.019 -0.699 -0.137 0.054 - 12.014 0.999 -0.491 -0.180 -0.440 -0.259 -0.163 -0.008 -0.663 0.059 -0.097 0.002 0.127 - 13.444 0.993 -1.041 -0.416 -0.622 -0.137 -0.361 -0.102 -0.577 0.355 -0.002 -0.101 -0.110 - 13.934 0.853 -1.316 -0.322 -0.685 -0.152 -0.533 -0.124 -0.389 0.473 -0.098 -0.318 -0.255 - 14.013 0.714 -1.278 -0.248 -0.462 -0.370 -0.500 -0.264 -0.080 0.466 -0.161 -0.369 -0.124 - 13.561 0.695 -0.999 -0.307 -0.141 -0.690 -0.403 -0.365 0.040 0.480 -0.408 -0.042 -0.033 - 12.310 0.282 -0.436 0.310 -0.259 -0.719 -0.481 -0.118 0.099 -0.036 -0.350 -0.026 -0.048 - 9.902 0.009 -0.148 0.204 -0.340 -0.181 -0.514 -0.079 0.160 0.181 -0.163 0.034 -0.081 - 8.475 0.424 -0.584 -0.054 -0.364 -0.408 -0.076 -0.231 0.204 0.215 -0.246 -0.329 -0.134 - 8.832 -0.277 -0.559 -0.155 -0.449 -0.305 -0.019 -0.084 0.377 0.299 -0.216 -0.347 -0.254 - 7.766 0.044 -0.366 -0.268 -0.398 -0.355 -0.033 -0.131 0.295 0.317 -0.242 -0.192 -0.068 - 11.029 -1.260 -0.351 0.088 -0.833 0.086 -0.238 -0.148 0.056 -0.214 -0.122 -0.153 -0.162 - 11.286 -1.691 -0.145 0.108 -0.878 -0.082 -0.129 -0.224 -0.086 -0.202 -0.096 -0.147 -0.126 - 11.208 -2.469 -0.016 0.466 -0.308 -0.278 -0.052 -0.091 -0.044 0.024 -0.180 -0.185 -0.010 - 12.503 -1.752 -0.431 0.012 -0.258 -0.420 -0.304 -0.148 -0.167 -0.143 -0.161 -0.014 0.044 - 12.091 -1.207 -0.266 0.584 0.183 -0.174 -0.405 -0.100 -0.222 -0.209 -0.199 -0.187 -0.025 - 11.913 -0.280 -0.135 0.334 0.647 0.097 -0.245 -0.297 -0.185 -0.375 -0.376 -0.286 -0.278 - 11.921 0.288 -0.181 0.053 0.328 -0.191 -0.386 -0.285 -0.150 -0.042 -0.050 -0.181 -0.382 - 11.788 0.831 -0.058 0.248 0.257 -0.090 -0.206 -0.245 -0.203 -0.022 -0.107 -0.306 -0.275 - 11.453 0.959 -0.046 0.381 0.122 0.045 -0.262 -0.310 -0.192 -0.048 -0.223 -0.102 -0.278 - 11.435 1.127 0.005 0.283 -0.074 0.020 -0.308 -0.178 -0.072 -0.118 -0.273 -0.133 -0.142 - 10.548 1.152 0.099 0.247 -0.052 0.092 -0.220 -0.184 -0.340 -0.205 -0.245 -0.160 -0.321 - 9.962 0.659 -0.180 0.179 0.090 0.213 0.031 -0.069 -0.376 -0.451 -0.142 -0.007 -0.160 - 10.065 0.590 -0.460 0.101 0.147 0.240 0.120 -0.109 -0.461 -0.399 -0.014 0.049 -0.116 - 9.165 0.347 -0.681 -0.103 0.091 0.486 0.074 -0.403 -0.593 -0.271 0.035 -0.066 -0.006 - 8.346 0.692 -0.265 0.150 -0.034 0.098 -0.196 -0.542 -0.409 -0.177 -0.050 0.030 -0.124 - 6.418 0.389 -0.173 -0.032 0.124 0.038 -0.274 -0.512 -0.357 0.022 0.103 -0.104 -0.145 - 5.705 0.134 -0.243 0.057 0.221 -0.085 -0.067 -0.252 -0.341 0.006 0.045 -0.279 -0.068 - 5.649 -0.259 -0.601 0.414 -0.020 0.007 -0.230 -0.267 -0.127 -0.108 -0.101 -0.174 0.053 - 6.381 -0.325 -0.686 0.476 -0.095 -0.215 -0.374 -0.172 0.057 -0.130 0.153 -0.100 0.202 - 7.238 -0.608 -0.722 0.315 -0.373 -0.207 -0.230 -0.105 0.118 -0.066 0.262 -0.067 0.139 - 8.271 -0.554 -1.007 0.079 -0.201 -0.188 -0.147 0.134 0.215 -0.251 0.068 -0.066 0.101 - 9.813 -0.115 -0.780 0.010 -0.112 -0.279 -0.464 0.175 0.020 -0.066 -0.136 -0.008 -0.054 - 10.414 -0.671 -1.048 -0.248 -0.153 -0.124 -0.177 0.295 -0.071 -0.238 -0.233 0.040 -0.113 - 11.263 -0.644 -1.312 -0.392 -0.055 -0.315 0.023 0.359 0.076 -0.379 -0.187 0.176 -0.148 - 11.826 -0.640 -1.307 -0.274 -0.023 -0.475 0.011 0.073 -0.068 -0.315 -0.059 0.280 -0.138 - 12.104 -0.669 -1.319 -0.213 0.015 -0.304 0.055 0.096 -0.182 -0.238 -0.292 -0.040 -0.214 - 12.256 -0.617 -1.185 -0.324 0.060 -0.096 -0.013 0.057 -0.162 -0.267 -0.418 0.090 -0.168 - 13.066 0.108 -1.003 -0.386 -0.112 -0.298 -0.271 0.117 -0.183 -0.086 -0.474 0.023 -0.144 - 14.045 0.485 -1.377 -0.575 -0.164 -0.388 -0.241 0.211 -0.169 -0.082 -0.371 -0.003 -0.229 - 14.692 0.318 -1.641 -0.428 -0.251 -0.288 -0.366 0.359 -0.162 -0.003 -0.358 -0.161 -0.242 - 14.664 0.382 -1.599 -0.445 -0.329 -0.336 -0.354 0.322 -0.129 -0.007 -0.381 -0.286 -0.083 - 14.916 0.300 -1.398 -0.406 -0.356 -0.333 -0.475 0.394 -0.252 0.155 -0.431 -0.294 -0.157 - 14.957 0.425 -1.296 -0.585 -0.284 -0.355 -0.477 0.250 -0.285 0.314 -0.350 -0.341 -0.302 - 14.663 0.785 -1.246 -0.603 -0.296 -0.420 -0.452 0.045 -0.381 0.529 -0.322 -0.292 -0.468 - 14.671 0.893 -0.861 -0.818 -0.441 -0.410 -0.301 -0.001 -0.610 0.501 -0.309 -0.185 -0.357 - 14.328 0.991 -0.464 -0.841 -0.542 -0.355 -0.199 -0.264 -0.764 0.285 -0.237 0.122 -0.239 - 13.830 0.921 -0.034 -0.748 -0.614 -0.242 -0.330 -0.289 -0.785 0.113 -0.445 0.338 -0.233 - 13.318 0.903 0.312 -0.795 -0.549 -0.244 -0.184 -0.344 -0.833 -0.075 -0.603 0.266 -0.167 - 12.811 1.012 0.378 -0.817 -0.461 -0.315 -0.128 -0.328 -0.758 0.004 -0.681 0.152 -0.204 - 12.162 1.176 0.334 -0.790 -0.307 -0.302 -0.028 -0.334 -0.751 0.026 -0.661 0.020 -0.268 - 11.359 1.468 0.030 -0.762 0.089 -0.362 0.165 -0.464 -0.867 0.037 -0.538 -0.094 -0.376 - 11.299 1.238 -0.292 -0.317 0.424 -0.507 0.001 -0.595 -0.688 0.072 -0.409 -0.432 -0.270 - 11.534 0.856 -0.437 0.278 0.364 -0.727 -0.309 -0.326 -0.486 0.126 -0.526 -0.481 -0.187 - 11.609 0.313 -0.283 0.608 0.134 -0.846 -0.040 -0.167 -0.616 -0.044 -0.328 -0.325 -0.222 - 11.526 -0.381 0.265 0.800 -0.158 -0.392 0.055 -0.350 -0.514 -0.041 -0.473 -0.307 -0.374 - 11.096 -0.425 0.660 0.554 -0.207 -0.344 -0.093 -0.176 -0.495 -0.018 -0.395 -0.355 -0.302 - 11.135 -0.547 0.842 0.500 -0.029 -0.281 -0.142 -0.113 -0.526 -0.031 -0.321 -0.422 -0.368 - 11.877 -0.778 0.960 0.514 -0.252 -0.144 -0.271 0.051 -0.577 0.035 -0.364 -0.325 -0.308 - 12.479 -1.113 0.942 0.633 -0.142 -0.214 -0.427 0.046 -0.531 0.141 -0.316 -0.248 -0.278 - 12.528 -1.186 1.072 0.609 -0.235 -0.167 -0.296 0.113 -0.705 0.115 -0.286 -0.299 -0.270 - 12.590 -1.104 1.014 0.635 -0.267 -0.078 -0.299 0.144 -0.767 0.112 -0.314 -0.292 -0.219 - 12.554 -0.968 0.947 0.633 -0.335 -0.087 -0.367 0.179 -0.666 0.088 -0.356 -0.280 -0.185 - 12.386 -0.783 0.816 0.743 -0.363 -0.134 -0.419 0.100 -0.639 0.110 -0.291 -0.335 -0.184 - 12.480 -0.757 0.754 0.763 -0.368 -0.083 -0.444 0.010 -0.774 0.148 -0.302 -0.269 -0.183 - 12.317 -0.669 0.668 0.807 -0.301 -0.156 -0.381 -0.099 -0.785 0.066 -0.357 -0.146 -0.256 - 12.350 -0.764 0.661 0.916 -0.232 -0.296 -0.271 -0.304 -0.668 -0.063 -0.344 -0.141 -0.245 - 12.608 -0.836 0.636 0.695 -0.293 -0.125 -0.124 -0.280 -0.771 -0.290 -0.261 -0.036 -0.401 - 12.735 -0.788 0.537 0.519 -0.068 -0.411 -0.163 -0.290 -0.551 -0.216 -0.254 -0.179 -0.443 - 12.546 -0.792 0.332 0.527 -0.070 -0.591 -0.163 -0.318 -0.236 -0.401 -0.272 0.033 -0.463 - 12.520 -0.746 0.412 0.296 0.064 -0.616 -0.170 -0.275 -0.339 -0.435 -0.230 -0.075 -0.459 - 12.665 -0.924 0.554 0.161 0.068 -0.502 -0.219 -0.204 -0.449 -0.492 -0.317 -0.077 -0.303 - 12.901 -0.761 0.506 0.164 0.056 -0.630 -0.133 -0.216 -0.291 -0.513 -0.225 -0.112 -0.384 - 13.037 -0.693 0.407 0.223 0.062 -0.480 -0.296 -0.165 -0.478 -0.411 -0.256 -0.120 -0.436 - 13.197 -0.830 0.439 0.490 -0.052 -0.450 -0.168 -0.174 -0.479 -0.361 -0.200 -0.161 -0.435 - 13.201 -0.601 0.346 0.510 -0.113 -0.380 -0.299 -0.070 -0.546 -0.370 -0.186 -0.320 -0.368 - 13.156 -0.677 0.515 0.709 -0.271 -0.447 -0.213 -0.018 -0.621 -0.169 -0.247 -0.391 -0.311 - 13.049 -0.669 0.382 0.952 -0.430 -0.233 -0.284 0.070 -0.707 -0.038 -0.414 -0.249 -0.325 - 12.951 -0.771 0.407 0.917 -0.259 -0.264 -0.275 0.026 -0.708 0.027 -0.421 -0.239 -0.285 - 12.753 -0.662 0.348 0.793 -0.106 -0.399 -0.223 0.067 -0.691 0.094 -0.404 -0.217 -0.243 - 12.530 -0.519 0.227 0.720 0.057 -0.470 -0.266 0.160 -0.662 0.094 -0.406 -0.159 -0.241 - 12.255 -0.404 0.170 0.554 0.275 -0.468 -0.381 0.191 -0.631 0.113 -0.400 -0.176 -0.149 - 11.709 -0.184 0.144 0.374 0.423 -0.355 -0.420 0.116 -0.672 0.175 -0.455 -0.183 -0.011 - 11.290 -0.038 0.129 0.262 0.421 -0.224 -0.329 -0.045 -0.696 0.276 -0.545 -0.212 0.091 - 11.048 0.063 0.124 0.177 0.420 -0.113 -0.358 -0.124 -0.666 0.363 -0.543 -0.287 0.025 - 11.025 0.062 0.208 0.073 0.444 -0.090 -0.417 -0.128 -0.655 0.369 -0.476 -0.298 -0.065 - 11.275 0.049 0.119 0.128 0.441 -0.125 -0.458 -0.046 -0.736 0.417 -0.568 -0.267 -0.090 - 11.412 0.104 0.087 0.195 0.415 -0.224 -0.491 -0.016 -0.665 0.383 -0.653 -0.196 -0.107 - 11.607 0.168 -0.079 0.401 0.302 -0.311 -0.489 0.018 -0.596 0.300 -0.676 -0.170 -0.085 - 11.492 0.297 -0.213 0.517 0.316 -0.452 -0.404 0.020 -0.479 0.082 -0.620 -0.128 -0.151 - 11.511 0.125 -0.142 0.555 0.380 -0.570 -0.354 0.081 -0.521 0.104 -0.575 -0.141 -0.134 - 11.405 0.095 -0.077 0.527 0.283 -0.550 -0.318 0.238 -0.693 0.143 -0.501 -0.184 -0.088 - 10.979 0.165 -0.043 0.498 0.306 -0.614 -0.243 0.262 -0.772 0.261 -0.551 -0.070 -0.282 - 10.723 0.096 -0.075 0.511 0.294 -0.543 -0.198 0.237 -0.656 0.035 -0.450 -0.181 -0.175 - 10.817 -0.010 0.070 0.417 0.275 -0.432 -0.260 0.137 -0.472 -0.018 -0.501 -0.387 0.012 - 10.937 0.336 0.067 0.247 0.372 -0.257 -0.381 0.002 -0.388 0.134 -0.525 -0.582 -0.082 - 10.749 0.514 0.059 0.007 0.478 -0.289 -0.256 -0.114 -0.440 0.313 -0.334 -0.579 -0.013 - 10.715 0.652 0.326 -0.342 0.309 -0.184 -0.247 -0.138 -0.534 0.316 -0.069 -0.337 -0.007 - 10.794 0.996 0.347 -0.581 0.245 -0.240 -0.223 -0.232 -0.714 0.032 -0.071 -0.473 -0.008 - 10.900 1.273 -0.005 -0.532 0.016 -0.223 0.003 -0.306 -0.563 -0.022 0.043 -0.283 0.041 - 11.220 1.250 0.063 -0.537 -0.148 -0.487 0.170 -0.469 -0.271 -0.200 0.055 -0.268 0.110 - 11.583 1.233 0.050 -0.601 -0.471 -0.357 0.054 -0.378 -0.213 -0.209 0.011 -0.211 0.207 - 11.842 1.114 0.009 -0.421 -0.861 -0.237 0.032 -0.266 -0.089 -0.250 -0.102 -0.078 0.143 - 11.846 0.912 0.086 -0.466 -0.911 -0.346 0.092 -0.255 0.153 -0.331 -0.021 -0.121 0.073 - 11.399 1.177 -0.082 -0.425 -0.953 -0.319 0.042 -0.251 0.305 -0.408 0.059 -0.134 -0.117 - 11.768 1.185 -0.199 -0.587 -1.056 -0.034 -0.054 -0.116 0.058 -0.269 -0.012 -0.035 -0.150 - 12.176 1.080 -0.378 -0.678 -0.994 0.112 0.006 -0.198 -0.056 -0.122 0.024 0.030 -0.258 - 12.152 1.202 -0.519 -0.763 -0.806 0.097 -0.056 -0.175 -0.059 -0.027 -0.039 0.065 -0.414 - 12.494 0.952 -0.637 -0.594 -0.727 0.053 0.022 -0.398 0.019 0.137 -0.104 0.097 -0.575 - 12.236 1.091 -0.871 -0.391 -0.664 0.082 -0.110 -0.436 0.054 0.197 -0.138 0.070 -0.614 - 12.078 1.063 -0.807 -0.415 -0.552 0.093 -0.361 -0.368 0.070 0.235 -0.151 0.113 -0.585 - 10.638 0.779 -0.355 -0.057 -0.347 0.186 -0.329 -0.384 0.064 0.093 -0.346 0.125 -0.329 - 10.524 0.823 -0.118 0.206 -0.401 -0.041 -0.287 -0.370 -0.034 0.107 -0.439 0.097 -0.275 - 10.798 0.690 -0.248 0.312 -0.346 -0.169 -0.210 -0.367 -0.100 0.107 -0.398 0.041 -0.192 - 13.090 0.407 -0.932 -0.000 -0.119 -0.397 -0.581 0.059 -0.282 0.503 -0.322 0.089 -0.358 - 13.011 0.654 -0.937 -0.110 -0.353 -0.261 -0.628 0.024 -0.206 0.459 -0.350 0.026 -0.355 - 12.772 0.729 -0.834 -0.084 -0.605 -0.182 -0.616 0.021 -0.008 0.344 -0.362 0.007 -0.285 - 12.693 0.804 -0.906 0.004 -0.629 -0.196 -0.677 0.038 0.097 0.205 -0.341 0.071 -0.233 - 12.281 0.889 -0.717 0.089 -0.635 -0.193 -0.703 -0.141 0.095 0.198 -0.228 0.028 -0.150 - 11.849 1.018 -0.601 0.102 -0.429 -0.258 -0.656 -0.210 -0.148 0.260 -0.257 -0.091 -0.169 - 9.767 0.976 0.003 0.134 0.069 -0.178 -0.408 -0.153 -0.234 0.140 -0.176 -0.386 -0.341 - 9.686 0.846 -0.049 0.254 0.106 -0.123 -0.397 -0.026 -0.255 0.006 -0.262 -0.577 -0.070 - 9.760 0.722 0.040 0.216 0.184 -0.365 -0.369 0.088 -0.395 0.168 -0.252 -0.589 0.034 - 9.761 0.633 0.053 0.237 0.170 -0.365 -0.336 0.071 -0.391 0.216 -0.299 -0.536 0.018 - 9.705 0.542 0.165 0.203 0.197 -0.409 -0.229 -0.029 -0.355 0.257 -0.335 -0.607 0.158 - 9.862 0.504 0.089 0.171 0.239 -0.313 -0.179 -0.064 -0.454 0.300 -0.352 -0.465 0.082 - 12.095 0.315 -0.347 0.149 -0.028 -0.357 -0.574 0.041 -0.176 0.151 -0.264 -0.124 0.063 - 12.757 0.091 -0.211 0.214 -0.459 -0.589 -0.577 0.081 -0.339 0.155 -0.038 -0.021 0.019 - 13.027 -0.015 -0.130 0.316 -0.785 -0.515 -0.470 0.049 -0.403 0.344 -0.163 0.027 -0.099 - 13.285 -0.104 -0.122 0.318 -0.793 -0.581 -0.488 0.081 -0.457 0.369 -0.153 0.022 -0.193 - 13.479 -0.230 0.009 0.241 -0.831 -0.422 -0.654 0.145 -0.526 0.446 -0.303 0.140 -0.266 - 13.294 -0.243 0.191 0.185 -0.869 -0.386 -0.579 0.023 -0.551 0.396 -0.243 0.087 -0.202 - 13.237 -0.363 0.321 0.253 -0.857 -0.368 -0.603 -0.011 -0.544 0.338 -0.228 0.083 -0.196 - 13.109 -0.436 0.495 0.290 -0.868 -0.348 -0.516 -0.130 -0.514 0.275 -0.274 0.030 -0.158 - 12.559 -0.370 0.581 0.353 -0.752 -0.260 -0.495 -0.215 -0.547 0.213 -0.345 0.008 -0.121 - 11.826 -0.393 0.684 0.474 -0.769 -0.314 -0.348 -0.216 -0.617 0.192 -0.405 -0.122 -0.169 - 9.919 -0.600 0.708 0.525 -0.594 -0.260 -0.278 -0.110 -0.377 0.166 -0.320 -0.091 0.021 - 7.760 -0.254 0.698 0.265 -0.248 -0.199 0.090 -0.176 0.076 -0.021 -0.215 -0.253 -0.267 - 6.626 -0.143 0.948 0.258 -0.031 -0.168 -0.148 -0.500 -0.027 -0.161 -0.001 -0.009 -0.292 - 5.585 0.404 0.494 0.096 -0.275 -0.239 -0.524 -0.246 -0.319 0.241 -0.169 -0.101 -0.099 - 5.454 0.368 0.389 0.144 -0.256 -0.236 -0.497 -0.164 -0.397 0.135 -0.040 0.085 -0.221 - 6.475 -0.094 0.070 0.185 -0.511 -0.098 -0.323 -0.238 -0.146 -0.100 -0.105 0.108 -0.145 - 10.795 -1.213 -0.458 0.038 -0.484 0.026 -0.147 -0.173 0.136 0.036 -0.073 -0.107 -0.285 - 12.237 -1.468 -0.485 -0.037 -0.680 -0.081 -0.282 -0.267 -0.058 -0.159 -0.221 -0.216 -0.164 - 11.932 -0.789 0.718 0.011 -0.520 0.011 -0.392 -0.247 -0.460 -0.085 -0.190 -0.202 -0.106 - 11.852 -0.128 0.794 0.177 -0.448 -0.415 -0.628 -0.014 -0.567 -0.170 -0.196 -0.068 -0.090 - 12.057 0.233 0.320 0.306 -0.489 -0.557 -0.680 0.067 -0.560 -0.238 -0.085 0.146 -0.291 - 12.160 0.217 0.006 0.255 -0.446 -0.506 -0.712 -0.006 -0.414 -0.206 -0.180 0.256 -0.397 - 12.161 0.101 -0.098 0.325 -0.521 -0.410 -0.846 -0.053 -0.406 -0.221 -0.233 0.303 -0.323 - 11.889 0.016 -0.280 0.448 -0.358 -0.244 -0.754 -0.032 -0.328 -0.184 -0.360 0.255 -0.319 - 8.346 -0.194 0.160 0.473 -0.166 -0.201 -0.803 -0.059 -0.082 -0.198 -0.133 0.301 -0.072 - 7.623 -0.067 0.172 0.593 -0.164 0.012 -0.626 0.126 -0.024 -0.031 -0.015 0.096 -0.011 - 6.753 0.330 -0.439 0.216 -0.031 -0.096 -0.356 -0.062 -0.114 0.045 -0.041 0.128 -0.118 - 8.967 0.214 -1.324 -0.274 -0.166 -0.150 -0.373 -0.230 -0.247 -0.231 -0.171 -0.138 -0.042 - 8.960 -0.682 -0.484 -0.221 -0.082 -0.103 -0.381 -0.103 -0.141 -0.209 -0.075 -0.298 -0.022 - 8.718 -0.550 -0.054 -0.260 -0.303 -0.164 -0.269 0.025 -0.178 -0.005 -0.145 -0.099 -0.015 - 9.853 -0.831 -0.372 -0.017 -0.221 -0.115 -0.170 0.062 -0.047 -0.107 -0.170 0.044 -0.098 - 11.528 -0.776 -0.600 -0.008 -0.193 -0.126 -0.180 0.096 -0.007 -0.125 -0.309 -0.162 -0.126 - 11.804 -0.438 -0.424 0.015 -0.055 -0.026 -0.189 -0.034 -0.036 -0.008 -0.229 -0.260 -0.122 - 12.331 0.080 -0.136 0.163 0.104 -0.173 -0.363 -0.247 -0.040 -0.159 -0.332 -0.309 -0.106 - 13.202 0.238 0.081 0.428 0.023 -0.121 -0.511 -0.404 -0.113 -0.168 -0.310 -0.440 -0.384 - 12.612 -0.042 -0.082 0.367 0.089 0.118 -0.449 -0.213 -0.139 -0.125 -0.331 -0.366 -0.246 - 11.889 0.265 -0.273 0.341 0.226 0.023 -0.552 -0.303 -0.266 -0.264 -0.127 -0.474 -0.132 - 12.193 1.021 -0.768 -0.405 -0.103 -0.063 -0.726 -0.331 -0.234 -0.177 -0.072 -0.180 -0.159 - 11.508 1.690 -0.758 -0.282 -0.078 0.118 -0.667 -0.502 -0.159 -0.112 -0.154 -0.045 -0.114 - 10.321 1.907 -0.353 -0.339 0.084 0.229 -0.501 -0.365 -0.111 -0.239 -0.089 -0.190 -0.156 - 7.913 1.710 0.143 -0.183 0.011 0.021 -0.280 -0.084 -0.048 -0.048 -0.059 -0.025 -0.187 - 5.789 1.019 0.070 0.048 0.136 0.254 -0.216 -0.261 -0.149 0.034 0.015 0.024 -0.098 - 5.316 0.814 -0.063 -0.025 -0.026 0.110 -0.158 -0.248 -0.075 -0.007 0.051 0.043 -0.116 - 5.111 0.523 -0.143 -0.064 -0.110 -0.118 -0.371 -0.287 -0.105 0.172 0.114 0.033 0.085 - 4.814 0.376 -0.035 -0.109 0.076 -0.050 -0.354 -0.235 -0.077 -0.009 0.047 -0.069 -0.019 - 4.987 0.454 -0.059 -0.066 0.030 -0.023 -0.185 -0.297 -0.238 0.151 -0.150 -0.019 -0.082 - 7.530 -0.797 0.057 0.220 0.044 -0.105 -0.380 -0.044 -0.152 -0.181 0.050 -0.148 0.107 - 12.366 0.466 0.284 0.087 -0.414 -0.260 -0.169 -0.107 -0.336 -0.364 -0.144 -0.286 -0.046 - 13.529 1.183 0.077 0.443 -0.464 -0.391 0.159 -0.259 -0.389 -0.315 -0.225 -0.184 -0.120 - 11.662 0.850 0.385 0.524 -0.552 -0.466 0.047 -0.214 -0.226 -0.116 -0.283 -0.162 -0.086 - 10.371 -0.200 0.555 0.623 -0.198 -0.428 0.169 -0.333 -0.501 -0.190 -0.300 -0.148 -0.162 - 11.224 -0.094 0.316 0.440 -0.498 -0.292 -0.193 -0.340 -0.375 -0.263 -0.263 -0.210 -0.150 - 11.925 -0.146 0.255 0.730 -0.265 -0.454 -0.287 -0.071 -0.643 -0.133 -0.237 -0.236 -0.110 - 12.178 -0.337 0.338 0.720 -0.300 -0.287 -0.211 -0.162 -0.762 -0.012 -0.387 -0.166 -0.168 - 11.918 -0.383 0.362 0.780 -0.227 -0.470 -0.016 -0.092 -0.881 -0.005 -0.326 -0.276 -0.124 - 11.271 -0.191 0.001 0.691 0.176 -0.552 -0.207 0.163 -0.980 -0.110 -0.395 -0.232 -0.101 - 9.960 0.374 0.086 0.541 0.469 -0.479 -0.338 0.414 -0.792 0.058 -0.231 -0.234 -0.149 - 7.602 0.411 0.389 0.076 0.222 -0.058 -0.083 0.095 -0.333 0.113 -0.069 -0.193 -0.069 - 9.279 -0.976 0.382 0.285 0.436 -0.408 -0.020 0.037 0.093 -0.203 -0.497 0.023 -0.062 - 9.441 -1.265 0.132 0.390 0.235 -0.277 0.076 -0.072 0.099 -0.325 -0.450 0.103 -0.083 - 8.478 -0.980 -0.099 0.242 0.093 -0.083 0.071 -0.059 0.057 -0.325 -0.353 0.010 0.000 - 11.797 -0.537 0.068 0.160 -0.081 -0.028 -0.105 -0.127 -0.190 -0.155 -0.149 -0.027 -0.068 - 12.674 1.023 0.173 -0.237 -0.396 -0.219 -0.186 -0.051 -0.189 -0.273 -0.188 -0.014 0.086 - 12.600 1.014 0.359 -0.035 -0.403 -0.080 -0.310 -0.199 -0.252 -0.322 -0.226 -0.169 0.005 - 12.120 1.093 0.523 -0.126 -0.532 0.118 -0.155 -0.151 -0.088 -0.377 -0.167 -0.208 -0.039 - 11.901 0.941 0.710 -0.355 -0.899 0.009 -0.016 -0.318 -0.140 -0.517 -0.091 -0.226 0.040 - 11.242 1.003 0.838 -0.724 -0.711 0.000 -0.078 -0.328 -0.088 -0.421 -0.078 -0.061 0.117 - 10.906 0.448 0.860 -0.711 -0.568 -0.034 -0.147 -0.171 -0.270 -0.325 -0.238 0.130 -0.210 - 8.473 0.405 0.782 -0.207 -0.413 0.052 0.005 0.062 -0.237 -0.132 -0.356 0.059 -0.100 - 6.599 0.317 0.716 0.232 -0.201 -0.147 -0.091 -0.187 -0.043 0.011 -0.225 -0.034 -0.109 - 6.069 0.277 0.495 0.144 -0.060 -0.045 -0.004 -0.295 -0.029 -0.185 -0.085 0.135 -0.090 - 9.419 -0.965 0.036 0.220 -0.368 0.040 -0.377 0.027 0.125 0.059 -0.098 -0.206 -0.139 - 11.342 -1.155 0.053 0.004 -0.386 0.019 -0.389 0.001 0.101 0.103 -0.111 -0.222 -0.207 - 10.524 -0.572 0.732 -0.097 -0.400 -0.035 -0.465 -0.298 -0.408 -0.136 -0.192 -0.061 -0.303 - 11.266 0.213 0.412 -0.025 -0.294 0.283 -0.122 -0.459 -0.564 -0.186 -0.025 0.105 -0.278 - 9.157 0.726 0.627 -0.295 -0.121 0.447 -0.233 -0.524 -0.392 -0.191 0.156 0.105 -0.231 - 6.434 0.720 0.336 0.106 -0.006 0.238 0.135 -0.260 -0.386 -0.152 -0.017 -0.309 -0.144 - 6.051 0.785 0.664 -0.136 0.037 0.237 0.254 -0.086 -0.301 -0.266 -0.192 -0.056 -0.064 - 6.050 0.887 0.462 -0.062 0.040 0.175 0.093 -0.152 -0.243 -0.123 -0.114 -0.188 -0.022 - 6.164 0.823 0.379 0.182 -0.145 0.078 0.187 -0.068 -0.285 -0.208 -0.038 0.029 -0.043 - 5.469 0.534 0.401 0.226 0.051 -0.046 0.162 -0.006 -0.075 -0.052 -0.028 -0.033 -0.238 - 5.074 0.556 0.376 0.046 0.158 0.047 -0.004 -0.027 0.017 0.032 -0.190 -0.022 -0.100 - 4.539 0.494 0.180 0.202 0.401 0.214 0.162 0.032 -0.202 0.071 -0.093 -0.197 -0.121 - 10.276 0.467 0.554 0.124 0.064 -0.047 -0.368 -0.210 -0.319 -0.292 -0.068 -0.199 -0.120 - 12.053 1.118 0.729 -0.031 -0.135 -0.132 -0.425 -0.125 -0.280 -0.445 -0.165 -0.324 -0.133 - 10.755 0.964 0.814 0.002 -0.114 0.038 -0.452 -0.183 -0.157 -0.180 -0.036 -0.247 -0.166 - 9.269 0.534 0.794 0.051 -0.157 -0.070 -0.297 -0.075 -0.193 0.035 -0.075 -0.267 -0.163 - 9.027 0.718 1.088 -0.635 -0.600 -0.327 -0.417 -0.149 -0.290 -0.044 -0.455 -0.119 -0.294 - 9.908 0.498 1.127 -0.482 -0.764 -0.179 -0.511 -0.154 -0.162 -0.009 -0.539 -0.081 -0.290 - 10.238 0.366 1.118 -0.596 -0.993 -0.166 -0.173 -0.090 -0.190 -0.336 -0.318 -0.226 -0.255 - 11.283 0.273 0.361 -0.246 -0.890 0.013 -0.252 -0.312 -0.016 -0.527 -0.438 -0.235 -0.210 - 11.694 0.505 -0.099 -0.062 -0.513 0.253 -0.164 -0.805 -0.065 -0.300 -0.373 -0.108 -0.152 - 12.162 0.508 -0.559 0.618 -0.262 -0.063 -0.458 -0.621 -0.122 -0.209 -0.283 -0.175 -0.131 - 12.322 0.110 -0.323 0.986 -0.300 -0.401 -0.506 -0.253 -0.359 -0.183 -0.378 -0.150 -0.093 - 11.821 -0.130 0.066 0.948 -0.215 -0.585 -0.191 -0.215 -0.641 0.089 -0.545 -0.045 -0.343 - 11.531 -0.433 0.411 0.730 -0.096 -0.308 -0.314 -0.184 -0.572 0.110 -0.434 -0.153 -0.307 - 11.045 -0.317 0.268 1.031 -0.379 -0.165 -0.225 -0.181 -0.524 -0.013 -0.268 -0.205 -0.285 - 10.828 -0.354 0.408 0.862 -0.192 -0.231 -0.093 -0.199 -0.678 0.039 -0.292 -0.150 -0.137 - 11.216 -0.641 0.436 0.851 -0.187 -0.331 -0.204 0.011 -0.647 0.124 -0.370 -0.149 -0.149 - 10.826 -0.469 -0.028 1.059 -0.052 -0.453 -0.203 0.095 -0.812 0.265 -0.286 -0.164 -0.239 - 8.784 0.009 -0.034 0.785 0.058 -0.380 -0.058 0.471 -0.757 0.076 -0.422 -0.244 -0.286 - 5.963 0.733 0.300 0.372 -0.092 0.007 0.270 0.178 -0.362 -0.028 -0.261 -0.158 -0.061 - 5.738 0.665 0.154 0.548 -0.165 -0.282 0.264 0.051 -0.351 0.150 -0.075 -0.241 -0.115 - 5.155 0.515 0.149 0.513 0.119 -0.169 0.127 0.015 -0.427 0.147 -0.155 -0.032 -0.036 - 4.762 0.333 -0.044 0.370 0.032 -0.134 -0.022 -0.104 -0.431 0.006 -0.156 -0.016 -0.075 - 4.047 0.280 -0.224 0.198 0.079 -0.080 0.045 -0.129 -0.389 0.111 0.018 0.139 -0.100 - 7.081 -0.576 0.020 0.162 0.043 0.016 -0.075 -0.043 -0.125 -0.155 -0.077 -0.020 -0.109 - 12.746 0.859 0.178 -0.052 -0.231 -0.334 -0.342 -0.081 0.029 -0.159 -0.244 -0.188 -0.359 - 13.084 1.135 0.200 0.131 -0.217 -0.278 -0.353 -0.145 0.036 -0.219 -0.278 -0.134 -0.308 - 11.496 0.753 0.743 0.216 -0.239 -0.196 -0.200 -0.010 -0.037 -0.221 -0.308 -0.064 -0.323 - 10.008 0.035 0.665 0.417 0.013 -0.056 0.005 -0.009 -0.016 -0.181 -0.120 0.008 -0.247 - 8.808 -0.439 0.498 0.176 -0.089 0.082 -0.025 0.078 -0.085 -0.172 -0.152 -0.061 -0.176 - 8.428 -0.821 0.418 0.260 0.136 -0.243 -0.241 -0.082 0.072 -0.106 -0.243 -0.081 -0.039 - 9.209 -0.506 0.249 0.198 0.016 -0.129 -0.124 0.018 -0.017 -0.205 -0.270 -0.063 -0.027 - 10.400 -0.288 0.190 0.116 -0.021 -0.178 -0.101 0.026 0.105 -0.391 -0.311 -0.017 -0.093 - 9.484 -0.437 0.323 0.080 -0.048 -0.216 -0.275 -0.126 0.042 -0.040 -0.339 0.066 -0.216 - 10.448 -0.062 -0.144 0.318 -0.426 -0.468 -0.456 -0.206 -0.103 0.135 -0.323 0.044 -0.161 - 12.103 0.316 -0.467 0.010 -0.456 -0.376 -0.722 0.168 -0.055 0.183 -0.457 0.244 -0.227 - 12.302 0.345 -0.354 -0.060 -0.546 -0.333 -0.993 0.365 0.052 0.110 -0.248 0.305 -0.346 - 12.171 0.213 -0.224 0.245 -0.843 -0.152 -0.769 0.293 -0.012 0.029 -0.123 0.239 -0.443 - 12.463 0.153 -0.114 0.031 -0.638 -0.180 -0.826 0.486 -0.263 0.093 -0.098 0.175 -0.507 - 12.624 -0.091 -0.024 0.251 -0.690 -0.265 -0.590 0.355 -0.360 0.178 -0.012 -0.043 -0.395 - 12.333 -0.227 0.226 0.267 -0.818 -0.187 -0.408 0.130 -0.272 0.179 0.001 -0.148 -0.298 - 11.705 -0.261 0.303 0.292 -0.833 -0.188 -0.204 -0.086 -0.154 0.248 -0.138 -0.160 -0.078 - 11.118 -0.111 0.371 -0.039 -0.293 -0.367 -0.218 -0.003 -0.074 0.009 -0.148 -0.212 0.006 - 10.722 0.217 0.325 -0.165 0.074 -0.558 -0.220 0.149 -0.223 0.021 -0.144 -0.284 0.063 - 10.647 0.373 0.283 -0.221 0.109 -0.580 -0.249 0.255 -0.404 0.151 -0.197 -0.301 0.048 - 10.433 0.377 0.316 -0.224 0.199 -0.615 -0.175 0.251 -0.488 0.159 -0.278 -0.298 0.085 - 9.859 0.383 0.414 -0.086 -0.059 -0.736 0.149 0.112 -0.425 0.122 -0.242 -0.379 0.124 - 9.427 0.273 0.409 0.131 0.013 -0.902 0.083 0.125 -0.332 -0.018 -0.245 -0.341 0.142 - 9.540 0.341 -0.050 0.413 -0.085 -0.704 -0.223 0.135 -0.145 0.121 -0.141 -0.366 0.116 - 10.135 0.278 -0.321 0.186 0.259 -0.530 -0.453 -0.233 -0.131 0.123 -0.229 -0.292 0.062 - 10.324 -0.096 -0.075 -0.035 0.194 -0.613 -0.414 -0.152 0.116 -0.027 -0.291 -0.150 0.023 - 9.649 -0.747 0.310 -0.057 0.057 -0.520 -0.214 -0.035 0.078 -0.173 -0.209 -0.117 0.068 - 9.240 -1.212 0.326 -0.012 0.140 -0.281 -0.289 -0.217 -0.069 -0.152 -0.163 -0.010 0.095 - 9.496 -1.172 0.139 -0.444 0.186 -0.249 -0.159 -0.078 -0.082 -0.135 -0.162 -0.025 -0.117 - 9.556 -1.478 0.157 -0.400 0.146 -0.205 -0.130 -0.058 -0.048 -0.009 -0.119 -0.106 -0.163 - 9.990 -1.557 -0.026 -0.462 0.158 -0.261 -0.072 -0.059 0.008 -0.022 -0.088 -0.075 -0.048 - 10.594 -1.248 0.211 -0.078 0.219 -0.278 -0.309 -0.172 0.069 -0.087 -0.174 -0.040 -0.102 - 11.538 -0.551 0.297 -0.116 -0.043 -0.543 -0.367 -0.375 -0.166 0.095 -0.256 -0.073 -0.184 - 11.986 0.391 -0.068 -0.142 -0.464 -0.604 -0.355 -0.441 0.042 0.014 -0.411 0.207 -0.073 - 12.330 0.761 -0.569 -0.187 -0.397 -0.570 -0.402 -0.366 0.120 0.141 -0.384 0.225 -0.093 - 13.091 0.407 -0.744 -0.191 -0.431 -0.481 -0.474 -0.060 0.120 0.032 -0.275 0.038 -0.074 - 13.413 0.176 -0.763 -0.132 -0.446 -0.616 -0.523 0.141 0.105 0.017 -0.335 0.142 -0.126 - 13.039 0.157 -0.556 -0.202 -0.576 -0.568 -0.547 0.293 -0.001 0.162 -0.467 0.192 -0.248 - 13.351 0.295 -0.704 -0.402 -0.540 -0.307 -0.770 0.230 0.172 0.049 -0.410 0.078 -0.239 - 13.396 0.339 -0.838 -0.447 -0.428 -0.435 -0.661 0.326 0.040 -0.003 -0.263 -0.078 -0.150 - 13.724 0.042 -0.914 -0.267 -0.546 -0.465 -0.467 0.256 0.034 0.123 -0.404 -0.082 -0.126 - 13.189 0.325 -0.897 -0.444 -0.534 -0.302 -0.677 0.315 -0.066 0.282 -0.455 -0.090 -0.144 - 13.655 0.112 -1.024 -0.300 -0.543 -0.496 -0.469 0.269 0.022 0.197 -0.441 -0.135 -0.149 - 13.423 0.236 -0.982 -0.324 -0.603 -0.398 -0.494 0.285 -0.081 0.258 -0.400 -0.208 -0.139 - 13.768 0.203 -0.996 -0.362 -0.539 -0.373 -0.511 0.312 -0.198 0.320 -0.419 -0.250 -0.091 - 13.621 0.176 -1.005 -0.352 -0.591 -0.266 -0.589 0.321 -0.135 0.230 -0.370 -0.255 -0.018 - 13.281 0.376 -1.096 -0.449 -0.485 -0.294 -0.563 0.361 -0.139 0.232 -0.427 -0.221 -0.039 - 13.165 0.340 -0.983 -0.650 -0.425 -0.347 -0.428 0.283 -0.140 0.310 -0.414 -0.397 -0.021 - 13.358 0.425 -1.169 -0.586 -0.385 -0.272 -0.559 0.310 -0.170 0.383 -0.438 -0.456 0.007 - 13.367 0.559 -1.216 -0.662 -0.340 -0.111 -0.589 0.176 -0.202 0.449 -0.418 -0.447 -0.027 - 13.318 0.666 -1.374 -0.534 -0.411 -0.252 -0.380 -0.004 -0.099 0.347 -0.300 -0.384 -0.152 - 12.813 0.700 -1.052 -0.815 -0.430 -0.132 -0.439 0.045 -0.198 0.412 -0.236 -0.459 -0.115 - 12.625 0.686 -0.900 -0.919 -0.477 -0.067 -0.477 0.032 -0.279 0.526 -0.203 -0.417 -0.182 - 12.847 0.711 -0.804 -0.822 -0.597 -0.044 -0.482 -0.009 -0.378 0.497 -0.083 -0.340 -0.228 - 12.497 0.903 -0.705 -0.969 -0.413 -0.076 -0.555 0.042 -0.385 0.323 0.051 -0.299 -0.216 - 12.039 0.854 -0.524 -0.958 -0.479 -0.116 -0.374 -0.124 -0.400 0.295 0.110 -0.209 -0.283 - 11.924 0.804 -0.554 -0.804 -0.570 -0.161 -0.393 -0.189 -0.455 0.345 0.177 -0.199 -0.289 - 12.189 0.725 -0.612 -0.558 -0.653 -0.119 -0.448 -0.213 -0.508 0.341 0.141 -0.198 -0.213 - 12.057 0.712 -0.525 -0.732 -0.444 -0.352 -0.404 -0.503 -0.306 0.176 0.059 -0.151 -0.173 - 10.171 0.700 -0.297 -0.767 -0.296 -0.363 -0.389 -0.673 -0.178 0.233 0.220 -0.073 -0.086 - 9.988 0.782 -0.153 -0.887 0.001 -0.299 -0.486 -0.721 -0.130 0.015 0.031 -0.075 -0.110 - 6.992 0.461 -0.113 -0.510 -0.129 -0.539 -0.448 -0.699 0.005 0.504 0.169 -0.077 -0.116 - 6.315 0.546 -0.368 -0.298 -0.150 -0.403 -0.409 -0.252 0.012 0.386 -0.013 -0.124 -0.180 - 5.776 0.807 -0.357 -0.338 -0.318 -0.325 -0.289 -0.138 0.030 0.370 0.056 -0.073 -0.100 - 5.222 0.621 -0.340 -0.414 -0.371 -0.346 -0.387 -0.097 0.132 0.280 0.053 -0.032 -0.090 - 4.791 0.630 -0.185 -0.443 -0.267 -0.272 -0.447 0.051 0.175 0.327 0.013 -0.013 -0.162 - 4.421 0.552 -0.095 -0.177 -0.390 -0.494 -0.508 -0.113 -0.012 0.300 0.034 -0.063 -0.164 - 4.441 0.655 -0.277 -0.326 -0.165 -0.205 -0.264 0.022 0.183 0.212 -0.036 0.051 -0.095 - 4.638 0.737 -0.133 -0.261 -0.173 -0.166 -0.313 -0.223 -0.007 0.290 0.049 0.017 -0.267 - 4.348 0.400 -0.367 -0.215 -0.119 -0.078 -0.028 -0.239 0.054 0.264 -0.001 0.114 -0.334 - 8.495 -0.408 -0.232 -0.463 -0.183 -0.266 -0.367 -0.173 -0.056 -0.043 0.007 -0.063 -0.169 - 8.792 -0.352 -0.020 -0.406 -0.044 -0.277 -0.399 -0.203 0.011 -0.039 0.027 -0.079 -0.227 - 7.791 -1.155 0.153 -0.323 0.111 -0.212 -0.204 -0.187 -0.104 0.004 0.054 -0.220 -0.049 - 8.919 -1.668 -0.173 -0.371 0.294 -0.135 0.058 -0.057 -0.065 -0.152 -0.085 -0.060 0.024 - 9.737 -1.548 -0.259 -0.314 0.134 -0.217 -0.097 -0.043 0.050 0.052 -0.010 -0.010 0.045 - 9.999 -1.381 -0.077 -0.300 0.105 -0.239 -0.239 -0.249 -0.081 -0.157 -0.082 -0.013 0.001 - 10.140 -1.330 -0.040 -0.276 0.215 -0.187 0.005 -0.121 -0.051 -0.158 -0.205 -0.123 -0.107 - 10.196 -1.112 0.101 -0.461 0.097 -0.296 -0.179 0.055 -0.092 -0.099 -0.151 0.010 -0.148 - 10.168 -1.238 -0.022 -0.379 0.018 -0.289 -0.240 -0.017 0.136 0.052 -0.185 -0.005 0.035 - 10.146 -1.245 -0.081 -0.444 -0.043 -0.333 -0.193 -0.072 0.071 0.135 -0.335 0.073 -0.119 - 10.340 -0.274 0.432 -0.255 -0.172 -0.511 -0.522 -0.462 0.008 0.096 -0.384 -0.085 -0.072 - 10.970 0.451 0.198 -0.406 -0.322 -0.201 -0.567 -0.776 0.116 -0.015 -0.211 0.076 -0.042 - 11.531 0.470 0.143 -0.499 -0.522 0.078 -0.762 -0.785 0.044 0.269 -0.403 0.188 -0.140 - 12.201 0.332 0.089 -0.435 -0.484 -0.186 -0.664 -0.623 0.031 0.353 -0.494 0.127 -0.114 - 12.476 0.161 -0.103 -0.415 -0.413 -0.304 -0.631 -0.561 0.161 0.241 -0.415 0.073 -0.144 - 12.607 -0.020 -0.215 -0.374 -0.466 -0.459 -0.580 -0.463 0.233 0.218 -0.353 0.064 -0.073 - 12.561 0.043 -0.230 -0.323 -0.526 -0.422 -0.610 -0.383 0.184 0.291 -0.365 0.034 -0.069 - 12.728 0.073 -0.272 -0.280 -0.616 -0.315 -0.568 -0.354 0.165 0.273 -0.336 -0.145 -0.025 - 12.856 0.065 -0.552 -0.298 -0.539 -0.266 -0.536 -0.380 0.211 0.222 -0.323 -0.150 -0.032 - 11.921 0.387 -0.450 -0.515 -0.578 -0.097 -0.704 -0.318 0.234 0.291 -0.278 -0.107 -0.026 - 12.792 0.151 -0.622 -0.419 -0.545 -0.272 -0.557 -0.306 0.196 0.253 -0.239 -0.210 -0.008 - 12.716 0.317 -0.532 -0.466 -0.541 -0.253 -0.487 -0.370 0.188 0.258 -0.288 -0.289 0.034 - 12.149 0.668 -0.648 -0.473 -0.536 -0.135 -0.586 -0.268 0.106 0.227 -0.242 -0.256 -0.079 - 11.866 0.728 -0.683 -0.548 -0.503 -0.107 -0.589 -0.396 0.189 0.293 -0.250 -0.261 -0.015 - 12.407 0.554 -0.817 -0.422 -0.481 -0.230 -0.510 -0.441 0.218 0.252 -0.179 -0.274 -0.018 - 12.632 0.489 -0.752 -0.401 -0.521 -0.179 -0.514 -0.343 0.138 0.145 -0.134 -0.276 -0.032 - 12.511 0.487 -0.815 -0.281 -0.606 -0.208 -0.307 -0.384 0.113 0.160 -0.211 -0.211 -0.092 - 12.283 0.408 -0.962 -0.280 -0.614 -0.201 -0.183 -0.423 0.244 0.090 -0.118 -0.252 -0.063 - 12.434 0.179 -0.915 -0.287 -0.582 -0.218 -0.095 -0.432 0.306 0.039 -0.111 -0.257 -0.219 - 11.978 0.170 -0.742 -0.240 -0.392 -0.230 -0.193 -0.344 0.371 0.065 -0.024 -0.141 -0.283 - 11.484 0.325 -0.708 -0.264 -0.293 -0.123 -0.118 -0.552 0.349 -0.101 0.039 -0.145 -0.444 - 10.477 0.527 -0.594 -0.406 -0.162 -0.015 -0.099 -0.486 0.314 -0.141 0.054 -0.272 -0.495 - 9.433 0.516 -0.431 -0.355 -0.171 0.039 0.003 -0.409 0.322 -0.157 0.139 -0.233 -0.464 - 8.295 0.284 -0.251 -0.217 -0.053 0.057 -0.003 -0.274 0.228 -0.231 -0.096 -0.116 -0.341 - 7.662 -0.093 -0.424 -0.495 -0.033 0.293 0.080 0.052 0.168 -0.030 -0.126 -0.254 -0.261 - 6.827 -0.221 -0.097 -0.443 -0.020 0.128 -0.163 -0.042 0.295 0.044 -0.126 -0.156 -0.279 - 6.110 -0.240 -0.221 -0.551 -0.122 -0.147 -0.134 -0.036 -0.089 0.083 -0.017 -0.101 -0.054 - 5.627 -0.158 0.062 -0.292 -0.274 -0.248 -0.110 -0.085 -0.070 0.138 -0.142 -0.142 0.001 - 5.422 -0.011 -0.230 -0.057 -0.034 -0.206 -0.334 -0.201 -0.076 0.134 -0.057 0.021 -0.142 - 5.816 -0.254 -0.033 -0.125 0.214 -0.338 -0.393 -0.086 -0.003 0.280 -0.092 -0.022 -0.048 - 5.547 -0.499 -0.255 -0.149 0.317 -0.142 -0.422 -0.142 0.172 0.261 -0.256 -0.041 -0.015 - 5.212 -0.378 -0.276 -0.181 0.362 -0.120 -0.322 0.034 0.015 0.163 -0.161 -0.016 0.040 - 4.111 -0.041 -0.299 -0.006 0.053 -0.120 -0.095 -0.053 -0.049 0.212 0.019 -0.117 -0.017 - 5.810 -0.393 -0.209 -0.020 0.021 -0.083 -0.298 -0.030 0.026 -0.022 -0.111 -0.078 0.066 - 9.541 -0.630 -0.360 -0.114 0.029 -0.078 -0.456 -0.104 0.000 -0.133 -0.177 -0.118 -0.006 - 7.334 -0.596 -0.249 0.043 0.155 -0.060 -0.468 -0.052 0.069 -0.164 -0.218 -0.130 -0.024 - 7.253 -0.650 -0.237 0.217 0.228 -0.023 -0.260 -0.053 -0.122 -0.281 -0.504 -0.177 0.040 - 7.697 -0.664 -0.393 -0.043 0.051 -0.050 -0.333 -0.063 0.047 -0.123 -0.203 0.047 -0.150 - 7.961 -0.806 -0.496 -0.049 0.092 -0.167 -0.301 -0.128 -0.185 -0.156 -0.116 0.053 -0.069 - 8.374 -0.976 -0.516 0.073 0.254 -0.130 -0.248 -0.023 -0.070 0.023 -0.331 -0.177 -0.110 - 8.590 -1.097 -0.584 -0.036 0.015 -0.079 -0.210 0.103 -0.114 -0.103 -0.169 0.186 0.032 - 8.835 -1.034 -0.647 0.029 -0.002 -0.219 -0.405 -0.044 -0.263 -0.254 -0.233 0.166 -0.060 - 8.841 -1.055 -0.471 0.006 0.041 -0.338 -0.321 -0.041 -0.163 -0.176 -0.197 0.158 -0.083 - 8.683 -1.107 -0.513 0.265 0.128 -0.323 -0.381 -0.077 -0.042 -0.248 -0.316 0.073 -0.160 - 9.162 -0.951 -0.391 -0.032 -0.036 -0.307 -0.297 0.053 -0.058 -0.304 -0.118 0.112 -0.113 - 9.295 -1.180 -0.563 0.028 0.015 -0.171 -0.211 0.048 0.004 -0.307 -0.172 0.157 0.051 - 9.326 -1.116 -0.531 -0.072 0.041 -0.194 -0.256 -0.034 -0.010 -0.158 -0.126 0.243 0.083 - 9.172 -0.938 -0.468 -0.033 0.040 -0.270 -0.393 -0.098 -0.101 0.074 -0.047 0.205 -0.155 - 9.072 -0.904 -0.519 -0.102 -0.095 -0.228 -0.230 0.048 -0.069 0.127 -0.173 0.170 -0.186 - 9.378 -0.827 -0.479 -0.109 -0.282 -0.355 -0.562 -0.026 -0.028 0.029 -0.129 0.169 -0.080 - 9.535 -0.764 -0.250 0.001 -0.120 -0.466 -0.477 -0.114 -0.018 -0.119 -0.344 0.006 -0.109 - 9.579 -0.828 -0.473 0.123 -0.232 -0.532 -0.466 -0.041 0.124 -0.065 -0.356 -0.005 -0.099 - 9.490 -1.082 -0.488 -0.084 -0.379 -0.499 -0.553 -0.027 -0.032 -0.101 -0.253 0.044 0.135 - 9.561 -0.996 -0.384 -0.242 -0.243 -0.304 -0.410 0.135 -0.043 -0.095 -0.202 -0.058 -0.033 - 9.453 -0.877 -0.283 -0.283 -0.210 -0.222 -0.450 0.121 0.130 0.110 -0.209 -0.075 -0.048 - 9.609 -0.975 -0.374 -0.134 -0.127 -0.392 -0.533 -0.019 0.156 -0.177 -0.219 0.065 -0.069 - 9.723 -0.822 -0.455 -0.270 -0.069 -0.395 -0.483 0.001 0.046 -0.147 -0.186 0.111 -0.221 - 10.284 -0.683 -0.321 -0.210 -0.161 -0.222 -0.432 0.232 0.040 0.113 -0.260 0.043 -0.058 - 10.203 -0.916 -0.387 -0.091 -0.126 -0.360 -0.407 0.281 0.027 0.058 -0.231 -0.053 -0.114 - 9.985 -1.038 -0.377 -0.129 -0.033 -0.657 -0.718 0.077 -0.130 -0.128 -0.247 0.107 -0.243 - 9.770 -1.231 -0.301 -0.128 -0.145 -0.518 -0.582 0.095 0.006 -0.014 -0.210 0.238 -0.061 - 9.511 -0.979 -0.374 -0.002 -0.115 -0.564 -0.602 -0.005 -0.008 0.043 -0.093 0.263 -0.039 - 9.593 -0.623 -0.337 -0.031 -0.081 -0.494 -0.626 0.041 -0.238 -0.060 -0.089 0.312 -0.058 - 9.297 -0.720 -0.487 -0.061 0.037 -0.570 -0.642 -0.113 -0.142 -0.028 0.012 0.484 -0.006 - 9.218 -0.921 -0.219 -0.020 0.081 -0.624 -0.673 -0.192 -0.084 -0.044 -0.192 0.371 0.047 - 9.260 -0.802 -0.081 0.128 0.106 -0.709 -0.716 -0.071 -0.163 -0.019 -0.086 0.264 0.044 - 9.455 -0.713 -0.122 -0.066 -0.043 -0.552 -0.573 -0.052 -0.203 -0.012 -0.232 0.253 0.163 - 9.139 -0.735 -0.013 -0.021 0.103 -0.577 -0.704 0.042 -0.280 -0.175 -0.208 0.248 0.108 - 8.994 -0.593 -0.304 -0.018 0.099 -0.317 -0.638 0.011 -0.308 -0.052 -0.284 0.138 0.071 - 9.133 -0.489 -0.221 -0.095 0.111 -0.185 -0.616 -0.127 -0.079 0.075 -0.046 0.283 -0.033 - 9.084 -0.515 -0.013 0.009 0.204 -0.121 -0.482 -0.140 -0.059 -0.064 -0.233 0.178 -0.055 - 8.690 -0.621 -0.099 -0.071 0.277 -0.438 -0.710 -0.101 -0.194 -0.208 -0.107 0.189 0.087 - 8.248 -0.635 -0.041 0.002 0.282 -0.507 -0.552 -0.187 -0.139 -0.042 -0.229 0.178 -0.044 - 8.535 -0.543 -0.121 0.037 0.373 -0.423 -0.405 -0.004 -0.077 -0.271 -0.328 0.222 -0.006 - 8.377 -0.448 -0.289 0.086 0.226 -0.247 -0.382 0.044 0.046 -0.129 -0.300 0.349 -0.035 - 8.141 -0.339 -0.111 0.207 0.185 -0.123 -0.379 0.064 0.050 -0.025 -0.151 0.186 -0.179 - 7.833 -0.391 -0.310 0.125 0.192 -0.114 -0.427 -0.157 -0.137 -0.177 -0.229 0.156 0.078 - 7.304 -0.148 -0.273 0.290 0.280 -0.265 -0.362 -0.071 -0.059 -0.379 -0.241 0.147 -0.011 - 6.742 -0.395 -0.271 0.034 0.441 -0.314 -0.401 0.128 -0.084 -0.323 -0.113 0.296 0.149 - 9.175 1.149 0.010 -0.013 -0.204 -0.603 -0.192 -0.115 -0.233 -0.080 -0.227 -0.081 -0.104 - 10.261 1.460 0.019 0.099 -0.351 -0.678 -0.155 -0.265 -0.199 -0.102 -0.201 -0.110 -0.150 - 7.873 1.307 0.317 -0.192 -0.560 -0.777 -0.359 -0.221 -0.126 -0.182 -0.269 0.075 0.089 - 7.487 0.991 0.516 -0.007 -0.519 -0.459 -0.285 0.090 0.081 -0.086 -0.046 -0.035 -0.173 - 6.983 0.851 0.583 0.062 -0.403 -0.342 -0.143 -0.001 -0.153 -0.250 -0.046 0.045 -0.146 - 5.940 0.403 0.401 0.134 -0.177 -0.386 -0.295 -0.091 0.064 -0.007 -0.012 0.021 -0.128 - 5.425 0.529 0.151 0.013 -0.037 -0.057 -0.191 0.015 -0.176 -0.122 -0.073 -0.056 -0.165 - 5.198 0.384 -0.058 0.189 -0.023 -0.023 -0.140 0.065 0.016 -0.019 -0.155 -0.179 -0.380 - 5.444 0.462 0.107 0.210 0.071 -0.120 -0.148 -0.004 -0.249 0.044 -0.095 -0.031 -0.245 - 5.287 0.234 -0.039 0.038 -0.036 -0.133 -0.110 0.120 -0.171 -0.113 -0.095 0.099 -0.222 - 5.150 0.165 -0.011 0.144 -0.087 -0.225 -0.213 0.061 -0.179 -0.097 -0.034 0.098 -0.072 - 5.108 0.282 -0.178 -0.016 -0.078 -0.142 -0.206 0.010 -0.070 -0.231 -0.082 0.052 -0.052 - 5.607 0.665 0.029 0.033 -0.072 -0.321 -0.293 -0.038 -0.013 -0.085 -0.084 -0.007 0.094 - 5.666 0.690 0.054 0.141 -0.186 -0.430 -0.359 -0.147 -0.043 -0.011 -0.198 -0.063 -0.121 - 5.807 0.636 -0.022 0.070 -0.046 -0.282 -0.320 -0.032 -0.117 -0.031 -0.190 0.102 -0.068 - 8.351 1.152 0.113 -0.340 -0.009 -0.069 -0.434 -0.210 -0.222 0.052 -0.233 -0.004 -0.014 - 7.499 1.001 0.248 0.046 -0.062 -0.061 -0.195 -0.272 -0.128 0.106 -0.203 -0.137 -0.164 - 6.323 0.163 0.143 -0.013 -0.303 -0.233 -0.333 -0.249 -0.151 0.007 -0.105 -0.186 -0.190 - 7.391 -0.089 0.050 -0.026 -0.278 -0.270 -0.377 -0.246 -0.179 -0.088 -0.184 -0.181 -0.105 - 8.004 -0.160 0.141 0.075 -0.234 -0.143 -0.342 -0.169 -0.137 -0.106 -0.140 -0.174 -0.071 - 7.606 -0.028 -0.012 -0.021 -0.163 -0.282 -0.336 -0.208 -0.167 0.176 -0.036 -0.001 -0.054 - 7.703 0.046 0.167 -0.041 -0.223 -0.333 -0.417 -0.426 -0.233 -0.220 -0.059 0.150 -0.086 - 8.695 0.139 0.476 0.194 -0.258 -0.260 -0.438 -0.300 -0.249 -0.144 -0.123 -0.074 -0.080 - 8.743 -0.197 0.318 0.069 -0.250 0.044 -0.369 -0.272 -0.050 -0.186 -0.178 -0.073 -0.211 - 8.899 0.034 0.282 0.046 -0.034 -0.044 -0.388 -0.307 0.023 -0.029 -0.253 -0.238 -0.093 - 8.409 0.427 0.018 0.004 0.081 -0.011 -0.434 -0.350 -0.024 -0.240 -0.366 -0.107 -0.014 - 7.241 0.621 -0.077 0.004 0.114 -0.015 -0.285 -0.361 -0.223 -0.010 -0.412 -0.195 -0.069 - 6.603 0.854 0.112 0.038 0.170 0.074 0.042 -0.129 -0.179 -0.112 -0.341 -0.337 -0.227 - 5.100 0.059 0.099 0.213 0.235 0.006 0.032 -0.077 -0.029 -0.064 -0.185 -0.111 -0.121 - 4.695 -0.182 -0.023 0.202 0.121 0.183 -0.170 -0.013 -0.189 -0.202 -0.034 -0.269 -0.094 - 4.852 -0.044 -0.082 0.149 -0.045 0.055 -0.058 0.027 -0.126 -0.123 -0.096 -0.180 -0.014 - 4.303 -0.028 -0.114 0.006 0.155 -0.025 -0.097 0.081 -0.197 -0.056 -0.132 -0.106 -0.040 - 4.682 0.402 -0.027 0.295 -0.063 -0.012 -0.100 0.008 -0.102 -0.060 -0.124 -0.031 -0.046 - 4.162 0.154 -0.040 0.350 -0.115 0.050 -0.032 -0.040 -0.081 -0.068 -0.299 -0.012 -0.024 - 4.085 0.123 0.020 0.198 0.079 0.124 0.016 -0.011 -0.094 -0.107 -0.218 0.203 0.001 - 3.821 -0.014 0.076 0.216 0.109 0.088 -0.050 -0.049 0.133 0.111 -0.073 0.151 -0.008 - 3.943 0.154 0.038 0.076 0.039 0.046 -0.086 0.058 -0.091 0.068 -0.159 -0.103 -0.065 - 4.167 0.314 -0.212 -0.128 -0.047 0.121 -0.133 -0.101 0.038 0.036 -0.059 0.034 -0.006 - 4.210 0.143 -0.263 0.010 -0.058 0.113 -0.086 -0.027 -0.184 -0.042 0.029 0.088 -0.111 - 4.469 0.328 -0.436 -0.114 0.100 -0.154 -0.252 0.069 -0.091 -0.123 -0.092 0.002 -0.126 - 5.041 0.388 -0.290 -0.058 0.111 -0.196 -0.278 0.164 -0.019 -0.098 -0.141 0.015 0.036 - 5.046 0.246 -0.467 0.029 0.251 -0.144 -0.425 0.077 -0.045 -0.020 0.023 0.118 -0.065 - 5.099 0.134 -0.445 -0.037 0.166 -0.280 -0.314 0.020 -0.023 -0.093 -0.033 0.201 0.080 - 5.749 0.141 -0.384 -0.027 0.024 -0.376 -0.331 0.246 0.070 -0.127 -0.092 0.085 -0.107 - 6.032 0.122 -0.407 0.109 0.288 -0.304 -0.314 0.178 -0.029 -0.188 -0.103 0.044 -0.069 - 6.141 0.009 -0.453 0.132 0.248 -0.326 -0.372 0.176 0.084 -0.168 -0.129 0.168 -0.095 - 6.159 -0.117 -0.507 -0.032 0.095 -0.246 -0.398 0.218 -0.012 -0.173 0.004 -0.012 -0.010 - 5.975 -0.116 -0.376 0.097 0.230 -0.468 -0.462 0.155 0.015 -0.284 -0.226 0.071 0.009 - 6.053 -0.335 -0.604 0.064 0.324 -0.443 -0.484 0.117 -0.026 -0.189 0.164 0.209 -0.087 - 5.741 -0.546 -0.497 0.152 0.238 -0.366 -0.331 0.038 0.036 -0.096 0.162 0.129 -0.009 - 5.950 -0.562 -0.415 0.093 0.357 -0.190 -0.316 0.078 -0.041 -0.215 0.096 0.034 -0.080 - 6.074 -0.476 -0.535 0.041 0.339 -0.278 -0.411 0.247 0.142 -0.327 0.076 0.247 -0.075 - 6.162 -0.443 -0.647 0.088 0.158 -0.304 -0.295 0.198 0.055 -0.350 0.128 0.155 -0.050 - 6.134 -0.475 -0.443 0.074 0.444 -0.330 -0.234 0.238 -0.005 -0.227 0.017 0.126 -0.116 - 6.249 -0.550 -0.627 0.064 0.191 -0.079 -0.317 0.385 0.251 -0.088 0.048 -0.116 -0.143 - 6.469 -0.362 -0.505 -0.014 0.075 -0.267 -0.354 0.355 0.191 -0.092 0.078 -0.004 -0.110 - 6.169 -0.488 -0.611 0.072 0.238 -0.040 -0.287 0.019 0.154 -0.186 -0.134 0.017 -0.024 - 6.466 -0.297 -0.433 0.221 0.322 -0.060 -0.248 0.301 -0.026 -0.255 0.027 -0.049 -0.151 - 6.460 -0.318 -0.456 0.052 0.295 -0.197 -0.441 0.078 0.080 -0.236 -0.012 -0.012 -0.100 - 6.250 -0.324 -0.312 0.134 0.166 -0.473 -0.353 0.145 0.175 -0.324 -0.042 -0.009 0.055 - 6.036 -0.128 -0.318 0.399 0.231 -0.370 -0.332 0.120 0.088 -0.389 -0.148 0.133 -0.119 - 6.330 -0.219 -0.435 0.322 0.254 -0.264 -0.425 0.147 0.021 -0.414 -0.164 0.109 -0.063 - 6.285 -0.248 -0.407 0.202 0.183 -0.350 -0.501 0.250 0.239 -0.118 -0.122 -0.006 -0.207 - 6.453 -0.117 -0.318 0.169 0.085 -0.348 -0.459 0.067 0.091 -0.229 0.012 -0.028 0.037 - 6.643 0.380 0.059 0.507 0.439 -0.244 -0.678 0.051 0.015 -0.174 0.182 0.002 -0.118 - 6.429 0.169 0.034 0.490 0.337 -0.084 -0.510 0.023 0.033 0.048 0.038 0.048 -0.048 - 6.311 -0.106 -0.332 0.371 0.175 -0.428 -0.324 0.226 0.094 -0.352 -0.004 0.081 -0.168 - 6.294 -0.103 -0.338 0.076 0.100 -0.447 -0.227 0.335 0.025 -0.400 -0.030 0.050 -0.017 - 6.115 -0.218 -0.339 0.055 -0.022 -0.357 -0.267 0.178 -0.069 -0.344 -0.141 -0.069 -0.060 - 5.909 -0.231 -0.508 0.064 0.209 -0.373 -0.408 0.241 -0.224 -0.380 0.109 -0.069 -0.031 - 6.013 -0.145 -0.514 -0.002 0.191 -0.392 -0.496 0.185 -0.054 -0.246 -0.034 0.143 -0.011 - 5.877 -0.085 -0.449 0.054 0.145 -0.275 -0.430 -0.032 0.038 -0.292 -0.097 0.203 -0.001 - 5.761 -0.034 -0.385 0.050 0.008 -0.335 -0.455 0.082 0.029 -0.148 -0.017 0.053 -0.098 - 5.503 -0.018 -0.311 0.135 -0.118 -0.291 -0.430 0.134 0.129 -0.205 0.011 0.075 0.026 - 5.531 -0.044 -0.246 -0.032 -0.224 -0.153 -0.269 0.028 -0.090 -0.226 -0.221 0.076 0.125 - 5.953 0.018 -0.278 -0.030 -0.121 -0.164 -0.413 0.108 0.141 0.031 -0.017 0.065 -0.106 - 5.749 0.026 -0.178 0.095 -0.016 -0.073 -0.302 0.144 0.106 -0.122 -0.165 -0.041 -0.170 - 5.495 0.016 -0.214 0.184 -0.000 -0.308 -0.578 0.076 0.160 -0.047 -0.036 0.091 -0.182 - 5.193 -0.192 -0.242 0.338 0.234 -0.021 -0.369 0.071 -0.018 -0.352 -0.158 0.061 0.015 - 5.064 0.059 -0.260 0.210 0.112 -0.029 -0.253 0.072 -0.085 -0.208 -0.119 0.134 -0.013 - 4.935 0.344 -0.215 0.118 0.038 -0.053 -0.132 0.228 0.031 -0.045 -0.234 0.015 -0.247 - 4.612 0.292 -0.229 0.129 -0.173 -0.011 -0.293 0.068 0.149 -0.083 -0.158 -0.017 -0.101 - 5.049 0.382 -0.055 0.231 -0.022 -0.359 -0.401 0.011 0.122 0.082 -0.145 -0.015 -0.072 - 4.969 -0.024 -0.167 0.040 -0.030 -0.281 -0.402 0.012 -0.050 -0.045 -0.139 0.115 0.167 - 5.589 0.015 0.188 0.071 -0.098 -0.004 -0.212 -0.118 -0.179 -0.037 -0.211 -0.144 -0.011 - 5.755 -0.441 0.071 -0.167 -0.237 -0.284 -0.350 -0.078 0.038 -0.148 -0.066 0.133 0.006 - 5.719 -0.264 0.194 0.050 -0.273 -0.059 -0.308 -0.142 -0.199 -0.035 0.124 0.076 -0.030 - 6.680 -0.359 0.050 0.013 0.011 -0.049 -0.257 0.028 -0.152 -0.078 0.018 0.226 -0.180 - 7.556 -0.089 0.111 -0.167 -0.002 -0.026 -0.210 0.020 -0.106 0.001 -0.129 -0.055 -0.223 - 6.739 -0.130 0.185 -0.082 -0.025 -0.161 -0.248 -0.147 -0.212 0.021 -0.236 0.150 -0.046 - 6.005 -0.334 0.380 0.217 -0.127 -0.126 -0.388 -0.083 -0.183 -0.077 -0.036 0.072 -0.123 - 5.653 -0.324 0.346 0.079 -0.029 -0.130 -0.212 0.049 -0.173 -0.167 -0.119 -0.025 -0.118 - 6.120 -0.234 0.145 -0.180 -0.201 -0.270 -0.319 -0.099 -0.138 -0.063 -0.197 0.055 -0.033 - 6.169 -0.192 0.091 -0.123 -0.179 -0.236 -0.275 -0.121 -0.071 0.004 -0.054 0.035 -0.139 - 6.355 -0.209 0.499 -0.196 -0.009 -0.040 -0.188 0.059 -0.196 -0.148 -0.167 0.073 -0.291 - 6.658 -0.406 0.140 -0.086 0.047 -0.096 0.016 -0.044 -0.239 -0.060 -0.221 -0.038 -0.147 - 7.448 -0.124 -0.097 -0.195 -0.151 -0.202 -0.050 -0.273 -0.021 -0.048 -0.093 -0.152 -0.011 - 6.769 0.362 -0.242 -0.543 -0.512 -0.242 -0.281 -0.189 0.008 0.118 -0.148 -0.061 0.029 - 7.276 0.475 -0.265 -0.477 -0.312 -0.225 -0.544 -0.203 0.193 0.110 -0.404 -0.163 0.028 - 7.891 0.329 -0.502 -0.264 -0.506 -0.518 -0.634 -0.417 0.185 0.204 -0.430 -0.129 0.089 - 8.349 0.078 -0.539 -0.164 -0.505 -0.559 -0.606 -0.473 0.004 0.273 0.049 -0.115 0.000 - 8.124 0.198 -0.457 -0.049 -0.355 -0.440 -0.539 -0.475 -0.185 0.210 -0.272 -0.054 0.032 - 7.727 0.214 -0.163 0.004 -0.129 -0.522 -0.612 -0.418 -0.095 0.224 -0.527 0.075 0.179 - 7.139 0.283 -0.159 0.054 -0.223 -0.558 -0.435 -0.147 -0.063 0.167 -0.413 0.017 0.119 - 6.604 0.257 -0.015 0.012 -0.116 -0.333 -0.286 -0.011 0.003 0.068 -0.329 -0.122 0.014 - 6.073 -0.016 -0.215 0.010 0.022 -0.288 -0.222 -0.012 0.158 0.343 -0.153 -0.095 0.023 - 5.967 0.206 -0.120 0.042 -0.135 -0.316 -0.145 -0.031 0.040 0.240 -0.218 -0.209 -0.083 - 6.074 0.189 -0.033 0.094 -0.308 -0.333 -0.146 -0.124 0.016 0.158 -0.125 -0.163 -0.081 - 5.995 -0.015 -0.066 0.140 -0.184 -0.253 -0.059 -0.212 -0.066 0.094 -0.258 0.091 0.068 - 6.008 -0.107 -0.144 0.207 -0.460 -0.421 -0.202 -0.313 0.028 -0.034 -0.441 0.057 -0.085 - 5.792 -0.389 -0.020 0.186 -0.308 -0.048 0.045 -0.183 0.173 0.110 -0.202 -0.072 -0.100 - 6.013 -0.296 0.107 0.163 -0.429 -0.465 -0.039 -0.304 -0.101 0.077 0.049 0.176 0.028 - 6.750 -0.143 0.217 0.383 -0.625 -0.480 -0.139 -0.410 -0.037 0.092 -0.060 0.187 0.013 - 7.318 -0.196 0.216 0.285 -0.786 -0.595 -0.172 -0.378 -0.190 -0.026 -0.227 0.201 0.018 - 7.532 -0.614 -0.098 0.322 -0.854 -0.612 -0.312 -0.424 -0.256 -0.020 -0.016 0.288 0.023 - 7.845 -0.538 0.030 0.587 -0.772 -0.600 -0.242 -0.531 -0.411 -0.086 -0.014 0.253 0.006 - 7.938 -0.581 0.102 0.805 -0.580 -0.527 -0.229 -0.644 -0.472 -0.082 -0.051 0.279 0.031 - 8.178 -0.606 0.008 0.655 -0.422 -0.494 -0.400 -0.749 -0.413 0.056 -0.174 0.223 -0.063 - 7.884 -0.511 0.169 0.587 -0.573 -0.428 -0.454 -0.671 -0.478 -0.079 -0.211 0.257 -0.117 - 7.474 -0.264 0.234 0.523 -0.716 -0.582 -0.216 -0.580 -0.416 -0.100 -0.039 0.183 -0.140 - 7.384 0.176 0.553 0.674 -0.365 -0.432 -0.053 -0.437 -0.370 -0.141 -0.189 0.063 -0.206 - 7.310 0.548 0.643 0.614 -0.160 -0.292 -0.189 -0.318 -0.230 -0.058 -0.262 0.071 -0.290 - 6.639 0.099 0.666 0.666 -0.131 -0.231 -0.028 -0.173 -0.403 -0.056 -0.170 0.007 -0.235 - 6.496 0.008 0.389 0.472 -0.220 -0.264 0.030 -0.153 -0.461 -0.307 -0.280 0.045 -0.223 - 6.371 0.164 0.295 0.353 -0.160 -0.081 0.146 -0.125 -0.215 -0.185 -0.238 -0.068 -0.180 - 7.152 0.146 0.252 0.137 -0.213 -0.149 -0.153 -0.237 -0.184 -0.118 -0.141 -0.113 -0.132 - 8.849 1.254 0.516 -0.001 -0.221 -0.196 -0.184 -0.187 -0.353 -0.116 -0.264 -0.215 -0.170 - 7.631 0.821 0.593 0.202 -0.142 -0.128 -0.062 -0.129 -0.273 -0.261 -0.182 -0.170 -0.309 - 7.335 0.434 0.470 -0.167 -0.382 -0.196 -0.099 -0.101 -0.069 -0.155 -0.244 -0.050 -0.249 - 7.159 -0.082 0.120 -0.067 -0.139 -0.080 -0.100 -0.037 -0.043 -0.100 -0.261 -0.079 -0.120 - 7.358 0.346 0.154 0.294 -0.142 -0.198 -0.354 -0.235 -0.043 -0.160 -0.247 0.260 -0.181 - 7.786 0.489 0.197 0.373 -0.273 -0.245 -0.413 -0.395 -0.093 -0.269 -0.476 0.239 -0.074 - 8.124 0.657 0.053 0.182 -0.101 -0.144 -0.604 -0.349 -0.103 -0.087 -0.402 0.179 0.048 - 8.142 0.557 0.117 0.022 -0.123 -0.108 -0.511 -0.369 -0.149 -0.203 -0.501 0.018 0.055 - 7.978 0.857 0.174 0.044 0.011 -0.020 -0.426 -0.398 -0.100 -0.219 -0.424 0.022 -0.113 - 7.123 0.750 0.028 0.164 -0.100 -0.237 -0.425 -0.224 -0.009 -0.243 -0.340 0.042 -0.096 - 6.849 0.573 0.125 0.174 -0.124 -0.172 -0.340 -0.168 -0.129 -0.008 -0.247 0.019 -0.140 - 6.589 0.787 0.105 0.064 -0.072 -0.065 -0.191 -0.215 -0.192 -0.045 -0.273 -0.180 -0.183 - 6.654 0.810 -0.069 0.067 0.003 0.027 0.011 -0.097 -0.136 -0.116 -0.276 -0.090 -0.101 - 6.637 0.930 0.362 0.251 -0.021 -0.222 -0.156 -0.114 -0.047 -0.278 -0.444 -0.186 -0.225 - 6.517 1.117 0.420 0.334 -0.039 -0.228 0.013 -0.112 -0.093 -0.200 -0.297 -0.167 -0.158 - 6.748 0.609 -0.068 0.268 -0.253 -0.227 -0.288 -0.243 -0.081 -0.142 -0.097 0.141 -0.167 - 7.886 0.416 -0.049 0.299 -0.421 -0.279 -0.372 -0.289 -0.212 -0.214 -0.045 0.437 -0.170 - 8.335 0.110 -0.182 0.307 -0.742 -0.458 -0.413 -0.034 -0.005 -0.034 -0.125 0.604 -0.167 - 8.691 0.019 -0.237 0.421 -0.545 -0.650 -0.495 -0.236 -0.155 -0.147 -0.074 0.583 -0.213 - 8.809 -0.088 -0.275 0.464 -0.468 -0.808 -0.599 -0.067 -0.216 -0.193 0.043 0.622 -0.082 - 8.895 -0.177 -0.156 0.433 -0.612 -0.690 -0.625 -0.290 -0.141 -0.253 0.040 0.596 -0.233 - 8.790 -0.136 -0.126 0.228 -0.688 -0.632 -0.453 -0.121 -0.003 -0.157 0.020 0.522 -0.185 - 8.496 -0.021 -0.104 0.055 -0.457 -0.652 -0.333 -0.065 -0.048 -0.103 0.078 0.351 -0.380 - 8.077 0.018 0.112 0.222 -0.378 -0.699 -0.379 -0.033 0.005 -0.082 0.061 0.386 -0.154 - 8.301 0.518 0.008 0.083 -0.343 -0.351 -0.300 -0.178 -0.115 -0.122 0.011 0.257 -0.286 - 7.805 0.555 0.196 0.107 -0.234 -0.464 -0.424 -0.211 -0.165 -0.261 -0.111 0.304 -0.189 - 7.555 0.398 0.280 0.134 -0.095 -0.276 -0.140 -0.051 -0.277 -0.286 -0.306 0.089 -0.192 - 7.289 0.411 0.370 0.300 -0.295 -0.448 -0.279 -0.143 -0.202 -0.199 -0.112 0.001 -0.127 - 7.170 0.282 0.395 0.134 -0.185 -0.406 -0.393 -0.100 -0.066 -0.291 -0.064 0.344 -0.110 - 7.347 0.301 0.475 0.106 -0.172 -0.242 -0.168 0.046 -0.061 -0.235 -0.080 0.188 -0.147 - 8.458 0.515 -0.080 0.241 0.133 -0.166 -0.005 -0.170 -0.177 -0.213 -0.235 0.054 -0.214 - 8.954 0.578 -0.105 0.068 0.087 -0.097 0.114 -0.136 -0.104 -0.346 -0.346 0.057 -0.244 - 7.532 0.423 0.510 -0.066 -0.214 -0.351 -0.062 -0.079 -0.299 -0.064 -0.150 0.019 0.020 - 7.650 0.292 0.586 -0.032 -0.141 -0.209 0.145 -0.043 -0.243 -0.213 -0.239 -0.044 -0.225 - 7.394 0.072 0.320 0.065 -0.059 -0.237 -0.089 -0.117 -0.142 -0.073 -0.230 0.149 -0.107 - 7.211 0.007 0.421 -0.185 0.040 -0.116 -0.089 -0.042 -0.138 -0.160 -0.057 -0.093 -0.120 - 7.280 -0.058 0.374 -0.034 0.203 -0.269 -0.130 -0.306 -0.180 -0.190 -0.184 -0.142 -0.053 - 7.044 -0.221 0.148 0.160 0.067 -0.437 -0.149 0.069 -0.069 -0.182 -0.204 -0.085 -0.166 - 9.658 0.142 -0.059 0.371 -0.138 -0.613 0.015 -0.092 0.143 -0.427 -0.111 -0.156 -0.267 - 10.260 0.562 -0.217 0.205 -0.012 -0.433 0.128 -0.112 0.148 -0.462 -0.214 -0.209 -0.261 - 9.912 1.140 -0.297 0.006 0.203 -0.532 0.055 0.168 -0.207 -0.342 -0.314 -0.259 -0.265 - 10.243 1.123 -0.285 0.011 0.216 -0.499 -0.136 0.435 -0.297 -0.386 -0.299 -0.289 -0.293 - 11.295 1.095 -0.329 -0.075 -0.047 -0.456 -0.277 0.207 -0.187 -0.275 -0.140 -0.144 -0.195 - 12.392 1.547 -0.435 -0.372 -0.123 -0.523 -0.442 0.064 -0.165 -0.278 -0.128 -0.099 -0.184 - 12.240 2.313 -0.673 -0.755 -0.350 -0.537 -0.523 0.199 -0.252 -0.325 -0.232 0.134 0.104 - 12.942 2.393 -0.584 -0.890 -0.280 -0.362 -0.809 0.434 -0.366 -0.350 -0.328 0.087 0.123 - 12.878 2.621 -0.688 -0.965 -0.297 -0.257 -0.831 0.354 -0.293 -0.244 -0.343 -0.026 0.208 - 13.143 2.457 -0.629 -1.043 -0.288 -0.065 -0.856 0.164 -0.231 -0.185 -0.272 -0.114 0.255 - 13.569 2.291 -0.696 -1.029 -0.181 -0.111 -0.779 0.063 -0.332 -0.104 -0.273 -0.003 0.130 - 13.306 2.616 -0.982 -1.009 -0.022 -0.081 -0.913 0.069 -0.463 0.039 -0.251 0.019 0.050 - 13.401 2.378 -0.857 -0.983 0.058 -0.124 -0.873 -0.107 -0.367 0.047 -0.240 0.082 -0.087 - 13.436 2.193 -0.925 -0.812 0.177 -0.083 -0.966 -0.226 -0.275 -0.015 -0.166 -0.020 -0.137 - 12.948 2.106 -1.014 -0.533 0.254 0.119 -1.169 -0.290 -0.127 -0.120 -0.185 -0.103 -0.166 - 12.421 1.583 -0.838 -0.421 0.509 0.029 -1.179 -0.297 0.014 -0.298 -0.198 -0.167 -0.142 - 11.408 1.246 -0.759 -0.207 0.502 0.010 -1.075 -0.139 0.162 -0.256 -0.368 -0.197 -0.171 - 10.279 0.833 -0.665 0.295 0.650 -0.089 -0.886 0.034 0.163 -0.451 -0.490 0.025 -0.147 - 10.141 0.751 -0.483 0.451 0.613 -0.348 -1.005 0.199 0.019 -0.456 -0.335 0.109 -0.114 - 11.903 0.296 -0.534 0.404 0.479 -0.317 -0.841 0.284 -0.434 -0.564 -0.103 0.022 -0.137 - 13.489 0.410 -0.452 0.372 0.350 -0.458 -1.208 0.387 -0.511 -0.490 -0.116 0.030 -0.240 - 13.889 0.643 -0.658 0.274 0.027 -0.580 -1.195 0.408 -0.281 -0.266 -0.050 0.131 -0.255 - 13.320 1.072 -0.832 0.155 0.103 -0.559 -1.191 0.349 -0.120 -0.230 -0.166 0.173 -0.265 - 11.718 0.884 -0.610 0.335 -0.002 -0.620 -0.887 0.086 0.094 0.005 -0.390 0.186 -0.015 - 10.937 0.857 -0.390 0.304 0.118 -0.348 -0.432 -0.470 0.152 0.208 -0.788 0.103 0.058 - 10.858 0.871 -0.376 0.177 0.130 -0.265 -0.358 -0.580 0.125 0.285 -0.737 0.028 -0.049 - 10.783 0.960 -0.482 0.140 0.033 -0.297 -0.141 -0.570 0.067 0.215 -0.528 0.094 -0.210 - 10.784 0.912 -0.427 0.212 -0.197 -0.265 -0.031 -0.478 -0.127 0.172 -0.404 0.213 -0.240 - 11.501 0.728 -0.331 -0.048 -0.129 -0.261 -0.043 -0.405 -0.133 0.118 -0.407 0.233 -0.260 - 11.778 1.093 -0.614 -0.178 -0.080 -0.231 -0.187 -0.274 -0.103 0.055 -0.392 0.248 -0.140 - 11.811 1.217 -0.606 -0.011 -0.267 -0.426 -0.113 -0.179 0.004 -0.170 -0.223 0.066 -0.114 - 11.837 0.635 -0.490 0.275 -0.459 -0.488 -0.044 -0.096 -0.096 0.057 -0.274 -0.020 0.001 - 11.645 0.713 -0.484 0.223 -0.380 -0.600 -0.161 -0.076 -0.015 0.037 -0.154 -0.057 0.011 - 11.115 1.399 -0.779 0.155 -0.519 -0.762 -0.024 -0.124 0.147 0.029 -0.056 -0.174 -0.068 - 10.906 1.913 -1.060 -0.027 -0.481 -0.936 0.123 -0.072 0.069 0.086 -0.200 -0.069 -0.152 - 10.866 1.906 -1.109 -0.094 -0.533 -0.983 0.192 0.016 0.087 0.150 -0.288 -0.025 -0.192 - 10.895 1.753 -1.185 -0.001 -0.456 -0.857 0.260 -0.001 0.066 0.038 -0.264 -0.064 -0.078 - 10.983 1.888 -1.352 0.143 -0.600 -0.741 0.223 0.063 0.034 -0.021 -0.314 -0.040 -0.069 - 10.891 1.886 -1.300 0.015 -0.388 -0.781 0.149 0.136 -0.048 -0.100 -0.199 -0.084 -0.078 - 12.341 0.862 -0.654 -0.506 -0.560 -0.513 0.076 0.378 -0.412 -0.059 0.159 -0.225 0.055 - 12.526 0.844 -0.652 -0.605 -0.539 -0.379 -0.013 0.259 -0.380 0.057 0.173 -0.231 -0.110 - 11.892 0.993 -0.463 -0.803 -0.580 -0.233 -0.377 -0.049 -0.453 0.066 -0.038 -0.134 0.026 - 9.514 0.910 -0.204 -0.365 -0.023 -0.294 -0.233 -0.081 -0.394 0.074 -0.038 -0.018 0.038 - 9.581 0.169 -0.153 -0.248 0.219 -0.400 -0.115 -0.133 -0.074 -0.037 -0.143 -0.085 -0.134 - 10.673 -0.248 -0.537 -0.487 0.143 -0.473 -0.279 -0.151 -0.234 -0.047 -0.114 0.020 0.007 - 9.454 -1.039 0.227 -0.386 -0.035 -0.315 -0.200 -0.282 0.009 -0.005 -0.102 -0.165 0.024 - 9.869 -1.677 0.512 -0.253 0.220 -0.243 -0.328 -0.159 -0.067 -0.135 -0.131 -0.127 -0.103 - 10.080 -1.594 0.551 -0.453 0.277 -0.272 -0.142 -0.080 -0.031 0.058 -0.061 0.044 -0.107 - 9.579 -1.740 0.317 -0.459 0.119 -0.283 0.071 0.081 0.059 -0.063 -0.289 -0.009 0.009 - 8.073 -1.444 0.437 -0.709 0.041 -0.508 -0.264 0.156 0.039 -0.092 -0.230 -0.008 -0.214 - 6.727 -0.794 0.649 -0.183 -0.044 -0.377 0.016 0.011 -0.029 0.100 -0.061 -0.181 -0.173 - 6.075 -0.194 0.235 -0.150 -0.033 -0.288 -0.059 -0.111 0.068 0.060 0.063 -0.058 -0.087 - 6.361 -0.400 0.169 -0.165 0.263 -0.225 -0.180 -0.182 -0.096 0.056 -0.138 0.077 -0.015 - 9.515 -1.056 -0.076 -0.344 0.072 -0.321 -0.170 0.051 -0.295 -0.128 -0.292 0.087 -0.257 - 11.016 -1.130 0.084 -0.400 0.002 -0.416 -0.359 -0.046 -0.310 -0.166 -0.216 0.053 -0.079 - 10.720 -1.006 0.167 -0.217 -0.119 -0.320 -0.500 -0.080 0.211 -0.116 -0.098 -0.027 0.185 - 12.085 0.611 -0.448 -0.002 -0.175 -0.283 -0.518 -0.241 -0.071 -0.108 -0.186 -0.212 0.123 - 11.537 1.213 -0.903 0.218 -0.190 -0.419 -0.337 -0.443 -0.076 -0.008 -0.286 0.005 -0.034 - 10.703 1.048 -0.802 0.191 -0.106 -0.409 -0.194 -0.440 -0.130 0.007 -0.124 -0.073 -0.149 - 9.596 0.654 -0.366 0.473 0.130 -0.364 -0.068 -0.319 -0.221 -0.042 -0.158 -0.111 -0.379 - 9.643 0.661 -0.412 0.596 0.177 -0.361 -0.237 -0.363 -0.241 0.075 -0.124 -0.002 -0.424 - 9.555 0.795 -0.539 0.596 0.230 -0.383 -0.263 -0.399 -0.207 -0.054 -0.026 -0.133 -0.347 - 9.410 0.936 -0.575 0.503 0.246 -0.387 -0.234 -0.301 -0.250 -0.143 0.040 -0.233 -0.360 - 11.070 0.978 -0.852 0.034 0.269 -0.465 -0.551 -0.229 -0.122 0.023 -0.041 -0.328 0.008 - 11.841 0.999 -1.162 0.414 -0.072 -0.602 -0.691 -0.056 -0.029 -0.030 -0.211 -0.026 0.122 - 12.160 0.721 -0.888 0.390 -0.167 -0.821 -0.614 0.052 -0.109 -0.057 -0.140 0.130 0.027 - 12.460 0.502 -0.656 0.365 -0.249 -0.895 -0.512 0.093 -0.262 -0.042 -0.066 0.145 -0.114 - 12.435 0.546 -0.577 0.372 -0.263 -0.879 -0.414 -0.026 -0.336 -0.046 -0.070 0.136 -0.192 - 12.178 0.206 -0.162 0.476 -0.345 -0.690 -0.392 -0.056 -0.403 -0.140 -0.150 0.147 -0.233 - 11.061 0.124 0.096 0.446 -0.525 -0.674 -0.391 -0.112 -0.419 -0.205 -0.062 0.125 -0.206 - 10.571 0.192 -0.196 0.424 -0.303 -0.456 -0.213 -0.376 -0.327 -0.218 -0.145 -0.087 -0.011 - 8.451 0.061 -0.412 0.311 -0.216 -0.451 -0.032 -0.264 -0.154 -0.063 -0.140 -0.084 -0.017 - 6.254 0.001 0.097 0.158 -0.102 -0.514 -0.500 -0.125 -0.077 0.025 -0.088 -0.075 -0.222 - 7.382 -0.386 -0.131 0.166 -0.102 -0.508 -0.190 -0.150 -0.120 0.120 -0.113 0.077 0.002 - 11.056 -0.984 -0.566 0.146 -0.059 -0.384 -0.164 -0.306 -0.212 -0.002 -0.190 0.042 -0.038 - 11.367 -0.585 -0.354 0.060 -0.147 -0.341 -0.341 -0.478 -0.269 -0.039 -0.262 0.105 -0.039 - 11.203 0.256 0.168 0.547 -0.311 -0.663 -0.477 -0.091 -0.528 -0.118 -0.222 -0.033 -0.164 - 12.458 0.528 0.021 0.187 -0.369 -0.512 -0.902 0.215 -0.683 0.018 -0.279 0.126 -0.142 - 12.428 0.899 -0.515 0.023 -0.064 -0.788 -0.877 0.233 -0.512 0.006 -0.247 0.194 -0.061 - 12.032 0.817 -0.482 0.036 -0.118 -0.845 -0.801 0.091 -0.303 -0.019 -0.263 0.268 -0.093 - 11.171 0.697 -0.218 -0.124 -0.093 -0.697 -0.828 -0.135 -0.309 0.119 -0.504 0.202 0.132 - 8.910 0.779 0.144 0.079 0.069 -0.376 -0.299 -0.167 -0.239 -0.087 -0.224 -0.133 -0.039 - 8.625 0.111 0.294 0.220 -0.094 -0.321 -0.354 0.122 -0.351 -0.143 -0.031 -0.113 -0.042 - 11.084 -0.346 -0.699 -0.096 -0.181 -0.617 -0.360 0.301 -0.397 -0.218 0.038 0.034 -0.088 - 11.922 -0.037 -0.479 0.133 0.005 -0.593 -0.473 0.264 -0.328 -0.220 -0.194 0.006 -0.147 - 11.583 0.311 -0.677 -0.112 0.317 -0.023 -0.420 0.286 -0.117 -0.143 -0.234 -0.089 -0.041 - 12.188 -0.526 -0.728 -0.357 0.125 0.211 0.017 0.105 -0.049 -0.178 -0.110 -0.122 -0.029 - 11.546 -0.333 -0.632 -0.382 0.091 0.083 0.057 0.108 -0.416 -0.201 0.098 -0.253 0.137 - 11.810 0.446 -0.296 -0.029 0.084 0.077 0.018 0.093 -0.460 -0.283 -0.290 -0.267 -0.009 - 12.050 -0.078 -0.456 0.060 0.097 0.303 -0.166 0.212 -0.462 -0.046 0.095 -0.573 0.054 - 12.188 -0.532 -0.796 -0.136 -0.351 0.239 -0.171 0.271 -0.446 -0.061 0.350 -0.526 0.158 - 11.579 -0.329 -0.529 -0.114 -0.213 0.296 -0.095 0.279 -0.524 -0.020 0.108 -0.537 -0.128 - 11.374 0.387 -0.425 -0.335 -0.196 0.256 -0.049 0.334 -0.628 -0.113 -0.256 -0.417 -0.249 - 11.384 1.146 -0.299 -0.320 -0.409 -0.098 -0.125 0.124 -0.478 0.088 -0.115 -0.269 -0.230 - 11.707 1.848 -0.635 -0.989 -0.648 -0.070 -0.248 0.149 -0.409 -0.114 -0.024 -0.087 -0.100 - 11.971 2.063 -1.185 -0.963 -0.288 -0.246 -0.672 0.571 -0.567 -0.217 0.236 -0.096 -0.295 - 11.901 2.002 -1.228 -0.965 -0.306 -0.195 -0.663 0.461 -0.579 -0.142 0.291 -0.081 -0.240 - 12.045 1.868 -1.176 -1.049 -0.300 -0.140 -0.735 0.350 -0.455 -0.120 0.241 -0.035 -0.179 - 12.259 1.885 -1.279 -1.016 -0.189 -0.092 -0.856 0.264 -0.363 -0.113 0.214 -0.146 -0.038 - 12.027 2.103 -1.366 -1.114 0.006 -0.081 -0.926 0.179 -0.313 0.027 0.021 -0.134 0.099 - 11.516 2.117 -1.314 -1.137 0.004 -0.012 -0.955 0.080 -0.317 0.110 -0.017 -0.029 -0.003 - 11.643 1.823 -1.134 -1.277 0.038 -0.042 -0.995 -0.028 -0.172 0.114 0.015 -0.053 -0.016 - 11.808 1.911 -1.166 -1.194 0.003 0.061 -1.150 -0.085 -0.117 0.134 -0.038 -0.108 0.104 - 11.892 1.867 -1.238 -1.120 0.019 0.083 -1.111 -0.175 -0.085 0.100 0.008 -0.179 0.087 - 11.525 1.917 -1.319 -1.048 0.066 -0.007 -1.118 -0.126 -0.118 0.169 -0.025 -0.186 0.092 - 11.217 2.022 -1.439 -0.992 0.140 -0.075 -1.170 -0.197 -0.019 0.156 -0.004 -0.177 0.118 - 11.747 1.861 -1.472 -0.865 0.188 -0.179 -1.115 -0.298 0.048 0.094 -0.098 -0.141 0.093 - 11.909 1.660 -1.347 -0.776 0.175 -0.173 -1.214 -0.203 0.037 0.053 -0.135 -0.192 0.144 - 11.616 1.528 -1.301 -0.663 0.165 -0.154 -1.342 -0.070 0.106 -0.130 -0.053 -0.123 0.062 - 11.632 1.363 -1.238 -0.564 0.191 -0.191 -1.409 -0.078 0.066 -0.152 -0.096 -0.058 0.085 - 12.022 1.306 -1.190 -0.443 0.147 -0.142 -1.435 -0.047 0.045 -0.297 -0.055 -0.143 0.169 - 12.105 1.182 -1.171 -0.255 0.077 -0.076 -1.454 0.038 0.039 -0.416 -0.068 -0.139 0.104 - 11.884 0.971 -1.105 -0.061 0.174 -0.269 -1.304 -0.018 0.088 -0.508 -0.125 -0.033 0.050 - 11.716 0.866 -1.033 -0.024 0.260 -0.408 -1.282 -0.031 0.063 -0.623 -0.066 -0.035 -0.024 - 11.504 0.774 -0.896 0.136 0.266 -0.299 -1.209 0.111 -0.074 -0.582 -0.202 0.007 -0.170 - 9.213 0.423 -0.779 0.375 0.555 -0.277 -0.900 0.364 -0.179 -0.402 -0.167 0.174 -0.251 - 9.598 -0.446 -0.579 0.456 0.344 -0.252 -0.299 0.193 -0.195 -0.214 -0.210 -0.084 -0.190 - 8.643 -0.210 -0.204 0.297 0.555 -0.348 -0.248 0.190 -0.134 -0.344 -0.077 -0.012 -0.026 - 8.177 -0.201 0.136 0.173 0.443 -0.194 -0.502 0.183 -0.121 -0.266 0.054 0.004 0.019 - 10.043 -0.458 -0.380 0.273 0.020 -0.223 -0.251 0.000 -0.175 -0.129 -0.141 -0.047 -0.133 - 12.117 -0.439 -0.442 -0.271 -0.307 -0.480 -0.120 -0.028 -0.144 -0.257 -0.245 -0.055 -0.147 - 11.388 -0.361 -0.106 0.082 -0.270 -0.657 -0.206 -0.117 0.082 -0.374 -0.124 -0.123 -0.089 - 11.367 -0.415 -0.559 0.141 0.151 -0.337 0.054 0.138 0.148 -0.601 -0.145 -0.123 -0.142 - 11.111 -0.212 -1.014 0.226 0.102 -0.576 -0.016 0.189 0.033 -0.369 -0.085 -0.048 -0.070 - 11.275 -0.241 -0.946 0.202 -0.009 -0.355 -0.049 0.144 -0.039 -0.137 -0.049 -0.004 -0.001 - 11.298 -0.100 -0.906 0.009 0.001 -0.344 -0.192 0.340 0.122 -0.191 0.084 0.133 -0.257 - 11.005 -0.438 -0.733 -0.011 -0.134 -0.252 -0.257 0.038 0.127 -0.300 -0.227 0.322 -0.261 - 10.398 -0.531 -0.570 0.284 0.141 -0.223 -0.212 0.123 0.139 -0.315 -0.396 -0.005 -0.205 - 9.988 -0.196 -0.318 0.350 0.336 0.002 -0.184 0.273 0.122 -0.311 -0.447 -0.260 -0.333 - 9.925 -0.590 -0.739 0.179 0.056 -0.088 -0.242 0.204 -0.158 -0.157 -0.186 0.035 -0.139 - 9.983 -0.657 -0.784 0.094 0.236 0.014 -0.181 0.132 0.099 -0.226 -0.230 -0.039 -0.218 - 9.376 -0.648 -0.427 0.116 0.393 -0.209 -0.252 0.175 0.002 -0.121 -0.255 0.191 0.011 - 8.851 -0.535 -0.298 0.040 0.128 -0.217 -0.227 0.227 -0.059 -0.141 -0.102 0.277 0.009 - 8.654 -0.475 -0.441 0.086 0.411 -0.107 -0.051 0.370 0.100 -0.255 -0.458 0.065 -0.036 - 9.142 -0.265 -0.254 0.142 0.324 -0.424 -0.288 0.051 0.103 -0.137 -0.492 0.055 -0.053 - 9.235 0.241 0.261 0.229 -0.113 -0.509 -0.469 -0.080 0.163 -0.045 -0.485 0.211 -0.239 - 6.022 0.295 0.381 0.197 -0.147 -0.325 -0.418 -0.189 0.155 0.041 -0.296 0.207 -0.256 - 5.847 0.702 0.310 0.112 -0.151 -0.187 -0.222 0.126 -0.117 -0.089 -0.197 -0.045 -0.083 - 5.586 0.391 0.366 -0.173 -0.234 -0.079 -0.237 -0.015 0.031 0.059 -0.126 0.027 0.117 - 4.809 -0.006 0.116 -0.046 -0.078 0.096 -0.041 0.036 -0.073 0.094 -0.072 -0.224 -0.024 - 4.785 0.061 -0.026 0.015 -0.025 -0.130 -0.224 -0.037 0.012 0.074 0.016 -0.097 -0.023 - 4.537 0.004 -0.008 0.031 0.028 0.040 -0.348 -0.069 -0.080 0.051 0.046 0.012 -0.070 - 8.889 0.432 -0.992 -0.062 -0.323 -0.397 -0.215 -0.243 0.086 -0.090 -0.112 -0.115 -0.007 - 11.861 0.127 -0.903 -0.062 -0.305 -0.492 -0.262 -0.287 0.347 -0.100 -0.110 -0.076 0.011 - 12.307 -0.221 -0.720 -0.292 0.067 -0.301 -0.117 -0.166 0.284 -0.170 -0.274 0.063 -0.075 - 13.095 -0.401 -0.244 -0.111 0.107 -0.283 -0.129 -0.023 -0.203 -0.365 -0.305 -0.081 -0.106 - 13.774 -0.071 -0.170 -0.108 0.188 -0.504 -0.192 0.074 -0.205 -0.252 -0.279 -0.153 -0.318 - 12.787 -0.298 -0.222 -0.029 0.375 -0.198 -0.041 -0.104 -0.290 -0.016 -0.255 0.069 -0.215 - 12.376 -0.470 -0.665 0.009 0.383 -0.022 -0.046 -0.250 -0.257 0.052 -0.091 0.074 -0.215 - 12.305 -0.595 -1.029 -0.138 0.410 -0.158 -0.178 -0.096 -0.108 0.228 -0.026 0.012 -0.141 - 11.930 -0.903 -1.163 -0.268 0.053 -0.477 -0.340 -0.085 0.239 0.297 0.106 0.020 -0.170 - 11.874 -0.928 -1.055 -0.244 0.148 -0.506 -0.365 0.007 0.423 0.076 0.135 0.046 -0.192 - 11.561 -1.216 -1.025 -0.258 0.163 -0.446 -0.375 -0.120 0.416 0.136 0.131 0.205 -0.072 - 11.227 -0.970 -0.769 -0.185 0.191 -0.361 -0.462 -0.292 0.327 0.127 -0.054 0.016 -0.203 - 11.269 -0.846 -0.615 -0.067 0.311 -0.437 -0.374 -0.245 0.260 0.190 0.027 -0.128 -0.173 - 11.200 -0.932 -0.776 -0.172 0.167 -0.335 -0.344 -0.154 0.200 0.305 0.134 -0.228 -0.092 - 11.061 -1.188 -0.882 -0.259 0.118 -0.627 -0.309 -0.115 0.246 0.247 0.121 -0.060 -0.209 - 10.891 -1.062 -0.856 -0.107 0.177 -0.471 -0.164 -0.089 0.144 0.172 0.281 -0.138 -0.075 - 10.753 -1.335 -1.037 -0.417 0.206 -0.555 -0.198 0.016 0.152 0.208 0.227 -0.055 0.032 - 10.665 -1.154 -0.945 -0.348 0.261 -0.514 -0.236 -0.012 0.123 0.253 0.175 -0.051 -0.045 - 10.538 -1.232 -0.980 -0.456 0.086 -0.409 -0.175 0.003 0.013 0.338 0.256 -0.154 -0.029 - 10.694 -1.223 -0.901 -0.330 0.158 -0.617 -0.394 -0.258 -0.109 0.136 0.301 -0.127 -0.156 - 10.818 -1.178 -1.118 -0.253 0.252 -0.635 -0.392 -0.016 -0.072 -0.038 0.243 0.026 -0.364 - 10.680 -1.237 -1.100 -0.304 0.277 -0.716 -0.501 -0.033 0.041 -0.003 0.006 -0.006 -0.192 - 10.580 -1.011 -1.044 -0.382 0.230 -0.522 -0.320 -0.025 0.165 -0.062 -0.124 -0.009 -0.134 - 10.707 -0.916 -1.117 -0.261 0.188 -0.672 -0.194 0.095 0.168 -0.134 -0.214 -0.149 -0.054 - 10.442 -1.137 -1.081 -0.357 -0.137 -0.592 -0.185 -0.091 0.085 -0.072 0.012 -0.088 -0.064 - 10.394 -1.093 -0.990 -0.350 0.102 -0.446 -0.218 -0.131 0.176 0.094 -0.241 -0.176 -0.210 - 10.314 -0.968 -0.911 -0.290 -0.068 -0.505 -0.257 -0.034 -0.060 -0.179 -0.199 -0.136 -0.162 - 10.354 -0.932 -0.901 -0.173 0.090 -0.669 -0.288 -0.122 -0.059 -0.226 -0.152 -0.063 -0.120 - 10.250 -0.825 -0.892 -0.178 0.047 -0.593 -0.425 -0.121 -0.035 -0.209 -0.200 -0.013 -0.073 - 10.116 -0.744 -0.994 -0.260 -0.006 -0.504 -0.341 -0.218 -0.014 -0.195 -0.236 -0.074 -0.073 - 10.090 -0.751 -0.883 -0.203 0.067 -0.559 -0.107 -0.161 -0.116 -0.096 -0.096 0.014 -0.181 - 10.103 -0.628 -0.777 -0.250 0.028 -0.577 -0.146 -0.148 -0.024 -0.139 -0.184 -0.022 -0.156 - 10.064 -0.666 -0.737 -0.336 0.019 -0.585 -0.169 -0.128 -0.043 -0.274 -0.041 -0.057 -0.049 - 10.062 -0.653 -0.804 -0.358 -0.010 -0.633 -0.158 -0.251 -0.039 -0.158 -0.029 -0.073 -0.067 - 10.049 -0.589 -0.742 -0.307 -0.014 -0.626 -0.310 -0.116 -0.002 -0.019 0.024 -0.055 -0.087 - 9.778 -0.881 -0.804 -0.403 -0.183 -0.537 -0.330 -0.025 0.067 -0.140 -0.127 0.126 -0.085 - 9.798 -0.699 -0.601 -0.286 -0.007 -0.605 -0.279 -0.012 0.206 -0.267 -0.087 0.024 -0.095 - 10.304 -0.251 -0.219 -0.163 0.044 -0.392 -0.152 -0.089 0.006 -0.235 -0.168 0.054 -0.172 - 10.723 0.088 -0.203 -0.027 0.187 -0.331 -0.204 0.008 0.011 -0.330 -0.302 0.078 -0.090 - 10.005 -0.450 -0.653 -0.249 0.021 -0.438 -0.161 0.036 0.192 -0.280 -0.078 0.027 -0.123 - 9.651 -0.649 -0.722 -0.300 -0.184 -0.549 -0.340 -0.124 0.134 -0.096 -0.039 -0.013 -0.117 - 9.374 -0.589 -0.600 -0.357 -0.063 -0.552 -0.255 0.002 0.191 -0.077 -0.095 0.060 -0.197 - 9.335 -0.782 -0.723 -0.454 -0.019 -0.449 -0.243 0.044 0.209 0.123 -0.003 -0.057 -0.106 - 9.385 -0.644 -0.683 -0.489 -0.372 -0.436 -0.176 0.055 0.322 0.135 0.050 -0.082 -0.094 - 9.466 -0.493 -0.595 -0.526 -0.354 -0.607 -0.275 0.013 0.388 0.087 0.064 0.051 -0.177 - 9.237 -0.611 -0.688 -0.387 -0.203 -0.687 -0.398 -0.051 0.326 0.074 0.208 0.062 -0.177 - 9.259 -0.483 -0.658 -0.526 -0.238 -0.586 -0.356 0.112 0.360 0.079 0.101 0.072 -0.146 - 9.706 -0.028 -0.359 -0.214 -0.037 -0.297 -0.327 0.068 0.365 0.008 0.035 0.071 -0.268 - 9.530 -0.137 -0.377 -0.124 -0.007 -0.325 -0.373 -0.038 0.337 0.043 0.081 0.158 -0.149 - 9.373 -0.400 -0.649 -0.548 -0.180 -0.253 -0.237 0.067 0.289 -0.100 -0.078 -0.077 -0.094 - 9.148 -0.496 -0.698 -0.460 -0.254 -0.230 -0.178 0.067 0.435 -0.031 -0.178 -0.095 -0.149 - 9.294 -0.403 -0.587 -0.253 -0.124 -0.360 -0.355 0.039 0.266 -0.088 -0.170 -0.259 -0.125 - 8.957 -0.604 -0.716 -0.345 -0.033 -0.321 -0.291 0.060 0.132 -0.010 -0.304 -0.351 -0.118 - 9.116 -0.366 -0.506 -0.194 0.141 -0.147 -0.140 0.106 0.107 -0.039 -0.305 -0.319 -0.325 - 9.883 0.134 0.014 0.155 0.191 -0.119 -0.226 -0.152 -0.117 -0.098 -0.139 -0.174 -0.091 - 9.688 -0.058 -0.095 -0.031 0.136 -0.142 -0.203 -0.065 0.032 -0.018 -0.122 -0.185 -0.135 - 9.781 -0.424 -0.525 -0.149 0.014 -0.125 -0.365 -0.114 -0.047 -0.063 -0.065 0.032 -0.158 - 9.803 -0.367 -0.423 -0.252 -0.173 -0.277 -0.233 -0.221 -0.058 -0.052 -0.107 0.010 -0.029 - 10.207 -0.399 -0.130 -0.190 -0.074 -0.151 -0.169 -0.171 -0.159 -0.137 -0.112 -0.031 -0.095 - 10.652 -0.292 -0.181 -0.171 -0.132 -0.086 -0.377 -0.316 -0.174 -0.216 -0.183 -0.136 -0.206 - 10.596 -0.378 -0.359 -0.244 -0.129 -0.212 -0.305 -0.266 -0.046 -0.191 -0.229 -0.114 -0.108 - 10.270 -0.358 -0.277 -0.271 -0.198 -0.101 -0.255 -0.216 0.163 0.045 -0.310 -0.184 -0.097 - 10.179 -0.351 -0.334 -0.402 -0.048 -0.096 -0.244 -0.240 0.094 -0.083 -0.297 -0.139 -0.245 - 10.217 -0.444 -0.387 -0.387 0.020 -0.325 -0.370 -0.082 -0.045 -0.220 -0.255 0.030 -0.134 - 10.490 -0.455 -0.519 -0.163 -0.021 0.007 -0.173 -0.254 0.013 -0.242 -0.247 -0.098 -0.036 - 10.628 -0.510 -0.502 -0.484 -0.266 -0.195 -0.256 -0.226 -0.067 -0.335 -0.334 -0.172 -0.088 - 10.250 -0.739 -0.553 -0.545 -0.237 -0.246 -0.188 -0.063 0.134 -0.109 -0.193 0.003 -0.130 - 10.011 -0.369 -0.440 -0.329 -0.135 -0.339 -0.336 -0.189 0.134 -0.202 -0.304 -0.019 -0.068 - 10.023 -0.473 -0.298 -0.402 -0.131 -0.276 -0.310 -0.246 0.195 0.061 -0.167 -0.001 -0.022 - 10.078 -0.359 -0.097 -0.368 -0.276 -0.458 -0.164 -0.168 0.131 0.046 -0.242 -0.198 -0.039 - 10.065 -0.149 -0.061 -0.286 -0.091 -0.192 -0.226 -0.264 0.193 0.025 -0.098 -0.171 -0.269 - 9.606 -0.488 -0.270 -0.428 -0.176 -0.425 -0.376 -0.198 0.368 0.091 -0.172 0.021 -0.211 - 9.470 -0.573 -0.416 -0.426 -0.195 -0.565 -0.414 -0.229 0.334 0.019 -0.235 -0.007 -0.222 - 9.628 -0.441 -0.376 -0.371 -0.183 -0.422 -0.326 -0.234 0.295 -0.034 -0.226 -0.036 -0.233 - 9.744 -0.642 -0.461 -0.350 -0.321 -0.331 -0.317 0.030 0.340 -0.030 -0.248 0.001 -0.190 - 9.561 -0.486 -0.376 -0.241 -0.276 -0.078 -0.004 0.110 0.482 0.040 -0.277 -0.061 -0.249 - 9.479 -0.361 -0.411 -0.125 -0.257 -0.312 -0.072 0.047 0.388 0.033 -0.358 -0.069 -0.172 - 9.510 -0.508 -0.383 -0.055 -0.368 -0.552 -0.107 0.162 0.251 -0.002 -0.164 -0.051 -0.149 - 8.920 -0.382 -0.290 -0.111 -0.388 -0.291 -0.210 0.113 0.308 0.142 -0.056 -0.035 -0.251 - 11.824 0.486 -0.391 0.019 -0.079 -0.294 -0.312 0.121 -0.184 -0.056 -0.353 -0.066 -0.299 - 13.083 0.555 -0.334 -0.010 -0.153 -0.382 -0.383 0.199 -0.218 0.022 -0.316 0.122 -0.284 - 12.452 0.340 -0.389 -0.024 -0.146 -0.535 -0.505 0.151 -0.169 0.113 -0.206 0.294 -0.166 - 9.849 0.321 -0.099 -0.155 -0.031 -0.456 -0.607 0.187 -0.001 0.124 -0.268 0.065 -0.131 - 9.113 -0.129 -0.226 -0.181 -0.259 -0.604 -0.365 0.049 0.241 0.146 -0.260 0.024 -0.161 - 8.992 -0.299 -0.402 -0.418 -0.171 -0.621 -0.429 -0.069 0.240 0.081 -0.283 0.092 -0.093 - 9.152 -0.296 -0.322 -0.353 -0.177 -0.490 -0.281 0.013 0.230 -0.095 -0.166 0.101 0.062 - 9.144 -0.408 -0.335 -0.439 -0.183 -0.641 -0.167 0.141 0.276 -0.294 -0.266 0.209 0.115 - 9.116 -0.507 -0.273 -0.478 -0.238 -0.539 -0.210 0.225 0.064 -0.258 -0.153 0.124 0.041 - 8.985 -0.646 -0.281 -0.565 -0.121 -0.449 -0.285 0.128 0.175 -0.278 -0.338 0.044 0.050 - 8.450 -0.884 -0.371 -0.443 -0.189 -0.603 -0.215 0.112 0.361 -0.269 -0.527 0.042 0.106 - 8.361 -0.881 -0.446 -0.356 -0.114 -0.223 -0.170 0.208 0.239 -0.397 -0.382 -0.128 0.034 - 8.428 -0.847 -0.490 -0.229 -0.013 -0.497 -0.054 0.177 0.325 -0.276 -0.426 -0.279 0.042 - 8.496 -0.957 -0.513 -0.314 0.020 -0.337 -0.058 0.215 0.307 -0.245 -0.309 -0.187 0.067 - 8.474 -0.825 -0.339 -0.236 -0.099 -0.386 -0.073 0.205 0.280 -0.177 -0.411 -0.249 -0.102 - 7.977 -0.952 -0.473 -0.352 -0.006 -0.350 -0.111 0.105 0.227 -0.353 -0.444 -0.341 -0.167 - 7.604 -1.047 -0.566 -0.424 -0.007 -0.439 -0.092 0.025 0.383 -0.187 -0.305 -0.319 -0.145 - 7.698 -0.994 -0.462 -0.359 0.026 -0.409 -0.225 -0.037 0.544 -0.016 -0.258 -0.225 -0.183 - 7.530 -1.003 -0.490 -0.321 0.013 -0.531 -0.144 0.129 0.525 -0.166 -0.404 -0.299 -0.201 - 7.793 -0.686 -0.399 -0.528 0.092 -0.576 -0.297 -0.035 0.549 -0.006 -0.332 -0.182 -0.037 - 7.529 -0.782 -0.391 -0.440 0.045 -0.516 -0.248 0.070 0.560 0.130 -0.405 -0.181 0.076 - 7.474 -0.693 -0.500 -0.505 0.103 -0.326 -0.379 0.107 0.459 0.117 -0.159 -0.123 -0.040 - 6.847 -1.102 -0.696 -0.633 0.103 -0.241 -0.366 0.048 0.514 0.040 -0.003 -0.131 -0.192 - 6.859 -0.892 -0.481 -0.424 0.264 -0.419 -0.397 -0.093 0.298 -0.072 -0.053 -0.087 -0.179 - 6.688 -0.926 -0.379 -0.322 0.404 -0.250 -0.185 0.061 0.344 -0.281 -0.062 -0.094 -0.188 - 7.023 -0.557 -0.155 -0.293 0.302 -0.373 -0.243 -0.197 0.277 -0.036 0.030 0.061 -0.020 - 7.595 -0.469 -0.112 -0.122 0.173 -0.196 -0.093 -0.277 -0.105 -0.254 -0.102 0.101 0.040 - 7.673 -0.489 -0.165 -0.137 0.061 -0.055 -0.354 -0.403 -0.075 -0.251 0.008 0.179 0.041 - 7.512 -0.434 -0.447 -0.095 0.139 0.084 -0.221 -0.462 -0.081 -0.245 -0.011 -0.001 -0.018 - 6.996 -0.256 -0.271 -0.246 0.149 -0.000 -0.252 -0.152 -0.241 -0.307 0.041 0.095 0.010 - 6.448 -0.085 -0.021 -0.200 0.274 -0.287 -0.384 -0.010 -0.049 -0.162 0.006 0.232 0.082 - 6.229 -0.028 0.151 -0.247 0.319 -0.113 -0.238 0.108 0.121 -0.042 -0.269 0.018 -0.077 - 6.088 -0.212 -0.133 -0.115 0.062 0.055 -0.238 -0.190 0.115 0.088 -0.135 0.132 0.165 - 6.338 0.084 -0.121 0.033 0.071 0.106 -0.451 -0.217 -0.055 -0.083 -0.101 -0.025 -0.077 - 6.756 0.093 0.195 0.076 0.022 0.030 -0.269 -0.171 0.013 -0.062 -0.026 0.037 -0.023 - 6.619 0.285 0.088 0.014 0.076 0.149 -0.332 -0.176 -0.039 0.029 -0.180 0.010 -0.037 - 6.464 0.383 0.091 -0.082 -0.182 0.118 -0.341 -0.127 0.068 -0.072 -0.099 0.040 -0.023 - 6.935 0.257 0.336 0.117 0.113 0.362 -0.362 -0.257 -0.266 -0.119 -0.099 -0.094 -0.085 - 6.710 0.357 0.093 -0.166 -0.079 0.294 -0.338 -0.221 -0.396 -0.116 0.001 0.007 -0.055 - 6.437 0.115 0.104 -0.172 -0.162 0.196 -0.440 -0.175 -0.378 -0.110 -0.121 0.074 0.090 - 5.003 0.121 0.039 -0.090 -0.023 0.106 -0.291 -0.087 -0.063 0.167 0.061 -0.127 -0.080 - 4.737 0.084 -0.230 0.109 -0.080 -0.013 -0.267 -0.126 -0.206 -0.107 -0.020 0.100 -0.098 - 4.753 0.331 -0.445 0.115 -0.068 -0.258 -0.319 -0.243 -0.191 -0.012 -0.089 -0.038 0.187 - 4.373 0.103 -0.389 0.166 -0.168 -0.076 0.117 -0.201 -0.209 0.226 0.178 -0.110 0.006 - 5.206 -0.251 -0.214 0.229 -0.334 0.084 -0.016 -0.318 -0.038 0.063 0.073 0.195 -0.108 - 5.878 -0.526 0.050 0.235 -0.516 -0.074 -0.260 -0.117 0.102 0.106 -0.008 0.272 -0.086 - 5.878 -0.634 0.239 0.275 -0.490 -0.163 -0.229 -0.037 0.125 0.041 0.011 0.084 -0.175 - 5.699 -0.604 0.254 0.276 -0.297 -0.043 -0.034 -0.275 0.121 0.185 0.049 0.048 -0.053 - 5.925 -0.691 0.015 0.169 -0.403 -0.258 0.008 -0.227 0.014 0.093 -0.012 0.080 0.065 - 6.615 -0.606 -0.249 0.140 -0.356 -0.198 0.219 0.025 -0.148 -0.143 -0.017 0.065 -0.096 - 6.728 -0.496 -0.279 0.068 -0.326 -0.199 0.210 0.105 -0.082 -0.274 -0.133 -0.014 -0.071 - 6.729 -0.318 -0.442 0.228 -0.264 -0.080 0.038 0.149 0.084 -0.166 -0.229 0.091 0.077 - 7.300 -0.209 -0.692 0.116 -0.300 -0.244 -0.192 0.130 0.157 -0.119 -0.142 0.042 -0.180 - 7.429 -0.206 -0.989 -0.003 -0.179 -0.051 -0.139 0.135 0.261 -0.223 -0.067 0.159 -0.140 - 7.494 -0.203 -1.236 -0.125 -0.126 0.063 -0.355 0.002 0.121 -0.110 -0.044 0.344 0.031 - 7.938 -0.215 -1.232 0.021 -0.169 0.108 -0.456 -0.157 0.344 -0.087 -0.128 0.239 -0.058 - 8.081 -0.199 -1.278 0.036 -0.223 0.298 -0.544 -0.241 0.299 -0.190 -0.152 0.270 0.037 - 8.316 -0.162 -1.290 -0.121 -0.176 0.350 -0.463 -0.230 0.366 -0.189 -0.068 0.243 -0.003 - 8.586 -0.246 -1.097 -0.361 -0.221 0.349 -0.474 -0.271 0.231 -0.236 -0.111 0.120 -0.037 - 8.672 -0.392 -1.085 -0.492 -0.248 0.386 -0.405 -0.152 0.348 -0.135 -0.005 0.106 0.044 - 8.581 -0.405 -0.926 -0.459 -0.279 0.526 -0.461 -0.162 0.241 -0.191 0.110 0.046 0.011 - 8.332 -0.431 -0.827 -0.406 -0.385 0.578 -0.388 -0.181 0.167 -0.188 0.195 0.084 -0.153 - 8.132 -0.361 -0.679 -0.358 -0.350 0.475 -0.312 -0.143 0.195 -0.149 0.102 0.069 -0.141 - 7.852 -0.169 -0.411 -0.233 -0.337 0.284 -0.277 -0.185 0.147 -0.058 -0.082 0.093 -0.099 - 7.836 -0.067 -0.688 -0.043 -0.310 -0.039 -0.124 0.075 0.020 0.014 -0.084 -0.019 -0.011 - 7.829 0.131 -0.621 0.007 -0.161 -0.185 -0.275 -0.069 0.063 0.019 -0.141 -0.135 0.018 - 7.531 0.384 -0.562 -0.024 -0.153 -0.158 -0.350 -0.040 -0.007 0.070 -0.156 -0.111 -0.031 - 6.914 0.370 -0.505 -0.007 -0.137 -0.063 0.020 0.066 0.051 -0.068 -0.165 -0.120 -0.168 - 7.955 1.153 -0.138 0.101 -0.144 -0.109 -0.294 -0.084 -0.051 -0.039 -0.042 -0.141 -0.122 - 7.847 0.973 0.005 0.061 0.019 -0.168 -0.366 0.009 -0.039 0.065 -0.033 -0.113 -0.058 - 6.984 0.115 -0.537 0.524 0.279 -0.087 -0.193 0.107 -0.094 -0.104 -0.272 -0.157 -0.122 - 7.083 0.263 -0.577 0.584 -0.004 -0.339 -0.210 -0.092 -0.127 -0.176 -0.109 0.080 -0.121 - 7.225 0.260 -0.480 0.617 -0.062 -0.500 -0.398 0.013 -0.104 -0.079 -0.016 0.234 -0.028 - 7.480 0.471 -0.511 0.585 -0.062 -0.599 -0.450 0.126 -0.052 -0.225 0.072 0.347 0.098 - 7.195 0.056 -0.755 0.573 0.122 -0.801 -0.750 0.151 -0.021 -0.256 0.161 0.254 0.162 - 7.295 0.284 -0.627 0.372 0.075 -0.695 -0.753 0.203 -0.020 -0.109 -0.005 0.103 0.153 - 7.209 0.404 -0.472 0.009 -0.085 -0.672 -0.866 0.138 0.051 -0.149 0.004 0.159 0.210 - 6.900 0.421 -0.603 -0.050 -0.253 -0.742 -0.722 0.013 -0.179 -0.354 -0.054 0.048 0.036 - 6.902 0.371 -0.552 0.078 -0.157 -0.606 -0.625 0.144 -0.219 -0.246 0.051 0.094 0.229 - 7.420 -0.021 -0.268 0.447 0.039 -0.646 -0.604 -0.072 -0.214 -0.278 -0.022 0.032 -0.037 - 7.907 -0.131 -0.185 0.548 0.106 -0.470 -0.568 -0.057 -0.191 -0.440 -0.062 0.043 -0.026 - 7.959 0.102 -0.206 0.526 -0.057 -0.588 -0.520 -0.209 -0.096 -0.298 -0.165 0.052 0.091 - 7.826 -0.034 -0.359 0.497 -0.207 -0.503 -0.345 -0.234 -0.107 -0.149 -0.026 0.040 -0.022 - 7.523 -0.067 -0.483 0.494 -0.226 -0.618 -0.445 -0.301 -0.216 0.027 0.100 -0.004 0.065 - 7.264 -0.150 -0.157 0.493 -0.491 -0.542 -0.217 -0.190 0.033 0.021 0.004 0.005 -0.010 - 7.395 -0.154 -0.112 0.447 -0.430 -0.484 -0.235 -0.291 -0.010 -0.213 0.136 0.157 -0.248 - 7.453 -0.370 -0.076 0.341 -0.570 -0.548 -0.210 -0.005 -0.053 -0.174 0.077 0.227 -0.324 - 7.564 -0.240 0.046 0.177 -0.317 -0.692 -0.511 -0.103 -0.085 -0.063 -0.099 0.256 -0.222 - 6.963 -0.219 0.120 0.158 -0.230 -0.562 -0.581 -0.091 -0.103 -0.168 -0.043 0.222 -0.187 - 6.746 0.033 0.125 0.264 -0.156 -0.303 -0.458 -0.006 -0.086 -0.446 -0.147 0.176 -0.260 - 6.140 0.157 0.212 0.077 -0.294 -0.223 -0.395 -0.126 -0.123 -0.270 -0.047 0.158 -0.188 - 5.653 0.127 0.074 0.067 -0.165 -0.233 -0.340 -0.106 -0.090 -0.275 -0.190 0.125 -0.078 - 5.550 0.134 0.154 0.253 -0.060 -0.393 -0.362 -0.310 -0.197 -0.338 -0.186 -0.009 -0.060 - 5.453 -0.065 0.183 0.248 0.054 -0.277 -0.366 -0.247 -0.194 -0.286 -0.085 -0.003 -0.235 - 5.629 0.140 0.154 0.121 0.021 -0.231 -0.366 -0.298 -0.228 -0.278 -0.214 0.007 -0.111 - 6.009 0.065 0.224 -0.001 -0.304 -0.339 -0.523 -0.254 -0.003 -0.132 -0.139 -0.079 -0.210 - 6.653 -0.139 0.096 0.237 -0.456 -0.282 -0.320 -0.216 0.050 0.013 0.050 -0.089 -0.176 - 6.886 -0.220 0.139 0.293 -0.337 -0.255 -0.343 -0.371 -0.051 -0.100 0.068 0.023 -0.223 - 6.816 -0.114 0.144 -0.183 -0.162 -0.038 -0.364 -0.417 -0.028 0.005 -0.051 -0.079 -0.164 - 6.931 -0.215 0.185 -0.108 -0.276 -0.199 -0.583 -0.413 0.007 0.024 -0.147 -0.073 -0.066 - 7.016 -0.239 0.003 0.039 -0.223 -0.029 -0.402 -0.482 -0.195 -0.065 -0.129 0.012 0.082 - 7.108 0.021 0.024 -0.016 -0.300 -0.077 -0.357 -0.521 -0.230 -0.111 -0.062 0.008 -0.022 - 6.070 0.047 0.017 0.065 -0.181 0.013 -0.271 -0.441 -0.215 -0.181 -0.188 -0.080 -0.089 - 5.463 0.336 -0.018 0.280 -0.131 -0.237 -0.608 -0.246 0.002 -0.136 -0.164 0.045 -0.085 - 6.069 0.188 -0.171 0.132 -0.202 -0.267 -0.688 -0.139 0.086 -0.106 -0.345 0.111 -0.129 - 6.510 0.193 -0.466 -0.056 -0.315 -0.278 -0.762 -0.011 0.262 -0.198 -0.516 0.179 -0.265 - 6.911 0.012 -0.556 -0.247 -0.374 -0.290 -0.716 0.069 0.311 -0.258 -0.527 0.216 -0.187 - 6.970 -0.070 -0.798 -0.335 -0.158 -0.117 -0.634 0.089 0.050 -0.319 -0.654 0.059 -0.163 - 7.206 -0.064 -0.847 -0.406 -0.208 -0.039 -0.630 0.048 0.131 -0.219 -0.647 0.128 -0.237 - 7.294 -0.048 -0.853 -0.262 -0.177 0.088 -0.616 0.094 0.107 -0.218 -0.627 0.146 -0.137 - 7.275 -0.059 -0.963 -0.255 -0.321 0.245 -0.502 -0.053 0.201 -0.296 -0.453 0.149 -0.051 - 7.055 -0.070 -1.059 -0.210 -0.285 0.331 -0.418 -0.005 0.237 -0.427 -0.480 0.175 -0.170 - 6.999 -0.273 -1.017 -0.404 -0.054 0.378 -0.329 0.135 0.151 -0.393 -0.586 0.332 -0.194 - 7.285 -0.123 -0.973 -0.395 -0.080 0.272 -0.418 0.099 0.091 -0.230 -0.415 0.346 -0.163 - 7.240 -0.128 -1.029 -0.438 -0.084 0.231 -0.437 -0.068 -0.052 -0.290 -0.502 0.323 -0.219 - 7.271 -0.034 -1.132 -0.404 -0.157 0.197 -0.388 -0.106 -0.051 -0.212 -0.324 0.330 -0.227 - 7.447 -0.055 -1.061 -0.475 -0.367 0.203 -0.496 -0.051 -0.025 -0.178 -0.314 0.229 -0.291 - 7.320 -0.140 -1.170 -0.421 -0.526 -0.048 -0.532 -0.133 -0.068 -0.083 -0.326 0.313 -0.348 - 7.087 -0.035 -1.066 -0.253 -0.367 -0.188 -0.526 0.096 -0.131 0.063 -0.223 0.437 -0.368 - 7.097 -0.038 -1.074 -0.322 -0.227 -0.079 -0.662 0.066 -0.150 0.040 -0.218 0.391 -0.292 - 7.138 0.021 -1.005 -0.461 -0.258 0.169 -0.438 0.017 0.091 0.013 -0.366 0.326 -0.208 - 6.940 0.124 -0.805 -0.514 -0.249 0.148 -0.361 0.111 0.217 -0.137 -0.204 0.256 -0.325 - 6.078 0.178 -0.503 -0.426 -0.092 0.066 -0.366 0.050 0.157 -0.031 -0.240 0.156 -0.155 - 5.922 0.359 -0.526 -0.455 -0.203 -0.014 -0.288 -0.098 0.182 -0.095 -0.198 0.161 -0.066 - 5.923 0.215 -0.523 -0.339 -0.301 -0.057 -0.286 0.083 0.205 0.102 -0.212 0.009 -0.273 - 5.563 0.292 -0.478 -0.352 -0.222 0.020 -0.285 0.043 0.414 0.100 -0.258 -0.024 -0.197 - 5.126 0.359 -0.356 -0.144 -0.179 -0.045 -0.362 0.031 0.180 0.150 0.043 0.144 -0.161 - 6.261 -0.311 -0.506 -0.159 -0.122 0.308 0.092 -0.246 0.040 -0.050 0.040 -0.013 -0.089 - 8.541 -0.639 -0.591 -0.201 -0.249 0.248 0.102 -0.524 -0.039 0.065 0.109 0.016 -0.040 - 9.150 -0.583 -0.649 -0.031 -0.244 0.056 -0.055 -0.555 -0.032 -0.033 -0.204 -0.069 -0.034 - 9.317 -0.604 -0.684 -0.100 -0.258 0.078 -0.030 -0.399 0.085 0.077 0.011 0.010 0.040 - 9.212 -0.427 -0.349 -0.166 -0.190 0.130 -0.022 -0.515 -0.050 0.157 0.006 -0.026 -0.068 - 9.610 -0.314 -0.360 -0.191 -0.322 0.063 -0.181 -0.477 -0.103 -0.009 -0.151 0.021 -0.103 - 9.804 -0.438 -0.387 -0.056 -0.132 0.006 -0.337 -0.398 0.018 0.153 -0.115 -0.027 0.010 - 9.805 -0.446 -0.473 -0.091 -0.138 0.045 -0.083 -0.319 0.201 0.026 -0.032 -0.047 0.001 - 9.719 0.037 -0.335 -0.156 -0.217 -0.091 -0.185 -0.285 0.134 0.022 -0.064 -0.122 -0.034 - 8.808 0.107 -0.110 -0.158 -0.075 0.047 -0.189 -0.362 -0.202 0.068 -0.140 -0.090 0.025 - 8.240 -0.127 -0.328 -0.249 -0.192 0.078 -0.300 -0.219 -0.054 0.154 0.006 0.006 -0.074 - 7.872 -0.088 -0.091 -0.118 -0.171 -0.116 -0.213 -0.039 0.036 0.138 0.022 -0.029 -0.051 - 6.936 -0.109 -0.014 -0.082 -0.137 0.031 -0.202 0.093 0.045 0.044 -0.080 -0.222 -0.044 - 5.648 -0.066 0.120 0.015 -0.185 -0.050 -0.153 -0.185 -0.044 0.038 -0.002 0.001 0.048 - 5.062 -0.288 0.140 -0.023 -0.260 0.049 -0.449 -0.121 0.032 0.075 -0.182 0.024 0.153 - 4.909 -0.448 -0.112 0.113 -0.154 -0.036 -0.174 0.070 -0.114 0.061 0.048 0.072 0.053 - 5.017 -0.125 0.051 0.147 -0.084 0.037 -0.202 -0.063 -0.097 -0.002 -0.126 -0.098 -0.069 - 5.161 -0.121 0.184 0.055 0.049 0.044 -0.374 -0.188 0.100 0.019 -0.107 -0.062 -0.008 - 5.354 -0.350 -0.033 -0.071 -0.029 0.250 -0.166 0.031 0.143 0.052 -0.176 -0.088 -0.177 - 5.213 -0.212 0.158 0.031 -0.071 -0.003 -0.166 0.164 -0.062 -0.035 -0.064 -0.054 -0.087 - 5.342 -0.169 0.167 -0.040 -0.289 -0.271 -0.390 0.016 -0.068 0.044 -0.085 0.005 -0.023 - 5.635 0.144 0.261 -0.085 -0.234 -0.018 -0.145 -0.034 -0.123 -0.162 -0.148 -0.083 -0.171 - 6.795 0.457 0.344 -0.036 -0.116 0.098 0.136 0.135 -0.109 -0.068 -0.178 -0.020 -0.089 - 6.002 0.273 0.511 -0.003 -0.214 0.004 -0.209 0.077 -0.061 0.035 -0.087 -0.004 -0.317 - 5.739 0.017 0.203 -0.188 -0.542 -0.267 -0.178 0.149 -0.157 0.002 0.104 -0.069 -0.138 - 5.932 -0.004 0.247 -0.044 -0.329 -0.151 -0.220 0.051 -0.085 0.075 -0.163 -0.079 0.013 - 5.669 0.131 0.388 -0.121 -0.234 0.006 -0.120 0.009 -0.088 -0.036 -0.082 -0.046 -0.119 - 5.939 0.179 0.397 0.109 -0.210 -0.048 -0.189 0.053 -0.053 -0.080 -0.132 -0.091 -0.252 - 6.112 0.446 0.651 0.252 -0.137 -0.143 -0.375 -0.145 0.090 0.167 -0.146 -0.225 -0.095 - 5.838 0.465 0.360 0.062 -0.028 -0.032 -0.264 -0.351 -0.302 0.123 -0.124 -0.199 -0.019 - 7.793 0.312 -0.349 -0.374 0.042 -0.252 -0.217 -0.062 -0.116 -0.113 -0.175 -0.033 -0.101 - 8.450 0.401 -0.341 -0.328 0.121 -0.223 -0.195 -0.071 -0.070 -0.191 -0.167 -0.031 -0.138 - 5.569 0.198 0.549 0.158 -0.081 -0.111 -0.199 -0.129 -0.168 0.031 -0.153 -0.217 -0.135 - 5.452 0.268 0.423 0.019 -0.035 0.056 -0.111 -0.111 -0.208 -0.080 -0.162 -0.031 -0.245 - 5.538 0.262 0.445 -0.123 -0.031 0.108 0.049 0.044 -0.082 0.002 -0.180 -0.082 -0.237 - 5.605 0.149 0.278 -0.052 -0.203 -0.188 -0.079 -0.021 -0.109 0.084 -0.062 -0.085 -0.130 - 6.784 -0.163 0.049 -0.193 -0.022 -0.020 -0.082 0.002 -0.237 -0.090 -0.180 -0.072 -0.067 - 4.965 0.166 0.089 0.052 0.001 -0.126 -0.141 -0.174 -0.139 -0.052 -0.105 0.048 -0.065 - 4.640 0.087 0.098 0.145 0.058 -0.002 -0.038 0.089 -0.040 -0.041 -0.078 -0.009 -0.099 - 4.756 0.338 0.177 0.040 -0.056 -0.098 -0.161 -0.019 -0.091 -0.050 -0.120 -0.093 -0.049 - 4.688 0.213 0.043 0.069 0.009 -0.038 -0.105 0.052 -0.177 -0.058 -0.135 -0.099 -0.037 - 5.054 0.200 0.129 -0.100 -0.275 -0.094 -0.155 -0.200 -0.248 -0.046 -0.063 0.029 -0.055 - 4.617 0.186 0.076 0.020 -0.144 -0.164 -0.293 -0.094 -0.129 -0.032 -0.105 -0.018 -0.195 - 4.774 0.157 0.049 -0.043 -0.181 -0.032 0.066 -0.123 -0.076 -0.022 -0.023 0.136 0.005 - 4.773 0.124 0.068 0.061 -0.223 -0.123 -0.028 -0.052 -0.183 -0.121 -0.242 0.053 -0.035 - 5.128 0.164 0.100 -0.053 -0.337 -0.181 -0.096 -0.063 -0.013 0.007 -0.025 -0.091 0.025 - 6.683 -0.573 0.036 -0.085 -0.182 -0.176 -0.310 -0.196 -0.164 -0.038 -0.060 -0.036 -0.109 - 5.895 -0.064 0.252 -0.141 -0.282 -0.166 -0.161 -0.168 -0.173 -0.154 -0.150 -0.077 -0.072 - 5.085 0.381 0.090 0.161 -0.316 -0.241 -0.156 -0.166 -0.124 -0.233 -0.009 0.003 0.054 - 4.914 0.383 0.228 -0.018 -0.111 -0.149 -0.078 -0.136 -0.229 -0.175 -0.185 -0.121 -0.077 - 5.095 0.096 -0.010 0.045 -0.174 0.010 0.022 -0.121 -0.020 -0.085 -0.170 -0.067 -0.049 - 4.927 0.113 0.150 -0.013 -0.140 -0.096 -0.067 -0.223 -0.243 0.071 -0.074 -0.092 -0.208 - 4.164 0.156 -0.028 0.079 -0.106 -0.221 -0.056 -0.268 -0.127 -0.123 -0.125 -0.039 -0.190 - 4.167 -0.010 -0.124 0.057 -0.132 -0.155 -0.056 0.018 -0.106 0.030 0.003 -0.077 -0.202 - 4.138 -0.034 -0.136 0.105 -0.057 -0.144 -0.084 -0.045 -0.187 -0.034 -0.073 0.068 0.062 - 4.356 0.185 -0.177 0.135 -0.100 -0.199 -0.072 0.120 -0.175 -0.032 -0.163 -0.141 -0.104 - 4.042 0.201 0.007 0.282 -0.046 -0.063 -0.046 -0.031 -0.263 -0.131 -0.048 -0.080 -0.126 - 3.962 0.130 -0.168 0.221 0.039 -0.112 0.044 0.104 -0.019 -0.160 -0.147 -0.132 -0.031 - 4.028 0.037 -0.219 0.176 -0.007 -0.098 0.271 0.145 -0.029 -0.086 -0.034 -0.074 -0.194 - 4.180 0.326 -0.181 0.007 -0.209 -0.047 -0.045 -0.018 -0.116 -0.008 -0.004 0.021 -0.105 - 4.057 0.219 -0.101 0.086 -0.108 -0.016 0.017 -0.103 -0.031 -0.098 -0.122 -0.034 -0.090 - 4.492 -0.087 0.161 -0.179 0.020 -0.133 -0.063 0.049 -0.155 -0.126 -0.181 -0.047 -0.203 - 4.609 0.097 0.150 -0.166 0.004 -0.022 -0.103 0.060 -0.163 0.009 0.019 -0.031 -0.200 - 4.542 0.282 -0.121 0.068 -0.218 -0.056 -0.081 -0.016 -0.002 0.035 -0.012 0.007 -0.087 - 4.490 0.181 -0.088 0.004 -0.173 -0.000 0.074 0.013 -0.134 -0.158 -0.097 -0.174 -0.191 - 4.354 0.326 0.029 0.029 -0.279 -0.080 0.001 0.083 -0.032 -0.024 0.055 -0.107 -0.229 - 4.271 0.100 -0.081 0.072 -0.160 -0.353 -0.234 -0.065 0.059 0.030 -0.101 -0.095 -0.112 - 4.705 0.171 0.120 0.127 -0.172 -0.233 -0.046 0.027 0.080 -0.021 -0.051 -0.120 -0.359 - 5.118 0.438 -0.005 -0.006 -0.229 -0.122 0.002 -0.007 -0.177 -0.192 -0.030 -0.149 -0.129 - 5.052 0.194 0.004 -0.068 -0.436 -0.337 -0.009 -0.041 -0.104 -0.077 -0.105 0.035 -0.103 - 4.977 0.199 0.068 0.051 -0.428 -0.188 0.114 -0.065 -0.201 -0.046 -0.165 -0.159 -0.177 - 4.875 0.479 -0.276 0.060 -0.248 -0.122 -0.067 -0.107 -0.181 -0.023 -0.005 -0.012 -0.079 - 4.455 0.449 0.015 0.131 -0.239 -0.087 -0.102 -0.141 -0.048 -0.042 -0.301 -0.144 -0.046 - 4.791 0.534 -0.200 -0.009 -0.198 -0.119 -0.009 -0.112 -0.141 0.057 -0.067 -0.049 -0.035 - 4.672 0.530 -0.033 -0.025 -0.210 -0.044 0.099 0.038 -0.076 -0.162 -0.285 -0.004 -0.025 - 4.596 0.454 -0.096 -0.008 -0.348 -0.150 -0.073 -0.034 -0.160 0.012 -0.220 -0.057 -0.055 - 5.022 0.638 -0.171 -0.121 -0.382 -0.135 -0.032 -0.087 -0.018 -0.080 -0.185 -0.178 -0.019 - 5.068 0.630 -0.097 0.175 -0.236 -0.112 0.123 -0.213 -0.261 0.031 -0.184 -0.068 -0.160 - 4.793 0.390 0.114 0.236 -0.284 -0.239 0.002 -0.046 -0.238 0.021 -0.206 -0.012 -0.023 - 4.963 0.623 0.039 0.154 -0.417 -0.112 -0.048 -0.211 -0.099 -0.062 -0.358 0.011 0.055 - 4.750 0.380 -0.184 0.328 -0.309 -0.324 0.001 -0.019 -0.119 -0.246 -0.142 0.079 0.179 - 5.222 0.571 -0.072 0.200 -0.030 -0.187 -0.151 -0.205 -0.218 -0.027 -0.059 0.104 -0.138 - 5.510 0.489 0.128 0.222 -0.094 -0.108 -0.248 -0.432 -0.165 -0.025 0.028 0.107 -0.353 - 5.843 0.437 -0.014 0.107 -0.223 -0.240 -0.193 -0.312 -0.281 0.079 -0.009 0.143 -0.228 - 5.700 0.474 0.025 0.110 -0.316 -0.215 -0.183 -0.247 -0.324 0.172 -0.049 0.075 -0.231 - 5.635 0.651 0.154 0.138 -0.406 -0.147 -0.126 -0.373 -0.356 0.212 -0.089 -0.070 -0.245 - 5.706 0.570 0.176 0.136 -0.429 -0.099 -0.197 -0.322 -0.389 0.236 -0.119 -0.005 -0.225 - 5.751 0.600 0.338 0.126 -0.341 -0.145 -0.170 -0.357 -0.493 0.199 -0.030 -0.088 -0.269 - 6.038 0.584 -0.038 0.066 -0.269 -0.162 -0.125 -0.366 -0.408 0.142 -0.203 0.018 -0.334 - 6.041 0.562 -0.019 0.063 -0.041 0.005 -0.109 -0.248 -0.488 -0.158 -0.137 0.071 -0.249 - 5.667 0.545 0.196 0.201 -0.138 -0.053 -0.232 -0.292 -0.530 -0.022 0.048 -0.013 -0.081 - 6.137 0.788 0.272 0.004 -0.094 -0.064 0.106 0.065 -0.153 -0.129 -0.225 -0.261 -0.290 - 6.086 0.789 0.573 0.275 -0.108 -0.009 -0.031 -0.094 -0.175 -0.131 -0.309 -0.255 -0.286 - 5.666 0.541 0.209 0.064 -0.273 -0.135 -0.106 -0.211 -0.160 -0.040 -0.089 -0.042 0.024 - 5.449 0.221 0.100 0.273 -0.042 -0.138 -0.246 -0.220 -0.320 -0.085 -0.149 -0.009 -0.000 - 5.837 -0.024 -0.041 0.278 -0.070 -0.293 -0.154 -0.396 -0.320 -0.086 -0.127 -0.020 0.065 - 7.107 0.105 0.053 0.267 -0.345 -0.275 -0.080 -0.302 -0.211 0.186 -0.104 -0.043 -0.074 - 8.856 0.411 0.279 0.130 -0.478 -0.087 -0.354 -0.303 -0.095 0.227 -0.063 -0.062 -0.191 - 7.508 0.161 0.234 0.522 -0.278 -0.230 0.110 -0.325 -0.203 0.128 -0.240 -0.049 -0.191 - 8.805 0.528 0.124 0.182 -0.259 -0.079 0.055 -0.203 -0.273 0.040 -0.300 -0.051 -0.209 - 9.235 0.664 0.201 0.170 -0.315 0.096 0.168 -0.305 -0.262 -0.046 -0.296 -0.017 -0.201 - 6.993 0.052 0.346 0.311 -0.332 -0.167 0.376 -0.215 -0.208 0.150 -0.373 0.067 -0.181 - 6.780 0.027 0.232 0.215 -0.589 -0.315 0.152 -0.509 -0.208 0.132 -0.268 0.108 -0.009 - 6.447 -0.074 0.241 0.249 -0.472 -0.397 0.089 -0.630 -0.155 0.112 -0.284 0.262 -0.114 - 6.583 -0.009 0.399 0.509 -0.532 -0.305 -0.010 -0.627 -0.293 0.061 -0.343 0.041 -0.128 - 7.054 -0.260 0.300 0.533 -0.466 -0.339 -0.153 -0.752 -0.292 0.135 -0.386 -0.065 -0.179 - 6.831 -0.191 0.340 0.558 -0.642 -0.450 0.053 -0.791 -0.417 -0.006 -0.433 -0.087 -0.246 - 7.026 -0.275 0.396 0.498 -0.729 -0.560 0.208 -0.533 -0.290 0.121 -0.437 -0.073 -0.310 - 6.899 -0.431 0.335 0.442 -0.872 -0.805 0.125 -0.542 -0.209 0.277 -0.230 0.020 -0.227 - 6.822 -0.374 0.144 0.264 -0.830 -0.661 0.231 -0.527 -0.066 0.251 -0.227 0.044 -0.110 - 6.765 -0.315 0.058 0.328 -0.831 -0.625 0.150 -0.614 -0.151 0.203 -0.202 -0.007 -0.063 - 6.570 -0.160 0.250 0.346 -0.575 -0.767 0.024 -0.444 -0.090 0.115 -0.433 0.022 -0.083 - 5.933 -0.245 0.329 0.301 -0.608 -0.423 0.243 -0.534 -0.218 0.097 -0.380 0.006 -0.119 - 6.018 0.023 0.267 0.399 -0.444 -0.423 0.061 -0.230 -0.059 0.290 -0.319 -0.056 -0.194 - 6.048 0.028 0.248 0.318 -0.188 -0.268 0.091 -0.186 -0.063 -0.034 -0.098 0.022 -0.145 - 5.943 -0.015 0.260 0.255 -0.027 -0.253 -0.003 -0.141 -0.116 0.041 -0.119 -0.081 -0.123 - 5.452 0.053 0.160 0.170 -0.174 -0.259 -0.154 -0.125 -0.185 -0.085 0.042 -0.035 -0.115 - 5.680 0.297 0.109 0.336 -0.248 -0.188 0.003 -0.214 -0.116 -0.009 -0.234 -0.030 -0.052 - 6.000 0.317 0.342 0.286 -0.059 -0.003 -0.175 -0.136 -0.210 0.073 -0.183 -0.036 -0.099 - 5.914 0.008 0.145 0.032 -0.212 0.040 0.055 -0.231 -0.063 0.083 -0.129 -0.014 -0.020 - 6.254 0.038 0.180 0.256 -0.351 -0.225 0.116 -0.327 -0.096 0.066 -0.274 -0.061 -0.199 - 6.258 -0.180 0.274 0.468 -0.346 -0.326 0.081 -0.446 -0.129 0.064 -0.230 -0.030 -0.184 - 6.383 -0.220 0.398 0.432 -0.572 -0.377 -0.009 -0.530 -0.248 0.191 -0.133 0.031 -0.185 - 6.871 -0.202 0.311 0.525 -0.625 -0.544 -0.028 -0.357 -0.216 0.117 0.071 0.008 -0.279 - 6.909 -0.284 -0.046 0.313 -0.424 -0.523 0.051 -0.174 -0.171 -0.091 -0.137 0.105 -0.247 - 6.564 -0.456 -0.162 0.242 -0.259 -0.393 0.200 0.041 -0.112 0.037 -0.064 0.128 -0.454 - 6.605 -0.317 -0.056 0.248 -0.147 -0.397 0.003 -0.049 -0.033 -0.027 -0.059 0.091 -0.482 - 6.781 -0.187 -0.086 0.333 -0.099 -0.496 -0.065 -0.184 -0.099 -0.090 -0.068 0.163 -0.370 - 6.719 -0.184 -0.217 0.109 -0.151 -0.501 -0.030 0.009 0.014 -0.074 -0.131 0.341 -0.343 - 6.594 -0.076 -0.526 -0.177 -0.216 -0.549 -0.094 0.177 0.062 -0.163 -0.288 0.320 -0.394 - 9.164 1.223 -0.147 -0.073 -0.117 -0.260 -0.210 -0.188 -0.139 -0.211 -0.261 0.089 -0.230 - 9.615 1.225 -0.069 0.079 -0.140 -0.268 -0.174 -0.164 -0.168 -0.148 -0.186 0.082 -0.063 - 7.476 0.783 -0.044 0.188 -0.097 -0.361 -0.041 0.148 0.040 -0.311 -0.179 0.222 -0.317 - 6.610 0.085 -0.111 -0.028 -0.183 -0.324 -0.075 0.234 0.328 -0.122 -0.290 0.316 -0.229 - 6.456 -0.049 -0.297 0.078 -0.180 -0.330 -0.169 0.347 0.169 -0.313 -0.271 0.232 -0.380 - 6.450 0.090 -0.416 -0.004 -0.278 -0.365 -0.185 0.197 -0.018 -0.208 -0.247 0.255 -0.413 - 6.580 0.350 -0.338 0.042 -0.146 -0.330 -0.279 0.187 0.237 -0.326 -0.204 0.170 -0.330 - 8.643 0.351 0.017 -0.341 -0.310 -0.359 -0.131 -0.143 -0.226 0.006 -0.240 -0.002 -0.169 - 8.804 0.071 0.167 -0.047 -0.412 -0.353 -0.041 -0.076 -0.139 0.172 -0.211 0.008 -0.063 - 9.703 -0.238 0.376 0.053 -0.283 -0.255 -0.186 -0.020 -0.224 0.162 -0.395 -0.099 -0.066 - 7.015 0.205 0.382 0.319 -0.074 -0.334 -0.209 0.085 -0.003 0.120 -0.172 0.042 -0.104 - 6.557 0.372 0.278 0.099 -0.219 -0.324 -0.119 0.131 -0.025 -0.112 -0.090 -0.137 -0.320 - 6.041 0.253 0.135 0.106 -0.022 -0.244 -0.132 0.013 -0.170 -0.195 -0.206 0.005 -0.188 - 6.274 0.443 0.080 0.012 -0.208 -0.279 0.034 0.023 -0.069 -0.287 -0.054 -0.094 -0.257 - 6.291 0.462 0.361 0.206 -0.163 -0.159 -0.050 -0.086 -0.270 -0.192 -0.126 0.013 -0.197 - 6.061 0.350 0.281 0.114 -0.168 -0.031 -0.127 -0.138 -0.411 -0.189 -0.126 -0.094 -0.351 - 5.758 0.312 0.120 0.042 -0.179 -0.397 -0.099 -0.166 -0.296 -0.169 -0.121 -0.050 -0.174 - 5.309 0.145 0.079 0.213 -0.221 -0.349 -0.175 -0.096 -0.154 0.003 -0.133 -0.128 -0.087 - 5.274 0.229 0.034 0.144 -0.181 -0.387 -0.056 0.035 -0.205 -0.063 -0.172 -0.218 -0.221 - 5.881 0.427 0.136 -0.103 -0.246 -0.198 -0.136 -0.129 -0.345 -0.100 -0.049 0.067 -0.098 - 5.556 0.541 -0.122 -0.132 -0.173 -0.120 0.093 -0.002 -0.353 -0.244 -0.192 0.082 -0.197 - 5.915 0.586 -0.119 -0.092 -0.247 -0.219 0.055 -0.027 -0.182 0.160 -0.052 -0.106 -0.135 - 6.341 0.885 0.221 -0.033 -0.077 -0.042 0.200 -0.054 -0.140 0.039 0.004 -0.193 -0.229 - 6.169 0.543 0.070 -0.107 -0.081 -0.074 0.039 -0.050 -0.151 0.005 -0.063 0.047 0.023 - 5.758 0.281 0.065 -0.127 -0.205 -0.185 -0.052 0.038 -0.137 -0.111 -0.094 -0.061 -0.218 - 5.483 0.232 -0.045 -0.050 -0.257 -0.174 0.053 0.082 -0.129 -0.219 -0.136 -0.151 -0.125 - 5.424 0.259 -0.022 -0.017 -0.076 -0.130 -0.042 0.073 -0.035 -0.045 -0.242 -0.253 -0.093 - 5.656 0.178 -0.103 -0.110 -0.081 -0.089 -0.103 -0.015 -0.232 -0.154 -0.232 -0.084 -0.064 - 5.751 0.095 -0.012 -0.070 -0.169 -0.165 -0.138 -0.023 -0.039 -0.037 -0.138 -0.127 -0.086 - 5.988 -0.113 -0.150 -0.451 -0.062 -0.215 -0.081 -0.058 -0.047 -0.065 -0.110 0.034 -0.190 - 5.610 -0.041 0.156 -0.139 -0.151 -0.189 -0.043 -0.018 -0.097 -0.080 -0.134 -0.004 -0.060 - 5.338 -0.038 0.108 -0.205 -0.207 -0.144 -0.038 0.070 0.061 -0.028 -0.095 -0.066 -0.039 - 5.550 0.138 -0.016 -0.179 -0.102 0.045 0.077 -0.041 -0.214 -0.124 -0.195 -0.141 -0.156 - 5.281 -0.051 0.062 -0.083 -0.127 -0.045 0.010 -0.018 -0.047 0.221 0.006 -0.084 -0.106 - 4.710 0.054 0.154 0.176 -0.135 -0.099 -0.066 0.022 -0.152 -0.011 -0.099 -0.122 -0.172 - 5.259 0.156 0.187 0.037 -0.241 -0.078 -0.211 -0.066 -0.044 0.015 -0.137 -0.030 0.037 - 5.239 0.199 -0.006 -0.073 -0.249 -0.141 -0.058 -0.055 -0.196 -0.021 0.068 -0.025 -0.039 - 5.092 0.092 -0.238 -0.249 -0.243 -0.083 -0.172 -0.124 -0.224 -0.042 -0.130 -0.151 -0.168 - 4.837 0.086 -0.259 -0.032 -0.217 -0.176 -0.195 -0.096 -0.137 -0.068 -0.176 -0.217 -0.148 - 4.971 0.150 -0.270 0.113 -0.084 -0.014 0.022 -0.073 -0.182 -0.044 -0.117 -0.157 -0.099 - 4.771 0.169 -0.190 0.217 -0.134 -0.060 -0.234 -0.084 -0.219 -0.240 -0.126 -0.104 -0.049 - 4.185 0.159 -0.160 0.194 -0.073 -0.117 -0.010 0.079 0.071 0.160 0.070 -0.093 0.088 - 4.256 0.287 -0.215 0.150 -0.131 -0.091 0.101 0.246 0.056 -0.103 -0.076 -0.150 -0.002 - 4.442 0.158 -0.304 0.189 0.023 -0.103 0.174 0.189 -0.095 -0.129 -0.239 -0.246 -0.126 - 4.465 0.229 -0.296 0.080 -0.054 -0.102 0.168 0.026 -0.109 0.018 -0.096 -0.154 -0.130 - 4.267 0.248 -0.190 0.071 -0.216 -0.095 0.040 -0.004 -0.274 -0.176 -0.062 0.008 -0.144 - 4.446 0.443 -0.128 0.160 -0.058 -0.114 0.099 -0.026 -0.310 -0.231 -0.277 -0.038 -0.076 - 4.349 0.286 -0.080 0.161 -0.022 -0.038 -0.025 -0.054 -0.208 -0.093 -0.078 -0.081 -0.229 - 4.079 -0.055 -0.105 0.279 0.067 -0.145 0.090 -0.147 -0.345 -0.160 -0.044 -0.050 -0.142 - 4.418 -0.101 -0.015 0.141 -0.142 -0.159 0.012 0.065 -0.058 0.045 -0.092 -0.078 -0.017 - 4.803 0.165 -0.005 0.030 -0.152 -0.142 -0.093 0.086 -0.011 0.128 -0.205 -0.078 -0.179 - 4.888 0.383 0.010 0.163 -0.281 -0.077 -0.013 0.012 -0.128 -0.044 0.045 -0.011 -0.173 - 5.880 0.246 0.315 0.317 -0.350 -0.154 0.018 -0.044 -0.207 0.000 -0.112 -0.019 -0.129 - 5.792 0.083 0.108 0.479 -0.340 -0.208 -0.016 -0.181 -0.108 0.072 -0.034 0.003 -0.107 - 6.071 -0.081 0.077 0.623 -0.377 -0.120 -0.039 -0.208 -0.175 0.034 -0.010 0.071 -0.054 - 6.345 0.077 0.107 0.381 -0.403 -0.285 -0.165 -0.165 -0.256 0.042 -0.020 -0.073 -0.228 - 6.834 0.227 0.284 0.465 -0.363 -0.277 0.114 -0.006 0.038 0.048 -0.093 -0.123 -0.244 - 7.263 0.837 0.493 0.242 -0.372 -0.110 0.086 -0.278 -0.208 -0.245 -0.102 0.031 -0.083 - 7.754 0.614 0.294 0.224 -0.362 -0.045 -0.090 -0.181 -0.231 -0.070 -0.233 0.050 -0.121 - 8.058 0.642 0.058 0.155 -0.100 -0.169 -0.183 -0.300 -0.208 -0.068 -0.367 0.024 -0.007 - 8.455 0.834 0.207 0.203 -0.001 -0.065 -0.207 -0.332 -0.376 -0.028 -0.387 -0.084 -0.035 - 7.214 0.081 0.180 0.171 -0.082 -0.310 -0.360 -0.159 -0.098 -0.175 -0.238 -0.025 -0.048 - 8.148 -0.418 0.028 0.034 -0.085 -0.320 -0.064 -0.164 -0.184 0.084 -0.197 -0.035 -0.081 - 7.378 -0.235 0.222 0.088 -0.106 -0.275 -0.173 -0.139 -0.090 0.057 -0.171 -0.045 -0.029 - 6.849 -0.348 0.382 0.256 0.093 -0.024 -0.342 -0.151 -0.279 -0.224 -0.275 0.076 0.066 - 7.613 -0.379 0.421 0.114 0.000 -0.103 -0.156 -0.019 -0.192 -0.007 -0.050 -0.075 0.039 - 7.199 -0.114 0.518 0.017 -0.059 -0.055 -0.183 0.070 -0.115 -0.051 -0.169 -0.191 -0.159 - 6.883 -0.204 0.377 0.067 -0.165 -0.135 -0.280 0.010 -0.310 -0.135 -0.161 -0.089 -0.218 - 6.231 -0.225 0.349 0.140 -0.060 -0.049 -0.046 -0.056 -0.310 -0.161 -0.251 -0.033 -0.116 - 5.599 -0.279 0.246 0.040 -0.015 -0.102 -0.264 -0.050 -0.098 -0.122 -0.097 -0.018 -0.080 - 5.905 -0.048 0.294 0.025 0.244 0.320 -0.027 -0.029 -0.058 -0.229 -0.177 -0.035 -0.114 - 5.503 -0.143 0.230 0.053 0.109 0.098 -0.078 0.003 -0.125 -0.074 -0.209 -0.114 -0.173 - 5.241 -0.349 0.079 0.098 0.047 0.036 -0.025 -0.013 -0.033 -0.072 -0.269 -0.315 -0.253 - 6.270 0.350 0.098 -0.102 -0.077 -0.116 -0.354 -0.199 -0.165 -0.134 -0.167 -0.148 -0.255 - 6.391 0.946 0.500 -0.044 -0.081 -0.186 -0.348 -0.286 -0.123 -0.066 -0.092 -0.013 -0.149 - 5.058 -0.009 0.517 -0.042 0.098 -0.028 -0.181 -0.197 -0.090 -0.005 0.038 0.038 0.016 - 4.809 -0.161 0.063 -0.195 -0.187 -0.131 -0.152 -0.189 -0.115 -0.021 0.125 0.114 -0.083 - 4.805 -0.082 0.110 -0.079 -0.217 -0.127 -0.097 -0.151 0.041 -0.056 0.044 0.027 -0.037 - 4.214 -0.170 -0.009 -0.028 0.034 -0.127 -0.145 -0.093 -0.074 0.097 0.164 0.068 -0.024 - 4.449 -0.145 0.112 0.013 -0.051 -0.179 0.013 -0.059 -0.049 -0.014 -0.034 -0.020 0.001 - 4.500 -0.248 0.056 0.127 0.047 -0.121 -0.087 -0.154 -0.150 -0.095 -0.041 -0.067 -0.009 - 4.236 0.318 0.063 0.163 -0.002 -0.135 -0.078 -0.108 -0.232 -0.139 -0.118 0.108 0.005 - 4.190 0.097 -0.007 0.096 -0.101 0.028 -0.062 -0.132 -0.134 -0.144 0.061 0.015 -0.216 - 4.131 -0.077 -0.144 0.031 -0.253 0.166 0.112 0.096 -0.014 -0.055 0.016 0.110 0.020 - 4.507 -0.071 -0.256 0.068 -0.155 -0.134 -0.140 -0.103 -0.075 0.019 0.050 0.089 0.002 - 4.546 0.178 0.039 0.124 -0.063 0.050 -0.096 -0.190 -0.067 0.017 -0.065 0.035 -0.081 - 3.803 0.126 -0.057 -0.020 -0.146 -0.114 0.040 -0.032 -0.043 -0.206 -0.002 0.107 -0.032 - 3.961 0.103 0.001 -0.080 -0.102 -0.108 0.046 0.062 -0.158 -0.151 0.073 0.127 -0.015 - 3.957 -0.260 -0.019 -0.077 -0.057 -0.097 -0.083 0.169 0.057 -0.108 -0.001 0.119 0.009 - 4.337 0.001 -0.006 0.005 0.012 -0.041 0.094 -0.045 -0.244 0.007 -0.217 -0.225 0.008 - 4.414 0.021 0.099 -0.105 -0.160 0.069 0.106 -0.160 -0.337 -0.082 -0.067 -0.043 -0.016 - 4.728 -0.136 0.322 -0.076 -0.027 -0.032 -0.125 0.049 -0.039 -0.095 -0.153 -0.083 -0.088 - 4.561 -0.292 0.322 0.021 0.099 -0.097 -0.252 -0.024 -0.058 -0.177 -0.147 -0.029 -0.065 - 4.488 -0.442 0.177 -0.074 0.163 0.093 -0.187 -0.033 -0.163 -0.044 -0.120 -0.027 0.104 - 4.767 -0.377 0.251 0.113 0.078 0.082 -0.137 -0.074 -0.269 -0.051 -0.302 -0.148 0.165 - 4.819 -0.367 0.132 0.060 -0.074 0.013 -0.145 -0.010 -0.179 0.174 0.050 0.114 0.038 - 5.336 -0.483 0.247 0.028 -0.043 -0.023 0.035 -0.038 0.018 0.096 -0.068 -0.034 -0.103 - 5.478 -0.602 0.098 -0.073 -0.011 -0.079 -0.097 -0.188 -0.181 -0.089 0.009 -0.032 -0.050 - 5.138 -0.158 0.140 0.118 -0.146 0.000 -0.073 -0.075 -0.134 -0.072 -0.083 -0.264 -0.171 - 4.639 -0.370 0.066 0.098 -0.088 0.022 -0.014 -0.064 -0.092 -0.081 -0.203 -0.238 -0.202 - 4.862 -0.191 0.042 0.065 -0.399 -0.275 -0.232 0.016 -0.016 0.049 -0.033 0.100 -0.149 - 4.343 0.355 0.247 0.097 -0.223 -0.286 -0.132 0.127 -0.079 -0.132 -0.267 -0.063 0.073 - 4.457 -0.100 0.257 0.138 -0.131 0.071 -0.070 0.079 -0.109 -0.147 -0.127 -0.107 0.052 - 4.999 0.308 0.333 0.062 -0.344 0.088 -0.180 -0.059 -0.040 -0.059 0.007 0.063 -0.077 - 5.270 0.492 0.384 -0.073 -0.284 0.042 0.007 0.018 0.032 -0.077 -0.011 0.042 -0.069 - 5.596 0.491 0.327 0.060 -0.242 -0.089 0.005 0.054 -0.067 -0.020 -0.165 0.068 -0.013 - 6.103 0.388 0.256 -0.086 -0.357 0.059 0.009 0.009 -0.093 -0.066 -0.013 -0.066 -0.200 - 6.751 0.328 0.299 0.133 -0.299 -0.054 -0.022 -0.245 -0.117 -0.063 -0.109 -0.042 -0.137 - 7.244 0.201 0.077 0.077 -0.214 -0.109 -0.093 -0.250 -0.101 -0.067 -0.073 -0.084 -0.095 - 6.926 0.107 0.225 -0.098 -0.225 0.019 -0.089 -0.024 -0.058 -0.103 -0.159 -0.014 -0.094 - 6.716 0.192 0.116 -0.135 -0.287 0.102 -0.102 -0.020 0.061 -0.065 -0.245 0.144 -0.014 - 6.765 0.321 -0.012 0.011 -0.282 0.047 -0.137 -0.012 -0.094 -0.057 -0.176 0.160 -0.086 - 6.982 0.277 0.170 0.065 -0.207 -0.009 0.020 -0.191 -0.251 -0.036 -0.237 -0.019 -0.175 - 6.419 -0.003 0.252 0.320 -0.187 -0.193 -0.329 -0.131 -0.038 0.074 -0.058 0.068 -0.145 - 7.266 -0.609 0.160 -0.051 -0.353 -0.390 -0.323 -0.123 0.035 0.199 0.024 0.304 0.235 - 7.863 -0.338 0.295 -0.016 -0.246 -0.097 -0.175 0.005 -0.050 0.081 0.023 -0.065 0.007 - 7.897 -0.232 0.297 0.124 -0.252 -0.191 -0.235 -0.173 -0.205 -0.099 -0.041 -0.035 -0.069 - 8.013 -0.494 0.161 0.157 -0.231 -0.090 -0.179 -0.366 -0.161 -0.056 0.049 0.058 -0.119 - 7.931 -0.530 0.031 0.126 -0.327 -0.069 -0.139 -0.207 -0.048 0.056 0.059 0.113 0.006 - 7.623 -0.497 0.118 -0.053 -0.464 -0.133 -0.136 -0.308 -0.188 0.071 -0.000 -0.095 0.041 - 7.939 -0.496 0.015 0.115 -0.362 -0.105 -0.166 -0.356 -0.157 -0.006 -0.127 0.007 -0.108 - 8.006 -0.515 0.054 0.103 -0.516 -0.350 -0.153 -0.306 -0.106 -0.151 -0.110 0.077 -0.060 - 7.417 -0.643 -0.109 0.101 -0.571 -0.293 -0.078 -0.331 -0.095 -0.022 0.025 0.075 -0.059 - 7.254 -0.552 0.055 0.051 -0.266 -0.127 0.117 -0.374 -0.092 0.025 0.019 -0.139 -0.086 - 7.148 -0.634 -0.105 0.137 -0.270 -0.270 0.090 -0.253 -0.115 -0.071 0.011 0.020 -0.103 - 7.323 -0.924 -0.192 0.165 -0.407 -0.288 0.079 -0.377 -0.150 -0.138 -0.036 0.018 -0.019 - 6.852 -1.121 -0.353 0.037 -0.153 -0.253 -0.223 -0.417 -0.125 -0.054 0.074 0.184 -0.087 - 6.781 -0.753 -0.214 0.125 -0.188 -0.143 -0.283 -0.349 -0.180 -0.029 0.012 0.142 -0.137 - 6.355 -0.656 -0.183 0.179 -0.067 0.059 -0.181 -0.463 -0.372 -0.024 -0.031 0.123 -0.086 - 6.158 -0.127 -0.070 -0.049 -0.460 -0.180 -0.103 -0.077 0.036 -0.034 -0.109 0.038 -0.015 - 5.485 0.093 0.224 -0.137 -0.500 -0.053 -0.036 -0.141 -0.101 -0.012 -0.088 -0.043 -0.014 - 5.398 0.729 0.138 -0.045 -0.223 -0.119 -0.424 -0.253 -0.219 -0.094 -0.146 -0.011 -0.095 - 6.905 0.889 -0.294 -0.001 -0.437 0.014 -0.427 -0.400 -0.071 -0.059 -0.171 -0.027 0.023 - 7.501 0.927 -0.501 0.107 -0.568 0.098 -0.491 -0.506 -0.042 0.006 -0.190 -0.067 0.093 - 7.752 0.790 -0.378 0.026 -0.529 0.128 -0.473 -0.538 -0.039 0.076 -0.211 -0.075 0.112 - 7.485 0.932 -0.417 0.121 -0.563 0.147 -0.419 -0.600 -0.003 0.041 -0.197 -0.056 0.090 - 7.180 1.031 -0.375 0.153 -0.497 0.088 -0.364 -0.661 -0.039 0.035 -0.194 -0.015 0.047 - 6.928 0.979 -0.261 0.163 -0.369 0.069 -0.316 -0.576 -0.150 0.020 -0.175 -0.058 -0.022 - 6.685 0.873 -0.229 0.179 -0.236 0.105 -0.243 -0.563 -0.154 -0.037 -0.272 -0.052 -0.015 - 5.960 0.882 -0.111 0.260 -0.175 0.034 -0.071 -0.402 -0.104 -0.075 -0.370 -0.245 0.041 - 5.509 0.693 -0.066 0.217 -0.082 0.069 -0.128 -0.310 -0.027 -0.091 -0.205 -0.015 0.011 - 5.260 0.764 0.118 -0.075 -0.123 -0.092 -0.412 -0.300 -0.036 -0.068 -0.024 0.069 0.074 - 4.793 0.668 0.195 0.181 -0.045 -0.210 -0.383 -0.320 0.034 -0.044 -0.063 0.010 0.075 - 4.688 0.616 0.167 0.110 -0.012 -0.216 -0.344 -0.266 -0.170 -0.007 0.057 0.131 0.050 - 4.612 0.514 -0.063 0.018 -0.041 0.077 -0.251 -0.238 -0.067 -0.001 0.026 0.031 0.040 - 4.625 0.637 0.109 0.024 -0.214 0.037 -0.347 -0.233 -0.016 -0.015 0.048 0.056 0.042 - 4.764 0.746 0.001 -0.031 -0.078 0.119 -0.130 -0.221 -0.015 -0.024 -0.029 -0.060 -0.001 - 5.445 0.776 -0.025 -0.260 -0.138 -0.011 -0.047 -0.118 -0.123 0.139 0.082 -0.031 0.051 - 5.848 0.938 -0.249 -0.258 -0.074 0.027 -0.010 -0.031 -0.003 0.186 -0.063 -0.067 0.002 - 5.989 1.053 -0.478 -0.267 -0.092 0.041 0.079 -0.047 -0.079 0.319 -0.034 -0.174 -0.090 - 6.173 1.112 -0.569 -0.242 -0.076 0.097 -0.084 -0.097 -0.039 0.240 -0.135 -0.134 -0.037 - 6.096 1.064 -0.425 -0.242 -0.258 0.071 -0.085 -0.121 -0.073 0.245 -0.082 -0.181 0.066 - 5.821 0.805 -0.332 -0.176 -0.163 -0.073 -0.158 -0.061 -0.048 0.223 -0.046 -0.013 0.039 - 5.587 0.691 -0.308 0.056 -0.204 -0.116 -0.209 -0.137 -0.040 0.106 0.050 0.024 0.117 - 5.180 0.608 -0.165 0.225 -0.262 0.002 -0.091 -0.146 -0.057 0.249 0.157 0.003 0.093 - 4.375 0.531 -0.086 0.093 -0.210 -0.109 -0.049 -0.086 -0.093 0.135 -0.004 -0.073 -0.104 - 4.530 0.435 -0.174 0.127 -0.134 -0.013 0.099 -0.105 -0.097 0.114 0.001 0.114 0.022 - 3.909 0.498 0.064 0.309 0.032 -0.042 -0.011 -0.014 0.089 0.040 -0.068 0.087 0.033 - 3.816 0.365 -0.193 0.123 0.109 0.170 -0.155 -0.078 0.058 0.056 -0.072 0.048 -0.049 - 3.702 0.367 -0.205 0.025 -0.108 0.005 -0.229 -0.123 -0.123 -0.125 -0.007 -0.075 -0.060 - 3.463 0.272 0.009 0.257 -0.037 -0.108 -0.245 -0.161 -0.011 -0.108 0.019 -0.022 -0.036 - 3.626 0.476 0.135 0.323 0.076 -0.025 -0.079 -0.180 -0.236 -0.023 0.101 -0.064 -0.021 - 3.737 0.463 -0.127 0.054 0.088 -0.087 -0.178 -0.095 -0.055 0.133 0.051 -0.071 0.068 - 5.465 0.177 0.354 0.321 -0.011 0.120 -0.078 -0.316 -0.084 -0.108 -0.054 -0.222 -0.011 - 7.529 -0.129 -0.004 0.184 0.065 0.235 -0.263 -0.372 -0.031 0.015 -0.021 -0.394 0.028 - 5.619 -0.148 -0.217 0.063 -0.045 0.229 -0.189 -0.266 0.169 0.268 0.223 -0.288 -0.082 - 3.822 0.009 -0.002 0.113 -0.023 0.131 -0.063 -0.033 -0.011 0.072 0.098 -0.017 0.071 - 4.589 -0.084 0.115 -0.079 0.036 0.058 -0.043 -0.210 -0.272 -0.037 -0.011 -0.009 0.017 - 4.772 -0.169 -0.120 0.079 0.104 -0.037 -0.060 -0.126 -0.153 -0.141 -0.112 0.006 -0.016 - 5.807 -0.684 -0.075 0.102 -0.182 -0.046 0.065 -0.313 0.036 0.136 0.021 -0.025 -0.086 - 6.310 -0.465 -0.027 0.138 -0.429 0.031 0.068 -0.323 -0.140 0.124 -0.024 -0.078 -0.174 - 6.345 -0.963 -0.161 0.180 -0.284 0.166 -0.057 -0.163 -0.045 0.172 0.070 0.065 -0.126 - 5.899 -0.294 0.000 0.200 -0.080 0.060 -0.015 -0.134 -0.208 0.095 0.043 -0.161 -0.038 - 6.192 0.008 0.036 0.085 0.058 -0.105 -0.190 -0.426 -0.257 0.201 -0.051 -0.118 -0.043 - 5.828 -0.024 0.352 0.089 -0.212 -0.105 -0.132 -0.174 0.043 0.007 0.022 0.013 -0.024 - 5.543 0.241 0.263 0.148 -0.057 -0.138 -0.198 -0.208 -0.108 -0.095 -0.060 -0.117 -0.011 - 5.217 0.047 -0.122 0.097 -0.052 0.010 -0.129 -0.218 -0.057 -0.169 -0.134 -0.070 0.005 - 5.333 0.001 0.016 0.073 -0.127 -0.040 -0.077 -0.146 -0.143 -0.052 -0.123 -0.173 -0.074 - 5.090 0.180 0.044 0.013 -0.142 -0.095 0.010 -0.186 -0.088 -0.085 -0.097 -0.190 -0.265 - 5.032 0.037 0.068 0.001 -0.239 -0.131 -0.010 -0.175 -0.190 -0.101 -0.124 0.008 -0.093 - 4.498 0.306 -0.034 0.068 -0.044 0.039 -0.125 -0.126 -0.091 0.013 -0.006 -0.024 0.040 - 4.142 0.410 0.084 -0.119 -0.246 -0.045 -0.138 -0.118 -0.206 -0.147 -0.022 0.016 -0.177 - 4.637 -0.144 -0.140 -0.001 -0.321 0.018 -0.245 -0.182 -0.066 -0.156 -0.132 0.073 0.009 - 5.147 -0.208 -0.131 -0.034 -0.202 0.026 0.031 -0.165 -0.036 0.024 0.016 0.004 -0.032 - 5.204 0.007 0.067 -0.120 -0.221 0.125 0.041 -0.156 -0.059 -0.000 -0.107 0.025 0.070 - 5.809 -0.690 0.078 0.081 0.039 0.090 -0.207 -0.219 -0.158 0.022 0.036 -0.020 -0.043 - 5.334 -0.363 0.075 -0.007 -0.171 -0.064 -0.166 -0.168 -0.053 0.102 0.028 0.010 -0.049 - 5.812 0.394 0.389 -0.052 -0.353 -0.244 -0.349 -0.119 -0.294 -0.145 -0.141 -0.040 0.006 - 5.500 -0.021 0.105 0.174 -0.095 -0.232 -0.206 -0.285 -0.279 0.064 -0.091 0.075 -0.086 - 7.011 -0.206 0.051 0.128 -0.397 -0.373 -0.180 -0.168 -0.290 0.078 -0.001 -0.100 0.126 - 7.045 -0.246 0.150 0.189 -0.593 -0.306 -0.169 -0.307 -0.133 0.116 -0.079 -0.153 -0.003 - 6.476 -0.220 0.103 0.532 -0.758 -0.332 -0.279 -0.324 -0.259 0.054 0.053 0.058 -0.177 - 6.355 -0.195 0.050 0.418 -0.832 -0.383 -0.264 0.000 -0.278 0.019 -0.039 0.046 -0.119 - 5.331 -0.173 -0.056 0.280 -0.319 -0.143 -0.249 -0.049 -0.272 0.065 -0.118 -0.001 -0.245 - 4.885 -0.087 0.192 0.183 -0.375 -0.325 -0.232 -0.105 -0.235 0.058 -0.191 -0.034 -0.079 - 4.976 0.013 0.376 0.202 -0.277 -0.265 -0.157 -0.217 -0.273 -0.097 -0.013 0.033 0.001 - 4.867 0.335 0.192 0.275 -0.332 -0.030 -0.108 -0.032 -0.276 -0.215 -0.118 -0.081 -0.070 - 4.510 0.115 0.139 0.183 -0.131 -0.148 -0.056 -0.095 -0.141 -0.114 -0.384 -0.144 -0.062 - 5.184 0.117 0.112 -0.012 -0.314 -0.226 -0.099 -0.236 -0.181 -0.110 -0.246 0.004 0.024 - 5.047 -0.259 0.157 0.080 -0.312 -0.162 -0.184 -0.286 -0.130 -0.263 0.113 0.215 0.004 - 5.881 -0.098 -0.165 0.361 -0.310 -0.467 -0.457 -0.406 -0.071 -0.300 -0.022 0.350 0.155 - 6.777 -0.263 -0.468 0.218 -0.526 -0.501 -0.700 -0.474 -0.085 -0.325 -0.164 0.431 0.082 - 7.446 -0.209 -0.298 0.188 -0.491 -0.333 -0.725 -0.312 0.019 -0.213 -0.348 0.439 -0.101 - 7.584 -0.224 -0.349 0.069 -0.615 -0.348 -0.827 -0.225 0.133 -0.045 -0.342 0.414 -0.212 - 7.547 -0.267 -0.335 -0.000 -0.611 -0.259 -0.676 -0.094 0.281 0.085 -0.447 0.290 -0.260 - 7.652 -0.020 -0.233 0.037 -0.622 -0.325 -0.713 -0.136 0.318 0.181 -0.468 0.201 -0.172 - 7.464 0.106 -0.330 -0.230 -0.721 -0.335 -0.677 -0.222 0.271 0.070 -0.486 0.204 -0.171 - 7.383 0.157 0.217 -0.245 -0.529 -0.274 -0.621 -0.125 0.141 -0.045 -0.101 0.254 -0.257 - 6.969 0.275 -0.113 -0.099 -0.384 -0.234 -0.718 -0.199 0.054 0.039 -0.250 0.345 -0.200 - 6.475 0.408 -0.152 -0.137 -0.370 -0.160 -0.466 -0.245 0.089 0.052 -0.114 0.078 -0.135 - 5.874 0.393 -0.208 -0.108 -0.274 -0.156 -0.357 -0.004 0.198 0.056 -0.285 0.012 -0.130 - 5.836 0.590 0.032 -0.009 -0.394 -0.278 -0.271 -0.197 -0.030 0.198 -0.217 0.067 -0.145 - 5.575 0.544 -0.114 -0.022 -0.244 -0.146 -0.204 -0.218 -0.286 -0.073 -0.160 -0.065 -0.199 - 5.387 0.498 -0.307 -0.182 -0.237 -0.363 -0.304 -0.332 -0.198 0.022 -0.145 -0.138 -0.134 - 5.410 0.352 -0.173 -0.186 -0.400 -0.215 -0.249 -0.286 -0.094 0.057 -0.083 -0.080 0.019 - 5.595 0.382 -0.302 -0.170 -0.388 -0.206 -0.287 -0.377 -0.233 0.050 -0.116 -0.020 0.004 - 5.739 0.328 -0.093 -0.125 -0.219 -0.297 -0.283 -0.311 -0.069 -0.014 -0.171 0.025 -0.094 - 5.891 0.299 0.024 -0.030 -0.133 -0.153 -0.221 -0.098 -0.153 -0.041 -0.273 -0.038 -0.101 - 5.967 0.266 -0.105 -0.019 -0.137 -0.032 -0.182 -0.284 -0.227 -0.163 -0.253 0.016 -0.032 - 6.032 0.487 0.069 -0.317 -0.207 -0.170 -0.216 -0.264 -0.196 -0.075 -0.182 -0.060 -0.013 - 5.788 0.661 0.166 -0.253 -0.371 -0.165 -0.295 -0.265 -0.156 -0.079 -0.196 -0.081 0.045 - 7.505 -0.224 0.004 -0.151 -0.269 -0.316 -0.228 -0.208 -0.200 -0.053 -0.126 0.065 0.027 - 6.550 -0.011 -0.055 -0.392 -0.544 -0.409 -0.231 -0.170 -0.216 -0.104 -0.190 0.003 0.022 - 5.908 0.628 -0.001 -0.412 -0.415 0.142 -0.304 -0.024 -0.143 -0.338 -0.142 -0.206 -0.133 - 5.913 0.681 -0.013 -0.387 -0.417 -0.059 -0.296 -0.041 -0.095 -0.120 -0.118 -0.124 -0.197 - 6.065 0.738 -0.285 -0.551 -0.389 0.021 -0.388 -0.104 -0.187 0.069 -0.019 -0.053 -0.164 - 6.552 0.777 -0.501 -0.509 -0.297 0.180 -0.479 -0.123 -0.080 0.107 -0.105 -0.114 -0.208 - 6.680 0.351 -0.603 -0.320 -0.340 0.215 -0.404 -0.057 0.033 -0.004 -0.219 -0.199 -0.313 - 7.177 0.084 -0.718 -0.310 -0.645 0.009 -0.398 0.164 0.191 -0.045 -0.280 0.067 -0.032 - 7.558 0.092 -0.729 -0.115 -0.608 -0.139 -0.531 0.180 0.207 -0.098 -0.285 0.167 -0.153 - 7.785 -0.125 -0.719 -0.073 -0.644 -0.226 -0.409 0.356 0.109 0.018 -0.232 0.255 -0.132 - 7.431 -0.292 -0.635 0.054 -0.737 -0.407 -0.258 0.176 -0.052 0.112 -0.172 0.022 -0.286 - 7.405 -0.204 -0.453 0.210 -0.659 -0.394 -0.146 0.121 -0.144 0.255 -0.234 0.015 -0.207 - 7.071 -0.355 -0.345 0.245 -0.773 -0.477 -0.163 -0.011 -0.283 0.037 -0.110 0.136 -0.046 - 6.554 -0.447 -0.217 0.355 -0.582 -0.431 0.053 -0.021 -0.183 0.008 -0.097 0.130 -0.066 - 5.879 -0.261 -0.338 0.234 -0.359 -0.138 0.062 -0.202 -0.253 0.022 -0.152 0.027 -0.060 - 6.251 -0.258 0.013 0.159 -0.200 -0.179 -0.228 -0.137 -0.037 -0.101 -0.205 -0.156 0.025 - 6.326 -0.206 0.125 -0.029 -0.042 -0.103 -0.275 -0.160 -0.048 -0.114 -0.220 -0.054 -0.021 - 7.694 -0.429 0.062 0.160 -0.141 -0.131 -0.436 -0.292 -0.172 -0.164 -0.149 -0.181 -0.124 - 8.127 -0.722 -0.002 0.231 -0.040 0.008 -0.304 -0.259 -0.182 -0.161 -0.049 -0.011 -0.168 - 7.712 -0.383 -0.126 -0.022 -0.040 -0.102 -0.288 -0.168 -0.052 -0.020 0.072 -0.133 -0.109 - 7.732 -0.173 -0.173 -0.179 -0.202 -0.094 -0.116 -0.295 -0.110 0.023 -0.076 -0.284 -0.065 - 6.936 -0.079 -0.298 -0.006 -0.531 -0.022 -0.062 -0.085 -0.133 0.029 -0.087 -0.199 -0.058 - 7.040 -0.218 -0.308 0.100 -0.431 -0.250 -0.290 -0.346 -0.278 -0.105 -0.002 0.154 -0.104 - 8.343 -0.307 -0.278 0.171 -0.346 -0.169 -0.315 -0.200 -0.035 0.087 0.003 0.094 -0.128 - 6.890 -0.371 -0.143 0.117 -0.291 -0.075 -0.197 -0.014 -0.279 0.072 0.066 0.093 -0.089 - 6.061 -0.098 -0.079 0.167 -0.262 -0.101 -0.109 -0.220 -0.315 0.055 0.086 0.003 -0.077 - 6.711 -0.414 -0.140 0.352 -0.613 -0.157 -0.134 -0.078 -0.183 0.087 0.130 0.011 -0.046 - 6.739 -0.284 -0.140 0.325 -0.446 -0.078 -0.307 -0.148 -0.282 -0.021 0.064 0.119 -0.041 - 6.969 -0.315 -0.315 0.148 -0.426 -0.172 -0.240 -0.266 -0.242 0.212 -0.060 -0.050 -0.192 - 6.857 -0.292 -0.115 0.294 -0.317 -0.080 -0.131 -0.417 -0.451 -0.005 -0.352 -0.158 -0.149 - 7.407 -0.386 -0.138 0.250 -0.134 -0.037 -0.229 -0.320 -0.385 -0.140 -0.260 -0.072 -0.180 - 7.130 -0.438 -0.012 0.312 -0.110 -0.131 -0.121 -0.180 -0.265 -0.207 -0.184 -0.188 -0.380 - 6.755 -0.269 0.238 0.197 -0.279 -0.056 -0.139 -0.333 -0.330 -0.022 -0.277 -0.098 -0.160 - 6.358 -0.273 0.403 0.371 -0.384 -0.087 -0.094 -0.353 -0.264 0.170 -0.272 -0.089 -0.155 - 6.082 -0.359 0.299 0.200 -0.323 -0.052 0.119 -0.324 -0.358 0.045 -0.539 -0.180 -0.114 - 6.162 -0.203 0.482 0.376 -0.393 -0.130 0.177 -0.186 -0.298 0.050 -0.538 -0.225 -0.171 - 7.447 0.025 0.136 0.196 -0.486 -0.116 -0.090 -0.269 -0.256 0.069 -0.319 0.008 -0.014 - 7.664 0.118 0.191 -0.182 -0.503 -0.101 -0.198 -0.356 -0.320 -0.183 -0.202 -0.026 -0.018 - 7.305 0.155 0.065 -0.058 -0.537 -0.027 -0.219 -0.353 -0.279 -0.055 -0.236 0.037 -0.079 - 6.074 0.007 0.149 0.022 -0.453 -0.016 -0.210 -0.313 -0.224 -0.107 -0.012 -0.073 -0.098 - 6.213 -0.059 0.213 0.116 -0.377 -0.122 -0.318 -0.473 -0.278 -0.161 -0.025 0.136 -0.009 - 6.172 -0.114 -0.175 0.093 -0.503 -0.047 -0.270 -0.282 -0.060 0.089 -0.042 0.194 -0.010 - 6.210 -0.447 -0.361 0.066 -0.424 0.092 -0.084 -0.238 -0.192 0.130 -0.034 0.012 -0.100 - 6.258 -0.572 -0.194 0.121 -0.480 -0.104 -0.437 -0.294 -0.175 0.058 -0.103 -0.084 0.023 - 5.936 0.114 -0.038 0.253 -0.421 -0.392 -0.472 -0.402 -0.122 -0.019 -0.123 -0.094 0.033 - 4.395 0.091 -0.114 0.240 -0.304 -0.145 -0.208 -0.234 -0.095 -0.068 -0.201 -0.014 -0.032 - 3.803 0.189 -0.003 0.347 -0.124 -0.100 -0.150 -0.088 -0.118 0.046 -0.240 0.057 0.041 - 3.778 0.292 -0.026 0.151 -0.133 -0.082 -0.040 -0.058 -0.047 -0.017 -0.123 0.154 -0.128 - 3.679 0.158 -0.035 0.062 0.077 0.050 -0.134 -0.123 -0.024 -0.106 -0.118 -0.208 -0.252 - 3.687 0.098 -0.145 0.037 0.089 0.187 -0.040 -0.160 -0.055 -0.001 -0.196 -0.069 -0.340 - 4.485 0.283 -0.164 -0.109 -0.051 0.026 -0.367 -0.112 -0.097 0.155 0.033 0.018 -0.063 - 6.566 0.312 -0.466 -0.230 -0.442 0.066 -0.775 -0.137 -0.052 0.308 -0.166 0.016 0.030 - 7.305 0.195 -0.470 -0.345 -0.537 0.026 -0.866 -0.084 0.015 0.097 -0.373 0.005 -0.023 - 7.535 0.022 -0.537 -0.268 -0.544 0.117 -0.909 -0.108 0.012 0.022 -0.428 -0.011 -0.111 - 7.548 -0.038 -0.672 -0.205 -0.522 0.194 -0.948 -0.203 -0.107 0.002 -0.434 0.031 -0.138 - 7.694 0.134 -0.619 -0.223 -0.632 0.208 -0.832 0.049 -0.115 -0.013 -0.436 0.013 -0.156 - 7.760 0.199 -0.606 -0.231 -0.544 0.181 -0.848 -0.007 -0.042 -0.072 -0.465 0.161 -0.190 - 7.784 -0.066 -0.677 -0.330 -0.536 -0.069 -0.942 0.023 -0.093 -0.222 -0.408 0.184 -0.253 - 8.163 -0.179 -0.572 -0.138 -0.472 -0.106 -0.806 0.161 -0.030 0.023 -0.400 0.128 -0.483 - 7.914 -0.043 -0.671 -0.162 -0.724 -0.241 -0.532 0.257 0.106 -0.090 -0.352 0.179 -0.527 - 7.379 -0.026 -0.659 -0.166 -0.695 -0.286 -0.616 0.288 0.207 -0.064 -0.321 0.254 -0.306 - 6.810 -0.022 -0.536 -0.065 -0.480 -0.307 -0.637 0.250 0.098 -0.012 -0.161 0.314 -0.261 - 6.459 0.028 -0.370 0.097 -0.588 -0.397 -0.576 0.150 0.005 0.050 -0.043 0.163 -0.637 - 6.517 0.116 -0.451 0.095 -0.586 -0.454 -0.622 0.168 0.123 0.108 0.164 0.187 -0.234 - 6.387 0.260 -0.418 0.116 -0.670 -0.353 -0.726 0.121 0.157 -0.065 -0.057 0.121 -0.195 - 6.313 0.006 -0.520 0.156 -0.652 -0.271 -0.717 -0.050 0.029 -0.142 0.009 0.230 -0.120 - 6.002 0.274 -0.530 0.210 -0.537 -0.245 -0.639 -0.093 -0.064 -0.139 -0.069 0.154 -0.139 - 5.677 0.239 -0.289 0.082 -0.396 -0.223 -0.555 -0.110 0.127 -0.092 -0.029 0.325 -0.116 - 5.358 0.242 -0.151 0.128 -0.277 -0.220 -0.603 -0.205 -0.058 -0.179 0.094 0.170 -0.204 - 4.952 0.156 -0.148 0.100 -0.290 -0.142 -0.367 0.037 0.077 -0.083 -0.135 -0.009 -0.128 - 4.709 0.344 -0.122 0.108 -0.229 -0.276 -0.305 0.033 -0.074 -0.030 -0.042 0.087 -0.044 - 4.373 0.208 -0.235 -0.059 -0.192 -0.213 -0.505 0.025 -0.181 0.048 0.018 0.025 -0.057 - 4.486 0.159 -0.210 0.172 0.081 -0.033 -0.134 0.018 0.027 0.004 -0.069 0.085 -0.279 - 4.222 0.292 -0.122 0.194 -0.173 0.022 -0.318 -0.043 -0.000 0.007 0.010 0.022 -0.209 - 4.296 0.224 -0.166 0.150 -0.103 0.045 -0.333 -0.045 -0.041 -0.109 -0.011 0.134 -0.013 - 3.928 0.138 -0.222 0.061 -0.159 0.122 -0.130 0.024 0.031 -0.133 0.003 0.122 0.047 - 3.742 0.035 -0.372 0.129 -0.074 0.012 -0.220 -0.135 0.024 0.001 0.049 0.052 -0.081 - 3.689 0.055 -0.454 0.151 -0.034 -0.017 -0.125 0.018 0.165 0.079 0.093 0.170 0.021 - 3.700 0.284 -0.416 0.193 0.045 0.134 -0.163 -0.029 -0.004 -0.101 0.058 -0.001 -0.134 - 3.753 0.314 -0.188 0.132 0.114 -0.015 -0.172 -0.105 0.048 0.016 -0.116 0.206 0.045 - 3.495 0.119 -0.342 -0.018 0.017 0.022 -0.039 -0.005 0.157 -0.020 -0.029 0.062 0.065 - 3.405 0.283 -0.043 -0.011 -0.087 0.104 -0.238 -0.057 0.122 0.023 -0.083 0.098 0.099 - 3.413 0.274 -0.086 -0.023 -0.211 -0.138 -0.092 -0.045 0.016 -0.081 0.053 0.027 -0.082 - 3.311 -0.004 -0.386 -0.035 0.021 0.003 -0.095 -0.048 0.039 0.043 0.107 0.056 -0.051 - 3.593 0.215 -0.416 0.059 0.078 0.024 -0.189 -0.033 -0.034 -0.045 -0.019 -0.049 -0.062 - 3.423 0.262 -0.199 -0.070 0.117 0.095 -0.095 -0.194 -0.113 -0.094 0.154 0.123 -0.013 - 3.464 0.285 -0.081 0.001 0.133 0.048 -0.168 -0.164 -0.051 0.015 -0.107 0.204 0.148 - 3.497 0.361 0.007 -0.028 -0.129 0.010 -0.058 -0.054 -0.055 -0.081 -0.050 0.052 -0.157 - 3.518 0.192 -0.301 0.139 0.018 -0.120 -0.194 -0.121 -0.041 0.141 -0.037 -0.004 -0.027 - 3.304 0.077 -0.259 0.000 -0.088 -0.057 -0.067 0.056 0.072 0.127 -0.146 -0.041 0.079 - 3.392 0.129 -0.166 0.016 -0.041 0.078 -0.192 -0.059 -0.201 0.044 -0.065 0.035 -0.013 - 3.568 0.113 -0.228 0.087 -0.060 -0.043 -0.069 -0.191 -0.115 0.062 0.061 0.131 -0.028 - 3.233 0.014 -0.159 0.122 0.037 0.142 -0.105 -0.237 -0.042 0.217 0.110 0.161 0.046 - 3.529 0.198 -0.172 0.186 -0.008 0.072 -0.191 -0.220 -0.128 0.055 0.081 0.203 -0.019 - 3.615 0.170 -0.207 0.064 -0.134 -0.023 -0.121 -0.141 -0.018 -0.055 0.105 0.171 -0.046 - 3.506 0.145 -0.223 -0.048 -0.232 -0.046 -0.053 -0.157 -0.094 0.065 0.116 0.162 -0.017 - 3.449 0.188 0.001 0.064 -0.007 0.094 -0.257 -0.213 -0.076 -0.030 0.028 -0.042 -0.095 - 3.202 0.039 -0.160 0.143 -0.116 -0.003 -0.163 -0.126 -0.030 0.031 0.017 -0.080 -0.141 - 3.183 0.042 -0.445 -0.011 0.099 -0.071 -0.171 0.010 0.099 -0.027 -0.052 0.057 -0.007 - 3.186 0.212 -0.206 0.108 0.088 0.097 -0.250 -0.194 -0.059 0.001 -0.052 -0.013 -0.021 - 3.161 0.329 -0.025 0.002 -0.124 0.050 -0.160 -0.235 0.081 -0.000 0.053 -0.005 0.020 - 3.323 0.302 -0.242 -0.040 -0.035 -0.108 -0.318 -0.195 0.008 0.040 0.141 -0.052 -0.031 - 3.134 -0.044 -0.169 -0.031 -0.279 0.056 -0.010 -0.025 -0.097 0.025 0.276 0.140 0.064 - 3.270 0.189 -0.194 -0.202 -0.024 0.098 -0.022 -0.024 -0.183 0.049 0.236 0.221 0.057 - 3.399 0.235 -0.150 -0.113 -0.276 -0.077 -0.200 -0.167 -0.107 -0.082 -0.128 0.174 0.089 - 3.491 0.305 -0.093 0.029 -0.051 -0.055 -0.052 -0.159 0.092 0.168 -0.125 0.065 -0.149 - 3.136 0.216 -0.120 -0.006 -0.080 -0.003 -0.257 -0.252 0.104 -0.007 0.050 0.065 0.052 - 3.415 0.176 -0.143 0.254 0.109 0.142 -0.229 -0.286 -0.053 0.102 0.065 0.120 0.052 - 3.204 0.016 -0.258 0.088 0.124 0.042 -0.136 -0.102 -0.068 0.044 -0.020 -0.000 -0.002 - 3.524 0.302 -0.184 0.107 -0.035 -0.053 -0.085 -0.205 -0.188 -0.121 0.013 0.001 0.031 - 3.866 0.381 -0.018 0.169 -0.040 -0.050 -0.240 -0.321 -0.122 -0.106 0.042 -0.025 -0.045 - 3.791 0.036 -0.238 0.061 -0.190 -0.054 -0.178 -0.089 0.020 -0.090 -0.078 -0.039 -0.089 - 3.573 -0.057 -0.188 0.150 -0.129 -0.117 -0.123 -0.236 -0.041 0.056 0.104 0.130 -0.078 - 3.445 0.069 -0.196 -0.109 -0.160 -0.032 -0.139 -0.143 -0.183 0.031 0.036 0.058 -0.082 - 3.504 0.172 -0.111 0.138 -0.020 0.036 -0.057 0.079 -0.096 -0.029 -0.166 -0.028 0.060 - 3.513 0.122 -0.186 0.107 0.027 -0.020 0.028 -0.011 0.023 0.033 -0.100 -0.056 -0.180 - 3.380 0.264 0.121 0.178 -0.028 0.098 0.018 -0.300 -0.041 0.077 0.057 0.075 0.029 - 3.326 0.326 -0.170 0.020 0.044 0.008 -0.009 -0.092 0.019 0.095 0.007 0.089 -0.007 - 3.732 0.192 -0.350 0.043 -0.065 -0.027 -0.074 -0.214 0.021 0.224 0.146 -0.020 0.018 - 3.547 0.086 -0.270 0.052 0.031 0.043 -0.114 -0.295 -0.046 0.031 0.198 0.001 -0.087 - 3.618 0.216 -0.119 0.045 -0.079 0.076 -0.005 -0.138 -0.055 -0.021 0.102 -0.035 0.005 - 3.551 0.269 -0.351 -0.039 0.051 0.162 0.016 -0.165 -0.094 -0.083 -0.059 -0.102 0.125 - 3.559 0.082 -0.281 0.068 0.103 0.150 -0.038 -0.113 -0.041 0.061 -0.158 0.007 -0.017 - 3.804 0.056 -0.264 0.035 0.010 -0.057 -0.042 -0.063 -0.066 0.009 0.046 0.091 0.056 - 3.776 -0.256 -0.283 -0.080 0.027 0.090 0.131 -0.083 -0.074 -0.017 -0.155 -0.099 -0.083 - 4.051 -0.431 -0.198 -0.000 0.008 0.097 0.022 -0.142 -0.091 0.180 0.049 -0.005 0.056 - 4.378 -0.643 -0.064 0.034 -0.241 -0.087 0.086 0.140 -0.149 0.284 0.092 -0.113 0.070 - 5.034 -0.509 0.017 -0.007 -0.187 -0.005 -0.040 0.089 -0.169 0.106 -0.001 -0.099 -0.035 - 5.301 -0.612 -0.054 -0.102 -0.131 -0.048 -0.114 -0.141 -0.239 0.112 -0.110 -0.058 -0.042 - 5.503 -0.875 0.062 -0.076 -0.174 -0.020 0.011 -0.145 -0.065 -0.042 -0.162 -0.038 -0.095 - 5.806 -0.968 -0.011 0.062 0.055 0.002 -0.214 -0.081 -0.134 0.047 -0.145 -0.002 0.028 - 5.682 -1.035 -0.152 0.019 0.106 0.042 -0.137 0.067 -0.041 0.150 0.093 -0.026 -0.054 - 6.077 -1.005 -0.043 0.227 0.056 -0.065 -0.352 -0.171 -0.130 0.110 0.040 0.024 0.158 - 6.136 -1.108 -0.117 -0.055 -0.113 -0.167 0.082 -0.155 -0.231 0.218 -0.026 -0.022 -0.064 - 6.120 -0.947 -0.392 -0.012 0.097 -0.061 0.086 0.015 -0.217 0.068 -0.105 -0.179 -0.091 - 6.070 -1.031 -0.298 -0.041 -0.015 0.009 -0.030 -0.009 -0.159 0.012 -0.119 -0.159 -0.098 - 5.770 -0.915 -0.193 0.114 0.057 -0.018 -0.028 0.051 -0.214 -0.115 -0.019 -0.077 0.148 - 5.654 -1.122 -0.070 0.179 -0.006 0.013 -0.006 -0.006 -0.096 -0.011 0.031 -0.101 0.078 - 5.323 -1.008 -0.130 -0.040 -0.021 -0.217 -0.010 0.071 0.067 0.102 -0.102 -0.000 0.021 - 5.694 -0.850 -0.109 0.014 -0.078 -0.019 -0.119 -0.048 -0.154 0.054 -0.097 -0.060 -0.025 - 5.802 -0.846 -0.160 0.043 -0.094 -0.088 0.108 -0.086 -0.343 0.161 -0.019 0.006 -0.071 - 5.370 -0.663 -0.158 0.065 -0.068 -0.071 0.067 -0.125 -0.258 0.082 0.062 -0.044 0.009 - 5.144 -0.381 0.011 -0.063 0.039 0.071 -0.022 0.009 -0.255 -0.010 -0.008 0.090 0.016 - 5.471 -0.524 -0.296 0.264 0.088 0.108 -0.217 -0.232 -0.058 -0.057 -0.030 0.010 -0.030 - 5.273 -0.549 -0.332 0.189 -0.014 0.032 -0.345 -0.155 0.025 0.088 -0.042 0.081 -0.027 - 4.137 -0.033 -0.131 0.044 0.053 0.036 -0.133 -0.116 0.006 0.163 0.041 0.044 -0.119 - 3.730 0.185 0.010 0.120 0.021 0.129 -0.066 0.037 -0.027 0.015 -0.019 -0.114 -0.128 - 5.652 -0.652 0.268 0.117 0.196 -0.296 0.037 -0.212 -0.320 0.024 0.038 -0.137 0.208 - 5.250 -0.806 0.251 0.195 0.141 -0.189 0.033 -0.264 -0.190 0.053 0.089 -0.183 0.217 - 3.599 0.003 -0.047 -0.077 0.016 0.153 0.078 -0.303 -0.113 0.005 -0.088 0.216 0.043 - 4.150 -0.327 0.089 -0.198 0.046 -0.009 -0.146 -0.319 -0.238 -0.022 -0.091 0.090 -0.002 - 4.264 -0.428 0.259 -0.057 0.099 0.305 -0.341 -0.202 -0.130 0.100 0.027 0.091 0.008 - 4.069 0.215 0.099 0.007 0.058 -0.037 -0.170 -0.133 -0.152 -0.012 -0.056 0.115 -0.078 - 3.906 0.197 -0.032 0.159 -0.146 -0.053 -0.167 -0.183 -0.103 -0.040 -0.023 0.140 0.006 - 5.341 -0.071 0.109 0.191 -0.242 0.032 -0.224 -0.092 -0.093 -0.004 -0.050 0.153 -0.146 - 9.892 -0.297 0.554 0.214 -0.051 -0.203 -0.237 -0.166 -0.075 -0.246 -0.081 0.059 -0.246 - 12.353 -0.380 0.411 0.441 0.002 -0.284 -0.444 -0.161 -0.317 -0.352 -0.184 -0.104 -0.339 - 13.936 -0.458 0.121 0.624 -0.284 -0.205 -0.645 0.010 -0.585 -0.313 -0.282 0.037 -0.346 - 14.756 -0.547 0.136 0.641 -0.404 -0.248 -0.724 0.065 -0.641 -0.314 -0.266 0.020 -0.371 - 14.922 -0.590 0.153 0.673 -0.436 -0.241 -0.789 0.091 -0.680 -0.325 -0.288 0.064 -0.470 - 14.925 -0.665 0.206 0.721 -0.408 -0.286 -0.759 0.053 -0.690 -0.318 -0.297 0.075 -0.497 - 14.685 -0.597 0.223 0.708 -0.386 -0.269 -0.744 0.036 -0.694 -0.267 -0.328 0.088 -0.528 - 14.022 -0.512 0.215 0.681 -0.286 -0.209 -0.691 0.032 -0.610 -0.254 -0.382 0.121 -0.511 - 12.646 -0.285 0.185 0.272 -0.373 -0.311 -0.368 0.124 -0.423 -0.194 -0.397 0.063 -0.361 - 8.966 0.206 0.540 0.368 0.003 -0.114 -0.163 0.175 -0.281 -0.037 -0.390 -0.000 -0.302 - 7.414 0.339 0.522 0.596 0.118 -0.055 -0.323 0.359 -0.238 -0.112 -0.377 0.177 -0.443 - 7.028 0.484 0.626 0.767 0.083 -0.094 -0.334 0.233 -0.171 -0.089 -0.203 0.202 -0.446 - 6.723 0.595 0.543 0.698 0.054 -0.078 -0.344 0.332 -0.218 -0.102 -0.296 0.237 -0.394 - 7.924 0.214 0.428 0.404 0.421 -0.013 -0.081 -0.288 -0.260 -0.140 -0.274 0.128 -0.335 - 11.598 -0.415 0.278 0.152 0.107 -0.190 -0.195 -0.213 -0.219 -0.312 -0.277 -0.025 -0.446 - 12.460 -0.743 0.297 0.231 0.066 -0.349 -0.277 -0.062 -0.258 -0.347 -0.140 -0.027 -0.321 - 13.172 -0.444 0.112 0.495 -0.100 -0.378 -0.372 -0.046 -0.450 -0.351 -0.302 0.033 -0.458 - 13.709 -0.400 0.119 0.588 -0.135 -0.416 -0.446 -0.140 -0.561 -0.293 -0.165 -0.033 -0.477 - 13.711 -0.260 0.067 0.675 -0.267 -0.385 -0.506 -0.104 -0.559 -0.275 -0.186 -0.078 -0.481 - 13.801 -0.197 0.011 0.662 -0.385 -0.326 -0.512 -0.116 -0.501 -0.286 -0.232 -0.065 -0.506 - 13.362 -0.083 -0.074 0.685 -0.332 -0.286 -0.532 -0.068 -0.491 -0.279 -0.252 -0.062 -0.542 - 12.386 -0.076 -0.041 0.593 -0.119 -0.304 -0.383 -0.023 -0.448 -0.322 -0.295 0.008 -0.560 - 9.900 0.037 0.084 0.539 0.045 -0.320 -0.303 0.077 -0.337 -0.233 -0.304 0.156 -0.424 - 7.015 0.494 0.524 0.621 0.194 -0.295 -0.017 0.219 -0.093 -0.257 -0.179 0.029 -0.401 - 6.960 0.372 0.324 0.328 0.025 -0.025 0.181 0.360 -0.138 -0.153 -0.236 -0.213 -0.345 - 6.766 0.417 0.665 0.231 0.037 -0.167 -0.047 0.207 -0.122 -0.234 -0.215 -0.128 -0.314 - 6.268 0.285 0.587 0.040 0.121 -0.190 -0.034 -0.183 -0.103 -0.172 -0.121 -0.178 -0.167 - 6.215 0.051 0.804 0.266 0.251 -0.164 0.088 -0.213 -0.200 -0.307 -0.074 -0.260 -0.226 - 6.190 -0.091 0.774 0.221 0.122 0.021 0.025 0.106 -0.198 -0.273 -0.085 -0.338 -0.345 - 8.814 -0.353 0.456 -0.126 -0.098 0.093 -0.072 -0.019 -0.078 -0.022 -0.136 -0.155 -0.312 - 10.640 -0.510 0.568 -0.082 -0.124 -0.084 -0.184 -0.116 -0.191 -0.172 -0.169 -0.122 -0.342 - 11.844 -0.727 0.553 0.224 -0.098 -0.434 -0.246 -0.017 -0.282 -0.470 -0.075 -0.051 -0.429 - 13.032 -0.452 0.216 0.384 0.009 -0.479 -0.346 -0.184 -0.298 -0.428 -0.159 -0.037 -0.432 - 13.781 -0.370 0.086 0.489 -0.313 -0.297 -0.461 -0.051 -0.562 -0.332 -0.174 -0.003 -0.381 - 14.174 -0.351 0.011 0.668 -0.389 -0.259 -0.599 -0.055 -0.612 -0.274 -0.328 0.060 -0.413 - 14.453 -0.329 -0.072 0.669 -0.403 -0.305 -0.585 -0.047 -0.621 -0.299 -0.342 0.061 -0.413 - 14.506 -0.302 -0.056 0.617 -0.389 -0.356 -0.531 -0.129 -0.561 -0.350 -0.349 0.058 -0.405 - 14.118 -0.212 -0.099 0.627 -0.227 -0.359 -0.578 -0.081 -0.537 -0.365 -0.433 0.147 -0.438 - 13.527 -0.300 0.064 0.528 -0.071 -0.387 -0.570 -0.043 -0.408 -0.404 -0.479 0.189 -0.319 - 12.658 -0.180 0.153 0.327 -0.229 -0.342 -0.508 0.185 -0.262 -0.294 -0.517 0.007 -0.257 - 12.905 -0.254 0.212 0.423 -0.147 -0.272 -0.646 -0.054 -0.374 -0.292 -0.473 0.061 -0.278 - 13.154 -0.315 0.096 0.526 -0.021 -0.276 -0.508 -0.174 -0.476 -0.361 -0.440 0.215 -0.110 - 13.276 -0.087 -0.067 0.694 -0.218 -0.343 -0.532 -0.142 -0.420 -0.265 -0.456 0.169 -0.162 - 13.593 -0.034 -0.157 0.619 -0.325 -0.226 -0.586 -0.066 -0.450 -0.357 -0.360 0.132 -0.243 - 13.898 -0.036 -0.235 0.698 -0.420 -0.221 -0.641 -0.047 -0.503 -0.308 -0.349 0.142 -0.370 - 13.776 0.039 -0.331 0.768 -0.461 -0.226 -0.686 0.012 -0.479 -0.224 -0.379 0.137 -0.501 - 13.348 0.055 -0.312 0.819 -0.426 -0.191 -0.686 0.050 -0.376 -0.090 -0.484 0.070 -0.475 - 12.172 0.314 -0.438 0.779 -0.389 -0.118 -0.510 0.061 -0.216 -0.190 -0.544 -0.048 -0.370 - 8.769 0.819 -0.415 0.430 0.051 0.014 -0.179 0.050 -0.269 -0.086 -0.437 -0.358 -0.391 - 6.744 0.747 -0.006 0.636 0.350 -0.032 -0.363 0.011 -0.174 -0.114 -0.345 -0.241 -0.420 - 6.735 0.929 0.002 0.479 0.363 0.006 -0.217 -0.060 -0.179 -0.131 -0.412 -0.083 -0.462 - 6.106 0.755 0.183 0.548 0.357 -0.066 -0.174 0.011 -0.228 -0.035 -0.273 -0.200 -0.431 - 6.233 0.511 0.022 0.558 0.267 -0.048 -0.244 -0.065 -0.193 -0.254 -0.285 -0.051 -0.315 - 6.373 0.382 -0.129 0.302 0.021 -0.026 0.067 0.066 -0.038 0.012 -0.250 -0.124 -0.243 - 8.892 0.194 -0.534 0.167 -0.220 -0.151 0.021 -0.004 -0.010 -0.028 -0.416 -0.330 -0.247 - 6.429 0.490 -0.145 0.216 -0.125 -0.054 0.044 0.058 -0.026 0.011 -0.359 -0.296 -0.193 - 4.771 0.407 0.222 0.353 0.037 -0.086 -0.112 -0.067 -0.164 0.010 0.076 0.201 -0.180 - 4.579 0.329 -0.069 0.219 -0.070 -0.150 -0.207 0.125 -0.117 -0.072 -0.021 -0.079 -0.086 - 4.335 0.175 -0.181 0.163 0.016 -0.138 -0.174 -0.081 -0.231 -0.168 -0.065 -0.060 -0.180 - 4.058 0.158 -0.071 0.233 -0.026 -0.246 -0.118 0.007 -0.220 -0.098 -0.149 -0.085 -0.121 - 4.201 0.073 -0.258 0.267 0.083 -0.084 -0.029 -0.032 -0.273 -0.050 0.002 0.006 -0.184 - 4.272 0.171 -0.287 0.239 0.038 -0.124 -0.107 0.020 -0.207 -0.060 -0.103 0.160 0.004 - 3.880 0.230 -0.036 0.202 -0.130 -0.070 -0.178 -0.077 -0.068 -0.191 -0.038 0.120 -0.103 - 3.838 0.154 -0.106 0.123 -0.045 -0.020 -0.068 0.107 -0.142 -0.049 0.182 0.181 -0.119 - 3.774 0.116 -0.105 0.164 0.014 -0.076 -0.085 0.071 -0.052 0.064 0.009 0.075 -0.026 - 3.905 0.172 -0.312 0.087 -0.020 0.112 -0.061 -0.067 -0.270 -0.263 -0.083 0.023 -0.018 - 3.774 0.264 -0.274 0.125 0.004 -0.135 -0.112 -0.044 -0.220 -0.085 -0.016 0.091 0.002 - 3.804 0.307 -0.450 0.056 0.020 0.018 -0.107 -0.147 -0.121 0.032 -0.025 0.047 -0.029 - 3.968 0.211 -0.164 0.201 0.108 0.027 0.063 -0.083 -0.173 -0.130 -0.014 -0.056 -0.076 - 3.572 0.154 -0.121 0.089 0.003 -0.099 -0.169 -0.014 -0.129 0.156 0.036 0.071 -0.042 - 3.581 0.190 -0.051 0.015 0.178 0.059 -0.168 -0.134 -0.145 0.047 0.116 0.125 -0.103 - 3.817 0.146 -0.117 0.188 0.206 0.114 -0.006 -0.115 -0.238 0.055 0.147 0.146 -0.038 - 8.201 0.322 -0.431 -0.143 -0.254 -0.189 -0.567 -0.427 -0.205 -0.007 -0.099 -0.163 -0.087 - 8.107 0.410 -0.318 -0.279 -0.245 -0.273 -0.859 -0.655 -0.077 0.195 0.044 -0.168 0.039 - 6.774 -0.362 -0.022 -0.223 -0.439 -0.779 -0.465 -0.284 0.287 0.502 0.288 -0.263 -0.007 - 6.883 -0.072 -0.632 -0.489 -0.199 -0.251 -0.279 0.011 0.139 0.183 -0.003 -0.195 -0.172 - 9.557 0.152 -1.341 -0.588 -0.321 -0.083 -0.353 0.011 -0.142 0.310 -0.029 -0.159 0.034 - 12.328 0.885 -1.161 -0.876 -0.287 0.068 -0.455 0.223 -0.358 0.245 -0.370 -0.290 -0.056 - 12.994 0.835 -1.404 -0.633 -0.397 0.042 -0.342 0.221 -0.302 0.277 -0.579 -0.247 -0.058 - 13.545 0.540 -1.437 -0.304 -0.514 -0.088 -0.315 0.161 -0.148 0.277 -0.651 -0.190 -0.004 - 13.709 0.643 -1.357 -0.277 -0.490 -0.215 -0.278 0.096 -0.134 0.159 -0.504 -0.211 -0.047 - 14.430 0.358 -1.271 -0.137 -0.494 -0.437 -0.278 0.170 -0.090 0.091 -0.508 -0.102 -0.143 - 14.075 0.525 -1.065 -0.038 -0.477 -0.622 -0.352 0.171 -0.188 0.063 -0.431 0.101 -0.281 - 14.105 0.512 -0.921 0.245 -0.505 -0.628 -0.547 0.158 -0.427 0.073 -0.461 0.231 -0.343 - 13.406 0.547 -0.798 0.474 -0.458 -0.621 -0.547 0.014 -0.505 0.003 -0.539 0.357 -0.374 - 13.003 0.455 -0.681 0.587 -0.374 -0.453 -0.399 -0.113 -0.484 -0.097 -0.685 0.323 -0.398 - 13.011 0.558 -0.599 0.604 -0.383 -0.565 -0.443 -0.211 -0.481 -0.063 -0.608 0.363 -0.432 - 13.651 0.383 -0.554 0.643 -0.446 -0.555 -0.452 -0.159 -0.525 -0.039 -0.453 0.216 -0.455 - 13.951 0.269 -0.582 0.675 -0.547 -0.597 -0.389 -0.093 -0.556 -0.018 -0.410 0.147 -0.464 - 13.870 0.196 -0.447 0.697 -0.624 -0.531 -0.389 -0.093 -0.588 -0.047 -0.357 0.013 -0.414 - 13.723 -0.017 -0.228 0.780 -0.627 -0.517 -0.427 -0.072 -0.546 0.041 -0.321 0.024 -0.385 - 13.144 0.091 -0.164 0.663 -0.691 -0.419 -0.227 0.029 -0.459 0.038 -0.357 -0.078 -0.367 - 12.309 0.253 -0.109 0.529 -0.603 -0.415 -0.007 0.051 -0.395 0.045 -0.287 -0.156 -0.287 - 11.132 0.496 0.130 0.408 -0.112 -0.309 0.078 0.027 -0.360 0.117 -0.381 -0.178 -0.307 - 10.662 0.669 0.171 0.282 0.058 -0.460 0.187 -0.076 -0.258 0.320 -0.606 -0.129 -0.223 - 10.956 0.578 0.223 0.224 0.062 -0.506 0.116 -0.005 -0.330 0.280 -0.627 -0.142 -0.160 - 11.082 0.426 0.287 0.293 -0.000 -0.517 0.056 -0.035 -0.312 0.229 -0.611 -0.195 -0.117 - 11.545 0.016 0.465 0.458 -0.347 -0.328 -0.063 -0.156 -0.299 0.173 -0.472 -0.196 -0.147 - 12.038 -0.136 0.511 0.446 -0.743 -0.231 -0.088 -0.237 -0.273 0.328 -0.343 -0.240 -0.184 - 12.024 -0.145 0.461 0.469 -0.973 -0.034 -0.230 -0.139 -0.414 0.294 -0.308 -0.326 -0.201 - 11.909 -0.239 0.660 0.420 -0.937 -0.000 -0.249 -0.153 -0.412 0.148 -0.330 -0.398 -0.175 - 11.700 -0.259 0.750 0.445 -0.868 -0.005 -0.293 -0.127 -0.458 0.096 -0.310 -0.393 -0.167 - 11.610 -0.366 0.820 0.455 -0.805 -0.041 -0.292 -0.186 -0.494 0.099 -0.236 -0.349 -0.199 - 11.699 -0.341 0.701 0.568 -0.804 -0.228 -0.186 -0.148 -0.532 0.074 -0.264 -0.307 -0.207 - 11.710 0.019 0.292 0.631 -0.482 -0.573 -0.090 -0.065 -0.586 0.031 -0.257 -0.348 -0.119 - 11.359 0.341 0.138 0.412 0.000 -0.687 -0.277 0.045 -0.634 0.007 -0.246 -0.411 -0.036 - 10.841 0.704 -0.044 0.396 0.261 -0.627 -0.357 -0.109 -0.559 0.004 -0.271 -0.364 -0.025 - 10.853 0.923 -0.186 0.403 0.098 -0.551 -0.352 0.005 -0.418 -0.088 -0.385 -0.313 0.003 - 11.396 0.586 0.080 0.249 0.060 -0.583 -0.349 0.079 -0.394 -0.130 -0.319 -0.411 0.065 - 11.617 0.620 -0.109 0.475 -0.075 -0.668 -0.289 0.093 -0.543 -0.009 -0.238 -0.357 -0.041 - 12.185 0.344 -0.128 0.708 -0.245 -0.712 -0.221 0.064 -0.513 -0.036 -0.209 -0.214 -0.166 - 11.976 0.231 0.079 0.654 -0.388 -0.528 -0.206 0.117 -0.476 0.022 -0.274 -0.132 -0.137 - 10.431 0.541 0.366 0.467 0.048 -0.350 -0.167 -0.014 -0.243 0.075 -0.582 -0.075 -0.241 - 10.222 0.523 0.480 0.452 0.115 -0.399 -0.137 -0.128 -0.005 -0.200 -0.466 0.025 -0.270 - 10.212 0.631 0.485 0.264 0.063 -0.334 -0.022 -0.120 -0.087 -0.250 -0.475 -0.039 -0.169 - 10.030 0.483 0.646 0.268 -0.054 -0.346 0.037 -0.087 -0.221 -0.040 -0.455 -0.089 -0.317 - 9.480 0.587 0.481 0.277 -0.078 -0.528 0.092 -0.001 -0.056 -0.028 -0.397 -0.157 -0.270 - 8.519 0.596 0.124 0.228 -0.003 -0.240 0.179 -0.113 0.002 -0.033 -0.275 -0.238 -0.308 - 6.988 0.617 0.248 0.247 -0.046 -0.298 0.104 0.004 0.134 0.037 -0.326 -0.248 -0.244 - 6.294 0.370 -0.023 0.055 -0.176 -0.306 0.210 0.173 0.246 0.079 -0.467 -0.224 -0.194 - 5.534 0.348 0.062 -0.055 -0.306 -0.210 0.104 0.107 0.017 -0.032 -0.459 -0.186 -0.189 - 9.752 -0.718 -0.096 0.068 -0.485 0.100 -0.365 -0.034 -0.106 -0.211 -0.045 -0.151 -0.124 - 12.218 -1.272 0.098 -0.134 -0.384 -0.027 -0.389 -0.247 -0.082 -0.148 -0.175 -0.067 -0.247 - 12.664 -2.094 0.546 -0.045 -0.350 -0.035 -0.383 -0.183 -0.063 -0.175 -0.066 -0.148 -0.175 - 12.786 -2.595 0.650 0.061 -0.563 0.081 -0.106 -0.281 0.006 -0.079 0.005 -0.076 -0.174 - 13.152 -2.483 0.546 0.229 -0.549 0.009 -0.003 -0.210 -0.139 -0.263 -0.120 -0.173 -0.124 - 13.078 -2.295 0.435 0.337 -0.506 -0.012 -0.043 -0.285 -0.193 -0.184 -0.014 -0.130 -0.318 - 12.850 -2.227 0.276 0.416 -0.292 -0.131 -0.010 -0.021 -0.088 -0.223 0.013 -0.047 -0.291 - 13.181 -1.968 0.483 0.502 -0.420 -0.222 -0.017 -0.035 -0.113 -0.235 -0.005 0.044 -0.090 - 12.628 -1.823 0.277 0.594 -0.612 -0.233 -0.090 -0.084 -0.093 -0.300 -0.190 0.155 -0.092 - 11.327 -1.283 0.227 0.793 -0.509 -0.138 0.011 -0.078 -0.091 -0.110 -0.189 0.069 -0.173 - 13.131 0.310 -0.354 0.280 -0.444 -0.600 -0.257 -0.221 -0.132 -0.204 -0.199 0.047 -0.238 - 14.941 0.236 -0.752 0.212 -0.545 -0.760 -0.342 -0.124 -0.228 -0.066 -0.196 0.193 -0.285 - 15.598 -0.116 -0.670 0.066 -0.693 -0.790 -0.472 0.091 -0.225 0.054 -0.202 0.126 -0.359 - 15.665 -0.073 -0.809 -0.005 -0.689 -0.722 -0.612 0.234 -0.333 0.063 -0.235 0.141 -0.418 - 15.680 -0.227 -0.765 -0.214 -0.612 -0.743 -0.488 0.411 -0.332 0.181 -0.329 0.034 -0.457 - 15.359 -0.289 -0.724 -0.198 -0.540 -0.758 -0.489 0.403 -0.300 0.216 -0.278 0.007 -0.418 - 15.087 -0.228 -0.707 -0.190 -0.530 -0.797 -0.451 0.374 -0.335 0.187 -0.241 -0.013 -0.384 - 14.450 -0.012 -0.546 -0.118 -0.460 -0.912 -0.413 0.226 -0.324 0.183 -0.146 0.016 -0.366 - 13.475 0.110 -0.210 0.032 -0.549 -1.020 -0.235 0.030 -0.285 0.160 -0.179 0.059 -0.359 - 11.633 -0.091 0.053 0.264 -0.542 -0.990 -0.162 -0.193 -0.342 0.095 -0.101 0.070 -0.175 - 9.012 0.123 -0.311 0.080 -0.433 -0.701 -0.070 0.228 -0.067 0.272 0.094 -0.033 -0.219 - 7.817 0.189 -0.085 0.082 -0.674 -0.812 -0.401 0.333 -0.078 0.003 0.117 0.151 -0.366 - 7.215 0.045 -0.120 0.120 -0.392 -0.816 -0.288 0.356 -0.124 0.070 0.138 0.130 -0.201 - 8.064 -0.922 0.051 0.407 -0.562 -0.269 -0.610 0.113 0.030 -0.102 0.083 -0.033 -0.210 - 8.349 -0.990 -0.102 0.185 -0.555 -0.130 -0.595 0.035 0.208 0.049 0.100 -0.159 -0.265 - 6.279 0.065 -0.189 -0.027 -0.364 -0.633 -0.451 0.161 0.115 0.158 -0.025 -0.038 -0.159 - 5.992 -0.041 -0.223 -0.248 -0.413 -0.535 -0.327 0.384 0.171 0.250 -0.043 -0.072 -0.127 - 5.966 0.053 -0.205 -0.103 -0.244 -0.687 -0.515 0.422 -0.028 0.089 -0.058 0.065 -0.238 - 10.544 -1.377 0.030 -0.244 -0.124 -0.091 -0.432 0.001 -0.054 -0.238 -0.228 0.019 -0.042 - 11.360 -1.529 -0.078 -0.412 -0.260 -0.146 -0.504 -0.043 -0.118 -0.170 -0.142 0.056 0.011 - 8.343 -1.546 0.326 -0.525 -0.149 -0.033 -0.341 0.114 -0.078 -0.081 -0.092 0.026 -0.038 - 9.233 -1.185 0.812 -0.626 -0.166 0.010 -0.455 0.045 -0.187 -0.092 -0.148 -0.123 -0.108 - 10.594 -0.646 0.971 -0.146 -0.152 -0.173 -0.383 -0.168 -0.324 -0.285 -0.111 -0.181 -0.250 - 11.762 -0.322 0.667 0.257 -0.233 -0.478 -0.691 0.183 -0.729 -0.048 -0.239 0.009 -0.380 - 12.624 -0.076 0.257 0.189 -0.303 -0.588 -0.656 0.077 -0.585 -0.151 -0.179 0.062 -0.253 - 13.172 -0.035 0.093 0.108 -0.524 -0.570 -0.654 0.090 -0.418 -0.112 -0.170 0.083 -0.229 - 13.480 0.030 -0.261 0.091 -0.475 -0.560 -0.805 0.200 -0.425 -0.001 -0.194 0.330 -0.376 - 13.648 0.026 -0.358 -0.080 -0.445 -0.645 -0.788 0.294 -0.233 0.027 -0.246 0.337 -0.465 - 13.587 0.047 -0.373 -0.181 -0.405 -0.625 -0.829 0.252 -0.130 0.064 -0.299 0.340 -0.382 - 13.352 0.173 -0.274 -0.282 -0.420 -0.498 -0.803 -0.022 0.040 0.168 -0.485 0.431 -0.342 - 12.810 -0.046 -0.175 -0.313 -0.307 -0.444 -0.514 -0.178 0.158 0.218 -0.561 0.207 -0.130 - 12.236 -0.159 -0.272 -0.521 -0.302 -0.368 -0.509 -0.037 0.183 0.129 -0.546 -0.037 -0.083 - 11.508 -1.263 0.493 -0.550 -0.066 -0.196 -0.354 0.092 0.159 0.002 -0.258 -0.145 -0.028 - 11.391 -1.815 0.808 -0.657 0.121 -0.027 -0.139 -0.083 -0.019 -0.179 -0.133 -0.141 -0.040 - 10.727 -1.874 1.047 -0.719 -0.061 -0.075 -0.102 -0.043 0.015 -0.161 -0.224 0.039 -0.008 - 10.701 -1.847 1.013 -0.697 0.007 -0.222 -0.297 -0.104 -0.218 -0.131 -0.266 0.096 -0.020 - 10.396 -1.788 0.956 -0.511 -0.007 -0.387 -0.207 0.020 -0.115 -0.070 -0.170 -0.048 -0.265 - 9.283 -1.753 0.714 -0.543 0.023 -0.239 -0.251 -0.095 -0.189 -0.027 0.020 0.072 -0.059 - 8.395 -1.099 0.662 -0.639 -0.208 -0.352 -0.411 -0.246 -0.293 -0.256 -0.152 0.103 -0.082 - 8.441 -1.075 0.439 -0.410 -0.255 0.009 -0.484 -0.100 -0.358 -0.167 -0.351 -0.185 -0.220 - 9.457 -1.475 0.606 -0.334 -0.384 0.094 -0.513 -0.091 -0.313 -0.251 -0.254 -0.288 -0.228 - 10.439 -2.138 0.809 0.108 -0.561 0.110 -0.308 -0.028 -0.156 -0.103 -0.221 -0.160 -0.089 - 12.629 -1.775 0.428 -0.271 -0.676 0.049 -0.242 -0.121 -0.187 -0.167 -0.146 -0.148 -0.196 - 13.204 -1.404 0.136 -0.197 -0.724 -0.086 -0.336 -0.218 -0.211 -0.244 -0.192 -0.040 -0.178 - 12.532 -0.402 0.240 0.268 -0.356 -0.311 -0.435 -0.299 -0.091 -0.168 -0.363 0.051 -0.091 - 12.307 0.500 -0.208 0.280 -0.087 -0.539 -0.683 0.030 -0.531 0.001 -0.501 -0.010 -0.077 - 12.206 0.424 -0.222 0.322 -0.113 -0.366 -0.996 0.363 -0.619 -0.057 -0.397 0.032 -0.097 - 11.776 0.281 -0.251 0.563 -0.151 -0.264 -0.805 -0.005 -0.400 -0.097 -0.429 0.038 0.024 - 9.965 0.303 -0.258 0.670 0.095 -0.378 -0.674 -0.065 -0.361 -0.137 -0.385 -0.002 0.107 - 7.846 0.069 0.089 0.611 0.116 -0.146 -0.259 0.068 -0.026 -0.077 -0.403 -0.124 0.191 - 7.553 -0.201 0.271 0.801 0.295 -0.076 0.002 0.002 -0.070 -0.180 -0.344 -0.331 -0.103 - 8.471 -0.056 -0.108 0.613 -0.098 0.009 -0.209 -0.106 0.010 -0.094 -0.314 -0.087 -0.103 - 12.650 -0.126 -0.395 0.493 -0.370 -0.268 -0.699 0.006 -0.328 -0.107 -0.365 0.159 -0.154 - 13.149 0.064 -0.407 0.157 -0.194 -0.728 -0.648 0.014 -0.309 0.031 -0.278 0.197 -0.065 - 13.162 0.165 -0.481 0.111 -0.156 -0.910 -0.619 -0.026 -0.310 0.131 -0.286 0.324 -0.129 - 13.422 0.196 -0.525 0.145 -0.293 -0.909 -0.597 -0.007 -0.334 0.124 -0.240 0.265 -0.165 - 13.577 -0.002 -0.365 0.231 -0.376 -0.856 -0.556 0.024 -0.361 0.051 -0.127 0.145 -0.113 - 13.201 0.020 -0.302 0.372 -0.435 -0.761 -0.635 0.183 -0.502 0.040 -0.054 0.011 -0.053 - 13.037 -0.064 -0.245 0.415 -0.380 -0.740 -0.578 0.066 -0.495 0.091 -0.150 0.056 -0.073 - 12.731 -0.000 -0.269 0.477 -0.369 -0.735 -0.574 0.128 -0.668 0.153 -0.178 0.026 -0.099 - 12.571 0.027 -0.275 0.447 -0.195 -0.811 -0.568 0.211 -0.780 0.106 -0.160 -0.079 -0.118 - 12.435 0.128 -0.158 0.255 0.159 -0.822 -0.591 0.192 -0.773 0.048 -0.361 -0.063 -0.210 - 11.801 0.628 -0.191 0.052 0.142 -0.446 -0.443 -0.137 -0.747 0.179 -0.416 -0.304 -0.200 - 10.910 0.934 -0.023 -0.249 -0.012 -0.294 -0.163 -0.115 -0.814 0.016 -0.400 -0.044 -0.141 - 10.367 0.968 0.227 -0.335 -0.239 -0.337 -0.063 -0.048 -0.773 -0.016 -0.440 -0.046 -0.093 - 10.352 1.003 0.258 -0.317 -0.286 -0.372 -0.134 0.073 -0.791 -0.031 -0.426 -0.162 -0.101 - 10.737 0.991 0.213 -0.327 -0.420 -0.365 -0.209 0.140 -0.847 -0.106 -0.398 -0.186 -0.058 - 11.103 1.156 0.069 -0.432 -0.424 -0.358 -0.239 0.094 -1.005 -0.024 -0.264 -0.099 -0.084 - 11.917 1.018 -0.100 -0.366 -0.389 -0.332 -0.358 -0.031 -0.864 0.033 -0.122 -0.034 -0.123 - 12.248 1.008 -0.371 -0.447 -0.445 -0.332 -0.339 -0.202 -0.717 0.213 0.061 -0.024 -0.119 - 12.745 0.865 -0.569 -0.466 -0.466 -0.291 -0.420 -0.314 -0.503 0.245 0.090 -0.150 -0.117 - 13.115 0.712 -0.639 -0.439 -0.506 -0.364 -0.412 -0.380 -0.319 0.418 0.155 -0.277 -0.138 - 13.409 0.531 -0.728 -0.285 -0.499 -0.370 -0.423 -0.391 -0.206 0.481 0.002 -0.367 -0.123 - 13.585 0.468 -0.855 -0.285 -0.594 -0.402 -0.394 -0.224 -0.115 0.428 -0.254 -0.213 -0.073 - 13.717 0.301 -0.745 -0.169 -0.698 -0.183 -0.617 -0.141 -0.095 0.435 -0.400 -0.143 -0.052 - 13.375 0.319 -0.651 -0.189 -0.610 -0.229 -0.599 -0.186 -0.114 0.446 -0.376 -0.096 -0.020 - 12.988 0.334 -0.597 -0.145 -0.639 -0.197 -0.764 -0.223 -0.180 0.617 -0.396 -0.057 0.033 - 12.535 0.227 -0.393 -0.002 -0.577 -0.075 -0.849 -0.313 -0.460 0.648 -0.371 -0.104 0.049 - 11.477 0.271 -0.213 0.042 -0.350 0.019 -0.613 -0.297 -0.544 0.315 -0.323 -0.235 -0.035 - 11.818 0.215 -0.273 0.050 -0.372 0.129 -0.758 -0.247 -0.470 0.286 -0.442 -0.115 -0.042 - 12.553 0.160 -0.348 0.058 -0.488 0.044 -0.833 -0.292 -0.349 0.401 -0.461 -0.067 0.034 - 12.916 0.098 -0.373 0.034 -0.515 -0.094 -0.921 -0.245 -0.311 0.465 -0.478 -0.004 0.073 - 13.169 0.076 -0.397 -0.008 -0.492 -0.238 -0.926 -0.241 -0.225 0.447 -0.432 -0.014 0.118 - 13.244 0.175 -0.541 0.124 -0.461 -0.401 -0.839 -0.236 -0.187 0.340 -0.386 -0.111 0.101 - 13.062 0.421 -0.653 -0.030 -0.101 -0.501 -0.850 -0.057 -0.321 0.159 -0.202 -0.149 -0.072 - 12.504 0.822 -0.752 -0.298 0.146 -0.356 -0.976 -0.066 -0.203 -0.027 -0.219 0.061 -0.258 - 11.701 1.095 -0.668 -0.416 0.233 -0.258 -0.963 -0.229 -0.201 -0.015 -0.307 0.140 -0.260 - 11.096 1.342 -0.674 -0.529 0.248 -0.236 -0.826 -0.412 -0.214 0.029 -0.338 0.104 -0.163 - 10.669 1.685 -0.674 -0.605 0.085 -0.092 -0.725 -0.451 -0.238 -0.096 -0.271 0.131 -0.152 - 10.787 1.865 -0.760 -0.643 0.057 -0.193 -0.577 -0.362 -0.294 -0.215 -0.245 0.158 -0.177 - 10.750 1.696 -0.623 -0.656 0.090 -0.242 -0.536 -0.249 -0.401 -0.266 -0.185 0.214 -0.187 - 10.433 1.430 -0.544 -0.655 0.105 -0.315 -0.535 -0.300 -0.400 -0.396 -0.066 0.296 -0.209 - 11.097 1.449 -0.575 -0.814 0.255 -0.539 -0.373 -0.278 -0.527 -0.298 -0.101 0.250 -0.299 - 11.185 1.254 -0.438 -0.743 0.236 -0.465 -0.387 -0.209 -0.514 -0.263 0.082 0.056 -0.300 - 10.754 1.249 -0.530 -0.658 0.187 -0.501 -0.394 -0.355 -0.510 -0.258 0.199 0.020 -0.380 - 11.349 1.368 -0.741 -0.527 0.143 -0.610 -0.415 -0.461 -0.468 -0.141 0.183 -0.022 -0.457 - 11.742 1.176 -0.688 -0.214 -0.008 -0.586 -0.436 -0.423 -0.371 -0.027 0.123 -0.199 -0.271 - 12.146 0.835 -0.655 -0.071 -0.128 -0.428 -0.501 -0.499 -0.281 0.123 -0.183 -0.142 -0.144 - 12.580 0.344 -0.459 0.004 -0.263 -0.295 -0.758 -0.376 -0.359 0.283 -0.306 -0.107 0.035 - 12.789 0.202 -0.343 -0.029 -0.327 -0.258 -0.804 -0.304 -0.335 0.310 -0.428 -0.100 0.065 - 12.404 0.127 -0.229 -0.019 -0.259 -0.143 -0.625 -0.291 -0.250 0.316 -0.517 -0.164 0.104 - 11.887 -0.304 0.303 -0.221 -0.064 -0.116 -0.777 -0.112 -0.150 -0.060 -0.489 -0.114 -0.021 - 11.184 -1.205 0.698 -0.239 0.271 -0.184 -0.685 -0.045 -0.259 -0.106 -0.461 -0.006 -0.056 - 10.745 -1.534 1.060 -0.256 0.091 -0.157 -0.600 -0.119 -0.265 -0.106 -0.461 0.016 -0.035 - 10.797 -1.605 1.126 -0.380 0.031 -0.147 -0.600 -0.112 -0.258 -0.100 -0.259 0.025 -0.113 - 11.326 -1.329 0.939 -0.452 -0.076 0.023 -0.627 0.093 -0.026 -0.032 -0.367 -0.088 -0.140 - 11.040 -1.319 0.765 -0.164 -0.243 0.176 -0.841 0.030 -0.082 -0.131 -0.277 0.103 0.102 - 10.075 -0.726 0.486 0.265 -0.352 -0.021 -0.638 -0.150 0.242 -0.238 -0.193 0.083 0.078 - 9.310 0.356 0.297 -0.024 -0.244 -0.319 -0.287 -0.103 0.070 0.014 -0.374 -0.084 -0.004 - 9.182 0.409 0.273 0.171 0.302 -0.306 -0.175 -0.064 0.031 -0.244 -0.316 -0.225 -0.120 - 9.544 0.593 0.180 0.146 0.238 -0.349 -0.076 -0.138 -0.084 -0.076 -0.254 -0.253 -0.277 - 10.022 0.375 0.168 0.182 0.234 -0.296 -0.193 -0.110 -0.083 0.035 -0.126 -0.289 -0.280 - 10.456 0.492 -0.153 0.368 0.311 -0.477 -0.126 -0.103 -0.192 -0.040 -0.128 -0.223 -0.244 - 10.415 0.132 0.093 0.327 0.375 -0.364 -0.114 -0.027 -0.505 0.172 -0.203 -0.188 -0.284 - 10.244 0.283 0.182 0.124 0.322 -0.407 -0.031 -0.020 -0.582 0.104 -0.195 -0.171 -0.143 - 10.862 0.643 0.030 -0.197 0.158 -0.413 -0.185 -0.142 -0.473 0.133 -0.008 -0.265 -0.102 - 11.350 0.769 -0.134 -0.293 0.079 -0.491 -0.418 -0.117 -0.610 0.274 0.017 -0.237 -0.058 - 11.676 0.686 -0.023 -0.389 0.174 -0.414 -0.514 -0.110 -0.633 0.379 -0.079 -0.267 -0.038 - 11.773 0.660 -0.127 -0.228 0.208 -0.472 -0.521 -0.109 -0.648 0.404 -0.087 -0.411 0.066 - 12.067 0.521 -0.188 -0.169 0.175 -0.433 -0.531 -0.092 -0.613 0.312 -0.119 -0.397 -0.032 - 11.773 0.569 -0.155 -0.168 0.190 -0.474 -0.492 -0.149 -0.647 0.337 -0.186 -0.357 -0.056 - 11.621 0.673 -0.242 -0.166 0.281 -0.539 -0.488 -0.161 -0.676 0.311 -0.241 -0.363 -0.090 - 11.638 0.697 -0.348 -0.029 0.316 -0.515 -0.491 -0.240 -0.681 0.218 -0.216 -0.380 -0.093 - 11.801 0.665 -0.398 -0.045 0.181 -0.369 -0.494 -0.286 -0.649 0.147 -0.169 -0.507 0.026 - 11.612 0.707 -0.307 -0.007 0.188 -0.283 -0.477 -0.113 -0.658 0.227 -0.306 -0.340 -0.064 - 11.407 0.518 -0.194 -0.019 0.174 -0.239 -0.379 -0.188 -0.477 0.150 -0.207 -0.420 -0.094 - 10.877 0.506 -0.224 -0.084 0.091 -0.257 -0.399 -0.104 -0.522 0.250 -0.105 -0.316 -0.091 - 10.881 0.344 -0.229 -0.099 0.009 -0.330 -0.610 -0.099 -0.607 0.289 -0.108 -0.374 -0.076 - 10.839 0.401 -0.430 -0.026 0.053 -0.382 -0.562 0.059 -0.382 0.213 -0.194 -0.405 -0.016 - 11.632 0.315 -0.438 -0.049 -0.106 -0.272 -0.616 0.112 -0.489 0.200 -0.198 -0.340 -0.000 - 11.981 0.227 -0.603 -0.123 -0.123 -0.479 -0.740 0.189 -0.511 0.218 -0.173 -0.344 0.085 - 12.585 0.239 -0.560 -0.002 -0.127 -0.591 -0.762 0.219 -0.395 0.338 -0.108 -0.251 0.197 - 12.855 0.230 -0.694 0.077 -0.219 -0.865 -0.623 0.178 -0.222 0.195 0.029 -0.200 0.239 - 13.484 0.134 -0.560 0.117 -0.210 -0.851 -0.563 0.305 -0.210 0.101 0.025 -0.323 0.150 - 13.206 0.206 -0.730 0.309 -0.393 -0.653 -0.519 0.313 -0.246 0.153 0.040 -0.169 0.051 - 12.892 0.171 -0.787 0.486 -0.638 -0.545 -0.386 0.426 -0.341 0.272 0.006 -0.090 -0.056 - 12.683 0.092 -0.575 0.418 -0.661 -0.603 -0.270 0.405 -0.421 0.355 -0.032 -0.148 -0.079 - 12.343 0.280 -0.552 0.451 -0.690 -0.621 -0.166 0.361 -0.554 0.494 -0.170 -0.089 -0.145 - 11.903 0.311 -0.300 0.241 -0.529 -0.512 0.024 0.128 -0.531 0.502 -0.220 -0.195 -0.086 - 11.367 0.255 0.002 -0.062 -0.285 -0.436 -0.045 0.087 -0.386 0.372 -0.468 -0.104 0.017 - 10.663 0.445 -0.127 -0.229 -0.016 -0.635 -0.111 0.150 -0.336 0.217 -0.306 -0.019 -0.066 - 9.959 0.312 0.023 -0.110 0.203 -0.631 0.051 0.121 -0.281 0.060 -0.295 -0.016 -0.027 - 9.032 -0.159 0.431 0.009 0.143 -0.690 0.050 0.002 -0.277 0.007 -0.382 -0.240 -0.103 - 7.815 0.079 0.217 0.453 -0.371 -0.468 -0.299 0.163 -0.238 -0.070 -0.201 -0.173 -0.021 - 7.406 -0.022 0.111 0.537 -0.471 -0.316 -0.156 0.188 -0.421 -0.385 -0.228 -0.087 -0.032 - 7.195 -0.073 0.033 0.588 -0.394 -0.157 -0.163 0.086 -0.362 -0.208 -0.153 -0.101 -0.071 - 7.153 0.040 0.121 0.675 -0.293 -0.089 -0.349 0.143 -0.420 -0.211 -0.120 -0.143 -0.027 - 6.931 0.095 0.085 0.702 -0.222 -0.275 -0.503 -0.016 -0.343 -0.310 -0.199 -0.033 0.064 - 6.609 0.171 0.122 0.649 -0.139 -0.169 -0.300 0.046 -0.427 -0.272 -0.348 -0.235 -0.071 - 6.116 0.233 0.143 0.581 -0.026 -0.162 -0.340 -0.041 -0.253 -0.262 -0.305 -0.218 -0.076 - 6.022 0.212 0.098 0.539 -0.159 -0.196 -0.426 -0.075 -0.320 -0.295 -0.167 -0.216 0.028 - 6.255 0.334 -0.101 0.473 -0.082 -0.152 -0.382 0.045 -0.124 -0.250 -0.260 -0.077 0.060 - 6.696 -0.094 -0.137 0.409 -0.236 0.055 -0.251 0.002 0.109 -0.189 -0.212 0.023 0.018 - 6.713 0.065 -0.034 0.406 -0.262 -0.040 -0.365 -0.114 0.101 -0.158 -0.157 0.031 0.001 - 6.496 0.443 0.137 0.256 -0.231 -0.091 -0.441 -0.091 -0.058 -0.360 -0.213 -0.173 0.075 - 6.718 0.692 -0.041 0.302 -0.151 -0.134 -0.493 -0.281 0.038 -0.321 -0.350 -0.194 0.015 - 6.449 0.841 -0.184 0.294 -0.054 -0.064 -0.719 -0.248 0.004 -0.345 -0.419 -0.297 -0.015 - 6.566 0.659 -0.287 0.285 0.104 -0.098 -0.677 -0.285 -0.292 -0.279 -0.318 -0.208 -0.049 - 6.563 0.635 -0.342 -0.024 -0.078 -0.074 -0.651 -0.347 -0.331 -0.062 -0.226 -0.128 -0.012 - 6.460 0.615 -0.212 -0.259 -0.248 -0.066 -0.472 -0.093 -0.465 -0.254 -0.223 -0.133 0.055 - 6.524 0.359 0.052 -0.020 -0.167 0.049 -0.312 0.009 -0.585 -0.157 -0.335 -0.136 -0.046 - 6.595 0.446 0.142 0.102 -0.222 -0.143 -0.309 0.249 -0.429 -0.160 -0.253 -0.228 -0.199 - 6.643 0.537 0.093 -0.051 -0.204 -0.135 -0.183 0.214 -0.433 -0.233 -0.298 -0.155 -0.079 - 6.762 0.367 0.209 -0.100 -0.268 -0.024 -0.130 0.079 -0.426 -0.087 -0.307 -0.148 -0.189 - 6.776 0.287 0.163 -0.019 -0.261 -0.054 0.044 0.108 -0.598 -0.325 -0.322 -0.123 -0.104 - 7.054 0.291 0.146 -0.053 -0.402 -0.088 -0.089 0.046 -0.630 -0.296 -0.160 -0.019 0.017 - 7.140 0.350 0.060 -0.351 -0.310 -0.042 -0.115 0.035 -0.465 -0.119 0.041 0.106 -0.130 - 7.415 0.381 -0.041 -0.228 -0.353 -0.079 -0.191 -0.045 -0.329 0.028 0.030 -0.026 -0.277 - 7.529 0.403 -0.012 -0.326 -0.229 -0.069 -0.199 -0.039 -0.422 -0.008 0.136 -0.075 -0.214 - 7.598 0.291 -0.197 -0.224 -0.429 -0.171 -0.388 -0.037 -0.216 0.255 0.241 0.079 -0.321 - 7.324 0.183 -0.081 -0.120 -0.330 -0.278 -0.446 0.013 -0.290 0.114 -0.051 -0.089 -0.240 - 7.232 -0.057 -0.225 -0.127 -0.197 -0.190 -0.281 0.207 -0.311 0.081 0.020 -0.063 -0.269 - 6.911 -0.211 0.015 -0.070 -0.106 -0.208 -0.278 0.129 -0.130 0.146 0.011 -0.153 -0.320 - 7.492 -0.108 -0.031 0.031 -0.424 -0.268 -0.338 0.158 -0.226 0.010 0.098 0.047 -0.255 - 7.714 -0.141 -0.232 -0.104 -0.335 -0.295 -0.353 0.192 -0.099 0.185 0.090 -0.083 -0.313 - 7.897 -0.092 -0.251 -0.244 -0.440 -0.173 -0.319 0.142 0.028 0.290 0.048 -0.189 -0.237 - 7.686 -0.202 -0.360 -0.367 -0.597 -0.196 -0.276 0.223 0.149 0.210 0.049 -0.030 -0.242 - 7.890 -0.088 -0.342 -0.395 -0.489 -0.243 -0.337 0.204 0.001 0.097 0.020 0.041 -0.345 - 8.050 -0.134 -0.297 -0.293 -0.389 -0.231 -0.366 0.286 0.048 0.001 -0.216 -0.016 -0.180 - 7.889 -0.163 -0.268 -0.092 -0.298 -0.223 -0.454 0.239 0.284 0.057 -0.297 -0.015 -0.191 - 7.800 -0.201 -0.177 0.051 -0.151 -0.223 -0.449 0.348 0.113 -0.038 -0.168 0.009 -0.231 - 7.708 -0.342 -0.151 0.115 -0.174 -0.215 -0.357 0.424 0.062 0.025 -0.149 -0.011 -0.182 - 7.794 -0.144 -0.058 -0.052 -0.310 -0.391 -0.409 0.366 0.170 0.025 -0.242 0.163 -0.061 - 7.531 -0.300 -0.046 0.045 -0.272 -0.452 -0.391 0.319 0.056 0.014 -0.043 0.172 -0.130 - 7.063 -0.621 -0.193 0.162 -0.219 -0.380 -0.296 0.314 -0.012 -0.032 -0.074 -0.003 -0.176 - 6.984 -0.512 -0.321 0.165 -0.104 -0.458 -0.435 0.168 -0.118 0.110 0.031 -0.016 -0.165 - 6.932 -0.660 -0.224 0.159 0.090 -0.367 -0.466 0.086 -0.124 0.073 0.195 0.116 -0.220 - 6.888 -0.735 -0.212 0.007 -0.068 -0.211 -0.389 0.070 -0.063 0.008 0.178 -0.055 -0.132 - 6.743 -0.809 -0.213 -0.075 -0.277 -0.385 -0.534 0.113 0.045 0.093 0.184 0.114 -0.114 - 6.853 -0.796 -0.037 0.060 -0.089 -0.267 -0.210 0.216 -0.101 -0.072 0.191 0.036 -0.167 - 6.291 -0.938 -0.015 0.121 -0.142 -0.162 -0.195 0.136 -0.141 0.068 0.241 0.116 -0.093 - 6.490 -0.977 -0.188 0.179 -0.082 -0.331 -0.216 0.248 -0.084 0.005 0.154 0.148 -0.118 - 6.704 -0.888 -0.105 0.135 -0.017 -0.377 -0.290 0.366 0.094 -0.055 0.205 0.018 -0.143 - 6.522 -0.768 -0.287 0.025 -0.111 -0.231 -0.293 0.296 -0.187 -0.165 0.037 -0.014 -0.226 - 6.466 -0.831 -0.327 -0.022 -0.166 -0.179 -0.320 0.250 -0.111 -0.076 0.044 0.199 -0.033 - 6.375 -0.881 -0.344 0.138 -0.113 -0.289 -0.346 0.118 -0.101 -0.068 0.049 0.057 0.004 - 6.709 -0.463 -0.258 0.082 -0.162 -0.361 -0.424 0.203 -0.154 -0.117 0.096 -0.019 -0.240 - 7.387 -0.111 -0.162 0.055 -0.081 -0.274 -0.536 -0.020 -0.186 -0.180 -0.000 0.019 0.076 - 7.900 0.095 -0.193 -0.272 -0.173 -0.183 -0.542 -0.189 -0.117 0.026 -0.018 -0.065 0.056 - 8.039 0.231 -0.477 -0.386 -0.229 -0.350 -0.701 0.006 0.011 0.007 -0.017 -0.070 -0.106 - 8.088 0.254 -0.388 -0.215 -0.380 -0.406 -0.724 -0.217 -0.003 0.096 0.150 -0.184 -0.081 - 8.225 0.395 -0.336 -0.276 -0.327 -0.258 -0.559 -0.242 0.016 0.093 0.119 -0.085 -0.070 - 8.426 0.192 -0.447 -0.159 -0.294 -0.273 -0.527 -0.110 -0.070 0.145 0.109 -0.021 -0.129 - 8.488 0.347 -0.414 -0.194 -0.361 -0.332 -0.585 -0.385 -0.114 0.033 -0.093 0.040 -0.062 - 8.585 0.391 -0.370 -0.175 -0.282 -0.316 -0.827 -0.362 -0.090 -0.078 -0.107 -0.029 -0.112 - 8.432 0.313 -0.371 0.067 -0.285 -0.307 -0.717 -0.266 -0.042 0.034 -0.048 -0.043 -0.084 - 8.407 0.309 -0.386 0.160 -0.169 -0.252 -0.654 -0.304 -0.156 0.049 -0.122 -0.181 -0.103 - 8.443 0.128 -0.223 0.559 -0.283 -0.371 -0.659 -0.235 -0.037 0.032 -0.113 -0.142 -0.077 - 8.124 0.058 -0.258 0.309 -0.394 -0.104 -0.598 -0.229 0.028 -0.013 0.051 0.063 -0.067 - 7.723 0.354 -0.122 0.321 -0.169 -0.450 -0.560 -0.253 -0.063 0.019 -0.111 -0.024 -0.112 - 7.079 0.052 -0.294 0.210 -0.093 -0.135 -0.518 -0.109 0.064 0.168 0.004 -0.071 -0.070 - 7.195 0.229 -0.252 0.061 -0.130 -0.364 -0.588 -0.081 0.025 0.159 -0.002 -0.015 -0.108 - 6.983 0.149 -0.300 0.106 -0.087 -0.202 -0.580 -0.207 -0.127 0.118 -0.242 -0.160 0.051 - 7.173 -0.188 -0.324 0.076 0.011 -0.348 -0.454 -0.114 0.032 -0.033 -0.156 -0.070 -0.080 - 7.451 -0.248 -0.127 0.060 0.017 -0.555 -0.546 -0.150 -0.015 -0.389 -0.175 0.013 -0.034 - 7.419 -0.241 -0.162 0.091 -0.227 -0.370 -0.349 -0.380 0.048 -0.284 -0.376 0.020 -0.013 - 7.305 -0.444 -0.187 0.505 -0.207 -0.230 -0.516 -0.292 -0.022 -0.257 -0.269 0.101 -0.166 - 7.997 -0.280 -0.038 0.497 -0.382 -0.234 -0.659 -0.294 0.002 -0.297 -0.190 0.097 -0.263 - 7.828 -0.466 -0.091 0.545 -0.414 -0.305 -0.566 -0.099 0.111 -0.220 -0.075 0.319 -0.220 - 7.660 -0.300 0.025 0.643 -0.420 -0.313 -0.668 -0.165 -0.075 -0.131 0.033 0.297 -0.274 - 7.686 -0.410 -0.066 0.575 -0.457 -0.273 -0.692 -0.179 -0.171 -0.178 0.049 0.289 -0.214 - 7.851 -0.322 -0.159 0.487 -0.513 -0.226 -0.793 -0.240 -0.174 -0.209 -0.012 0.052 -0.228 - 7.926 -0.218 -0.152 0.339 -0.650 -0.474 -0.731 -0.087 -0.228 -0.212 -0.109 0.089 -0.348 - 7.190 -0.258 -0.177 0.328 -0.466 -0.454 -0.699 -0.062 -0.082 -0.084 -0.152 0.165 -0.144 - 7.210 0.054 -0.136 0.218 -0.253 -0.250 -0.621 -0.009 -0.148 -0.187 -0.320 0.069 -0.233 - 7.164 0.167 -0.150 0.262 -0.202 -0.242 -0.734 -0.078 -0.249 -0.207 -0.281 0.130 -0.223 - 6.991 0.065 -0.104 0.425 -0.135 -0.156 -0.610 -0.118 -0.210 -0.350 -0.317 0.050 -0.173 - 6.397 0.088 -0.158 0.273 -0.272 -0.160 -0.628 -0.160 -0.196 -0.362 -0.201 0.146 -0.259 - 6.365 0.313 -0.182 0.169 -0.125 -0.166 -0.578 -0.195 -0.067 -0.197 -0.289 0.096 -0.092 - 6.560 0.082 -0.174 0.275 -0.136 -0.273 -0.705 -0.135 -0.160 -0.237 -0.186 0.098 -0.180 - 6.315 0.148 -0.115 0.279 -0.210 -0.247 -0.507 -0.140 -0.248 -0.230 -0.338 0.110 -0.179 - 5.918 0.239 -0.189 0.162 -0.122 -0.343 -0.516 0.013 -0.221 -0.104 -0.185 -0.052 -0.085 - 5.664 0.187 -0.175 0.168 -0.101 -0.318 -0.451 0.029 -0.199 -0.242 -0.236 0.153 -0.236 - 5.922 0.089 -0.182 0.192 0.065 0.011 -0.698 -0.122 0.016 -0.044 -0.172 0.012 -0.222 - 5.996 -0.031 -0.356 0.166 0.052 -0.028 -0.589 -0.139 -0.079 -0.215 -0.244 0.260 0.025 - 5.731 0.204 -0.273 0.050 -0.164 -0.087 -0.509 -0.005 -0.026 -0.130 -0.273 -0.194 -0.169 - 5.826 0.241 -0.282 0.046 -0.243 0.044 -0.498 -0.052 0.116 -0.012 -0.248 -0.188 -0.199 - 6.009 0.390 -0.507 0.067 -0.290 -0.225 -0.493 0.095 0.174 0.102 -0.264 -0.283 -0.110 - 6.077 0.299 -0.603 -0.133 -0.224 0.052 -0.626 -0.060 0.172 0.146 -0.148 -0.279 -0.199 - 6.589 -0.009 -0.585 -0.004 -0.290 0.124 -0.684 -0.017 0.289 0.187 -0.316 -0.250 -0.055 - 6.868 -0.031 -0.570 0.010 -0.278 0.126 -0.728 -0.022 0.300 0.293 -0.236 -0.189 0.126 - 7.042 0.169 -0.453 0.020 -0.264 -0.044 -0.671 -0.028 0.152 0.379 -0.148 -0.022 -0.078 - 6.390 0.362 -0.362 0.162 -0.206 -0.196 -0.687 -0.025 0.119 0.313 -0.252 -0.088 0.017 - 6.002 0.461 -0.189 0.209 -0.065 -0.117 -0.740 -0.033 -0.048 0.082 -0.306 -0.156 -0.078 - 5.610 0.495 -0.192 -0.036 -0.201 -0.329 -0.655 -0.142 -0.135 0.037 -0.350 -0.187 -0.177 - 5.168 0.313 -0.417 -0.083 -0.063 -0.389 -0.487 -0.061 0.037 0.196 -0.328 -0.226 -0.096 - 5.175 0.395 -0.230 -0.127 -0.000 -0.241 -0.238 -0.116 0.010 0.199 -0.245 -0.147 0.036 - 5.807 -0.203 0.098 0.154 -0.141 0.048 -0.444 -0.170 -0.009 -0.025 -0.086 -0.186 -0.088 - 5.161 0.030 0.115 0.145 -0.177 -0.085 -0.246 -0.179 -0.094 -0.085 -0.053 -0.131 -0.192 - 4.697 -0.011 -0.023 0.175 -0.167 -0.087 -0.185 -0.268 -0.236 -0.124 -0.143 -0.125 -0.035 - 5.004 -0.111 -0.062 0.315 -0.179 -0.039 -0.298 -0.216 -0.106 -0.033 -0.080 0.021 -0.039 - 5.352 -0.100 0.168 0.491 -0.215 -0.069 -0.354 -0.156 -0.165 -0.184 -0.209 -0.180 0.048 - 5.235 -0.168 -0.159 0.448 -0.029 -0.068 -0.376 -0.143 -0.244 -0.177 -0.208 -0.236 0.002 - 5.259 -0.121 -0.253 0.234 -0.255 -0.315 -0.180 -0.115 -0.223 -0.300 -0.246 -0.138 -0.078 - 5.420 -0.079 -0.358 0.321 -0.221 -0.107 -0.060 -0.125 -0.101 -0.338 -0.236 -0.205 -0.053 - 5.818 -0.168 -0.418 0.285 -0.294 -0.082 -0.046 0.165 -0.112 -0.277 -0.169 -0.137 -0.144 - 6.006 -0.159 -0.441 0.402 -0.286 -0.070 -0.079 0.096 -0.163 -0.248 -0.164 -0.334 -0.377 - 6.363 0.024 -0.236 0.441 -0.499 -0.379 -0.200 0.188 -0.043 -0.054 -0.189 -0.338 -0.374 - 6.651 0.060 -0.557 0.258 -0.564 -0.236 -0.346 0.113 -0.118 0.042 0.020 -0.131 -0.307 - 6.061 0.092 -0.480 0.304 -0.532 -0.170 -0.214 0.113 -0.185 0.012 -0.081 -0.171 -0.076 - 6.362 -0.039 -0.421 0.347 -0.712 -0.196 -0.182 0.183 -0.088 -0.021 -0.187 -0.179 -0.228 - 6.397 -0.064 -0.406 0.274 -0.691 -0.295 0.018 0.207 -0.106 0.076 -0.182 -0.126 -0.188 - 6.505 0.027 -0.147 0.267 -0.848 -0.277 -0.068 0.240 -0.172 -0.014 -0.251 -0.105 -0.204 - 6.138 0.075 -0.008 0.112 -0.822 -0.098 -0.011 0.243 -0.160 -0.127 -0.353 -0.040 -0.224 - 5.785 0.000 0.040 0.273 -0.642 -0.200 -0.099 0.022 -0.124 0.153 -0.189 -0.057 -0.133 - 5.528 -0.106 -0.171 0.109 -0.679 -0.251 -0.033 -0.106 -0.078 0.160 -0.274 -0.099 -0.102 - 5.320 0.101 -0.208 0.069 -0.419 -0.078 -0.048 0.027 -0.163 0.039 -0.115 -0.126 -0.116 - 5.367 0.082 -0.320 0.335 -0.220 -0.324 -0.149 0.082 -0.036 -0.044 -0.294 -0.160 -0.120 - 5.978 -0.364 -0.467 0.241 0.045 -0.046 0.019 0.101 -0.073 -0.105 -0.200 -0.002 -0.015 - 6.574 -0.852 -0.237 -0.024 -0.068 -0.118 -0.151 0.047 0.063 -0.182 -0.183 0.078 -0.031 - 7.061 -1.199 -0.174 0.109 -0.113 -0.071 -0.171 -0.239 -0.114 -0.132 -0.298 -0.031 0.009 - 7.522 -1.284 -0.124 0.271 -0.202 -0.227 -0.183 -0.042 -0.144 -0.160 -0.191 -0.023 -0.208 - 7.824 -1.228 -0.081 0.001 -0.237 -0.161 -0.282 0.025 0.141 -0.183 -0.123 -0.025 -0.052 - 8.181 -1.266 -0.106 0.237 -0.030 -0.206 -0.183 -0.067 0.035 -0.040 -0.043 0.044 -0.114 - 8.270 -1.145 -0.242 0.168 -0.092 -0.264 -0.204 -0.013 -0.053 -0.203 -0.403 0.075 0.037 - 8.271 -0.677 -0.448 0.038 -0.037 -0.001 -0.326 0.112 -0.105 -0.108 -0.327 0.180 0.065 - 7.692 -0.106 -0.281 -0.021 0.101 -0.055 -0.169 0.009 -0.021 0.002 -0.280 0.100 -0.017 - 9.490 0.656 0.349 0.040 -0.182 -0.423 -0.560 -0.118 -0.020 0.166 -0.445 0.113 -0.068 - 11.381 0.638 0.115 -0.196 -0.271 -0.350 -0.777 -0.154 -0.087 0.291 -0.401 0.139 -0.084 - 12.162 0.634 -0.159 -0.374 -0.299 -0.281 -1.048 0.031 -0.161 0.369 -0.405 0.160 -0.191 - 10.983 0.905 -0.189 -0.117 -0.265 -0.473 -1.138 0.136 0.177 0.247 -0.272 -0.142 -0.176 - 11.104 0.753 -0.241 -0.025 -0.312 -0.418 -0.964 0.148 -0.037 0.330 -0.307 -0.154 -0.082 - 11.063 0.714 -0.277 -0.243 -0.228 -0.353 -0.875 0.060 0.016 0.372 -0.210 -0.152 -0.278 - 11.284 0.691 -0.354 -0.353 -0.233 -0.306 -0.852 0.102 -0.007 0.403 -0.186 -0.164 -0.256 - 11.747 0.694 -0.458 -0.415 -0.320 -0.253 -0.802 0.141 -0.045 0.437 -0.221 -0.206 -0.224 - 12.247 0.636 -0.525 -0.441 -0.318 -0.293 -0.690 0.118 -0.156 0.568 -0.341 -0.156 -0.266 - 12.476 0.512 -0.535 -0.430 -0.353 -0.242 -0.601 -0.012 -0.077 0.535 -0.299 -0.236 -0.245 - 12.448 0.578 -0.633 -0.388 -0.368 -0.297 -0.468 -0.062 -0.132 0.571 -0.299 -0.233 -0.266 - 12.147 0.586 -0.573 -0.457 -0.348 -0.321 -0.413 -0.068 -0.153 0.593 -0.262 -0.227 -0.330 - 12.035 0.551 -0.505 -0.493 -0.352 -0.325 -0.380 -0.091 -0.163 0.567 -0.206 -0.208 -0.348 - 12.110 0.607 -0.532 -0.478 -0.394 -0.295 -0.339 -0.171 -0.137 0.538 -0.147 -0.222 -0.351 - 12.044 0.744 -0.619 -0.383 -0.456 -0.199 -0.423 -0.103 -0.221 0.525 -0.133 -0.175 -0.395 - 12.060 0.698 -0.518 -0.350 -0.492 -0.215 -0.331 -0.132 -0.259 0.514 -0.140 -0.111 -0.399 - 11.845 0.784 -0.557 -0.352 -0.528 -0.260 -0.134 -0.154 -0.313 0.451 -0.116 0.024 -0.414 - 11.590 0.739 -0.418 -0.459 -0.568 -0.285 0.029 -0.244 -0.277 0.364 -0.082 0.057 -0.301 - 11.363 0.669 -0.336 -0.494 -0.585 -0.411 0.186 -0.191 -0.241 0.139 -0.083 0.129 -0.128 - 10.682 0.752 -0.099 -0.424 -0.633 -0.642 0.424 -0.011 0.070 -0.339 -0.156 0.132 0.026 - 9.739 0.487 0.361 -0.304 -0.461 -0.569 0.353 -0.093 0.154 -0.231 -0.382 0.016 -0.014 - 8.832 -0.141 0.077 0.003 -0.185 -0.434 0.136 -0.117 0.004 0.086 -0.296 0.009 -0.166 - 8.116 -0.266 0.054 -0.158 -0.155 -0.087 0.140 0.035 0.090 0.005 -0.328 -0.007 -0.125 - 8.037 -0.333 0.196 -0.145 -0.148 0.071 0.010 0.172 0.105 0.144 -0.253 0.010 -0.092 - 8.008 -0.466 0.478 0.096 -0.002 -0.132 -0.161 -0.028 -0.120 0.145 -0.141 0.116 0.071 - 8.129 -0.640 0.527 0.158 -0.097 -0.284 -0.000 -0.052 -0.138 0.106 -0.067 0.118 -0.154 - 8.079 -0.757 0.487 0.124 0.079 -0.225 0.207 -0.038 -0.227 0.031 -0.175 -0.147 -0.203 - 7.901 -0.652 0.416 0.132 -0.038 -0.254 0.105 0.003 -0.162 0.178 -0.212 -0.134 -0.085 - 7.547 -0.836 0.472 0.322 -0.158 -0.145 0.054 -0.077 -0.145 0.179 -0.182 0.102 0.013 - 7.882 -0.558 0.605 0.188 -0.172 -0.206 0.035 0.035 -0.140 0.142 -0.252 -0.200 -0.064 - 8.104 -0.265 0.410 -0.149 -0.310 -0.134 0.141 0.029 0.059 0.225 -0.184 -0.206 -0.096 - 8.017 -0.124 0.252 -0.318 -0.299 -0.178 0.134 -0.087 -0.007 0.254 -0.012 -0.186 -0.103 - 8.206 0.120 -0.184 -0.634 -0.492 -0.032 -0.021 -0.121 0.010 0.337 -0.077 -0.158 -0.065 - 8.531 0.353 -0.262 -0.537 -0.433 -0.179 -0.223 -0.133 0.139 0.417 -0.073 -0.125 -0.147 - 8.553 0.406 -0.328 -0.673 -0.465 -0.220 -0.239 -0.194 0.158 0.311 -0.192 -0.133 -0.111 - 8.389 0.462 -0.284 -0.593 -0.537 -0.107 -0.170 -0.067 0.204 0.333 -0.254 0.053 -0.023 - 8.263 0.472 -0.373 -0.450 -0.564 -0.146 -0.136 -0.136 0.126 0.330 -0.176 0.005 -0.013 - 8.356 0.494 -0.296 -0.387 -0.511 -0.128 -0.282 -0.216 0.064 0.401 -0.121 -0.011 -0.009 - 8.339 0.587 -0.300 -0.333 -0.536 -0.295 -0.481 -0.177 0.037 0.459 -0.126 -0.213 -0.063 - 8.031 0.514 -0.206 -0.367 -0.595 -0.241 -0.363 -0.223 0.155 0.403 -0.157 -0.140 -0.091 - 7.571 0.263 -0.276 -0.373 -0.516 -0.215 -0.447 -0.307 0.172 0.346 -0.139 -0.308 -0.084 - 7.140 0.235 -0.255 -0.404 -0.449 -0.079 -0.077 -0.127 0.106 0.301 -0.174 -0.200 -0.099 - 7.241 0.333 -0.270 -0.410 -0.435 -0.127 -0.211 -0.245 0.090 0.421 -0.060 -0.154 0.028 - 7.488 0.466 -0.182 -0.434 -0.389 -0.085 -0.165 -0.165 0.026 0.274 0.041 -0.148 -0.096 - 7.220 0.154 -0.286 -0.415 -0.279 -0.182 -0.189 -0.143 0.003 0.271 0.005 0.077 -0.134 - 7.313 0.269 -0.136 -0.277 -0.163 -0.060 -0.183 -0.225 -0.117 0.139 -0.116 -0.025 -0.243 - 7.582 0.255 -0.054 -0.116 -0.314 -0.162 -0.235 -0.194 -0.195 0.205 -0.015 -0.108 -0.178 - 7.814 -0.010 0.071 -0.051 -0.306 -0.206 -0.331 -0.248 -0.303 0.295 -0.182 -0.037 -0.088 - 7.978 -0.580 0.257 0.379 -0.365 -0.196 -0.439 -0.408 -0.446 0.368 -0.331 0.089 0.012 - 8.244 -0.499 0.252 0.259 -0.753 -0.373 -0.498 -0.463 -0.395 0.466 -0.211 0.277 0.130 - 8.666 -0.447 0.387 0.253 -0.686 -0.254 -0.396 -0.485 -0.598 0.308 -0.227 0.325 0.172 - 9.145 -0.287 0.284 0.322 -0.802 -0.318 -0.424 -0.442 -0.538 0.331 -0.189 0.217 -0.012 - 9.601 -0.401 0.272 0.413 -0.813 -0.274 -0.480 -0.421 -0.571 0.415 -0.175 0.224 0.067 - 9.640 -0.471 0.280 0.208 -0.805 -0.422 -0.517 -0.325 -0.526 0.440 -0.162 0.211 0.079 - 9.684 -0.282 0.370 0.115 -0.761 -0.433 -0.465 -0.361 -0.577 0.380 -0.249 0.128 -0.029 + 6.458 -1.580 0.214 0.167 -0.124 0.162 0.065 0.054 -0.172 -0.098 -0.090 -0.040 0.030 + 6.529 -1.616 0.271 0.104 -0.230 0.093 -0.188 -0.055 -0.241 -0.199 -0.062 -0.003 -0.117 + 6.690 -1.368 0.277 0.005 -0.346 -0.015 -0.215 0.062 -0.190 -0.105 -0.101 -0.034 -0.190 + 6.789 -1.385 0.084 0.092 -0.400 0.165 -0.166 -0.186 -0.145 -0.009 -0.142 -0.059 0.014 + 6.523 -1.346 0.040 0.157 -0.312 -0.043 -0.124 -0.110 -0.091 0.102 -0.210 -0.062 0.054 + 6.647 -1.436 0.049 0.241 -0.227 -0.199 -0.085 -0.106 -0.201 0.073 -0.246 -0.196 -0.025 + 6.388 -1.354 0.013 0.138 -0.198 -0.165 0.074 0.004 -0.289 0.023 -0.262 -0.005 -0.033 + 6.059 -1.268 0.067 0.278 0.075 -0.116 -0.120 -0.168 -0.176 -0.016 -0.175 -0.157 -0.097 + 6.127 -1.158 0.016 0.243 -0.070 -0.100 -0.344 -0.120 -0.122 0.092 -0.098 -0.160 -0.068 + 5.980 -1.153 -0.229 0.063 0.169 -0.122 -0.262 -0.121 -0.071 0.140 -0.072 -0.038 0.020 + 5.682 -1.070 -0.169 -0.077 0.014 -0.089 -0.107 -0.220 -0.280 -0.089 -0.143 -0.125 -0.037 + 5.548 -0.810 0.050 0.024 -0.010 -0.205 -0.156 0.010 -0.006 0.103 0.015 -0.081 -0.032 + 5.739 -0.378 0.597 0.315 0.014 0.063 0.113 -0.150 -0.105 -0.071 -0.066 -0.020 -0.146 + 5.000 -0.074 0.385 0.163 -0.092 0.044 0.038 0.017 0.020 0.037 -0.005 -0.122 -0.222 + 4.927 -0.223 0.321 -0.017 -0.114 0.062 -0.043 -0.040 0.063 0.115 -0.091 -0.026 -0.192 + 4.490 -0.404 0.154 -0.036 -0.130 -0.037 0.006 -0.154 -0.156 -0.024 -0.157 0.015 0.060 + 4.276 0.005 0.047 0.050 0.089 -0.012 -0.014 -0.094 -0.150 0.209 -0.028 -0.159 -0.096 + 3.756 0.075 0.077 0.190 -0.004 -0.167 -0.349 -0.087 -0.138 0.101 -0.050 -0.167 -0.063 + 3.376 0.151 -0.236 -0.002 -0.054 -0.038 -0.240 -0.115 -0.089 0.125 0.114 -0.033 0.019 + 3.283 0.111 -0.274 0.065 -0.117 0.027 -0.274 -0.254 -0.216 -0.092 0.086 0.028 0.042 + 3.775 0.254 -0.043 -0.033 -0.271 0.005 -0.155 -0.194 -0.125 -0.037 -0.056 -0.159 -0.079 + 3.939 0.265 0.107 -0.010 -0.032 -0.047 0.013 -0.131 -0.069 -0.150 -0.139 -0.198 -0.229 + 3.709 0.340 0.171 0.265 -0.050 -0.048 -0.266 -0.315 -0.163 -0.029 -0.095 -0.216 0.018 + 3.844 0.257 0.306 0.148 0.006 -0.114 -0.159 -0.426 -0.209 -0.017 0.042 0.010 0.058 + 6.780 -0.459 0.712 0.007 -0.551 0.155 -0.063 -0.293 -0.027 -0.062 -0.136 0.019 -0.164 + 9.417 -0.219 0.605 0.300 -0.431 -0.151 -0.260 -0.208 -0.062 -0.299 -0.196 0.074 -0.286 + 10.578 0.200 0.330 0.572 -0.237 -0.480 -0.531 -0.002 -0.256 -0.320 -0.224 -0.047 -0.305 + 12.180 -0.191 0.303 0.567 -0.309 -0.556 -0.614 -0.056 -0.362 -0.316 -0.271 0.043 -0.256 + 13.369 -0.265 0.158 0.461 -0.378 -0.571 -0.597 0.003 -0.469 -0.268 -0.343 0.133 -0.288 + 13.751 0.016 -0.073 0.453 -0.387 -0.609 -0.711 0.037 -0.530 -0.191 -0.385 0.157 -0.249 + 14.173 0.092 -0.208 0.450 -0.436 -0.699 -0.730 0.009 -0.565 -0.070 -0.395 0.210 -0.213 + 14.364 0.115 -0.292 0.421 -0.432 -0.819 -0.712 0.045 -0.584 0.018 -0.387 0.235 -0.179 + 13.980 0.489 -0.567 0.446 -0.426 -0.781 -0.780 0.166 -0.605 0.025 -0.275 0.065 -0.038 + 13.954 0.713 -0.790 0.373 -0.348 -0.773 -0.795 0.074 -0.448 0.017 -0.217 -0.032 0.017 + 14.157 0.741 -0.760 0.194 -0.356 -0.555 -0.970 0.041 -0.495 0.178 -0.245 -0.111 -0.005 + 13.919 0.844 -0.590 -0.083 -0.340 -0.367 -0.827 -0.150 -0.673 0.299 -0.157 -0.269 -0.065 + 13.253 1.122 -0.445 -0.220 -0.491 -0.209 -0.517 -0.266 -0.966 0.212 -0.057 -0.198 -0.137 + 12.590 1.256 -0.278 -0.308 -0.474 -0.296 -0.292 -0.244 -1.016 0.060 -0.052 -0.138 -0.061 + 12.258 1.407 -0.397 -0.268 -0.477 -0.213 -0.334 -0.138 -1.120 0.086 -0.129 -0.054 -0.171 + 12.485 1.239 -0.336 -0.236 -0.387 -0.233 -0.377 -0.184 -1.112 0.157 -0.141 -0.098 -0.267 + 12.852 1.003 -0.348 -0.212 -0.191 -0.239 -0.457 -0.271 -0.984 0.216 -0.125 -0.222 -0.278 + 13.122 0.869 -0.512 -0.031 -0.016 -0.363 -0.649 -0.236 -0.788 0.216 -0.216 -0.326 -0.186 + 13.415 0.513 -0.513 0.221 0.160 -0.646 -0.729 -0.080 -0.644 0.118 -0.368 -0.199 -0.098 + 13.669 0.215 -0.481 0.509 0.026 -0.849 -0.680 0.113 -0.701 -0.005 -0.316 -0.090 -0.085 + 14.023 -0.128 -0.311 0.636 -0.188 -0.945 -0.533 0.142 -0.768 0.000 -0.275 -0.042 -0.107 + 13.859 -0.172 -0.235 0.698 -0.380 -0.895 -0.479 0.082 -0.726 0.000 -0.280 0.032 -0.110 + 13.834 -0.192 -0.080 0.585 -0.502 -0.866 -0.421 -0.047 -0.556 -0.066 -0.266 0.089 -0.148 + 13.802 0.010 -0.197 0.466 -0.542 -0.817 -0.461 -0.033 -0.458 -0.114 -0.217 0.126 -0.135 + 13.639 0.166 -0.325 0.337 -0.615 -0.689 -0.598 0.093 -0.418 -0.110 -0.198 0.187 -0.232 + 13.564 0.200 -0.392 0.189 -0.604 -0.638 -0.647 0.158 -0.379 -0.047 -0.277 0.238 -0.244 + 13.549 0.324 -0.549 0.148 -0.601 -0.533 -0.715 0.105 -0.250 -0.101 -0.230 0.143 -0.167 + 13.358 0.536 -0.689 0.061 -0.526 -0.501 -0.777 0.040 -0.205 -0.050 -0.284 0.138 -0.127 + 13.148 0.544 -0.556 -0.173 -0.310 -0.553 -0.777 -0.085 -0.177 0.039 -0.368 0.110 -0.055 + 12.791 0.398 -0.317 -0.383 -0.165 -0.575 -0.547 -0.476 -0.049 0.129 -0.457 0.037 0.029 + 12.749 0.083 -0.087 -0.370 -0.421 -0.109 -0.598 -0.629 -0.041 0.151 -0.310 -0.039 -0.105 + 12.917 0.379 0.033 -0.432 -0.681 0.292 -0.856 -0.488 -0.169 0.139 -0.280 0.142 -0.371 + 13.190 0.533 0.040 -0.566 -0.861 0.326 -0.810 -0.355 -0.413 0.290 -0.295 0.295 -0.418 + 13.190 0.492 0.218 -0.744 -0.939 0.240 -0.737 -0.194 -0.554 0.241 -0.286 0.469 -0.442 + 12.780 0.695 0.293 -0.856 -0.976 0.125 -0.623 -0.024 -0.658 0.044 -0.252 0.494 -0.396 + 12.526 0.665 0.472 -0.872 -1.007 0.056 -0.571 0.079 -0.696 0.016 -0.361 0.406 -0.262 + 12.121 0.854 0.386 -0.666 -1.153 -0.030 -0.379 -0.069 -0.514 -0.034 -0.485 0.418 -0.307 + 11.404 0.942 0.485 -0.517 -1.179 -0.111 -0.366 -0.073 -0.360 -0.062 -0.671 0.364 -0.281 + 10.918 0.877 0.609 -0.429 -1.132 -0.126 -0.387 -0.016 -0.334 -0.074 -0.769 0.295 -0.302 + 10.774 0.844 0.664 -0.402 -1.065 -0.195 -0.370 -0.010 -0.327 -0.145 -0.768 0.219 -0.373 + 10.731 0.749 0.724 -0.341 -1.018 -0.227 -0.399 -0.028 -0.321 -0.117 -0.719 0.177 -0.471 + 10.873 0.611 0.706 -0.365 -1.032 -0.228 -0.445 -0.093 -0.235 -0.051 -0.630 0.048 -0.480 + 11.283 0.587 0.496 -0.321 -1.069 -0.279 -0.461 -0.095 -0.157 -0.054 -0.651 0.063 -0.346 + 12.396 0.282 0.385 -0.563 -1.148 -0.212 -0.399 -0.030 -0.318 0.041 -0.496 0.056 -0.132 + 13.272 0.159 0.081 -0.800 -1.168 -0.149 -0.385 0.068 -0.318 -0.078 -0.370 0.227 -0.065 + 13.305 0.093 -0.007 -0.884 -1.211 -0.007 -0.451 0.061 -0.284 0.002 -0.314 0.273 -0.083 + 13.356 0.047 -0.060 -0.941 -1.228 0.084 -0.490 0.166 -0.273 0.048 -0.246 0.234 -0.158 + 13.397 0.068 -0.129 -1.003 -1.190 0.159 -0.542 0.261 -0.320 0.104 -0.202 0.222 -0.249 + 13.444 0.152 -0.238 -1.066 -1.135 0.200 -0.459 0.222 -0.324 0.124 -0.166 0.179 -0.289 + 13.488 0.079 -0.239 -1.099 -1.059 0.244 -0.408 0.168 -0.287 0.118 -0.068 0.064 -0.335 + 13.100 0.367 -0.396 -1.032 -0.994 0.251 -0.389 0.066 -0.238 0.078 0.044 0.012 -0.345 + 12.729 0.568 -0.536 -0.917 -0.871 0.218 -0.359 0.003 -0.215 0.052 0.117 -0.050 -0.340 + 12.065 0.587 -0.459 -0.774 -0.791 0.170 -0.393 -0.009 -0.233 0.060 0.131 0.031 -0.396 + 11.842 0.408 -0.470 -0.554 -0.672 0.174 -0.316 -0.244 -0.111 0.078 0.024 0.119 -0.508 + 11.775 0.363 -0.557 -0.286 -0.662 0.136 -0.403 -0.328 -0.064 0.233 -0.113 0.101 -0.530 + 11.653 0.296 -0.762 0.167 -0.511 -0.225 -0.502 -0.179 0.035 0.176 -0.249 0.150 -0.445 + 11.024 0.307 -0.785 0.470 -0.381 -0.382 -0.605 0.021 0.073 0.039 -0.339 0.297 -0.509 + 10.386 0.201 -0.369 0.595 -0.441 -0.476 -0.536 0.144 0.167 -0.243 -0.282 0.348 -0.543 + 9.855 0.137 0.034 0.172 -0.115 -0.500 -0.399 0.184 0.056 -0.324 -0.112 -0.063 -0.384 + 9.038 0.383 0.301 -0.006 -0.015 -0.395 -0.395 0.299 -0.334 -0.253 0.103 -0.326 -0.281 + 8.126 0.681 0.255 -0.018 0.040 -0.267 -0.463 0.347 -0.414 -0.087 -0.122 -0.322 -0.249 + 7.045 0.750 0.605 -0.023 -0.098 -0.297 -0.334 0.106 -0.170 -0.133 -0.348 -0.131 -0.163 + 6.880 0.538 0.701 -0.372 0.069 -0.395 0.046 -0.147 0.026 -0.108 -0.408 -0.164 -0.085 + 8.256 -0.259 0.480 -0.437 0.069 -0.212 0.103 -0.075 0.008 -0.263 -0.202 -0.035 -0.176 + 9.530 -0.399 0.062 -0.259 -0.191 -0.127 -0.102 -0.032 -0.039 -0.155 -0.252 0.098 -0.179 + 9.698 -0.407 0.176 -0.152 -0.063 -0.370 -0.289 -0.217 0.105 -0.164 -0.357 0.042 -0.098 + 10.738 -0.079 0.169 -0.211 -0.173 -0.375 -0.459 -0.344 -0.024 -0.031 -0.433 0.039 -0.095 + 11.355 -0.032 0.033 -0.264 -0.016 -0.375 -0.651 -0.474 -0.078 -0.061 -0.467 -0.015 -0.012 + 11.118 0.149 0.098 -0.415 -0.147 -0.228 -0.580 -0.503 -0.083 -0.027 -0.417 -0.088 -0.047 + 10.765 -0.097 0.340 -0.382 -0.122 -0.219 -0.571 -0.527 -0.008 -0.146 -0.272 -0.212 0.010 + 10.621 -0.875 0.441 -0.493 -0.004 -0.076 -0.164 -0.116 0.051 -0.078 -0.300 -0.177 0.011 + 10.450 -1.087 0.510 -0.545 -0.050 -0.211 -0.069 -0.108 -0.000 -0.033 -0.337 -0.227 -0.114 + 10.686 -1.132 0.499 -0.535 0.207 -0.042 0.015 -0.081 -0.042 -0.046 -0.293 -0.050 -0.211 + 10.825 -1.058 0.429 -0.612 0.338 -0.224 -0.297 -0.165 -0.065 -0.217 -0.201 -0.040 -0.115 + 11.215 -1.050 0.402 -0.657 0.231 -0.310 -0.171 -0.060 -0.095 -0.192 -0.209 -0.100 -0.098 + 11.643 -0.874 0.481 -0.438 0.234 -0.336 -0.038 -0.099 -0.017 -0.261 -0.221 0.070 -0.055 + 11.354 -1.394 0.316 -0.498 0.129 -0.316 -0.038 -0.102 -0.130 -0.381 -0.239 -0.026 -0.066 + 11.594 -1.505 0.276 -0.329 0.134 -0.258 -0.103 -0.134 -0.174 -0.100 -0.171 -0.014 0.010 + 11.021 -1.342 -0.012 -0.131 0.083 -0.675 0.008 -0.011 -0.202 -0.275 0.046 -0.004 -0.016 + 7.127 -0.422 -0.236 -0.075 0.447 -0.613 -0.047 0.077 -0.130 -0.323 0.077 0.064 -0.157 + 4.693 0.110 -0.056 -0.658 0.184 -0.241 0.066 -0.089 -0.119 0.003 -0.022 -0.048 -0.127 + 4.780 0.196 0.004 -0.769 0.003 -0.507 -0.090 -0.220 -0.217 -0.167 -0.084 0.058 0.074 + 8.864 0.027 -0.222 -0.089 -0.733 -0.513 -0.186 -0.190 -0.073 0.030 -0.184 -0.104 -0.027 + 11.560 -0.763 -0.385 -0.013 -0.785 -0.533 -0.023 -0.250 -0.208 -0.021 -0.183 0.011 -0.030 + 12.263 -0.484 -0.157 0.472 -0.416 -0.731 -0.299 -0.230 -0.248 -0.202 -0.085 0.004 -0.163 + 13.613 -0.086 -0.574 0.358 -0.481 -0.715 -0.650 -0.094 -0.197 -0.087 -0.237 0.247 -0.317 + 14.008 -0.107 -0.674 0.101 -0.523 -0.681 -0.728 0.008 -0.163 0.107 -0.317 0.274 -0.308 + 14.086 -0.072 -0.729 -0.109 -0.606 -0.645 -0.698 0.072 -0.044 0.198 -0.271 0.045 -0.221 + 14.227 -0.163 -0.701 -0.201 -0.567 -0.515 -0.759 0.126 -0.051 0.249 -0.313 -0.036 -0.239 + 14.401 -0.052 -0.765 -0.242 -0.599 -0.406 -0.762 0.205 -0.127 0.267 -0.345 -0.161 -0.222 + 14.351 -0.115 -0.712 -0.208 -0.661 -0.301 -0.864 0.187 -0.185 0.331 -0.405 -0.038 -0.302 + 14.139 -0.021 -0.706 -0.213 -0.664 -0.330 -0.905 0.182 -0.124 0.299 -0.425 0.023 -0.291 + 13.601 0.055 -0.634 -0.285 -0.611 -0.454 -0.954 0.142 -0.016 0.272 -0.391 0.096 -0.227 + 11.971 0.528 -0.410 -0.216 -0.382 -0.661 -0.786 -0.033 0.150 -0.035 -0.196 0.202 -0.126 + 10.061 -0.477 0.126 0.122 -0.450 -0.414 -0.304 0.063 0.149 -0.122 -0.356 0.038 0.052 + 10.824 -1.212 0.572 0.811 -0.355 -0.053 -0.273 -0.206 0.124 -0.113 -0.239 -0.007 -0.070 + 11.416 -1.457 0.704 0.879 -0.354 0.029 0.062 -0.179 -0.006 -0.086 -0.395 -0.064 -0.146 + 11.839 -1.776 0.767 0.720 -0.425 0.016 0.053 -0.143 -0.097 -0.035 -0.269 -0.103 -0.178 + 11.839 -2.278 0.306 0.475 -0.595 -0.141 0.069 -0.056 0.090 0.056 -0.295 -0.125 -0.177 + 11.990 -2.469 0.285 0.764 -0.489 -0.204 -0.157 -0.013 0.072 -0.077 -0.180 -0.034 -0.098 + 11.816 -2.356 0.161 0.506 -0.619 -0.198 -0.089 0.069 0.149 0.040 -0.040 -0.149 -0.026 + 12.318 -1.802 0.355 0.841 -0.181 -0.074 -0.038 -0.134 -0.020 -0.052 -0.226 -0.172 0.049 + 11.673 -1.128 0.318 0.731 -0.140 -0.367 0.012 0.004 0.023 -0.022 -0.302 -0.113 0.064 + 10.561 -0.632 0.158 0.566 0.050 -0.152 -0.114 0.019 0.048 -0.148 -0.206 -0.031 -0.018 + 11.260 0.555 -0.479 0.173 -0.371 -0.325 -0.301 -0.050 0.042 0.082 -0.170 -0.056 -0.036 + 11.446 0.889 -0.472 0.060 -0.320 -0.319 -0.455 -0.114 0.024 0.094 -0.441 0.178 -0.289 + 11.438 0.632 -0.430 0.093 -0.422 -0.251 -0.463 -0.231 0.092 0.195 -0.403 0.132 -0.231 + 10.804 0.537 -0.333 0.234 -0.364 -0.266 -0.316 -0.433 0.090 0.257 -0.402 0.038 -0.267 + 10.273 -0.030 0.255 0.390 -0.315 -0.328 -0.166 -0.320 -0.080 0.220 -0.463 0.019 -0.190 + 10.498 -0.216 0.285 0.332 -0.171 -0.384 -0.164 -0.225 -0.170 0.329 -0.530 0.061 -0.326 + 10.644 -0.078 -0.353 0.089 0.049 -0.079 -0.564 -0.276 -0.150 0.366 -0.261 0.076 -0.201 + 11.649 0.100 -0.437 -0.035 -0.121 -0.269 -0.648 -0.141 -0.120 0.302 -0.224 -0.022 -0.246 + 11.759 0.084 -0.521 -0.040 -0.270 -0.272 -0.741 -0.107 -0.072 0.431 -0.286 0.049 -0.349 + 12.239 0.166 -0.661 -0.092 -0.514 -0.286 -0.712 -0.138 0.032 0.393 -0.230 0.028 -0.292 + 12.284 0.352 -0.627 -0.186 -0.407 -0.404 -0.480 -0.332 -0.109 0.357 -0.287 0.043 -0.239 + 10.767 0.547 -0.318 -0.342 -0.249 -0.295 -0.348 -0.541 -0.278 0.261 -0.132 -0.179 -0.285 + 9.517 0.593 -0.239 -0.100 -0.209 -0.240 -0.298 -0.566 -0.455 0.234 -0.008 -0.188 -0.280 + 5.833 0.190 0.223 0.108 -0.103 -0.002 -0.167 -0.147 -0.108 0.244 -0.034 -0.252 -0.260 + 5.505 0.191 0.201 0.169 -0.270 0.077 -0.126 -0.222 0.059 0.211 0.002 -0.244 -0.273 + 5.349 0.288 0.488 0.263 -0.313 -0.250 -0.309 -0.337 -0.008 0.117 -0.069 -0.166 -0.097 + 5.451 -0.033 0.595 0.279 -0.310 -0.294 -0.264 -0.195 -0.071 0.236 -0.187 -0.126 -0.154 + 8.193 -0.581 0.501 -0.070 -0.252 -0.312 -0.322 -0.099 -0.199 -0.022 -0.354 -0.118 -0.212 + 8.853 -0.471 -0.007 0.013 -0.176 -0.210 -0.145 -0.083 0.064 0.189 -0.070 -0.174 -0.060 + 11.472 -0.423 -0.607 0.011 -0.410 -0.348 -0.420 -0.148 -0.021 0.152 -0.160 -0.132 -0.026 + 12.762 -0.073 -0.719 -0.157 -0.593 -0.619 -0.574 -0.110 0.007 0.318 -0.207 -0.095 -0.007 + 13.090 0.012 -0.876 -0.029 -0.625 -0.604 -0.496 -0.097 0.083 0.219 -0.295 -0.081 -0.003 + 13.442 -0.135 -0.928 0.001 -0.678 -0.534 -0.528 -0.043 0.081 0.210 -0.340 -0.043 -0.093 + 13.263 -0.125 -0.955 -0.052 -0.747 -0.420 -0.643 0.121 -0.058 0.342 -0.485 0.049 -0.126 + 13.499 -0.254 -0.941 -0.148 -0.748 -0.406 -0.687 0.216 -0.099 0.443 -0.624 0.009 -0.182 + 13.650 -0.077 -1.001 -0.178 -0.642 -0.419 -0.586 0.191 -0.137 0.430 -0.592 -0.112 -0.140 + 13.632 -0.017 -1.056 -0.296 -0.604 -0.344 -0.526 0.200 -0.242 0.424 -0.559 -0.183 -0.115 + 13.201 0.011 -1.165 -0.468 -0.606 -0.343 -0.467 0.220 -0.214 0.467 -0.632 -0.225 -0.111 + 13.214 -0.050 -1.082 -0.460 -0.678 -0.274 -0.523 0.250 -0.241 0.568 -0.603 -0.237 -0.130 + 13.499 0.004 -1.058 -0.445 -0.709 -0.171 -0.542 0.230 -0.284 0.545 -0.560 -0.289 -0.120 + 13.495 -0.112 -0.976 -0.553 -0.682 -0.183 -0.474 0.229 -0.322 0.491 -0.484 -0.331 -0.108 + 12.974 -0.032 -0.899 -0.644 -0.792 -0.116 -0.516 0.245 -0.337 0.624 -0.485 -0.406 -0.120 + 13.377 -0.030 -0.777 -0.639 -0.798 -0.078 -0.525 0.174 -0.399 0.611 -0.435 -0.362 -0.130 + 13.395 0.059 -0.631 -0.738 -0.725 -0.077 -0.576 0.089 -0.460 0.562 -0.316 -0.297 -0.193 + 12.558 0.213 -0.324 -0.972 -0.696 -0.054 -0.616 -0.030 -0.344 0.515 -0.234 -0.316 -0.197 + 12.310 0.234 -0.285 -1.020 -0.733 -0.113 -0.577 -0.094 -0.346 0.557 -0.206 -0.226 -0.214 + 11.933 0.686 -0.393 -0.917 -0.726 -0.208 -0.483 -0.372 -0.338 0.548 -0.266 -0.003 -0.186 + 11.893 0.344 -0.152 -0.811 -0.572 -0.197 -0.487 -0.523 -0.420 0.511 -0.387 0.147 -0.209 + 10.342 0.273 -0.009 -0.847 -0.475 -0.286 -0.464 -0.706 -0.398 0.676 -0.303 0.251 -0.126 + 10.541 0.371 0.064 -0.639 -0.275 -0.253 -0.363 -0.762 -0.478 0.306 -0.373 0.136 -0.218 + 6.905 0.578 0.098 -0.509 -0.370 -0.224 -0.412 -0.678 -0.354 0.526 -0.510 0.181 -0.258 + 5.618 0.678 -0.078 -0.168 -0.389 -0.230 -0.288 -0.031 0.117 0.374 -0.104 -0.084 -0.149 + 5.625 0.752 -0.041 -0.075 -0.406 -0.203 -0.365 -0.009 0.018 0.421 -0.091 -0.082 -0.018 + 5.206 0.550 -0.356 -0.341 -0.578 -0.281 -0.357 -0.063 0.003 0.472 -0.013 -0.085 -0.092 + 4.998 0.472 -0.366 -0.277 -0.449 -0.212 -0.404 0.062 0.003 0.234 -0.029 -0.248 -0.151 + 4.887 0.354 -0.244 -0.216 -0.553 -0.209 -0.108 0.049 0.079 0.409 0.081 -0.049 -0.080 + 6.730 -0.080 -0.541 0.103 -0.583 -0.489 -0.031 0.003 -0.092 -0.069 -0.189 0.109 -0.046 + 6.295 0.005 -0.539 -0.084 -0.650 -0.383 0.004 -0.155 -0.135 -0.079 -0.202 0.092 -0.067 + 4.975 0.201 -0.309 -0.098 -0.520 -0.270 -0.156 -0.114 -0.082 0.200 0.104 0.159 -0.111 + 4.986 0.165 -0.598 -0.014 -0.309 -0.201 -0.158 -0.111 0.063 0.298 0.044 0.030 0.021 + 5.239 0.193 -0.452 -0.176 -0.343 -0.213 -0.163 -0.259 -0.010 0.107 0.166 0.215 -0.100 + 5.085 -0.052 -0.529 -0.246 -0.300 -0.171 -0.056 -0.173 -0.178 0.157 0.135 0.059 0.028 + 5.249 0.143 -0.593 -0.176 -0.208 -0.096 -0.178 -0.008 -0.084 0.106 0.069 0.113 -0.056 + 5.355 0.081 -0.473 0.130 -0.155 -0.138 -0.308 -0.193 -0.121 0.238 0.166 0.108 -0.074 + 5.363 0.031 -0.498 -0.093 -0.231 -0.148 -0.283 -0.267 -0.186 0.187 0.103 0.019 -0.039 + 5.562 0.093 -0.552 -0.032 -0.332 -0.161 -0.151 -0.170 -0.206 -0.089 -0.121 0.170 -0.003 + 5.733 0.148 -0.444 -0.053 -0.126 0.040 -0.287 -0.284 -0.107 0.047 -0.049 0.088 -0.221 + 5.932 0.236 -0.388 -0.041 -0.220 -0.126 -0.254 -0.138 -0.174 0.099 0.026 0.072 -0.147 + 5.953 0.162 -0.354 0.092 -0.178 -0.173 -0.287 -0.253 -0.109 0.093 0.021 -0.119 -0.070 + 6.312 0.310 -0.129 0.031 -0.205 -0.102 -0.101 -0.146 -0.137 -0.013 -0.042 0.124 0.002 + 6.340 0.422 -0.184 -0.212 -0.227 0.069 -0.153 -0.259 -0.189 -0.134 0.121 0.032 -0.165 + 6.991 0.226 -0.127 -0.289 -0.176 -0.271 -0.051 -0.289 -0.149 -0.101 -0.246 -0.184 -0.012 + 8.542 0.353 0.132 -0.293 -0.115 -0.407 0.028 -0.348 -0.026 -0.147 -0.531 -0.357 -0.009 + 7.651 0.076 0.017 0.013 -0.135 -0.269 -0.047 0.060 -0.187 -0.138 -0.267 -0.167 -0.330 + 7.568 0.005 -0.070 -0.110 -0.213 -0.285 -0.105 -0.101 -0.173 -0.211 -0.232 -0.058 -0.391 + 7.060 -0.093 -0.383 -0.577 -0.479 -0.335 -0.030 -0.215 -0.177 0.039 -0.244 -0.117 -0.184 + 7.236 0.252 -0.468 -0.396 -0.419 -0.293 -0.029 -0.065 -0.221 -0.096 -0.427 -0.079 -0.075 + 7.289 0.143 -0.546 -0.454 -0.467 -0.303 -0.064 -0.028 -0.193 -0.275 -0.378 -0.219 -0.054 + 7.441 0.113 -0.637 -0.442 -0.330 -0.303 -0.266 -0.150 -0.187 -0.282 -0.565 -0.133 0.036 + 7.168 -0.280 -0.549 -0.342 -0.322 -0.189 -0.298 -0.227 -0.115 -0.227 -0.313 0.017 0.030 + 7.317 -0.734 -0.194 -0.049 -0.174 -0.083 -0.294 -0.352 -0.219 -0.179 -0.184 0.037 0.099 + 7.195 -0.401 -0.493 -0.240 -0.326 -0.263 -0.324 -0.217 -0.212 -0.352 -0.504 -0.061 0.058 + 6.459 0.515 -0.207 -0.495 -0.484 -0.334 -0.323 0.098 0.085 -0.186 -0.466 -0.291 -0.099 + 6.131 0.339 -0.093 -0.696 -0.567 -0.224 -0.128 -0.010 0.115 -0.106 -0.474 -0.163 -0.240 + 5.659 0.059 -0.041 -0.613 -0.362 -0.149 -0.025 0.089 0.015 -0.144 -0.319 -0.096 -0.349 + 5.638 -0.077 0.063 -0.378 0.017 -0.186 -0.277 -0.128 -0.078 -0.137 -0.152 -0.052 -0.361 + 5.828 -0.132 0.171 -0.328 -0.238 -0.210 -0.192 -0.237 -0.173 -0.164 -0.083 0.129 -0.158 + 5.892 -0.121 0.205 -0.386 -0.157 -0.199 -0.237 -0.288 -0.142 -0.244 -0.151 0.037 -0.165 + 5.746 -0.021 0.068 -0.355 -0.102 -0.225 -0.129 -0.134 -0.141 -0.136 -0.133 0.040 -0.187 + 5.656 -0.031 -0.046 -0.470 -0.268 -0.365 -0.277 -0.176 -0.087 -0.059 -0.054 0.080 -0.183 + 5.569 0.129 0.039 -0.442 -0.190 -0.204 -0.227 -0.210 -0.114 -0.060 -0.080 0.094 -0.132 + 5.541 0.054 0.037 -0.399 -0.218 -0.280 -0.321 -0.098 -0.098 0.092 -0.026 -0.033 -0.247 + 5.315 0.151 -0.228 -0.492 -0.309 -0.377 -0.267 -0.112 -0.074 0.043 0.004 0.060 -0.057 + 5.553 0.330 -0.108 -0.292 -0.387 -0.204 -0.089 0.014 0.021 -0.098 -0.039 0.047 -0.173 + 5.341 0.509 -0.131 -0.433 -0.450 -0.008 -0.023 0.120 -0.037 -0.183 -0.219 -0.073 -0.198 + 5.298 0.331 -0.306 -0.461 -0.474 -0.156 -0.093 0.156 0.166 0.020 -0.169 -0.176 -0.036 + 4.820 0.111 -0.387 -0.391 -0.424 -0.133 -0.167 0.207 0.242 0.149 -0.285 -0.147 -0.026 + 4.239 0.164 -0.207 -0.289 -0.304 0.082 -0.173 0.021 -0.082 -0.202 -0.190 -0.040 0.015 + 4.705 0.209 -0.231 -0.191 0.005 -0.146 -0.289 -0.261 -0.090 0.038 -0.107 0.103 -0.030 + 4.350 -0.138 -0.313 -0.141 -0.299 -0.151 -0.260 -0.106 0.014 0.144 -0.075 0.169 -0.017 + 2.609 0.327 -0.050 -0.249 -0.090 0.038 -0.071 -0.055 -0.176 0.140 0.134 0.035 0.104 + 2.588 0.222 -0.040 0.047 -0.132 -0.027 -0.068 -0.026 -0.140 0.109 0.171 0.122 -0.031 + 2.386 0.269 0.133 0.082 -0.131 -0.048 -0.297 -0.158 -0.062 0.073 0.071 -0.046 -0.107 + 2.728 0.403 0.055 0.003 -0.073 -0.028 -0.166 -0.220 -0.151 0.022 0.149 -0.007 -0.111 + 2.491 0.317 -0.101 -0.249 -0.057 -0.187 -0.265 -0.298 -0.084 0.129 0.293 0.048 -0.145 + 2.186 0.226 -0.053 -0.179 -0.119 0.052 -0.147 -0.264 -0.020 0.079 0.107 0.043 -0.042 + 2.127 0.406 -0.090 -0.253 -0.049 0.018 -0.110 -0.099 -0.150 0.138 -0.034 -0.113 -0.027 + 2.122 0.404 -0.249 -0.332 -0.138 -0.112 -0.166 -0.066 -0.205 0.017 0.013 0.043 0.024 + 1.884 0.275 -0.132 -0.150 -0.247 -0.132 -0.189 -0.001 0.043 0.085 0.075 0.030 0.005 + 1.900 0.454 -0.027 -0.082 0.026 0.082 -0.029 -0.045 -0.005 -0.006 0.078 0.073 0.090 + 2.585 0.846 0.208 0.047 0.032 -0.082 -0.184 -0.265 -0.237 -0.067 0.089 0.227 0.125 + 5.831 1.369 0.391 -0.083 -0.095 -0.239 -0.307 -0.174 -0.251 -0.058 -0.112 -0.100 -0.155 + 7.371 1.286 0.383 0.084 -0.107 -0.283 -0.357 -0.206 -0.324 -0.053 -0.100 -0.101 -0.225 + 6.683 1.461 -0.074 0.506 -0.181 -0.644 -0.152 -0.192 -0.438 0.130 -0.107 -0.173 -0.169 + 5.514 1.268 0.271 0.492 -0.194 -0.456 -0.184 -0.238 -0.335 0.050 0.041 -0.140 -0.127 + 4.052 0.307 0.744 0.449 -0.327 0.021 -0.285 -0.309 -0.332 0.010 0.055 -0.051 -0.160 + 2.622 0.292 0.354 0.039 -0.346 -0.078 -0.210 -0.332 -0.136 0.011 -0.007 -0.010 0.071 + 4.525 0.025 0.100 0.133 -0.464 -0.296 -0.045 -0.155 -0.153 -0.041 -0.128 -0.100 -0.047 + 8.005 -0.033 -0.403 0.011 -0.545 -0.275 0.106 0.057 -0.012 0.092 -0.226 -0.201 -0.191 + 5.282 -0.095 0.085 0.008 -0.395 -0.238 0.312 0.053 0.157 0.041 -0.231 -0.240 -0.193 + 4.006 -0.890 0.354 0.082 -0.145 -0.262 0.145 -0.135 -0.027 -0.126 -0.175 -0.054 -0.125 + 4.929 -0.886 0.216 0.069 -0.069 -0.307 -0.206 -0.048 0.117 0.028 -0.147 -0.035 -0.023 + 5.372 -0.910 -0.175 -0.115 -0.127 -0.453 -0.285 0.053 0.364 0.042 -0.174 0.070 -0.046 + 5.726 -0.640 -0.129 -0.071 -0.104 -0.474 -0.174 0.196 0.320 -0.038 -0.342 -0.095 -0.116 + 4.881 -0.346 -0.129 -0.036 -0.123 -0.435 -0.095 -0.055 0.147 0.079 -0.238 -0.097 -0.253 + 3.915 0.197 0.178 -0.092 -0.382 -0.172 0.114 0.157 -0.051 -0.059 -0.027 0.029 -0.046 + 3.666 0.638 0.312 0.217 -0.144 -0.095 -0.092 -0.058 -0.178 -0.028 -0.106 -0.184 -0.118 + 3.414 0.647 0.133 0.179 -0.040 -0.110 -0.099 -0.024 -0.137 -0.108 0.010 -0.120 -0.151 + 3.120 0.565 0.132 -0.015 -0.105 -0.114 -0.081 0.110 -0.192 -0.059 -0.007 -0.054 -0.128 + 3.397 0.541 0.078 0.220 -0.102 -0.151 -0.038 -0.216 -0.230 -0.009 -0.066 -0.159 -0.108 + 3.460 0.586 0.078 0.217 -0.292 -0.135 0.014 -0.039 -0.235 -0.174 -0.060 -0.080 -0.028 + 3.656 0.235 0.340 0.209 -0.275 -0.165 0.002 0.057 -0.013 -0.050 -0.042 0.018 -0.072 + 5.588 -0.342 0.456 0.229 -0.363 -0.249 0.097 -0.285 0.212 -0.194 -0.041 -0.099 -0.172 + 4.428 -0.249 0.570 0.111 -0.365 -0.137 0.092 -0.307 0.056 -0.252 -0.015 0.042 -0.137 + 4.532 0.455 0.219 0.230 -0.462 -0.072 -0.082 -0.051 0.092 -0.152 -0.180 -0.136 -0.104 + 3.553 0.301 0.209 0.169 -0.139 -0.081 0.029 -0.040 0.103 -0.233 -0.063 -0.169 -0.018 + 3.543 0.202 0.151 0.168 -0.276 -0.114 -0.021 -0.158 -0.013 -0.289 -0.140 -0.181 -0.081 + 4.407 0.612 0.114 -0.033 -0.379 -0.058 -0.074 0.139 0.120 -0.204 -0.224 -0.183 -0.077 + 4.197 0.312 0.195 0.130 -0.140 0.025 -0.048 0.069 0.022 -0.168 -0.291 -0.208 -0.187 + 4.593 -0.038 0.085 -0.096 -0.240 -0.121 -0.046 0.205 -0.074 0.173 -0.037 -0.004 -0.166 + 4.837 -0.395 0.113 -0.249 -0.204 -0.117 0.087 0.057 -0.137 -0.049 -0.212 -0.082 -0.077 + 5.251 -0.473 -0.034 -0.165 -0.027 0.027 0.052 -0.023 0.006 -0.023 -0.254 -0.009 0.033 + 5.486 -0.496 -0.188 -0.287 -0.153 -0.066 0.193 -0.022 -0.069 -0.018 -0.129 -0.133 -0.090 + 5.211 -0.763 -0.434 -0.524 -0.356 -0.334 0.083 0.050 0.127 0.217 -0.008 -0.039 0.073 + 4.408 -0.917 -0.248 -0.142 -0.130 -0.153 0.058 -0.106 -0.014 0.120 -0.064 -0.055 0.043 + 4.133 -0.697 -0.152 -0.125 -0.132 -0.151 -0.004 -0.223 -0.070 -0.024 -0.210 -0.054 0.147 + 3.252 -0.101 -0.112 -0.225 -0.197 -0.156 0.042 0.082 -0.031 -0.086 -0.124 0.047 0.141 + 2.881 0.343 -0.075 -0.306 -0.151 -0.015 -0.109 -0.098 -0.080 0.045 -0.133 -0.206 -0.107 + 2.024 -0.012 -0.210 0.159 0.078 0.079 -0.093 -0.057 -0.054 0.142 0.017 0.019 0.032 + 2.079 -0.055 0.059 0.134 -0.054 -0.113 -0.157 0.020 -0.113 0.002 0.064 0.008 -0.068 + 2.299 0.017 0.034 0.014 -0.010 -0.022 0.114 -0.113 -0.082 0.032 -0.056 -0.012 -0.152 + 3.051 -0.594 0.312 -0.209 0.092 0.124 -0.064 -0.088 -0.113 -0.127 -0.010 -0.035 -0.126 + 3.013 -0.562 0.269 -0.188 -0.035 -0.166 -0.118 0.023 -0.004 0.065 0.140 0.052 0.033 + 1.950 -0.038 -0.378 -0.032 -0.037 0.036 -0.100 0.001 -0.206 0.020 0.087 -0.057 -0.073 + 2.149 0.043 -0.302 -0.105 0.015 0.188 -0.046 -0.085 -0.134 -0.024 0.074 -0.091 -0.014 + 2.030 0.124 -0.182 0.105 0.033 0.211 -0.013 -0.201 -0.145 0.030 0.123 0.149 -0.018 + 2.019 0.063 -0.112 -0.064 -0.242 -0.031 -0.081 -0.081 0.022 -0.049 -0.016 -0.021 0.029 + 2.126 0.201 0.228 0.064 -0.122 0.122 -0.074 -0.163 -0.080 0.048 0.159 0.029 0.027 + 2.133 0.308 0.193 0.139 -0.003 0.082 -0.088 -0.062 -0.152 0.042 0.087 0.058 -0.038 + 2.346 0.333 0.080 -0.054 0.041 0.116 -0.074 -0.161 -0.269 0.027 0.102 0.095 -0.038 + 2.341 0.393 -0.056 -0.256 -0.246 -0.106 -0.080 -0.096 -0.100 0.082 0.148 0.108 -0.009 + 1.680 0.074 -0.083 -0.283 -0.009 -0.067 -0.184 -0.218 0.102 0.199 -0.007 0.098 -0.030 + 1.978 0.355 0.130 -0.056 -0.143 -0.041 -0.257 -0.170 -0.076 -0.031 0.094 0.017 -0.094 + 1.970 0.339 0.100 0.067 -0.009 -0.205 -0.250 -0.266 -0.256 0.049 0.117 -0.035 -0.077 + 2.038 0.273 -0.252 0.005 0.007 -0.074 -0.204 -0.338 -0.008 0.026 -0.032 0.021 -0.143 + 1.492 0.026 -0.183 0.050 0.122 0.213 -0.091 -0.114 0.129 0.107 -0.005 -0.055 -0.214 + 2.303 0.458 0.200 0.331 0.110 -0.120 -0.201 -0.100 -0.052 -0.014 0.135 -0.005 -0.087 + 2.215 0.748 0.219 0.119 0.171 -0.106 -0.387 -0.326 -0.082 0.018 0.072 -0.008 -0.156 + 4.989 -0.349 -0.171 0.070 0.161 -0.032 -0.428 0.147 -0.038 -0.174 -0.043 -0.050 -0.059 + 7.100 -0.562 -0.286 0.048 -0.032 -0.224 -0.545 0.293 0.063 -0.326 -0.105 -0.017 0.005 + 3.928 -0.639 -0.716 0.267 0.072 0.112 -0.507 0.189 -0.034 -0.291 0.090 0.068 0.018 + 2.035 -0.339 -0.407 0.011 0.124 -0.036 -0.162 0.010 -0.200 -0.182 0.113 0.185 -0.115 + 2.649 -0.238 -0.291 -0.093 0.082 0.132 0.001 0.034 -0.203 0.030 0.021 -0.038 -0.047 + 5.455 -0.747 -0.590 -0.121 -0.244 -0.083 0.022 0.132 -0.149 -0.081 0.201 0.166 -0.149 + 6.972 -0.898 -1.300 -0.143 -0.320 -0.293 -0.203 0.307 -0.032 -0.205 0.040 0.193 -0.261 + 8.820 -0.812 -1.130 -0.187 -0.077 -0.249 -0.140 0.061 -0.150 -0.094 0.072 0.184 -0.310 + 10.338 -0.546 -1.082 -0.244 0.042 -0.312 0.120 0.086 -0.090 -0.145 -0.168 0.013 -0.230 + 12.020 0.358 -0.982 -0.447 -0.103 -0.498 0.013 -0.106 -0.251 -0.027 -0.386 0.071 -0.240 + 13.169 0.836 -1.361 -0.356 -0.237 -0.376 -0.255 0.111 -0.162 0.006 -0.366 -0.075 -0.166 + 14.176 0.461 -1.720 -0.169 -0.351 -0.285 -0.186 0.265 -0.086 0.028 -0.376 -0.255 -0.064 + 14.008 0.482 -1.812 -0.253 -0.343 -0.274 -0.171 0.239 -0.040 -0.028 -0.322 -0.308 0.005 + 14.332 0.400 -1.759 -0.165 -0.466 -0.144 -0.255 0.283 -0.091 0.035 -0.345 -0.327 0.020 + 14.535 0.410 -1.635 -0.243 -0.579 -0.022 -0.330 0.245 -0.190 0.160 -0.361 -0.342 -0.064 + 14.518 0.662 -1.504 -0.354 -0.684 0.081 -0.306 0.178 -0.350 0.318 -0.308 -0.315 -0.244 + 13.705 1.233 -1.230 -0.365 -0.791 -0.083 -0.194 0.022 -0.488 0.274 -0.148 -0.232 -0.239 + 12.032 1.250 -0.829 -0.014 -0.706 -0.316 0.143 -0.081 -0.439 0.221 -0.256 0.085 -0.103 + 10.844 0.640 -0.503 0.309 -0.114 -0.137 0.447 -0.063 -0.560 0.111 -0.748 0.068 -0.124 + 10.759 0.593 -0.490 0.330 -0.128 -0.191 0.437 -0.087 -0.459 0.064 -0.697 0.045 -0.026 + 10.857 0.421 -0.436 0.305 -0.082 -0.068 0.371 -0.005 -0.555 -0.009 -0.759 -0.016 0.068 + 10.622 0.494 -0.451 0.360 -0.051 -0.072 0.399 0.048 -0.700 -0.019 -0.798 0.006 0.098 + 10.367 0.784 -0.534 0.370 -0.185 -0.079 0.269 0.227 -0.697 0.018 -0.687 -0.130 0.065 + 11.584 1.080 -0.441 -0.168 -0.352 -0.264 -0.200 -0.002 -0.668 0.066 -0.087 0.003 0.139 + 13.029 1.135 -0.983 -0.458 -0.570 -0.132 -0.397 -0.090 -0.581 0.364 -0.007 -0.114 -0.111 + 13.623 0.933 -1.286 -0.345 -0.704 -0.126 -0.546 -0.131 -0.386 0.470 -0.093 -0.315 -0.260 + 13.749 0.743 -1.210 -0.284 -0.471 -0.362 -0.498 -0.275 -0.075 0.456 -0.156 -0.358 -0.128 + 13.252 0.707 -0.887 -0.270 -0.137 -0.719 -0.412 -0.374 0.042 0.466 -0.392 -0.031 -0.033 + 11.665 0.270 -0.240 0.364 -0.230 -0.759 -0.472 -0.121 0.101 -0.018 -0.317 -0.057 -0.052 + 8.778 -0.001 -0.191 0.162 -0.363 -0.181 -0.450 -0.065 0.184 0.208 -0.134 0.055 -0.069 + 7.427 0.485 -0.658 -0.085 -0.387 -0.393 -0.047 -0.203 0.221 0.240 -0.231 -0.302 -0.116 + 7.948 -0.214 -0.615 -0.185 -0.484 -0.279 0.003 -0.061 0.391 0.317 -0.200 -0.321 -0.241 + 7.034 0.123 -0.404 -0.321 -0.431 -0.324 -0.016 -0.113 0.307 0.329 -0.224 -0.170 -0.060 + 10.636 -1.339 -0.306 0.005 -0.888 0.129 -0.219 -0.143 0.067 -0.196 -0.109 -0.138 -0.148 + 11.020 -1.741 -0.102 0.012 -0.931 -0.039 -0.115 -0.223 -0.077 -0.190 -0.081 -0.136 -0.117 + 11.050 -2.473 0.023 0.354 -0.365 -0.231 -0.040 -0.094 -0.037 0.030 -0.163 -0.176 -0.009 + 12.460 -1.736 -0.437 -0.080 -0.304 -0.398 -0.292 -0.147 -0.162 -0.139 -0.154 -0.003 0.052 + 12.012 -1.182 -0.318 0.407 0.125 -0.165 -0.406 -0.095 -0.213 -0.202 -0.194 -0.171 -0.013 + 11.487 0.143 -0.210 0.117 0.661 0.095 -0.249 -0.287 -0.187 -0.371 -0.376 -0.280 -0.255 + 11.432 0.730 -0.252 -0.133 0.275 -0.168 -0.380 -0.285 -0.142 -0.044 -0.048 -0.156 -0.372 + 11.297 1.214 -0.078 0.063 0.206 -0.046 -0.210 -0.245 -0.190 -0.030 -0.098 -0.277 -0.269 + 11.039 1.294 -0.045 0.213 0.072 0.083 -0.269 -0.309 -0.181 -0.059 -0.214 -0.072 -0.272 + 11.035 1.365 0.022 0.170 -0.090 0.062 -0.322 -0.182 -0.060 -0.130 -0.272 -0.105 -0.128 + 10.255 1.338 0.110 0.142 -0.069 0.126 -0.237 -0.187 -0.328 -0.220 -0.243 -0.129 -0.305 + 9.699 0.725 -0.231 0.033 0.037 0.218 0.002 -0.071 -0.363 -0.466 -0.130 0.044 -0.123 + 9.861 0.571 -0.556 -0.093 0.045 0.214 0.077 -0.115 -0.451 -0.415 0.003 0.106 -0.076 + 9.122 0.325 -0.762 -0.296 -0.021 0.453 0.031 -0.410 -0.586 -0.289 0.050 -0.013 0.030 + 8.449 0.651 -0.328 -0.026 -0.151 0.049 -0.245 -0.547 -0.405 -0.202 -0.037 0.088 -0.085 + 6.706 0.344 -0.236 -0.208 0.003 -0.014 -0.324 -0.519 -0.356 -0.005 0.114 -0.048 -0.109 + 6.181 0.086 -0.308 -0.123 0.097 -0.139 -0.120 -0.261 -0.343 -0.023 0.055 -0.225 -0.033 + 6.311 -0.308 -0.666 0.231 -0.148 -0.050 -0.286 -0.279 -0.131 -0.141 -0.095 -0.123 0.085 + 7.215 -0.372 -0.744 0.285 -0.227 -0.274 -0.432 -0.186 0.051 -0.165 0.157 -0.050 0.233 + 8.196 -0.633 -0.770 0.100 -0.495 -0.264 -0.293 -0.120 0.112 -0.106 0.264 -0.019 0.167 + 9.218 -0.552 -0.979 -0.156 -0.328 -0.232 -0.208 0.118 0.213 -0.299 0.059 -0.021 0.129 + 10.373 -0.185 -0.645 -0.116 -0.188 -0.290 -0.473 0.165 0.012 -0.084 -0.149 0.015 -0.028 + 10.630 -0.597 -0.899 -0.309 -0.168 -0.148 -0.200 0.292 -0.079 -0.250 -0.263 0.046 -0.102 + 11.223 -0.444 -1.177 -0.364 -0.057 -0.342 -0.026 0.372 0.069 -0.389 -0.214 0.175 -0.166 + 11.752 -0.455 -1.199 -0.194 0.009 -0.488 -0.011 0.071 -0.088 -0.323 -0.081 0.283 -0.155 + 12.116 -0.480 -1.241 -0.137 0.060 -0.308 0.045 0.084 -0.205 -0.258 -0.306 -0.046 -0.215 + 12.199 -0.474 -1.131 -0.208 0.142 -0.069 -0.008 0.033 -0.192 -0.294 -0.428 0.069 -0.162 + 13.021 0.187 -0.987 -0.337 -0.081 -0.274 -0.262 0.122 -0.191 -0.099 -0.484 0.008 -0.152 + 13.968 0.564 -1.407 -0.535 -0.162 -0.365 -0.238 0.221 -0.170 -0.089 -0.376 -0.014 -0.236 + 14.614 0.366 -1.682 -0.399 -0.260 -0.267 -0.366 0.370 -0.160 -0.007 -0.361 -0.168 -0.248 + 14.580 0.420 -1.645 -0.420 -0.343 -0.314 -0.354 0.334 -0.126 -0.009 -0.383 -0.292 -0.089 + 14.867 0.336 -1.417 -0.385 -0.361 -0.320 -0.476 0.399 -0.251 0.151 -0.431 -0.297 -0.161 + 14.901 0.459 -1.318 -0.568 -0.291 -0.345 -0.480 0.254 -0.284 0.311 -0.349 -0.342 -0.304 + 14.539 0.839 -1.242 -0.587 -0.341 -0.396 -0.450 0.047 -0.382 0.524 -0.324 -0.286 -0.464 + 14.336 1.039 -0.785 -0.912 -0.440 -0.407 -0.286 -0.002 -0.608 0.485 -0.301 -0.175 -0.362 + 13.910 1.125 -0.340 -0.947 -0.542 -0.339 -0.190 -0.267 -0.764 0.278 -0.225 0.113 -0.248 + 13.371 1.023 0.122 -0.823 -0.622 -0.230 -0.325 -0.295 -0.788 0.114 -0.428 0.304 -0.241 + 12.809 0.948 0.460 -0.817 -0.522 -0.234 -0.178 -0.345 -0.838 -0.067 -0.572 0.239 -0.189 + 12.319 1.034 0.504 -0.805 -0.411 -0.317 -0.140 -0.332 -0.758 0.009 -0.658 0.130 -0.217 + 11.435 1.268 0.359 -0.761 -0.187 -0.315 -0.033 -0.329 -0.765 0.049 -0.653 0.034 -0.252 + 10.609 1.613 -0.043 -0.627 0.165 -0.360 0.129 -0.462 -0.877 0.055 -0.529 -0.065 -0.364 + 10.680 1.361 -0.391 -0.197 0.487 -0.504 -0.038 -0.586 -0.698 0.091 -0.401 -0.406 -0.258 + 11.021 0.934 -0.563 0.365 0.392 -0.723 -0.346 -0.315 -0.489 0.146 -0.511 -0.455 -0.175 + 11.154 0.355 -0.422 0.631 0.150 -0.835 -0.067 -0.159 -0.613 -0.037 -0.309 -0.294 -0.222 + 11.108 -0.316 0.036 0.807 -0.167 -0.393 0.036 -0.348 -0.505 -0.041 -0.442 -0.296 -0.366 + 10.848 -0.389 0.449 0.503 -0.194 -0.363 -0.116 -0.176 -0.489 -0.019 -0.366 -0.348 -0.291 + 11.029 -0.467 0.695 0.379 0.046 -0.290 -0.191 -0.089 -0.532 -0.032 -0.305 -0.417 -0.364 + 11.952 -0.720 0.806 0.386 -0.193 -0.150 -0.326 0.072 -0.583 0.028 -0.345 -0.325 -0.306 + 12.689 -1.045 0.758 0.511 -0.102 -0.226 -0.475 0.058 -0.536 0.130 -0.296 -0.245 -0.284 + 12.837 -1.087 0.856 0.472 -0.197 -0.187 -0.348 0.124 -0.712 0.101 -0.267 -0.295 -0.278 + 12.984 -0.972 0.768 0.478 -0.229 -0.103 -0.357 0.156 -0.776 0.093 -0.294 -0.287 -0.229 + 13.012 -0.807 0.673 0.451 -0.297 -0.114 -0.431 0.193 -0.675 0.065 -0.334 -0.273 -0.196 + 12.854 -0.561 0.476 0.561 -0.347 -0.152 -0.493 0.116 -0.646 0.081 -0.268 -0.321 -0.199 + 12.990 -0.524 0.386 0.554 -0.358 -0.104 -0.522 0.027 -0.781 0.119 -0.275 -0.251 -0.195 + 12.840 -0.398 0.269 0.565 -0.291 -0.192 -0.456 -0.086 -0.788 0.031 -0.323 -0.130 -0.259 + 12.864 -0.420 0.237 0.648 -0.218 -0.349 -0.337 -0.299 -0.664 -0.104 -0.302 -0.128 -0.239 + 13.112 -0.448 0.174 0.445 -0.301 -0.187 -0.194 -0.282 -0.768 -0.331 -0.223 -0.011 -0.394 + 13.207 -0.413 0.148 0.242 -0.071 -0.467 -0.226 -0.286 -0.548 -0.248 -0.220 -0.157 -0.434 + 12.834 -0.422 -0.070 0.190 -0.117 -0.644 -0.243 -0.328 -0.235 -0.423 -0.258 0.062 -0.434 + 12.754 -0.406 0.041 -0.027 0.009 -0.658 -0.244 -0.291 -0.338 -0.455 -0.224 -0.049 -0.433 + 12.867 -0.642 0.261 -0.186 0.041 -0.561 -0.291 -0.223 -0.451 -0.518 -0.314 -0.058 -0.271 + 12.978 -0.537 0.228 -0.109 0.018 -0.656 -0.187 -0.242 -0.289 -0.528 -0.237 -0.093 -0.350 + 13.011 -0.545 0.212 0.009 0.043 -0.492 -0.314 -0.172 -0.470 -0.411 -0.249 -0.106 -0.397 + 13.119 -0.707 0.272 0.333 -0.057 -0.459 -0.163 -0.179 -0.468 -0.358 -0.187 -0.145 -0.396 + 13.055 -0.528 0.226 0.423 -0.129 -0.358 -0.297 -0.067 -0.539 -0.367 -0.178 -0.310 -0.338 + 12.993 -0.627 0.387 0.676 -0.289 -0.395 -0.209 -0.012 -0.616 -0.167 -0.246 -0.378 -0.295 + 12.880 -0.636 0.260 0.935 -0.444 -0.174 -0.272 0.075 -0.703 -0.037 -0.415 -0.236 -0.312 + 12.766 -0.743 0.297 0.902 -0.278 -0.207 -0.257 0.032 -0.703 0.029 -0.423 -0.227 -0.274 + 12.459 -0.629 0.233 0.749 -0.096 -0.358 -0.191 0.079 -0.684 0.092 -0.408 -0.199 -0.241 + 12.133 -0.437 0.096 0.692 0.085 -0.453 -0.212 0.165 -0.653 0.093 -0.406 -0.150 -0.234 + 11.774 -0.317 0.099 0.497 0.305 -0.445 -0.335 0.203 -0.625 0.119 -0.402 -0.170 -0.142 + 11.032 -0.050 0.091 0.287 0.446 -0.324 -0.379 0.127 -0.662 0.184 -0.450 -0.182 -0.009 + 10.556 0.071 0.151 0.179 0.411 -0.203 -0.275 -0.042 -0.689 0.284 -0.543 -0.202 0.095 + 10.343 0.142 0.104 0.060 0.442 -0.103 -0.332 -0.117 -0.654 0.373 -0.534 -0.264 0.037 + 10.313 0.109 0.225 -0.015 0.433 -0.083 -0.376 -0.126 -0.643 0.381 -0.472 -0.270 -0.050 + 10.589 0.042 0.138 0.081 0.427 -0.125 -0.413 -0.044 -0.725 0.428 -0.563 -0.236 -0.078 + 10.768 0.023 0.087 0.188 0.434 -0.222 -0.454 -0.014 -0.653 0.397 -0.645 -0.166 -0.103 + 10.933 0.006 -0.057 0.434 0.355 -0.292 -0.451 0.012 -0.587 0.315 -0.669 -0.141 -0.082 + 10.814 0.080 -0.150 0.601 0.384 -0.454 -0.379 0.012 -0.467 0.106 -0.620 -0.124 -0.158 + 10.848 -0.134 -0.060 0.655 0.455 -0.565 -0.330 0.066 -0.511 0.128 -0.575 -0.139 -0.143 + 10.724 -0.205 0.048 0.660 0.350 -0.558 -0.290 0.224 -0.679 0.171 -0.511 -0.191 -0.086 + 10.241 -0.206 0.126 0.631 0.358 -0.600 -0.192 0.249 -0.763 0.285 -0.570 -0.071 -0.264 + 9.987 -0.306 0.102 0.625 0.339 -0.517 -0.148 0.220 -0.645 0.065 -0.471 -0.189 -0.152 + 9.944 -0.397 0.276 0.539 0.253 -0.375 -0.184 0.115 -0.475 0.008 -0.513 -0.393 0.040 + 10.165 -0.011 0.228 0.350 0.326 -0.210 -0.308 -0.009 -0.391 0.160 -0.517 -0.578 -0.053 + 10.060 0.163 0.136 0.133 0.461 -0.200 -0.203 -0.135 -0.446 0.330 -0.324 -0.566 0.031 + 10.179 0.401 0.374 -0.251 0.210 -0.093 -0.195 -0.158 -0.534 0.335 -0.082 -0.363 0.042 + 10.482 0.878 0.359 -0.505 0.071 -0.149 -0.188 -0.254 -0.716 0.063 -0.070 -0.510 0.039 + 10.674 1.165 0.014 -0.456 -0.188 -0.138 0.047 -0.327 -0.569 0.011 0.045 -0.333 0.083 + 10.985 1.194 0.044 -0.449 -0.365 -0.403 0.201 -0.483 -0.277 -0.175 0.063 -0.321 0.151 + 11.304 1.216 0.019 -0.548 -0.656 -0.294 0.084 -0.394 -0.207 -0.195 0.024 -0.264 0.247 + 11.424 1.133 0.017 -0.446 -0.989 -0.203 0.039 -0.257 -0.084 -0.238 -0.106 -0.096 0.158 + 11.382 0.925 0.131 -0.528 -1.013 -0.347 0.103 -0.236 0.159 -0.325 -0.023 -0.126 0.066 + 10.913 1.170 -0.019 -0.525 -1.049 -0.320 0.041 -0.228 0.315 -0.403 0.057 -0.136 -0.125 + 11.315 1.169 -0.160 -0.669 -1.170 -0.014 -0.061 -0.096 0.067 -0.263 -0.016 -0.039 -0.151 + 11.754 1.077 -0.391 -0.774 -1.111 0.162 -0.002 -0.192 -0.046 -0.112 0.015 0.025 -0.253 + 11.653 1.180 -0.573 -0.891 -0.932 0.163 -0.064 -0.173 -0.047 -0.015 -0.047 0.074 -0.402 + 11.895 0.928 -0.727 -0.736 -0.863 0.152 0.020 -0.395 0.041 0.161 -0.104 0.120 -0.549 + 11.590 1.057 -0.976 -0.503 -0.736 0.147 -0.131 -0.429 0.073 0.201 -0.127 0.091 -0.580 + 11.501 1.053 -0.927 -0.505 -0.623 0.127 -0.389 -0.366 0.081 0.234 -0.154 0.124 -0.561 + 9.569 0.569 -0.341 -0.041 -0.340 0.263 -0.315 -0.362 0.086 0.110 -0.312 0.132 -0.352 + 9.357 0.651 -0.019 0.155 -0.451 0.034 -0.246 -0.340 -0.012 0.120 -0.424 0.114 -0.292 + 9.697 0.529 -0.188 0.248 -0.420 -0.098 -0.154 -0.343 -0.082 0.123 -0.380 0.056 -0.212 + 12.598 0.242 -1.067 0.005 -0.090 -0.420 -0.591 0.065 -0.269 0.501 -0.315 0.075 -0.365 + 12.535 0.485 -1.053 -0.088 -0.313 -0.279 -0.642 0.028 -0.192 0.459 -0.345 0.013 -0.367 + 12.381 0.624 -0.951 -0.122 -0.618 -0.235 -0.630 0.029 0.003 0.340 -0.353 0.011 -0.282 + 12.218 0.753 -1.033 0.032 -0.706 -0.220 -0.701 0.049 0.105 0.216 -0.342 0.085 -0.246 + 11.740 0.858 -0.761 0.097 -0.737 -0.201 -0.719 -0.134 0.101 0.213 -0.223 0.030 -0.169 + 11.105 1.074 -0.628 0.098 -0.449 -0.265 -0.652 -0.214 -0.131 0.277 -0.254 -0.090 -0.201 + 8.647 1.024 0.011 0.032 0.144 -0.140 -0.345 -0.139 -0.213 0.169 -0.175 -0.387 -0.336 + 8.681 0.897 -0.086 0.152 0.161 -0.084 -0.339 -0.009 -0.232 0.033 -0.258 -0.583 -0.061 + 8.846 0.795 -0.052 0.117 0.210 -0.318 -0.319 0.107 -0.371 0.192 -0.245 -0.602 0.048 + 8.948 0.694 -0.111 0.161 0.169 -0.317 -0.282 0.089 -0.364 0.234 -0.293 -0.552 0.026 + 8.960 0.617 -0.066 0.138 0.166 -0.351 -0.187 -0.009 -0.329 0.273 -0.330 -0.630 0.171 + 9.241 0.579 -0.146 0.080 0.219 -0.272 -0.129 -0.054 -0.428 0.315 -0.352 -0.489 0.092 + 11.549 0.272 -0.472 0.068 -0.032 -0.313 -0.525 0.062 -0.155 0.168 -0.272 -0.131 0.054 + 12.326 -0.026 -0.265 0.179 -0.460 -0.597 -0.554 0.095 -0.324 0.163 -0.049 -0.033 0.004 + 12.629 -0.197 -0.139 0.354 -0.790 -0.525 -0.464 0.058 -0.388 0.352 -0.174 0.010 -0.107 + 12.915 -0.279 -0.101 0.364 -0.817 -0.611 -0.488 0.094 -0.443 0.377 -0.157 0.016 -0.192 + 13.127 -0.390 0.062 0.293 -0.879 -0.475 -0.659 0.162 -0.511 0.449 -0.308 0.140 -0.257 + 12.885 -0.391 0.273 0.261 -0.942 -0.436 -0.586 0.044 -0.538 0.394 -0.247 0.094 -0.190 + 12.791 -0.512 0.432 0.330 -0.937 -0.410 -0.608 0.006 -0.534 0.336 -0.226 0.093 -0.193 + 12.614 -0.614 0.650 0.371 -0.919 -0.377 -0.525 -0.129 -0.502 0.281 -0.265 0.034 -0.169 + 12.017 -0.585 0.726 0.466 -0.756 -0.267 -0.508 -0.225 -0.536 0.229 -0.327 0.015 -0.137 + 11.267 -0.641 0.776 0.575 -0.741 -0.294 -0.353 -0.227 -0.607 0.212 -0.376 -0.101 -0.174 + 8.753 -0.637 0.557 0.447 -0.459 -0.239 -0.258 -0.093 -0.359 0.181 -0.310 -0.071 0.027 + 6.756 -0.300 0.521 0.181 -0.131 -0.183 0.100 -0.163 0.092 -0.008 -0.203 -0.234 -0.260 + 5.791 -0.193 0.750 0.171 0.070 -0.156 -0.146 -0.489 -0.015 -0.150 0.010 0.008 -0.285 + 4.900 0.389 0.257 0.037 -0.203 -0.210 -0.537 -0.231 -0.311 0.249 -0.157 -0.090 -0.091 + 4.958 0.350 0.149 0.083 -0.186 -0.210 -0.513 -0.152 -0.391 0.140 -0.030 0.094 -0.215 + 6.166 -0.115 -0.171 0.121 -0.445 -0.076 -0.342 -0.228 -0.143 -0.097 -0.098 0.115 -0.142 + 10.287 -1.278 -0.414 0.031 -0.511 0.003 -0.160 -0.167 0.150 0.053 -0.078 -0.112 -0.280 + 11.804 -1.488 -0.488 -0.021 -0.721 -0.076 -0.300 -0.278 -0.049 -0.145 -0.217 -0.218 -0.180 + 11.321 -0.915 0.843 -0.106 -0.617 0.039 -0.397 -0.264 -0.446 -0.076 -0.218 -0.207 -0.092 + 11.056 -0.096 1.112 0.072 -0.449 -0.382 -0.636 -0.007 -0.561 -0.168 -0.180 -0.060 -0.100 + 11.392 0.333 0.443 0.312 -0.426 -0.577 -0.696 0.088 -0.560 -0.226 -0.073 0.120 -0.278 + 11.469 0.447 -0.033 0.290 -0.366 -0.541 -0.705 0.007 -0.421 -0.177 -0.173 0.236 -0.393 + 11.602 0.305 -0.175 0.348 -0.461 -0.417 -0.848 -0.047 -0.409 -0.204 -0.223 0.287 -0.306 + 11.257 0.162 -0.397 0.469 -0.282 -0.228 -0.757 -0.024 -0.329 -0.166 -0.344 0.248 -0.301 + 6.982 -0.372 0.291 0.512 -0.152 -0.182 -0.791 -0.041 -0.059 -0.174 -0.114 0.317 -0.061 + 6.412 -0.225 0.282 0.635 -0.157 0.027 -0.616 0.140 -0.003 -0.008 -0.001 0.112 -0.002 + 5.704 0.188 -0.346 0.267 -0.032 -0.086 -0.344 -0.052 -0.095 0.068 -0.030 0.141 -0.110 + 8.183 0.088 -1.311 -0.272 -0.114 -0.095 -0.377 -0.238 -0.234 -0.222 -0.166 -0.115 -0.031 + 8.202 -0.811 -0.416 -0.149 -0.041 -0.082 -0.406 -0.114 -0.130 -0.199 -0.063 -0.275 -0.011 + 7.941 -0.687 0.128 -0.112 -0.334 -0.203 -0.290 0.036 -0.153 0.013 -0.146 -0.105 -0.009 + 9.037 -0.888 -0.163 0.129 -0.260 -0.156 -0.207 0.075 -0.018 -0.089 -0.178 0.033 -0.087 + 10.835 -0.624 -0.631 -0.010 -0.131 -0.136 -0.190 0.094 0.003 -0.114 -0.297 -0.146 -0.156 + 11.252 -0.274 -0.477 -0.028 0.036 -0.063 -0.161 -0.040 -0.030 0.003 -0.234 -0.240 -0.144 + 11.901 0.185 -0.203 0.167 0.175 -0.177 -0.331 -0.255 -0.038 -0.159 -0.327 -0.295 -0.118 + 12.889 0.323 0.006 0.456 0.068 -0.121 -0.487 -0.408 -0.114 -0.164 -0.308 -0.420 -0.379 + 12.295 -0.016 -0.146 0.426 0.136 0.143 -0.435 -0.216 -0.144 -0.120 -0.328 -0.336 -0.236 + 11.379 0.361 -0.352 0.367 0.358 0.046 -0.543 -0.303 -0.278 -0.254 -0.142 -0.429 -0.134 + 11.494 1.385 -0.992 -0.472 -0.047 -0.095 -0.717 -0.317 -0.229 -0.167 -0.066 -0.178 -0.157 + 10.826 2.063 -0.889 -0.391 -0.015 0.124 -0.684 -0.484 -0.152 -0.120 -0.138 -0.051 -0.124 + 9.641 2.226 -0.408 -0.450 0.103 0.252 -0.503 -0.360 -0.099 -0.242 -0.080 -0.193 -0.165 + 6.752 1.691 0.255 -0.075 0.078 0.056 -0.247 -0.077 -0.047 -0.053 -0.057 -0.024 -0.181 + 4.726 0.914 0.104 0.093 0.155 0.265 -0.193 -0.250 -0.133 0.047 0.037 0.041 -0.081 + 4.444 0.706 -0.032 0.017 -0.009 0.118 -0.138 -0.240 -0.062 0.004 0.070 0.058 -0.102 + 4.429 0.413 -0.115 -0.024 -0.096 -0.113 -0.353 -0.281 -0.095 0.181 0.131 0.045 0.097 + 4.322 0.263 -0.009 -0.072 0.087 -0.048 -0.339 -0.231 -0.069 -0.004 0.061 -0.059 -0.009 + 4.685 0.340 -0.036 -0.031 0.038 -0.023 -0.173 -0.296 -0.232 0.154 -0.138 -0.011 -0.075 + 7.301 -0.821 0.030 0.269 0.042 -0.103 -0.370 -0.048 -0.148 -0.182 0.064 -0.148 0.115 + 11.949 0.507 0.313 0.046 -0.393 -0.228 -0.160 -0.103 -0.334 -0.364 -0.141 -0.250 -0.047 + 13.325 1.250 0.110 0.474 -0.511 -0.402 0.183 -0.259 -0.392 -0.313 -0.230 -0.174 -0.120 + 11.355 0.943 0.418 0.581 -0.565 -0.515 0.069 -0.215 -0.226 -0.126 -0.281 -0.142 -0.080 + 9.617 -0.447 0.460 0.627 -0.095 -0.394 0.207 -0.334 -0.494 -0.192 -0.272 -0.117 -0.131 + 10.564 -0.336 0.276 0.406 -0.430 -0.204 -0.184 -0.345 -0.364 -0.262 -0.247 -0.176 -0.121 + 11.375 -0.394 0.201 0.722 -0.212 -0.387 -0.263 -0.070 -0.635 -0.136 -0.230 -0.197 -0.082 + 11.711 -0.593 0.273 0.737 -0.261 -0.238 -0.179 -0.156 -0.755 -0.015 -0.380 -0.135 -0.142 + 11.496 -0.610 0.296 0.783 -0.190 -0.422 0.016 -0.086 -0.873 -0.010 -0.321 -0.246 -0.100 + 10.798 -0.298 -0.085 0.652 0.259 -0.533 -0.185 0.181 -0.974 -0.119 -0.393 -0.204 -0.085 + 9.375 0.454 -0.086 0.513 0.542 -0.468 -0.311 0.424 -0.788 0.061 -0.244 -0.200 -0.132 + 6.855 0.683 0.259 -0.052 0.281 0.023 -0.096 0.090 -0.305 0.097 -0.078 -0.161 -0.050 + 8.810 -0.818 0.373 0.067 0.537 -0.351 -0.029 0.033 0.110 -0.214 -0.513 0.047 -0.034 + 9.127 -1.082 0.092 0.191 0.337 -0.236 0.066 -0.072 0.108 -0.335 -0.464 0.117 -0.059 + 8.172 -0.687 -0.169 0.067 0.155 -0.029 0.070 -0.085 0.082 -0.338 -0.389 0.043 0.015 + 11.382 -0.451 0.220 0.125 -0.100 -0.028 -0.106 -0.125 -0.192 -0.152 -0.156 -0.019 -0.059 + 12.338 1.087 0.193 -0.326 -0.398 -0.210 -0.181 -0.044 -0.187 -0.263 -0.196 -0.015 0.095 + 12.217 1.199 0.340 -0.037 -0.444 -0.054 -0.318 -0.193 -0.255 -0.309 -0.239 -0.160 0.003 + 11.684 1.316 0.505 -0.121 -0.615 0.183 -0.164 -0.151 -0.089 -0.370 -0.188 -0.183 -0.040 + 11.457 1.061 0.806 -0.378 -1.005 0.011 0.024 -0.323 -0.146 -0.504 -0.104 -0.210 0.044 + 10.755 1.079 0.864 -0.760 -0.809 -0.031 -0.022 -0.323 -0.085 -0.412 -0.086 -0.048 0.114 + 10.389 0.411 0.813 -0.772 -0.662 -0.085 -0.085 -0.157 -0.265 -0.312 -0.239 0.158 -0.197 + 7.438 0.309 0.663 0.004 -0.389 -0.016 0.063 0.080 -0.208 -0.139 -0.356 0.110 -0.092 + 5.754 0.217 0.596 0.438 -0.178 -0.217 -0.036 -0.171 -0.017 0.002 -0.227 0.014 -0.103 + 5.407 0.179 0.370 0.349 -0.039 -0.120 0.050 -0.283 -0.004 -0.197 -0.089 0.180 -0.085 + 8.733 -0.956 -0.070 0.414 -0.383 -0.022 -0.329 0.046 0.139 0.055 -0.113 -0.163 -0.129 + 10.833 -1.266 0.197 0.016 -0.410 0.056 -0.377 0.001 0.105 0.107 -0.109 -0.207 -0.200 + 10.009 -0.656 0.934 -0.084 -0.470 -0.011 -0.429 -0.292 -0.410 -0.135 -0.195 -0.050 -0.295 + 10.714 0.176 0.468 -0.075 -0.335 0.339 -0.099 -0.455 -0.558 -0.179 -0.039 0.123 -0.261 + 8.317 0.965 0.537 -0.310 -0.154 0.440 -0.178 -0.524 -0.383 -0.184 0.136 0.132 -0.220 + 5.658 0.918 0.346 0.152 -0.085 0.169 0.200 -0.236 -0.390 -0.158 -0.020 -0.270 -0.151 + 5.454 0.979 0.665 -0.090 -0.048 0.166 0.315 -0.063 -0.307 -0.275 -0.197 -0.019 -0.073 + 5.633 1.076 0.456 -0.018 -0.051 0.102 0.150 -0.131 -0.251 -0.134 -0.121 -0.154 -0.032 + 5.926 1.003 0.369 0.220 -0.241 0.002 0.241 -0.049 -0.295 -0.221 -0.047 0.061 -0.056 + 5.415 0.709 0.387 0.259 -0.049 -0.125 0.212 0.010 -0.087 -0.066 -0.039 -0.003 -0.253 + 5.204 0.726 0.360 0.076 0.054 -0.034 0.045 -0.012 0.003 0.015 -0.203 0.006 -0.117 + 4.853 0.660 0.162 0.226 0.294 0.130 0.207 0.043 -0.219 0.052 -0.108 -0.171 -0.140 + 10.083 0.531 0.477 0.095 -0.048 -0.088 -0.322 -0.181 -0.320 -0.279 -0.050 -0.180 -0.112 + 11.639 1.296 0.703 0.037 -0.097 -0.191 -0.429 -0.129 -0.274 -0.451 -0.159 -0.322 -0.121 + 10.325 1.142 0.805 0.051 -0.076 -0.005 -0.471 -0.179 -0.155 -0.180 -0.037 -0.242 -0.155 + 8.349 0.519 0.830 0.117 -0.182 -0.121 -0.269 -0.057 -0.179 0.030 -0.071 -0.258 -0.137 + 8.129 0.756 1.059 -0.601 -0.726 -0.403 -0.366 -0.118 -0.279 -0.047 -0.445 -0.080 -0.251 + 9.134 0.536 1.161 -0.491 -0.835 -0.285 -0.478 -0.119 -0.154 -0.022 -0.543 -0.054 -0.257 + 9.578 0.331 1.196 -0.588 -1.067 -0.263 -0.150 -0.053 -0.180 -0.351 -0.321 -0.199 -0.228 + 10.686 0.241 0.386 -0.289 -1.002 0.031 -0.223 -0.299 -0.013 -0.513 -0.413 -0.209 -0.200 + 11.300 0.566 -0.254 -0.057 -0.560 0.288 -0.147 -0.801 -0.055 -0.285 -0.358 -0.093 -0.139 + 11.794 0.646 -0.782 0.737 -0.342 -0.022 -0.482 -0.603 -0.125 -0.193 -0.289 -0.170 -0.131 + 11.913 0.158 -0.501 1.148 -0.341 -0.363 -0.551 -0.239 -0.366 -0.165 -0.397 -0.136 -0.102 + 11.352 -0.183 0.060 1.122 -0.197 -0.643 -0.216 -0.211 -0.618 0.097 -0.520 -0.058 -0.335 + 10.868 -0.603 0.502 0.883 -0.058 -0.341 -0.293 -0.165 -0.560 0.113 -0.416 -0.136 -0.278 + 10.294 -0.501 0.379 1.092 -0.383 -0.133 -0.189 -0.163 -0.518 -0.009 -0.250 -0.183 -0.265 + 10.088 -0.558 0.452 0.879 -0.206 -0.197 -0.049 -0.170 -0.662 0.048 -0.275 -0.134 -0.119 + 10.542 -0.826 0.462 0.843 -0.206 -0.298 -0.164 0.039 -0.631 0.134 -0.350 -0.133 -0.131 + 10.213 -0.586 -0.077 1.050 -0.014 -0.481 -0.152 0.131 -0.795 0.270 -0.265 -0.147 -0.225 + 7.925 0.198 -0.191 0.771 0.095 -0.385 -0.021 0.493 -0.745 0.097 -0.411 -0.240 -0.259 + 5.184 0.937 0.208 0.294 -0.079 0.045 0.292 0.190 -0.345 -0.021 -0.239 -0.150 -0.054 + 5.138 0.856 0.051 0.464 -0.157 -0.247 0.285 0.061 -0.335 0.156 -0.055 -0.235 -0.110 + 4.742 0.702 0.044 0.426 0.124 -0.138 0.144 0.023 -0.413 0.150 -0.137 -0.028 -0.034 + 4.537 0.517 -0.151 0.282 0.034 -0.105 -0.007 -0.098 -0.419 0.006 -0.139 -0.014 -0.075 + 4.011 0.459 -0.331 0.109 0.078 -0.055 0.057 -0.125 -0.380 0.110 0.032 0.138 -0.102 + 7.172 -0.373 -0.102 0.097 0.023 0.045 -0.070 -0.040 -0.120 -0.161 -0.062 -0.024 -0.112 + 12.427 1.041 0.148 -0.088 -0.209 -0.353 -0.319 -0.092 0.032 -0.163 -0.243 -0.179 -0.368 + 12.816 1.318 0.143 0.118 -0.198 -0.290 -0.342 -0.153 0.035 -0.214 -0.281 -0.133 -0.308 + 11.135 0.884 0.817 0.233 -0.296 -0.221 -0.169 -0.009 -0.041 -0.216 -0.302 -0.064 -0.343 + 9.090 -0.086 0.739 0.590 0.043 -0.068 0.071 0.004 -0.015 -0.191 -0.130 0.040 -0.262 + 7.857 -0.547 0.456 0.272 -0.070 0.010 0.051 0.084 -0.065 -0.168 -0.147 -0.004 -0.192 + 7.601 -0.882 0.354 0.362 0.147 -0.319 -0.163 -0.084 0.091 -0.106 -0.239 -0.026 -0.060 + 8.490 -0.520 0.173 0.298 0.022 -0.208 -0.046 0.011 0.001 -0.208 -0.271 -0.007 -0.051 + 9.776 -0.310 0.179 0.212 -0.047 -0.241 -0.038 0.029 0.111 -0.397 -0.314 0.035 -0.108 + 8.920 -0.383 0.292 0.170 -0.063 -0.304 -0.199 -0.132 0.050 -0.048 -0.348 0.121 -0.234 + 9.685 0.177 -0.235 0.450 -0.480 -0.505 -0.404 -0.217 -0.085 0.118 -0.305 0.057 -0.157 + 11.714 0.399 -0.550 0.075 -0.437 -0.390 -0.724 0.170 -0.047 0.172 -0.439 0.246 -0.236 + 12.050 0.422 -0.421 -0.053 -0.556 -0.308 -1.007 0.376 0.054 0.108 -0.246 0.308 -0.341 + 11.953 0.268 -0.281 0.263 -0.866 -0.117 -0.783 0.303 -0.012 0.029 -0.122 0.240 -0.439 + 12.237 0.213 -0.113 0.007 -0.659 -0.147 -0.842 0.495 -0.260 0.094 -0.105 0.175 -0.500 + 12.414 -0.078 -0.004 0.221 -0.724 -0.238 -0.589 0.361 -0.355 0.179 -0.021 -0.039 -0.385 + 12.094 -0.254 0.256 0.274 -0.863 -0.170 -0.397 0.137 -0.268 0.179 -0.014 -0.148 -0.287 + 11.288 -0.341 0.407 0.341 -0.877 -0.150 -0.183 -0.082 -0.155 0.250 -0.124 -0.148 -0.092 + 10.395 -0.195 0.496 0.014 -0.260 -0.356 -0.164 0.016 -0.078 0.019 -0.140 -0.194 -0.020 + 9.806 0.247 0.479 -0.245 0.174 -0.550 -0.189 0.178 -0.233 0.046 -0.126 -0.303 0.065 + 9.770 0.367 0.409 -0.292 0.191 -0.574 -0.218 0.285 -0.407 0.177 -0.180 -0.320 0.052 + 9.632 0.356 0.406 -0.307 0.245 -0.614 -0.140 0.286 -0.485 0.186 -0.256 -0.310 0.093 + 9.100 0.377 0.454 -0.144 -0.024 -0.737 0.178 0.140 -0.417 0.150 -0.228 -0.386 0.130 + 8.672 0.207 0.430 0.194 0.062 -0.920 0.081 0.140 -0.318 -0.004 -0.247 -0.342 0.153 + 8.799 0.317 -0.081 0.504 -0.096 -0.683 -0.241 0.159 -0.134 0.133 -0.142 -0.367 0.131 + 9.461 0.230 -0.336 0.264 0.240 -0.501 -0.477 -0.211 -0.122 0.131 -0.224 -0.284 0.070 + 9.739 -0.200 -0.031 0.011 0.191 -0.597 -0.423 -0.141 0.127 -0.022 -0.285 -0.144 0.028 + 9.074 -0.835 0.411 0.003 0.045 -0.535 -0.216 -0.018 0.089 -0.169 -0.213 -0.124 0.080 + 8.575 -1.213 0.503 0.019 0.111 -0.320 -0.271 -0.190 -0.060 -0.151 -0.194 -0.020 0.137 + 8.875 -1.126 0.339 -0.418 0.163 -0.311 -0.143 -0.044 -0.078 -0.140 -0.194 -0.035 -0.074 + 8.976 -1.375 0.384 -0.404 0.142 -0.287 -0.116 -0.019 -0.049 -0.020 -0.146 -0.124 -0.120 + 9.366 -1.386 0.268 -0.498 0.158 -0.359 -0.061 -0.008 -0.001 -0.042 -0.113 -0.099 -0.004 + 10.069 -1.109 0.495 -0.106 0.199 -0.343 -0.316 -0.133 0.068 -0.113 -0.191 -0.053 -0.090 + 10.990 -0.533 0.454 -0.121 0.047 -0.517 -0.370 -0.376 -0.167 0.080 -0.255 -0.072 -0.185 + 11.445 0.634 -0.146 -0.169 -0.489 -0.606 -0.341 -0.454 0.055 0.006 -0.378 0.191 -0.075 + 11.821 1.043 -0.738 -0.189 -0.429 -0.570 -0.399 -0.379 0.137 0.131 -0.352 0.210 -0.094 + 12.763 0.637 -0.913 -0.122 -0.471 -0.474 -0.470 -0.065 0.126 0.031 -0.265 0.029 -0.066 + 13.209 0.305 -0.873 -0.086 -0.479 -0.606 -0.526 0.143 0.108 0.018 -0.331 0.141 -0.127 + 12.880 0.236 -0.628 -0.184 -0.593 -0.567 -0.547 0.295 0.003 0.163 -0.461 0.190 -0.247 + 13.181 0.385 -0.789 -0.373 -0.571 -0.294 -0.775 0.233 0.175 0.052 -0.409 0.082 -0.242 + 13.209 0.434 -0.914 -0.440 -0.441 -0.427 -0.669 0.331 0.043 0.002 -0.267 -0.068 -0.155 + 13.574 0.066 -0.987 -0.253 -0.559 -0.449 -0.462 0.261 0.040 0.127 -0.396 -0.072 -0.123 + 13.058 0.359 -0.956 -0.441 -0.550 -0.299 -0.676 0.317 -0.061 0.284 -0.451 -0.086 -0.146 + 13.524 0.139 -1.084 -0.299 -0.558 -0.495 -0.467 0.271 0.028 0.200 -0.437 -0.129 -0.151 + 13.290 0.254 -1.039 -0.330 -0.614 -0.401 -0.490 0.287 -0.074 0.261 -0.396 -0.201 -0.141 + 13.654 0.205 -1.037 -0.378 -0.541 -0.379 -0.506 0.314 -0.192 0.323 -0.415 -0.243 -0.092 + 13.496 0.181 -1.052 -0.367 -0.596 -0.270 -0.584 0.322 -0.128 0.233 -0.367 -0.246 -0.022 + 13.145 0.377 -1.140 -0.474 -0.483 -0.302 -0.555 0.363 -0.131 0.236 -0.424 -0.211 -0.044 + 12.916 0.407 -1.040 -0.720 -0.374 -0.383 -0.417 0.291 -0.132 0.311 -0.411 -0.377 -0.035 + 13.068 0.506 -1.219 -0.660 -0.345 -0.302 -0.540 0.312 -0.160 0.383 -0.440 -0.426 -0.011 + 13.037 0.651 -1.218 -0.785 -0.286 -0.127 -0.582 0.181 -0.191 0.446 -0.419 -0.415 -0.043 + 12.900 0.860 -1.484 -0.600 -0.336 -0.332 -0.318 -0.024 -0.089 0.358 -0.314 -0.349 -0.167 + 12.268 0.918 -1.089 -0.922 -0.389 -0.188 -0.376 0.025 -0.189 0.427 -0.259 -0.423 -0.113 + 11.904 0.949 -0.867 -1.117 -0.402 -0.075 -0.460 0.015 -0.266 0.537 -0.218 -0.402 -0.176 + 12.205 0.904 -0.716 -0.994 -0.577 -0.022 -0.480 -0.021 -0.361 0.507 -0.099 -0.326 -0.238 + 11.893 1.098 -0.645 -1.109 -0.395 -0.062 -0.550 0.032 -0.371 0.332 0.037 -0.287 -0.227 + 11.337 1.112 -0.548 -1.052 -0.420 -0.141 -0.342 -0.147 -0.387 0.304 0.102 -0.214 -0.291 + 11.228 1.040 -0.606 -0.897 -0.520 -0.191 -0.364 -0.210 -0.438 0.354 0.174 -0.199 -0.299 + 11.475 0.934 -0.626 -0.618 -0.570 -0.157 -0.450 -0.230 -0.493 0.344 0.132 -0.189 -0.222 + 11.276 0.929 -0.582 -0.791 -0.334 -0.390 -0.418 -0.509 -0.299 0.186 0.061 -0.146 -0.181 + 9.295 0.823 -0.370 -0.761 -0.232 -0.449 -0.424 -0.664 -0.161 0.252 0.241 -0.074 -0.113 + 9.190 0.857 -0.255 -0.899 0.101 -0.385 -0.499 -0.718 -0.113 0.041 0.063 -0.068 -0.136 + 6.107 0.455 -0.412 -0.514 -0.080 -0.570 -0.451 -0.675 0.032 0.528 0.226 -0.052 -0.109 + 5.610 0.533 -0.667 -0.296 -0.096 -0.433 -0.414 -0.232 0.037 0.407 0.042 -0.102 -0.177 + 5.263 0.793 -0.657 -0.338 -0.267 -0.358 -0.297 -0.121 0.052 0.389 0.108 -0.054 -0.099 + 4.894 0.600 -0.646 -0.418 -0.322 -0.381 -0.397 -0.082 0.152 0.297 0.103 -0.015 -0.092 + 4.650 0.604 -0.496 -0.451 -0.221 -0.309 -0.459 0.064 0.193 0.341 0.061 0.002 -0.166 + 4.469 0.524 -0.408 -0.188 -0.347 -0.534 -0.523 -0.103 0.003 0.312 0.079 -0.051 -0.170 + 4.678 0.624 -0.594 -0.340 -0.125 -0.248 -0.282 0.030 0.196 0.221 0.007 0.062 -0.104 + 5.063 0.702 -0.454 -0.279 -0.136 -0.212 -0.333 -0.217 0.003 0.297 0.090 0.026 -0.278 + 4.959 0.364 -0.692 -0.237 -0.085 -0.127 -0.051 -0.236 0.062 0.269 0.038 0.121 -0.347 + 8.947 -0.232 -0.631 -0.491 -0.152 -0.326 -0.379 -0.180 -0.042 -0.055 0.050 -0.046 -0.202 + 9.304 -0.203 -0.379 -0.499 -0.029 -0.342 -0.413 -0.209 0.020 -0.048 0.063 -0.056 -0.253 + 8.362 -0.936 -0.215 -0.450 0.142 -0.285 -0.227 -0.187 -0.105 -0.003 0.083 -0.195 -0.079 + 9.424 -1.377 -0.422 -0.595 0.306 -0.172 0.005 -0.044 -0.066 -0.175 -0.055 -0.043 0.014 + 10.187 -1.235 -0.385 -0.590 0.087 -0.229 -0.155 -0.040 0.050 0.035 -0.004 0.007 0.057 + 10.469 -1.092 -0.200 -0.559 -0.001 -0.267 -0.279 -0.265 -0.081 -0.177 -0.088 0.014 0.020 + 10.581 -1.053 -0.156 -0.552 0.071 -0.234 -0.043 -0.148 -0.057 -0.185 -0.224 -0.096 -0.080 + 10.604 -0.849 -0.004 -0.721 -0.033 -0.337 -0.229 0.027 -0.096 -0.130 -0.179 0.034 -0.119 + 10.499 -1.006 -0.100 -0.615 -0.105 -0.317 -0.286 -0.050 0.138 0.027 -0.221 0.013 0.076 + 10.413 -1.058 -0.164 -0.659 -0.161 -0.372 -0.241 -0.104 0.071 0.112 -0.372 0.082 -0.076 + 10.355 -0.152 0.386 -0.455 -0.207 -0.450 -0.524 -0.487 0.032 0.094 -0.394 -0.061 -0.017 + 10.454 0.667 0.259 -0.356 -0.474 -0.115 -0.575 -0.788 0.106 0.001 -0.229 0.080 -0.019 + 11.092 0.648 0.183 -0.468 -0.599 0.141 -0.769 -0.807 0.048 0.265 -0.392 0.176 -0.130 + 11.966 0.382 0.152 -0.426 -0.516 -0.143 -0.680 -0.631 0.031 0.351 -0.478 0.119 -0.128 + 12.270 0.246 -0.091 -0.392 -0.456 -0.271 -0.650 -0.560 0.159 0.243 -0.402 0.070 -0.155 + 12.497 0.031 -0.235 -0.349 -0.486 -0.446 -0.588 -0.462 0.233 0.219 -0.352 0.066 -0.075 + 12.430 0.070 -0.268 -0.299 -0.544 -0.404 -0.612 -0.379 0.183 0.292 -0.364 0.039 -0.066 + 12.602 0.099 -0.313 -0.254 -0.636 -0.297 -0.570 -0.349 0.164 0.274 -0.335 -0.139 -0.023 + 12.733 0.094 -0.602 -0.270 -0.559 -0.247 -0.537 -0.375 0.210 0.223 -0.323 -0.143 -0.030 + 11.724 0.467 -0.523 -0.474 -0.620 -0.054 -0.718 -0.311 0.232 0.295 -0.277 -0.101 -0.029 + 12.620 0.220 -0.712 -0.366 -0.586 -0.238 -0.565 -0.297 0.194 0.256 -0.242 -0.199 -0.011 + 12.506 0.419 -0.648 -0.397 -0.591 -0.213 -0.498 -0.357 0.180 0.268 -0.297 -0.272 0.027 + 11.901 0.784 -0.739 -0.455 -0.543 -0.113 -0.595 -0.254 0.102 0.236 -0.257 -0.230 -0.088 + 11.447 0.945 -0.754 -0.614 -0.453 -0.089 -0.614 -0.373 0.181 0.304 -0.259 -0.249 -0.010 + 12.129 0.726 -0.923 -0.390 -0.492 -0.217 -0.518 -0.431 0.214 0.260 -0.190 -0.258 -0.023 + 12.380 0.646 -0.864 -0.347 -0.551 -0.154 -0.525 -0.335 0.133 0.153 -0.142 -0.266 -0.031 + 12.259 0.639 -0.928 -0.225 -0.636 -0.183 -0.317 -0.375 0.109 0.168 -0.219 -0.200 -0.092 + 12.049 0.541 -1.082 -0.207 -0.659 -0.171 -0.189 -0.415 0.240 0.097 -0.121 -0.246 -0.062 + 12.117 0.256 -1.080 -0.202 -0.620 -0.156 -0.088 -0.414 0.303 0.050 -0.108 -0.242 -0.211 + 11.589 0.191 -0.911 -0.177 -0.438 -0.169 -0.166 -0.319 0.374 0.076 -0.026 -0.127 -0.269 + 10.906 0.336 -0.830 -0.177 -0.270 -0.045 -0.091 -0.536 0.351 -0.093 0.027 -0.164 -0.416 + 9.578 0.559 -0.562 -0.354 -0.137 0.078 -0.124 -0.489 0.318 -0.139 0.034 -0.263 -0.454 + 8.489 0.610 -0.369 -0.376 -0.117 0.107 -0.013 -0.412 0.333 -0.175 0.143 -0.223 -0.446 + 7.304 0.230 -0.196 -0.228 -0.068 0.073 -0.010 -0.252 0.249 -0.229 -0.065 -0.104 -0.343 + 6.843 -0.141 -0.382 -0.502 -0.049 0.306 0.070 0.071 0.186 -0.029 -0.097 -0.245 -0.265 + 6.161 -0.260 -0.069 -0.453 -0.045 0.140 -0.174 -0.024 0.311 0.043 -0.103 -0.146 -0.286 + 5.613 -0.262 -0.205 -0.558 -0.150 -0.139 -0.147 -0.022 -0.076 0.079 0.003 -0.092 -0.065 + 5.307 -0.175 0.067 -0.299 -0.306 -0.243 -0.125 -0.073 -0.059 0.132 -0.126 -0.135 -0.012 + 5.285 -0.028 -0.232 -0.067 -0.070 -0.203 -0.352 -0.192 -0.068 0.127 -0.043 0.026 -0.157 + 5.831 -0.244 -0.060 -0.125 0.167 -0.335 -0.411 -0.079 0.001 0.273 -0.084 -0.016 -0.067 + 5.718 -0.466 -0.300 -0.141 0.258 -0.140 -0.443 -0.138 0.172 0.255 -0.254 -0.035 -0.037 + 5.545 -0.327 -0.335 -0.167 0.294 -0.118 -0.345 0.036 0.011 0.156 -0.164 -0.010 0.014 + 4.629 0.008 -0.362 0.004 -0.018 -0.121 -0.120 -0.054 -0.056 0.203 0.015 -0.114 -0.044 + 6.448 -0.302 -0.300 -0.004 -0.061 -0.085 -0.322 -0.036 0.017 -0.034 -0.117 -0.078 0.040 + 9.697 -0.420 -0.362 -0.243 -0.072 -0.081 -0.466 -0.121 -0.001 -0.153 -0.185 -0.117 -0.015 + 7.535 -0.308 -0.300 -0.082 0.043 -0.073 -0.475 -0.077 0.069 -0.190 -0.227 -0.129 -0.037 + 7.413 -0.229 -0.381 0.120 0.077 -0.016 -0.286 -0.081 -0.118 -0.317 -0.511 -0.185 0.033 + 7.881 -0.190 -0.538 -0.169 -0.083 -0.067 -0.355 -0.099 0.056 -0.172 -0.203 0.031 -0.149 + 8.241 -0.390 -0.537 -0.254 -0.001 -0.211 -0.331 -0.148 -0.186 -0.200 -0.127 0.045 -0.068 + 8.608 -0.520 -0.505 -0.189 0.172 -0.198 -0.287 -0.028 -0.086 -0.016 -0.346 -0.199 -0.097 + 8.857 -0.686 -0.546 -0.268 -0.096 -0.173 -0.255 0.108 -0.131 -0.148 -0.205 0.190 0.044 + 9.050 -0.641 -0.598 -0.212 -0.131 -0.341 -0.452 -0.027 -0.285 -0.307 -0.278 0.177 -0.035 + 9.052 -0.719 -0.425 -0.214 -0.114 -0.456 -0.353 -0.022 -0.181 -0.225 -0.233 0.177 -0.040 + 8.926 -0.782 -0.471 0.051 -0.063 -0.446 -0.410 -0.065 -0.061 -0.297 -0.354 0.086 -0.108 + 9.279 -0.729 -0.359 -0.224 -0.231 -0.450 -0.343 0.063 -0.074 -0.354 -0.162 0.123 -0.056 + 9.357 -1.006 -0.525 -0.150 -0.193 -0.325 -0.256 0.065 -0.009 -0.359 -0.217 0.176 0.117 + 9.325 -1.002 -0.495 -0.232 -0.197 -0.370 -0.295 -0.010 -0.022 -0.211 -0.165 0.269 0.158 + 8.997 -0.906 -0.431 -0.173 -0.165 -0.440 -0.426 -0.060 -0.101 0.037 -0.074 0.243 -0.074 + 8.713 -0.943 -0.491 -0.188 -0.272 -0.358 -0.247 0.085 -0.061 0.104 -0.190 0.206 -0.115 + 8.861 -0.984 -0.473 -0.134 -0.358 -0.400 -0.568 0.007 -0.009 0.036 -0.109 0.209 -0.034 + 9.168 -0.872 -0.181 0.038 -0.175 -0.554 -0.500 -0.090 0.001 -0.117 -0.348 0.010 -0.084 + 9.167 -0.967 -0.389 0.221 -0.252 -0.621 -0.506 -0.024 0.149 -0.058 -0.361 -0.007 -0.081 + 9.123 -1.212 -0.440 -0.039 -0.423 -0.569 -0.573 -0.008 -0.016 -0.091 -0.247 0.047 0.141 + 9.134 -1.156 -0.323 -0.197 -0.293 -0.365 -0.411 0.163 -0.025 -0.079 -0.187 -0.046 -0.020 + 8.890 -1.078 -0.261 -0.323 -0.253 -0.273 -0.465 0.152 0.145 0.114 -0.205 -0.047 -0.035 + 9.133 -1.137 -0.341 -0.129 -0.126 -0.444 -0.569 -0.000 0.171 -0.162 -0.214 0.074 -0.064 + 9.276 -0.968 -0.440 -0.286 -0.063 -0.431 -0.509 0.018 0.058 -0.131 -0.184 0.114 -0.214 + 10.044 -0.738 -0.290 -0.206 -0.168 -0.239 -0.431 0.246 0.044 0.115 -0.259 0.043 -0.057 + 9.973 -0.964 -0.340 -0.068 -0.135 -0.388 -0.408 0.298 0.032 0.062 -0.226 -0.051 -0.116 + 9.684 -1.140 -0.344 -0.094 -0.036 -0.707 -0.742 0.088 -0.119 -0.120 -0.243 0.113 -0.235 + 9.338 -1.395 -0.220 -0.040 -0.167 -0.612 -0.622 0.118 0.032 -0.001 -0.212 0.236 -0.051 + 8.999 -1.190 -0.305 0.101 -0.121 -0.658 -0.652 0.013 0.024 0.062 -0.100 0.244 -0.043 + 8.962 -0.736 -0.277 0.089 -0.038 -0.606 -0.661 0.049 -0.203 -0.044 -0.088 0.287 -0.059 + 8.541 -0.797 -0.471 0.041 0.081 -0.683 -0.693 -0.098 -0.112 -0.006 0.009 0.453 0.008 + 8.441 -1.054 -0.161 0.003 0.138 -0.740 -0.725 -0.172 -0.064 -0.023 -0.198 0.330 0.061 + 8.529 -0.872 0.037 0.200 0.188 -0.844 -0.763 -0.038 -0.138 0.006 -0.102 0.239 0.051 + 8.775 -0.784 0.030 0.035 0.010 -0.692 -0.607 -0.019 -0.174 0.003 -0.235 0.225 0.157 + 8.385 -0.787 0.191 0.077 0.173 -0.719 -0.762 0.081 -0.247 -0.157 -0.213 0.212 0.112 + 8.065 -0.620 -0.084 0.102 0.155 -0.418 -0.706 0.045 -0.277 -0.037 -0.267 0.113 0.067 + 8.132 -0.448 -0.074 -0.068 0.226 -0.165 -0.656 -0.108 -0.072 0.074 -0.026 0.270 -0.033 + 8.076 -0.416 0.174 0.064 0.311 -0.113 -0.523 -0.143 -0.061 -0.061 -0.219 0.192 -0.035 + 7.653 -0.657 0.174 -0.041 0.347 -0.465 -0.756 -0.078 -0.173 -0.195 -0.088 0.211 0.082 + 7.020 -0.640 0.272 0.021 0.316 -0.604 -0.579 -0.139 -0.118 -0.022 -0.220 0.190 -0.012 + 7.368 -0.539 0.090 0.077 0.481 -0.513 -0.451 0.032 -0.063 -0.243 -0.312 0.229 0.020 + 7.114 -0.394 -0.155 0.196 0.343 -0.318 -0.434 0.082 0.060 -0.114 -0.296 0.342 -0.009 + 6.740 -0.270 0.159 0.300 0.280 -0.170 -0.399 0.104 0.060 -0.034 -0.162 0.185 -0.161 + 6.369 -0.354 -0.137 0.157 0.276 -0.179 -0.438 -0.098 -0.116 -0.163 -0.229 0.139 0.095 + 5.833 -0.119 -0.096 0.340 0.345 -0.328 -0.385 -0.012 -0.032 -0.370 -0.244 0.130 0.004 + 5.315 -0.347 -0.090 0.089 0.469 -0.375 -0.421 0.185 -0.056 -0.321 -0.122 0.287 0.166 + 8.295 1.522 0.206 -0.141 -0.241 -0.593 -0.184 -0.103 -0.244 -0.073 -0.221 -0.093 -0.101 + 9.609 1.776 0.115 0.038 -0.407 -0.682 -0.113 -0.272 -0.203 -0.106 -0.201 -0.100 -0.168 + 6.939 1.597 0.558 -0.417 -0.660 -0.740 -0.354 -0.219 -0.130 -0.169 -0.241 0.066 0.075 + 6.329 1.059 0.737 -0.195 -0.637 -0.477 -0.278 0.136 0.087 -0.102 -0.018 0.000 -0.145 + 5.722 0.759 0.798 -0.000 -0.385 -0.311 -0.148 0.036 -0.132 -0.247 -0.021 0.055 -0.140 + 4.844 0.321 0.608 0.069 -0.160 -0.359 -0.303 -0.056 0.082 -0.007 0.012 0.028 -0.124 + 4.496 0.454 0.356 -0.054 -0.023 -0.037 -0.201 0.048 -0.161 -0.124 -0.051 -0.051 -0.163 + 4.434 0.314 0.150 0.118 -0.011 -0.008 -0.154 0.097 0.029 -0.024 -0.135 -0.176 -0.382 + 4.824 0.407 0.315 0.137 0.077 -0.110 -0.163 0.026 -0.239 0.038 -0.076 -0.031 -0.250 + 4.798 0.199 0.170 -0.033 -0.035 -0.131 -0.127 0.148 -0.165 -0.121 -0.078 0.100 -0.232 + 4.787 0.159 0.198 0.067 -0.088 -0.228 -0.232 0.086 -0.177 -0.107 -0.018 0.096 -0.085 + 4.866 0.293 0.046 -0.094 -0.085 -0.153 -0.228 0.035 -0.071 -0.246 -0.067 0.047 -0.068 + 5.444 0.693 0.266 -0.047 -0.086 -0.337 -0.317 -0.013 -0.016 -0.102 -0.070 -0.015 0.080 + 5.551 0.736 0.305 0.052 -0.201 -0.447 -0.384 -0.122 -0.049 -0.029 -0.188 -0.075 -0.137 + 5.678 0.726 0.249 -0.016 -0.073 -0.313 -0.340 -0.007 -0.126 -0.048 -0.184 0.092 -0.082 + 7.640 1.244 0.035 -0.409 0.125 -0.025 -0.437 -0.186 -0.222 0.042 -0.234 0.003 -0.026 + 6.811 1.083 0.189 0.015 0.046 0.023 -0.212 -0.254 -0.132 0.097 -0.215 -0.133 -0.170 + 5.365 0.125 0.182 -0.006 -0.337 -0.206 -0.373 -0.222 -0.136 0.032 -0.125 -0.170 -0.180 + 6.714 -0.233 0.069 -0.009 -0.283 -0.248 -0.396 -0.251 -0.167 -0.082 -0.172 -0.159 -0.093 + 7.455 -0.382 0.174 0.116 -0.229 -0.137 -0.356 -0.172 -0.128 -0.103 -0.126 -0.149 -0.066 + 7.109 -0.242 -0.006 0.015 -0.138 -0.258 -0.340 -0.211 -0.160 0.177 -0.028 0.024 -0.038 + 7.138 -0.207 0.186 0.005 -0.206 -0.304 -0.403 -0.421 -0.226 -0.222 -0.057 0.177 -0.054 + 8.205 -0.087 0.531 0.304 -0.197 -0.234 -0.445 -0.313 -0.250 -0.139 -0.110 -0.044 -0.052 + 8.309 -0.441 0.293 0.125 -0.177 0.106 -0.354 -0.276 -0.051 -0.185 -0.174 -0.060 -0.191 + 8.561 -0.139 0.293 0.124 0.048 0.007 -0.388 -0.319 0.017 -0.030 -0.242 -0.217 -0.075 + 8.092 0.324 0.028 0.011 0.156 0.045 -0.433 -0.351 -0.022 -0.236 -0.352 -0.094 -0.012 + 6.371 0.773 -0.219 0.041 0.207 0.063 -0.266 -0.376 -0.212 -0.023 -0.392 -0.165 -0.076 + 5.559 0.983 0.108 0.028 0.296 0.188 0.035 -0.139 -0.181 -0.130 -0.347 -0.327 -0.215 + 3.753 -0.051 0.174 0.246 0.239 0.023 0.025 -0.066 -0.007 -0.046 -0.174 -0.101 -0.101 + 3.514 -0.287 0.055 0.229 0.121 0.199 -0.179 -0.005 -0.169 -0.187 -0.024 -0.263 -0.077 + 3.831 -0.143 0.002 0.170 -0.047 0.071 -0.071 0.031 -0.109 -0.111 -0.088 -0.177 0.001 + 3.445 -0.125 -0.025 0.024 0.146 -0.010 -0.113 0.082 -0.181 -0.045 -0.125 -0.106 -0.027 + 3.971 0.301 0.068 0.306 -0.074 0.004 -0.120 0.005 -0.089 -0.051 -0.119 -0.032 -0.035 + 3.603 0.056 0.062 0.351 -0.125 0.065 -0.058 -0.046 -0.069 -0.061 -0.298 -0.015 -0.015 + 3.670 0.027 0.124 0.195 0.067 0.136 -0.014 -0.019 -0.083 -0.102 -0.218 0.201 0.007 + 3.545 -0.104 0.182 0.206 0.094 0.100 -0.084 -0.059 0.142 0.114 -0.076 0.150 -0.003 + 3.788 0.067 0.148 0.071 0.021 0.056 -0.125 0.046 -0.082 0.072 -0.165 -0.107 -0.063 + 4.071 0.210 -0.061 -0.107 -0.071 0.120 -0.176 -0.114 0.047 0.041 -0.063 0.029 -0.009 + 4.158 0.046 -0.072 0.040 -0.085 0.104 -0.134 -0.043 -0.175 -0.037 0.027 0.083 -0.119 + 4.377 0.212 -0.160 -0.058 0.039 -0.161 -0.291 0.046 -0.083 -0.114 -0.095 -0.006 -0.136 + 4.812 0.239 0.024 0.050 0.039 -0.203 -0.307 0.139 -0.012 -0.080 -0.149 0.006 0.044 + 4.742 0.082 -0.151 0.208 0.210 -0.187 -0.471 0.062 -0.027 0.009 0.013 0.103 -0.047 + 4.735 0.007 -0.169 0.163 0.164 -0.304 -0.386 -0.005 -0.007 -0.053 -0.031 0.191 0.091 + 5.256 0.116 -0.200 0.142 0.037 -0.387 -0.386 0.233 0.077 -0.088 -0.078 0.083 -0.092 + 5.458 0.155 -0.373 0.249 0.297 -0.318 -0.358 0.190 -0.019 -0.150 -0.092 0.045 -0.047 + 5.479 0.090 -0.536 0.286 0.258 -0.339 -0.396 0.190 0.095 -0.137 -0.115 0.175 -0.069 + 5.550 -0.043 -0.598 0.027 0.153 -0.253 -0.420 0.242 -0.012 -0.142 0.009 0.017 -0.008 + 5.318 -0.187 -0.399 0.153 0.308 -0.514 -0.468 0.180 0.024 -0.253 -0.211 0.092 0.016 + 5.391 -0.493 -0.615 0.166 0.488 -0.450 -0.513 0.113 -0.030 -0.173 0.170 0.234 -0.072 + 5.120 -0.732 -0.487 0.302 0.375 -0.382 -0.363 0.024 0.037 -0.075 0.186 0.155 0.001 + 5.283 -0.814 -0.381 0.267 0.499 -0.174 -0.341 0.056 -0.047 -0.196 0.121 0.072 -0.055 + 5.498 -0.695 -0.534 0.170 0.456 -0.275 -0.441 0.235 0.144 -0.304 0.099 0.270 -0.059 + 5.594 -0.666 -0.664 0.201 0.254 -0.292 -0.306 0.196 0.059 -0.330 0.140 0.171 -0.028 + 5.506 -0.752 -0.470 0.192 0.556 -0.315 -0.245 0.235 0.003 -0.205 0.029 0.140 -0.095 + 5.764 -0.758 -0.683 0.113 0.247 -0.077 -0.328 0.392 0.262 -0.068 0.067 -0.089 -0.121 + 6.038 -0.533 -0.554 0.013 0.102 -0.278 -0.361 0.369 0.203 -0.073 0.099 0.028 -0.085 + 5.643 -0.748 -0.721 0.099 0.290 -0.017 -0.277 0.035 0.171 -0.159 -0.106 0.050 -0.000 + 5.998 -0.498 -0.496 0.281 0.399 -0.020 -0.230 0.313 -0.023 -0.251 0.033 -0.027 -0.127 + 5.996 -0.511 -0.514 0.110 0.372 -0.161 -0.430 0.086 0.082 -0.232 -0.007 0.007 -0.079 + 5.725 -0.516 -0.299 0.250 0.231 -0.487 -0.370 0.151 0.188 -0.298 -0.018 0.007 0.050 + 5.440 -0.248 -0.276 0.564 0.283 -0.408 -0.346 0.122 0.097 -0.361 -0.134 0.146 -0.113 + 5.759 -0.337 -0.415 0.501 0.322 -0.281 -0.459 0.141 0.030 -0.382 -0.135 0.114 -0.071 + 5.757 -0.345 -0.393 0.335 0.205 -0.397 -0.538 0.257 0.252 -0.099 -0.103 0.005 -0.192 + 5.956 -0.188 -0.264 0.272 0.082 -0.394 -0.487 0.073 0.099 -0.213 0.026 -0.010 0.030 + 6.074 0.362 0.248 0.646 0.485 -0.293 -0.744 0.049 0.031 -0.163 0.176 0.014 -0.132 + 5.938 0.136 0.180 0.640 0.372 -0.118 -0.559 0.012 0.041 0.050 0.040 0.059 -0.057 + 5.720 -0.226 -0.225 0.562 0.203 -0.523 -0.391 0.233 0.126 -0.326 -0.007 0.071 -0.164 + 5.693 -0.249 -0.334 0.134 0.075 -0.500 -0.222 0.364 0.043 -0.382 -0.023 0.061 0.004 + 5.499 -0.379 -0.341 0.113 -0.035 -0.386 -0.246 0.210 -0.051 -0.321 -0.125 -0.050 -0.041 + 5.058 -0.404 -0.512 0.120 0.238 -0.406 -0.378 0.285 -0.199 -0.362 0.095 -0.056 -0.028 + 5.191 -0.268 -0.564 0.034 0.280 -0.424 -0.468 0.221 -0.034 -0.228 -0.034 0.151 -0.017 + 5.060 -0.111 -0.499 0.086 0.226 -0.299 -0.417 -0.014 0.045 -0.273 -0.093 0.182 -0.003 + 4.719 -0.040 -0.322 0.148 0.035 -0.328 -0.464 0.096 0.039 -0.133 -0.010 0.027 -0.100 + 4.362 0.048 -0.190 0.291 -0.157 -0.262 -0.467 0.153 0.138 -0.175 0.002 0.064 0.010 + 4.460 0.020 -0.123 0.097 -0.278 -0.116 -0.253 0.046 -0.093 -0.204 -0.222 0.067 0.094 + 5.128 0.062 -0.188 0.059 -0.196 -0.165 -0.407 0.132 0.146 0.033 -0.024 0.063 -0.113 + 4.760 -0.016 -0.089 0.177 -0.065 -0.070 -0.291 0.179 0.117 -0.123 -0.165 -0.037 -0.143 + 4.506 0.059 -0.101 0.300 -0.037 -0.324 -0.605 0.106 0.176 -0.046 -0.051 0.083 -0.160 + 3.845 -0.329 -0.153 0.583 0.301 0.019 -0.398 0.093 -0.006 -0.323 -0.169 0.050 0.021 + 3.650 0.040 -0.188 0.361 0.138 -0.005 -0.264 0.103 -0.069 -0.180 -0.123 0.132 0.006 + 3.370 0.412 -0.123 0.279 0.082 -0.065 -0.157 0.255 0.048 -0.006 -0.219 0.021 -0.238 + 3.019 0.412 -0.169 0.255 -0.170 -0.042 -0.303 0.114 0.168 -0.056 -0.164 -0.014 -0.067 + 3.515 0.580 -0.021 0.387 -0.015 -0.425 -0.426 0.054 0.142 0.098 -0.164 -0.010 -0.033 + 3.265 0.079 -0.080 0.193 0.058 -0.342 -0.459 0.049 -0.016 -0.001 -0.131 0.088 0.182 + 4.288 0.016 0.395 0.134 -0.031 -0.063 -0.231 -0.087 -0.156 -0.003 -0.187 -0.164 0.003 + 4.738 -0.574 0.339 -0.135 -0.253 -0.279 -0.341 -0.081 0.056 -0.105 -0.049 0.097 0.019 + 4.809 -0.441 0.433 0.111 -0.296 -0.051 -0.312 -0.146 -0.175 0.003 0.122 0.045 -0.023 + 6.048 -0.497 0.214 0.018 -0.022 -0.009 -0.230 0.021 -0.142 -0.061 0.009 0.211 -0.169 + 7.280 -0.102 0.208 -0.201 -0.035 0.002 -0.190 0.015 -0.103 0.002 -0.135 -0.048 -0.208 + 6.414 -0.148 0.308 -0.113 -0.061 -0.121 -0.225 -0.161 -0.210 0.022 -0.239 0.152 -0.041 + 5.375 -0.470 0.645 0.315 -0.193 -0.152 -0.372 -0.076 -0.179 -0.081 -0.042 0.084 -0.091 + 4.800 -0.538 0.643 0.210 -0.049 -0.151 -0.207 0.058 -0.164 -0.157 -0.104 0.005 -0.103 + 5.260 -0.404 0.404 -0.058 -0.226 -0.310 -0.332 -0.093 -0.120 -0.039 -0.191 0.076 -0.031 + 5.329 -0.287 0.318 -0.106 -0.255 -0.294 -0.264 -0.099 -0.056 0.015 -0.063 0.044 -0.124 + 5.610 -0.233 0.849 -0.261 -0.113 0.000 -0.165 0.043 -0.192 -0.128 -0.168 0.073 -0.277 + 6.151 -0.488 0.296 -0.107 -0.015 -0.064 0.069 -0.045 -0.241 -0.048 -0.204 -0.021 -0.135 + 7.159 -0.152 -0.024 -0.231 -0.187 -0.171 -0.022 -0.280 -0.017 -0.045 -0.083 -0.137 -0.008 + 6.310 0.442 -0.293 -0.588 -0.624 -0.199 -0.271 -0.196 0.017 0.130 -0.148 -0.039 0.018 + 6.746 0.660 -0.363 -0.538 -0.390 -0.183 -0.564 -0.205 0.204 0.115 -0.388 -0.141 0.011 + 7.486 0.469 -0.632 -0.273 -0.591 -0.489 -0.655 -0.413 0.189 0.214 -0.420 -0.107 0.070 + 8.083 0.141 -0.678 -0.149 -0.578 -0.557 -0.617 -0.470 0.008 0.287 0.049 -0.094 -0.008 + 7.848 0.250 -0.611 -0.027 -0.439 -0.428 -0.559 -0.465 -0.181 0.220 -0.269 -0.039 0.026 + 7.434 0.166 -0.213 0.035 -0.110 -0.518 -0.613 -0.418 -0.087 0.236 -0.501 0.077 0.167 + 6.671 0.280 -0.149 0.107 -0.186 -0.619 -0.429 -0.140 -0.052 0.180 -0.376 0.015 0.094 + 5.723 0.257 -0.018 -0.005 -0.045 -0.345 -0.256 0.021 0.009 0.072 -0.293 -0.109 0.023 + 4.807 0.089 -0.215 0.083 0.056 -0.276 -0.197 0.003 0.171 0.348 -0.161 -0.083 0.046 + 4.741 0.322 -0.072 0.060 -0.115 -0.277 -0.134 -0.026 0.054 0.241 -0.212 -0.203 -0.072 + 4.905 0.280 -0.003 0.077 -0.288 -0.306 -0.147 -0.121 0.033 0.160 -0.109 -0.156 -0.066 + 4.873 0.093 -0.038 0.096 -0.153 -0.235 -0.072 -0.206 -0.048 0.095 -0.243 0.103 0.083 + 5.088 -0.107 -0.181 0.243 -0.517 -0.404 -0.195 -0.324 0.044 -0.028 -0.417 0.062 -0.063 + 4.939 -0.349 -0.063 0.213 -0.360 -0.042 0.049 -0.198 0.189 0.114 -0.179 -0.071 -0.076 + 5.232 -0.302 0.061 0.173 -0.440 -0.480 -0.022 -0.317 -0.085 0.084 0.073 0.195 0.054 + 6.091 -0.189 0.170 0.440 -0.660 -0.487 -0.131 -0.427 -0.028 0.095 -0.042 0.208 0.030 + 6.783 -0.316 0.233 0.324 -0.804 -0.583 -0.176 -0.396 -0.185 -0.026 -0.210 0.217 0.016 + 7.098 -0.766 -0.095 0.364 -0.891 -0.636 -0.322 -0.425 -0.245 -0.015 -0.004 0.308 0.029 + 7.487 -0.687 -0.005 0.607 -0.796 -0.613 -0.251 -0.534 -0.400 -0.080 -0.011 0.265 0.017 + 7.569 -0.731 0.107 0.876 -0.577 -0.539 -0.242 -0.647 -0.462 -0.077 -0.053 0.284 0.040 + 7.751 -0.772 0.068 0.737 -0.460 -0.535 -0.404 -0.739 -0.396 0.063 -0.184 0.217 -0.048 + 7.465 -0.662 0.256 0.686 -0.611 -0.472 -0.463 -0.662 -0.462 -0.072 -0.220 0.253 -0.100 + 6.991 -0.389 0.337 0.635 -0.756 -0.621 -0.212 -0.574 -0.402 -0.096 -0.047 0.180 -0.121 + 6.776 0.220 0.697 0.812 -0.376 -0.450 -0.054 -0.450 -0.366 -0.137 -0.205 0.062 -0.181 + 6.354 0.681 0.873 0.701 -0.092 -0.364 -0.208 -0.306 -0.228 -0.059 -0.272 0.075 -0.261 + 5.587 0.162 0.815 0.803 -0.025 -0.242 -0.031 -0.181 -0.415 -0.071 -0.167 0.027 -0.195 + 5.397 0.043 0.506 0.533 -0.173 -0.240 0.036 -0.156 -0.463 -0.318 -0.259 0.064 -0.201 + 5.320 0.226 0.325 0.378 -0.167 -0.052 0.176 -0.128 -0.206 -0.177 -0.219 -0.049 -0.171 + 6.168 0.190 0.353 0.142 -0.267 -0.128 -0.098 -0.241 -0.182 -0.103 -0.125 -0.111 -0.144 + 8.403 1.441 0.555 -0.071 -0.236 -0.157 -0.177 -0.193 -0.349 -0.118 -0.265 -0.205 -0.170 + 7.120 0.983 0.658 0.147 -0.186 -0.075 -0.028 -0.141 -0.271 -0.258 -0.184 -0.157 -0.295 + 6.601 0.411 0.491 -0.302 -0.518 -0.189 -0.045 -0.102 -0.062 -0.140 -0.226 -0.021 -0.229 + 6.444 -0.207 0.089 -0.135 -0.147 -0.046 -0.053 -0.016 -0.020 -0.081 -0.224 -0.054 -0.127 + 6.561 0.284 0.049 0.301 -0.069 -0.178 -0.327 -0.229 -0.027 -0.156 -0.211 0.266 -0.168 + 7.083 0.516 0.118 0.385 -0.243 -0.261 -0.416 -0.386 -0.078 -0.264 -0.437 0.235 -0.076 + 7.574 0.715 -0.018 0.152 -0.055 -0.130 -0.619 -0.337 -0.090 -0.078 -0.373 0.182 0.036 + 7.625 0.621 0.063 -0.055 -0.062 -0.080 -0.529 -0.351 -0.138 -0.195 -0.480 0.021 0.042 + 7.430 0.952 0.077 -0.039 0.052 -0.003 -0.435 -0.382 -0.085 -0.209 -0.398 0.026 -0.114 + 6.319 0.840 -0.168 0.150 -0.030 -0.204 -0.399 -0.205 0.010 -0.219 -0.305 0.066 -0.091 + 5.767 0.569 0.032 0.214 -0.061 -0.119 -0.308 -0.165 -0.117 0.002 -0.231 0.040 -0.124 + 5.455 0.843 0.058 0.076 -0.060 -0.013 -0.150 -0.216 -0.174 -0.039 -0.259 -0.149 -0.154 + 5.584 0.965 -0.117 0.071 0.021 0.092 0.047 -0.107 -0.121 -0.117 -0.269 -0.080 -0.075 + 5.569 1.123 0.359 0.325 -0.027 -0.217 -0.128 -0.112 -0.040 -0.288 -0.422 -0.167 -0.199 + 5.454 1.332 0.456 0.396 -0.076 -0.199 0.057 -0.107 -0.092 -0.206 -0.267 -0.166 -0.158 + 5.561 0.743 -0.118 0.346 -0.212 -0.248 -0.270 -0.219 -0.061 -0.124 -0.064 0.134 -0.159 + 7.110 0.558 -0.172 0.362 -0.443 -0.251 -0.378 -0.274 -0.202 -0.196 -0.042 0.402 -0.151 + 7.872 0.083 -0.243 0.340 -0.813 -0.468 -0.413 -0.022 0.007 -0.024 -0.120 0.591 -0.155 + 8.340 -0.059 -0.283 0.455 -0.591 -0.676 -0.499 -0.221 -0.144 -0.136 -0.066 0.570 -0.210 + 8.496 -0.179 -0.310 0.505 -0.503 -0.830 -0.605 -0.051 -0.206 -0.181 0.049 0.609 -0.083 + 8.628 -0.283 -0.206 0.451 -0.631 -0.699 -0.628 -0.280 -0.133 -0.245 0.042 0.588 -0.232 + 8.517 -0.244 -0.149 0.242 -0.724 -0.654 -0.455 -0.111 0.005 -0.151 0.016 0.516 -0.176 + 8.225 -0.139 -0.153 0.032 -0.498 -0.668 -0.323 -0.053 -0.040 -0.097 0.077 0.351 -0.364 + 7.546 -0.099 0.116 0.159 -0.350 -0.717 -0.378 -0.004 0.017 -0.074 0.062 0.408 -0.142 + 7.692 0.437 -0.043 -0.123 -0.345 -0.353 -0.307 -0.155 -0.101 -0.112 0.033 0.271 -0.267 + 6.989 0.571 0.155 -0.039 -0.230 -0.413 -0.439 -0.204 -0.146 -0.253 -0.111 0.316 -0.175 + 6.588 0.416 0.338 0.058 -0.065 -0.213 -0.106 -0.040 -0.259 -0.261 -0.291 0.083 -0.191 + 6.197 0.443 0.479 0.363 -0.279 -0.444 -0.266 -0.136 -0.191 -0.176 -0.093 0.016 -0.128 + 6.024 0.151 0.455 0.167 -0.176 -0.429 -0.395 -0.082 -0.040 -0.267 -0.045 0.353 -0.090 + 6.341 0.189 0.598 0.185 -0.118 -0.240 -0.161 0.062 -0.045 -0.234 -0.078 0.175 -0.135 + 7.829 0.575 -0.023 0.169 0.208 -0.108 0.014 -0.173 -0.173 -0.214 -0.234 0.051 -0.208 + 8.506 0.678 -0.126 0.004 0.170 -0.078 0.139 -0.133 -0.100 -0.349 -0.333 0.065 -0.252 + 6.950 0.471 0.678 -0.119 -0.251 -0.342 -0.002 -0.071 -0.309 -0.058 -0.135 0.025 0.012 + 6.905 0.322 0.807 -0.106 -0.157 -0.208 0.178 -0.033 -0.248 -0.199 -0.217 -0.058 -0.218 + 6.438 -0.089 0.526 0.075 -0.044 -0.259 -0.102 -0.107 -0.124 -0.057 -0.223 0.140 -0.095 + 6.263 -0.170 0.595 -0.212 0.051 -0.139 -0.115 -0.026 -0.114 -0.143 -0.064 -0.110 -0.112 + 6.426 -0.208 0.501 -0.089 0.222 -0.280 -0.155 -0.296 -0.161 -0.180 -0.198 -0.156 -0.037 + 6.185 -0.338 0.330 0.117 0.047 -0.464 -0.166 0.082 -0.050 -0.171 -0.216 -0.104 -0.165 + 9.374 0.072 -0.068 0.400 -0.125 -0.618 0.030 -0.079 0.147 -0.419 -0.099 -0.138 -0.260 + 10.107 0.554 -0.250 0.218 0.010 -0.419 0.144 -0.108 0.149 -0.456 -0.207 -0.196 -0.254 + 9.607 1.268 -0.377 -0.007 0.280 -0.549 0.076 0.180 -0.212 -0.332 -0.313 -0.236 -0.267 + 9.976 1.239 -0.324 -0.037 0.303 -0.515 -0.133 0.453 -0.304 -0.380 -0.296 -0.277 -0.291 + 11.173 1.169 -0.356 -0.089 -0.024 -0.464 -0.282 0.215 -0.188 -0.277 -0.140 -0.138 -0.202 + 12.303 1.604 -0.444 -0.401 -0.090 -0.539 -0.443 0.069 -0.165 -0.281 -0.129 -0.092 -0.193 + 12.056 2.451 -0.736 -0.754 -0.339 -0.532 -0.540 0.211 -0.252 -0.327 -0.238 0.148 0.090 + 12.771 2.519 -0.636 -0.895 -0.266 -0.357 -0.826 0.446 -0.366 -0.352 -0.332 0.099 0.110 + 12.629 2.777 -0.689 -1.034 -0.271 -0.224 -0.872 0.370 -0.290 -0.251 -0.340 -0.020 0.193 + 12.896 2.610 -0.630 -1.112 -0.262 -0.031 -0.897 0.180 -0.228 -0.191 -0.270 -0.107 0.240 + 13.337 2.436 -0.707 -1.080 -0.164 -0.080 -0.812 0.076 -0.330 -0.112 -0.267 0.005 0.110 + 13.128 2.736 -1.022 -1.025 -0.003 -0.075 -0.931 0.080 -0.463 0.036 -0.254 0.031 0.038 + 13.192 2.491 -0.890 -0.986 0.089 -0.121 -0.897 -0.097 -0.367 0.041 -0.246 0.094 -0.096 + 13.250 2.286 -0.949 -0.817 0.210 -0.085 -0.986 -0.217 -0.275 -0.022 -0.168 -0.012 -0.144 + 12.586 2.106 -1.026 -0.404 0.347 0.141 -1.212 -0.304 -0.137 -0.112 -0.184 -0.088 -0.174 + 11.964 1.558 -0.887 -0.304 0.625 0.089 -1.206 -0.306 -0.007 -0.291 -0.203 -0.134 -0.131 + 10.821 1.149 -0.801 -0.139 0.568 0.030 -1.113 -0.129 0.169 -0.220 -0.345 -0.169 -0.171 + 9.516 0.706 -0.717 0.306 0.645 -0.081 -0.886 0.062 0.180 -0.414 -0.479 0.025 -0.139 + 9.377 0.717 -0.519 0.439 0.581 -0.339 -0.996 0.228 0.030 -0.429 -0.330 0.114 -0.107 + 11.484 0.124 -0.551 0.400 0.438 -0.336 -0.820 0.312 -0.419 -0.549 -0.099 0.030 -0.127 + 13.238 0.289 -0.466 0.371 0.318 -0.475 -1.197 0.406 -0.499 -0.471 -0.103 0.036 -0.233 + 13.655 0.519 -0.687 0.273 0.007 -0.570 -1.165 0.430 -0.268 -0.246 -0.034 0.135 -0.251 + 13.112 1.001 -0.857 0.179 0.094 -0.521 -1.159 0.368 -0.116 -0.216 -0.157 0.170 -0.262 + 11.161 0.949 -0.727 0.248 -0.048 -0.567 -0.805 0.091 0.112 0.019 -0.361 0.168 -0.020 + 10.379 0.969 -0.548 0.200 0.012 -0.282 -0.352 -0.476 0.176 0.230 -0.761 0.092 0.057 + 10.408 1.000 -0.540 0.053 0.025 -0.197 -0.286 -0.586 0.149 0.310 -0.713 0.017 -0.047 + 10.444 1.105 -0.651 0.002 -0.069 -0.227 -0.079 -0.576 0.089 0.241 -0.510 0.083 -0.208 + 10.544 1.064 -0.610 0.062 -0.294 -0.196 0.019 -0.482 -0.106 0.196 -0.391 0.202 -0.239 + 11.325 0.856 -0.506 -0.210 -0.210 -0.209 0.006 -0.411 -0.114 0.142 -0.401 0.228 -0.265 + 11.540 1.165 -0.760 -0.278 -0.142 -0.193 -0.147 -0.272 -0.089 0.072 -0.390 0.250 -0.142 + 11.530 1.213 -0.746 -0.065 -0.280 -0.372 -0.076 -0.173 0.017 -0.159 -0.233 0.063 -0.116 + 11.563 0.640 -0.658 0.217 -0.453 -0.430 -0.007 -0.090 -0.083 0.068 -0.284 -0.026 0.001 + 11.413 0.708 -0.692 0.171 -0.354 -0.544 -0.113 -0.066 -0.001 0.048 -0.167 -0.060 0.011 + 10.867 1.390 -1.026 0.094 -0.480 -0.700 0.014 -0.107 0.160 0.038 -0.075 -0.172 -0.072 + 10.673 1.907 -1.299 -0.090 -0.453 -0.882 0.124 -0.048 0.071 0.095 -0.224 -0.059 -0.147 + 10.693 1.879 -1.327 -0.204 -0.513 -0.937 0.180 0.049 0.093 0.168 -0.302 -0.008 -0.184 + 10.776 1.665 -1.386 -0.096 -0.453 -0.810 0.246 0.031 0.075 0.054 -0.271 -0.046 -0.076 + 10.864 1.744 -1.515 0.046 -0.604 -0.690 0.198 0.094 0.046 -0.007 -0.318 -0.016 -0.069 + 10.732 1.663 -1.418 -0.074 -0.393 -0.716 0.120 0.165 -0.031 -0.089 -0.204 -0.060 -0.087 + 11.886 0.841 -0.854 -0.584 -0.528 -0.563 0.089 0.396 -0.395 -0.041 0.185 -0.208 0.049 + 12.149 0.725 -0.817 -0.698 -0.549 -0.408 -0.014 0.283 -0.363 0.080 0.196 -0.215 -0.115 + 11.383 0.828 -0.653 -0.917 -0.575 -0.274 -0.386 -0.021 -0.434 0.091 -0.004 -0.124 0.036 + 8.522 0.741 -0.460 -0.327 0.176 -0.338 -0.258 -0.053 -0.381 0.134 0.022 -0.039 0.053 + 8.744 -0.011 -0.393 -0.236 0.420 -0.462 -0.132 -0.109 -0.062 0.024 -0.092 -0.101 -0.123 + 9.912 -0.464 -0.634 -0.516 0.283 -0.524 -0.293 -0.116 -0.218 -0.003 -0.071 -0.000 0.035 + 8.868 -1.254 0.129 -0.416 0.090 -0.355 -0.227 -0.245 0.026 0.035 -0.067 -0.179 0.043 + 9.462 -1.898 0.415 -0.270 0.309 -0.263 -0.362 -0.129 -0.049 -0.097 -0.106 -0.135 -0.090 + 9.768 -1.761 0.445 -0.483 0.368 -0.299 -0.177 -0.048 -0.018 0.094 -0.038 0.034 -0.096 + 9.380 -1.865 0.201 -0.487 0.196 -0.312 0.040 0.108 0.069 -0.032 -0.266 -0.021 0.018 + 7.905 -1.453 0.282 -0.775 0.174 -0.584 -0.285 0.192 0.034 -0.061 -0.204 -0.030 -0.201 + 6.415 -0.508 0.283 -0.148 0.064 -0.476 0.021 0.029 -0.037 0.141 -0.052 -0.194 -0.169 + 5.941 0.093 -0.133 -0.125 0.079 -0.394 -0.058 -0.092 0.053 0.101 0.069 -0.075 -0.083 + 6.409 -0.117 -0.199 -0.145 0.370 -0.334 -0.180 -0.165 -0.113 0.095 -0.135 0.058 -0.012 + 9.487 -0.737 -0.313 -0.433 0.157 -0.416 -0.172 0.075 -0.315 -0.106 -0.285 0.067 -0.254 + 10.903 -0.998 0.044 -0.588 -0.076 -0.399 -0.378 -0.033 -0.311 -0.159 -0.205 0.043 -0.072 + 10.524 -0.886 0.107 -0.409 -0.295 -0.286 -0.498 -0.088 0.205 -0.094 -0.086 -0.032 0.192 + 11.672 0.727 -0.455 0.064 -0.214 -0.204 -0.546 -0.240 -0.079 -0.094 -0.184 -0.194 0.101 + 11.099 1.375 -1.006 0.366 -0.157 -0.421 -0.348 -0.466 -0.070 -0.013 -0.273 -0.007 -0.029 + 10.262 1.194 -0.875 0.303 -0.043 -0.421 -0.205 -0.458 -0.129 0.008 -0.120 -0.076 -0.147 + 8.928 0.722 -0.304 0.535 0.160 -0.325 -0.030 -0.332 -0.227 -0.043 -0.164 -0.092 -0.350 + 8.947 0.692 -0.324 0.615 0.205 -0.340 -0.184 -0.356 -0.248 0.074 -0.132 0.017 -0.413 + 8.951 0.806 -0.440 0.582 0.247 -0.361 -0.210 -0.389 -0.212 -0.053 -0.029 -0.115 -0.341 + 8.917 0.916 -0.486 0.474 0.266 -0.376 -0.185 -0.285 -0.253 -0.138 0.038 -0.222 -0.353 + 10.708 0.950 -0.818 0.034 0.420 -0.464 -0.556 -0.228 -0.132 0.026 -0.029 -0.312 0.005 + 11.577 0.955 -1.090 0.446 0.059 -0.647 -0.722 -0.060 -0.033 -0.028 -0.213 -0.024 0.119 + 11.978 0.680 -0.816 0.411 -0.080 -0.878 -0.633 0.053 -0.113 -0.055 -0.144 0.140 0.030 + 12.275 0.443 -0.557 0.410 -0.196 -0.958 -0.523 0.095 -0.261 -0.042 -0.074 0.151 -0.100 + 12.255 0.507 -0.459 0.388 -0.257 -0.934 -0.396 -0.018 -0.337 -0.044 -0.082 0.134 -0.180 + 11.880 0.144 0.030 0.553 -0.374 -0.770 -0.376 -0.037 -0.400 -0.148 -0.161 0.149 -0.215 + 10.478 -0.052 0.372 0.620 -0.495 -0.750 -0.424 -0.117 -0.403 -0.185 -0.050 0.122 -0.208 + 9.842 0.046 0.036 0.550 -0.258 -0.491 -0.243 -0.396 -0.322 -0.183 -0.124 -0.069 -0.000 + 7.444 -0.152 -0.278 0.219 -0.075 -0.467 -0.059 -0.231 -0.150 -0.044 -0.119 -0.064 -0.009 + 5.427 -0.206 0.224 0.064 0.039 -0.537 -0.527 -0.095 -0.077 0.042 -0.069 -0.059 -0.215 + 6.715 -0.571 -0.024 0.078 0.034 -0.534 -0.217 -0.125 -0.122 0.135 -0.098 0.091 0.007 + 10.340 -1.069 -0.542 0.266 -0.061 -0.424 -0.164 -0.305 -0.194 0.004 -0.166 0.034 -0.030 + 10.835 -0.759 -0.302 0.157 -0.142 -0.370 -0.346 -0.471 -0.257 -0.038 -0.260 0.109 -0.021 + 10.564 0.185 0.242 0.762 -0.319 -0.716 -0.523 -0.089 -0.504 -0.098 -0.198 -0.041 -0.166 + 11.981 0.613 0.174 0.174 -0.381 -0.500 -0.930 0.226 -0.678 0.013 -0.271 0.128 -0.149 + 12.077 1.051 -0.518 0.011 -0.034 -0.801 -0.900 0.248 -0.510 0.002 -0.240 0.189 -0.063 + 11.512 1.111 -0.555 0.016 -0.048 -0.896 -0.804 0.102 -0.305 -0.017 -0.256 0.256 -0.081 + 10.531 0.992 -0.221 -0.218 -0.039 -0.706 -0.864 -0.121 -0.304 0.108 -0.472 0.189 0.129 + 7.576 0.754 0.235 0.167 0.097 -0.359 -0.278 -0.157 -0.228 -0.077 -0.214 -0.123 -0.024 + 7.424 0.040 0.310 0.280 -0.088 -0.323 -0.337 0.135 -0.331 -0.126 -0.011 -0.097 -0.026 + 9.986 -0.365 -0.762 0.053 -0.199 -0.630 -0.333 0.314 -0.375 -0.212 0.045 0.045 -0.067 + 11.187 -0.142 -0.561 0.147 0.002 -0.598 -0.449 0.295 -0.309 -0.194 -0.182 0.020 -0.143 + 10.974 0.361 -0.791 -0.113 0.363 0.026 -0.404 0.311 -0.113 -0.124 -0.245 -0.080 -0.041 + 11.762 -0.513 -0.770 -0.397 0.174 0.260 0.037 0.114 -0.046 -0.167 -0.125 -0.104 -0.035 + 11.097 -0.354 -0.658 -0.473 0.103 0.125 0.065 0.117 -0.404 -0.185 0.078 -0.224 0.135 + 11.221 0.634 -0.281 -0.074 0.115 0.081 0.056 0.090 -0.455 -0.281 -0.307 -0.258 -0.016 + 11.692 0.009 -0.463 0.064 0.093 0.356 -0.169 0.212 -0.458 -0.044 0.073 -0.548 0.033 + 11.745 -0.567 -0.873 -0.160 -0.384 0.272 -0.182 0.271 -0.435 -0.054 0.327 -0.511 0.131 + 11.159 -0.296 -0.606 -0.118 -0.274 0.323 -0.126 0.286 -0.519 -0.012 0.084 -0.518 -0.150 + 10.778 0.634 -0.396 -0.439 -0.207 0.259 -0.065 0.337 -0.621 -0.110 -0.260 -0.423 -0.261 + 10.596 1.494 -0.335 -0.409 -0.374 -0.071 -0.107 0.132 -0.482 0.105 -0.120 -0.271 -0.219 + 11.034 2.174 -0.659 -1.087 -0.638 -0.057 -0.234 0.156 -0.414 -0.099 -0.034 -0.090 -0.085 + 11.418 2.356 -1.198 -1.047 -0.286 -0.237 -0.659 0.569 -0.567 -0.204 0.212 -0.085 -0.276 + 11.480 2.235 -1.281 -1.030 -0.276 -0.200 -0.662 0.468 -0.582 -0.132 0.280 -0.074 -0.230 + 11.667 2.061 -1.211 -1.122 -0.275 -0.136 -0.739 0.355 -0.455 -0.111 0.234 -0.029 -0.175 + 11.953 2.037 -1.319 -1.079 -0.160 -0.094 -0.860 0.269 -0.364 -0.104 0.210 -0.140 -0.034 + 11.786 2.209 -1.400 -1.168 0.030 -0.084 -0.929 0.183 -0.313 0.036 0.016 -0.127 0.102 + 11.305 2.177 -1.317 -1.197 0.009 -0.003 -0.955 0.078 -0.315 0.117 -0.021 -0.017 -0.004 + 11.383 1.798 -1.132 -1.278 0.059 -0.032 -1.008 -0.038 -0.169 0.122 0.006 -0.042 -0.018 + 11.559 1.854 -1.152 -1.195 -0.001 0.071 -1.157 -0.097 -0.115 0.141 -0.049 -0.086 0.104 + 11.706 1.805 -1.226 -1.125 -0.002 0.084 -1.115 -0.182 -0.084 0.106 -0.004 -0.149 0.091 + 11.358 1.810 -1.285 -1.025 0.042 -0.018 -1.127 -0.129 -0.118 0.173 -0.035 -0.149 0.096 + 11.073 1.855 -1.398 -0.945 0.128 -0.081 -1.179 -0.202 -0.019 0.162 -0.017 -0.144 0.117 + 11.552 1.654 -1.436 -0.780 0.223 -0.176 -1.146 -0.310 0.048 0.107 -0.113 -0.110 0.090 + 11.667 1.498 -1.304 -0.699 0.185 -0.184 -1.254 -0.205 0.042 0.068 -0.146 -0.153 0.138 + 11.261 1.414 -1.263 -0.590 0.183 -0.199 -1.373 -0.066 0.115 -0.113 -0.057 -0.088 0.043 + 11.171 1.319 -1.261 -0.488 0.250 -0.256 -1.428 -0.081 0.075 -0.130 -0.099 -0.031 0.059 + 11.435 1.392 -1.265 -0.394 0.245 -0.244 -1.428 -0.057 0.052 -0.272 -0.058 -0.121 0.151 + 11.589 1.188 -1.228 -0.169 0.108 -0.085 -1.484 0.036 0.045 -0.387 -0.059 -0.121 0.093 + 11.321 0.956 -1.184 0.056 0.187 -0.258 -1.328 -0.006 0.096 -0.474 -0.112 -0.022 0.059 + 11.136 0.892 -1.138 0.091 0.253 -0.378 -1.318 -0.015 0.067 -0.588 -0.057 -0.029 -0.012 + 10.985 0.767 -0.948 0.216 0.254 -0.283 -1.226 0.123 -0.066 -0.554 -0.196 0.001 -0.144 + 8.340 0.464 -0.945 0.279 0.621 -0.313 -0.865 0.397 -0.176 -0.372 -0.167 0.169 -0.198 + 8.966 -0.525 -0.700 0.377 0.292 -0.248 -0.246 0.193 -0.181 -0.198 -0.201 -0.081 -0.148 + 7.974 -0.180 -0.299 0.080 0.577 -0.356 -0.222 0.197 -0.128 -0.313 -0.085 -0.007 0.024 + 7.469 -0.056 0.057 -0.145 0.490 -0.180 -0.510 0.190 -0.108 -0.245 0.047 0.012 0.050 + 9.728 -0.469 -0.518 0.089 -0.036 -0.214 -0.225 -0.018 -0.161 -0.120 -0.132 -0.054 -0.102 + 11.803 -0.559 -0.555 -0.366 -0.310 -0.479 -0.111 -0.046 -0.137 -0.266 -0.248 -0.055 -0.113 + 11.107 -0.476 -0.256 -0.032 -0.257 -0.645 -0.199 -0.138 0.088 -0.387 -0.130 -0.126 -0.059 + 11.157 -0.476 -0.724 0.058 0.162 -0.318 0.055 0.114 0.153 -0.615 -0.163 -0.122 -0.115 + 10.850 -0.157 -1.251 0.183 0.104 -0.564 -0.013 0.154 0.040 -0.383 -0.109 -0.046 -0.043 + 10.947 -0.060 -1.224 0.236 -0.029 -0.323 -0.070 0.119 -0.035 -0.157 -0.071 0.001 0.015 + 11.050 -0.011 -1.092 0.047 0.035 -0.329 -0.219 0.322 0.124 -0.207 0.076 0.136 -0.255 + 10.715 -0.353 -0.894 -0.054 -0.089 -0.234 -0.313 0.018 0.126 -0.311 -0.229 0.311 -0.237 + 10.116 -0.382 -0.706 0.188 0.187 -0.192 -0.282 0.099 0.144 -0.336 -0.397 -0.021 -0.182 + 9.756 0.046 -0.414 0.228 0.421 0.038 -0.260 0.257 0.128 -0.338 -0.461 -0.272 -0.315 + 9.668 -0.328 -0.820 -0.034 0.176 -0.103 -0.348 0.208 -0.156 -0.197 -0.189 0.024 -0.150 + 9.804 -0.395 -0.835 -0.083 0.307 -0.001 -0.285 0.123 0.105 -0.258 -0.243 -0.057 -0.227 + 9.199 -0.289 -0.496 -0.101 0.510 -0.260 -0.356 0.178 -0.000 -0.161 -0.259 0.163 -0.000 + 8.766 -0.153 -0.395 -0.175 0.244 -0.273 -0.328 0.225 -0.062 -0.183 -0.109 0.252 -0.002 + 8.622 -0.020 -0.574 -0.122 0.524 -0.177 -0.143 0.357 0.095 -0.292 -0.481 0.044 -0.046 + 9.123 0.182 -0.404 -0.077 0.418 -0.484 -0.373 0.030 0.099 -0.174 -0.525 0.032 -0.051 + 9.001 0.450 -0.043 -0.010 0.065 -0.485 -0.491 -0.079 0.159 -0.073 -0.501 0.224 -0.205 + 5.838 0.567 -0.028 -0.009 -0.001 -0.307 -0.427 -0.206 0.162 0.011 -0.322 0.233 -0.239 + 5.830 0.953 -0.116 -0.099 -0.010 -0.169 -0.231 0.107 -0.114 -0.123 -0.226 -0.022 -0.066 + 5.734 0.631 -0.071 -0.390 -0.093 -0.064 -0.246 -0.037 0.032 0.023 -0.157 0.050 0.132 + 5.140 0.232 -0.322 -0.266 0.063 0.107 -0.053 0.012 -0.075 0.056 -0.106 -0.203 -0.011 + 5.295 0.297 -0.468 -0.205 0.113 -0.122 -0.238 -0.064 0.007 0.034 -0.020 -0.079 -0.013 + 5.224 0.237 -0.452 -0.189 0.164 0.043 -0.364 -0.098 -0.087 0.010 0.010 0.028 -0.062 + 8.769 0.424 -1.182 -0.153 -0.126 -0.420 -0.231 -0.244 0.066 -0.082 -0.105 -0.110 0.006 + 11.577 0.179 -1.003 -0.044 -0.360 -0.495 -0.244 -0.284 0.353 -0.089 -0.107 -0.065 0.010 + 12.215 -0.226 -0.726 -0.314 0.052 -0.292 -0.110 -0.167 0.287 -0.169 -0.270 0.068 -0.078 + 13.066 -0.405 -0.243 -0.113 0.107 -0.281 -0.128 -0.022 -0.202 -0.364 -0.304 -0.080 -0.106 + 13.753 -0.071 -0.167 -0.109 0.189 -0.503 -0.191 0.075 -0.205 -0.252 -0.279 -0.152 -0.317 + 12.760 -0.299 -0.219 -0.030 0.376 -0.197 -0.040 -0.103 -0.290 -0.016 -0.254 0.069 -0.215 + 12.041 -0.708 -0.755 0.048 0.478 0.054 -0.011 -0.243 -0.261 0.044 -0.098 0.077 -0.198 + 11.872 -0.792 -1.190 -0.100 0.486 -0.093 -0.133 -0.085 -0.099 0.227 -0.029 0.017 -0.136 + 11.576 -1.030 -1.288 -0.252 0.062 -0.490 -0.346 -0.091 0.247 0.294 0.100 0.027 -0.160 + 11.508 -1.073 -1.118 -0.170 0.150 -0.533 -0.392 0.005 0.433 0.081 0.135 0.060 -0.188 + 11.168 -1.292 -1.087 -0.181 0.166 -0.459 -0.406 -0.120 0.422 0.148 0.125 0.219 -0.067 + 10.782 -1.044 -0.754 -0.169 0.213 -0.336 -0.487 -0.294 0.331 0.137 -0.050 0.038 -0.192 + 10.799 -0.881 -0.533 -0.066 0.296 -0.397 -0.380 -0.255 0.264 0.195 0.023 -0.097 -0.157 + 10.772 -0.945 -0.663 -0.191 0.178 -0.302 -0.354 -0.161 0.206 0.301 0.137 -0.202 -0.084 + 10.693 -1.191 -0.761 -0.229 0.115 -0.621 -0.299 -0.119 0.246 0.241 0.114 -0.035 -0.196 + 10.496 -1.051 -0.686 -0.057 0.176 -0.462 -0.153 -0.095 0.141 0.172 0.270 -0.118 -0.068 + 10.366 -1.250 -0.860 -0.401 0.258 -0.556 -0.210 0.010 0.148 0.203 0.215 -0.023 0.026 + 10.306 -1.056 -0.725 -0.281 0.279 -0.541 -0.237 -0.018 0.113 0.247 0.174 -0.026 -0.066 + 10.199 -1.111 -0.739 -0.380 0.112 -0.422 -0.176 -0.016 -0.003 0.335 0.252 -0.134 -0.040 + 10.367 -1.088 -0.654 -0.235 0.195 -0.627 -0.398 -0.282 -0.132 0.129 0.294 -0.105 -0.166 + 10.551 -1.028 -0.902 -0.108 0.326 -0.670 -0.418 -0.042 -0.095 -0.038 0.232 0.037 -0.368 + 10.385 -1.049 -0.885 -0.110 0.364 -0.765 -0.541 -0.068 0.011 0.005 -0.002 0.008 -0.209 + 10.231 -0.788 -0.842 -0.147 0.326 -0.543 -0.383 -0.076 0.127 -0.054 -0.121 -0.008 -0.152 + 10.444 -0.663 -0.934 -0.065 0.266 -0.681 -0.229 0.054 0.122 -0.147 -0.216 -0.142 -0.064 + 10.079 -0.835 -0.809 -0.181 -0.105 -0.569 -0.194 -0.149 0.027 -0.105 0.002 -0.054 -0.078 + 10.036 -0.758 -0.695 -0.186 0.141 -0.427 -0.214 -0.199 0.114 0.053 -0.254 -0.152 -0.204 + 9.957 -0.614 -0.593 -0.123 -0.040 -0.458 -0.273 -0.101 -0.126 -0.219 -0.221 -0.119 -0.153 + 9.999 -0.559 -0.579 -0.004 0.125 -0.630 -0.295 -0.192 -0.127 -0.269 -0.173 -0.052 -0.115 + 9.856 -0.390 -0.606 0.009 0.090 -0.539 -0.460 -0.191 -0.102 -0.249 -0.215 -0.008 -0.080 + 9.738 -0.320 -0.703 -0.040 0.068 -0.480 -0.376 -0.291 -0.082 -0.242 -0.254 -0.064 -0.076 + 9.687 -0.336 -0.602 0.001 0.160 -0.541 -0.154 -0.228 -0.178 -0.134 -0.115 0.029 -0.178 + 9.613 -0.231 -0.506 -0.027 0.127 -0.578 -0.185 -0.210 -0.075 -0.174 -0.210 -0.008 -0.148 + 9.501 -0.233 -0.515 -0.159 0.160 -0.607 -0.181 -0.187 -0.085 -0.310 -0.072 -0.043 -0.050 + 9.464 -0.206 -0.597 -0.160 0.126 -0.649 -0.160 -0.313 -0.079 -0.196 -0.067 -0.061 -0.069 + 9.340 -0.136 -0.564 -0.134 0.108 -0.658 -0.301 -0.173 -0.036 -0.046 -0.011 -0.035 -0.085 + 8.889 -0.318 -0.635 -0.202 -0.075 -0.552 -0.357 -0.069 0.025 -0.166 -0.154 0.137 -0.066 + 8.896 -0.259 -0.389 -0.126 0.111 -0.649 -0.285 -0.054 0.177 -0.289 -0.116 0.053 -0.074 + 9.255 0.076 -0.156 -0.138 0.089 -0.424 -0.133 -0.105 0.012 -0.226 -0.182 0.083 -0.155 + 9.673 0.505 -0.090 -0.057 0.212 -0.363 -0.180 -0.007 0.014 -0.322 -0.322 0.098 -0.093 + 8.759 -0.134 -0.616 -0.353 -0.006 -0.445 -0.134 0.030 0.210 -0.254 -0.083 0.059 -0.110 + 8.247 -0.428 -0.653 -0.329 -0.228 -0.555 -0.324 -0.120 0.157 -0.081 -0.052 0.031 -0.075 + 7.799 -0.221 -0.571 -0.386 -0.054 -0.601 -0.221 0.006 0.212 -0.069 -0.108 0.109 -0.163 + 7.771 -0.493 -0.647 -0.483 -0.021 -0.475 -0.208 0.057 0.226 0.130 -0.022 0.003 -0.067 + 7.957 -0.350 -0.539 -0.516 -0.425 -0.461 -0.169 0.080 0.339 0.133 0.016 -0.034 -0.059 + 8.033 -0.150 -0.460 -0.514 -0.417 -0.643 -0.256 0.030 0.405 0.081 0.036 0.074 -0.117 + 7.712 -0.228 -0.533 -0.357 -0.216 -0.722 -0.388 -0.043 0.344 0.075 0.170 0.082 -0.134 + 7.769 -0.040 -0.566 -0.500 -0.188 -0.624 -0.353 0.116 0.371 0.081 0.070 0.087 -0.112 + 8.123 0.321 -0.351 -0.214 -0.032 -0.348 -0.335 0.082 0.386 0.020 0.015 0.089 -0.224 + 7.958 0.266 -0.339 -0.074 -0.035 -0.363 -0.388 -0.013 0.360 0.048 0.053 0.155 -0.112 + 7.702 -0.054 -0.731 -0.526 -0.202 -0.217 -0.228 0.093 0.301 -0.074 -0.052 -0.049 -0.051 + 7.481 -0.111 -0.739 -0.435 -0.326 -0.201 -0.159 0.100 0.439 -0.006 -0.147 -0.067 -0.107 + 7.576 -0.126 -0.517 -0.176 -0.252 -0.334 -0.345 0.095 0.265 -0.077 -0.177 -0.183 -0.085 + 7.386 -0.387 -0.643 -0.262 -0.145 -0.319 -0.258 0.104 0.133 -0.017 -0.296 -0.283 -0.092 + 7.446 -0.098 -0.396 -0.160 0.080 -0.138 -0.129 0.128 0.125 -0.046 -0.299 -0.283 -0.273 + 8.507 0.423 0.286 0.342 0.138 -0.153 -0.253 -0.135 -0.107 -0.105 -0.165 -0.139 -0.088 + 8.362 0.177 0.261 0.078 0.103 -0.162 -0.238 -0.055 0.048 -0.023 -0.147 -0.160 -0.123 + 8.718 -0.297 -0.371 -0.164 0.001 -0.087 -0.392 -0.118 -0.032 -0.052 -0.072 0.044 -0.155 + 8.806 -0.349 -0.329 -0.272 -0.219 -0.261 -0.233 -0.224 -0.045 -0.049 -0.115 0.006 -0.031 + 9.444 -0.419 0.001 -0.211 -0.125 -0.128 -0.165 -0.177 -0.147 -0.124 -0.115 -0.035 -0.095 + 10.074 -0.287 -0.023 -0.167 -0.180 -0.048 -0.375 -0.332 -0.167 -0.203 -0.183 -0.135 -0.195 + 10.114 -0.377 -0.249 -0.248 -0.164 -0.182 -0.298 -0.276 -0.042 -0.183 -0.218 -0.102 -0.102 + 9.716 -0.363 -0.129 -0.274 -0.247 -0.062 -0.247 -0.229 0.164 0.051 -0.282 -0.163 -0.100 + 9.498 -0.394 -0.274 -0.462 -0.068 -0.020 -0.208 -0.247 0.108 -0.065 -0.263 -0.120 -0.220 + 9.643 -0.446 -0.331 -0.421 0.043 -0.295 -0.366 -0.082 -0.035 -0.203 -0.237 0.034 -0.133 + 9.931 -0.544 -0.491 -0.180 -0.034 0.041 -0.167 -0.254 0.028 -0.225 -0.232 -0.088 -0.030 + 10.165 -0.559 -0.461 -0.510 -0.283 -0.148 -0.239 -0.228 -0.056 -0.316 -0.317 -0.162 -0.088 + 9.637 -0.907 -0.566 -0.610 -0.257 -0.178 -0.144 -0.046 0.153 -0.090 -0.175 0.012 -0.133 + 9.370 -0.478 -0.394 -0.371 -0.148 -0.275 -0.304 -0.179 0.145 -0.179 -0.273 -0.019 -0.077 + 9.232 -0.600 -0.174 -0.367 -0.130 -0.293 -0.325 -0.247 0.206 0.066 -0.148 -0.005 -0.022 + 9.191 -0.387 0.175 -0.351 -0.392 -0.543 -0.105 -0.136 0.122 0.031 -0.209 -0.185 -0.035 + 9.266 -0.052 0.163 -0.322 -0.091 -0.200 -0.220 -0.272 0.197 0.029 -0.099 -0.170 -0.239 + 8.497 -0.496 -0.011 -0.544 -0.269 -0.446 -0.368 -0.200 0.379 0.106 -0.183 0.003 -0.156 + 8.401 -0.519 -0.252 -0.514 -0.238 -0.574 -0.428 -0.224 0.344 0.029 -0.227 -0.011 -0.185 + 8.574 -0.437 -0.220 -0.437 -0.219 -0.432 -0.311 -0.230 0.301 -0.023 -0.202 -0.024 -0.199 + 8.777 -0.669 -0.369 -0.336 -0.368 -0.344 -0.316 0.037 0.348 -0.015 -0.225 -0.000 -0.146 + 8.507 -0.460 -0.271 -0.215 -0.383 -0.037 0.026 0.117 0.484 0.043 -0.244 -0.052 -0.205 + 8.374 -0.252 -0.384 -0.083 -0.388 -0.277 -0.022 0.056 0.393 0.028 -0.308 -0.065 -0.139 + 8.351 -0.470 -0.357 0.094 -0.558 -0.585 -0.062 0.208 0.260 -0.017 -0.145 -0.029 -0.090 + 7.547 -0.322 -0.120 -0.068 -0.574 -0.270 -0.167 0.124 0.312 0.145 -0.037 -0.031 -0.198 + 11.486 0.663 -0.453 0.069 -0.093 -0.297 -0.307 0.121 -0.179 -0.063 -0.343 -0.078 -0.288 + 12.931 0.653 -0.381 0.021 -0.167 -0.377 -0.388 0.204 -0.217 0.018 -0.311 0.115 -0.280 + 12.307 0.431 -0.435 0.007 -0.159 -0.530 -0.511 0.155 -0.168 0.109 -0.200 0.287 -0.162 + 8.791 0.430 0.041 -0.203 0.018 -0.476 -0.631 0.223 0.013 0.120 -0.223 0.033 -0.145 + 7.722 -0.027 -0.236 -0.140 -0.238 -0.589 -0.348 0.067 0.258 0.160 -0.243 0.034 -0.142 + 7.743 -0.180 -0.419 -0.370 -0.157 -0.603 -0.417 -0.053 0.254 0.093 -0.269 0.099 -0.074 + 8.042 -0.170 -0.328 -0.317 -0.148 -0.487 -0.265 0.024 0.243 -0.087 -0.155 0.105 0.080 + 8.176 -0.296 -0.306 -0.426 -0.124 -0.660 -0.145 0.144 0.286 -0.287 -0.264 0.214 0.132 + 8.267 -0.380 -0.236 -0.471 -0.165 -0.571 -0.190 0.226 0.068 -0.254 -0.153 0.124 0.063 + 8.311 -0.503 -0.238 -0.584 -0.066 -0.474 -0.261 0.130 0.176 -0.272 -0.341 0.048 0.060 + 7.847 -0.684 -0.339 -0.467 -0.117 -0.646 -0.187 0.107 0.359 -0.265 -0.536 0.039 0.121 + 7.864 -0.655 -0.411 -0.369 -0.050 -0.266 -0.151 0.202 0.236 -0.398 -0.396 -0.130 0.044 + 7.983 -0.555 -0.464 -0.250 0.072 -0.553 -0.043 0.168 0.320 -0.281 -0.435 -0.294 0.056 + 8.107 -0.638 -0.443 -0.346 0.099 -0.391 -0.058 0.207 0.300 -0.251 -0.324 -0.205 0.077 + 8.101 -0.450 -0.242 -0.277 -0.019 -0.439 -0.076 0.191 0.272 -0.183 -0.434 -0.277 -0.090 + 7.636 -0.507 -0.388 -0.381 0.069 -0.413 -0.113 0.087 0.221 -0.364 -0.463 -0.382 -0.154 + 7.344 -0.580 -0.454 -0.450 0.064 -0.509 -0.103 0.006 0.378 -0.200 -0.326 -0.371 -0.134 + 7.516 -0.492 -0.329 -0.386 0.087 -0.488 -0.239 -0.055 0.536 -0.030 -0.280 -0.285 -0.174 + 7.425 -0.466 -0.341 -0.357 0.068 -0.601 -0.170 0.113 0.513 -0.181 -0.424 -0.370 -0.192 + 7.804 -0.168 -0.214 -0.575 0.160 -0.659 -0.326 -0.049 0.531 -0.020 -0.353 -0.255 -0.034 + 7.595 -0.222 -0.215 -0.467 0.102 -0.596 -0.283 0.055 0.542 0.114 -0.425 -0.262 0.083 + 7.556 -0.078 -0.332 -0.504 0.149 -0.408 -0.419 0.087 0.446 0.092 -0.175 -0.205 -0.039 + 6.960 -0.459 -0.477 -0.617 0.125 -0.338 -0.404 0.025 0.501 0.017 -0.022 -0.216 -0.197 + 7.017 -0.223 -0.228 -0.411 0.267 -0.511 -0.435 -0.119 0.285 -0.100 -0.070 -0.176 -0.193 + 6.887 -0.244 -0.068 -0.320 0.376 -0.344 -0.219 0.035 0.331 -0.312 -0.079 -0.191 -0.208 + 7.164 0.086 0.163 -0.269 0.280 -0.479 -0.281 -0.209 0.268 -0.072 0.011 -0.034 -0.033 + 7.485 0.077 0.205 -0.099 0.156 -0.319 -0.133 -0.245 -0.101 -0.305 -0.135 0.001 0.052 + 7.447 -0.014 0.136 -0.042 -0.001 -0.140 -0.373 -0.373 -0.073 -0.306 -0.039 0.107 0.058 + 7.276 0.086 -0.234 -0.064 0.115 0.029 -0.242 -0.446 -0.082 -0.294 -0.059 -0.076 0.008 + 6.683 0.304 -0.068 -0.257 0.148 -0.072 -0.274 -0.127 -0.246 -0.357 -0.006 0.024 0.037 + 5.965 0.430 0.196 -0.177 0.250 -0.407 -0.383 0.036 -0.053 -0.222 -0.026 0.175 0.115 + 5.738 0.412 0.285 -0.248 0.270 -0.250 -0.244 0.149 0.126 -0.087 -0.293 -0.032 -0.043 + 5.654 0.222 -0.017 -0.122 0.020 -0.092 -0.246 -0.149 0.117 0.047 -0.161 0.082 0.201 + 5.874 0.482 -0.045 0.024 0.039 -0.046 -0.454 -0.178 -0.055 -0.118 -0.126 -0.074 -0.045 + 6.111 0.408 0.177 0.048 0.002 -0.122 -0.264 -0.136 0.015 -0.082 -0.041 0.004 0.019 + 5.843 0.575 0.001 0.002 0.062 -0.015 -0.313 -0.140 -0.033 0.022 -0.201 -0.010 0.015 + 5.656 0.631 0.032 -0.018 -0.123 -0.036 -0.325 -0.096 0.081 -0.062 -0.114 0.019 0.021 + 6.155 0.564 0.333 0.214 0.173 0.207 -0.360 -0.223 -0.257 -0.107 -0.125 -0.111 -0.054 + 5.921 0.710 0.037 -0.107 0.008 0.159 -0.321 -0.201 -0.396 -0.097 -0.021 -0.015 -0.030 + 5.563 0.395 0.015 -0.142 -0.106 0.037 -0.437 -0.142 -0.370 -0.078 -0.140 0.062 0.114 + 3.960 0.309 -0.143 -0.054 0.046 -0.114 -0.280 -0.056 -0.048 0.199 0.031 -0.141 -0.025 + 3.786 0.279 -0.381 0.121 -0.011 -0.224 -0.258 -0.093 -0.198 -0.078 -0.046 0.085 -0.048 + 3.854 0.525 -0.553 0.098 0.011 -0.460 -0.318 -0.197 -0.190 0.016 -0.108 -0.063 0.245 + 3.585 0.292 -0.488 0.150 -0.070 -0.278 0.112 -0.153 -0.213 0.258 0.157 -0.142 0.060 + 4.558 -0.122 -0.311 0.284 -0.297 -0.074 -0.020 -0.290 -0.020 0.077 0.060 0.171 -0.068 + 5.186 -0.468 0.002 0.363 -0.546 -0.139 -0.267 -0.100 0.123 0.117 -0.005 0.251 -0.057 + 5.151 -0.645 0.213 0.448 -0.504 -0.165 -0.250 -0.021 0.139 0.062 0.020 0.068 -0.161 + 5.041 -0.671 0.278 0.398 -0.285 -0.065 -0.043 -0.268 0.136 0.208 0.064 0.033 -0.042 + 5.252 -0.781 0.082 0.316 -0.399 -0.286 0.015 -0.226 0.026 0.107 0.007 0.075 0.066 + 5.989 -0.708 -0.184 0.284 -0.381 -0.246 0.249 0.042 -0.134 -0.138 -0.011 0.069 -0.082 + 6.169 -0.583 -0.235 0.133 -0.396 -0.226 0.274 0.131 -0.073 -0.265 -0.122 -0.006 -0.062 + 6.168 -0.368 -0.538 0.294 -0.298 -0.110 0.084 0.168 0.107 -0.146 -0.205 0.096 0.073 + 6.802 -0.208 -0.875 0.175 -0.334 -0.237 -0.161 0.153 0.175 -0.103 -0.118 0.059 -0.167 + 6.897 -0.085 -1.284 0.116 -0.269 0.008 -0.143 0.170 0.261 -0.198 -0.061 0.179 -0.127 + 7.053 -0.113 -1.478 -0.030 -0.173 0.119 -0.350 0.023 0.129 -0.093 -0.034 0.348 0.033 + 7.467 -0.084 -1.511 0.152 -0.244 0.187 -0.470 -0.124 0.340 -0.056 -0.130 0.253 -0.064 + 7.680 -0.089 -1.521 0.143 -0.306 0.365 -0.567 -0.210 0.290 -0.160 -0.165 0.287 0.022 + 7.953 -0.083 -1.507 -0.045 -0.249 0.404 -0.481 -0.205 0.362 -0.165 -0.077 0.256 -0.013 + 8.297 -0.244 -1.254 -0.342 -0.263 0.383 -0.477 -0.255 0.234 -0.219 -0.116 0.125 -0.044 + 8.428 -0.440 -1.202 -0.510 -0.274 0.407 -0.401 -0.142 0.355 -0.121 -0.005 0.110 0.039 + 8.317 -0.460 -1.024 -0.503 -0.312 0.553 -0.462 -0.155 0.249 -0.177 0.115 0.049 0.004 + 7.975 -0.467 -0.834 -0.482 -0.456 0.623 -0.379 -0.184 0.177 -0.172 0.187 0.095 -0.141 + 7.720 -0.421 -0.691 -0.463 -0.412 0.534 -0.304 -0.146 0.207 -0.131 0.094 0.079 -0.118 + 7.333 -0.171 -0.334 -0.300 -0.409 0.348 -0.258 -0.199 0.152 -0.049 -0.072 0.095 -0.091 + 7.162 -0.022 -0.635 -0.013 -0.358 -0.115 -0.066 0.084 0.023 0.001 -0.059 0.008 -0.013 + 7.150 0.315 -0.584 0.062 -0.215 -0.256 -0.226 -0.064 0.069 0.002 -0.133 -0.100 0.005 + 6.861 0.602 -0.555 0.054 -0.234 -0.202 -0.320 -0.029 -0.004 0.054 -0.147 -0.082 -0.038 + 6.176 0.581 -0.572 0.091 -0.213 -0.064 0.051 0.082 0.047 -0.069 -0.160 -0.074 -0.169 + 7.322 1.445 -0.133 0.181 -0.212 -0.120 -0.296 -0.068 -0.059 -0.038 -0.054 -0.111 -0.129 + 7.222 1.235 0.008 0.174 -0.048 -0.166 -0.386 0.023 -0.045 0.071 -0.051 -0.090 -0.065 + 6.226 0.170 -0.649 0.691 0.308 -0.027 -0.199 0.119 -0.110 -0.086 -0.282 -0.128 -0.112 + 6.276 0.213 -0.746 0.726 0.030 -0.276 -0.214 -0.070 -0.135 -0.154 -0.125 0.113 -0.104 + 6.538 0.260 -0.646 0.740 -0.085 -0.469 -0.426 0.033 -0.105 -0.052 -0.039 0.248 -0.034 + 6.853 0.521 -0.674 0.692 -0.112 -0.586 -0.483 0.144 -0.053 -0.204 0.041 0.354 0.099 + 6.619 0.153 -0.959 0.673 0.091 -0.778 -0.786 0.168 -0.026 -0.236 0.134 0.264 0.161 + 6.733 0.404 -0.848 0.487 0.044 -0.657 -0.789 0.218 -0.027 -0.091 -0.031 0.108 0.156 + 6.643 0.542 -0.636 0.072 -0.113 -0.623 -0.898 0.144 0.049 -0.140 -0.016 0.156 0.229 + 6.245 0.618 -0.740 0.053 -0.304 -0.636 -0.763 0.020 -0.186 -0.332 -0.077 0.054 0.054 + 6.232 0.608 -0.673 0.177 -0.234 -0.474 -0.659 0.141 -0.223 -0.225 0.028 0.099 0.258 + 6.811 0.110 -0.348 0.494 0.094 -0.597 -0.579 -0.093 -0.211 -0.274 -0.037 0.048 0.004 + 7.379 -0.129 -0.242 0.567 0.243 -0.459 -0.551 -0.062 -0.194 -0.434 -0.071 0.055 -0.004 + 7.454 0.055 -0.261 0.568 0.041 -0.581 -0.496 -0.210 -0.090 -0.290 -0.168 0.065 0.100 + 7.322 -0.067 -0.383 0.565 -0.186 -0.530 -0.320 -0.225 -0.096 -0.134 -0.030 0.051 -0.012 + 6.939 -0.097 -0.444 0.606 -0.224 -0.661 -0.420 -0.291 -0.205 0.034 0.093 0.014 0.078 + 6.633 -0.188 -0.117 0.565 -0.514 -0.572 -0.181 -0.182 0.040 0.021 -0.002 0.031 0.005 + 6.760 -0.184 -0.065 0.507 -0.474 -0.495 -0.199 -0.288 -0.003 -0.203 0.134 0.162 -0.218 + 6.858 -0.476 -0.023 0.375 -0.606 -0.552 -0.181 0.002 -0.046 -0.175 0.071 0.228 -0.294 + 6.967 -0.288 0.149 0.186 -0.309 -0.713 -0.493 -0.097 -0.077 -0.062 -0.100 0.247 -0.183 + 6.308 -0.213 0.260 0.133 -0.190 -0.582 -0.582 -0.087 -0.098 -0.166 -0.042 0.211 -0.149 + 5.922 0.097 0.230 0.238 -0.103 -0.288 -0.470 -0.007 -0.082 -0.431 -0.146 0.181 -0.216 + 5.182 0.296 0.217 0.133 -0.223 -0.205 -0.401 -0.141 -0.119 -0.259 -0.033 0.165 -0.154 + 4.593 0.325 -0.015 0.141 -0.093 -0.225 -0.324 -0.125 -0.079 -0.282 -0.182 0.140 -0.062 + 4.604 0.353 0.094 0.346 -0.000 -0.394 -0.359 -0.334 -0.184 -0.342 -0.172 0.004 -0.046 + 4.559 0.144 0.115 0.349 0.093 -0.284 -0.365 -0.268 -0.179 -0.293 -0.071 0.005 -0.224 + 4.752 0.318 0.084 0.243 0.039 -0.253 -0.363 -0.314 -0.210 -0.283 -0.200 0.011 -0.101 + 5.104 0.192 0.176 0.141 -0.249 -0.388 -0.506 -0.280 0.018 -0.128 -0.131 -0.073 -0.208 + 5.522 -0.118 0.037 0.307 -0.403 -0.330 -0.307 -0.209 0.069 0.030 0.044 -0.069 -0.168 + 5.872 -0.295 0.185 0.364 -0.304 -0.253 -0.347 -0.369 -0.037 -0.078 0.067 0.043 -0.192 + 5.962 -0.224 0.181 -0.239 -0.079 -0.001 -0.375 -0.409 -0.014 0.018 -0.051 -0.046 -0.127 + 6.131 -0.342 0.279 -0.148 -0.232 -0.182 -0.612 -0.411 0.024 0.028 -0.156 -0.045 -0.022 + 6.386 -0.329 0.054 -0.019 -0.195 0.020 -0.408 -0.486 -0.179 -0.050 -0.128 0.016 0.100 + 6.477 -0.049 0.047 -0.105 -0.258 -0.019 -0.364 -0.523 -0.212 -0.099 -0.060 0.016 -0.011 + 4.966 0.154 -0.019 0.044 -0.131 0.045 -0.236 -0.446 -0.197 -0.145 -0.193 -0.059 -0.053 + 4.040 0.470 -0.001 0.383 -0.035 -0.289 -0.624 -0.236 0.018 -0.100 -0.149 0.070 -0.050 + 4.761 0.323 -0.207 0.201 -0.074 -0.309 -0.720 -0.133 0.098 -0.071 -0.316 0.134 -0.121 + 5.489 0.377 -0.581 -0.071 -0.280 -0.314 -0.779 0.021 0.271 -0.166 -0.482 0.199 -0.249 + 6.095 0.108 -0.630 -0.336 -0.356 -0.300 -0.735 0.102 0.326 -0.240 -0.471 0.226 -0.165 + 6.160 -0.039 -0.949 -0.472 -0.101 -0.094 -0.638 0.137 0.076 -0.290 -0.587 0.065 -0.137 + 6.500 -0.015 -0.978 -0.565 -0.133 -0.002 -0.636 0.092 0.152 -0.196 -0.588 0.127 -0.201 + 6.612 -0.010 -1.001 -0.420 -0.108 0.116 -0.614 0.134 0.129 -0.194 -0.571 0.146 -0.098 + 6.603 -0.106 -1.184 -0.395 -0.305 0.283 -0.491 -0.014 0.233 -0.262 -0.405 0.158 -0.007 + 6.349 -0.067 -1.302 -0.324 -0.281 0.382 -0.410 0.032 0.268 -0.388 -0.438 0.187 -0.127 + 6.305 -0.297 -1.246 -0.546 -0.033 0.415 -0.318 0.176 0.179 -0.347 -0.544 0.340 -0.143 + 6.594 -0.126 -1.179 -0.538 -0.027 0.318 -0.401 0.149 0.113 -0.187 -0.382 0.344 -0.112 + 6.519 -0.244 -1.282 -0.635 -0.063 0.261 -0.425 -0.014 -0.016 -0.242 -0.450 0.335 -0.164 + 6.479 -0.204 -1.425 -0.573 -0.121 0.252 -0.352 -0.047 -0.006 -0.163 -0.273 0.325 -0.181 + 6.676 -0.157 -1.317 -0.646 -0.439 0.234 -0.478 -0.024 0.011 -0.137 -0.272 0.238 -0.219 + 6.573 -0.204 -1.441 -0.577 -0.598 -0.056 -0.509 -0.118 -0.036 -0.058 -0.279 0.315 -0.270 + 6.334 -0.103 -1.291 -0.372 -0.448 -0.223 -0.508 0.100 -0.110 0.074 -0.194 0.426 -0.292 + 6.269 -0.082 -1.316 -0.466 -0.227 -0.145 -0.659 0.075 -0.141 0.042 -0.196 0.370 -0.235 + 6.276 -0.014 -1.263 -0.659 -0.287 0.104 -0.441 0.027 0.098 0.020 -0.333 0.302 -0.154 + 6.008 0.241 -1.016 -0.672 -0.184 0.158 -0.329 0.151 0.226 -0.115 -0.184 0.233 -0.256 + 4.787 0.427 -0.474 -0.577 -0.075 0.086 -0.325 0.073 0.158 -0.013 -0.225 0.144 -0.114 + 4.583 0.552 -0.508 -0.504 -0.170 0.002 -0.259 -0.072 0.186 -0.087 -0.181 0.152 -0.033 + 4.648 0.421 -0.563 -0.423 -0.288 -0.060 -0.266 0.113 0.212 0.111 -0.179 0.014 -0.227 + 4.329 0.523 -0.556 -0.389 -0.192 0.044 -0.260 0.079 0.423 0.101 -0.223 -0.028 -0.153 + 3.873 0.530 -0.430 -0.112 -0.099 -0.001 -0.346 0.056 0.183 0.142 0.063 0.127 -0.114 + 5.093 -0.341 -0.460 -0.117 0.025 0.338 0.131 -0.233 0.037 -0.052 0.045 -0.014 -0.078 + 8.098 -0.766 -0.589 -0.150 -0.227 0.311 0.143 -0.527 -0.042 0.063 0.090 0.020 -0.042 + 8.906 -0.656 -0.617 -0.006 -0.232 0.097 -0.036 -0.562 -0.033 -0.035 -0.201 -0.054 -0.036 + 9.166 -0.647 -0.676 -0.098 -0.264 0.099 -0.015 -0.401 0.086 0.075 0.008 0.016 0.040 + 9.091 -0.446 -0.319 -0.161 -0.198 0.146 -0.013 -0.520 -0.050 0.155 0.003 -0.019 -0.069 + 9.523 -0.322 -0.335 -0.187 -0.328 0.072 -0.175 -0.480 -0.102 -0.010 -0.152 0.025 -0.103 + 9.732 -0.448 -0.370 -0.049 -0.131 0.012 -0.335 -0.400 0.018 0.151 -0.116 -0.025 0.010 + 9.714 -0.476 -0.477 -0.094 -0.138 0.053 -0.077 -0.318 0.201 0.024 -0.035 -0.046 0.002 + 9.654 0.038 -0.323 -0.153 -0.218 -0.088 -0.183 -0.286 0.134 0.021 -0.065 -0.119 -0.034 + 8.556 0.192 -0.045 -0.211 -0.070 0.053 -0.179 -0.363 -0.201 0.063 -0.155 -0.058 0.013 + 7.567 -0.034 -0.212 -0.301 -0.154 0.123 -0.333 -0.214 -0.045 0.153 -0.008 0.017 -0.078 + 6.856 -0.072 0.103 -0.148 -0.216 -0.129 -0.224 -0.012 0.050 0.136 0.010 -0.037 -0.043 + 5.706 -0.076 0.009 -0.009 -0.104 0.076 -0.166 0.104 0.060 0.055 -0.069 -0.220 -0.038 + 4.551 -0.079 0.091 0.051 -0.180 -0.022 -0.127 -0.177 -0.027 0.056 0.018 0.011 0.063 + 4.123 -0.302 0.110 0.017 -0.256 0.072 -0.426 -0.117 0.046 0.090 -0.164 0.035 0.167 + 4.138 -0.458 -0.144 0.150 -0.154 -0.014 -0.154 0.070 -0.102 0.073 0.064 0.081 0.065 + 4.405 -0.138 0.008 0.178 -0.088 0.057 -0.183 -0.064 -0.087 0.008 -0.112 -0.091 -0.060 + 4.692 -0.138 0.124 0.081 0.037 0.063 -0.354 -0.190 0.109 0.028 -0.095 -0.058 0.001 + 5.003 -0.354 -0.108 -0.043 -0.045 0.265 -0.147 0.025 0.151 0.058 -0.165 -0.086 -0.171 + 4.970 -0.212 0.061 0.056 -0.095 0.013 -0.147 0.155 -0.054 -0.031 -0.054 -0.054 -0.082 + 5.158 -0.183 0.037 -0.012 -0.308 -0.239 -0.365 0.005 -0.060 0.046 -0.075 0.002 -0.019 + 5.449 0.072 0.080 -0.055 -0.248 0.022 -0.119 -0.043 -0.113 -0.162 -0.139 -0.087 -0.169 + 6.496 0.401 0.212 0.111 -0.047 0.182 0.141 0.099 -0.126 -0.087 -0.168 -0.009 -0.067 + 5.695 0.215 0.332 0.152 -0.129 0.105 -0.194 0.039 -0.080 0.009 -0.076 0.009 -0.297 + 5.309 -0.149 -0.111 -0.118 -0.499 -0.174 -0.160 0.127 -0.155 -0.013 0.129 -0.058 -0.115 + 5.472 -0.125 -0.077 0.017 -0.281 -0.048 -0.203 0.031 -0.084 0.056 -0.144 -0.072 0.042 + 5.195 0.014 0.032 -0.047 -0.182 0.120 -0.101 -0.010 -0.087 -0.059 -0.061 -0.038 -0.090 + 5.398 0.092 0.040 0.194 -0.114 0.083 -0.153 0.031 -0.053 -0.110 -0.106 -0.071 -0.223 + 5.672 0.552 0.424 0.386 -0.059 -0.040 -0.360 -0.184 0.084 0.133 -0.136 -0.230 -0.078 + 5.325 0.565 0.181 0.215 0.006 0.035 -0.270 -0.386 -0.301 0.111 -0.102 -0.216 -0.011 + 7.237 0.571 -0.519 -0.328 0.052 -0.247 -0.211 -0.071 -0.107 -0.109 -0.159 -0.047 -0.087 + 8.081 0.568 -0.421 -0.386 0.198 -0.267 -0.183 -0.069 -0.073 -0.181 -0.160 -0.033 -0.128 + 4.216 0.434 0.626 0.343 -0.079 -0.073 -0.204 -0.155 -0.174 0.044 -0.124 -0.211 -0.105 + 4.190 0.501 0.460 0.183 -0.026 0.090 -0.110 -0.133 -0.211 -0.069 -0.135 -0.026 -0.220 + 4.278 0.430 0.392 0.013 -0.019 0.158 0.070 0.039 -0.080 0.005 -0.165 -0.086 -0.215 + 4.353 0.288 0.156 0.041 -0.189 -0.140 -0.053 -0.013 -0.096 0.095 -0.044 -0.092 -0.112 + 5.658 -0.244 0.055 -0.229 0.044 -0.006 -0.070 0.029 -0.222 -0.077 -0.151 -0.072 -0.053 + 3.647 0.358 -0.088 0.088 0.040 -0.109 -0.122 -0.160 -0.119 -0.039 -0.076 0.036 -0.041 + 3.444 0.283 -0.087 0.163 0.098 0.009 -0.022 0.102 -0.023 -0.028 -0.050 -0.021 -0.075 + 3.661 0.526 -0.016 0.050 -0.007 -0.088 -0.143 -0.005 -0.076 -0.038 -0.094 -0.106 -0.024 + 3.681 0.403 -0.150 0.066 0.059 -0.032 -0.090 0.065 -0.164 -0.047 -0.110 -0.113 -0.012 + 4.021 0.377 -0.093 -0.112 -0.188 -0.098 -0.136 -0.181 -0.237 -0.031 -0.035 0.020 -0.028 + 3.623 0.361 -0.157 -0.006 -0.045 -0.167 -0.265 -0.071 -0.118 -0.016 -0.076 -0.026 -0.171 + 3.760 0.336 -0.196 -0.073 -0.057 -0.047 0.087 -0.096 -0.070 -0.004 0.009 0.132 0.034 + 3.709 0.320 -0.186 0.008 -0.069 -0.144 -0.010 -0.022 -0.185 -0.103 -0.216 0.050 -0.004 + 3.953 0.349 -0.179 -0.072 -0.147 -0.194 -0.061 -0.034 -0.018 0.029 0.001 -0.097 0.060 + 5.822 -0.920 0.087 -0.002 -0.153 -0.133 -0.263 -0.167 -0.150 -0.027 -0.048 -0.017 -0.091 + 5.050 -0.354 0.366 -0.012 -0.240 -0.149 -0.150 -0.158 -0.158 -0.132 -0.131 -0.059 -0.061 + 3.892 0.438 0.070 0.324 -0.288 -0.224 -0.174 -0.164 -0.113 -0.201 0.007 0.024 0.062 + 3.512 0.500 0.248 0.033 0.011 -0.127 -0.105 -0.133 -0.221 -0.145 -0.148 -0.102 -0.058 + 3.566 0.089 -0.055 0.029 -0.053 0.072 0.050 -0.077 -0.002 -0.062 -0.148 -0.065 -0.037 + 3.329 0.000 0.069 0.021 -0.017 -0.067 -0.052 -0.189 -0.223 0.104 -0.050 -0.071 -0.182 + 2.601 0.048 -0.067 0.077 0.015 -0.173 -0.055 -0.231 -0.108 -0.094 -0.095 -0.026 -0.169 + 2.690 -0.128 -0.162 0.075 -0.011 -0.121 -0.050 0.055 -0.088 0.061 0.024 -0.063 -0.176 + 2.674 -0.142 -0.129 0.112 0.050 -0.105 -0.081 -0.013 -0.168 -0.005 -0.053 0.085 0.090 + 2.832 0.045 -0.130 0.137 -0.000 -0.152 -0.064 0.149 -0.152 -0.001 -0.146 -0.123 -0.073 + 2.501 0.039 0.065 0.258 0.045 -0.013 -0.039 -0.001 -0.236 -0.099 -0.025 -0.061 -0.096 + 2.361 -0.020 -0.035 0.156 0.105 -0.034 0.043 0.121 0.013 -0.131 -0.120 -0.114 -0.007 + 2.417 -0.132 -0.073 0.149 0.056 -0.042 0.265 0.163 0.003 -0.060 -0.006 -0.041 -0.171 + 2.469 0.153 -0.008 -0.057 -0.130 0.049 -0.048 -0.005 -0.080 0.026 0.026 0.042 -0.085 + 2.195 0.007 0.113 0.055 -0.024 0.055 -0.005 -0.087 0.007 -0.063 -0.079 0.002 -0.071 + 2.427 -0.117 0.254 -0.199 0.016 -0.071 -0.067 0.081 -0.119 -0.090 -0.149 0.005 -0.179 + 2.881 0.017 0.378 -0.382 0.032 0.047 -0.101 0.100 -0.136 0.029 0.046 -0.044 -0.160 + 2.692 0.570 -0.019 -0.084 -0.214 0.007 -0.100 -0.008 0.033 0.040 -0.031 0.023 -0.054 + 2.655 0.382 -0.157 -0.165 -0.158 0.043 0.108 0.045 -0.100 -0.132 -0.068 -0.129 -0.149 + 2.442 0.644 0.084 -0.234 -0.292 -0.027 -0.001 0.103 0.003 -0.013 0.067 -0.065 -0.173 + 2.388 0.308 -0.076 0.016 -0.218 -0.449 -0.239 -0.033 0.080 0.022 -0.103 -0.068 -0.066 + 3.191 0.308 0.255 0.218 -0.300 -0.297 -0.029 0.085 0.095 -0.031 -0.067 -0.102 -0.285 + 4.024 0.740 0.002 0.009 -0.324 -0.106 0.017 0.013 -0.182 -0.165 -0.042 -0.129 -0.108 + 4.161 0.335 0.061 -0.076 -0.570 -0.362 0.038 -0.032 -0.108 -0.062 -0.092 0.038 -0.090 + 4.103 0.314 0.142 0.055 -0.593 -0.210 0.173 -0.058 -0.210 -0.034 -0.140 -0.145 -0.171 + 3.886 0.822 -0.461 0.156 -0.402 -0.094 -0.050 -0.102 -0.171 -0.018 0.009 -0.003 -0.073 + 3.139 0.849 -0.044 0.260 -0.345 -0.113 -0.058 -0.153 -0.026 -0.056 -0.251 -0.135 -0.075 + 3.545 1.007 -0.347 -0.008 -0.279 -0.122 0.035 -0.136 -0.115 0.047 -0.049 -0.027 -0.058 + 3.441 0.977 -0.189 -0.023 -0.309 0.012 0.120 0.023 -0.057 -0.175 -0.244 -0.012 -0.021 + 3.297 0.899 -0.217 -0.012 -0.492 -0.106 -0.040 -0.047 -0.145 0.012 -0.172 -0.081 -0.060 + 3.867 1.160 -0.365 -0.116 -0.459 -0.116 -0.011 -0.100 0.011 -0.093 -0.148 -0.173 -0.030 + 3.999 1.137 -0.257 0.308 -0.367 -0.078 0.166 -0.248 -0.232 0.003 -0.145 -0.080 -0.165 + 3.674 0.774 0.079 0.373 -0.385 -0.264 0.049 -0.066 -0.212 -0.002 -0.186 -0.015 -0.038 + 3.793 1.057 -0.043 0.318 -0.560 -0.088 -0.009 -0.226 -0.086 -0.072 -0.314 0.002 0.022 + 3.559 0.728 -0.380 0.616 -0.391 -0.312 0.020 -0.021 -0.091 -0.240 -0.105 0.058 0.143 + 4.277 0.936 -0.280 0.371 -0.079 -0.176 -0.144 -0.213 -0.192 -0.039 -0.037 0.068 -0.123 + 4.825 0.641 0.119 0.317 -0.074 -0.127 -0.248 -0.445 -0.150 -0.025 0.029 0.081 -0.329 + 5.170 0.541 0.060 0.175 -0.313 -0.238 -0.183 -0.242 -0.314 0.170 -0.048 0.063 -0.219 + 5.072 0.727 0.230 0.186 -0.448 -0.150 -0.109 -0.373 -0.349 0.207 -0.093 -0.068 -0.231 + 5.111 0.641 0.297 0.161 -0.489 -0.079 -0.181 -0.328 -0.385 0.233 -0.113 -0.006 -0.225 + 5.158 0.668 0.496 0.174 -0.409 -0.145 -0.152 -0.356 -0.492 0.189 -0.029 -0.078 -0.261 + 5.568 0.650 0.022 0.111 -0.285 -0.168 -0.121 -0.363 -0.403 0.137 -0.199 0.017 -0.325 + 5.593 0.601 -0.007 0.097 -0.021 0.027 -0.092 -0.244 -0.486 -0.153 -0.130 0.063 -0.248 + 5.189 0.571 0.250 0.267 -0.108 -0.037 -0.235 -0.298 -0.527 -0.021 0.040 -0.024 -0.077 + 5.647 0.862 0.366 -0.027 -0.078 -0.083 0.125 0.087 -0.157 -0.128 -0.219 -0.249 -0.296 + 5.605 0.853 0.736 0.277 -0.123 -0.022 -0.022 -0.079 -0.179 -0.127 -0.297 -0.248 -0.286 + 5.067 0.589 0.328 0.026 -0.304 -0.098 -0.087 -0.205 -0.153 -0.030 -0.074 -0.035 0.001 + 4.774 0.112 0.172 0.316 0.003 -0.145 -0.276 -0.222 -0.303 -0.065 -0.134 -0.008 -0.015 + 5.300 -0.164 -0.019 0.359 -0.024 -0.311 -0.172 -0.400 -0.305 -0.068 -0.114 -0.019 0.056 + 6.808 0.010 0.054 0.276 -0.379 -0.310 -0.084 -0.295 -0.200 0.194 -0.096 -0.041 -0.077 + 8.777 0.393 0.281 0.124 -0.491 -0.088 -0.352 -0.300 -0.091 0.229 -0.063 -0.060 -0.191 + 7.440 0.157 0.252 0.531 -0.285 -0.230 0.110 -0.326 -0.202 0.127 -0.240 -0.046 -0.189 + 8.737 0.509 0.116 0.181 -0.258 -0.072 0.062 -0.200 -0.273 0.039 -0.299 -0.047 -0.203 + 9.199 0.668 0.204 0.171 -0.317 0.099 0.170 -0.305 -0.262 -0.046 -0.295 -0.017 -0.201 + 6.554 -0.096 0.441 0.388 -0.351 -0.212 0.393 -0.189 -0.196 0.157 -0.344 0.085 -0.163 + 5.845 -0.226 0.291 0.308 -0.585 -0.352 0.224 -0.493 -0.201 0.137 -0.235 0.125 0.005 + 5.556 -0.277 0.320 0.302 -0.472 -0.408 0.155 -0.623 -0.152 0.121 -0.247 0.267 -0.102 + 5.755 -0.182 0.455 0.544 -0.527 -0.307 0.057 -0.621 -0.291 0.068 -0.311 0.044 -0.115 + 6.441 -0.388 0.433 0.578 -0.518 -0.335 -0.117 -0.752 -0.292 0.147 -0.366 -0.065 -0.186 + 6.325 -0.278 0.456 0.623 -0.679 -0.452 0.088 -0.793 -0.420 -0.001 -0.416 -0.076 -0.250 + 6.515 -0.340 0.477 0.543 -0.747 -0.554 0.262 -0.536 -0.294 0.122 -0.412 -0.059 -0.298 + 6.474 -0.524 0.416 0.445 -0.909 -0.788 0.172 -0.538 -0.210 0.272 -0.216 0.028 -0.223 + 6.416 -0.444 0.232 0.271 -0.858 -0.641 0.277 -0.527 -0.068 0.243 -0.221 0.043 -0.113 + 6.342 -0.334 0.147 0.361 -0.860 -0.601 0.200 -0.619 -0.156 0.193 -0.201 -0.005 -0.071 + 6.172 -0.141 0.315 0.378 -0.566 -0.744 0.074 -0.454 -0.096 0.104 -0.432 0.011 -0.089 + 5.314 -0.146 0.449 0.243 -0.524 -0.353 0.285 -0.547 -0.228 0.089 -0.398 -0.010 -0.113 + 5.328 0.160 0.364 0.343 -0.344 -0.338 0.109 -0.235 -0.074 0.277 -0.331 -0.078 -0.196 + 5.328 0.161 0.327 0.268 -0.122 -0.172 0.113 -0.185 -0.066 -0.036 -0.120 0.016 -0.142 + 5.288 0.062 0.324 0.208 0.046 -0.191 0.020 -0.133 -0.119 0.043 -0.126 -0.093 -0.125 + 4.707 0.235 0.166 0.215 -0.160 -0.177 -0.142 -0.119 -0.192 -0.084 0.029 -0.038 -0.124 + 4.866 0.442 0.118 0.397 -0.237 -0.121 0.030 -0.212 -0.119 -0.009 -0.240 -0.039 -0.053 + 5.048 0.342 0.306 0.347 -0.082 0.034 -0.135 -0.120 -0.202 0.090 -0.172 -0.038 -0.095 + 4.979 -0.038 0.165 0.115 -0.213 0.082 0.074 -0.226 -0.059 0.087 -0.110 0.005 -0.015 + 5.281 -0.046 0.212 0.306 -0.322 -0.204 0.139 -0.312 -0.086 0.072 -0.259 -0.035 -0.189 + 5.306 -0.287 0.386 0.479 -0.319 -0.317 0.100 -0.422 -0.116 0.079 -0.232 -0.012 -0.164 + 5.418 -0.412 0.582 0.516 -0.557 -0.356 0.019 -0.512 -0.235 0.211 -0.128 0.028 -0.187 + 6.190 -0.339 0.462 0.633 -0.672 -0.612 -0.020 -0.319 -0.194 0.123 0.056 0.009 -0.267 + 6.315 -0.462 -0.002 0.410 -0.414 -0.558 0.055 -0.148 -0.153 -0.083 -0.151 0.100 -0.226 + 5.907 -0.678 -0.161 0.302 -0.212 -0.381 0.229 0.076 -0.096 0.049 -0.073 0.123 -0.424 + 5.973 -0.520 -0.073 0.282 -0.092 -0.386 0.025 -0.015 -0.018 -0.013 -0.067 0.089 -0.449 + 6.158 -0.377 -0.128 0.350 -0.031 -0.488 -0.049 -0.153 -0.086 -0.076 -0.077 0.158 -0.343 + 6.083 -0.310 -0.273 0.066 -0.087 -0.509 -0.011 0.043 0.025 -0.055 -0.120 0.328 -0.312 + 5.970 -0.137 -0.637 -0.244 -0.164 -0.541 -0.061 0.223 0.075 -0.137 -0.262 0.310 -0.357 + 8.920 1.368 -0.150 -0.148 -0.059 -0.264 -0.226 -0.177 -0.144 -0.204 -0.261 0.076 -0.213 + 9.455 1.320 -0.072 0.032 -0.103 -0.269 -0.188 -0.156 -0.169 -0.143 -0.191 0.080 -0.056 + 6.961 0.862 -0.056 0.169 -0.046 -0.374 -0.038 0.175 0.039 -0.288 -0.172 0.213 -0.301 + 5.693 -0.013 -0.144 -0.030 -0.130 -0.344 -0.090 0.268 0.346 -0.093 -0.255 0.304 -0.185 + 5.616 -0.116 -0.313 0.069 -0.131 -0.336 -0.189 0.378 0.183 -0.286 -0.245 0.222 -0.341 + 5.643 0.091 -0.432 -0.019 -0.224 -0.372 -0.207 0.228 -0.008 -0.187 -0.220 0.240 -0.379 + 5.752 0.460 -0.387 0.045 -0.097 -0.336 -0.300 0.215 0.240 -0.299 -0.195 0.168 -0.310 + 8.123 0.258 0.050 -0.380 -0.270 -0.363 -0.136 -0.117 -0.215 0.019 -0.244 -0.004 -0.135 + 8.404 -0.072 0.176 -0.063 -0.417 -0.354 -0.024 -0.055 -0.128 0.180 -0.200 0.031 -0.040 + 9.396 -0.410 0.331 0.035 -0.276 -0.237 -0.173 -0.009 -0.214 0.168 -0.378 -0.063 -0.037 + 5.929 0.282 0.336 0.429 0.000 -0.321 -0.239 0.091 0.003 0.148 -0.145 0.054 -0.095 + 5.351 0.497 0.376 0.132 -0.192 -0.310 -0.114 0.136 -0.018 -0.097 -0.069 -0.125 -0.317 + 4.942 0.327 0.206 0.115 -0.008 -0.227 -0.119 0.026 -0.160 -0.182 -0.190 0.010 -0.192 + 5.298 0.499 0.156 0.026 -0.194 -0.264 0.043 0.035 -0.060 -0.278 -0.039 -0.092 -0.265 + 5.425 0.479 0.418 0.213 -0.154 -0.151 -0.041 -0.071 -0.261 -0.183 -0.112 0.014 -0.205 + 5.336 0.371 0.358 0.133 -0.160 -0.031 -0.123 -0.127 -0.406 -0.183 -0.109 -0.092 -0.360 + 5.144 0.319 0.204 0.055 -0.174 -0.393 -0.096 -0.156 -0.292 -0.167 -0.106 -0.050 -0.187 + 4.790 0.132 0.163 0.208 -0.219 -0.344 -0.169 -0.083 -0.151 0.002 -0.119 -0.135 -0.104 + 4.862 0.214 0.141 0.134 -0.183 -0.378 -0.053 0.045 -0.204 -0.066 -0.157 -0.230 -0.243 + 5.471 0.369 0.268 -0.081 -0.240 -0.194 -0.137 -0.117 -0.345 -0.108 -0.030 0.061 -0.118 + 5.151 0.429 0.057 -0.066 -0.158 -0.133 0.076 0.008 -0.350 -0.255 -0.180 0.074 -0.215 + 5.426 0.398 0.103 -0.001 -0.222 -0.226 0.035 -0.017 -0.176 0.158 -0.035 -0.122 -0.155 + 5.800 0.620 0.387 0.023 -0.046 -0.022 0.186 -0.049 -0.133 0.044 0.026 -0.214 -0.241 + 5.524 0.238 0.227 -0.072 -0.067 -0.048 0.041 -0.035 -0.139 0.011 -0.044 0.026 0.019 + 5.002 -0.043 0.227 -0.085 -0.216 -0.192 -0.056 0.059 -0.118 -0.098 -0.058 -0.079 -0.232 + 4.668 -0.089 0.180 0.020 -0.268 -0.207 0.036 0.106 -0.109 -0.210 -0.094 -0.169 -0.147 + 4.591 -0.027 0.238 0.048 -0.099 -0.169 -0.055 0.100 -0.016 -0.037 -0.206 -0.279 -0.111 + 4.722 -0.060 0.182 -0.037 -0.125 -0.133 -0.104 0.016 -0.216 -0.152 -0.202 -0.109 -0.080 + 4.732 -0.086 0.247 0.001 -0.173 -0.199 -0.146 0.004 -0.024 -0.034 -0.101 -0.147 -0.107 + 4.800 -0.213 0.106 -0.320 -0.058 -0.259 -0.084 -0.046 -0.027 -0.061 -0.072 0.026 -0.235 + 4.291 -0.112 0.468 0.004 -0.192 -0.239 -0.024 0.002 -0.079 -0.075 -0.113 -0.019 -0.086 + 3.982 -0.080 0.430 -0.060 -0.235 -0.201 -0.024 0.088 0.081 -0.024 -0.074 -0.082 -0.063 + 4.187 0.131 0.271 -0.083 -0.125 0.017 0.100 -0.030 -0.197 -0.113 -0.182 -0.171 -0.178 + 3.794 -0.013 0.319 0.057 -0.135 -0.071 0.003 0.000 -0.025 0.228 0.028 -0.099 -0.123 + 3.173 0.112 0.445 0.293 -0.144 -0.147 -0.061 0.055 -0.130 -0.007 -0.077 -0.148 -0.196 + 3.568 0.198 0.471 0.129 -0.210 -0.105 -0.191 -0.029 -0.028 0.016 -0.109 -0.053 0.026 + 3.511 0.272 0.330 0.024 -0.223 -0.181 -0.055 -0.023 -0.176 -0.012 0.105 -0.054 -0.058 + 3.386 0.147 -0.020 -0.201 -0.121 -0.033 -0.160 -0.109 -0.217 -0.058 -0.112 -0.163 -0.161 + 3.070 0.139 0.027 0.030 -0.093 -0.134 -0.191 -0.076 -0.133 -0.089 -0.157 -0.230 -0.148 + 3.244 0.184 -0.014 0.190 0.040 0.007 0.039 -0.045 -0.174 -0.067 -0.114 -0.158 -0.091 + 2.986 0.188 0.100 0.311 0.009 -0.064 -0.224 -0.035 -0.210 -0.257 -0.129 -0.133 -0.031 + 2.193 0.122 0.228 0.214 -0.012 -0.103 0.007 0.128 0.084 0.154 0.101 -0.119 0.097 + 2.238 0.210 0.177 0.140 -0.080 -0.080 0.101 0.292 0.075 -0.102 -0.039 -0.172 0.014 + 2.589 0.168 -0.002 0.088 0.068 -0.097 0.164 0.254 -0.079 -0.135 -0.180 -0.253 -0.114 + 2.541 0.180 0.039 0.088 -0.041 -0.150 0.183 0.100 -0.085 0.004 -0.072 -0.146 -0.098 + 2.198 0.166 0.155 0.106 -0.137 -0.131 0.029 0.069 -0.242 -0.178 -0.052 -0.009 -0.112 + 2.412 0.488 0.238 0.044 -0.022 -0.060 0.111 0.020 -0.297 -0.231 -0.234 -0.043 -0.057 + 2.300 0.325 0.312 0.168 0.004 -0.003 -0.018 -0.043 -0.193 -0.068 -0.039 -0.098 -0.199 + 1.983 0.051 0.240 0.295 0.110 -0.134 0.096 -0.118 -0.327 -0.153 -0.005 -0.046 -0.134 + 2.239 -0.165 0.182 0.354 -0.172 -0.160 0.069 0.115 -0.033 0.045 -0.077 -0.063 -0.011 + 3.055 0.119 0.247 0.020 -0.176 -0.178 -0.114 0.120 0.011 0.142 -0.182 -0.081 -0.155 + 3.399 0.501 0.314 0.137 -0.406 -0.027 -0.001 0.019 -0.106 -0.027 0.014 -0.015 -0.119 + 5.117 0.254 0.634 0.402 -0.499 -0.182 0.063 -0.027 -0.215 -0.008 -0.111 -0.025 -0.123 + 5.144 0.029 0.358 0.637 -0.432 -0.266 -0.006 -0.159 -0.100 0.061 -0.042 0.002 -0.100 + 5.511 -0.191 0.246 0.788 -0.414 -0.155 -0.045 -0.198 -0.164 0.031 -0.016 0.067 -0.056 + 5.965 0.032 0.244 0.493 -0.446 -0.323 -0.172 -0.157 -0.249 0.035 -0.026 -0.069 -0.217 + 6.557 0.206 0.398 0.540 -0.400 -0.310 0.115 0.001 0.040 0.042 -0.094 -0.119 -0.237 + 7.089 0.862 0.566 0.255 -0.412 -0.113 0.101 -0.279 -0.209 -0.245 -0.102 0.029 -0.081 + 7.640 0.635 0.333 0.226 -0.382 -0.041 -0.085 -0.183 -0.231 -0.071 -0.232 0.049 -0.122 + 7.984 0.659 0.071 0.154 -0.103 -0.165 -0.183 -0.301 -0.207 -0.069 -0.364 0.024 -0.008 + 8.373 0.866 0.214 0.190 0.013 -0.070 -0.206 -0.332 -0.376 -0.031 -0.383 -0.083 -0.040 + 6.990 -0.006 0.158 0.135 -0.107 -0.331 -0.381 -0.156 -0.092 -0.172 -0.226 -0.016 -0.039 + 7.870 -0.616 -0.093 -0.035 -0.113 -0.330 -0.060 -0.150 -0.171 0.095 -0.180 -0.010 -0.053 + 7.025 -0.459 0.151 0.092 -0.094 -0.289 -0.186 -0.135 -0.082 0.058 -0.161 -0.021 0.003 + 6.244 -0.673 0.403 0.370 0.167 -0.008 -0.351 -0.147 -0.266 -0.202 -0.253 0.082 0.075 + 7.107 -0.645 0.424 0.189 0.063 -0.111 -0.181 -0.012 -0.179 0.012 -0.031 -0.056 0.056 + 6.624 -0.308 0.591 0.009 -0.029 -0.062 -0.217 0.092 -0.095 -0.031 -0.158 -0.175 -0.124 + 6.238 -0.384 0.526 0.066 -0.168 -0.141 -0.304 0.032 -0.288 -0.117 -0.154 -0.080 -0.192 + 5.398 -0.420 0.585 0.200 -0.073 -0.009 -0.057 -0.051 -0.292 -0.143 -0.250 -0.024 -0.099 + 4.453 -0.133 0.341 0.136 -0.031 -0.080 -0.254 -0.058 -0.088 -0.109 -0.077 -0.024 -0.074 + 4.737 0.122 0.408 0.093 0.243 0.300 -0.025 -0.028 -0.044 -0.218 -0.158 -0.024 -0.123 + 4.426 0.032 0.358 0.130 0.098 0.067 -0.078 0.003 -0.112 -0.065 -0.192 -0.107 -0.186 + 4.253 -0.161 0.226 0.175 0.025 0.003 -0.027 -0.014 -0.021 -0.063 -0.254 -0.314 -0.269 + 5.343 0.498 0.178 -0.056 -0.088 -0.146 -0.364 -0.194 -0.149 -0.139 -0.165 -0.149 -0.263 + 5.566 1.086 0.539 -0.065 -0.141 -0.207 -0.342 -0.281 -0.113 -0.065 -0.073 0.001 -0.146 + 3.918 -0.161 0.563 0.019 0.103 -0.024 -0.143 -0.179 -0.076 0.013 0.068 0.059 0.023 + 3.729 -0.238 0.094 -0.124 -0.197 -0.117 -0.123 -0.171 -0.103 -0.011 0.155 0.135 -0.083 + 3.765 -0.136 0.175 -0.031 -0.226 -0.119 -0.067 -0.132 0.052 -0.051 0.071 0.053 -0.039 + 3.217 -0.221 0.101 0.030 0.022 -0.130 -0.120 -0.077 -0.066 0.097 0.188 0.095 -0.024 + 3.450 -0.173 0.277 0.074 -0.059 -0.192 0.025 -0.043 -0.041 -0.015 -0.014 -0.000 -0.000 + 3.495 -0.224 0.272 0.164 0.032 -0.136 -0.079 -0.138 -0.146 -0.098 -0.022 -0.051 -0.011 + 3.268 0.335 0.300 0.205 -0.023 -0.146 -0.076 -0.093 -0.227 -0.146 -0.102 0.125 0.005 + 3.238 0.133 0.254 0.139 -0.132 0.008 -0.065 -0.112 -0.128 -0.156 0.081 0.032 -0.224 + 3.161 -0.012 0.164 0.077 -0.275 0.127 0.097 0.119 -0.004 -0.071 0.033 0.123 0.016 + 3.429 0.033 0.140 0.105 -0.188 -0.170 -0.155 -0.079 -0.069 0.002 0.066 0.103 -0.002 + 3.366 0.276 0.458 0.156 -0.103 0.005 -0.112 -0.160 -0.057 0.001 -0.048 0.050 -0.084 + 2.657 0.224 0.382 0.022 -0.185 -0.161 0.015 -0.003 -0.031 -0.225 0.014 0.121 -0.036 + 2.807 0.220 0.448 -0.022 -0.141 -0.155 0.016 0.088 -0.144 -0.170 0.090 0.143 -0.020 + 2.770 -0.062 0.381 0.009 -0.079 -0.166 -0.122 0.191 0.073 -0.118 0.011 0.124 0.007 + 2.940 0.261 0.439 0.016 -0.064 -0.075 0.079 -0.017 -0.232 -0.009 -0.212 -0.209 0.010 + 2.999 0.355 0.415 -0.174 -0.192 0.099 0.088 -0.159 -0.320 -0.083 -0.073 -0.037 -0.001 + 3.330 -0.027 0.754 -0.140 -0.089 -0.018 -0.135 0.062 -0.019 -0.103 -0.146 -0.058 -0.064 + 3.284 -0.304 0.702 -0.029 0.090 -0.108 -0.287 0.006 -0.033 -0.172 -0.128 -0.028 -0.057 + 3.274 -0.496 0.523 -0.136 0.228 0.110 -0.285 -0.006 -0.119 -0.058 -0.097 -0.003 0.085 + 3.671 -0.545 0.499 0.123 0.102 0.073 -0.187 -0.054 -0.241 -0.058 -0.276 -0.111 0.147 + 3.705 -0.648 0.334 0.169 -0.020 0.010 -0.186 -0.009 -0.160 0.189 0.095 0.157 0.026 + 4.411 -0.806 0.384 0.162 0.017 -0.010 0.028 -0.035 0.031 0.116 -0.025 0.006 -0.101 + 4.672 -0.960 0.103 -0.015 0.042 -0.052 -0.093 -0.182 -0.166 -0.071 0.030 -0.010 -0.048 + 4.248 -0.564 0.102 0.121 -0.151 0.014 -0.046 -0.043 -0.106 -0.045 -0.036 -0.192 -0.133 + 3.518 -0.680 0.019 0.182 -0.165 0.058 0.015 -0.023 -0.077 -0.059 -0.172 -0.152 -0.166 + 3.832 -0.292 -0.012 0.156 -0.560 -0.329 -0.254 0.052 -0.007 0.053 -0.037 0.131 -0.114 + 3.112 0.495 0.312 0.098 -0.360 -0.356 -0.088 0.158 -0.076 -0.134 -0.244 -0.038 0.102 + 2.946 -0.173 0.309 0.130 -0.203 0.101 -0.027 0.121 -0.090 -0.108 -0.090 -0.064 0.082 + 3.920 0.496 0.549 0.083 -0.474 0.111 -0.172 -0.041 -0.041 -0.041 -0.014 0.072 -0.064 + 4.310 0.757 0.606 -0.123 -0.468 0.143 0.035 -0.002 0.020 -0.040 -0.031 0.041 -0.057 + 4.758 0.777 0.454 0.078 -0.407 -0.026 0.026 0.056 -0.089 0.003 -0.162 0.066 -0.025 + 5.573 0.559 0.353 -0.104 -0.471 0.128 0.019 0.003 -0.096 -0.056 -0.018 -0.066 -0.196 + 6.506 0.395 0.349 0.132 -0.342 -0.038 -0.011 -0.248 -0.117 -0.063 -0.109 -0.042 -0.132 + 7.111 0.237 0.084 0.084 -0.227 -0.105 -0.090 -0.251 -0.100 -0.067 -0.073 -0.082 -0.093 + 6.813 0.129 0.237 -0.098 -0.234 0.024 -0.087 -0.024 -0.057 -0.102 -0.158 -0.013 -0.093 + 6.557 0.198 0.126 -0.154 -0.297 0.124 -0.097 -0.019 0.062 -0.065 -0.239 0.146 -0.012 + 6.608 0.370 -0.012 0.004 -0.296 0.069 -0.148 -0.008 -0.094 -0.054 -0.173 0.154 -0.080 + 6.865 0.303 0.174 0.067 -0.215 -0.002 0.021 -0.190 -0.250 -0.035 -0.234 -0.020 -0.173 + 6.150 -0.029 0.298 0.425 -0.167 -0.199 -0.360 -0.135 -0.034 0.075 -0.062 0.056 -0.143 + 6.981 -0.765 0.106 -0.079 -0.389 -0.424 -0.339 -0.121 0.042 0.202 0.020 0.295 0.236 + 7.741 -0.392 0.276 -0.032 -0.256 -0.096 -0.169 0.011 -0.047 0.080 0.020 -0.068 0.007 + 7.806 -0.262 0.292 0.120 -0.257 -0.193 -0.233 -0.169 -0.202 -0.098 -0.042 -0.037 -0.070 + 7.925 -0.529 0.152 0.154 -0.235 -0.090 -0.177 -0.362 -0.157 -0.055 0.048 0.056 -0.119 + 7.814 -0.593 -0.000 0.113 -0.334 -0.067 -0.133 -0.201 -0.045 0.055 0.055 0.110 0.007 + 7.457 -0.601 0.050 -0.100 -0.496 -0.147 -0.139 -0.304 -0.183 0.075 0.002 -0.091 0.046 + 7.825 -0.549 -0.014 0.096 -0.381 -0.115 -0.170 -0.356 -0.151 0.001 -0.120 0.014 -0.102 + 7.892 -0.567 0.024 0.083 -0.536 -0.361 -0.156 -0.304 -0.100 -0.143 -0.103 0.083 -0.055 + 7.246 -0.738 -0.174 0.059 -0.606 -0.310 -0.080 -0.326 -0.086 -0.014 0.031 0.079 -0.056 + 6.933 -0.676 0.006 0.069 -0.274 -0.125 0.120 -0.375 -0.090 0.029 0.015 -0.127 -0.079 + 6.765 -0.752 -0.255 0.116 -0.263 -0.267 0.130 -0.242 -0.102 -0.056 0.025 0.028 -0.077 + 6.903 -1.116 -0.361 0.142 -0.400 -0.260 0.127 -0.352 -0.129 -0.111 -0.018 0.037 -0.000 + 6.331 -1.373 -0.467 0.107 -0.048 -0.212 -0.191 -0.420 -0.123 -0.054 0.082 0.189 -0.055 + 6.221 -0.955 -0.306 0.157 -0.061 -0.107 -0.263 -0.344 -0.180 -0.023 0.013 0.149 -0.100 + 5.706 -0.786 -0.271 0.209 -0.006 0.125 -0.166 -0.456 -0.364 -0.024 -0.023 0.123 -0.045 + 5.137 0.025 -0.206 -0.067 -0.402 -0.183 -0.085 -0.042 0.048 -0.008 -0.078 0.051 -0.011 + 4.352 0.195 0.247 -0.185 -0.553 -0.032 0.017 -0.116 -0.090 0.012 -0.059 -0.022 -0.017 + 4.400 0.820 0.249 -0.024 -0.284 -0.152 -0.413 -0.233 -0.209 -0.086 -0.133 0.014 -0.088 + 6.370 1.122 -0.310 -0.082 -0.416 0.028 -0.438 -0.400 -0.062 -0.062 -0.164 -0.015 0.016 + 6.987 1.193 -0.506 -0.009 -0.518 0.105 -0.504 -0.505 -0.035 0.000 -0.186 -0.056 0.088 + 7.372 0.982 -0.384 -0.033 -0.532 0.155 -0.477 -0.546 -0.033 0.074 -0.208 -0.063 0.100 + 7.153 1.103 -0.428 0.064 -0.548 0.160 -0.422 -0.605 0.001 0.041 -0.193 -0.051 0.081 + 6.858 1.188 -0.369 0.085 -0.472 0.095 -0.363 -0.668 -0.037 0.034 -0.188 -0.012 0.041 + 6.600 1.121 -0.223 0.082 -0.346 0.080 -0.312 -0.586 -0.147 0.019 -0.171 -0.054 -0.027 + 6.243 1.005 -0.172 0.081 -0.159 0.109 -0.229 -0.566 -0.156 -0.030 -0.271 -0.051 -0.012 + 5.308 0.918 0.056 0.213 -0.118 0.027 -0.030 -0.392 -0.117 -0.063 -0.347 -0.232 0.040 + 4.596 0.600 0.206 0.269 0.020 0.060 -0.116 -0.311 -0.042 -0.091 -0.203 -0.002 0.028 + 4.334 0.608 0.298 -0.056 -0.035 -0.089 -0.375 -0.282 -0.038 -0.065 -0.022 0.072 0.081 + 3.912 0.502 0.321 0.153 0.022 -0.210 -0.349 -0.297 0.041 -0.032 -0.053 0.021 0.087 + 3.873 0.481 0.270 0.056 0.044 -0.202 -0.309 -0.248 -0.161 0.005 0.068 0.147 0.064 + 3.831 0.362 0.011 -0.055 -0.015 0.076 -0.223 -0.227 -0.057 0.016 0.043 0.056 0.061 + 3.902 0.498 0.177 -0.037 -0.189 0.028 -0.319 -0.225 -0.009 0.001 0.065 0.080 0.061 + 4.095 0.635 0.087 -0.054 -0.047 0.116 -0.100 -0.215 -0.009 -0.014 -0.015 -0.043 0.010 + 4.677 0.729 0.069 -0.214 -0.098 0.019 -0.022 -0.131 -0.121 0.144 0.091 -0.026 0.059 + 5.107 1.012 -0.137 -0.275 -0.113 0.088 0.049 -0.048 -0.004 0.202 -0.050 -0.072 0.012 + 5.367 1.192 -0.413 -0.305 -0.139 0.068 0.120 -0.053 -0.078 0.335 -0.032 -0.185 -0.068 + 5.659 1.268 -0.613 -0.285 -0.061 0.115 -0.061 -0.097 -0.034 0.251 -0.137 -0.133 -0.011 + 5.525 1.251 -0.469 -0.303 -0.243 0.093 -0.059 -0.124 -0.067 0.256 -0.082 -0.177 0.093 + 5.233 1.012 -0.426 -0.187 -0.156 -0.063 -0.127 -0.063 -0.041 0.232 -0.040 -0.014 0.065 + 4.766 0.825 -0.327 0.099 -0.236 -0.159 -0.192 -0.118 -0.027 0.125 0.045 0.025 0.144 + 4.212 0.736 -0.069 0.360 -0.263 -0.051 -0.084 -0.133 -0.044 0.258 0.143 0.007 0.115 + 3.036 0.657 0.051 0.084 -0.209 -0.090 -0.038 -0.099 -0.074 0.173 0.018 -0.064 -0.076 + 3.166 0.618 -0.051 0.099 -0.127 0.006 0.107 -0.113 -0.078 0.149 0.025 0.127 0.046 + 2.628 0.737 0.184 0.287 0.046 -0.016 -0.004 -0.026 0.103 0.067 -0.049 0.099 0.054 + 2.560 0.630 -0.098 0.079 0.120 0.189 -0.146 -0.090 0.076 0.085 -0.048 0.067 -0.032 + 2.505 0.661 -0.125 -0.020 -0.095 0.024 -0.216 -0.136 -0.106 -0.101 0.017 -0.059 -0.046 + 2.296 0.593 0.039 0.194 -0.032 -0.083 -0.232 -0.171 0.010 -0.089 0.045 -0.006 -0.022 + 2.471 0.811 0.119 0.242 0.069 0.010 -0.066 -0.188 -0.210 -0.008 0.131 -0.048 -0.005 + 2.577 0.824 -0.149 -0.018 0.058 -0.041 -0.162 -0.105 -0.030 0.149 0.084 -0.059 0.087 + 4.703 0.126 0.509 0.289 -0.057 0.191 -0.041 -0.323 -0.082 -0.095 -0.039 -0.204 -0.013 + 7.208 -0.276 0.039 0.290 0.150 0.270 -0.278 -0.392 -0.039 0.015 -0.006 -0.367 0.042 + 5.039 -0.476 -0.274 0.092 0.018 0.311 -0.153 -0.255 0.178 0.268 0.239 -0.249 -0.061 + 2.339 0.025 0.038 0.111 -0.011 0.170 -0.036 -0.016 0.009 0.093 0.123 0.007 0.084 + 3.295 -0.182 0.241 -0.114 0.083 0.088 -0.031 -0.186 -0.260 -0.021 0.022 0.006 0.045 + 3.568 -0.275 -0.018 0.083 0.175 -0.020 -0.060 -0.103 -0.142 -0.126 -0.090 0.015 0.020 + 4.937 -1.005 0.010 0.257 -0.132 -0.074 0.100 -0.302 0.048 0.140 0.043 -0.010 -0.050 + 5.580 -0.798 0.030 0.250 -0.411 0.034 0.108 -0.305 -0.129 0.128 -0.008 -0.054 -0.142 + 5.663 -1.357 -0.157 0.319 -0.189 0.226 -0.027 -0.159 -0.045 0.172 0.073 0.085 -0.091 + 5.147 -0.730 -0.010 0.330 -0.005 0.105 0.021 -0.113 -0.191 0.111 0.056 -0.145 -0.019 + 5.462 -0.142 0.123 0.123 0.164 -0.167 -0.203 -0.410 -0.241 0.222 -0.044 -0.118 -0.040 + 5.039 -0.131 0.498 0.103 -0.175 -0.191 -0.135 -0.133 0.063 0.030 0.017 0.007 -0.005 + 4.652 0.229 0.459 0.187 0.013 -0.229 -0.218 -0.179 -0.089 -0.070 -0.049 -0.137 0.002 + 4.106 0.067 -0.074 0.182 0.007 -0.040 -0.112 -0.210 -0.036 -0.125 -0.117 -0.057 0.019 + 4.200 -0.095 0.077 0.106 -0.064 -0.045 -0.057 -0.132 -0.125 -0.032 -0.092 -0.158 -0.054 + 3.872 0.224 0.103 0.066 -0.201 -0.085 0.047 -0.164 -0.079 -0.073 -0.077 -0.150 -0.228 + 3.791 0.042 0.087 0.049 -0.279 -0.097 0.026 -0.157 -0.175 -0.080 -0.107 0.036 -0.065 + 2.997 0.114 0.026 0.170 -0.056 0.093 -0.097 -0.114 -0.074 0.034 0.022 0.004 0.052 + 2.797 0.253 0.181 0.022 -0.228 0.017 -0.123 -0.130 -0.201 -0.131 0.005 0.046 -0.154 + 3.117 -0.370 -0.054 0.128 -0.281 0.067 -0.218 -0.181 -0.055 -0.147 -0.109 0.108 0.028 + 3.589 -0.339 -0.061 0.013 -0.177 0.107 0.072 -0.156 -0.016 0.041 0.027 0.019 -0.023 + 3.846 -0.115 0.146 -0.246 -0.252 0.199 0.107 -0.127 -0.035 0.037 -0.070 0.029 0.079 + 4.732 -1.154 0.098 0.124 0.140 0.169 -0.182 -0.194 -0.133 0.044 0.044 -0.004 -0.014 + 4.123 -0.857 0.174 0.081 -0.101 -0.021 -0.146 -0.136 -0.020 0.131 0.045 0.046 -0.004 + 5.101 0.351 0.674 -0.036 -0.418 -0.297 -0.354 -0.093 -0.284 -0.135 -0.136 -0.035 -0.002 + 4.679 -0.099 0.329 0.283 -0.116 -0.316 -0.228 -0.269 -0.255 0.082 -0.079 0.054 -0.086 + 6.667 -0.293 0.116 0.159 -0.442 -0.425 -0.181 -0.153 -0.279 0.086 0.007 -0.094 0.124 + 6.740 -0.342 0.208 0.222 -0.649 -0.358 -0.173 -0.294 -0.123 0.122 -0.069 -0.142 -0.000 + 6.019 -0.346 0.231 0.661 -0.842 -0.418 -0.299 -0.295 -0.235 0.063 0.045 0.046 -0.168 + 5.850 -0.282 0.127 0.557 -0.960 -0.465 -0.285 0.039 -0.257 0.023 -0.039 0.052 -0.110 + 4.296 -0.279 0.073 0.439 -0.328 -0.240 -0.270 -0.014 -0.227 0.080 -0.098 -0.017 -0.172 + 3.524 -0.156 0.333 0.252 -0.377 -0.392 -0.214 -0.061 -0.216 0.068 -0.174 0.001 -0.022 + 3.686 0.042 0.635 0.301 -0.294 -0.316 -0.167 -0.202 -0.254 -0.074 0.019 0.044 0.010 + 3.588 0.392 0.436 0.428 -0.356 -0.089 -0.113 -0.023 -0.256 -0.196 -0.104 -0.064 -0.067 + 3.235 0.071 0.288 0.263 -0.203 -0.186 -0.019 -0.066 -0.131 -0.110 -0.366 -0.105 -0.038 + 4.021 0.113 0.233 0.056 -0.389 -0.253 -0.075 -0.211 -0.170 -0.094 -0.211 0.053 0.031 + 3.723 -0.404 0.297 0.191 -0.351 -0.286 -0.184 -0.244 -0.091 -0.254 0.096 0.235 0.027 + 4.949 -0.144 -0.110 0.506 -0.278 -0.586 -0.523 -0.402 -0.024 -0.255 -0.013 0.308 0.143 + 6.283 -0.374 -0.528 0.294 -0.515 -0.526 -0.727 -0.476 -0.069 -0.301 -0.152 0.421 0.081 + 7.131 -0.316 -0.367 0.178 -0.516 -0.353 -0.741 -0.306 0.032 -0.199 -0.330 0.440 -0.091 + 7.342 -0.301 -0.409 0.052 -0.649 -0.369 -0.848 -0.221 0.143 -0.038 -0.330 0.416 -0.201 + 7.286 -0.372 -0.419 -0.027 -0.644 -0.272 -0.688 -0.085 0.295 0.097 -0.426 0.303 -0.241 + 7.419 -0.091 -0.292 0.028 -0.641 -0.327 -0.720 -0.126 0.329 0.188 -0.452 0.209 -0.159 + 7.205 0.048 -0.390 -0.283 -0.760 -0.328 -0.687 -0.216 0.283 0.081 -0.460 0.212 -0.160 + 7.052 0.186 0.292 -0.341 -0.537 -0.237 -0.628 -0.121 0.149 -0.039 -0.092 0.254 -0.241 + 6.561 0.338 -0.023 -0.171 -0.366 -0.197 -0.755 -0.196 0.063 0.040 -0.253 0.337 -0.189 + 5.655 0.709 -0.293 -0.176 -0.313 -0.138 -0.457 -0.236 0.091 0.055 -0.115 0.069 -0.128 + 4.947 0.611 -0.239 -0.126 -0.235 -0.109 -0.345 -0.008 0.208 0.051 -0.279 0.034 -0.118 + 4.956 0.754 0.047 -0.004 -0.362 -0.247 -0.264 -0.196 -0.025 0.195 -0.205 0.089 -0.141 + 4.671 0.590 -0.112 0.008 -0.184 -0.093 -0.208 -0.225 -0.284 -0.072 -0.145 -0.041 -0.180 + 4.510 0.511 -0.340 -0.172 -0.202 -0.315 -0.313 -0.332 -0.188 0.030 -0.120 -0.118 -0.112 + 4.588 0.372 -0.237 -0.182 -0.371 -0.156 -0.260 -0.286 -0.084 0.063 -0.060 -0.068 0.050 + 4.808 0.404 -0.354 -0.160 -0.407 -0.176 -0.298 -0.374 -0.220 0.061 -0.104 -0.030 0.032 + 4.933 0.365 -0.136 -0.119 -0.254 -0.257 -0.302 -0.309 -0.055 -0.001 -0.155 0.009 -0.064 + 5.158 0.418 -0.033 0.012 -0.164 -0.108 -0.237 -0.093 -0.144 -0.035 -0.250 -0.047 -0.084 + 5.228 0.431 -0.180 0.029 -0.162 0.011 -0.192 -0.278 -0.217 -0.156 -0.224 0.016 -0.012 + 5.393 0.600 0.068 -0.322 -0.198 -0.158 -0.216 -0.264 -0.189 -0.064 -0.158 -0.068 0.008 + 5.069 0.835 0.184 -0.225 -0.395 -0.137 -0.300 -0.266 -0.151 -0.067 -0.169 -0.111 0.065 + 7.129 -0.237 0.060 -0.183 -0.281 -0.330 -0.213 -0.198 -0.194 -0.051 -0.129 0.080 0.031 + 6.148 -0.044 -0.043 -0.475 -0.585 -0.430 -0.218 -0.161 -0.207 -0.095 -0.185 0.025 0.034 + 5.101 0.827 0.022 -0.528 -0.507 0.247 -0.334 -0.016 -0.131 -0.304 -0.155 -0.169 -0.133 + 4.992 0.930 -0.042 -0.478 -0.464 0.030 -0.286 -0.039 -0.082 -0.089 -0.111 -0.104 -0.163 + 5.207 1.052 -0.336 -0.661 -0.388 0.078 -0.378 -0.110 -0.171 0.079 -0.015 -0.051 -0.139 + 5.732 1.028 -0.510 -0.660 -0.294 0.262 -0.477 -0.127 -0.060 0.112 -0.110 -0.098 -0.197 + 5.989 0.509 -0.685 -0.441 -0.310 0.283 -0.421 -0.036 0.045 0.010 -0.225 -0.160 -0.315 + 6.623 0.064 -0.914 -0.420 -0.705 0.046 -0.424 0.187 0.203 -0.017 -0.276 0.092 -0.018 + 7.072 0.009 -0.949 -0.169 -0.703 -0.131 -0.545 0.201 0.217 -0.073 -0.273 0.186 -0.147 + 7.442 -0.243 -0.859 -0.113 -0.696 -0.218 -0.401 0.379 0.122 0.033 -0.218 0.263 -0.124 + 7.023 -0.462 -0.800 -0.001 -0.836 -0.430 -0.257 0.198 -0.040 0.131 -0.155 0.032 -0.272 + 6.806 -0.404 -0.502 0.269 -0.739 -0.455 -0.144 0.152 -0.125 0.254 -0.236 0.019 -0.174 + 6.514 -0.543 -0.385 0.327 -0.851 -0.513 -0.164 0.021 -0.266 0.042 -0.113 0.148 -0.015 + 5.840 -0.702 -0.262 0.444 -0.608 -0.442 0.070 0.001 -0.165 0.015 -0.093 0.143 -0.056 + 4.838 -0.355 -0.477 0.301 -0.349 -0.133 0.136 -0.189 -0.229 0.031 -0.120 0.049 -0.043 + 5.229 -0.383 0.040 0.158 -0.176 -0.132 -0.204 -0.126 -0.023 -0.090 -0.185 -0.110 0.031 + 5.389 -0.291 0.235 -0.067 0.018 -0.056 -0.267 -0.150 -0.041 -0.105 -0.213 -0.015 -0.002 + 7.062 -0.525 0.272 0.186 -0.134 -0.109 -0.459 -0.296 -0.162 -0.151 -0.147 -0.158 -0.108 + 7.790 -0.834 0.078 0.288 -0.033 0.034 -0.284 -0.262 -0.183 -0.161 -0.055 0.003 -0.151 + 7.371 -0.501 -0.063 0.041 -0.005 -0.067 -0.275 -0.176 -0.055 -0.025 0.066 -0.115 -0.091 + 7.401 -0.248 -0.128 -0.172 -0.163 -0.047 -0.100 -0.299 -0.109 0.020 -0.076 -0.262 -0.068 + 6.283 -0.085 -0.373 0.027 -0.558 0.046 -0.035 -0.074 -0.133 0.039 -0.110 -0.167 -0.049 + 6.338 -0.227 -0.335 0.201 -0.534 -0.229 -0.256 -0.343 -0.270 -0.099 -0.003 0.143 -0.090 + 8.060 -0.383 -0.304 0.217 -0.330 -0.142 -0.310 -0.198 -0.031 0.087 -0.004 0.089 -0.129 + 6.399 -0.537 -0.201 0.184 -0.275 -0.010 -0.168 0.004 -0.273 0.069 0.052 0.091 -0.069 + 4.853 0.048 -0.055 0.225 -0.223 -0.100 -0.080 -0.211 -0.307 0.053 0.073 0.030 -0.057 + 5.730 -0.532 -0.101 0.472 -0.664 -0.170 -0.118 -0.041 -0.171 0.084 0.117 0.049 -0.026 + 5.904 -0.373 -0.109 0.381 -0.503 -0.075 -0.304 -0.125 -0.273 -0.024 0.039 0.150 -0.031 + 6.211 -0.424 -0.335 0.243 -0.498 -0.165 -0.227 -0.253 -0.237 0.207 -0.071 -0.021 -0.182 + 6.143 -0.356 -0.084 0.412 -0.325 -0.080 -0.109 -0.418 -0.446 -0.009 -0.341 -0.128 -0.134 + 6.735 -0.522 -0.098 0.376 -0.117 -0.019 -0.207 -0.322 -0.385 -0.139 -0.246 -0.039 -0.149 + 6.516 -0.635 0.047 0.441 -0.062 -0.116 -0.113 -0.187 -0.265 -0.203 -0.178 -0.162 -0.345 + 5.985 -0.397 0.387 0.258 -0.243 -0.012 -0.114 -0.353 -0.338 -0.025 -0.256 -0.079 -0.141 + 5.471 -0.436 0.561 0.494 -0.363 -0.059 -0.068 -0.358 -0.274 0.163 -0.248 -0.072 -0.142 + 5.139 -0.505 0.462 0.352 -0.306 -0.051 0.148 -0.329 -0.365 0.035 -0.517 -0.166 -0.094 + 5.228 -0.295 0.681 0.522 -0.368 -0.144 0.201 -0.187 -0.308 0.039 -0.510 -0.195 -0.164 + 6.744 0.023 0.358 0.271 -0.557 -0.117 -0.043 -0.266 -0.268 0.066 -0.299 0.011 -0.014 + 7.109 0.190 0.416 -0.234 -0.609 -0.061 -0.144 -0.376 -0.334 -0.163 -0.190 -0.042 -0.023 + 6.812 0.242 0.224 -0.126 -0.600 0.022 -0.197 -0.369 -0.278 -0.046 -0.235 0.040 -0.079 + 4.897 0.118 0.269 0.009 -0.597 0.021 -0.181 -0.299 -0.232 -0.082 -0.017 -0.057 -0.113 + 4.935 -0.047 0.399 0.195 -0.503 -0.144 -0.326 -0.451 -0.261 -0.142 -0.043 0.144 -0.025 + 4.834 -0.166 -0.004 0.110 -0.631 -0.044 -0.243 -0.254 -0.047 0.102 -0.047 0.225 0.015 + 5.014 -0.486 -0.289 0.044 -0.482 0.177 -0.052 -0.241 -0.179 0.157 -0.039 0.016 -0.083 + 5.096 -0.682 -0.109 0.185 -0.513 -0.017 -0.426 -0.287 -0.168 0.086 -0.087 -0.056 0.023 + 4.672 0.146 0.066 0.280 -0.469 -0.377 -0.478 -0.386 -0.112 -0.002 -0.111 -0.081 0.012 + 2.948 0.113 0.015 0.273 -0.371 -0.092 -0.151 -0.224 -0.093 -0.042 -0.172 0.001 -0.027 + 2.381 0.257 0.129 0.351 -0.195 -0.057 -0.103 -0.078 -0.114 0.074 -0.212 0.078 0.038 + 2.392 0.386 0.107 0.118 -0.181 -0.052 0.005 -0.047 -0.041 0.010 -0.091 0.174 -0.128 + 2.401 0.244 0.090 0.028 0.017 0.074 -0.085 -0.114 -0.019 -0.079 -0.083 -0.194 -0.254 + 2.500 0.167 -0.009 0.010 0.007 0.202 0.011 -0.150 -0.053 0.025 -0.160 -0.056 -0.349 + 3.292 0.321 0.003 -0.104 -0.155 0.035 -0.304 -0.102 -0.102 0.184 0.078 0.030 -0.081 + 5.785 0.405 -0.547 -0.364 -0.427 0.063 -0.833 -0.117 -0.040 0.298 -0.145 0.049 0.018 + 6.724 0.250 -0.586 -0.505 -0.550 0.041 -0.923 -0.060 0.025 0.094 -0.346 0.016 -0.019 + 7.161 0.043 -0.620 -0.363 -0.582 0.144 -0.953 -0.094 0.021 0.032 -0.411 -0.009 -0.099 + 7.201 -0.052 -0.765 -0.274 -0.556 0.235 -0.980 -0.188 -0.095 0.019 -0.411 0.036 -0.126 + 7.383 0.109 -0.723 -0.279 -0.673 0.242 -0.857 0.064 -0.102 0.005 -0.415 0.022 -0.145 + 7.470 0.196 -0.695 -0.277 -0.579 0.219 -0.874 0.006 -0.032 -0.057 -0.445 0.169 -0.177 + 7.488 -0.048 -0.734 -0.386 -0.590 -0.045 -0.971 0.036 -0.085 -0.207 -0.401 0.184 -0.233 + 7.954 -0.202 -0.647 -0.180 -0.509 -0.098 -0.828 0.171 -0.023 0.034 -0.387 0.133 -0.469 + 7.663 -0.082 -0.772 -0.216 -0.753 -0.248 -0.539 0.265 0.115 -0.081 -0.331 0.183 -0.501 + 6.902 -0.159 -0.721 -0.215 -0.806 -0.347 -0.618 0.308 0.213 -0.057 -0.300 0.257 -0.281 + 6.115 -0.050 -0.637 -0.040 -0.627 -0.363 -0.645 0.272 0.109 -0.006 -0.154 0.308 -0.213 + 5.342 0.133 -0.498 0.091 -0.642 -0.518 -0.579 0.184 0.016 0.064 -0.062 0.193 -0.579 + 5.574 0.272 -0.524 0.146 -0.663 -0.518 -0.653 0.213 0.127 0.121 0.129 0.203 -0.199 + 5.434 0.385 -0.483 0.175 -0.712 -0.412 -0.762 0.156 0.166 -0.049 -0.091 0.121 -0.172 + 5.376 0.030 -0.560 0.240 -0.740 -0.267 -0.751 -0.030 0.040 -0.123 -0.011 0.221 -0.101 + 5.024 0.354 -0.550 0.270 -0.539 -0.253 -0.660 -0.072 -0.047 -0.115 -0.067 0.157 -0.126 + 4.649 0.353 -0.290 0.093 -0.330 -0.207 -0.572 -0.080 0.139 -0.076 -0.009 0.331 -0.105 + 4.349 0.327 -0.139 0.071 -0.224 -0.187 -0.628 -0.172 -0.038 -0.167 0.132 0.176 -0.205 + 3.967 0.159 -0.192 0.022 -0.237 -0.092 -0.374 0.080 0.096 -0.075 -0.102 -0.002 -0.117 + 3.824 0.349 -0.181 0.039 -0.186 -0.220 -0.318 0.077 -0.057 -0.024 -0.012 0.091 -0.033 + 3.527 0.151 -0.357 -0.173 -0.194 -0.192 -0.535 0.065 -0.161 0.064 0.063 0.038 -0.035 + 3.795 0.166 -0.274 0.109 0.100 0.006 -0.156 0.061 0.042 0.010 -0.038 0.087 -0.271 + 3.642 0.304 -0.186 0.131 -0.156 0.052 -0.345 -0.001 0.011 0.012 0.043 0.022 -0.199 + 3.766 0.228 -0.236 0.081 -0.097 0.063 -0.364 -0.002 -0.030 -0.103 0.022 0.134 0.001 + 3.438 0.104 -0.320 -0.028 -0.171 0.113 -0.176 0.063 0.042 -0.125 0.040 0.125 0.070 + 3.310 -0.019 -0.480 0.017 -0.112 -0.017 -0.275 -0.096 0.034 0.011 0.089 0.054 -0.057 + 3.341 0.030 -0.516 0.050 -0.071 -0.038 -0.176 0.061 0.175 0.085 0.128 0.168 0.043 + 3.390 0.244 -0.452 0.087 -0.014 0.102 -0.214 0.013 0.006 -0.099 0.090 -0.003 -0.111 + 3.485 0.293 -0.203 0.042 0.043 -0.043 -0.218 -0.060 0.057 0.018 -0.093 0.207 0.072 + 3.237 0.077 -0.350 -0.103 -0.070 -0.020 -0.095 0.038 0.167 -0.021 -0.013 0.062 0.097 + 3.164 0.259 -0.063 -0.070 -0.164 0.053 -0.293 -0.009 0.132 0.024 -0.072 0.096 0.139 + 3.105 0.177 -0.157 -0.094 -0.285 -0.205 -0.164 -0.003 0.027 -0.075 0.070 0.022 -0.043 + 2.999 -0.071 -0.436 -0.103 -0.060 -0.070 -0.168 -0.001 0.050 0.048 0.123 0.050 -0.014 + 3.186 0.147 -0.442 0.003 -0.035 -0.056 -0.258 0.015 -0.024 -0.043 -0.015 -0.051 -0.022 + 3.002 0.193 -0.252 -0.159 -0.005 0.016 -0.155 -0.148 -0.106 -0.088 0.168 0.121 0.029 + 3.002 0.257 -0.139 -0.056 0.017 -0.015 -0.215 -0.105 -0.041 0.028 -0.097 0.208 0.202 + 2.877 0.333 -0.063 -0.032 -0.199 -0.060 -0.124 0.005 -0.039 -0.066 -0.048 0.044 -0.099 + 2.787 0.151 -0.364 0.159 -0.098 -0.200 -0.244 -0.062 -0.020 0.153 -0.033 0.010 0.028 + 2.460 0.033 -0.355 0.029 -0.210 -0.154 -0.126 0.112 0.097 0.141 -0.149 -0.035 0.136 + 2.395 0.144 -0.295 0.043 -0.157 -0.027 -0.253 -0.001 -0.180 0.061 -0.067 0.029 0.057 + 2.528 0.104 -0.304 0.114 -0.124 -0.149 -0.101 -0.129 -0.086 0.077 0.066 0.131 0.036 + 2.164 0.020 -0.270 0.160 -0.015 0.019 -0.128 -0.172 -0.010 0.233 0.117 0.168 0.109 + 2.284 0.277 -0.275 0.242 -0.058 -0.027 -0.203 -0.146 -0.101 0.072 0.085 0.219 0.040 + 2.289 0.226 -0.252 0.135 -0.233 -0.091 -0.119 -0.079 0.011 -0.041 0.122 0.199 0.003 + 2.214 0.175 -0.299 -0.028 -0.305 -0.107 -0.043 -0.112 -0.066 0.089 0.144 0.183 0.030 + 2.008 0.296 0.027 0.142 -0.032 0.048 -0.293 -0.155 -0.047 0.002 0.024 -0.038 -0.044 + 1.586 0.077 -0.193 0.173 -0.164 -0.030 -0.217 -0.054 -0.003 0.074 0.018 -0.040 -0.090 + 1.384 0.114 -0.564 -0.046 0.087 -0.136 -0.202 0.065 0.123 -0.004 -0.028 0.096 0.056 + 1.495 0.265 -0.294 0.095 0.069 0.098 -0.290 -0.153 -0.037 0.017 -0.019 0.037 0.016 + 1.385 0.419 -0.052 -0.002 -0.066 0.048 -0.201 -0.185 0.102 0.031 0.092 0.033 0.043 + 1.442 0.436 -0.297 -0.056 0.070 -0.150 -0.370 -0.158 0.027 0.063 0.192 -0.035 -0.017 + 1.224 -0.086 -0.267 -0.102 -0.335 0.083 -0.035 0.026 -0.073 0.073 0.274 0.185 0.107 + 1.579 0.268 -0.272 -0.346 0.029 0.170 0.031 0.035 -0.153 0.083 0.244 0.203 0.074 + 1.800 0.400 -0.100 -0.286 -0.259 -0.008 -0.181 -0.137 -0.080 -0.042 -0.088 0.162 0.089 + 2.027 0.500 0.034 -0.025 -0.081 -0.035 -0.002 -0.147 0.102 0.172 -0.077 0.052 -0.121 + 1.321 0.490 -0.127 0.007 -0.088 -0.008 -0.238 -0.245 0.128 -0.005 0.076 0.052 0.062 + 1.812 0.350 -0.131 0.434 0.186 0.195 -0.251 -0.299 -0.046 0.112 0.093 0.125 0.055 + 1.507 -0.108 -0.349 0.188 0.268 0.113 -0.090 -0.087 -0.050 0.044 0.011 0.031 0.013 + 2.020 0.490 -0.227 0.219 0.013 -0.034 -0.027 -0.212 -0.168 -0.098 0.028 0.051 0.029 + 2.610 0.544 0.060 0.392 0.008 -0.075 -0.261 -0.349 -0.111 -0.085 0.060 0.007 -0.050 + 2.775 0.000 -0.228 0.163 -0.224 -0.060 -0.161 -0.072 0.040 -0.065 -0.040 -0.001 -0.071 + 2.420 -0.249 -0.174 0.294 -0.150 -0.156 -0.110 -0.211 -0.010 0.069 0.107 0.132 -0.044 + 2.226 -0.072 -0.172 -0.052 -0.214 -0.020 -0.075 -0.109 -0.165 0.042 0.057 0.085 -0.047 + 2.216 0.147 -0.002 0.242 -0.003 0.031 -0.007 0.121 -0.091 -0.025 -0.127 0.004 0.048 + 2.250 0.110 -0.130 0.234 0.024 -0.064 0.094 0.024 0.033 0.036 -0.053 -0.033 -0.153 + 2.525 0.282 -0.429 0.131 -0.056 -0.000 -0.007 -0.205 0.034 0.211 0.156 0.017 0.029 + 2.322 0.024 -0.418 0.059 0.045 0.054 -0.073 -0.283 -0.026 0.050 0.203 0.053 -0.059 + 2.484 0.243 -0.126 0.071 -0.039 0.141 0.049 -0.124 -0.050 -0.014 0.084 0.002 0.028 + 2.399 0.385 -0.442 -0.058 0.076 0.227 0.070 -0.161 -0.078 -0.073 -0.055 -0.054 0.116 + 2.401 0.176 -0.361 0.048 0.172 0.178 0.024 -0.108 -0.023 0.061 -0.123 0.029 -0.022 + 2.772 -0.054 -0.366 0.043 0.098 -0.019 0.021 -0.037 -0.047 0.021 0.074 0.116 0.062 + 2.754 -0.517 -0.389 -0.122 0.067 0.119 0.211 -0.039 -0.035 0.018 -0.105 -0.067 -0.065 + 3.117 -0.817 -0.323 -0.058 0.020 0.145 0.089 -0.102 -0.057 0.202 0.079 0.019 0.056 + 3.579 -1.031 -0.143 -0.036 -0.318 -0.101 0.134 0.182 -0.121 0.307 0.136 -0.052 0.097 + 4.525 -0.730 0.037 0.000 -0.224 -0.013 -0.004 0.121 -0.155 0.114 0.021 -0.061 -0.018 + 4.905 -0.812 -0.080 -0.122 -0.169 -0.064 -0.101 -0.124 -0.225 0.126 -0.088 -0.030 -0.029 + 5.158 -1.067 0.027 -0.094 -0.201 -0.023 0.028 -0.130 -0.052 -0.026 -0.137 -0.009 -0.075 + 5.502 -1.149 -0.046 0.075 0.062 0.002 -0.210 -0.072 -0.123 0.064 -0.122 0.018 0.034 + 5.309 -1.284 -0.238 0.014 0.116 0.047 -0.128 0.081 -0.031 0.158 0.107 -0.007 -0.036 + 5.790 -1.177 -0.063 0.273 0.086 -0.067 -0.359 -0.168 -0.122 0.118 0.047 0.027 0.155 + 5.873 -1.280 -0.178 -0.063 -0.117 -0.176 0.081 -0.148 -0.219 0.230 -0.016 -0.013 -0.056 + 5.855 -1.130 -0.482 -0.039 0.102 -0.045 0.108 0.034 -0.200 0.088 -0.081 -0.156 -0.074 + 5.773 -1.242 -0.413 -0.081 -0.012 0.031 -0.002 0.014 -0.139 0.034 -0.091 -0.129 -0.073 + 5.491 -1.095 -0.271 0.112 0.088 0.017 -0.000 0.069 -0.200 -0.095 0.005 -0.056 0.158 + 5.297 -1.334 -0.118 0.204 0.014 0.030 0.024 0.021 -0.077 0.014 0.060 -0.086 0.075 + 4.699 -1.375 -0.251 -0.021 -0.008 -0.251 -0.004 0.094 0.097 0.137 -0.051 0.037 0.048 + 5.206 -1.122 -0.182 0.000 -0.077 -0.021 -0.115 -0.026 -0.133 0.082 -0.069 -0.045 -0.016 + 5.454 -1.044 -0.242 0.007 -0.116 -0.083 0.133 -0.067 -0.328 0.177 -0.006 0.020 -0.055 + 4.964 -0.795 -0.226 0.062 -0.098 -0.079 0.099 -0.111 -0.243 0.095 0.076 -0.040 0.026 + 4.616 -0.365 0.047 -0.117 0.064 0.066 0.014 0.023 -0.247 -0.004 -0.002 0.088 0.024 + 4.800 -0.377 -0.471 0.351 0.117 0.173 -0.217 -0.226 -0.055 -0.047 -0.015 -0.017 -0.012 + 4.496 -0.461 -0.490 0.270 0.024 0.092 -0.366 -0.156 0.032 0.095 -0.021 0.056 -0.008 + 3.142 0.177 -0.114 0.028 0.126 0.044 -0.155 -0.109 0.012 0.160 0.050 0.045 -0.127 + 2.529 0.230 0.179 0.183 0.052 0.139 -0.041 0.051 -0.033 0.006 -0.007 -0.084 -0.104 + 4.906 -0.620 0.463 0.159 0.194 -0.330 0.055 -0.204 -0.319 0.026 0.040 -0.125 0.191 + 4.592 -0.818 0.389 0.281 0.159 -0.215 0.057 -0.266 -0.187 0.054 0.084 -0.172 0.202 + 2.351 0.018 -0.042 -0.071 0.093 0.239 0.109 -0.287 -0.096 0.021 -0.084 0.220 0.065 + 3.081 -0.303 0.116 -0.180 0.077 0.036 -0.142 -0.320 -0.223 -0.002 -0.083 0.098 0.023 + 3.253 -0.436 0.315 -0.005 0.138 0.353 -0.330 -0.200 -0.119 0.115 0.030 0.091 0.020 + 3.110 0.252 0.262 0.093 0.068 -0.055 -0.184 -0.137 -0.141 0.001 -0.049 0.110 -0.075 + 2.867 0.223 0.182 0.277 -0.137 -0.102 -0.186 -0.175 -0.087 -0.036 -0.024 0.141 -0.000 + 4.543 0.087 0.262 0.260 -0.324 0.018 -0.200 -0.096 -0.093 0.007 -0.046 0.132 -0.142 + 9.861 -0.297 0.566 0.217 -0.052 -0.205 -0.238 -0.166 -0.075 -0.246 -0.081 0.058 -0.245 + 12.345 -0.380 0.412 0.442 0.002 -0.284 -0.445 -0.161 -0.317 -0.352 -0.184 -0.104 -0.339 + 13.929 -0.458 0.120 0.624 -0.284 -0.205 -0.645 0.010 -0.585 -0.313 -0.282 0.037 -0.346 + 14.748 -0.547 0.135 0.641 -0.405 -0.248 -0.724 0.066 -0.640 -0.314 -0.266 0.020 -0.371 + 14.912 -0.590 0.153 0.673 -0.436 -0.240 -0.789 0.091 -0.679 -0.325 -0.288 0.064 -0.470 + 14.911 -0.665 0.206 0.721 -0.408 -0.286 -0.759 0.053 -0.690 -0.318 -0.297 0.075 -0.496 + 14.667 -0.597 0.223 0.709 -0.386 -0.269 -0.744 0.036 -0.694 -0.267 -0.328 0.088 -0.528 + 13.997 -0.511 0.215 0.682 -0.286 -0.208 -0.691 0.032 -0.609 -0.254 -0.381 0.122 -0.511 + 12.119 -0.109 0.125 0.196 -0.327 -0.337 -0.351 0.134 -0.427 -0.191 -0.392 0.060 -0.348 + 7.671 0.195 0.558 0.403 0.020 -0.095 -0.151 0.193 -0.263 -0.017 -0.374 0.017 -0.287 + 6.307 0.322 0.534 0.626 0.131 -0.040 -0.313 0.375 -0.221 -0.095 -0.363 0.193 -0.430 + 6.107 0.459 0.630 0.791 0.091 -0.083 -0.328 0.246 -0.156 -0.073 -0.190 0.216 -0.435 + 5.988 0.563 0.541 0.716 0.057 -0.070 -0.340 0.343 -0.205 -0.087 -0.285 0.250 -0.385 + 7.369 0.175 0.420 0.420 0.418 -0.010 -0.081 -0.278 -0.249 -0.128 -0.265 0.139 -0.328 + 11.081 -0.511 0.330 0.191 0.103 -0.219 -0.198 -0.201 -0.206 -0.296 -0.272 -0.017 -0.444 + 11.855 -0.867 0.424 0.278 0.064 -0.392 -0.281 -0.047 -0.242 -0.329 -0.133 -0.020 -0.310 + 12.547 -0.465 0.225 0.380 -0.092 -0.342 -0.368 -0.040 -0.438 -0.337 -0.298 0.032 -0.466 + 13.393 -0.339 0.073 0.544 -0.092 -0.432 -0.418 -0.139 -0.560 -0.297 -0.165 -0.020 -0.480 + 13.453 -0.145 0.031 0.660 -0.236 -0.412 -0.479 -0.113 -0.557 -0.277 -0.181 -0.073 -0.484 + 13.565 -0.063 -0.081 0.715 -0.407 -0.321 -0.506 -0.118 -0.500 -0.284 -0.232 -0.064 -0.501 + 13.135 0.040 -0.157 0.730 -0.349 -0.282 -0.525 -0.071 -0.490 -0.278 -0.250 -0.062 -0.537 + 12.013 0.099 -0.144 0.626 -0.109 -0.290 -0.373 -0.025 -0.442 -0.326 -0.279 0.009 -0.563 + 8.713 -0.020 0.263 0.591 0.096 -0.264 -0.296 0.097 -0.327 -0.237 -0.307 0.165 -0.424 + 5.951 0.349 0.607 0.620 0.199 -0.272 -0.015 0.241 -0.072 -0.241 -0.162 0.046 -0.387 + 6.095 0.238 0.391 0.331 0.028 -0.010 0.182 0.378 -0.120 -0.139 -0.217 -0.202 -0.338 + 6.048 0.302 0.743 0.207 0.046 -0.157 -0.051 0.225 -0.106 -0.228 -0.198 -0.115 -0.314 + 5.696 0.170 0.685 0.008 0.126 -0.173 -0.039 -0.167 -0.090 -0.171 -0.107 -0.163 -0.167 + 5.822 -0.069 0.893 0.234 0.252 -0.148 0.078 -0.199 -0.188 -0.309 -0.063 -0.247 -0.228 + 5.976 -0.219 0.854 0.184 0.115 0.033 0.010 0.117 -0.188 -0.276 -0.075 -0.327 -0.348 + 8.700 -0.469 0.521 -0.130 -0.111 0.097 -0.094 -0.010 -0.070 -0.027 -0.128 -0.146 -0.319 + 10.366 -0.584 0.598 0.003 -0.120 -0.115 -0.210 -0.112 -0.180 -0.168 -0.166 -0.112 -0.351 + 11.212 -0.781 0.611 0.238 -0.062 -0.470 -0.243 -0.008 -0.273 -0.459 -0.062 -0.016 -0.432 + 12.582 -0.500 0.220 0.381 0.057 -0.468 -0.346 -0.179 -0.296 -0.414 -0.156 -0.039 -0.428 + 13.656 -0.382 0.088 0.486 -0.309 -0.296 -0.459 -0.050 -0.559 -0.329 -0.173 -0.003 -0.382 + 14.085 -0.342 -0.003 0.684 -0.399 -0.250 -0.604 -0.051 -0.612 -0.273 -0.325 0.058 -0.413 + 14.383 -0.318 -0.088 0.684 -0.413 -0.298 -0.590 -0.043 -0.620 -0.298 -0.340 0.060 -0.413 + 14.441 -0.288 -0.073 0.632 -0.401 -0.348 -0.536 -0.125 -0.561 -0.349 -0.347 0.057 -0.405 + 14.048 -0.197 -0.117 0.642 -0.237 -0.352 -0.583 -0.078 -0.537 -0.364 -0.430 0.146 -0.437 + 13.398 -0.258 0.057 0.518 -0.066 -0.378 -0.579 -0.039 -0.407 -0.405 -0.470 0.184 -0.322 + 12.120 -0.122 0.234 0.273 -0.169 -0.346 -0.535 0.208 -0.265 -0.303 -0.480 0.003 -0.268 + 12.344 -0.252 0.326 0.423 -0.123 -0.253 -0.670 -0.039 -0.375 -0.286 -0.459 0.061 -0.296 + 12.637 -0.308 0.157 0.547 0.026 -0.277 -0.527 -0.163 -0.478 -0.361 -0.412 0.214 -0.137 + 12.748 0.007 -0.098 0.716 -0.192 -0.310 -0.547 -0.133 -0.421 -0.266 -0.437 0.174 -0.192 + 13.207 0.118 -0.266 0.668 -0.347 -0.180 -0.606 -0.054 -0.456 -0.350 -0.370 0.143 -0.275 + 13.601 0.075 -0.308 0.717 -0.452 -0.179 -0.655 -0.041 -0.503 -0.309 -0.345 0.143 -0.388 + 13.540 0.112 -0.390 0.774 -0.475 -0.204 -0.695 0.019 -0.477 -0.227 -0.374 0.135 -0.508 + 13.074 0.157 -0.391 0.840 -0.449 -0.167 -0.695 0.056 -0.375 -0.090 -0.483 0.074 -0.487 + 11.586 0.479 -0.543 0.817 -0.359 -0.094 -0.500 0.051 -0.211 -0.202 -0.530 -0.031 -0.369 + 7.432 0.775 -0.325 0.411 0.097 0.008 -0.154 0.067 -0.252 -0.061 -0.421 -0.344 -0.373 + 5.600 0.699 0.077 0.616 0.395 -0.044 -0.341 0.026 -0.159 -0.091 -0.331 -0.228 -0.404 + 5.770 0.879 0.084 0.453 0.401 -0.006 -0.198 -0.048 -0.166 -0.109 -0.400 -0.073 -0.448 + 5.330 0.704 0.259 0.514 0.391 -0.083 -0.157 0.021 -0.218 -0.015 -0.262 -0.192 -0.420 + 5.642 0.454 0.095 0.523 0.299 -0.067 -0.231 -0.058 -0.185 -0.236 -0.277 -0.046 -0.305 + 5.969 0.321 -0.059 0.266 0.050 -0.048 0.077 0.070 -0.033 0.028 -0.245 -0.121 -0.236 + 8.598 0.115 -0.441 0.163 -0.187 -0.181 0.020 -0.003 -0.005 -0.014 -0.416 -0.336 -0.241 + 6.319 0.407 -0.053 0.212 -0.094 -0.088 0.040 0.056 -0.023 0.023 -0.361 -0.305 -0.190 + 4.850 0.320 0.310 0.346 0.064 -0.122 -0.119 -0.071 -0.163 0.019 0.071 0.190 -0.179 + 4.847 0.240 0.016 0.211 -0.045 -0.188 -0.217 0.118 -0.118 -0.065 -0.028 -0.092 -0.087 + 4.793 0.083 -0.098 0.153 0.038 -0.179 -0.187 -0.091 -0.236 -0.164 -0.074 -0.076 -0.183 + 4.704 0.065 0.008 0.221 -0.008 -0.289 -0.134 -0.005 -0.227 -0.097 -0.160 -0.103 -0.127 + 5.033 -0.024 -0.179 0.255 0.097 -0.131 -0.048 -0.047 -0.282 -0.050 -0.012 -0.015 -0.192 + 5.289 0.072 -0.210 0.227 0.049 -0.175 -0.129 0.003 -0.219 -0.063 -0.119 0.137 -0.006 + 5.082 0.129 0.038 0.191 -0.122 -0.124 -0.203 -0.096 -0.081 -0.197 -0.055 0.095 -0.115 + 5.219 0.049 -0.032 0.115 -0.040 -0.078 -0.098 0.085 -0.157 -0.057 0.163 0.154 -0.134 + 5.335 0.010 -0.036 0.157 0.013 -0.137 -0.119 0.047 -0.070 0.054 -0.012 0.046 -0.043 + 5.636 0.060 -0.240 0.089 -0.024 0.044 -0.100 -0.093 -0.289 -0.276 -0.106 -0.008 -0.037 + 5.676 0.149 -0.202 0.133 -0.005 -0.207 -0.156 -0.071 -0.241 -0.101 -0.041 0.058 -0.019 + 5.860 0.184 -0.366 0.078 0.004 -0.064 -0.156 -0.174 -0.142 0.014 -0.052 0.009 -0.051 + 6.170 0.091 -0.083 0.236 0.081 -0.059 0.006 -0.111 -0.194 -0.149 -0.042 -0.096 -0.100 + 5.929 0.033 -0.043 0.133 -0.030 -0.188 -0.231 -0.044 -0.152 0.135 0.007 0.028 -0.068 + 6.065 0.062 0.017 0.075 0.131 -0.036 -0.235 -0.163 -0.167 0.024 0.086 0.079 -0.131 + 6.393 0.017 -0.052 0.258 0.145 0.014 -0.079 -0.143 -0.260 0.029 0.116 0.101 -0.067 + 9.469 0.005 -0.318 0.245 -0.126 -0.273 -0.686 -0.486 -0.210 -0.026 -0.123 -0.227 -0.039 + 9.175 0.146 -0.257 0.135 -0.089 -0.345 -0.968 -0.720 -0.094 0.160 0.017 -0.230 0.104 + 7.788 -0.562 0.061 0.223 -0.269 -0.873 -0.602 -0.359 0.278 0.481 0.266 -0.343 0.051 + 7.824 -0.274 -0.513 0.016 -0.029 -0.353 -0.432 -0.075 0.130 0.159 -0.022 -0.265 -0.099 + 9.996 0.317 -1.146 -0.331 -0.336 -0.057 -0.383 -0.085 -0.200 0.269 -0.013 -0.200 0.089 + 12.329 0.825 -1.190 -0.852 -0.340 0.079 -0.435 0.216 -0.355 0.243 -0.355 -0.305 -0.057 + 12.946 0.858 -1.402 -0.655 -0.379 0.038 -0.346 0.226 -0.302 0.277 -0.582 -0.241 -0.061 + 13.531 0.542 -1.440 -0.304 -0.515 -0.088 -0.315 0.161 -0.148 0.277 -0.650 -0.190 -0.004 + 13.694 0.644 -1.359 -0.276 -0.490 -0.215 -0.278 0.096 -0.134 0.159 -0.503 -0.211 -0.047 + 14.416 0.358 -1.272 -0.136 -0.495 -0.437 -0.277 0.170 -0.089 0.091 -0.508 -0.102 -0.143 + 14.057 0.524 -1.064 -0.035 -0.477 -0.623 -0.351 0.172 -0.188 0.063 -0.431 0.101 -0.281 + 13.989 0.491 -0.847 0.289 -0.534 -0.655 -0.541 0.166 -0.425 0.076 -0.469 0.220 -0.338 + 13.116 0.463 -0.685 0.639 -0.444 -0.660 -0.580 0.017 -0.492 0.016 -0.547 0.332 -0.381 + 12.539 0.403 -0.572 0.814 -0.361 -0.506 -0.424 -0.115 -0.469 -0.090 -0.676 0.303 -0.386 + 12.496 0.565 -0.482 0.760 -0.355 -0.602 -0.464 -0.218 -0.472 -0.054 -0.587 0.325 -0.411 + 13.256 0.316 -0.416 0.811 -0.454 -0.590 -0.457 -0.160 -0.520 -0.037 -0.448 0.219 -0.450 + 13.631 0.206 -0.435 0.816 -0.576 -0.636 -0.399 -0.086 -0.550 -0.020 -0.413 0.149 -0.465 + 13.548 0.119 -0.326 0.819 -0.658 -0.566 -0.396 -0.084 -0.579 -0.046 -0.358 0.015 -0.418 + 13.414 -0.129 -0.120 0.881 -0.634 -0.535 -0.422 -0.064 -0.541 0.044 -0.316 0.035 -0.383 + 12.802 -0.033 -0.071 0.732 -0.707 -0.419 -0.213 0.037 -0.454 0.040 -0.349 -0.067 -0.375 + 11.928 0.184 -0.033 0.564 -0.609 -0.391 -0.004 0.052 -0.387 0.046 -0.279 -0.139 -0.304 + 10.359 0.646 0.098 0.317 0.035 -0.294 0.099 0.041 -0.364 0.119 -0.376 -0.161 -0.311 + 10.015 0.809 0.113 0.199 0.187 -0.447 0.204 -0.062 -0.260 0.324 -0.598 -0.113 -0.227 + 10.467 0.673 0.166 0.130 0.182 -0.491 0.121 0.014 -0.332 0.280 -0.612 -0.136 -0.158 + 10.694 0.516 0.198 0.205 0.109 -0.503 0.060 -0.017 -0.314 0.231 -0.599 -0.191 -0.116 + 11.222 0.068 0.339 0.341 -0.236 -0.321 -0.060 -0.130 -0.296 0.175 -0.453 -0.201 -0.147 + 11.791 -0.140 0.378 0.334 -0.631 -0.198 -0.097 -0.202 -0.267 0.332 -0.326 -0.242 -0.195 + 11.805 -0.240 0.269 0.381 -0.876 0.001 -0.234 -0.103 -0.401 0.309 -0.291 -0.319 -0.217 + 11.714 -0.353 0.430 0.343 -0.821 0.035 -0.250 -0.113 -0.400 0.167 -0.312 -0.394 -0.191 + 11.586 -0.348 0.505 0.389 -0.736 0.026 -0.296 -0.090 -0.454 0.112 -0.292 -0.391 -0.181 + 11.590 -0.418 0.566 0.418 -0.660 -0.023 -0.301 -0.154 -0.497 0.117 -0.215 -0.347 -0.212 + 11.715 -0.419 0.401 0.526 -0.666 -0.218 -0.201 -0.117 -0.534 0.099 -0.232 -0.301 -0.212 + 11.612 0.037 -0.004 0.573 -0.300 -0.589 -0.102 -0.037 -0.593 0.051 -0.220 -0.339 -0.140 + 11.077 0.419 -0.101 0.353 0.152 -0.706 -0.272 0.063 -0.636 0.026 -0.218 -0.397 -0.051 + 10.416 0.801 -0.207 0.347 0.349 -0.652 -0.324 -0.099 -0.553 0.028 -0.252 -0.352 -0.027 + 10.217 1.055 -0.323 0.409 0.121 -0.537 -0.337 0.023 -0.412 -0.069 -0.367 -0.304 0.020 + 10.704 0.610 0.049 0.271 0.107 -0.569 -0.325 0.093 -0.392 -0.116 -0.313 -0.405 0.088 + 10.819 0.631 -0.029 0.511 -0.058 -0.632 -0.276 0.092 -0.542 0.001 -0.228 -0.358 -0.035 + 11.424 0.328 -0.094 0.831 -0.190 -0.727 -0.226 0.069 -0.507 -0.021 -0.207 -0.224 -0.166 + 11.200 0.155 0.180 0.788 -0.341 -0.543 -0.207 0.111 -0.469 0.034 -0.272 -0.128 -0.145 + 9.417 0.566 0.514 0.525 0.092 -0.272 -0.174 -0.031 -0.239 0.085 -0.581 -0.059 -0.243 + 9.256 0.492 0.595 0.514 0.166 -0.304 -0.129 -0.139 -0.005 -0.198 -0.471 0.043 -0.265 + 9.322 0.540 0.622 0.323 0.128 -0.249 -0.018 -0.132 -0.086 -0.248 -0.486 -0.022 -0.161 + 9.195 0.385 0.756 0.336 0.005 -0.257 0.032 -0.098 -0.217 -0.034 -0.468 -0.075 -0.310 + 8.682 0.417 0.527 0.338 -0.031 -0.429 0.096 0.002 -0.043 -0.016 -0.411 -0.149 -0.268 + 7.702 0.354 0.049 0.273 -0.030 -0.145 0.158 -0.096 0.022 -0.004 -0.273 -0.218 -0.297 + 6.358 0.372 0.183 0.294 -0.070 -0.206 0.082 0.018 0.151 0.062 -0.326 -0.230 -0.235 + 5.847 0.125 -0.081 0.109 -0.197 -0.216 0.186 0.183 0.260 0.101 -0.472 -0.210 -0.188 + 5.254 0.096 -0.007 0.001 -0.333 -0.120 0.074 0.116 0.028 -0.011 -0.466 -0.174 -0.186 + 9.107 -0.779 -0.147 0.181 -0.483 0.095 -0.394 -0.015 -0.092 -0.194 -0.044 -0.139 -0.132 + 11.707 -1.464 0.131 -0.173 -0.313 0.078 -0.391 -0.254 -0.073 -0.144 -0.182 -0.070 -0.234 + 12.255 -2.321 0.533 -0.007 -0.265 0.045 -0.368 -0.187 -0.063 -0.177 -0.068 -0.149 -0.170 + 12.408 -2.807 0.653 0.120 -0.482 0.158 -0.089 -0.290 0.001 -0.085 0.002 -0.077 -0.174 + 12.780 -2.699 0.550 0.309 -0.461 0.084 0.019 -0.219 -0.147 -0.274 -0.131 -0.174 -0.119 + 12.748 -2.500 0.418 0.414 -0.418 0.050 -0.024 -0.289 -0.200 -0.194 -0.028 -0.136 -0.312 + 12.519 -2.437 0.248 0.494 -0.202 -0.075 0.006 -0.025 -0.093 -0.230 0.001 -0.054 -0.284 + 12.791 -2.228 0.415 0.562 -0.326 -0.146 0.022 -0.023 -0.111 -0.238 -0.014 0.037 -0.085 + 12.106 -2.009 0.167 0.704 -0.545 -0.156 -0.059 -0.065 -0.091 -0.304 -0.205 0.141 -0.098 + 10.358 -1.293 0.126 0.980 -0.448 -0.130 0.044 -0.078 -0.070 -0.109 -0.182 0.035 -0.188 + 12.689 0.575 -0.516 0.274 -0.408 -0.647 -0.246 -0.218 -0.131 -0.192 -0.205 0.057 -0.236 + 14.627 0.471 -0.894 0.232 -0.518 -0.797 -0.324 -0.129 -0.224 -0.064 -0.201 0.203 -0.291 + 15.281 0.122 -0.813 0.084 -0.663 -0.832 -0.452 0.085 -0.224 0.059 -0.211 0.140 -0.367 + 15.462 0.049 -0.904 -0.006 -0.681 -0.750 -0.606 0.231 -0.327 0.061 -0.230 0.152 -0.426 + 15.488 -0.124 -0.828 -0.250 -0.580 -0.775 -0.488 0.415 -0.328 0.179 -0.325 0.046 -0.463 + 15.174 -0.242 -0.773 -0.249 -0.493 -0.783 -0.483 0.412 -0.298 0.219 -0.269 0.023 -0.413 + 14.856 -0.245 -0.790 -0.269 -0.497 -0.823 -0.440 0.388 -0.328 0.193 -0.233 0.003 -0.377 + 14.229 0.002 -0.624 -0.192 -0.434 -0.954 -0.403 0.231 -0.321 0.189 -0.147 0.024 -0.361 + 12.811 0.124 -0.062 0.115 -0.598 -1.103 -0.212 0.048 -0.276 0.167 -0.197 0.104 -0.355 + 10.743 -0.220 0.222 0.246 -0.579 -0.994 -0.168 -0.204 -0.321 0.126 -0.117 0.077 -0.184 + 8.176 -0.133 -0.212 0.045 -0.445 -0.664 -0.046 0.229 -0.045 0.305 0.091 -0.002 -0.201 + 7.172 -0.070 0.011 0.044 -0.688 -0.778 -0.380 0.332 -0.059 0.034 0.112 0.179 -0.350 + 6.753 -0.210 -0.033 0.083 -0.410 -0.785 -0.268 0.352 -0.108 0.098 0.130 0.157 -0.188 + 7.785 -1.173 0.134 0.364 -0.578 -0.244 -0.592 0.106 0.044 -0.076 0.073 -0.008 -0.200 + 8.243 -1.231 -0.024 0.135 -0.566 -0.113 -0.579 0.027 0.219 0.071 0.089 -0.138 -0.257 + 6.364 -0.179 -0.115 -0.081 -0.378 -0.618 -0.437 0.150 0.123 0.178 -0.038 -0.019 -0.154 + 6.268 -0.289 -0.151 -0.304 -0.430 -0.523 -0.316 0.371 0.177 0.268 -0.058 -0.055 -0.124 + 6.433 -0.198 -0.136 -0.161 -0.264 -0.678 -0.507 0.406 -0.025 0.104 -0.076 0.079 -0.237 + 10.851 -1.364 -0.067 -0.217 -0.184 -0.075 -0.441 0.003 -0.060 -0.230 -0.239 0.024 -0.042 + 11.475 -1.293 -0.278 -0.321 -0.341 -0.164 -0.507 -0.039 -0.124 -0.170 -0.153 0.061 0.005 + 8.586 -1.260 0.083 -0.411 -0.244 -0.052 -0.344 0.112 -0.084 -0.086 -0.101 0.023 -0.039 + 9.614 -0.887 0.537 -0.499 -0.281 -0.005 -0.469 0.048 -0.199 -0.096 -0.163 -0.123 -0.117 + 10.890 -0.474 0.531 -0.115 -0.327 -0.255 -0.401 -0.190 -0.328 -0.301 -0.117 -0.185 -0.242 + 12.153 -0.140 0.378 0.259 -0.332 -0.531 -0.691 0.178 -0.724 -0.061 -0.224 0.002 -0.372 + 12.656 0.113 0.134 0.178 -0.377 -0.641 -0.657 0.084 -0.582 -0.167 -0.162 0.062 -0.240 + 12.772 0.110 0.168 0.132 -0.556 -0.612 -0.667 0.106 -0.412 -0.125 -0.164 0.076 -0.215 + 13.121 0.178 -0.204 0.066 -0.489 -0.561 -0.815 0.204 -0.422 -0.007 -0.192 0.321 -0.351 + 13.332 0.147 -0.358 -0.107 -0.393 -0.630 -0.809 0.300 -0.233 0.030 -0.235 0.312 -0.455 + 13.306 0.162 -0.387 -0.204 -0.353 -0.621 -0.846 0.258 -0.130 0.065 -0.293 0.321 -0.372 + 13.037 0.314 -0.242 -0.356 -0.406 -0.459 -0.826 -0.024 0.045 0.162 -0.464 0.412 -0.339 + 12.327 0.164 -0.185 -0.385 -0.298 -0.393 -0.527 -0.183 0.169 0.201 -0.536 0.195 -0.123 + 11.416 0.080 -0.451 -0.557 -0.303 -0.312 -0.514 -0.017 0.202 0.135 -0.521 -0.015 -0.090 + 10.398 -1.473 0.690 -0.596 -0.005 -0.198 -0.365 0.124 0.180 0.013 -0.243 -0.134 -0.018 + 10.456 -2.030 0.997 -0.687 0.155 -0.020 -0.158 -0.059 0.006 -0.166 -0.128 -0.124 -0.033 + 9.918 -2.050 1.212 -0.749 -0.021 -0.079 -0.124 -0.019 0.036 -0.150 -0.220 0.052 -0.001 + 10.014 -1.980 1.153 -0.726 0.051 -0.236 -0.319 -0.081 -0.202 -0.121 -0.263 0.105 -0.014 + 9.797 -1.854 1.064 -0.552 0.058 -0.423 -0.227 0.045 -0.106 -0.063 -0.164 -0.049 -0.260 + 8.645 -1.625 0.692 -0.533 0.087 -0.305 -0.253 -0.078 -0.189 -0.015 0.027 0.053 -0.034 + 7.806 -0.852 0.536 -0.560 -0.184 -0.411 -0.409 -0.244 -0.287 -0.247 -0.155 0.094 -0.074 + 8.013 -0.834 0.310 -0.332 -0.231 -0.058 -0.485 -0.098 -0.354 -0.160 -0.357 -0.197 -0.215 + 9.198 -1.256 0.486 -0.263 -0.369 0.034 -0.530 -0.081 -0.317 -0.238 -0.272 -0.293 -0.232 + 10.381 -1.978 0.731 0.152 -0.568 0.076 -0.350 -0.013 -0.162 -0.093 -0.237 -0.174 -0.096 + 12.469 -1.735 0.441 -0.150 -0.707 -0.023 -0.312 -0.106 -0.171 -0.160 -0.157 -0.179 -0.215 + 12.916 -1.440 0.096 -0.179 -0.794 -0.081 -0.356 -0.215 -0.208 -0.245 -0.203 -0.063 -0.192 + 12.006 -0.243 0.227 0.403 -0.408 -0.305 -0.419 -0.320 -0.083 -0.174 -0.364 0.024 -0.082 + 11.765 0.694 -0.265 0.341 -0.023 -0.562 -0.649 0.014 -0.530 0.003 -0.507 -0.001 -0.085 + 11.708 0.587 -0.286 0.360 -0.001 -0.391 -0.978 0.358 -0.627 -0.043 -0.407 0.040 -0.095 + 11.264 0.365 -0.269 0.635 -0.013 -0.283 -0.805 -0.018 -0.410 -0.085 -0.435 0.046 0.027 + 9.203 0.263 -0.071 0.827 0.188 -0.436 -0.700 -0.068 -0.356 -0.121 -0.383 -0.003 0.102 + 6.832 -0.120 0.304 0.577 0.075 -0.160 -0.247 0.078 -0.013 -0.057 -0.405 -0.124 0.212 + 6.721 -0.399 0.480 0.760 0.248 -0.095 0.011 0.010 -0.059 -0.162 -0.348 -0.333 -0.083 + 7.811 -0.261 0.101 0.565 -0.150 -0.013 -0.204 -0.100 0.019 -0.078 -0.320 -0.091 -0.085 + 12.181 -0.322 -0.335 0.481 -0.251 -0.288 -0.698 0.022 -0.329 -0.093 -0.382 0.160 -0.146 + 12.988 0.022 -0.368 0.106 -0.128 -0.765 -0.637 0.021 -0.313 0.043 -0.294 0.205 -0.067 + 13.053 0.151 -0.439 0.065 -0.096 -0.947 -0.610 -0.025 -0.314 0.143 -0.306 0.339 -0.133 + 13.354 0.173 -0.490 0.108 -0.249 -0.942 -0.584 -0.009 -0.337 0.137 -0.258 0.281 -0.171 + 13.472 0.012 -0.353 0.202 -0.331 -0.897 -0.535 0.020 -0.364 0.065 -0.145 0.160 -0.118 + 13.067 0.049 -0.289 0.332 -0.371 -0.821 -0.604 0.177 -0.509 0.057 -0.075 0.027 -0.056 + 12.857 -0.026 -0.211 0.367 -0.321 -0.801 -0.538 0.057 -0.502 0.107 -0.174 0.079 -0.078 + 12.497 0.009 -0.208 0.430 -0.302 -0.790 -0.519 0.118 -0.675 0.173 -0.205 0.057 -0.100 + 12.231 -0.004 -0.194 0.415 -0.095 -0.863 -0.502 0.205 -0.789 0.136 -0.185 -0.038 -0.125 + 12.032 0.092 -0.072 0.241 0.293 -0.834 -0.558 0.168 -0.779 0.067 -0.387 -0.023 -0.216 + 11.373 0.619 -0.043 -0.036 0.243 -0.416 -0.411 -0.169 -0.745 0.204 -0.450 -0.264 -0.202 + 10.458 0.900 0.215 -0.367 0.033 -0.241 -0.119 -0.159 -0.809 0.058 -0.442 -0.029 -0.134 + 9.945 0.855 0.471 -0.427 -0.213 -0.294 -0.002 -0.081 -0.774 0.027 -0.474 -0.034 -0.090 + 9.993 0.836 0.516 -0.374 -0.272 -0.353 -0.076 0.048 -0.793 0.011 -0.451 -0.148 -0.108 + 10.493 0.806 0.467 -0.370 -0.406 -0.362 -0.161 0.115 -0.847 -0.062 -0.423 -0.176 -0.071 + 11.001 0.966 0.286 -0.503 -0.419 -0.358 -0.187 0.072 -1.003 0.016 -0.293 -0.084 -0.083 + 11.808 0.834 0.099 -0.441 -0.367 -0.342 -0.297 -0.048 -0.865 0.074 -0.148 -0.019 -0.118 + 12.169 0.900 -0.200 -0.543 -0.425 -0.360 -0.292 -0.221 -0.718 0.247 0.025 -0.017 -0.111 + 12.541 0.868 -0.504 -0.592 -0.408 -0.321 -0.392 -0.320 -0.504 0.270 0.060 -0.139 -0.112 + 12.813 0.824 -0.676 -0.504 -0.465 -0.399 -0.385 -0.380 -0.321 0.437 0.126 -0.262 -0.129 + 13.071 0.645 -0.834 -0.309 -0.487 -0.382 -0.396 -0.391 -0.204 0.490 -0.010 -0.355 -0.112 + 13.257 0.520 -0.963 -0.306 -0.626 -0.385 -0.368 -0.224 -0.112 0.429 -0.257 -0.203 -0.069 + 13.428 0.283 -0.788 -0.192 -0.748 -0.161 -0.599 -0.135 -0.093 0.434 -0.395 -0.129 -0.056 + 13.056 0.310 -0.674 -0.229 -0.665 -0.191 -0.587 -0.184 -0.111 0.445 -0.366 -0.086 -0.026 + 12.647 0.332 -0.596 -0.208 -0.685 -0.152 -0.761 -0.222 -0.175 0.619 -0.388 -0.051 0.033 + 11.954 0.118 -0.314 0.044 -0.537 -0.038 -0.864 -0.326 -0.458 0.638 -0.373 -0.093 0.049 + 10.548 0.153 -0.039 0.071 -0.288 0.041 -0.609 -0.276 -0.531 0.330 -0.338 -0.209 -0.024 + 10.989 0.149 -0.094 0.084 -0.313 0.139 -0.759 -0.235 -0.464 0.299 -0.457 -0.087 -0.029 + 11.850 0.031 -0.176 0.153 -0.496 0.054 -0.808 -0.288 -0.348 0.407 -0.456 -0.055 0.046 + 12.362 0.012 -0.238 0.087 -0.497 -0.074 -0.931 -0.255 -0.307 0.468 -0.464 0.009 0.064 + 12.642 -0.012 -0.290 0.064 -0.477 -0.196 -0.954 -0.256 -0.221 0.455 -0.410 -0.010 0.102 + 12.728 0.094 -0.467 0.233 -0.443 -0.357 -0.873 -0.252 -0.184 0.350 -0.359 -0.111 0.076 + 12.507 0.404 -0.655 0.123 -0.040 -0.487 -0.902 -0.062 -0.317 0.177 -0.194 -0.146 -0.078 + 11.682 1.104 -0.893 -0.226 0.278 -0.377 -0.996 -0.063 -0.211 -0.008 -0.206 0.055 -0.265 + 10.922 1.355 -0.784 -0.377 0.355 -0.246 -0.991 -0.228 -0.205 -0.010 -0.296 0.133 -0.267 + 10.332 1.567 -0.727 -0.508 0.317 -0.205 -0.846 -0.418 -0.209 0.030 -0.333 0.102 -0.170 + 9.890 1.837 -0.675 -0.588 0.121 -0.032 -0.719 -0.461 -0.232 -0.091 -0.269 0.133 -0.151 + 10.130 1.987 -0.766 -0.645 0.069 -0.129 -0.558 -0.367 -0.287 -0.205 -0.237 0.161 -0.181 + 10.146 1.775 -0.595 -0.654 0.066 -0.174 -0.504 -0.259 -0.396 -0.255 -0.181 0.221 -0.187 + 9.831 1.417 -0.544 -0.646 0.047 -0.259 -0.498 -0.295 -0.391 -0.381 -0.056 0.300 -0.218 + 10.626 1.430 -0.570 -0.766 0.206 -0.482 -0.349 -0.275 -0.525 -0.284 -0.087 0.255 -0.310 + 10.794 1.188 -0.402 -0.698 0.180 -0.417 -0.356 -0.211 -0.513 -0.251 0.095 0.060 -0.315 + 10.394 1.107 -0.525 -0.614 0.134 -0.439 -0.361 -0.354 -0.507 -0.246 0.215 0.030 -0.394 + 11.021 1.189 -0.715 -0.446 0.092 -0.569 -0.398 -0.459 -0.466 -0.130 0.202 -0.009 -0.475 + 11.426 1.010 -0.627 -0.126 -0.049 -0.553 -0.420 -0.421 -0.370 -0.023 0.139 -0.186 -0.289 + 11.651 0.714 -0.522 0.014 -0.156 -0.389 -0.507 -0.504 -0.280 0.128 -0.168 -0.113 -0.152 + 11.949 0.338 -0.408 0.099 -0.239 -0.285 -0.747 -0.389 -0.359 0.288 -0.292 -0.076 0.028 + 12.312 0.088 -0.241 0.042 -0.319 -0.218 -0.806 -0.316 -0.336 0.315 -0.401 -0.078 0.047 + 11.885 -0.029 -0.119 0.059 -0.251 -0.100 -0.612 -0.297 -0.253 0.321 -0.487 -0.144 0.087 + 11.125 -0.517 0.548 -0.189 -0.108 -0.024 -0.715 -0.129 -0.162 -0.043 -0.472 -0.116 -0.013 + 10.291 -1.458 0.922 -0.293 0.245 -0.085 -0.666 -0.058 -0.237 -0.079 -0.463 0.007 -0.030 + 9.920 -1.769 1.273 -0.287 0.086 -0.065 -0.590 -0.135 -0.247 -0.084 -0.466 0.025 -0.013 + 10.002 -1.860 1.285 -0.426 0.031 -0.051 -0.581 -0.120 -0.238 -0.080 -0.265 0.033 -0.090 + 10.606 -1.609 1.030 -0.502 -0.095 0.108 -0.597 0.090 -0.009 -0.011 -0.370 -0.090 -0.122 + 10.401 -1.571 0.827 -0.227 -0.263 0.257 -0.816 0.025 -0.065 -0.113 -0.283 0.102 0.119 + 9.293 -0.732 0.352 0.295 -0.427 0.077 -0.622 -0.153 0.252 -0.218 -0.201 0.077 0.104 + 8.472 0.469 0.151 -0.077 -0.192 -0.277 -0.248 -0.108 0.089 0.018 -0.391 -0.078 -0.003 + 8.515 0.538 0.163 0.126 0.367 -0.247 -0.139 -0.076 0.044 -0.250 -0.341 -0.226 -0.122 + 8.966 0.699 0.093 0.083 0.309 -0.273 -0.047 -0.149 -0.073 -0.089 -0.281 -0.262 -0.283 + 9.478 0.455 0.133 0.097 0.303 -0.204 -0.173 -0.121 -0.073 0.022 -0.150 -0.307 -0.291 + 9.974 0.509 -0.164 0.330 0.391 -0.409 -0.102 -0.109 -0.192 -0.047 -0.157 -0.239 -0.243 + 9.961 0.086 0.124 0.324 0.443 -0.314 -0.095 -0.034 -0.505 0.161 -0.230 -0.193 -0.286 + 9.788 0.169 0.251 0.144 0.395 -0.360 -0.025 -0.028 -0.584 0.089 -0.219 -0.166 -0.141 + 10.316 0.438 0.175 -0.149 0.195 -0.381 -0.166 -0.130 -0.474 0.119 -0.016 -0.244 -0.088 + 11.061 0.666 0.025 -0.338 0.038 -0.471 -0.401 -0.111 -0.605 0.271 -0.000 -0.232 -0.051 + 11.465 0.605 0.129 -0.447 0.134 -0.383 -0.503 -0.113 -0.627 0.378 -0.098 -0.256 -0.024 + 11.629 0.584 -0.018 -0.279 0.198 -0.447 -0.525 -0.109 -0.643 0.407 -0.104 -0.401 0.079 + 11.946 0.458 -0.105 -0.218 0.182 -0.416 -0.539 -0.090 -0.610 0.318 -0.133 -0.391 -0.018 + 11.659 0.502 -0.072 -0.214 0.194 -0.454 -0.502 -0.148 -0.643 0.344 -0.202 -0.348 -0.041 + 11.526 0.592 -0.157 -0.204 0.278 -0.513 -0.501 -0.162 -0.670 0.319 -0.258 -0.351 -0.075 + 11.563 0.601 -0.257 -0.067 0.319 -0.488 -0.507 -0.240 -0.674 0.226 -0.234 -0.366 -0.079 + 11.714 0.577 -0.306 -0.102 0.199 -0.346 -0.512 -0.282 -0.644 0.154 -0.183 -0.493 0.039 + 11.471 0.589 -0.221 -0.059 0.237 -0.244 -0.485 -0.109 -0.654 0.239 -0.316 -0.321 -0.049 + 11.190 0.419 -0.100 -0.095 0.225 -0.201 -0.385 -0.180 -0.474 0.155 -0.219 -0.399 -0.077 + 10.461 0.351 -0.104 -0.229 0.138 -0.165 -0.396 -0.095 -0.501 0.260 -0.122 -0.291 -0.067 + 10.141 0.046 -0.107 -0.223 0.025 -0.286 -0.599 -0.089 -0.587 0.305 -0.138 -0.348 -0.015 + 10.139 0.088 -0.332 -0.106 0.095 -0.422 -0.576 0.104 -0.363 0.246 -0.176 -0.366 0.039 + 11.133 0.164 -0.453 -0.192 -0.080 -0.344 -0.596 0.143 -0.493 0.229 -0.193 -0.339 0.032 + 11.558 0.113 -0.673 -0.247 -0.099 -0.543 -0.732 0.213 -0.510 0.238 -0.171 -0.328 0.096 + 12.210 0.148 -0.705 -0.082 -0.153 -0.636 -0.761 0.230 -0.391 0.351 -0.110 -0.231 0.203 + 12.489 0.199 -0.844 0.060 -0.282 -0.903 -0.631 0.194 -0.219 0.207 0.029 -0.192 0.232 + 13.211 0.131 -0.651 0.125 -0.244 -0.875 -0.557 0.318 -0.205 0.105 0.023 -0.316 0.139 + 12.978 0.196 -0.826 0.325 -0.435 -0.656 -0.515 0.325 -0.243 0.158 0.035 -0.163 0.047 + 12.593 0.155 -0.877 0.526 -0.715 -0.540 -0.377 0.449 -0.340 0.279 0.001 -0.087 -0.053 + 12.301 0.079 -0.596 0.459 -0.786 -0.598 -0.237 0.429 -0.424 0.358 -0.041 -0.140 -0.071 + 11.931 0.295 -0.592 0.490 -0.796 -0.628 -0.128 0.380 -0.552 0.493 -0.174 -0.084 -0.140 + 11.316 0.333 -0.342 0.308 -0.613 -0.521 0.094 0.140 -0.523 0.493 -0.198 -0.200 -0.076 + 10.381 0.366 0.004 -0.072 -0.280 -0.390 0.011 0.106 -0.381 0.382 -0.431 -0.111 0.007 + 9.576 0.511 -0.194 -0.298 -0.012 -0.612 -0.062 0.197 -0.318 0.251 -0.275 -0.009 -0.079 + 8.855 0.333 -0.060 -0.073 0.230 -0.613 0.059 0.149 -0.268 0.085 -0.287 -0.008 -0.032 + 8.041 -0.233 0.366 0.039 0.187 -0.720 0.046 0.018 -0.258 0.034 -0.374 -0.218 -0.101 + 6.923 0.094 0.076 0.548 -0.376 -0.461 -0.330 0.192 -0.229 -0.044 -0.197 -0.153 -0.025 + 6.673 -0.023 -0.054 0.612 -0.485 -0.320 -0.190 0.214 -0.413 -0.361 -0.223 -0.068 -0.038 + 6.633 -0.069 -0.139 0.657 -0.405 -0.169 -0.198 0.109 -0.355 -0.186 -0.150 -0.084 -0.078 + 6.754 0.049 -0.064 0.737 -0.303 -0.110 -0.383 0.163 -0.415 -0.194 -0.117 -0.130 -0.035 + 6.692 0.099 -0.115 0.753 -0.233 -0.303 -0.537 -0.000 -0.340 -0.296 -0.199 -0.022 0.055 + 6.535 0.167 -0.092 0.690 -0.153 -0.204 -0.335 0.059 -0.426 -0.262 -0.350 -0.228 -0.082 + 6.214 0.222 -0.081 0.614 -0.044 -0.202 -0.377 -0.031 -0.255 -0.255 -0.310 -0.213 -0.089 + 6.291 0.200 -0.135 0.566 -0.178 -0.243 -0.463 -0.068 -0.324 -0.292 -0.174 -0.213 0.014 + 6.686 0.319 -0.338 0.493 -0.106 -0.206 -0.419 0.049 -0.130 -0.249 -0.269 -0.076 0.045 + 7.230 -0.079 -0.376 0.415 -0.248 -0.029 -0.279 0.001 0.105 -0.195 -0.225 0.024 -0.001 + 7.370 0.086 -0.280 0.408 -0.274 -0.140 -0.389 -0.118 0.096 -0.166 -0.173 0.031 -0.018 + 7.266 0.447 -0.130 0.254 -0.247 -0.205 -0.464 -0.101 -0.063 -0.373 -0.230 -0.174 0.058 + 7.560 0.650 -0.309 0.301 -0.186 -0.269 -0.518 -0.291 0.034 -0.336 -0.374 -0.198 0.003 + 7.376 0.768 -0.424 0.306 -0.115 -0.224 -0.741 -0.253 0.005 -0.364 -0.455 -0.306 -0.020 + 7.591 0.589 -0.496 0.317 0.026 -0.278 -0.699 -0.287 -0.286 -0.303 -0.360 -0.219 -0.055 + 7.660 0.546 -0.533 0.047 -0.158 -0.279 -0.679 -0.346 -0.316 -0.088 -0.276 -0.144 -0.019 + 7.607 0.509 -0.400 -0.136 -0.320 -0.293 -0.514 -0.093 -0.436 -0.282 -0.287 -0.158 0.050 + 7.680 0.302 -0.204 0.134 -0.258 -0.201 -0.356 -0.005 -0.550 -0.188 -0.413 -0.161 -0.056 + 7.722 0.378 -0.157 0.264 -0.330 -0.411 -0.366 0.217 -0.387 -0.196 -0.334 -0.261 -0.217 + 7.748 0.453 -0.243 0.130 -0.324 -0.414 -0.255 0.170 -0.384 -0.270 -0.380 -0.192 -0.101 + 7.812 0.308 -0.197 0.114 -0.394 -0.308 -0.212 0.023 -0.370 -0.119 -0.391 -0.186 -0.217 + 7.794 0.303 -0.282 0.183 -0.411 -0.333 -0.042 0.045 -0.551 -0.361 -0.402 -0.158 -0.141 + 7.914 0.364 -0.355 0.150 -0.539 -0.354 -0.161 -0.027 -0.579 -0.330 -0.224 -0.047 -0.018 + 7.771 0.363 -0.510 -0.075 -0.407 -0.261 -0.182 -0.043 -0.402 -0.133 -0.005 0.084 -0.178 + 7.689 0.246 -0.662 0.105 -0.344 -0.198 -0.224 -0.107 -0.264 0.043 0.008 -0.040 -0.337 + 7.634 0.241 -0.645 -0.024 -0.230 -0.182 -0.213 -0.106 -0.355 -0.009 0.128 -0.087 -0.257 + 7.355 0.011 -0.816 0.107 -0.352 -0.194 -0.346 -0.072 -0.155 0.272 0.244 0.099 -0.361 + 6.920 -0.108 -0.593 0.219 -0.225 -0.323 -0.419 -0.027 -0.228 0.144 -0.033 -0.065 -0.281 + 6.783 -0.362 -0.602 0.134 -0.091 -0.234 -0.254 0.179 -0.262 0.101 0.048 -0.053 -0.300 + 6.500 -0.539 -0.285 0.139 0.001 -0.262 -0.255 0.112 -0.085 0.169 0.034 -0.148 -0.352 + 6.966 -0.466 -0.290 0.192 -0.329 -0.303 -0.319 0.155 -0.193 0.033 0.123 0.060 -0.272 + 7.200 -0.483 -0.454 0.007 -0.279 -0.339 -0.342 0.194 -0.078 0.199 0.106 -0.052 -0.311 + 7.345 -0.426 -0.429 -0.181 -0.421 -0.209 -0.313 0.154 0.049 0.305 0.074 -0.149 -0.207 + 7.242 -0.437 -0.507 -0.374 -0.651 -0.248 -0.264 0.241 0.167 0.221 0.069 -0.001 -0.220 + 7.418 -0.299 -0.488 -0.417 -0.551 -0.288 -0.316 0.219 0.017 0.107 0.047 0.074 -0.322 + 7.545 -0.352 -0.396 -0.366 -0.467 -0.259 -0.351 0.305 0.064 0.016 -0.185 0.014 -0.165 + 7.281 -0.374 -0.290 -0.157 -0.376 -0.242 -0.454 0.254 0.297 0.066 -0.257 0.029 -0.171 + 7.280 -0.409 -0.232 0.061 -0.161 -0.260 -0.465 0.366 0.127 -0.025 -0.143 0.041 -0.195 + 7.051 -0.617 -0.175 0.192 -0.074 -0.170 -0.361 0.434 0.070 0.044 -0.120 0.006 -0.166 + 7.142 -0.361 -0.017 -0.002 -0.263 -0.380 -0.429 0.377 0.184 0.041 -0.227 0.154 -0.054 + 6.744 -0.595 -0.070 0.077 -0.202 -0.465 -0.419 0.329 0.072 0.030 -0.033 0.153 -0.110 + 6.041 -1.077 -0.232 0.183 -0.182 -0.355 -0.283 0.346 0.021 0.002 -0.060 0.009 -0.117 + 5.962 -0.915 -0.384 0.202 -0.072 -0.454 -0.419 0.206 -0.086 0.148 0.037 0.002 -0.107 + 5.910 -1.052 -0.244 0.166 0.130 -0.379 -0.462 0.131 -0.086 0.110 0.205 0.135 -0.162 + 5.832 -1.106 -0.161 0.011 -0.077 -0.226 -0.373 0.117 -0.026 0.037 0.183 -0.022 -0.072 + 5.635 -1.129 -0.113 -0.121 -0.284 -0.375 -0.520 0.157 0.082 0.121 0.193 0.153 -0.067 + 5.709 -1.102 0.088 -0.034 -0.110 -0.241 -0.207 0.253 -0.061 -0.040 0.203 0.074 -0.116 + 5.234 -1.238 0.106 0.058 -0.215 -0.153 -0.165 0.169 -0.115 0.090 0.265 0.169 -0.056 + 5.579 -1.286 -0.164 0.160 -0.119 -0.356 -0.201 0.286 -0.055 0.036 0.181 0.180 -0.075 + 5.793 -1.203 -0.102 0.114 -0.040 -0.417 -0.284 0.411 0.127 -0.023 0.221 0.052 -0.092 + 5.541 -1.065 -0.253 -0.006 -0.129 -0.272 -0.302 0.341 -0.152 -0.133 0.045 0.013 -0.168 + 5.415 -1.081 -0.306 -0.032 -0.194 -0.223 -0.335 0.299 -0.079 -0.046 0.047 0.219 0.039 + 5.281 -1.139 -0.303 0.146 -0.176 -0.348 -0.357 0.165 -0.069 -0.044 0.057 0.077 0.069 + 5.579 -0.594 -0.180 0.161 -0.167 -0.409 -0.453 0.236 -0.120 -0.076 0.089 -0.023 -0.204 + 6.673 -0.059 -0.102 0.102 -0.029 -0.280 -0.577 -0.013 -0.175 -0.156 0.009 0.011 0.072 + 7.412 0.213 -0.147 -0.335 -0.138 -0.156 -0.554 -0.193 -0.109 0.034 -0.016 -0.059 0.054 + 7.622 0.396 -0.469 -0.487 -0.190 -0.339 -0.727 0.014 0.015 0.013 -0.013 -0.069 -0.101 + 7.667 0.447 -0.422 -0.285 -0.350 -0.406 -0.742 -0.211 -0.002 0.109 0.142 -0.176 -0.074 + 7.764 0.644 -0.382 -0.323 -0.323 -0.240 -0.565 -0.250 0.021 0.099 0.115 -0.078 -0.066 + 8.093 0.366 -0.499 -0.173 -0.294 -0.265 -0.530 -0.114 -0.069 0.153 0.103 -0.017 -0.123 + 8.178 0.513 -0.470 -0.197 -0.372 -0.322 -0.584 -0.391 -0.113 0.039 -0.093 0.040 -0.056 + 8.257 0.545 -0.413 -0.205 -0.300 -0.293 -0.842 -0.369 -0.087 -0.071 -0.100 -0.029 -0.110 + 8.107 0.492 -0.430 0.076 -0.308 -0.276 -0.731 -0.270 -0.041 0.040 -0.046 -0.042 -0.087 + 8.065 0.490 -0.467 0.231 -0.205 -0.233 -0.672 -0.302 -0.159 0.054 -0.121 -0.171 -0.106 + 8.076 0.239 -0.255 0.694 -0.304 -0.379 -0.689 -0.237 -0.037 0.037 -0.114 -0.128 -0.083 + 7.655 0.171 -0.280 0.504 -0.439 -0.097 -0.644 -0.223 0.025 0.003 0.044 0.067 -0.083 + 7.026 0.502 -0.118 0.568 -0.167 -0.489 -0.597 -0.276 -0.044 0.032 -0.089 -0.053 -0.126 + 5.818 0.139 -0.310 0.369 -0.034 -0.113 -0.476 -0.103 0.073 0.169 0.005 -0.078 -0.066 + 5.888 0.424 -0.247 0.133 -0.079 -0.350 -0.574 -0.058 0.030 0.170 -0.010 -0.014 -0.096 + 5.472 0.257 -0.326 0.159 -0.106 -0.160 -0.568 -0.189 -0.112 0.150 -0.237 -0.138 0.071 + 6.026 -0.153 -0.434 0.083 0.098 -0.364 -0.442 -0.091 0.044 0.004 -0.127 -0.062 -0.078 + 6.383 -0.190 -0.143 0.013 0.186 -0.600 -0.549 -0.126 -0.025 -0.344 -0.149 0.013 -0.018 + 6.526 -0.281 -0.172 0.140 -0.177 -0.367 -0.331 -0.388 0.056 -0.255 -0.339 0.013 0.000 + 6.500 -0.492 -0.139 0.596 -0.177 -0.220 -0.530 -0.311 -0.014 -0.226 -0.235 0.092 -0.146 + 7.302 -0.294 -0.054 0.630 -0.401 -0.216 -0.690 -0.295 0.011 -0.263 -0.159 0.090 -0.247 + 7.186 -0.520 -0.049 0.737 -0.384 -0.283 -0.607 -0.109 0.115 -0.196 -0.055 0.309 -0.209 + 7.013 -0.358 0.113 0.824 -0.410 -0.306 -0.709 -0.166 -0.065 -0.107 0.042 0.280 -0.257 + 7.080 -0.482 0.021 0.777 -0.452 -0.289 -0.739 -0.177 -0.155 -0.156 0.054 0.276 -0.209 + 7.179 -0.457 -0.084 0.689 -0.527 -0.267 -0.856 -0.236 -0.148 -0.175 0.001 0.046 -0.227 + 7.264 -0.352 -0.079 0.531 -0.676 -0.523 -0.790 -0.075 -0.201 -0.185 -0.102 0.087 -0.338 + 6.363 -0.265 -0.120 0.500 -0.475 -0.522 -0.740 -0.057 -0.050 -0.075 -0.125 0.147 -0.140 + 6.107 0.110 -0.001 0.228 -0.188 -0.261 -0.680 0.018 -0.135 -0.190 -0.279 0.074 -0.224 + 5.970 0.219 -0.039 0.357 -0.075 -0.252 -0.803 -0.081 -0.238 -0.187 -0.236 0.110 -0.228 + 5.788 0.162 -0.026 0.542 -0.019 -0.146 -0.664 -0.129 -0.205 -0.324 -0.274 0.044 -0.163 + 5.096 0.212 -0.071 0.448 -0.199 -0.160 -0.678 -0.172 -0.190 -0.327 -0.183 0.148 -0.237 + 5.014 0.366 -0.081 0.333 -0.092 -0.164 -0.618 -0.197 -0.050 -0.159 -0.280 0.095 -0.078 + 5.226 0.140 -0.070 0.448 -0.110 -0.267 -0.749 -0.138 -0.142 -0.195 -0.177 0.090 -0.168 + 4.878 0.167 0.064 0.500 -0.218 -0.266 -0.562 -0.136 -0.219 -0.187 -0.337 0.111 -0.159 + 4.402 0.131 -0.078 0.358 -0.141 -0.341 -0.560 0.026 -0.187 -0.056 -0.182 -0.056 -0.062 + 4.198 0.055 -0.072 0.375 -0.130 -0.311 -0.497 0.041 -0.167 -0.194 -0.233 0.151 -0.211 + 4.474 -0.033 -0.087 0.428 0.048 0.011 -0.751 -0.112 0.049 0.006 -0.164 0.003 -0.200 + 4.612 -0.141 -0.369 0.368 0.064 -0.007 -0.653 -0.132 -0.053 -0.163 -0.228 0.253 0.050 + 4.301 0.097 -0.220 0.282 -0.180 -0.054 -0.556 0.000 -0.004 -0.080 -0.258 -0.203 -0.147 + 4.559 0.210 -0.307 0.189 -0.276 0.080 -0.536 -0.042 0.129 0.016 -0.229 -0.170 -0.153 + 4.856 0.394 -0.588 0.092 -0.403 -0.191 -0.503 0.119 0.192 0.131 -0.224 -0.242 -0.060 + 5.008 0.387 -0.706 -0.147 -0.296 0.134 -0.641 -0.049 0.195 0.164 -0.125 -0.247 -0.131 + 5.642 0.026 -0.692 0.014 -0.361 0.217 -0.713 0.005 0.300 0.206 -0.299 -0.194 -0.030 + 6.024 -0.036 -0.648 0.009 -0.335 0.236 -0.755 0.006 0.309 0.314 -0.219 -0.126 0.133 + 6.339 0.228 -0.514 0.001 -0.325 0.031 -0.702 -0.014 0.156 0.378 -0.150 0.016 -0.085 + 5.384 0.473 -0.359 0.214 -0.272 -0.185 -0.708 -0.002 0.130 0.302 -0.243 -0.075 0.003 + 4.893 0.690 -0.148 0.300 -0.109 -0.110 -0.777 -0.015 -0.035 0.071 -0.290 -0.143 -0.065 + 4.216 0.716 -0.087 0.051 -0.353 -0.281 -0.677 -0.122 -0.130 0.051 -0.353 -0.154 -0.122 + 3.589 0.306 -0.437 -0.020 -0.200 -0.294 -0.491 -0.032 0.050 0.232 -0.314 -0.179 -0.035 + 3.596 0.276 -0.225 -0.019 -0.061 -0.130 -0.245 -0.112 0.023 0.234 -0.237 -0.115 0.083 + 4.243 -0.330 0.133 0.147 -0.102 0.078 -0.432 -0.169 0.012 0.000 -0.077 -0.133 -0.057 + 3.588 -0.051 0.133 0.093 -0.105 -0.072 -0.239 -0.178 -0.074 -0.064 -0.035 -0.081 -0.166 + 3.216 -0.071 -0.032 0.133 -0.098 -0.080 -0.185 -0.266 -0.217 -0.108 -0.129 -0.070 -0.010 + 3.500 -0.109 -0.073 0.223 -0.087 -0.028 -0.321 -0.210 -0.085 -0.023 -0.061 0.085 -0.021 + 3.976 -0.057 0.134 0.464 -0.117 -0.073 -0.353 -0.154 -0.150 -0.172 -0.201 -0.135 0.073 + 3.950 -0.155 -0.205 0.434 0.069 -0.088 -0.384 -0.130 -0.233 -0.163 -0.204 -0.183 0.037 + 4.062 -0.077 -0.401 0.209 -0.208 -0.380 -0.157 -0.110 -0.207 -0.276 -0.227 -0.078 -0.036 + 4.308 -0.083 -0.548 0.276 -0.237 -0.160 -0.032 -0.116 -0.080 -0.311 -0.214 -0.159 -0.014 + 4.786 -0.215 -0.687 0.260 -0.320 -0.123 0.000 0.171 -0.083 -0.251 -0.145 -0.112 -0.117 + 5.108 -0.181 -0.650 0.471 -0.299 -0.076 -0.036 0.105 -0.135 -0.232 -0.135 -0.313 -0.357 + 5.654 0.022 -0.400 0.487 -0.554 -0.414 -0.175 0.198 -0.022 -0.051 -0.158 -0.300 -0.336 + 6.081 0.094 -0.694 0.272 -0.647 -0.260 -0.323 0.118 -0.103 0.044 0.031 -0.117 -0.273 + 5.418 0.134 -0.653 0.331 -0.648 -0.184 -0.197 0.127 -0.172 0.014 -0.068 -0.159 -0.043 + 5.748 -0.040 -0.547 0.386 -0.847 -0.209 -0.164 0.208 -0.081 -0.013 -0.177 -0.161 -0.204 + 5.745 -0.093 -0.554 0.286 -0.836 -0.313 0.049 0.227 -0.095 0.078 -0.157 -0.105 -0.151 + 5.932 0.014 -0.224 0.296 -0.977 -0.303 -0.032 0.265 -0.162 -0.015 -0.228 -0.097 -0.181 + 5.469 0.076 0.022 0.116 -0.971 -0.096 0.039 0.263 -0.160 -0.131 -0.312 -0.022 -0.206 + 4.988 -0.030 0.114 0.306 -0.766 -0.183 -0.056 0.033 -0.125 0.147 -0.151 -0.052 -0.124 + 4.487 -0.201 -0.159 0.127 -0.765 -0.303 -0.013 -0.100 -0.064 0.144 -0.243 -0.090 -0.072 + 3.816 0.227 -0.340 0.115 -0.479 -0.100 -0.024 0.034 -0.133 0.038 -0.085 -0.093 -0.091 + 3.765 -0.010 -0.499 0.415 -0.254 -0.349 -0.081 0.096 0.003 -0.033 -0.243 -0.106 -0.117 + 4.811 -0.505 -0.537 0.283 0.196 -0.075 0.075 0.128 -0.059 -0.090 -0.183 -0.004 -0.001 + 5.778 -1.184 -0.290 -0.051 -0.033 -0.079 -0.102 0.086 0.091 -0.155 -0.162 0.070 -0.013 + 6.523 -1.523 -0.300 0.073 -0.097 -0.048 -0.144 -0.215 -0.089 -0.106 -0.272 -0.019 0.024 + 6.999 -1.637 -0.250 0.270 -0.172 -0.207 -0.165 -0.023 -0.121 -0.137 -0.169 -0.004 -0.188 + 7.419 -1.510 -0.204 -0.030 -0.226 -0.140 -0.259 0.049 0.164 -0.159 -0.103 -0.016 -0.052 + 7.873 -1.473 -0.176 0.253 0.016 -0.169 -0.160 -0.051 0.046 -0.029 -0.036 0.043 -0.119 + 8.003 -1.322 -0.302 0.184 -0.051 -0.233 -0.185 0.001 -0.041 -0.189 -0.391 0.076 0.029 + 8.055 -0.812 -0.498 0.054 0.011 0.037 -0.306 0.122 -0.096 -0.098 -0.321 0.175 0.054 + 7.355 -0.020 -0.357 -0.026 0.144 -0.037 -0.167 0.018 -0.014 -0.004 -0.260 0.080 -0.016 + 9.279 0.784 0.333 0.009 -0.151 -0.429 -0.569 -0.112 -0.020 0.158 -0.427 0.094 -0.060 + 11.291 0.704 0.079 -0.181 -0.277 -0.345 -0.782 -0.151 -0.086 0.285 -0.392 0.133 -0.083 + 12.124 0.657 -0.173 -0.366 -0.306 -0.273 -1.054 0.034 -0.162 0.369 -0.403 0.158 -0.189 + 10.834 1.000 -0.257 -0.041 -0.308 -0.454 -1.159 0.145 0.174 0.250 -0.275 -0.130 -0.184 + 10.935 0.859 -0.304 0.034 -0.338 -0.408 -0.984 0.157 -0.039 0.331 -0.311 -0.136 -0.095 + 10.908 0.827 -0.354 -0.200 -0.252 -0.334 -0.890 0.069 0.015 0.374 -0.217 -0.139 -0.291 + 11.154 0.776 -0.406 -0.331 -0.243 -0.295 -0.863 0.109 -0.008 0.403 -0.190 -0.154 -0.264 + 11.658 0.744 -0.497 -0.393 -0.335 -0.242 -0.807 0.145 -0.045 0.439 -0.223 -0.202 -0.226 + 12.190 0.659 -0.546 -0.432 -0.326 -0.284 -0.694 0.123 -0.157 0.568 -0.339 -0.156 -0.265 + 12.435 0.518 -0.544 -0.430 -0.354 -0.240 -0.601 -0.011 -0.076 0.535 -0.298 -0.234 -0.244 + 12.406 0.583 -0.643 -0.388 -0.369 -0.294 -0.467 -0.060 -0.131 0.571 -0.298 -0.232 -0.264 + 12.076 0.609 -0.592 -0.459 -0.341 -0.328 -0.404 -0.069 -0.151 0.592 -0.258 -0.231 -0.323 + 11.958 0.571 -0.522 -0.496 -0.345 -0.331 -0.371 -0.092 -0.162 0.566 -0.202 -0.212 -0.342 + 12.006 0.626 -0.529 -0.480 -0.401 -0.303 -0.324 -0.171 -0.136 0.538 -0.146 -0.227 -0.340 + 11.934 0.766 -0.617 -0.383 -0.464 -0.206 -0.408 -0.103 -0.220 0.525 -0.133 -0.180 -0.384 + 11.927 0.738 -0.532 -0.336 -0.511 -0.213 -0.321 -0.130 -0.258 0.513 -0.138 -0.118 -0.386 + 11.636 0.845 -0.545 -0.328 -0.572 -0.268 -0.105 -0.153 -0.313 0.452 -0.117 0.011 -0.392 + 11.351 0.791 -0.385 -0.425 -0.624 -0.302 0.061 -0.238 -0.279 0.366 -0.080 0.041 -0.286 + 11.093 0.742 -0.313 -0.480 -0.613 -0.441 0.224 -0.188 -0.243 0.148 -0.090 0.125 -0.121 + 10.210 0.824 -0.094 -0.400 -0.649 -0.629 0.461 -0.007 0.069 -0.318 -0.155 0.126 0.019 + 8.990 0.529 0.454 -0.345 -0.431 -0.502 0.393 -0.093 0.154 -0.221 -0.366 0.036 -0.034 + 7.876 -0.294 0.071 -0.013 -0.135 -0.411 0.153 -0.120 0.020 0.101 -0.268 0.027 -0.155 + 7.286 -0.329 0.018 -0.156 -0.120 -0.063 0.138 0.035 0.103 0.014 -0.302 0.004 -0.116 + 7.239 -0.291 0.102 -0.148 -0.106 0.093 -0.004 0.178 0.118 0.147 -0.232 0.027 -0.081 + 7.239 -0.361 0.334 0.077 0.051 -0.114 -0.166 -0.024 -0.107 0.143 -0.125 0.142 0.078 + 7.602 -0.617 0.446 0.086 -0.035 -0.262 -0.014 -0.046 -0.131 0.106 -0.056 0.141 -0.146 + 7.652 -0.707 0.399 0.003 0.162 -0.219 0.193 -0.034 -0.220 0.028 -0.167 -0.121 -0.203 + 7.569 -0.554 0.298 -0.001 0.043 -0.253 0.087 0.006 -0.156 0.172 -0.205 -0.111 -0.086 + 7.299 -0.679 0.324 0.169 -0.071 -0.149 0.027 -0.073 -0.141 0.171 -0.177 0.125 0.011 + 7.719 -0.365 0.419 0.017 -0.089 -0.216 0.001 0.038 -0.137 0.130 -0.249 -0.178 -0.067 + 7.997 -0.028 0.173 -0.320 -0.239 -0.152 0.104 0.027 0.063 0.211 -0.184 -0.182 -0.104 + 7.943 0.167 -0.020 -0.498 -0.211 -0.212 0.104 -0.092 -0.006 0.238 -0.010 -0.169 -0.107 + 8.011 0.479 -0.488 -0.733 -0.435 -0.047 -0.060 -0.123 0.012 0.319 -0.069 -0.151 -0.068 + 8.137 0.659 -0.514 -0.611 -0.387 -0.178 -0.226 -0.136 0.146 0.414 -0.073 -0.124 -0.152 + 7.969 0.675 -0.534 -0.722 -0.423 -0.205 -0.212 -0.205 0.170 0.315 -0.205 -0.130 -0.113 + 7.717 0.686 -0.443 -0.628 -0.472 -0.099 -0.131 -0.082 0.216 0.340 -0.272 0.066 -0.019 + 7.528 0.675 -0.503 -0.490 -0.481 -0.139 -0.095 -0.149 0.138 0.340 -0.194 0.024 -0.005 + 7.578 0.672 -0.413 -0.410 -0.462 -0.123 -0.237 -0.232 0.079 0.406 -0.133 -0.003 -0.001 + 7.444 0.710 -0.424 -0.377 -0.482 -0.269 -0.416 -0.187 0.054 0.465 -0.142 -0.211 -0.056 + 7.070 0.569 -0.356 -0.420 -0.516 -0.191 -0.269 -0.218 0.175 0.413 -0.170 -0.132 -0.080 + 6.607 0.358 -0.411 -0.465 -0.416 -0.172 -0.349 -0.298 0.189 0.362 -0.161 -0.305 -0.076 + 6.221 0.349 -0.384 -0.506 -0.341 -0.038 0.014 -0.120 0.120 0.315 -0.197 -0.199 -0.089 + 6.330 0.450 -0.389 -0.521 -0.328 -0.088 -0.124 -0.238 0.102 0.437 -0.083 -0.156 0.042 + 6.493 0.553 -0.294 -0.540 -0.295 -0.060 -0.085 -0.155 0.040 0.291 0.031 -0.145 -0.085 + 6.162 0.282 -0.388 -0.521 -0.215 -0.161 -0.112 -0.143 0.022 0.285 0.003 0.091 -0.135 + 6.167 0.400 -0.266 -0.392 -0.119 -0.051 -0.105 -0.225 -0.092 0.153 -0.116 -0.004 -0.250 + 6.307 0.453 -0.173 -0.272 -0.254 -0.144 -0.174 -0.193 -0.168 0.221 -0.007 -0.085 -0.179 + 6.799 0.156 0.060 -0.191 -0.263 -0.175 -0.323 -0.235 -0.284 0.315 -0.169 -0.047 -0.059 + 7.391 -0.657 0.249 0.341 -0.433 -0.160 -0.403 -0.403 -0.430 0.383 -0.313 0.084 0.021 + 7.760 -0.570 0.277 0.215 -0.842 -0.338 -0.464 -0.469 -0.386 0.480 -0.196 0.265 0.131 + 8.196 -0.541 0.437 0.237 -0.790 -0.246 -0.373 -0.487 -0.592 0.315 -0.216 0.325 0.173 + 8.656 -0.416 0.361 0.377 -0.885 -0.329 -0.409 -0.433 -0.530 0.336 -0.180 0.221 -0.013 + 9.123 -0.552 0.373 0.531 -0.861 -0.296 -0.484 -0.410 -0.560 0.423 -0.168 0.226 0.064 + 9.108 -0.659 0.406 0.376 -0.827 -0.457 -0.536 -0.315 -0.510 0.456 -0.154 0.208 0.074 + 9.149 -0.450 0.530 0.294 -0.817 -0.508 -0.499 -0.337 -0.553 0.391 -0.259 0.120 -0.029 diff -Nru sphinxbase-0.8/test/regression/chan3.f0 sphinxbase-0.8+5prealpha/test/regression/chan3.f0 --- sphinxbase-0.8/test/regression/chan3.f0 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/chan3.f0 2015-03-24 17:32:31.000000000 +0000 @@ -1,31 +1,31 @@ -0.000 0.52 3675.00 -0.010 0.52 3675.00 -0.020 0.52 3675.00 -0.030 0.52 3675.00 +0.000 0.50 3675.00 +0.010 0.50 3675.00 +0.020 0.50 3675.00 +0.030 0.50 3675.00 0.040 0.47 3675.00 0.050 0.20 3675.00 0.060 0.45 424.04 -0.070 0.38 424.04 +0.070 0.37 424.04 0.080 0.00 424.04 -0.090 0.18 2205.00 +0.090 0.17 2205.00 0.100 0.00 183.75 0.110 0.00 183.75 -0.120 0.53 193.42 +0.120 0.53 196.88 0.130 0.16 190.09 -0.140 0.17 196.88 +0.140 0.17 193.42 0.150 0.09 86.13 0.160 0.14 108.09 0.170 0.54 100.23 0.180 0.30 121.15 -0.190 0.00 84.81 +0.190 0.00 84.16 0.200 0.44 103.04 0.210 0.08 102.08 0.220 0.53 121.15 -0.229 0.00 102.08 +0.229 0.00 103.04 0.239 0.00 136.11 0.249 0.52 104.01 0.259 0.61 112.50 -0.269 0.78 110.25 +0.269 0.77 110.25 0.279 0.85 109.16 0.289 0.87 108.09 0.299 0.84 106.01 @@ -63,7 +63,7 @@ 0.619 0.95 90.37 0.629 0.95 90.37 0.639 0.60 91.12 -0.649 0.64 92.65 +0.649 0.63 92.65 0.659 0.82 91.88 0.668 0.89 91.88 0.678 0.91 94.23 @@ -77,7 +77,7 @@ 0.758 0.82 96.71 0.768 0.82 95.87 0.778 0.85 95.04 -0.788 0.90 94.23 +0.788 0.92 93.43 0.798 0.91 91.88 0.808 0.91 89.63 0.818 0.91 86.81 @@ -89,20 +89,20 @@ 0.878 0.87 87.50 0.888 0.18 84.81 0.898 0.56 80.47 -0.908 0.62 5512.50 -0.918 0.62 5512.50 -0.928 0.64 5512.50 -0.938 0.67 5512.50 -0.948 0.67 5512.50 -0.958 0.67 5512.50 -0.968 0.67 5512.50 -0.978 0.31 5512.50 -0.988 0.01 11025.00 +0.908 0.38 80.47 +0.918 0.37 86.13 +0.928 0.58 5512.50 +0.938 0.58 5512.50 +0.948 0.58 5512.50 +0.958 0.58 5512.50 +0.968 0.58 5512.50 +0.978 0.27 5512.50 +0.988 0.00 11025.00 0.998 0.26 80.47 1.008 0.00 80.47 -1.018 0.13 580.26 +1.018 0.11 580.26 1.028 0.00 82.89 -1.038 0.48 501.14 +1.038 0.40 525.00 1.048 0.32 282.69 1.058 0.54 88.91 1.068 0.55 87.50 @@ -111,14 +111,14 @@ 1.098 0.95 85.47 1.107 0.68 81.67 1.117 0.24 95.87 -1.127 0.06 96.71 +1.127 0.05 96.71 1.137 0.00 689.06 -1.147 0.03 3675.00 -1.157 0.50 3675.00 -1.167 0.39 3675.00 -1.177 0.51 3675.00 -1.187 0.51 3675.00 -1.197 0.13 99.32 +1.147 0.00 3675.00 +1.157 0.42 2756.25 +1.167 0.27 3675.00 +1.177 0.47 3675.00 +1.187 0.47 3675.00 +1.197 0.12 99.32 1.207 0.00 92.65 1.217 0.68 80.47 1.227 0.73 90.37 @@ -126,17 +126,17 @@ 1.247 0.67 88.91 1.257 0.83 86.81 1.267 0.79 84.16 -1.277 0.61 85.47 +1.277 0.60 85.47 1.287 0.47 82.89 1.297 0.95 80.47 1.307 0.95 80.47 -1.317 0.38 88.20 +1.317 0.37 88.20 1.327 0.63 84.81 -1.337 0.29 94.23 +1.337 0.28 94.23 1.347 0.35 80.47 1.357 0.00 282.69 1.367 0.45 103.04 -1.377 0.13 126.72 +1.377 0.13 125.28 1.387 0.00 128.20 1.397 0.00 93.43 1.407 0.44 80.47 @@ -151,45 +151,45 @@ 1.497 0.73 735.00 1.507 0.73 735.00 1.517 0.71 689.06 -1.527 0.68 689.06 -1.537 0.68 648.53 -1.546 0.70 648.53 -1.556 0.75 648.53 +1.527 0.67 689.06 +1.537 0.68 689.06 +1.546 0.69 648.53 +1.556 0.74 648.53 1.566 0.78 612.50 -1.576 0.68 580.26 +1.576 0.81 551.25 1.586 0.81 551.25 -1.596 0.56 501.14 -1.606 0.24 525.00 -1.616 0.43 212.02 +1.596 0.59 479.35 +1.606 0.22 501.14 +1.616 0.43 216.18 1.626 0.34 177.82 1.636 0.66 175.00 1.646 0.52 177.82 1.656 0.00 183.75 -1.666 0.12 155.28 +1.666 0.12 157.50 1.676 0.00 85.47 1.686 0.04 82.89 1.696 0.12 122.50 1.706 0.27 157.50 1.716 0.51 145.07 -1.726 0.51 82.28 -1.736 0.43 80.47 +1.726 0.50 82.28 +1.736 0.42 80.47 1.746 0.62 94.23 1.756 0.49 99.32 1.766 0.00 117.29 1.776 0.00 123.88 -1.786 0.39 245.00 -1.796 0.00 83.52 +1.786 0.17 239.67 +1.796 0.00 84.16 1.806 0.00 93.43 -1.816 0.47 80.47 +1.816 0.46 80.47 1.826 0.40 100.23 -1.836 0.03 177.82 -1.846 0.00 367.50 -1.856 0.52 408.33 +1.836 0.02 177.82 +1.846 0.00 380.17 +1.856 0.51 408.33 1.866 0.83 424.04 -1.876 0.46 441.00 +1.876 0.45 441.00 1.886 0.33 479.35 1.896 0.60 479.35 -1.906 0.45 424.04 +1.906 0.44 424.04 1.916 0.00 424.04 1.926 0.28 137.81 1.936 0.00 157.50 @@ -214,47 +214,47 @@ 2.125 0.39 82.89 2.135 0.39 82.89 2.145 0.24 91.88 -2.155 0.08 80.47 +2.155 0.07 80.47 2.165 0.55 86.81 2.175 0.61 87.50 -2.185 0.19 93.43 +2.185 0.19 92.65 2.195 0.36 99.32 -2.205 0.50 169.62 +2.205 0.49 169.62 2.215 0.45 186.86 -2.225 0.00 169.62 +2.225 0.00 172.27 2.235 0.00 126.72 2.245 0.59 137.81 -2.255 0.22 151.03 -2.265 0.00 169.62 +2.255 0.22 148.99 +2.265 0.00 172.27 2.275 0.00 177.82 2.285 0.10 80.47 -2.295 0.35 86.81 +2.295 0.35 87.50 2.305 0.52 86.13 2.315 0.05 83.52 2.325 0.00 82.28 -2.335 0.02 256.40 -2.345 0.47 250.57 +2.335 0.01 256.40 +2.345 0.46 250.57 2.355 0.00 216.18 2.365 0.02 268.90 2.375 0.17 114.84 2.385 0.32 114.84 -2.395 0.22 97.57 +2.395 0.21 97.57 2.405 0.31 83.52 2.415 0.54 84.16 -2.424 0.42 80.47 +2.424 0.41 80.47 2.434 0.16 92.65 2.444 0.00 172.27 2.454 0.00 159.78 -2.464 0.00 190.09 +2.464 0.00 186.86 2.474 0.17 87.50 -2.484 0.00 85.47 +2.484 0.00 84.81 2.494 0.54 97.57 2.504 0.17 151.03 2.514 0.70 143.18 2.524 0.70 143.18 2.534 0.56 132.83 2.544 0.00 169.62 -2.554 0.00 113.66 +2.554 0.00 116.05 2.564 0.00 80.47 2.574 0.00 80.47 2.584 0.00 100.23 @@ -272,16 +272,16 @@ 2.704 0.00 183.75 2.714 0.41 190.09 2.724 0.41 84.16 -2.734 0.42 82.89 +2.734 0.42 83.52 2.744 0.22 108.09 2.754 0.12 119.84 2.764 0.69 122.50 2.774 0.12 119.84 -2.784 0.05 151.03 -2.794 0.39 113.66 -2.804 0.64 122.50 +2.784 0.14 153.12 +2.794 0.39 114.84 +2.804 0.63 122.50 2.814 0.00 137.81 -2.824 0.34 107.04 +2.824 0.33 107.04 2.834 0.49 1837.50 2.844 0.15 1837.50 2.854 0.00 1102.50 @@ -302,27 +302,27 @@ 3.003 0.98 101.15 3.013 0.98 101.15 3.023 0.61 100.23 -3.033 0.19 99.32 -3.043 0.27 99.32 +3.033 0.18 99.32 +3.043 0.26 99.32 3.053 0.63 98.44 3.063 0.50 96.71 3.073 0.46 92.65 3.083 0.00 612.50 -3.093 0.00 848.08 +3.093 0.00 918.75 3.103 0.00 787.50 -3.113 0.00 2756.25 +3.113 0.00 3675.00 3.123 0.00 3675.00 -3.133 0.56 2756.25 -3.143 0.56 2756.25 -3.153 0.28 2756.25 -3.163 0.26 2756.25 -3.173 0.00 103.04 +3.133 0.51 2756.25 +3.143 0.51 2756.25 +3.153 0.24 2756.25 +3.163 0.08 2756.25 +3.173 0.00 102.08 3.183 0.38 108.09 3.193 0.72 104.01 -3.203 0.54 104.01 -3.213 0.18 151.03 +3.203 0.55 103.04 +3.213 0.20 153.12 3.223 0.84 122.50 -3.233 0.58 104.01 +3.233 0.60 103.04 3.243 0.29 121.15 3.253 0.55 80.47 3.263 0.70 80.47 @@ -331,11 +331,11 @@ 3.293 0.00 80.47 3.302 0.00 2205.00 3.312 0.00 2205.00 -3.322 0.27 918.75 -3.332 0.71 918.75 -3.342 0.71 918.75 -3.352 0.71 918.75 -3.362 0.71 918.75 +3.322 0.23 918.75 +3.332 0.70 918.75 +3.342 0.70 918.75 +3.352 0.70 918.75 +3.362 0.70 918.75 3.372 0.27 123.88 3.382 0.29 126.72 3.392 0.72 132.83 @@ -352,8 +352,8 @@ 3.502 0.89 121.15 3.512 0.92 118.55 3.522 0.71 112.50 -3.532 0.70 101.15 -3.542 0.51 107.04 +3.532 0.69 101.15 +3.542 0.51 108.09 3.552 0.59 86.81 3.562 0.87 103.04 3.572 0.77 117.29 @@ -377,7 +377,7 @@ 3.751 0.80 114.84 3.761 0.90 111.36 3.771 0.95 108.09 -3.781 0.95 106.01 +3.781 0.94 106.01 3.791 0.95 105.00 3.801 0.95 102.08 3.811 0.91 102.08 @@ -391,8 +391,8 @@ 3.891 0.93 95.04 3.901 0.92 95.04 3.911 0.33 97.57 -3.921 0.35 118.55 -3.931 0.42 93.43 +3.921 0.34 118.55 +3.931 0.41 92.65 3.941 0.71 95.04 3.951 0.77 96.71 3.961 0.84 98.44 @@ -409,7 +409,7 @@ 4.071 0.53 90.37 4.081 0.88 91.88 4.091 0.93 94.23 -4.101 0.26 95.04 +4.101 0.25 95.04 4.111 0.72 95.87 4.121 0.61 93.43 4.131 0.93 92.65 @@ -443,52 +443,52 @@ 4.410 0.82 97.57 4.420 0.67 91.12 4.430 0.51 82.28 -4.440 0.40 99.32 -4.450 0.35 441.00 +4.440 0.40 98.44 +4.450 0.34 441.00 4.460 0.55 102.08 4.470 0.00 89.63 4.480 0.34 86.13 -4.490 0.27 501.14 -4.500 0.00 501.14 +4.490 0.26 501.14 +4.500 0.00 551.25 4.510 0.00 132.83 -4.520 0.05 11025.00 -4.530 0.50 11025.00 -4.540 0.50 11025.00 -4.550 0.50 11025.00 -4.560 0.50 11025.00 -4.570 0.04 91.12 +4.520 0.18 787.50 +4.530 0.00 139.56 +4.540 0.00 95.04 +4.550 0.42 112.50 +4.560 0.00 137.81 +4.570 0.03 91.12 4.580 0.00 91.12 -4.590 0.58 108.09 +4.590 0.57 108.09 4.600 0.00 134.45 4.610 0.00 91.12 -4.620 0.40 11025.00 -4.629 0.06 11025.00 +4.620 0.00 119.84 +4.629 0.00 80.47 4.639 0.00 11025.00 -4.649 0.21 11025.00 -4.659 0.00 91.88 -4.669 0.34 11025.00 -4.679 0.05 11025.00 -4.689 0.26 80.47 +4.649 0.00 11025.00 +4.659 0.00 92.65 +4.669 0.00 80.47 +4.679 0.26 80.47 +4.689 0.60 80.47 4.699 0.00 80.47 4.709 0.60 80.47 4.719 0.46 98.44 4.729 0.56 95.04 -4.739 0.66 94.23 -4.749 0.00 95.04 -4.759 0.61 85.47 +4.739 0.65 94.23 +4.749 0.00 94.23 +4.759 0.61 84.81 4.769 0.03 80.47 4.779 0.00 80.47 -4.789 0.15 11025.00 +4.789 0.00 131.25 4.799 0.00 129.71 -4.809 0.09 98.44 -4.819 0.68 104.01 +4.809 0.08 98.44 +4.819 0.67 104.01 4.829 0.60 107.04 -4.839 0.23 118.55 -4.849 0.00 92.65 -4.859 0.60 82.89 +4.839 0.22 118.55 +4.849 0.06 80.47 +4.859 0.60 82.28 4.869 0.00 80.47 4.879 0.00 80.47 -4.889 0.52 100.23 +4.889 0.52 99.32 4.899 0.00 90.37 4.909 0.17 102.08 4.919 0.00 99.32 @@ -501,15 +501,15 @@ 4.989 0.04 80.47 4.999 0.60 80.47 5.009 0.00 157.50 -5.019 0.28 162.13 -5.029 0.52 136.11 -5.039 0.00 114.84 -5.049 0.00 147.00 +5.019 0.27 164.55 +5.029 0.51 134.45 +5.039 0.00 113.66 +5.049 0.00 167.05 5.059 0.00 90.37 5.068 0.04 94.23 5.078 0.66 96.71 5.088 0.71 96.71 -5.098 0.86 100.23 +5.098 0.85 100.23 5.108 0.89 97.57 5.118 0.85 94.23 5.128 0.92 95.04 @@ -517,21 +517,21 @@ 5.148 0.92 91.12 5.158 0.78 88.91 5.168 0.59 82.28 -5.178 0.68 80.47 -5.188 0.68 80.47 -5.198 0.68 80.47 -5.208 0.40 100.23 +5.178 0.67 80.47 +5.188 0.67 80.47 +5.198 0.67 80.47 +5.208 0.39 100.23 5.218 0.00 91.88 -5.228 0.46 167.05 +5.228 0.45 167.05 5.238 0.00 96.71 5.248 0.00 100.23 -5.258 0.82 80.47 -5.268 0.82 80.47 +5.258 0.81 80.47 +5.268 0.81 80.47 5.278 0.00 80.47 5.288 0.36 80.47 -5.298 0.00 95.87 -5.308 0.15 11025.00 -5.318 0.40 11025.00 +5.298 0.00 96.71 +5.308 0.00 80.47 +5.318 0.00 689.06 5.328 0.00 108.09 5.338 0.00 99.32 5.348 0.83 90.37 @@ -550,11 +550,11 @@ 5.478 0.67 85.47 5.488 0.52 80.47 5.498 0.67 85.47 -5.507 0.56 5512.50 -5.517 0.56 5512.50 -5.527 0.56 5512.50 +5.507 0.37 91.12 +5.517 0.20 81.07 +5.527 0.45 5512.50 5.537 0.00 551.25 -5.547 0.05 501.14 +5.547 0.02 501.14 5.557 0.57 525.00 5.567 0.28 97.57 5.577 0.42 92.65 @@ -580,25 +580,25 @@ 5.777 0.89 81.67 5.787 0.65 90.37 5.797 0.43 88.91 -5.807 0.52 551.25 -5.817 0.68 459.38 +5.807 0.51 551.25 +5.817 0.67 459.38 5.827 0.24 551.25 5.837 0.00 106.01 5.847 0.00 128.20 5.857 0.69 125.28 -5.867 0.65 106.01 +5.867 0.64 106.01 5.877 0.19 106.01 5.887 0.40 90.37 5.897 0.59 612.50 5.907 0.00 612.50 -5.917 0.02 11025.00 -5.927 0.62 5512.50 -5.937 0.62 5512.50 -5.946 0.62 5512.50 -5.956 0.62 5512.50 -5.966 0.58 5512.50 -5.976 0.58 5512.50 -5.986 0.58 5512.50 +5.917 0.00 689.06 +5.927 0.54 5512.50 +5.937 0.54 5512.50 +5.946 0.30 5512.50 +5.956 0.26 5512.50 +5.966 0.41 80.47 +5.976 0.00 689.06 +5.986 0.25 689.06 5.996 0.00 122.50 6.006 0.08 98.44 6.016 0.64 100.23 @@ -608,8 +608,8 @@ 6.056 0.87 80.47 6.066 0.61 93.43 6.076 0.51 90.37 -6.086 0.64 648.53 -6.096 0.64 648.53 +6.086 0.62 648.53 +6.096 0.59 89.63 6.106 0.56 89.63 6.116 0.63 89.63 6.126 0.95 80.47 @@ -622,104 +622,104 @@ 6.196 0.63 81.67 6.206 0.53 81.07 6.216 0.63 81.67 -6.226 0.50 82.89 +6.226 0.67 82.28 6.236 0.60 86.13 6.246 0.67 82.28 -6.256 0.60 80.47 +6.256 0.59 80.47 6.266 0.35 81.07 6.276 0.32 81.67 6.286 0.18 91.12 6.296 0.33 1575.00 6.306 0.05 95.87 6.316 0.00 290.13 -6.326 0.05 306.25 +6.326 0.03 334.09 6.336 0.42 334.09 -6.346 0.25 324.26 -6.356 0.08 408.33 -6.366 0.40 1837.50 -6.376 0.30 1837.50 -6.385 0.53 1837.50 -6.395 0.53 1837.50 -6.405 0.53 1837.50 -6.415 0.38 918.75 -6.425 0.39 918.75 -6.435 0.56 918.75 -6.445 0.28 918.75 -6.455 0.11 848.08 -6.465 0.07 1837.50 -6.475 0.37 580.26 -6.485 0.04 580.26 -6.495 0.22 551.25 +6.346 0.24 324.26 +6.356 0.06 408.33 +6.366 0.36 1837.50 +6.376 0.27 1837.50 +6.385 0.48 1837.50 +6.395 0.48 1837.50 +6.405 0.48 1837.50 +6.415 0.37 918.75 +6.425 0.38 918.75 +6.435 0.53 918.75 +6.445 0.26 918.75 +6.455 0.08 848.08 +6.465 0.13 551.25 +6.475 0.35 580.26 +6.485 0.03 580.26 +6.495 0.21 551.25 6.505 0.17 117.29 -6.515 0.17 612.50 -6.525 0.14 580.26 -6.535 0.45 580.26 -6.545 0.49 1837.50 -6.555 0.10 1837.50 -6.565 0.49 1837.50 -6.575 0.39 2205.00 +6.515 0.15 612.50 +6.525 0.13 580.26 +6.535 0.44 580.26 +6.545 0.44 1837.50 +6.555 0.08 1837.50 +6.565 0.44 1837.50 +6.575 0.44 1837.50 6.585 0.00 132.83 6.595 0.27 104.01 6.605 0.58 84.16 6.615 0.71 84.16 6.625 0.68 83.52 6.635 0.62 83.52 -6.645 0.45 96.71 -6.655 0.08 250.57 -6.665 0.00 220.50 -6.675 0.00 525.00 -6.685 0.27 1837.50 +6.645 0.44 96.71 +6.655 0.06 250.57 +6.665 0.00 216.18 +6.675 0.00 479.35 +6.685 0.00 1837.50 6.695 0.00 81.67 6.705 0.22 80.47 6.715 0.69 94.23 6.725 0.43 116.05 6.735 0.74 111.36 -6.745 0.42 94.23 +6.745 0.41 94.23 6.755 0.00 104.01 -6.765 0.49 11025.00 -6.775 0.09 11025.00 -6.785 0.49 11025.00 +6.765 0.46 80.47 +6.775 0.46 80.47 +6.785 0.00 80.47 6.795 0.34 137.81 -6.805 0.00 145.07 -6.815 0.00 117.29 +6.805 0.00 139.56 +6.815 0.00 116.05 6.824 0.72 119.84 6.834 0.19 126.72 6.844 0.00 101.15 -6.854 0.27 95.04 +6.854 0.27 94.23 6.864 0.00 100.23 6.874 0.47 99.32 6.884 0.48 103.04 6.894 0.00 86.81 6.904 0.27 128.20 -6.914 0.00 145.07 -6.924 0.00 145.07 +6.914 0.00 147.00 +6.924 0.00 147.00 6.934 0.00 111.36 6.944 0.13 121.15 6.954 0.18 106.01 6.964 0.39 143.18 6.974 0.51 114.84 6.984 0.76 126.72 -6.994 0.47 107.04 +6.994 0.47 108.09 7.004 0.00 107.04 7.014 0.29 95.87 7.024 0.00 100.23 -7.034 0.27 117.29 +7.034 0.27 119.84 7.044 0.04 126.72 7.054 0.00 126.72 -7.064 0.49 148.99 +7.064 0.48 148.99 7.074 0.00 126.72 7.084 0.00 126.72 7.094 0.00 129.71 -7.104 0.00 111.36 +7.104 0.00 110.25 7.114 0.00 81.67 7.124 0.52 96.71 -7.134 0.01 119.84 -7.144 0.44 100.23 +7.134 0.00 119.84 +7.144 0.43 100.23 7.154 0.19 103.04 -7.164 0.03 86.13 +7.164 0.02 86.13 7.174 0.00 95.87 7.184 0.19 80.47 -7.194 0.24 1837.50 +7.194 0.23 1837.50 7.204 0.27 1837.50 7.214 0.68 1837.50 7.224 0.72 1837.50 @@ -734,16 +734,16 @@ 7.313 0.72 1837.50 7.323 0.72 1837.50 7.333 0.72 1837.50 -7.343 0.58 1837.50 +7.343 0.57 1837.50 7.353 0.11 1837.50 7.363 0.00 84.16 -7.373 0.52 95.04 +7.373 0.52 94.23 7.383 0.72 81.67 7.393 0.06 81.07 -7.403 0.00 97.57 +7.403 0.00 102.08 7.413 0.59 1837.50 7.423 0.59 1837.50 -7.433 0.27 1837.50 +7.433 0.26 1837.50 7.443 0.00 1837.50 7.453 0.00 106.01 7.463 0.53 102.08 @@ -754,13 +754,13 @@ 7.513 0.00 256.40 7.523 0.00 107.04 7.533 0.00 80.47 -7.543 0.59 91.12 +7.543 0.58 91.12 7.553 0.47 94.23 7.563 0.00 107.04 7.573 0.48 113.66 7.583 0.28 134.45 7.593 0.45 134.45 -7.603 0.56 108.09 +7.603 0.55 108.09 7.613 0.36 121.15 7.623 0.38 119.84 7.633 0.51 105.00 @@ -769,69 +769,69 @@ 7.663 0.11 80.47 7.673 0.00 183.75 7.683 0.69 216.18 -7.693 0.58 216.18 +7.693 0.57 216.18 7.702 0.69 216.18 7.712 0.88 225.00 7.722 0.91 220.50 7.732 0.91 220.50 -7.742 0.06 220.50 +7.742 0.04 220.50 7.752 0.00 220.50 -7.762 0.71 216.18 +7.762 0.43 220.50 7.772 0.71 216.18 -7.782 0.07 220.50 +7.782 0.06 220.50 7.792 0.00 220.50 7.802 0.00 225.00 7.812 0.00 551.25 7.822 0.66 250.57 7.832 0.77 239.67 -7.842 0.92 225.00 +7.842 0.91 225.00 7.852 0.90 459.38 7.862 0.93 459.38 7.872 0.93 459.38 7.882 0.93 459.38 7.892 0.93 459.38 -7.902 0.00 441.00 -7.912 0.00 424.04 -7.922 0.04 196.88 +7.902 0.00 459.38 +7.912 0.00 408.33 +7.922 0.02 196.88 7.932 0.19 147.00 -7.942 0.34 129.71 +7.942 0.35 128.20 7.952 0.00 132.83 -7.962 0.47 153.12 -7.972 0.29 190.09 -7.982 0.38 141.35 +7.962 0.47 151.03 +7.972 0.28 186.86 +7.982 0.37 141.35 7.992 0.00 91.88 -8.002 0.47 220.50 -8.012 0.64 225.00 -8.022 0.78 216.18 -8.032 0.78 216.18 -8.042 0.19 193.42 -8.052 0.37 121.15 +8.002 0.39 111.36 +8.012 0.78 89.63 +8.022 0.70 107.04 +8.032 0.48 106.01 +8.042 0.19 183.75 +8.052 0.37 119.84 8.062 0.60 128.20 8.072 0.52 117.29 -8.082 0.33 122.50 -8.092 0.40 204.17 +8.082 0.33 123.88 +8.092 0.39 204.17 8.102 0.00 229.69 8.112 0.50 501.14 8.122 0.84 501.14 8.132 0.92 525.00 8.141 0.92 525.00 8.151 0.86 525.00 -8.161 0.74 551.25 +8.161 0.73 551.25 8.171 0.91 268.90 8.181 0.29 282.69 8.191 0.36 268.90 -8.201 0.45 157.50 +8.201 0.44 159.78 8.211 0.62 169.62 -8.221 0.00 145.07 -8.231 0.31 145.07 +8.221 0.00 143.18 +8.231 0.32 143.18 8.241 0.00 125.28 8.251 0.27 80.47 8.261 0.42 132.83 8.271 0.18 122.50 8.281 0.66 107.04 -8.291 0.35 125.28 +8.291 0.34 125.28 8.301 0.30 111.36 -8.311 0.00 125.28 +8.311 0.00 126.72 8.321 0.67 131.25 8.331 0.93 106.01 8.341 0.93 106.01 @@ -847,7 +847,7 @@ 8.441 0.81 98.44 8.451 0.69 97.57 8.461 0.60 97.57 -8.471 0.63 89.63 +8.471 0.62 89.63 8.481 0.86 92.65 8.491 0.72 91.12 8.501 0.30 99.32 @@ -871,36 +871,36 @@ 8.680 0.93 86.13 8.690 0.70 86.81 8.700 0.56 97.57 -8.710 0.46 92.65 -8.720 0.48 101.15 -8.730 0.01 11025.00 -8.740 0.23 11025.00 -8.750 0.65 5512.50 -8.760 0.68 5512.50 -8.770 0.68 5512.50 -8.780 0.68 5512.50 -8.790 0.45 5512.50 +8.710 0.46 91.88 +8.720 0.48 100.23 +8.730 0.30 84.81 +8.740 0.00 11025.00 +8.750 0.56 5512.50 +8.760 0.56 5512.50 +8.770 0.56 5512.50 +8.780 0.56 5512.50 +8.790 0.42 5512.50 8.800 0.13 5512.50 8.810 0.00 2756.25 -8.820 0.49 2205.00 -8.830 0.49 2205.00 +8.820 0.47 2205.00 +8.830 0.47 2205.00 8.840 0.00 118.55 -8.850 0.29 109.16 +8.850 0.28 109.16 8.860 0.68 100.23 8.870 0.57 94.23 -8.880 0.53 92.65 +8.880 0.52 92.65 8.890 0.53 91.12 -8.900 0.64 88.91 +8.900 0.63 88.91 8.910 0.40 93.43 8.920 0.40 87.50 8.930 0.72 86.13 8.940 0.83 86.13 8.950 0.84 84.81 8.960 0.77 81.07 -8.970 0.58 92.65 -8.980 0.50 91.12 +8.970 0.57 92.65 +8.980 0.50 90.37 8.990 0.29 89.63 -9.000 0.51 117.29 +9.000 0.51 116.05 9.010 0.00 128.20 9.020 0.00 113.66 9.029 0.00 111.36 @@ -908,34 +908,34 @@ 9.049 0.72 89.63 9.059 0.60 91.88 9.069 0.82 83.52 -9.079 0.30 98.44 +9.079 0.30 97.57 9.089 0.22 104.01 9.099 0.00 200.45 9.109 0.00 119.84 -9.119 0.00 136.11 -9.129 0.06 11025.00 -9.139 0.50 11025.00 -9.149 0.21 11025.00 -9.159 0.44 80.47 -9.169 0.08 80.47 +9.119 0.00 137.81 +9.129 0.37 80.47 +9.139 0.44 80.47 +9.149 0.44 80.47 +9.159 0.58 80.47 +9.169 0.73 80.47 9.179 0.73 80.47 9.189 0.73 80.47 9.199 0.73 80.47 9.209 0.38 104.01 -9.219 0.60 88.20 +9.219 0.59 88.20 9.229 0.82 83.52 9.239 0.86 82.28 9.249 0.83 80.47 -9.259 0.84 80.47 -9.269 0.84 80.47 +9.259 0.83 80.47 +9.269 0.83 80.47 9.279 0.61 91.12 9.289 0.56 91.12 9.299 0.52 90.37 9.309 0.50 612.50 9.319 0.48 648.53 -9.329 0.45 87.50 -9.339 0.01 11025.00 -9.349 0.46 501.14 +9.329 0.44 87.50 +9.339 0.34 689.06 +9.349 0.44 501.14 9.359 0.41 92.65 9.369 0.49 80.47 9.379 0.87 80.47 @@ -948,17 +948,17 @@ 9.449 0.00 96.71 9.459 0.30 86.13 9.468 0.00 2205.00 -9.478 0.32 1837.50 -9.488 0.66 1837.50 -9.498 0.66 1837.50 -9.508 0.66 1837.50 -9.518 0.27 80.47 +9.478 0.63 1837.50 +9.488 0.63 1837.50 +9.498 0.63 1837.50 +9.508 0.63 1837.50 +9.518 0.26 80.47 9.528 0.13 116.05 9.538 0.56 95.04 -9.548 0.00 81.07 +9.548 0.00 80.47 9.558 0.47 95.87 -9.568 0.51 103.04 -9.578 0.00 128.20 +9.568 0.51 101.15 +9.578 0.00 125.28 9.588 0.00 102.08 9.598 0.00 262.50 9.608 0.00 86.13 @@ -969,83 +969,83 @@ 9.658 0.69 80.47 9.668 0.00 98.44 9.678 0.03 86.81 -9.688 0.49 11025.00 -9.698 0.49 11025.00 -9.708 0.26 80.47 +9.688 0.34 193.42 +9.698 0.00 216.18 +9.708 0.51 80.47 9.718 0.51 80.47 9.728 0.51 80.47 9.738 0.51 80.47 -9.748 0.39 1575.00 +9.748 0.30 1575.00 9.758 0.19 98.44 9.768 0.11 98.44 9.778 0.66 81.07 9.788 0.80 85.47 9.798 0.55 83.52 -9.808 0.33 81.67 +9.808 0.32 81.07 9.818 0.17 83.52 9.828 0.50 83.52 -9.838 0.25 1837.50 -9.848 0.17 1837.50 -9.858 0.78 1837.50 -9.868 0.78 1837.50 -9.878 0.78 1837.50 +9.838 0.24 1837.50 +9.848 0.15 1837.50 +9.858 0.77 1837.50 +9.868 0.77 1837.50 +9.878 0.77 1837.50 9.888 0.52 1837.50 -9.898 0.65 1837.50 -9.907 0.27 1575.00 +9.898 0.60 1837.50 +9.907 0.22 1575.00 9.917 0.28 114.84 9.927 0.20 114.84 -9.937 0.51 112.50 +9.937 0.50 112.50 9.947 0.34 112.50 -9.957 0.29 109.16 -9.967 0.48 580.26 -9.977 0.48 580.26 +9.957 0.28 109.16 +9.967 0.47 580.26 +9.977 0.47 580.26 9.987 0.33 212.02 9.997 0.39 216.18 -10.007 0.49 212.02 -10.017 0.39 220.50 -10.027 0.05 129.71 +10.007 0.48 212.02 +10.017 0.38 220.50 +10.027 0.04 129.71 10.037 0.30 129.71 10.047 0.54 109.16 10.057 0.33 164.55 -10.067 0.39 220.50 +10.067 0.38 220.50 10.077 0.55 612.50 10.087 0.79 612.50 10.097 0.81 612.50 -10.107 0.78 580.26 -10.117 0.62 580.26 -10.127 0.00 648.53 -10.137 0.03 689.06 -10.147 0.48 787.50 -10.157 0.41 848.08 -10.167 0.48 848.08 -10.177 0.00 787.50 -10.187 0.00 918.75 +10.107 0.77 580.26 +10.117 0.61 580.26 +10.127 0.00 612.50 +10.137 0.00 689.06 +10.147 0.46 787.50 +10.157 0.47 848.08 +10.167 0.47 848.08 +10.177 0.00 848.08 +10.187 0.00 787.50 10.197 0.27 100.23 10.207 0.00 132.83 10.217 0.00 98.44 10.227 0.00 108.09 -10.237 0.42 113.66 -10.247 0.10 99.32 +10.237 0.41 113.66 +10.247 0.09 99.32 10.257 0.31 116.05 -10.267 0.00 114.84 +10.267 0.00 112.50 10.277 0.36 83.52 -10.287 0.55 92.65 +10.287 0.54 92.65 10.297 0.44 104.01 10.307 0.28 102.08 10.317 0.15 86.81 10.327 0.53 86.81 -10.337 0.44 88.91 +10.337 0.43 88.91 10.346 0.26 80.47 10.356 0.00 104.01 10.366 0.00 121.15 10.376 0.35 91.12 -10.386 0.68 104.01 -10.396 0.68 104.01 -10.406 0.35 103.04 +10.386 0.67 104.01 +10.396 0.67 104.01 +10.406 0.34 103.04 10.416 0.00 220.50 -10.426 0.30 208.02 -10.436 0.64 190.09 -10.446 0.23 126.72 +10.426 0.39 212.02 +10.436 0.64 186.86 +10.446 0.22 126.72 10.456 0.33 122.50 10.466 0.71 102.08 10.476 0.56 119.84 @@ -1053,34 +1053,34 @@ 10.496 0.53 216.18 10.506 0.62 122.50 10.516 0.59 141.35 -10.526 0.74 137.81 -10.536 0.59 162.13 +10.526 0.73 137.81 +10.536 0.58 162.13 10.546 0.64 132.83 -10.556 0.59 848.08 +10.556 0.58 848.08 10.566 0.69 95.87 -10.576 0.63 735.00 +10.576 0.62 735.00 10.586 0.35 250.57 10.596 0.57 250.57 10.606 0.76 250.57 -10.616 0.45 245.00 +10.616 0.44 245.00 10.626 0.44 239.67 -10.636 0.48 735.00 -10.646 0.29 848.08 -10.656 0.08 111.36 +10.636 0.46 735.00 +10.646 0.28 848.08 +10.656 0.07 111.36 10.666 0.00 90.37 10.676 0.61 107.04 10.686 0.47 91.88 10.696 0.00 109.16 10.706 0.45 83.52 -10.716 0.60 95.04 -10.726 0.65 90.37 +10.716 0.59 95.04 +10.726 0.65 91.12 10.736 0.14 80.47 -10.746 0.54 80.47 -10.756 0.54 80.47 -10.766 0.52 93.43 -10.776 0.00 116.05 -10.785 0.19 99.32 -10.795 0.18 86.13 +10.746 0.53 80.47 +10.756 0.53 80.47 +10.766 0.52 92.65 +10.776 0.00 114.84 +10.785 0.18 99.32 +10.795 0.17 85.47 10.805 0.70 80.47 10.815 0.70 80.47 10.825 0.50 81.07 @@ -1096,7 +1096,7 @@ 10.925 0.91 250.57 10.935 0.91 250.57 10.945 0.83 250.57 -10.955 0.93 256.40 +10.955 0.92 256.40 10.965 0.88 256.40 10.975 0.95 262.50 10.985 0.95 262.50 @@ -1104,13 +1104,13 @@ 11.005 0.95 262.50 11.015 0.94 262.50 11.025 0.64 268.90 -11.035 0.74 268.90 +11.035 0.73 268.90 11.045 0.66 268.90 -11.055 0.83 275.62 -11.065 0.83 275.62 -11.075 0.00 239.67 -11.085 0.00 239.67 -11.095 0.00 80.47 +11.055 0.82 275.62 +11.065 0.82 275.62 +11.075 0.00 234.57 +11.085 0.00 234.57 +11.095 0.00 88.20 11.105 0.00 86.81 11.115 0.45 86.13 11.125 0.00 256.40 @@ -1126,23 +1126,23 @@ 11.224 0.38 80.47 11.234 0.15 87.50 11.244 0.26 101.15 -11.254 0.53 204.17 -11.264 0.53 196.88 +11.254 0.52 204.17 +11.264 0.52 196.88 11.274 0.76 196.88 11.284 0.54 190.09 11.294 0.74 196.88 11.304 0.80 200.45 11.314 0.00 196.88 -11.324 0.30 193.42 -11.334 0.00 116.05 +11.324 0.29 193.42 +11.334 0.00 118.55 11.344 0.00 117.29 11.354 0.25 80.47 11.364 0.46 91.12 -11.374 0.30 95.87 -11.384 0.32 193.42 -11.394 0.51 193.42 +11.374 0.29 95.87 +11.384 0.31 193.42 +11.394 0.51 190.09 11.404 0.79 193.42 -11.414 0.85 190.09 +11.414 0.84 190.09 11.424 0.90 190.09 11.434 0.92 190.09 11.444 0.92 190.09 @@ -1159,34 +1159,34 @@ 11.554 0.84 200.45 11.564 0.48 193.42 11.574 0.38 245.00 -11.584 0.26 175.00 +11.584 0.25 172.27 11.594 0.28 99.32 -11.604 0.19 234.57 -11.614 0.30 220.50 +11.604 0.18 234.57 +11.614 0.29 220.50 11.624 0.57 204.17 11.634 0.00 250.57 11.644 0.00 183.75 -11.654 0.34 1378.12 -11.663 0.34 1378.12 -11.673 0.15 1378.12 -11.683 0.00 216.18 +11.654 0.28 1378.12 +11.663 0.28 1378.12 +11.673 0.13 1378.12 +11.683 0.00 208.02 11.693 0.00 80.47 -11.703 0.00 105.00 -11.713 0.27 105.00 -11.723 0.78 123.88 -11.733 0.13 105.00 -11.743 0.00 105.00 +11.703 0.00 106.01 +11.713 0.23 106.01 +11.723 0.78 125.28 +11.733 0.11 106.01 +11.743 0.00 106.01 11.753 0.57 80.47 11.763 0.57 80.47 11.773 0.62 80.47 -11.783 0.08 81.67 +11.783 0.08 81.07 11.793 0.62 80.47 11.803 0.62 80.47 11.813 0.00 100.23 -11.823 0.00 123.88 +11.823 0.00 82.28 11.833 0.00 111.36 -11.843 0.36 99.32 -11.853 0.18 100.23 +11.843 0.36 97.57 +11.853 0.17 100.23 11.863 0.81 80.47 11.873 0.81 80.47 11.883 0.00 100.23 @@ -1194,57 +1194,57 @@ 11.903 0.72 111.36 11.913 0.00 94.23 11.923 0.19 94.23 -11.933 0.00 151.03 +11.933 0.00 148.99 11.943 0.00 80.47 11.953 0.00 100.23 -11.963 0.06 108.09 +11.963 0.05 108.09 11.973 0.18 100.23 -11.983 0.09 100.23 +11.983 0.08 100.23 11.993 0.50 80.47 12.003 0.35 84.16 -12.013 0.08 85.47 -12.023 0.00 136.11 +12.013 0.07 85.47 +12.023 0.00 132.83 12.033 0.00 95.87 -12.043 0.07 95.04 +12.043 0.07 95.87 12.053 0.41 91.88 12.063 0.21 82.28 -12.073 0.03 131.25 +12.073 0.05 126.72 12.083 0.06 132.83 -12.093 0.45 155.28 +12.093 0.45 148.99 12.102 0.45 141.35 -12.112 0.45 118.55 -12.122 0.28 134.45 -12.132 0.50 125.28 +12.112 0.44 114.84 +12.122 0.28 132.83 +12.132 0.49 123.88 12.142 0.69 131.25 12.152 0.51 134.45 12.162 0.69 131.25 12.172 0.56 119.84 12.182 0.47 129.71 -12.192 0.56 119.84 -12.202 0.03 148.99 -12.212 0.00 148.99 +12.192 0.47 118.55 +12.202 0.00 147.00 +12.212 0.00 147.00 12.222 0.16 80.47 12.232 0.00 80.47 12.242 0.00 80.47 -12.252 0.00 99.32 -12.262 0.00 105.00 -12.272 0.45 84.81 +12.252 0.00 100.23 +12.262 0.00 106.01 +12.272 0.44 84.81 12.282 0.00 91.88 12.292 0.25 84.81 12.302 0.47 80.47 12.312 0.52 80.47 -12.322 0.62 85.47 +12.322 0.61 85.47 12.332 0.56 80.47 -12.342 0.28 80.47 +12.342 0.27 80.47 12.352 0.56 80.47 12.362 0.24 95.04 -12.372 0.49 104.01 +12.372 0.48 104.01 12.382 0.68 100.23 -12.392 0.34 204.17 +12.392 0.33 204.17 12.402 0.68 100.23 12.412 0.82 100.23 12.422 0.86 204.17 -12.432 0.83 204.17 +12.432 0.82 204.17 12.442 0.94 204.17 12.452 0.94 204.17 12.462 0.89 204.17 @@ -1253,34 +1253,34 @@ 12.492 0.54 204.17 12.502 0.54 83.52 12.512 0.57 80.47 -12.522 0.34 186.86 +12.522 0.33 186.86 12.532 0.25 212.02 12.541 0.77 200.45 -12.551 0.06 196.88 -12.561 0.12 172.27 +12.551 0.05 196.88 +12.561 0.14 169.62 12.571 0.00 103.04 12.581 0.58 82.89 -12.591 0.28 80.47 +12.591 0.27 80.47 12.601 0.00 80.47 12.611 0.00 147.00 -12.621 0.53 175.00 +12.621 0.52 175.00 12.631 0.67 172.27 12.641 0.78 167.05 12.651 0.57 164.55 12.661 0.45 151.03 12.671 0.51 153.12 -12.681 0.54 151.03 -12.691 0.54 151.03 +12.681 0.53 151.03 +12.691 0.53 151.03 12.701 0.29 164.55 12.711 0.00 186.86 12.721 0.00 290.13 12.731 0.00 80.47 12.741 0.00 90.37 12.751 0.00 80.47 -12.761 0.59 95.04 -12.771 0.00 118.55 +12.761 0.59 94.23 +12.771 0.00 117.29 12.781 0.47 88.20 -12.791 0.19 109.16 +12.791 0.31 110.25 12.801 0.20 84.81 12.811 0.28 96.71 12.821 0.28 86.13 @@ -1288,94 +1288,94 @@ 12.841 0.42 90.37 12.851 0.47 106.01 12.861 0.06 106.01 -12.871 0.00 85.47 -12.881 0.47 86.13 -12.891 0.67 84.81 -12.901 0.10 105.00 +12.871 0.00 84.81 +12.881 0.47 86.81 +12.891 0.67 86.13 +12.901 0.10 106.01 12.911 0.00 86.81 12.921 0.00 119.84 12.931 0.00 121.15 -12.941 0.00 86.13 +12.941 0.00 86.81 12.951 0.78 97.57 12.961 0.00 82.28 12.971 0.78 97.57 -12.980 0.11 88.20 +12.980 0.11 82.28 12.990 0.00 121.15 -13.000 0.40 123.88 +13.000 0.40 122.50 13.010 0.45 114.84 13.020 0.22 118.55 -13.030 0.28 105.00 -13.040 0.17 114.84 -13.050 0.10 89.63 -13.060 0.52 103.04 +13.030 0.27 105.00 +13.040 0.16 114.84 +13.050 0.09 90.37 +13.060 0.51 103.04 13.070 0.00 86.81 13.080 0.45 91.12 -13.090 0.46 220.50 +13.090 0.45 220.50 13.100 0.00 132.83 13.110 0.00 90.37 13.120 0.54 107.04 13.130 0.00 91.88 13.140 0.00 122.50 -13.150 0.40 80.47 -13.160 0.33 82.28 +13.150 0.39 80.47 +13.160 0.32 82.89 13.170 0.08 113.66 -13.180 0.24 117.29 +13.180 0.24 118.55 13.190 0.67 95.87 -13.200 0.38 81.07 -13.210 0.39 81.07 +13.200 0.39 80.47 +13.210 0.41 80.47 13.220 0.30 80.47 13.230 0.11 116.05 13.240 0.56 94.23 13.250 0.13 101.15 -13.260 0.41 103.04 +13.260 0.41 102.08 13.270 0.62 92.65 13.280 0.56 84.16 -13.290 0.32 83.52 +13.290 0.31 83.52 13.300 0.00 89.63 13.310 0.47 114.84 -13.320 0.17 117.29 +13.320 0.16 117.29 13.330 0.23 118.55 13.340 0.00 122.50 -13.350 0.01 84.81 -13.360 0.04 112.50 -13.370 0.46 100.23 +13.350 0.04 84.16 +13.360 0.03 112.50 +13.370 0.45 100.23 13.380 0.18 101.15 -13.390 0.15 88.91 +13.390 0.14 87.50 13.400 0.00 80.47 -13.410 0.64 91.12 +13.410 0.63 91.12 13.420 0.39 113.66 13.429 0.00 90.37 -13.439 0.45 97.57 -13.449 0.00 87.50 +13.439 0.44 96.71 +13.449 0.00 88.91 13.459 0.00 90.37 13.469 0.61 93.43 13.479 0.17 102.08 13.489 0.21 113.66 13.499 0.12 250.57 13.509 0.44 80.47 -13.519 0.11 113.66 +13.519 0.10 113.66 13.529 0.00 80.47 -13.539 0.60 91.88 +13.539 0.60 91.12 13.549 0.73 88.20 13.559 0.00 106.01 -13.569 0.11 80.47 -13.579 0.50 164.55 -13.589 0.00 145.07 +13.569 0.10 80.47 +13.579 0.50 167.05 +13.589 0.00 141.35 13.599 0.00 148.99 -13.609 0.36 80.47 -13.619 0.36 80.47 +13.609 0.35 80.47 +13.619 0.35 80.47 13.629 0.28 80.47 -13.639 0.24 84.81 +13.639 0.23 84.81 13.649 0.83 83.52 -13.659 0.27 88.20 +13.659 0.26 88.91 13.669 0.00 102.08 13.679 0.00 101.15 13.689 0.33 117.29 13.699 0.47 119.84 13.709 0.75 137.81 -13.719 0.36 125.28 -13.729 0.24 116.05 -13.739 0.24 91.12 +13.719 0.35 125.28 +13.729 0.24 117.29 +13.739 0.23 92.65 13.749 0.77 94.23 13.759 0.37 111.36 13.769 0.00 117.29 @@ -1383,43 +1383,43 @@ 13.789 0.00 110.25 13.799 0.53 105.00 13.809 0.60 117.29 -13.819 0.00 125.28 -13.829 0.38 136.11 +13.819 0.00 99.32 +13.829 0.37 136.11 13.839 0.22 106.01 -13.849 0.06 183.75 +13.849 0.05 183.75 13.859 0.54 200.45 13.868 0.83 196.88 -13.878 0.45 212.02 -13.888 0.39 225.00 +13.878 0.45 216.18 +13.888 0.38 220.50 13.898 0.48 89.63 13.908 0.30 96.71 13.918 0.58 95.87 13.928 0.00 82.28 -13.938 0.24 81.07 -13.948 0.00 183.75 -13.958 0.02 525.00 -13.968 0.00 393.75 -13.978 0.34 220.50 -13.988 0.05 216.18 +13.938 0.25 80.47 +13.948 0.00 180.74 +13.958 0.00 262.50 +13.968 0.12 212.02 +13.978 0.33 216.18 +13.988 0.04 216.18 13.998 0.20 121.15 14.008 0.00 132.83 14.018 0.56 107.04 -14.028 0.43 113.66 -14.038 0.23 110.25 +14.028 0.42 113.66 +14.038 0.22 110.25 14.048 0.50 121.15 -14.058 0.15 114.84 +14.058 0.14 114.84 14.068 0.32 128.20 -14.078 0.34 81.07 +14.078 0.33 81.07 14.088 0.28 91.12 14.098 0.46 91.88 14.108 0.25 108.09 -14.118 0.38 122.50 +14.118 0.37 121.15 14.128 0.76 101.15 14.138 0.91 103.04 14.148 0.91 103.04 14.158 0.91 103.04 14.168 0.96 102.08 -14.178 0.91 100.23 +14.178 0.90 100.23 14.188 0.87 96.71 14.198 0.74 94.23 14.208 0.61 87.50 @@ -1438,39 +1438,39 @@ 14.337 0.41 80.47 14.347 0.25 81.07 14.357 0.40 106.01 -14.367 0.67 97.57 +14.367 0.67 96.71 14.377 0.20 112.50 14.387 0.28 290.13 14.397 0.19 212.02 14.407 0.69 245.00 14.417 0.09 225.00 -14.427 0.00 212.02 +14.427 0.00 208.02 14.437 0.00 193.42 -14.447 0.01 11025.00 -14.457 0.01 11025.00 +14.447 0.00 11025.00 +14.457 0.00 11025.00 14.467 0.00 11025.00 14.477 0.00 5512.50 14.487 0.00 3675.00 14.497 0.00 80.47 14.507 0.00 100.23 -14.517 0.35 80.47 +14.517 0.34 80.47 14.527 0.00 100.23 -14.537 0.35 80.47 -14.547 0.35 80.47 -14.557 0.00 99.32 -14.567 0.00 99.32 -14.577 0.45 117.29 +14.537 0.34 80.47 +14.547 0.34 80.47 +14.557 0.00 97.57 +14.567 0.00 97.57 +14.577 0.45 116.05 14.587 0.41 145.07 -14.597 0.00 99.32 +14.597 0.00 97.57 14.607 0.00 186.86 -14.617 0.14 143.18 +14.617 0.13 143.18 14.627 0.41 114.84 14.637 0.00 128.20 14.647 0.28 121.15 -14.657 0.35 92.65 -14.667 0.00 84.81 -14.677 0.23 204.17 -14.687 0.41 204.17 +14.657 0.35 93.43 +14.667 0.00 84.16 +14.677 0.22 204.17 +14.687 0.40 204.17 14.697 0.81 200.45 14.707 0.45 196.88 14.717 0.00 225.00 @@ -1487,9 +1487,9 @@ 14.826 0.92 216.18 14.836 0.88 208.02 14.846 0.72 204.17 -14.856 0.39 200.45 +14.856 0.38 200.45 14.866 0.36 200.45 -14.876 0.35 105.00 +14.876 0.34 104.01 14.886 0.60 95.04 14.896 0.61 97.57 14.906 0.47 114.84 @@ -1498,34 +1498,34 @@ 14.936 0.67 91.88 14.946 0.62 93.43 14.956 0.61 92.65 -14.966 0.31 91.88 +14.966 0.30 91.88 14.976 0.29 90.37 -14.986 0.49 88.20 +14.986 0.48 88.20 14.996 0.37 91.12 -15.006 0.34 84.81 -15.016 0.35 84.81 -15.026 0.30 186.86 +15.006 0.33 84.81 +15.016 0.34 84.81 +15.026 0.29 186.86 15.036 0.39 175.00 15.046 0.86 175.00 15.056 0.86 175.00 -15.066 0.75 177.82 -15.076 0.75 177.82 -15.086 0.75 177.82 +15.066 0.74 177.82 +15.076 0.74 177.82 +15.086 0.74 177.82 15.096 0.34 180.74 -15.106 0.46 164.55 +15.106 0.45 164.55 15.116 0.26 128.20 15.126 0.00 88.20 15.136 0.23 86.13 15.146 0.46 80.47 -15.156 0.63 85.47 +15.156 0.10 85.47 15.166 0.31 88.20 -15.176 0.63 85.47 +15.176 0.63 84.81 15.185 0.00 80.47 15.195 0.00 80.47 -15.205 0.00 306.25 -15.215 0.00 256.40 -15.225 0.00 290.13 -15.235 0.18 105.00 +15.205 0.00 315.00 +15.215 0.00 225.00 +15.225 0.00 297.97 +15.235 0.17 105.00 15.245 0.00 123.88 15.255 0.30 167.05 15.265 0.58 162.13 @@ -1533,22 +1533,22 @@ 15.285 0.66 159.78 15.295 0.00 157.50 15.305 0.33 157.50 -15.315 0.00 408.33 -15.325 0.01 441.00 -15.335 0.44 459.38 -15.345 0.00 424.04 -15.355 0.49 479.35 -15.365 0.05 580.26 +15.315 0.10 101.15 +15.325 0.43 109.16 +15.335 0.48 459.38 +15.345 0.00 408.33 +15.355 0.48 459.38 +15.365 0.03 551.25 15.375 0.00 525.00 15.385 0.00 580.26 -15.395 0.36 153.12 -15.405 0.31 147.00 -15.415 0.72 162.13 +15.395 0.35 153.12 +15.405 0.31 141.35 +15.415 0.71 162.13 15.425 0.18 157.50 15.435 0.51 153.12 15.445 0.19 151.03 -15.455 0.00 175.00 -15.465 0.66 177.82 +15.455 0.00 172.27 +15.465 0.65 177.82 15.475 0.88 169.62 15.485 0.88 169.62 15.495 0.88 169.62 @@ -1558,62 +1558,62 @@ 15.535 0.81 167.05 15.545 0.81 167.05 15.555 0.21 186.86 -15.565 0.34 164.55 -15.575 0.60 131.25 +15.565 0.33 164.55 +15.575 0.59 131.25 15.585 0.68 128.20 15.595 0.33 157.50 -15.605 0.34 110.25 +15.605 0.33 110.25 15.615 0.27 155.28 15.624 0.52 162.13 15.634 0.08 167.05 15.644 0.22 167.05 -15.654 0.15 147.00 +15.654 0.14 147.00 15.664 0.36 97.57 -15.674 0.17 101.15 +15.674 0.17 100.23 15.684 0.60 100.23 15.694 0.18 116.05 -15.704 0.18 117.29 +15.704 0.17 118.55 15.714 0.17 117.29 15.724 0.56 94.23 15.734 0.22 80.47 15.744 0.00 80.47 15.754 0.40 107.04 15.764 0.56 123.88 -15.774 0.18 125.28 +15.774 0.17 125.28 15.784 0.34 125.28 15.794 0.59 101.15 15.804 0.41 123.88 15.814 0.22 125.28 15.824 0.29 137.81 -15.834 0.00 134.45 +15.834 0.00 132.83 15.844 0.44 134.45 15.854 0.56 122.50 15.864 0.66 108.09 15.874 0.17 122.50 15.884 0.52 134.45 -15.894 0.56 125.28 -15.904 0.30 155.28 +15.894 0.56 126.72 +15.904 0.31 157.50 15.914 0.33 122.50 15.924 0.29 148.99 15.934 0.00 159.78 -15.944 0.18 117.29 -15.954 0.63 137.81 +15.944 0.00 129.71 +15.954 0.63 153.12 15.964 0.03 122.50 15.974 0.60 110.25 15.984 0.63 117.29 -15.994 0.45 139.56 +15.994 0.45 137.81 16.004 0.40 110.25 16.014 0.26 100.23 -16.024 0.51 118.55 +16.024 0.50 118.55 16.034 0.18 136.11 16.044 0.54 121.15 16.054 0.29 114.84 -16.063 0.40 102.08 +16.063 0.39 102.08 16.073 0.24 118.55 16.083 0.68 98.44 16.093 0.00 122.50 16.103 0.50 113.66 -16.113 0.04 98.44 +16.113 0.06 97.57 16.123 0.57 116.05 16.133 0.00 117.29 16.143 0.45 108.09 @@ -1623,20 +1623,20 @@ 16.183 0.07 153.12 16.193 0.03 153.12 16.203 0.18 112.50 -16.213 0.20 95.87 +16.213 0.19 95.87 16.223 0.41 112.50 16.233 0.27 125.28 16.243 0.24 126.72 -16.253 0.38 86.13 +16.253 0.37 86.13 16.263 0.38 88.91 16.273 0.38 88.91 16.283 0.21 80.47 -16.293 0.19 95.04 -16.303 0.18 153.12 -16.313 0.03 113.66 +16.293 0.18 95.04 +16.303 0.17 153.12 +16.313 0.02 113.66 16.323 0.14 84.81 16.333 0.55 95.04 -16.343 0.29 125.28 +16.343 0.29 139.56 16.353 0.00 101.15 16.363 0.59 119.84 16.373 0.00 101.15 @@ -1647,7 +1647,7 @@ 16.423 0.16 117.29 16.433 0.56 95.87 16.443 0.00 114.84 -16.453 0.00 169.62 +16.453 0.00 172.27 16.463 0.60 134.45 16.473 0.81 137.81 16.483 0.99 139.56 @@ -1660,7 +1660,7 @@ 16.552 0.91 123.88 16.562 0.90 117.29 16.572 0.69 119.84 -16.582 0.64 132.83 +16.582 0.64 129.71 16.592 0.66 128.20 16.602 0.80 129.71 16.612 0.91 136.11 @@ -1671,10 +1671,10 @@ 16.662 0.48 119.84 16.672 0.83 113.66 16.682 0.67 123.88 -16.692 0.38 141.35 +16.692 0.37 141.35 16.702 0.77 139.56 16.712 0.63 129.71 -16.722 0.23 141.35 +16.722 0.77 139.56 16.732 0.06 145.07 16.742 0.39 137.81 16.752 0.69 131.25 @@ -1684,7 +1684,7 @@ 16.792 0.99 136.11 16.802 0.99 136.11 16.812 0.88 132.83 -16.822 0.84 132.83 +16.822 0.83 132.83 16.832 0.84 136.11 16.842 0.93 137.81 16.852 0.90 141.35 @@ -1692,31 +1692,31 @@ 16.872 0.96 147.00 16.882 0.92 148.99 16.892 0.96 147.00 -16.902 0.33 136.11 +16.902 0.33 134.45 16.912 0.30 137.81 -16.922 0.00 147.00 +16.922 0.00 148.99 16.932 0.00 136.11 16.941 0.75 134.45 16.951 0.19 125.28 16.961 0.28 148.99 16.971 0.37 134.45 16.981 0.57 112.50 -16.991 0.53 108.09 +16.991 0.53 107.04 17.001 0.20 99.32 -17.011 0.48 96.71 -17.021 0.48 96.71 +17.011 0.47 96.71 +17.021 0.47 96.71 17.031 0.00 81.67 17.041 0.00 110.25 -17.051 0.42 131.25 -17.061 0.53 128.20 +17.051 0.42 132.83 +17.061 0.53 126.72 17.071 0.51 122.50 17.081 0.16 119.84 -17.091 0.55 121.15 +17.091 0.54 121.15 17.101 0.22 102.08 17.111 0.26 151.03 17.121 0.00 408.33 17.131 0.00 459.38 -17.141 0.32 580.26 +17.141 0.30 580.26 17.151 0.66 580.26 17.161 0.82 648.53 17.171 0.00 648.53 @@ -1725,7 +1725,7 @@ 17.201 0.85 121.15 17.211 0.81 125.28 17.221 0.71 125.28 -17.231 0.66 129.71 +17.231 0.65 129.71 17.241 0.68 137.81 17.251 0.77 141.35 17.261 0.71 151.03 @@ -1745,9 +1745,9 @@ 17.400 0.92 172.27 17.410 0.92 167.05 17.420 0.93 159.78 -17.430 0.91 157.50 +17.430 0.90 157.50 17.440 0.93 153.12 -17.450 0.90 151.03 +17.450 0.95 148.99 17.460 0.91 147.00 17.470 0.90 141.35 17.480 0.92 131.25 @@ -1763,13 +1763,13 @@ 17.580 0.61 112.50 17.590 0.23 101.15 17.600 0.00 114.84 -17.610 0.59 3675.00 -17.620 0.40 3675.00 -17.630 0.59 3675.00 -17.640 0.42 11025.00 -17.650 0.49 3675.00 -17.660 0.49 3675.00 -17.670 0.44 3675.00 +17.610 0.52 3675.00 +17.620 0.52 3675.00 +17.630 0.52 3675.00 +17.640 0.48 3675.00 +17.650 0.48 3675.00 +17.660 0.48 3675.00 +17.670 0.35 3675.00 17.680 0.75 2756.25 17.690 0.75 2756.25 17.700 0.00 3675.00 @@ -1781,18 +1781,18 @@ 17.760 0.85 111.36 17.770 0.77 108.09 17.780 0.54 129.71 -17.790 0.37 111.36 +17.790 0.36 111.36 17.800 0.74 648.53 17.810 0.74 648.53 -17.820 0.74 648.53 -17.829 0.14 612.50 -17.839 0.11 129.71 +17.820 0.38 612.50 +17.829 0.13 612.50 +17.839 0.10 129.71 17.849 0.38 136.11 17.859 0.74 113.66 -17.869 0.00 98.44 +17.869 0.00 96.71 17.879 0.28 105.00 -17.889 0.70 3675.00 -17.899 0.70 3675.00 +17.889 0.69 3675.00 +17.899 0.69 3675.00 17.909 0.08 107.04 17.919 0.59 95.04 17.929 0.71 95.87 @@ -1802,22 +1802,22 @@ 17.969 0.87 86.81 17.979 0.64 82.28 17.989 0.44 98.44 -17.999 0.72 5512.50 -18.009 0.67 5512.50 -18.019 0.72 5512.50 -18.029 0.55 5512.50 -18.039 0.72 5512.50 -18.049 0.69 2205.00 -18.059 0.69 2205.00 -18.069 0.43 3675.00 -18.079 0.81 3675.00 -18.089 0.81 3675.00 -18.099 0.81 3675.00 -18.109 0.81 3675.00 +17.999 0.00 1575.00 +18.009 0.71 1575.00 +18.019 0.71 1575.00 +18.029 0.55 1575.00 +18.039 0.40 1575.00 +18.049 0.65 2205.00 +18.059 0.42 5512.50 +18.069 0.39 3675.00 +18.079 0.75 3675.00 +18.089 0.75 3675.00 +18.099 0.75 3675.00 +18.109 0.15 105.00 18.119 0.31 106.01 18.129 0.75 88.91 -18.139 0.37 86.13 -18.149 0.25 81.67 +18.139 0.36 86.13 +18.149 0.25 82.28 18.159 0.00 80.47 18.169 0.70 81.07 18.179 0.51 80.47 @@ -1826,7 +1826,7 @@ 18.209 0.56 88.91 18.219 0.91 88.20 18.229 0.91 88.20 -18.239 0.89 87.50 +18.239 0.88 87.50 18.249 0.87 87.50 18.259 0.90 86.81 18.268 0.89 85.47 @@ -1848,7 +1848,7 @@ 18.428 0.57 82.28 18.438 0.62 82.89 18.448 0.92 83.52 -18.458 0.55 85.47 +18.458 0.54 85.47 18.468 0.92 86.81 18.478 0.92 86.81 18.488 0.91 86.81 @@ -1857,11 +1857,11 @@ 18.518 0.90 85.47 18.528 0.91 84.81 18.538 0.96 83.52 -18.548 0.33 92.65 +18.548 0.32 92.65 18.558 0.44 94.23 18.568 0.61 83.52 18.578 0.41 81.07 -18.588 0.21 89.63 +18.588 0.20 89.63 18.598 0.30 91.12 18.608 0.91 80.47 18.618 0.92 84.16 @@ -1869,12 +1869,12 @@ 18.638 0.81 84.81 18.648 0.56 102.08 18.658 0.28 100.23 -18.668 0.19 2205.00 -18.678 0.51 2205.00 -18.688 0.57 3675.00 -18.698 0.77 3675.00 -18.707 0.77 3675.00 -18.717 0.77 3675.00 +18.668 0.14 2205.00 +18.678 0.46 2205.00 +18.688 0.47 3675.00 +18.698 0.49 3675.00 +18.707 0.74 3675.00 +18.717 0.74 3675.00 18.727 0.00 5512.50 18.737 0.09 97.57 18.747 0.74 95.04 @@ -1892,31 +1892,31 @@ 18.867 0.97 86.81 18.877 0.00 108.09 18.887 0.40 101.15 -18.897 0.47 136.11 +18.897 0.46 136.11 18.907 0.00 114.84 18.917 0.01 101.15 18.927 0.07 81.07 18.937 0.52 85.47 18.947 0.21 106.01 18.957 0.24 89.63 -18.967 0.34 88.20 +18.967 0.33 88.20 18.977 0.66 87.50 18.987 0.84 86.81 18.997 0.83 86.81 19.007 0.84 86.13 19.017 0.84 86.13 19.027 0.79 83.52 -19.037 0.58 82.28 -19.047 0.71 82.28 +19.037 0.57 82.28 +19.047 0.71 81.67 19.057 0.63 80.47 19.067 0.76 82.28 19.077 0.33 80.47 -19.087 0.31 116.05 -19.097 0.80 114.84 -19.107 0.80 114.84 +19.087 0.30 116.05 +19.097 0.73 114.84 +19.107 0.80 113.66 19.117 0.75 118.55 19.127 0.70 111.36 -19.137 0.46 111.36 +19.137 0.45 111.36 19.146 0.71 112.50 19.156 0.67 110.25 19.166 0.77 109.16 @@ -1924,8 +1924,8 @@ 19.186 0.90 107.04 19.196 0.89 105.00 19.206 0.89 105.00 -19.216 0.90 424.04 -19.226 0.45 393.75 +19.216 0.89 424.04 +19.226 0.44 393.75 19.236 0.79 99.32 19.246 0.87 96.71 19.256 0.82 99.32 @@ -1933,34 +1933,34 @@ 19.276 0.43 100.23 19.286 0.36 95.87 19.296 0.00 306.25 -19.306 0.35 297.97 +19.306 0.34 297.97 19.316 0.67 306.25 19.326 0.18 282.69 19.336 0.49 315.00 19.346 0.32 95.04 -19.356 0.79 91.88 -19.366 0.83 92.65 -19.376 0.79 91.88 -19.386 0.83 92.65 +19.356 0.78 91.88 +19.366 0.82 92.65 +19.376 0.78 91.88 +19.386 0.82 92.65 19.396 0.64 93.43 19.406 0.55 95.04 -19.416 0.09 315.00 -19.426 0.39 96.71 +19.416 0.07 315.00 +19.426 0.38 96.71 19.436 0.38 102.08 -19.446 0.22 324.26 +19.446 0.20 324.26 19.456 0.05 306.25 -19.466 0.38 97.57 -19.476 0.28 648.53 -19.486 0.26 275.62 +19.466 0.37 97.57 +19.476 0.12 193.42 +19.486 0.25 268.90 19.496 0.45 204.17 19.506 0.46 225.00 -19.516 0.16 239.67 +19.516 0.15 239.67 19.526 0.27 245.00 19.536 0.40 128.20 19.546 0.38 268.90 19.556 0.29 97.57 19.566 0.28 459.38 -19.576 0.38 479.35 +19.576 0.37 479.35 19.585 0.29 102.08 19.595 0.48 107.04 19.605 0.65 111.36 @@ -1968,50 +1968,50 @@ 19.625 0.04 96.71 19.635 0.38 112.50 19.645 0.54 81.67 -19.655 0.45 96.71 +19.655 0.45 95.87 19.665 0.74 96.71 19.675 0.51 96.71 19.685 0.45 95.87 -19.695 0.47 172.27 +19.695 0.46 172.27 19.705 0.53 95.87 19.715 0.39 89.63 -19.725 0.21 104.01 +19.725 0.20 104.01 19.735 0.40 200.45 -19.745 0.50 172.27 -19.755 0.17 196.88 +19.745 0.49 169.62 +19.755 0.16 196.88 19.765 0.75 200.45 19.775 0.63 196.88 -19.785 0.55 193.42 -19.795 0.49 186.86 +19.785 0.54 193.42 +19.795 0.48 186.86 19.805 0.80 186.86 19.815 0.80 186.86 19.825 0.80 186.86 19.835 0.44 167.05 -19.845 0.46 367.50 -19.855 0.64 367.50 +19.845 0.45 367.50 +19.855 0.63 367.50 19.865 0.69 424.04 -19.875 0.31 459.38 +19.875 0.30 479.35 19.885 0.55 393.75 19.895 0.24 157.50 19.905 0.64 175.00 -19.915 0.09 190.09 +19.915 0.08 190.09 19.925 0.06 216.18 -19.935 0.16 84.81 +19.935 0.18 110.25 19.945 0.38 88.91 19.955 0.33 159.78 -19.965 0.57 175.00 -19.975 0.78 177.82 +19.965 0.56 175.00 +19.975 0.77 177.82 19.985 0.56 180.74 -19.995 0.69 183.75 +19.995 0.68 183.75 20.005 0.65 177.82 20.015 0.70 172.27 -20.024 0.58 175.00 -20.034 0.22 147.00 -20.044 0.48 180.74 +20.024 0.70 172.27 +20.034 0.21 147.00 +20.044 0.47 180.74 20.054 0.61 177.82 20.064 0.59 88.91 20.074 0.48 180.74 -20.084 0.55 169.62 +20.084 0.54 169.62 20.094 0.68 172.27 20.104 0.69 177.82 20.114 0.48 180.74 @@ -2023,17 +2023,17 @@ 20.174 0.53 147.00 20.184 0.51 147.00 20.194 0.76 153.12 -20.204 0.71 155.28 +20.204 0.70 155.28 20.214 0.41 155.28 20.224 0.44 159.78 20.234 0.38 159.78 -20.244 0.70 153.12 +20.244 0.69 153.12 20.254 0.55 164.55 20.264 0.00 155.28 20.274 0.00 180.74 -20.284 0.13 3675.00 +20.284 0.12 3675.00 20.294 0.00 103.04 -20.304 0.18 141.35 +20.304 0.17 141.35 20.314 0.36 119.84 20.324 0.00 82.28 20.334 0.00 98.44 @@ -2057,34 +2057,34 @@ 20.513 0.94 87.50 20.523 0.71 88.91 20.533 0.00 106.01 -20.543 0.45 91.88 -20.553 0.04 109.16 -20.563 0.00 114.84 +20.543 0.45 91.12 +20.553 0.06 110.25 +20.563 0.00 113.66 20.573 0.34 118.55 -20.583 0.80 136.11 -20.593 0.00 114.84 -20.603 0.00 114.84 +20.583 0.80 134.45 +20.593 0.00 113.66 +20.603 0.00 113.66 20.613 0.48 80.47 -20.623 0.49 81.07 +20.623 0.49 81.67 20.633 0.73 86.13 20.643 0.22 80.47 20.653 0.18 80.47 -20.663 0.29 110.25 +20.663 0.28 110.25 20.673 0.57 111.36 -20.683 0.38 612.50 -20.693 0.41 612.50 -20.703 0.66 648.53 -20.713 0.66 648.53 -20.723 0.66 648.53 -20.733 0.34 689.06 -20.743 0.10 648.53 +20.683 0.37 612.50 +20.693 0.40 612.50 +20.703 0.65 648.53 +20.713 0.65 648.53 +20.723 0.65 648.53 +20.733 0.31 689.06 +20.743 0.07 648.53 20.753 0.02 122.50 20.763 0.00 82.89 -20.773 0.00 145.07 +20.773 0.00 131.25 20.783 0.00 459.38 -20.793 0.13 459.38 -20.803 0.87 459.38 +20.793 0.12 459.38 +20.803 0.86 459.38 20.813 0.78 229.69 20.823 0.77 229.69 -20.833 0.95 229.69 +20.833 0.94 229.69 20.833 0.87 225.00 Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/regression/chan3.logspec and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/regression/chan3.logspec differ diff -Nru sphinxbase-0.8/test/regression/chan3-logspec.cepview sphinxbase-0.8+5prealpha/test/regression/chan3-logspec.cepview --- sphinxbase-0.8/test/regression/chan3-logspec.cepview 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/chan3-logspec.cepview 2015-03-26 16:52:50.000000000 +0000 @@ -1,2190 +1,2178 @@ - 5.445 4.866 5.182 4.222 3.622 3.989 3.585 4.087 3.504 2.488 5.713 5.596 4.862 5.476 5.112 4.736 5.000 5.725 6.217 5.842 6.497 7.063 8.006 8.840 8.430 7.825 9.400 9.372 9.797 9.713 10.279 9.907 8.844 10.395 10.035 8.038 - 4.687 3.182 3.617 5.513 5.547 4.356 4.459 3.852 3.775 3.936 4.128 4.845 5.464 4.963 5.367 4.923 5.403 5.075 6.013 6.028 6.838 7.012 7.997 7.963 7.163 7.912 10.142 10.293 9.802 10.208 10.521 10.089 9.910 10.079 10.061 8.103 - 4.436 4.279 4.150 5.808 5.801 4.281 6.043 5.211 4.746 4.782 5.875 6.146 4.791 4.644 5.565 5.045 5.596 5.718 5.423 5.788 7.167 7.456 8.387 7.416 6.927 8.003 10.185 9.532 9.443 10.468 10.040 9.926 10.079 10.422 9.709 7.279 - 4.426 4.031 4.260 4.734 5.192 5.647 5.184 5.047 3.913 4.494 6.095 5.160 5.107 6.133 5.685 5.805 6.515 6.730 5.942 6.395 4.902 6.872 8.456 8.513 7.932 9.979 9.670 10.115 10.308 10.047 9.995 9.712 9.059 9.628 9.393 7.115 - 4.782 3.675 4.222 4.435 4.793 5.097 5.611 3.973 4.906 5.536 4.398 5.258 4.983 4.811 4.458 5.609 6.298 6.571 6.049 6.502 5.943 6.851 7.820 8.709 9.611 10.163 7.587 9.405 9.727 9.170 9.185 9.230 9.501 9.173 8.745 7.368 - 2.447 4.772 4.341 5.346 5.312 5.370 4.741 4.286 4.119 5.750 5.062 4.361 4.816 4.397 4.129 6.221 6.021 6.149 6.386 6.510 6.547 8.040 9.006 9.044 9.968 10.444 7.588 8.911 9.383 8.805 10.230 9.487 8.854 10.029 9.792 7.628 - 3.237 4.369 4.170 5.290 4.843 3.875 4.740 4.541 3.528 5.005 5.160 5.392 5.548 5.149 4.724 5.305 5.317 5.335 5.889 6.716 6.711 8.052 8.931 7.317 10.351 10.326 8.091 7.816 7.747 9.027 10.012 9.402 9.085 9.627 9.758 7.079 - 2.993 4.690 5.633 5.079 4.809 5.175 3.974 3.345 3.369 4.785 3.864 2.872 3.953 4.373 5.577 5.765 4.773 6.333 7.351 6.408 6.193 6.678 8.569 7.984 9.283 8.048 7.556 8.579 8.536 8.726 8.919 8.208 8.232 9.704 9.981 6.825 - 3.828 4.192 4.773 5.132 5.035 5.223 5.383 4.251 5.298 4.827 3.755 4.707 2.821 4.834 5.399 6.185 6.088 6.540 6.909 6.752 6.352 6.711 8.005 8.525 8.206 7.619 7.910 8.739 8.520 9.169 9.033 8.873 8.204 8.612 8.422 6.687 - 4.028 3.918 4.048 3.641 4.530 4.087 4.775 5.036 4.374 3.794 3.783 4.554 3.901 5.344 5.664 6.083 7.194 8.064 7.246 6.929 7.058 6.992 8.306 7.850 8.116 7.649 8.121 7.831 7.821 8.324 9.144 8.481 8.274 8.932 9.055 7.076 - 2.580 2.100 4.247 5.531 4.936 4.394 4.209 4.616 3.627 3.353 4.697 5.643 4.771 5.342 5.996 6.637 5.246 6.435 5.868 6.186 6.410 6.502 7.074 7.797 8.358 7.519 6.839 7.942 8.731 8.277 8.360 7.900 8.540 8.728 9.271 7.125 - 5.852 4.477 4.245 3.885 3.799 5.539 5.227 4.717 5.258 5.048 4.368 4.816 4.182 3.540 5.092 5.337 5.532 6.013 6.167 5.907 5.644 6.152 8.026 7.314 6.481 6.107 7.100 8.283 7.266 8.314 7.919 7.091 8.244 8.720 8.622 6.548 - 8.666 8.620 7.728 7.142 6.015 5.399 5.248 5.307 4.860 4.196 4.058 4.497 4.549 5.901 5.395 4.036 4.623 5.389 5.146 5.134 5.188 6.303 7.120 6.745 6.757 7.870 8.349 8.042 7.063 7.821 7.756 7.073 7.237 8.310 8.967 6.665 - 7.718 7.702 6.738 6.352 4.159 4.932 4.680 5.582 5.405 4.952 5.299 3.646 4.630 4.951 4.287 5.166 4.857 5.163 4.471 4.841 5.690 6.198 5.370 6.575 5.832 6.016 6.009 7.112 6.893 6.181 6.062 6.803 5.882 7.139 7.002 5.662 - 6.005 6.614 6.286 4.768 4.121 4.687 4.773 5.463 5.289 5.843 4.878 3.342 4.569 5.123 5.085 4.630 5.498 5.223 4.976 4.928 5.078 5.489 5.334 5.164 6.109 7.097 6.276 5.991 6.569 6.419 6.338 7.063 6.295 7.310 7.496 5.362 - 5.544 4.915 4.305 4.311 5.537 5.315 5.051 3.357 3.230 4.409 4.173 4.709 4.278 4.828 4.982 4.271 4.756 4.704 5.513 5.206 4.407 5.169 5.901 5.834 6.417 6.453 6.178 5.299 5.957 6.190 5.830 6.570 6.211 6.686 7.462 5.122 - 5.700 6.386 6.452 4.715 4.360 4.942 4.709 4.289 5.068 4.350 3.846 3.252 4.033 4.937 4.836 5.368 5.730 4.997 4.706 4.480 4.234 5.076 6.440 5.898 5.242 5.086 4.323 4.776 4.332 4.523 5.544 5.667 5.198 5.548 5.921 4.100 - 3.723 5.358 4.916 5.268 5.408 4.929 5.108 5.600 4.524 3.194 3.551 3.709 2.540 2.777 4.010 5.417 4.688 4.264 4.935 5.053 3.744 4.737 5.871 4.553 5.034 3.649 3.838 4.919 3.756 4.761 5.192 5.248 4.374 4.435 4.301 3.729 - 4.620 4.556 3.447 2.739 3.785 5.446 5.693 3.332 3.861 4.479 3.109 3.597 3.500 3.667 5.003 5.765 5.423 3.908 4.315 4.455 4.426 3.360 5.231 3.838 3.912 3.808 3.319 3.436 3.627 3.877 4.305 3.443 3.825 2.808 3.572 2.645 - 3.562 2.868 3.485 4.213 4.251 5.787 5.287 4.403 2.633 2.742 3.246 3.891 4.735 4.300 4.046 5.447 5.330 3.902 3.202 4.238 5.641 3.636 3.630 3.881 4.149 3.699 3.696 3.842 4.234 3.385 4.122 3.486 2.772 2.677 3.326 2.601 - 4.118 3.532 4.910 6.078 4.566 5.197 4.912 5.128 4.551 4.571 4.374 4.714 4.071 4.925 3.857 5.271 4.607 4.402 3.614 3.030 4.234 3.789 3.983 4.037 4.283 4.537 3.953 3.958 4.197 4.177 3.861 3.164 3.754 3.367 3.280 2.281 - 5.210 4.980 5.752 6.372 5.541 5.119 3.400 3.906 4.829 5.019 4.794 4.585 3.678 4.344 4.193 5.349 4.549 3.286 3.967 4.194 4.654 3.399 4.201 4.360 3.197 4.257 3.864 3.833 3.946 3.364 3.304 3.520 3.384 4.436 4.679 3.427 - 5.011 4.933 6.189 6.388 5.553 6.516 5.945 4.100 3.872 2.622 4.079 4.534 1.895 3.600 4.099 4.734 5.071 4.775 3.556 4.040 3.027 3.213 4.141 4.882 3.291 3.449 3.498 3.613 3.934 4.126 3.427 2.799 3.358 2.685 2.884 2.668 - 5.120 6.108 5.394 5.328 6.461 6.674 6.450 4.972 4.018 2.144 3.921 3.177 3.021 5.161 5.410 3.575 4.465 4.810 3.899 3.362 3.542 3.571 4.432 3.588 4.136 3.712 4.368 2.768 3.105 3.652 3.695 3.246 3.446 3.380 4.222 4.439 - 8.050 7.389 7.308 7.689 7.281 7.472 7.174 7.355 6.806 6.380 6.416 6.105 6.414 5.724 5.967 5.909 5.360 5.450 4.891 4.289 6.191 5.925 5.502 6.485 8.043 9.436 10.000 9.025 9.015 8.857 8.529 8.611 8.509 8.654 8.559 7.711 - 11.927 10.668 10.070 12.057 11.979 9.877 11.003 10.394 8.632 9.732 8.555 7.910 8.091 7.596 7.364 7.486 7.031 7.301 7.741 8.959 9.527 9.396 7.923 8.275 9.659 11.668 12.368 10.725 11.107 10.575 10.244 10.413 10.095 10.374 10.310 9.274 - 12.450 12.823 12.642 13.615 14.168 13.714 12.123 11.388 11.122 10.783 9.938 8.705 8.029 8.012 8.212 8.554 8.669 9.210 9.952 11.707 13.165 12.167 10.657 9.800 10.095 11.406 12.026 10.853 10.016 10.108 11.810 11.993 10.617 8.241 9.333 9.518 - 12.154 13.533 12.929 14.637 15.020 15.685 13.760 12.581 12.066 11.506 10.927 9.800 9.575 9.439 9.480 9.634 10.123 10.649 11.649 13.561 14.992 13.986 12.440 11.895 12.458 13.770 14.021 12.833 12.054 12.351 14.068 14.481 13.324 10.815 11.103 11.596 - 12.724 14.196 13.436 15.054 15.830 16.934 14.894 13.207 13.523 12.861 12.591 11.226 11.389 11.099 11.033 11.050 11.190 11.707 12.760 15.012 16.745 15.169 13.651 13.282 13.910 15.289 15.187 13.646 12.759 13.501 15.585 15.782 15.128 12.957 11.366 12.268 - 13.209 14.503 13.841 15.216 16.851 17.853 15.769 14.192 14.547 13.649 12.977 12.233 11.975 11.922 11.828 11.883 12.137 12.661 13.997 16.138 17.127 15.448 14.291 13.858 14.394 15.380 14.340 13.181 12.934 13.561 15.225 15.368 15.238 13.057 10.307 10.881 - 13.464 14.609 14.041 15.052 17.353 18.296 16.772 15.676 15.116 14.085 13.197 13.128 12.329 12.452 12.372 12.539 12.801 13.367 14.695 16.649 17.334 16.288 14.809 14.790 15.520 15.937 14.301 13.050 13.211 13.700 14.886 15.489 15.821 13.699 9.910 10.640 - 13.620 14.484 14.106 14.745 17.308 18.073 17.673 16.632 15.100 14.477 13.634 13.475 12.519 12.549 12.536 12.739 13.090 13.796 14.842 17.138 17.904 16.497 15.375 15.515 16.324 15.612 13.992 12.851 13.117 13.481 14.584 15.798 16.135 14.027 10.090 10.583 - 13.712 14.386 14.118 14.870 16.861 17.286 18.071 17.180 14.774 14.680 13.994 13.663 12.779 12.550 12.731 12.907 13.395 14.082 15.282 17.328 17.496 16.237 15.646 15.951 15.478 13.811 12.379 11.711 12.422 13.456 14.517 13.992 14.147 11.597 9.368 8.579 - 13.789 14.324 14.272 14.856 16.602 17.015 18.478 17.439 15.459 14.922 14.229 13.747 13.214 13.033 13.179 13.549 14.285 15.377 16.478 17.696 16.479 16.008 16.312 16.362 14.921 13.201 12.111 12.118 12.583 13.616 13.816 12.632 13.090 11.707 9.599 9.154 - 13.974 14.341 14.439 14.964 16.628 17.544 18.873 17.488 15.712 15.545 14.289 13.891 13.444 13.580 13.955 14.851 14.992 17.359 16.892 16.266 15.423 15.488 16.667 16.203 14.105 12.677 12.040 12.266 13.118 14.843 14.188 12.910 13.623 12.627 10.351 6.909 - 14.142 14.176 14.568 14.897 16.791 18.019 18.684 16.580 15.384 15.450 14.518 13.999 13.793 14.202 14.592 16.764 16.136 16.002 14.898 13.753 14.058 14.958 16.395 15.801 13.340 12.342 11.155 11.562 12.691 14.752 13.950 12.676 13.871 12.894 10.518 7.463 - 13.996 13.962 14.406 15.329 17.078 18.053 18.130 15.480 14.974 14.861 14.467 14.244 14.312 15.741 16.640 16.242 14.125 13.334 12.759 12.466 12.872 13.906 15.940 15.295 12.810 12.003 10.678 10.264 11.519 13.992 13.065 11.702 12.655 12.062 9.801 6.553 - 13.718 13.793 14.130 15.579 17.091 17.346 17.396 15.495 14.408 14.281 14.226 14.333 14.820 16.284 15.765 14.241 12.675 11.798 11.676 11.953 12.057 13.069 14.872 14.533 11.955 11.149 10.421 8.929 10.175 12.976 12.666 10.920 11.892 11.478 9.713 7.366 - 13.533 13.561 14.141 15.769 17.380 16.877 16.581 15.365 14.628 14.118 13.915 14.272 15.003 16.945 15.805 13.765 12.676 11.772 11.606 12.151 12.085 13.237 14.790 13.855 11.378 10.906 10.705 8.280 9.631 12.530 12.690 10.957 11.850 11.342 9.157 4.818 - 13.313 13.829 14.350 16.038 17.494 16.770 16.497 15.308 14.622 14.194 13.567 13.892 14.131 16.580 16.154 14.281 13.032 12.056 11.822 11.997 12.233 13.596 15.089 14.086 11.570 10.863 11.386 8.703 9.575 12.474 13.124 11.363 12.291 12.040 9.843 5.038 - 13.817 14.018 14.493 15.789 17.581 16.760 16.350 15.072 14.482 14.030 13.176 13.722 13.670 15.048 15.870 16.321 14.274 12.794 12.365 12.289 12.766 14.088 15.485 14.181 12.012 11.298 11.463 9.482 9.760 12.688 13.792 11.876 12.380 12.352 11.503 6.134 - 13.740 14.160 14.540 15.701 17.640 16.812 16.343 15.054 14.495 14.020 13.191 13.348 13.287 13.497 15.126 15.663 16.493 15.183 13.700 13.414 13.766 15.097 16.374 14.449 12.461 11.597 11.845 10.199 10.000 12.597 14.311 12.280 12.367 12.084 10.977 7.340 - 14.055 14.163 14.364 15.567 17.565 16.613 16.201 14.851 14.243 13.716 13.085 12.911 12.692 12.799 13.281 14.249 15.702 16.222 16.325 15.036 14.729 15.913 17.296 15.073 13.130 12.127 12.320 11.003 10.603 12.782 14.481 13.594 13.444 13.584 11.803 8.802 - 13.903 14.094 14.386 15.195 17.498 16.693 16.160 14.935 14.219 13.662 12.935 12.714 12.498 12.496 12.562 13.164 13.533 15.169 16.329 16.835 16.724 16.800 17.923 16.903 13.957 12.824 12.827 11.747 11.071 13.256 15.090 14.203 13.883 13.313 12.272 9.173 - 13.772 14.079 14.303 14.968 17.417 16.786 16.332 15.149 14.454 13.772 12.900 12.983 12.474 12.333 12.382 12.482 13.027 13.671 15.291 16.835 17.866 17.503 18.099 17.988 15.985 13.989 13.502 12.625 11.996 13.986 15.868 15.022 14.540 14.229 12.992 9.851 - 13.690 13.878 13.984 14.822 17.104 16.561 16.735 15.175 14.265 13.605 12.955 12.844 12.284 12.209 12.071 12.142 12.389 13.287 14.204 16.022 17.903 17.384 17.027 17.274 16.659 15.006 13.941 12.956 12.087 13.747 15.935 15.040 14.124 13.915 12.434 9.776 - 13.626 13.829 13.798 14.521 16.732 16.505 17.082 15.300 14.261 13.677 13.222 12.793 12.327 12.068 11.942 12.200 12.084 13.191 13.622 15.188 17.462 17.126 15.927 16.024 16.484 15.909 14.666 13.728 12.348 13.468 15.655 14.875 13.681 14.389 12.861 10.890 - 13.647 13.934 13.739 14.240 16.557 16.516 17.459 15.955 14.800 13.962 13.653 13.412 12.970 12.479 12.143 12.380 12.648 13.274 13.970 15.765 17.679 16.985 15.654 15.400 15.782 16.046 14.807 13.117 12.833 13.357 14.833 14.368 12.846 13.692 12.699 10.281 - 13.492 13.766 13.638 13.961 15.999 16.408 17.640 16.116 15.307 14.375 13.985 13.494 13.066 12.817 12.345 12.433 12.847 13.143 14.176 16.069 17.540 16.525 14.919 14.509 14.503 15.333 14.311 13.080 13.369 13.514 14.621 14.012 12.928 13.558 12.842 8.159 - 13.330 13.583 13.550 13.875 15.418 16.215 17.435 16.356 15.789 14.577 14.419 13.620 13.238 13.067 12.672 12.563 12.988 13.290 14.827 16.580 17.083 15.919 14.616 13.903 14.719 15.107 13.503 13.150 13.278 13.243 14.241 14.139 13.399 13.772 12.228 7.445 - 13.198 13.622 13.351 13.972 15.393 15.961 17.381 16.362 16.164 14.851 14.430 13.892 13.451 13.461 13.017 13.142 13.375 14.163 15.710 17.012 16.630 15.133 14.451 13.836 14.803 14.677 13.071 13.874 13.864 13.562 13.842 13.539 12.623 12.812 11.443 7.894 - 13.019 13.508 13.154 13.923 15.472 16.025 17.454 16.474 16.229 14.938 14.369 14.025 13.626 13.584 13.375 13.484 13.946 15.107 16.667 17.014 15.641 14.608 14.116 14.079 14.671 13.671 12.605 13.755 13.477 12.964 13.153 12.767 12.938 12.661 10.591 7.961 - 12.856 13.215 13.060 13.716 15.486 16.185 17.369 16.296 15.771 14.716 14.132 13.733 13.424 13.326 13.359 13.673 14.325 15.756 17.116 15.929 14.398 13.816 13.296 14.074 13.989 12.479 12.254 13.367 11.993 11.819 12.991 13.309 13.627 12.745 11.428 9.545 - 12.426 12.779 12.576 13.332 15.275 16.154 16.755 15.488 14.777 14.281 13.530 13.189 12.819 12.735 12.993 13.750 14.831 16.211 15.611 13.772 12.495 12.099 12.961 13.399 13.617 14.009 13.443 12.376 10.532 11.231 12.453 12.796 13.571 12.972 12.382 12.165 - 12.078 12.976 12.648 13.263 14.982 15.637 16.012 15.193 14.397 13.866 12.709 12.698 12.586 12.849 13.496 14.720 15.653 14.793 12.959 12.619 11.678 10.475 11.903 12.496 13.644 14.445 13.981 13.401 13.512 13.152 12.465 13.209 14.072 13.360 11.984 12.128 - 13.402 13.389 13.581 13.828 15.317 16.461 16.964 15.418 14.973 14.472 13.383 12.891 13.339 13.591 14.747 16.024 15.285 13.663 12.399 12.081 11.328 10.647 10.035 10.659 11.933 13.452 15.256 14.731 13.991 13.782 13.384 14.567 14.535 13.396 10.283 8.978 - 13.643 13.456 13.939 14.008 14.998 17.044 17.564 16.723 15.661 15.164 13.971 13.839 14.280 14.658 16.456 15.826 14.037 12.904 12.235 11.530 11.152 10.312 10.487 11.107 11.908 13.039 15.187 15.019 12.717 12.838 14.822 16.364 15.403 13.059 10.030 7.753 - 13.416 13.186 13.800 13.973 14.719 17.185 17.543 17.306 16.173 15.188 14.067 14.306 14.860 16.291 16.156 13.986 13.043 11.771 11.840 11.259 11.098 10.464 10.043 10.470 11.455 12.449 14.667 14.688 12.610 12.330 15.574 16.963 16.277 14.884 9.343 8.356 - 13.073 13.134 13.551 13.913 15.098 17.108 17.330 17.398 15.881 14.953 14.691 15.014 16.306 16.227 15.224 12.539 11.443 11.349 10.660 10.734 10.695 10.472 10.183 9.278 9.984 10.990 13.426 13.820 12.324 11.330 14.869 16.355 15.686 14.627 8.942 8.114 - 13.085 13.031 13.386 13.934 15.349 16.977 16.909 17.144 15.726 14.181 15.005 16.149 16.335 15.510 12.735 11.966 11.343 10.494 10.146 9.997 9.527 9.783 10.123 9.875 9.313 10.539 12.385 13.549 12.089 11.799 14.967 16.142 15.782 15.022 9.652 7.657 - 12.901 13.032 13.363 13.988 15.430 17.035 16.343 16.535 15.852 14.685 15.278 16.030 15.482 14.370 12.752 10.855 10.394 9.836 9.569 9.304 9.318 9.258 9.075 9.477 10.397 12.175 13.702 12.567 11.752 11.778 12.864 14.288 14.517 14.020 9.056 6.830 - 12.917 12.635 13.077 14.187 15.461 16.714 15.792 15.634 15.295 14.427 15.586 15.559 14.314 12.238 10.561 9.912 9.508 9.303 9.037 8.545 7.978 7.806 8.369 8.862 9.602 11.520 13.495 12.443 10.908 10.813 12.049 13.425 14.234 13.428 8.254 6.767 - 12.808 12.304 12.746 14.451 15.340 16.462 14.878 14.556 14.866 14.134 15.768 14.884 13.178 10.973 9.480 8.801 9.165 8.638 8.105 7.926 7.569 6.911 7.705 8.213 8.970 10.880 13.090 11.775 10.215 10.686 11.864 13.056 14.089 13.233 7.916 6.357 - 12.769 11.993 12.607 14.888 15.657 16.229 14.370 13.847 14.296 14.816 15.545 14.204 12.250 10.597 9.321 8.395 8.324 8.237 7.789 7.830 7.319 7.165 7.573 7.651 8.506 10.460 12.772 11.423 9.854 10.602 11.971 12.820 14.155 13.090 8.613 6.912 - 12.415 12.076 12.715 15.034 15.675 15.981 14.493 13.807 14.339 15.239 15.233 13.550 11.434 10.292 9.306 8.453 8.120 7.749 7.326 7.533 7.382 7.386 7.458 7.459 8.237 10.254 12.700 11.458 9.914 10.365 12.046 12.941 14.548 12.714 9.028 7.241 - 12.148 11.887 12.507 14.933 15.457 15.820 14.684 13.887 14.791 15.554 15.056 13.174 10.727 9.670 9.667 8.897 8.573 8.011 7.187 6.894 7.325 7.349 7.657 7.442 8.306 10.385 12.752 11.772 10.573 10.411 12.319 13.417 14.371 11.978 9.676 7.940 - 12.200 11.956 12.524 14.736 15.165 16.025 15.342 14.308 14.950 15.747 15.356 13.743 10.984 10.273 9.408 8.930 9.211 8.762 8.666 7.783 7.250 8.025 8.104 8.373 9.002 10.979 13.086 12.173 11.223 10.796 13.099 13.634 13.980 12.814 10.016 8.479 - 12.319 12.208 12.585 14.315 14.682 16.361 16.405 16.039 15.509 15.770 16.096 15.673 12.938 12.390 11.079 9.678 10.158 10.091 9.147 8.142 8.057 8.675 10.335 10.285 9.843 12.037 13.865 12.911 12.055 12.608 15.590 15.476 14.751 14.114 10.967 10.390 - 12.378 12.076 12.347 13.586 14.243 15.888 16.818 17.521 15.975 16.017 17.056 16.637 16.440 14.656 11.977 11.562 11.198 10.572 10.585 10.285 10.253 10.324 10.175 10.266 11.081 13.011 14.671 13.385 12.511 14.093 16.282 15.730 14.641 13.942 11.558 10.794 - 12.445 11.920 12.315 13.413 13.927 14.681 17.216 17.418 17.012 16.265 15.697 16.572 16.632 15.864 12.698 11.887 11.468 10.986 10.936 10.423 10.092 9.830 9.757 9.975 11.084 13.405 14.737 13.652 12.610 14.641 16.737 16.104 14.707 13.716 11.026 10.733 - 12.534 11.844 12.503 12.955 13.492 14.095 16.721 17.392 17.850 16.306 16.001 16.270 16.898 16.516 12.998 12.394 11.920 11.119 11.007 10.699 10.205 10.062 9.897 10.282 10.749 12.664 14.825 14.258 12.908 15.200 17.063 16.304 15.070 13.638 11.119 10.148 - 12.620 12.047 12.591 12.506 13.520 14.018 16.262 17.311 18.068 16.970 16.019 16.190 16.909 17.206 13.882 13.187 12.248 11.483 11.439 10.958 10.745 10.315 10.233 10.416 10.555 11.921 14.508 14.549 12.961 15.454 17.211 16.447 15.484 13.917 10.951 9.257 - 12.802 12.277 12.695 12.723 13.362 13.951 16.015 17.122 18.187 17.488 16.281 16.108 16.923 17.530 15.366 13.735 12.599 11.865 11.598 11.383 11.054 10.720 10.635 10.572 10.592 12.685 14.391 13.851 13.027 14.897 17.047 16.274 14.991 13.431 11.074 9.515 - 12.724 12.548 12.784 12.727 13.208 13.881 15.675 16.880 18.032 17.467 16.617 15.918 16.256 17.392 16.246 14.433 12.870 12.206 11.723 11.499 11.184 11.208 11.393 11.218 10.695 12.398 14.678 14.375 13.739 14.726 16.895 16.198 15.054 13.231 11.597 10.477 - 12.784 12.695 12.845 12.613 13.179 13.920 15.705 16.776 17.834 17.147 16.252 15.557 16.057 17.128 16.654 15.032 13.161 12.257 11.780 11.456 11.438 11.355 11.505 11.077 10.043 11.953 14.331 13.920 13.307 13.407 15.817 15.186 13.345 11.481 10.841 10.492 - 12.725 12.812 13.009 12.596 12.877 13.719 15.594 16.449 17.367 16.450 15.976 15.045 15.471 16.707 17.091 15.046 13.444 12.425 12.033 11.904 11.820 11.701 11.831 11.463 10.583 11.181 13.675 13.737 13.763 12.983 14.283 14.133 12.670 10.915 10.304 10.278 - 12.754 12.424 12.784 12.224 12.451 13.380 15.361 16.064 16.534 15.566 14.868 14.134 14.633 15.656 16.651 14.250 12.668 11.940 11.527 11.600 11.571 11.436 11.613 11.397 10.456 10.107 13.117 13.430 13.901 12.408 12.538 13.251 12.700 11.346 9.922 8.970 - 12.732 12.551 12.418 12.153 12.496 13.519 15.055 16.242 15.386 15.055 14.755 13.704 14.063 14.665 16.180 15.023 13.019 11.879 11.628 11.604 11.339 11.326 11.628 11.524 10.784 11.158 14.265 14.301 13.427 10.998 10.712 12.864 13.096 12.081 10.176 9.431 - 12.731 12.630 12.396 12.288 12.520 13.771 14.839 16.372 14.793 14.305 14.539 12.924 12.652 13.290 15.444 15.017 14.206 12.590 11.707 11.871 11.721 11.730 12.090 12.437 12.059 12.531 14.347 14.424 13.493 10.966 9.962 12.323 13.099 12.444 9.387 7.805 - 12.686 12.576 12.386 12.194 12.495 13.872 14.635 16.066 14.396 13.464 13.920 12.146 11.636 11.865 12.763 13.154 14.394 13.807 13.479 12.931 12.944 13.245 12.810 12.450 12.368 13.007 13.700 13.605 12.545 10.305 9.350 11.269 12.595 11.855 8.900 6.728 - 12.664 12.430 12.496 11.926 12.275 13.869 14.271 15.000 13.134 12.802 13.015 11.485 9.999 10.377 11.200 11.137 12.535 13.641 13.641 13.777 13.923 13.572 12.402 11.358 11.715 11.951 13.894 13.655 10.977 9.977 8.379 10.652 12.289 11.515 7.522 5.349 - 12.838 12.622 12.521 11.631 12.133 13.565 13.591 13.641 12.102 12.202 12.244 10.931 8.695 8.428 9.749 9.408 10.062 10.697 12.542 14.113 14.308 13.503 11.015 10.051 10.653 12.115 14.049 13.900 10.963 9.731 8.729 9.853 11.762 11.015 7.185 6.899 - 12.699 12.497 12.367 11.635 12.265 12.795 12.003 11.808 11.607 11.720 11.650 10.723 7.784 8.479 9.293 8.999 9.463 10.320 11.410 12.101 12.305 12.562 11.633 9.272 9.092 9.402 10.924 11.980 11.094 10.700 9.228 9.341 11.813 11.429 9.149 10.146 - 12.508 12.560 12.667 11.929 12.369 12.462 11.356 11.075 11.095 10.453 10.464 9.660 8.201 8.450 8.494 8.755 8.699 9.274 9.084 9.745 10.801 12.260 11.441 9.304 7.340 6.548 6.759 8.673 11.137 11.552 8.597 8.529 11.190 10.958 8.528 8.831 - 12.164 12.176 12.586 12.070 11.831 11.753 10.301 10.081 10.233 9.770 9.909 8.730 7.504 7.718 7.367 8.206 8.635 8.964 8.548 9.242 9.708 10.910 10.190 8.097 6.984 6.069 5.682 5.617 8.721 10.381 7.968 7.647 10.085 9.303 7.019 5.558 - 11.518 11.711 12.478 11.552 11.075 11.476 10.000 9.360 8.531 9.037 9.224 7.424 6.320 5.370 5.819 6.213 5.692 6.733 7.807 7.930 6.663 7.337 7.292 6.436 6.443 6.459 5.765 5.715 6.268 7.651 6.345 7.292 8.269 7.949 6.596 5.875 - 10.673 11.346 11.838 10.221 10.160 10.629 8.521 8.354 8.532 8.891 8.592 8.497 5.820 5.370 6.379 5.363 6.673 6.097 6.747 7.205 5.482 6.082 5.377 6.850 7.280 6.142 5.943 5.356 4.550 5.174 6.286 6.744 7.808 8.439 9.188 9.343 - 9.995 11.543 11.408 9.486 8.773 9.393 9.154 7.182 8.323 8.794 9.017 8.620 7.773 7.625 7.862 7.085 7.409 6.719 8.199 8.725 8.591 7.922 7.679 7.604 8.366 8.616 8.397 8.189 7.881 7.935 8.568 9.087 9.692 10.519 11.396 11.485 - 10.529 11.119 11.768 9.937 9.378 9.567 10.049 9.289 9.712 9.558 9.214 9.418 9.364 9.125 8.732 8.991 8.441 8.311 10.525 11.151 10.050 9.718 9.537 9.507 10.925 11.087 10.592 10.020 9.866 9.776 10.350 10.560 10.912 10.881 10.647 10.106 - 11.266 10.807 11.236 11.360 11.147 9.811 10.383 10.161 9.765 9.441 8.551 7.905 8.162 7.700 8.399 7.855 8.692 9.816 11.756 11.342 10.326 9.557 8.933 9.724 11.482 11.628 10.266 9.702 9.781 10.037 9.617 10.368 10.775 11.492 11.133 11.480 - 11.781 11.268 11.856 13.210 13.095 12.336 12.099 12.006 11.447 10.982 9.448 8.813 8.775 9.423 9.830 9.193 10.010 11.734 11.979 12.116 11.291 9.078 9.690 10.566 12.417 12.636 10.454 9.743 10.197 11.355 10.290 10.551 12.209 12.409 11.167 10.713 - 11.557 11.128 11.665 13.784 13.984 14.068 13.213 11.743 11.393 10.881 9.127 9.958 9.690 9.331 10.186 10.787 12.020 13.741 13.500 12.342 11.415 10.586 9.890 10.940 12.579 12.860 10.448 9.930 11.255 12.159 9.891 10.673 13.400 12.826 11.556 10.978 - 11.651 11.354 11.361 13.724 13.718 14.231 12.746 12.260 11.164 11.008 10.350 10.237 9.601 9.854 10.488 11.075 11.965 13.225 12.638 10.330 10.087 10.393 10.106 8.869 12.074 12.418 11.098 9.351 10.363 12.375 10.091 10.130 12.415 12.455 11.163 10.451 - 12.074 10.804 10.966 12.827 13.714 13.830 12.030 11.070 10.065 10.372 9.663 9.114 8.268 8.872 9.443 9.972 11.372 12.379 11.364 9.565 9.815 9.760 10.327 8.441 10.842 12.198 11.133 9.656 11.784 12.178 10.959 10.449 11.757 12.084 12.005 12.374 - 12.868 11.772 11.397 10.147 10.393 10.855 8.826 8.646 9.392 9.613 9.786 9.093 8.678 8.186 8.597 9.549 9.548 10.958 11.272 10.194 10.750 10.163 10.139 10.520 11.073 12.431 11.348 11.213 12.343 13.225 12.887 13.532 13.683 14.258 14.290 14.574 - 10.736 11.233 11.098 10.814 9.988 7.957 9.273 8.816 9.219 8.805 9.803 9.188 7.302 7.765 8.537 8.122 9.367 10.216 9.946 9.553 10.891 10.467 10.442 11.206 10.970 12.814 11.734 10.991 11.869 12.826 12.735 14.273 14.340 14.321 14.950 15.081 - 11.918 12.295 11.810 10.583 9.013 7.555 8.678 8.627 7.512 8.829 9.151 8.266 8.075 9.076 9.848 8.871 8.500 10.497 11.157 10.618 10.235 10.528 11.610 10.250 10.883 12.648 11.837 11.559 12.180 12.394 12.770 14.481 15.288 15.637 15.318 15.058 - 12.108 10.644 10.656 11.129 10.651 8.990 9.318 8.627 8.554 8.152 7.706 8.416 8.292 9.152 9.021 8.868 9.995 10.826 12.439 11.500 11.254 10.766 11.547 10.142 9.827 11.416 11.256 11.639 12.355 13.104 12.440 13.883 15.143 15.898 15.385 15.727 - 11.597 11.830 10.616 10.433 10.879 10.147 8.380 9.312 9.490 8.817 9.693 9.165 8.504 9.863 9.088 9.262 10.199 10.678 11.852 11.733 11.951 11.920 11.578 10.735 10.681 12.108 11.485 11.290 11.639 13.543 13.994 13.675 14.921 16.093 16.115 15.976 - 13.127 13.028 12.117 11.433 11.033 9.399 10.608 10.543 9.238 9.065 9.613 9.818 9.885 10.057 9.356 9.196 9.608 10.952 12.014 12.585 12.223 12.012 10.649 10.683 12.248 12.316 12.211 11.735 11.851 12.692 13.429 13.572 14.890 15.816 15.986 16.620 - 10.227 10.925 10.078 10.559 9.964 9.463 8.664 7.923 8.058 9.105 9.305 9.222 10.035 9.706 9.228 9.207 9.466 10.508 11.624 12.542 11.982 12.225 11.814 10.483 12.574 12.134 12.390 12.398 13.023 13.449 13.458 14.232 15.288 15.784 17.133 16.415 - 11.809 11.097 10.485 9.379 9.683 9.447 8.810 9.221 7.483 8.162 8.925 9.073 8.794 9.479 9.815 10.704 10.262 10.575 11.901 13.131 12.094 11.627 11.840 13.331 12.954 12.471 12.514 12.661 13.367 13.861 14.388 14.949 15.618 16.454 16.364 16.033 - 11.219 9.186 9.258 9.005 8.951 8.928 9.135 9.174 7.305 7.794 9.023 8.554 7.790 9.162 8.810 9.219 8.726 9.309 11.804 12.792 14.378 13.418 13.065 13.350 12.697 11.828 11.230 12.110 12.420 12.412 12.558 13.029 13.295 14.495 15.872 15.240 - 8.500 6.864 7.527 7.090 5.295 5.820 5.919 5.241 4.715 4.498 4.781 4.985 5.017 5.462 6.218 5.924 6.215 6.891 8.933 10.048 12.204 11.451 9.565 7.690 7.595 7.727 7.891 7.793 7.516 7.274 8.297 8.778 9.257 9.679 10.326 11.638 - 5.437 4.640 5.408 3.936 3.459 3.864 4.095 3.682 3.165 4.092 4.316 4.266 4.005 4.082 4.523 5.861 5.623 2.980 5.252 5.507 5.791 6.058 5.407 5.684 4.267 4.300 4.585 4.247 4.266 5.016 4.976 5.698 6.481 7.791 8.259 6.877 - 2.953 2.973 4.416 4.428 5.178 4.995 5.606 5.003 3.720 2.965 4.677 4.664 4.938 3.829 3.731 4.838 3.702 3.769 5.252 5.400 5.443 5.274 5.025 5.263 5.056 3.564 4.176 4.086 4.523 4.071 4.951 5.226 6.103 7.568 8.478 7.011 - 7.416 7.661 7.763 9.009 9.453 9.446 10.458 10.248 10.030 9.361 8.493 7.961 7.962 7.057 5.536 6.798 7.943 8.745 7.769 7.967 9.967 10.713 11.122 11.061 11.479 11.339 11.123 10.556 9.653 9.274 9.884 9.141 8.959 9.234 9.225 7.998 - 9.875 8.622 8.755 10.624 12.375 11.902 12.539 13.106 13.265 12.301 11.646 12.013 12.188 11.988 10.890 9.378 11.407 12.148 10.585 11.800 12.541 13.198 13.889 14.413 15.043 14.753 13.949 13.482 12.813 12.388 12.927 12.811 12.873 13.223 13.193 11.890 - 11.697 11.542 11.882 12.661 13.858 14.085 14.423 13.121 12.149 11.998 11.238 10.806 10.323 10.892 10.792 10.568 11.069 11.748 12.304 13.674 15.242 14.875 13.892 14.803 14.312 15.172 13.495 12.941 13.862 13.521 12.300 12.143 13.151 13.848 13.018 12.462 - 12.198 12.828 12.087 13.176 14.970 16.332 15.680 16.205 15.048 13.279 13.053 12.904 11.885 12.096 12.308 12.657 13.015 14.054 15.814 16.357 16.229 15.657 15.756 15.007 14.177 15.136 14.653 14.719 15.080 13.127 11.439 13.557 15.634 14.439 11.380 10.014 - 12.339 11.929 12.585 12.756 13.931 15.858 16.670 17.463 15.532 14.761 13.865 13.567 12.930 12.646 12.933 13.265 14.006 15.350 16.732 16.796 15.492 15.400 16.139 15.518 13.875 15.142 14.483 14.683 15.353 12.935 12.261 14.049 16.753 15.300 11.380 8.973 - 12.213 11.502 12.294 12.845 13.532 14.519 16.405 17.844 17.785 15.152 14.777 14.332 12.893 13.206 13.267 13.543 14.177 16.407 17.174 15.597 14.821 15.100 16.133 15.833 13.555 14.714 14.359 14.062 15.104 13.282 13.528 14.070 15.574 14.466 11.323 9.956 - 12.143 11.782 12.290 12.700 13.590 14.561 15.571 17.472 17.959 15.611 14.833 14.364 13.128 13.329 13.460 13.860 15.037 17.166 17.043 15.321 14.690 15.047 16.017 15.569 13.493 14.219 14.674 14.185 15.280 13.797 14.786 14.593 15.940 15.117 11.253 10.004 - 12.216 12.281 12.601 13.161 13.879 14.717 15.229 17.736 17.515 16.538 15.910 14.889 13.530 13.676 13.948 14.528 15.800 17.354 16.711 15.159 14.984 15.306 16.195 15.507 13.325 14.408 14.652 13.948 14.837 13.956 15.881 15.682 15.290 13.859 10.774 9.862 - 12.104 12.071 12.346 13.286 14.123 14.405 15.498 17.722 17.062 16.648 15.392 13.737 13.939 13.833 13.851 14.283 16.075 16.932 16.611 14.976 14.671 15.066 15.812 15.057 12.983 15.073 15.283 14.326 14.741 14.097 16.253 16.264 16.056 14.554 9.205 9.317 - 12.221 11.942 12.108 13.168 14.043 14.582 15.757 17.833 17.000 16.285 15.519 13.797 13.667 13.509 13.412 14.021 15.606 17.092 16.921 14.689 14.462 14.862 15.333 14.415 12.595 14.790 15.026 14.143 14.703 13.651 15.533 15.517 15.478 14.869 8.708 8.598 - 12.079 10.999 11.875 12.513 13.437 14.460 16.411 17.694 17.009 15.702 14.581 13.759 12.804 12.734 12.600 13.335 14.632 17.118 16.758 14.375 14.147 14.361 14.664 13.170 11.945 14.574 14.431 13.210 14.067 13.147 14.331 14.645 14.593 14.302 9.190 8.340 - 11.901 11.972 10.905 12.079 13.316 14.752 16.094 16.276 15.630 15.174 12.526 11.679 12.211 12.063 11.840 11.420 12.162 14.730 15.820 14.303 14.330 12.826 11.730 10.208 12.544 12.967 12.443 12.014 12.569 11.885 11.151 11.562 11.568 11.245 9.548 9.150 - 11.683 10.478 11.187 10.680 11.208 11.667 12.164 12.794 12.241 11.863 11.692 11.017 10.214 9.059 8.245 8.803 9.418 11.277 12.640 12.795 11.512 10.436 10.334 12.072 13.136 12.841 12.074 10.883 13.406 12.927 10.416 11.085 11.997 10.935 9.960 10.122 - 13.460 12.936 11.783 11.780 10.801 11.549 11.112 10.168 10.646 9.904 8.963 7.925 8.043 8.534 8.543 9.111 9.513 10.253 11.524 13.121 12.198 10.279 11.133 13.294 15.262 15.100 14.883 13.883 15.427 15.416 13.402 12.843 13.346 13.542 13.294 12.275 - 13.979 14.108 13.412 11.497 11.340 10.740 10.515 9.111 9.430 10.329 9.908 8.691 8.842 8.421 9.099 8.986 9.107 10.400 10.735 12.231 12.011 11.384 12.843 14.375 16.331 16.988 15.780 15.072 15.740 15.177 14.190 14.633 14.869 15.234 14.407 13.632 - 13.574 13.383 12.382 11.377 11.411 10.607 9.533 9.744 10.450 10.485 9.007 8.906 9.243 8.806 9.589 8.964 9.961 9.026 10.665 12.124 11.862 11.860 13.500 14.865 16.413 17.058 16.029 15.638 16.235 15.824 15.937 15.599 15.838 15.177 15.278 14.404 - 11.104 10.432 10.438 10.241 9.199 8.366 8.849 10.270 10.629 10.842 9.826 9.443 8.527 9.313 8.900 9.043 10.392 10.713 10.620 13.129 12.687 12.278 14.126 15.591 17.374 17.793 16.801 15.542 16.896 16.370 16.362 15.108 15.973 16.442 16.004 14.446 - 10.851 10.534 10.653 9.610 8.920 9.332 9.847 8.681 9.631 10.482 8.418 7.570 7.092 9.297 8.817 8.518 8.288 11.206 12.096 14.765 13.851 11.675 15.247 16.347 17.535 17.225 16.344 17.461 17.946 17.128 16.409 16.116 16.071 16.035 15.547 14.950 - 11.001 9.866 9.228 7.705 8.277 9.250 8.080 10.578 10.839 9.778 8.782 9.494 8.624 7.415 8.361 9.427 10.249 10.210 11.312 13.328 13.121 12.927 14.383 16.333 16.968 16.129 15.804 17.081 17.374 17.461 16.013 15.533 15.486 15.263 15.564 14.707 - 13.256 13.559 12.674 11.141 9.663 10.500 9.657 10.243 8.843 8.614 8.492 9.282 8.949 8.784 8.372 9.406 10.912 12.299 12.135 13.161 12.754 13.048 15.291 16.660 16.433 16.838 15.604 16.349 16.473 15.800 16.131 14.923 15.206 15.032 15.199 14.805 - 13.405 14.249 13.295 9.806 10.943 10.288 10.971 10.651 9.561 9.240 9.632 9.583 8.741 7.842 7.489 8.042 9.870 11.920 11.526 13.318 12.006 12.286 14.683 16.223 15.377 14.346 14.037 14.980 14.398 13.234 13.668 13.881 14.129 14.240 13.733 13.231 - 14.852 13.064 12.273 9.632 10.725 10.297 8.856 8.871 9.794 8.823 7.770 8.740 8.026 8.662 8.572 7.198 9.769 10.323 12.334 12.839 11.207 11.692 12.292 14.053 13.801 12.728 12.623 14.567 13.334 12.975 12.162 13.180 13.106 12.565 12.890 12.517 - 14.877 13.025 12.765 11.295 12.410 13.182 13.861 14.188 13.744 13.356 12.939 11.842 11.278 11.091 11.669 11.684 12.027 12.797 13.046 13.145 12.374 12.285 12.191 13.231 13.941 12.818 11.744 12.376 11.077 11.712 10.901 10.911 10.972 9.632 9.571 9.405 - 13.543 13.997 12.448 13.032 13.412 13.815 15.102 14.703 14.569 14.407 13.285 12.779 12.503 12.134 12.121 12.300 13.092 14.042 14.221 13.840 12.303 12.074 11.669 12.057 12.677 11.903 12.498 12.853 10.153 9.211 9.323 11.307 12.386 10.535 8.485 7.439 - 13.102 13.183 12.461 12.061 12.503 14.048 14.681 15.319 13.784 13.578 13.071 12.470 10.979 11.583 11.761 12.502 13.261 13.818 14.122 12.755 12.104 11.541 11.858 12.268 12.961 13.221 12.954 12.591 11.201 10.104 9.359 11.304 12.365 10.541 8.846 7.583 - 13.216 12.337 12.454 11.419 12.306 13.596 14.085 13.532 13.056 12.079 12.690 11.373 9.679 10.359 11.247 12.501 13.392 13.023 12.054 11.596 11.110 10.876 11.664 12.190 13.021 13.300 12.827 11.417 10.601 9.632 7.753 9.630 11.610 10.701 8.860 7.334 - 12.962 12.609 12.648 11.250 11.798 13.001 13.030 11.938 11.044 10.566 11.710 11.019 9.432 7.425 9.268 11.381 11.305 10.510 10.178 10.268 10.568 10.299 11.599 11.979 13.220 13.655 12.091 10.739 10.864 10.303 8.863 10.902 13.078 12.275 9.803 9.051 - 12.777 12.726 12.706 11.428 11.735 12.470 12.333 11.836 11.043 11.158 11.250 10.403 8.765 8.032 9.767 11.404 11.005 10.687 10.749 11.025 10.345 11.291 11.921 12.407 12.943 13.687 12.233 10.090 10.172 10.538 9.541 11.997 14.144 13.905 11.228 8.722 - 12.405 12.289 12.115 10.398 11.443 12.491 13.419 12.672 11.011 10.887 10.704 9.482 9.437 10.659 11.741 13.419 14.419 13.135 12.223 12.119 12.058 11.411 10.669 11.456 12.048 12.668 10.518 9.380 11.140 11.205 10.258 10.695 13.036 12.350 9.191 7.785 - 12.458 12.279 12.372 11.337 12.412 13.465 14.742 14.174 13.776 13.311 11.498 11.606 11.066 11.735 12.012 13.538 15.289 14.923 13.378 12.898 12.931 13.232 12.781 12.024 11.942 11.918 11.014 11.213 11.770 10.937 11.366 11.886 12.578 12.821 10.145 8.022 - 12.185 11.780 11.883 11.810 11.886 13.464 14.771 15.569 14.563 13.599 11.739 11.936 10.755 11.574 11.905 13.122 15.280 15.617 13.569 12.331 12.467 13.205 13.113 12.050 11.557 12.168 11.833 11.766 11.892 10.704 11.064 12.567 12.843 13.070 10.214 6.233 - 12.140 11.842 11.633 11.670 11.812 13.682 15.370 16.134 15.427 13.810 13.077 12.051 11.456 11.995 12.411 13.462 15.637 15.801 13.948 12.777 12.707 13.470 13.663 12.774 11.855 13.376 12.828 12.878 12.543 10.988 11.155 12.927 12.756 11.391 9.486 7.394 - 12.188 11.976 12.024 12.270 12.638 14.616 15.777 15.409 15.121 13.608 13.328 12.586 12.130 12.397 12.917 14.423 15.406 14.540 13.590 12.957 12.823 13.024 13.419 13.273 13.385 12.833 12.260 12.214 10.712 9.391 10.602 12.302 12.152 11.447 9.801 8.643 - 10.465 10.773 11.945 12.430 12.971 13.485 14.644 14.067 13.096 12.578 11.828 11.273 10.929 11.909 12.902 13.728 14.401 12.004 10.955 10.582 10.486 10.804 12.017 11.812 10.778 9.751 9.567 10.353 9.017 7.514 8.450 10.732 10.210 9.467 8.775 9.318 - 10.089 10.336 11.112 11.424 12.831 13.591 13.286 12.346 11.779 11.105 10.698 9.532 9.990 10.797 12.861 13.321 12.032 10.190 9.582 9.339 9.287 9.684 11.551 11.657 9.256 7.729 8.264 9.240 7.898 6.264 7.046 8.923 8.498 8.176 6.625 7.467 - 8.321 9.639 9.575 8.156 7.627 8.036 8.330 8.127 8.781 7.564 7.034 6.285 5.886 5.985 7.709 7.828 8.881 6.278 6.133 6.003 4.875 6.193 6.660 6.575 5.240 5.750 4.587 5.321 5.495 5.199 5.197 5.189 5.724 5.394 5.128 3.844 - 7.806 9.120 8.998 7.444 7.136 7.017 7.602 8.039 8.628 7.577 6.439 5.735 5.438 5.291 7.263 7.761 7.677 5.594 5.688 5.250 4.509 5.090 5.656 5.830 5.155 6.082 5.342 5.521 5.290 4.953 5.155 3.912 4.052 4.263 3.979 3.797 - 8.203 8.167 7.949 8.460 8.899 8.832 9.108 8.727 8.284 6.286 5.504 5.538 5.092 3.349 4.540 6.365 6.866 5.678 4.633 4.102 4.767 4.840 4.536 5.525 4.790 5.566 4.944 4.677 5.050 4.118 4.624 3.468 4.025 4.228 4.038 3.499 - 7.478 7.746 8.037 7.944 8.139 7.872 8.061 8.220 8.136 6.128 5.986 4.335 3.634 3.712 5.079 4.750 5.202 5.453 5.105 4.463 4.439 3.977 5.310 6.145 5.826 5.286 4.746 4.333 4.449 4.848 4.694 4.979 5.432 5.375 4.755 3.753 - 5.789 8.472 10.143 10.293 8.888 9.667 9.923 9.157 9.181 8.959 8.235 7.539 7.755 7.039 6.028 7.191 8.613 7.827 7.812 8.216 7.240 8.121 6.922 8.092 7.999 7.284 7.795 7.633 7.559 8.038 8.780 9.277 9.824 9.742 9.050 7.984 - 11.247 9.758 9.141 8.115 9.084 8.794 9.409 9.906 10.683 9.911 8.460 8.158 8.336 8.266 8.304 8.848 9.974 10.696 8.746 8.688 8.918 8.502 9.005 9.406 9.308 8.094 8.070 7.887 8.201 8.491 8.098 8.151 8.728 8.430 8.609 8.782 - 11.702 10.504 10.335 11.781 11.635 12.810 13.753 13.922 14.013 12.933 12.023 11.935 11.895 11.458 11.844 12.424 13.319 14.551 13.471 13.082 12.582 12.538 13.167 13.919 13.610 12.218 11.827 12.210 12.544 11.800 10.523 12.069 11.860 10.173 9.989 10.105 - 11.672 10.910 11.277 11.982 12.307 13.817 15.612 16.784 16.214 14.443 13.161 13.136 12.196 12.340 12.392 12.937 14.293 15.870 15.146 13.744 13.285 13.282 13.956 15.564 15.276 12.998 12.597 13.181 13.919 12.792 11.284 14.096 13.538 12.035 10.349 10.663 - 11.570 11.159 11.617 12.391 12.536 13.607 15.312 16.337 16.682 15.472 13.398 13.314 12.700 12.737 12.549 12.924 13.994 15.674 16.309 14.841 13.775 13.608 14.143 15.435 16.000 14.488 13.172 13.081 13.627 13.071 11.297 13.579 13.730 10.957 10.203 11.144 - 11.406 11.031 11.468 12.470 12.549 13.435 15.008 16.145 16.885 16.157 13.307 13.799 12.698 13.061 12.817 13.450 14.279 15.694 16.517 15.584 14.550 14.127 14.240 15.446 16.330 15.282 13.889 13.774 14.121 13.384 12.170 14.327 13.904 11.719 10.122 10.950 - 11.063 10.614 11.160 12.420 11.858 13.458 14.768 15.905 17.024 15.359 14.115 13.883 12.640 13.099 12.676 13.329 13.985 15.645 16.938 14.857 14.203 13.853 13.868 15.135 16.185 14.548 13.456 13.504 13.811 12.632 13.274 14.863 14.442 12.517 9.090 8.392 - 10.728 10.491 11.379 12.281 12.330 13.189 14.238 15.862 17.121 16.673 14.281 13.975 12.975 12.925 12.795 13.516 14.256 16.561 16.977 14.947 14.227 13.945 13.998 15.553 16.355 14.706 13.385 13.612 14.134 12.445 14.492 15.854 15.578 13.895 8.825 8.372 - 11.231 11.049 11.945 12.557 12.796 13.333 14.341 15.728 17.147 17.168 14.738 14.294 13.579 13.323 13.345 13.927 15.097 16.830 16.776 15.058 14.342 14.227 14.512 16.043 16.174 14.358 13.177 13.098 13.088 12.417 14.527 15.418 15.095 12.819 9.544 8.814 - 11.145 10.948 11.841 12.641 12.823 13.094 14.263 15.475 16.699 17.166 14.962 15.324 13.791 13.929 13.788 14.501 15.848 16.556 16.120 14.652 14.305 14.494 14.622 15.775 15.693 14.102 12.938 12.666 12.158 12.528 15.193 15.405 14.997 12.262 9.240 9.294 - 10.296 9.915 11.537 12.020 12.061 12.400 14.026 14.351 16.901 17.018 15.851 15.342 13.628 13.776 13.818 14.323 15.958 16.661 15.567 14.264 13.716 13.772 14.052 15.316 15.411 13.647 12.240 12.028 11.311 11.766 14.940 14.872 14.603 12.199 8.837 8.873 - 10.579 10.154 11.518 11.618 12.415 12.616 13.957 14.741 17.141 17.248 15.767 14.973 13.643 13.418 13.706 14.497 16.209 16.384 14.923 13.841 13.504 13.669 13.864 15.384 15.596 13.572 12.370 12.282 11.430 12.648 15.625 15.272 14.813 12.531 9.497 7.920 - 10.917 10.910 11.735 12.333 12.615 13.139 14.313 14.892 17.188 17.216 16.515 15.283 13.711 13.889 14.365 15.430 16.805 16.099 14.832 14.216 13.855 13.810 13.936 15.448 15.776 14.058 12.742 12.384 11.395 14.141 16.164 15.508 14.561 12.241 9.950 7.884 - 10.658 10.515 11.720 12.304 12.169 13.081 14.231 14.520 17.078 16.960 16.653 15.361 13.900 13.972 14.533 15.614 16.432 15.442 14.516 14.033 13.683 13.935 14.021 15.325 15.600 13.877 12.528 12.032 11.800 14.607 16.311 15.778 14.556 12.931 10.658 9.050 - 10.135 9.980 11.466 11.788 12.118 12.476 13.773 14.674 17.232 17.489 15.819 15.095 13.538 13.636 13.789 15.484 16.850 14.711 13.245 12.830 12.692 13.060 13.077 14.711 15.210 13.312 11.872 11.378 11.159 14.743 16.391 15.521 14.558 12.047 9.759 8.228 - 10.558 10.936 11.784 12.182 12.868 12.932 14.262 15.333 17.396 17.236 15.676 15.180 14.212 13.954 14.398 16.286 16.854 14.698 13.282 13.002 13.028 13.407 13.345 14.784 15.603 14.002 12.298 11.827 11.572 15.440 16.936 16.106 15.123 12.657 10.135 9.053 - 10.748 11.122 11.905 12.748 13.304 13.290 14.745 16.198 17.017 17.348 14.754 14.812 14.741 14.068 15.122 16.750 16.434 14.036 13.116 12.948 12.714 13.191 13.309 13.803 14.820 13.327 12.285 11.742 11.532 15.192 16.814 16.161 15.164 12.916 10.336 9.634 - 10.349 10.706 11.273 12.525 13.066 13.182 14.640 16.246 16.797 16.847 14.642 13.730 13.913 13.445 14.630 16.031 15.756 12.951 12.008 11.834 11.864 11.770 11.739 12.659 13.203 12.548 11.658 11.024 10.945 14.186 15.826 15.351 14.352 12.038 9.822 10.707 - 9.593 10.531 11.152 11.696 12.970 13.413 14.296 16.862 17.283 15.608 14.751 13.965 12.981 13.713 14.926 16.166 14.611 12.815 11.577 11.573 11.548 11.363 11.423 12.172 12.399 13.357 11.612 10.413 9.987 13.762 15.509 15.139 14.183 11.793 9.857 10.788 - 10.087 10.782 11.094 12.373 13.343 14.136 16.099 17.490 16.670 14.626 14.803 14.155 13.133 13.919 15.229 16.232 14.074 12.459 11.319 11.426 10.769 10.673 10.966 10.683 13.514 14.358 11.480 9.843 9.374 11.311 13.734 14.183 12.516 11.827 9.250 9.784 - 10.063 10.657 11.052 12.265 13.748 14.934 15.819 16.531 14.797 13.854 13.332 13.531 12.954 13.588 14.743 15.146 14.037 12.203 11.621 10.638 10.245 10.221 10.631 11.308 13.273 13.842 12.303 10.768 10.111 9.959 13.661 14.867 13.693 13.541 11.369 9.268 - 9.568 9.259 9.511 10.627 11.892 14.420 15.965 14.902 13.199 11.885 11.612 11.278 11.205 11.399 13.930 14.852 12.442 10.244 9.565 8.876 8.152 8.280 8.647 9.428 12.302 13.468 10.476 8.780 8.142 7.961 12.606 14.157 12.134 12.638 10.757 9.470 - 9.492 10.320 10.986 12.305 14.094 15.013 14.845 13.296 12.211 11.840 11.556 11.781 11.747 12.145 13.629 14.014 12.665 10.861 9.429 9.158 9.070 8.909 9.117 9.771 11.542 12.713 11.026 9.368 8.423 8.508 10.881 13.094 12.585 12.001 11.275 10.127 - 7.059 7.390 7.250 9.821 11.839 12.247 11.097 10.312 10.405 9.056 8.844 8.377 6.977 7.328 9.742 11.022 9.124 6.452 6.466 4.948 5.273 4.376 4.823 6.036 8.389 10.093 7.377 5.298 4.401 4.582 7.427 9.875 9.417 8.361 7.880 5.274 - 7.281 9.115 8.939 7.740 6.803 7.844 9.019 10.543 11.181 8.778 6.840 6.967 6.726 5.060 6.302 6.617 7.312 6.415 5.303 5.217 5.630 4.833 4.192 5.943 6.666 6.042 5.462 4.729 4.732 4.721 6.485 6.231 5.507 4.633 4.269 4.889 - 7.985 9.243 9.152 7.472 6.652 8.682 9.927 9.926 9.899 9.398 6.436 5.981 6.354 5.457 5.825 6.518 6.379 6.260 5.366 5.269 4.842 3.639 5.273 5.946 6.392 5.336 5.358 4.443 4.462 4.840 6.970 6.386 5.722 3.193 4.031 3.892 - 6.134 5.289 5.498 6.405 5.682 7.253 9.477 8.943 9.903 9.857 6.359 6.094 5.195 5.911 6.363 6.503 6.761 5.244 4.668 4.774 4.179 3.632 5.211 5.364 5.906 4.972 4.602 4.269 3.886 4.174 6.327 5.696 4.399 4.076 3.841 3.179 - 4.165 5.528 6.101 5.828 5.339 7.269 7.942 6.802 8.820 9.392 6.043 5.971 5.391 4.705 4.861 6.142 6.900 5.682 3.688 4.682 4.517 4.851 4.826 4.509 4.090 4.374 4.192 4.218 4.514 4.970 5.956 4.586 3.909 3.826 3.583 2.523 - 5.982 6.270 5.139 4.625 4.867 4.420 7.920 8.382 8.410 8.571 5.474 5.265 5.387 5.109 4.841 5.453 4.949 4.175 3.496 3.596 4.164 4.182 4.045 4.946 5.612 5.162 4.419 4.150 3.548 4.365 6.118 4.878 4.042 2.907 3.329 3.338 - 4.694 6.086 6.195 5.178 7.284 7.942 8.229 8.059 7.193 7.554 8.386 8.129 6.884 5.498 5.605 5.318 4.797 6.177 6.618 6.932 7.273 7.414 8.030 8.459 8.446 7.112 7.694 7.633 6.457 5.380 5.495 5.753 6.157 6.644 5.208 4.628 - 4.275 4.374 5.282 4.411 7.337 8.326 7.785 6.303 7.014 7.176 8.568 7.994 6.250 5.913 5.558 5.680 5.271 4.739 5.394 5.857 5.773 6.188 6.809 7.357 7.622 6.366 7.624 7.112 5.078 5.095 4.643 4.756 5.589 5.946 4.506 4.114 - 4.799 4.468 4.170 4.092 5.129 5.174 7.555 7.753 6.476 5.588 4.744 4.473 4.985 5.142 4.205 4.571 4.531 2.967 3.493 3.870 3.708 3.999 4.836 4.854 4.890 4.809 4.956 4.664 3.918 3.262 4.318 4.272 3.497 3.669 2.988 1.872 - 5.176 4.670 3.976 3.328 2.949 5.438 6.673 6.319 5.822 5.013 4.697 4.747 4.713 3.535 4.176 5.796 5.270 5.358 4.409 3.215 3.986 4.872 4.929 4.402 5.067 5.176 4.683 3.562 3.381 2.459 3.811 3.996 2.678 2.572 2.500 2.354 - 4.155 4.987 3.234 3.894 4.508 5.883 6.867 7.070 5.814 4.881 4.870 4.225 4.699 4.834 6.261 5.812 3.514 3.755 3.988 4.226 4.801 4.184 2.878 4.207 4.912 5.171 4.586 4.183 3.199 3.102 3.633 3.611 3.006 3.000 3.300 3.007 - 4.759 3.656 0.787 3.513 4.457 5.372 4.867 4.964 5.225 4.365 4.406 4.771 4.423 5.593 5.129 4.914 4.727 3.545 3.219 3.260 3.897 4.438 4.523 4.701 4.779 4.721 3.116 3.931 3.878 3.795 3.886 3.010 3.625 3.405 3.312 2.771 - 5.288 3.583 3.525 3.788 4.007 3.942 4.785 6.387 5.472 3.955 4.394 4.779 4.523 5.728 5.201 3.987 4.769 4.263 4.675 3.919 4.623 4.063 3.485 4.256 4.249 3.752 3.136 3.726 3.686 3.223 3.313 3.230 3.385 3.250 2.525 1.962 - 5.099 5.092 3.559 3.231 4.372 5.367 5.772 5.783 5.246 2.608 2.265 3.482 3.165 3.900 4.765 4.469 5.042 4.344 3.830 3.848 4.107 4.223 4.898 4.676 3.886 3.825 3.961 3.756 3.330 3.344 3.567 2.922 3.719 2.771 2.410 1.697 - 2.539 3.754 3.466 2.605 4.353 5.685 5.596 4.593 5.160 3.277 3.778 2.949 3.721 4.091 5.361 4.712 4.254 4.324 3.727 2.815 3.950 4.090 4.232 3.806 4.486 4.826 2.846 2.908 3.661 3.581 2.850 3.246 3.577 2.801 2.840 1.736 - 3.801 2.800 3.335 3.853 4.396 5.993 5.593 3.995 3.422 4.091 4.735 4.584 4.626 4.432 4.034 4.416 3.676 3.289 4.018 4.052 4.076 3.809 3.916 3.919 4.457 4.861 4.661 3.611 2.544 3.320 3.460 3.022 2.485 2.685 2.734 1.566 - 4.091 3.656 5.192 5.082 3.457 4.926 5.589 4.005 4.595 3.792 2.596 3.699 3.446 4.952 5.058 5.469 4.091 4.589 4.502 3.216 3.615 3.723 3.103 3.814 3.455 3.704 4.840 4.698 2.630 3.298 3.339 3.400 2.686 3.355 2.359 0.969 - 4.478 4.864 4.127 4.723 3.922 5.589 6.201 4.526 4.547 4.745 4.130 3.288 2.579 5.394 5.085 4.609 3.257 3.416 4.193 3.875 3.684 4.500 3.189 4.235 3.958 3.741 3.101 3.070 2.677 3.377 2.680 3.111 2.873 2.629 2.211 1.610 - 2.899 4.886 5.380 4.356 4.483 5.428 4.481 5.195 5.618 2.956 3.382 2.068 3.058 4.035 3.716 4.293 4.251 4.384 3.512 3.650 3.161 4.103 3.656 4.285 4.435 4.278 2.724 3.001 3.100 3.639 2.931 2.641 2.310 1.844 2.854 2.096 - 5.756 6.770 5.922 4.936 4.280 5.829 6.202 4.715 5.341 2.787 3.339 4.494 5.028 4.061 3.681 2.649 4.059 3.400 3.434 2.926 3.660 3.366 3.628 4.071 4.048 4.110 3.558 3.862 3.128 3.384 2.677 3.022 2.812 2.488 2.781 2.114 - 5.115 5.583 6.202 5.295 4.109 6.086 6.461 4.194 4.443 4.275 3.940 3.589 5.143 5.866 5.518 4.357 3.520 3.949 2.919 2.273 3.009 3.455 2.889 2.757 2.653 3.374 3.347 3.796 3.829 3.100 2.729 2.403 3.074 2.651 2.318 1.584 - 4.132 5.206 6.447 6.009 6.202 6.294 5.009 5.532 5.091 5.098 5.298 5.404 4.725 4.652 4.535 4.639 4.442 4.721 4.226 3.484 3.178 2.733 4.100 4.478 4.783 4.983 3.795 2.940 3.715 3.883 3.197 2.900 3.785 4.685 4.728 4.930 - 6.915 8.699 9.409 9.323 8.840 7.784 6.785 7.203 7.196 7.209 8.086 7.843 5.898 4.238 5.348 5.972 5.749 6.045 6.234 5.001 3.973 3.581 5.263 6.434 7.450 6.528 5.375 3.317 4.217 6.299 4.593 3.245 6.154 7.933 6.928 7.521 - 7.602 7.990 7.190 7.850 6.553 6.158 4.438 5.168 6.629 5.602 6.043 5.506 4.625 4.143 3.733 4.584 4.984 3.619 4.751 5.408 5.574 6.269 6.280 5.873 5.550 5.634 5.006 5.336 4.464 5.147 4.564 5.274 6.269 6.306 5.194 4.418 - 7.319 5.765 6.753 7.459 6.249 6.327 5.533 5.123 5.522 5.833 5.985 5.400 4.416 4.566 4.622 4.949 4.330 4.863 4.284 4.878 5.605 6.337 6.611 5.059 4.750 6.686 6.077 5.604 4.952 4.543 4.003 5.269 6.354 6.439 5.324 4.718 - 3.153 2.871 4.157 5.416 3.841 5.938 5.549 4.414 6.853 7.451 5.693 5.542 5.254 6.022 5.345 4.999 4.708 4.579 3.891 4.279 3.426 4.320 6.173 5.658 6.164 6.267 4.456 4.362 4.076 4.346 3.815 4.498 5.311 6.050 5.937 3.690 - 4.687 4.883 5.031 5.607 5.887 6.276 6.201 4.924 5.543 6.654 8.470 7.614 5.369 4.983 5.713 5.447 4.167 4.569 5.901 5.049 4.278 4.797 5.990 5.973 6.996 5.564 4.310 4.341 3.742 3.840 3.249 4.503 5.463 4.770 4.147 3.077 - 4.385 4.462 4.269 4.203 6.897 7.482 5.522 4.205 4.759 6.906 9.602 9.471 5.098 3.382 5.402 6.602 5.448 3.997 5.134 5.974 4.834 5.464 6.904 5.799 6.408 5.096 5.148 5.240 4.197 4.705 4.030 3.765 4.992 4.792 4.617 3.505 - 4.427 3.697 4.143 5.784 6.965 7.868 5.825 4.989 3.737 6.345 9.008 9.144 6.119 3.409 4.606 7.410 7.185 5.577 5.976 7.654 5.756 4.930 6.417 6.944 6.759 5.833 5.890 4.742 4.355 5.391 3.681 4.360 5.506 5.439 4.354 3.553 - 4.124 3.338 4.097 4.024 5.404 6.815 6.682 3.018 4.294 5.851 6.149 5.668 6.610 5.769 4.257 4.718 7.517 8.427 5.010 5.164 7.434 7.365 4.664 7.857 8.150 5.040 7.522 6.378 5.261 5.837 3.728 5.073 5.883 6.023 4.793 3.989 - 5.140 4.580 4.667 4.363 5.067 6.760 6.657 2.985 2.721 3.384 3.097 5.037 6.536 4.291 3.667 3.825 8.029 8.551 3.944 3.545 8.456 7.951 4.936 9.259 9.231 5.936 8.924 7.358 7.357 7.405 5.367 5.755 7.824 7.660 6.752 5.320 - 1.696 3.749 4.367 4.158 6.740 7.541 5.457 3.405 3.198 4.276 7.010 7.559 6.081 3.104 3.772 5.593 7.696 6.839 4.896 7.319 7.902 5.903 7.359 8.767 7.351 7.915 7.931 5.842 6.638 5.688 5.101 4.991 7.097 6.218 5.637 4.142 - 4.170 5.494 5.793 5.666 6.366 6.796 5.696 5.656 6.877 8.200 8.566 8.133 3.696 2.651 4.575 4.875 4.887 4.727 5.677 6.211 4.642 4.816 5.885 5.737 6.389 5.935 4.713 4.319 3.639 4.466 4.143 3.613 4.127 4.093 3.157 3.016 - 3.531 3.786 6.238 5.928 4.017 5.359 5.964 5.285 7.755 7.870 7.887 6.892 5.661 3.736 3.321 4.650 4.612 4.316 4.444 3.693 3.876 3.715 4.675 5.290 6.011 5.791 4.998 4.974 3.497 2.822 3.691 4.352 4.659 4.917 4.968 2.792 - 4.168 3.539 5.192 5.011 3.097 4.270 3.634 4.094 6.174 6.333 6.990 5.939 3.305 4.541 4.225 3.219 3.498 3.552 2.429 4.180 4.643 3.805 4.195 4.873 4.929 5.509 4.520 3.898 3.431 2.725 3.339 4.130 5.030 4.853 4.827 3.096 - 4.859 4.371 4.720 5.164 4.904 4.568 4.481 2.644 4.732 5.623 4.472 2.229 1.765 5.520 5.090 3.466 3.316 4.364 4.478 4.270 4.828 4.709 4.207 4.917 4.803 4.392 4.291 4.151 3.884 3.375 3.613 4.501 5.294 5.400 5.212 3.940 - 4.518 4.671 5.201 4.206 4.676 6.221 5.750 4.176 4.130 4.412 4.123 2.940 4.372 5.015 3.983 3.249 3.078 3.832 3.497 3.658 3.831 4.612 5.295 5.688 5.149 5.471 5.261 5.348 4.847 3.521 3.732 4.811 5.397 5.924 6.223 3.946 - 4.283 4.502 5.413 5.635 5.002 5.750 5.473 4.420 4.014 3.640 4.425 4.000 3.663 4.163 4.521 3.532 3.663 4.158 4.027 3.716 3.497 4.716 5.035 4.953 5.197 5.348 4.893 4.863 5.436 3.931 3.656 4.531 5.427 6.209 6.541 4.848 - 5.619 5.211 4.695 5.082 5.039 4.122 5.122 4.623 3.599 4.003 4.907 4.233 2.606 4.969 4.642 3.015 3.256 3.706 4.189 3.714 4.098 5.071 4.761 5.741 5.494 4.444 4.482 4.271 4.388 4.165 3.027 4.301 5.851 5.640 5.580 4.176 - 2.964 4.208 4.464 3.553 4.072 5.750 5.900 5.273 4.734 4.335 4.581 4.741 2.006 4.613 4.208 3.336 3.951 4.156 3.374 3.428 5.031 4.751 4.667 5.513 5.084 4.248 5.043 4.291 4.124 3.916 3.593 4.421 5.068 5.545 5.422 3.569 - 5.062 5.670 4.247 4.254 4.866 5.992 4.949 5.047 4.399 4.349 4.090 4.196 3.697 4.091 4.303 3.907 4.221 2.908 3.366 3.504 3.954 4.133 3.699 4.833 5.040 4.237 4.767 4.355 3.419 3.381 4.127 3.915 4.391 5.038 4.830 4.080 - 4.638 5.155 5.073 4.092 4.681 5.330 5.174 5.493 6.176 4.773 3.824 3.883 2.556 3.805 4.063 3.039 4.715 4.154 3.343 3.044 3.516 4.775 5.691 4.700 4.475 4.091 3.727 4.089 3.937 3.891 3.695 4.252 5.045 5.812 4.917 2.954 - 4.870 3.932 3.594 2.868 4.656 6.523 5.671 5.124 6.271 5.375 4.183 4.663 3.576 4.337 3.758 3.717 4.077 4.141 3.252 3.832 3.907 4.151 5.624 5.048 4.696 3.891 3.441 3.401 3.443 3.037 2.997 3.097 4.003 4.656 4.043 2.894 - 4.996 6.519 6.621 4.330 3.793 6.546 6.673 5.739 5.404 7.190 6.598 4.472 4.320 4.861 4.075 2.365 4.078 3.232 2.968 4.441 3.978 4.774 4.641 5.182 4.855 4.572 4.737 4.026 3.950 3.537 2.996 2.801 3.256 3.948 3.477 2.935 - 4.219 6.415 7.118 5.533 3.960 4.999 7.037 5.519 4.182 7.664 8.815 6.634 4.073 5.326 4.217 3.270 3.752 2.799 3.252 3.344 3.276 3.992 4.152 4.521 3.972 4.827 4.138 3.779 3.292 3.673 2.955 2.805 2.880 3.430 1.398 1.237 - 4.640 5.203 5.828 3.976 3.104 5.179 7.121 6.309 5.195 8.085 9.096 6.715 4.528 3.521 3.318 4.893 4.791 5.112 3.383 3.621 4.029 4.828 4.346 5.196 5.161 4.840 4.189 3.563 3.721 3.816 2.877 3.177 2.984 2.816 2.489 1.788 - 4.404 5.050 4.621 2.048 3.293 5.260 5.674 3.752 6.222 8.412 7.713 4.870 4.946 2.159 3.408 3.589 5.064 5.872 3.899 3.093 4.581 4.406 4.333 5.456 5.167 4.446 4.849 3.228 3.104 2.991 3.178 3.313 3.332 3.060 2.739 1.613 - 4.142 5.101 4.321 3.550 4.889 5.049 4.531 3.051 3.309 5.675 5.522 4.482 4.919 3.583 3.796 2.929 3.691 3.579 3.203 2.987 3.627 3.091 4.565 4.133 4.255 3.312 3.933 3.049 2.993 2.943 2.859 2.285 2.507 2.433 1.868 1.366 - 4.770 5.219 6.006 5.559 4.160 5.534 6.590 5.604 4.555 4.413 3.539 3.255 4.604 5.199 4.688 4.636 4.675 6.311 5.287 4.080 4.333 5.675 4.910 4.340 6.003 4.598 3.402 2.727 2.232 3.051 2.666 2.047 2.393 2.994 2.760 2.176 - 4.518 3.331 4.567 3.933 3.653 3.044 6.315 6.308 4.854 4.228 3.579 2.920 4.117 4.551 3.816 2.994 3.306 5.476 5.977 3.833 2.343 5.650 6.745 4.767 4.972 5.942 3.711 4.071 3.663 3.033 3.117 3.109 3.967 3.160 2.343 1.143 - 4.297 4.488 4.055 4.810 4.118 3.915 5.372 4.779 3.722 3.353 3.121 3.364 3.627 4.490 4.313 3.053 2.801 3.308 3.923 3.931 3.507 4.412 5.516 4.805 3.838 3.700 2.067 2.709 3.131 3.222 3.372 2.877 3.115 3.308 2.233 1.469 - 3.935 4.469 5.352 5.386 6.538 6.890 6.545 6.339 7.161 6.811 6.082 6.414 6.353 6.647 7.026 7.220 6.863 6.310 7.022 7.106 6.615 6.594 6.017 4.972 4.689 3.595 2.218 3.439 2.734 2.282 3.013 3.171 2.682 2.278 2.202 1.932 - 5.019 4.195 4.263 4.157 5.123 6.423 5.395 4.389 6.008 5.419 3.961 5.197 4.959 4.915 5.389 6.426 5.355 4.963 5.646 5.655 5.240 5.488 4.812 4.842 4.682 3.642 3.725 2.792 2.775 3.087 2.690 2.848 2.297 2.294 2.302 1.504 - 4.460 5.150 5.785 5.233 4.151 4.468 4.645 3.033 3.593 3.842 2.567 2.386 3.243 4.695 3.678 4.057 3.950 4.510 3.906 3.648 4.286 4.399 3.259 3.577 3.201 3.524 3.590 3.476 3.176 2.463 2.865 2.965 2.953 2.278 2.284 1.848 - 4.276 4.664 5.455 5.515 5.431 5.500 4.576 5.644 3.941 4.286 4.206 4.946 4.359 5.197 4.847 3.836 3.878 3.259 3.997 3.993 4.171 4.187 3.763 3.929 4.047 3.439 2.835 2.584 2.751 3.207 3.215 2.798 2.715 2.919 2.780 1.234 - 4.694 4.767 6.201 7.270 7.293 7.503 7.391 7.408 7.135 6.493 6.811 7.317 8.205 8.503 7.410 5.739 3.886 3.616 5.228 6.211 5.280 5.343 6.292 6.881 4.796 2.861 3.570 3.305 3.220 4.038 3.843 4.230 4.033 2.838 2.404 1.210 - 5.031 4.962 4.424 4.027 3.793 5.255 6.001 4.575 5.065 4.303 3.767 4.023 5.875 6.373 4.897 3.587 3.942 4.189 3.036 3.812 3.795 4.585 4.428 4.649 4.742 3.850 3.868 3.901 3.497 3.262 3.397 2.950 2.914 2.372 2.468 2.615 - 5.155 5.762 5.442 4.699 4.299 5.744 6.046 5.175 4.026 4.253 3.239 2.820 2.466 3.771 3.798 3.413 4.027 3.711 3.228 3.408 3.732 3.586 3.274 3.367 3.147 3.508 3.763 3.701 3.172 3.432 3.528 3.514 3.018 2.543 2.475 1.841 - 4.432 3.445 3.349 2.824 4.719 4.969 4.115 3.979 4.373 4.259 4.071 3.094 3.498 4.842 4.515 3.576 3.961 4.414 3.388 2.267 3.177 3.714 4.199 4.122 3.294 4.178 3.889 3.091 2.834 3.665 3.548 3.164 3.168 2.544 2.638 1.996 - 5.208 5.038 4.082 2.922 3.752 4.864 5.565 4.601 3.289 3.680 3.826 4.650 3.606 4.792 4.362 4.407 3.716 4.086 3.494 1.144 2.953 4.848 3.863 2.885 3.853 3.746 2.679 1.691 2.329 3.599 3.939 2.841 2.871 2.349 1.967 1.685 - 5.808 4.799 4.291 3.067 3.406 4.601 5.527 3.452 4.240 3.005 2.894 3.122 3.204 3.200 4.257 4.186 2.803 2.971 2.877 2.653 3.403 4.779 4.437 4.322 4.276 3.882 3.826 3.225 2.749 3.018 3.539 3.331 2.824 1.443 1.842 1.635 - 4.947 4.007 4.626 4.843 4.952 4.287 4.582 4.540 4.060 2.925 1.991 1.531 2.439 2.566 2.062 3.844 3.957 3.427 2.137 2.610 3.549 3.411 3.458 3.500 4.379 3.591 3.482 3.384 3.673 3.292 3.394 3.194 3.046 1.906 2.146 2.268 - 5.347 5.415 4.282 5.276 5.101 5.859 4.634 4.128 4.459 3.324 2.850 1.532 2.950 4.685 4.192 3.820 3.804 3.780 2.366 2.940 3.753 3.930 4.466 3.609 4.373 3.743 3.642 3.660 2.037 3.547 3.550 2.778 1.759 2.621 2.622 1.330 - 4.442 3.569 3.951 4.233 4.163 5.408 6.214 4.429 4.993 4.492 1.582 1.606 2.514 4.938 4.806 4.378 4.433 3.873 2.870 3.172 3.713 3.847 4.595 3.347 3.324 3.044 3.466 2.956 2.083 3.168 2.965 2.854 2.013 2.753 2.590 1.737 - 4.787 3.622 4.016 4.204 4.118 3.559 4.582 4.055 3.223 3.774 1.496 2.079 2.780 4.252 4.320 3.594 3.350 3.444 3.763 2.878 1.913 2.977 3.754 3.494 3.745 3.618 3.487 3.728 3.018 3.262 2.514 1.971 1.881 1.998 2.006 1.733 - 4.565 4.490 3.923 4.652 3.936 4.668 4.239 3.336 2.893 4.217 3.913 2.415 2.994 4.019 3.922 4.566 3.561 3.106 4.259 3.360 1.921 2.821 4.544 4.161 3.543 2.768 2.943 2.399 2.090 2.363 2.642 2.113 2.487 2.468 1.772 1.775 - 2.815 3.264 3.645 3.621 4.593 4.460 5.140 3.832 3.727 4.382 3.300 3.374 3.876 4.880 4.054 3.954 3.411 3.252 4.700 4.204 3.100 3.364 4.640 3.448 4.152 3.454 1.896 2.071 2.214 2.474 3.219 2.310 2.411 2.917 1.477 1.300 - 4.933 3.033 2.853 3.699 3.370 3.762 5.016 4.253 4.511 3.350 3.091 2.757 2.550 2.973 2.842 2.376 3.939 3.742 3.271 3.419 3.881 3.895 3.691 4.181 4.102 3.710 2.892 3.480 3.119 3.221 2.784 3.182 1.585 2.125 2.327 1.499 - 6.065 5.114 3.426 4.367 3.485 3.589 4.049 3.957 3.679 2.530 2.554 2.649 3.706 4.072 4.141 2.301 2.831 4.314 4.012 3.527 2.978 3.293 4.577 3.853 3.331 3.214 2.881 2.391 3.155 3.014 2.056 2.713 1.489 2.391 2.488 1.390 - 6.004 6.099 4.962 5.562 5.808 6.084 6.402 6.336 4.226 0.938 2.203 4.130 4.538 4.320 4.401 3.102 3.794 3.851 4.195 3.883 3.824 3.663 4.430 3.706 4.567 3.603 3.364 2.994 2.653 3.035 2.284 3.270 2.231 2.685 2.574 1.684 - 9.428 9.533 9.724 9.887 10.440 9.577 9.877 9.015 8.510 7.241 7.199 6.815 6.203 6.336 6.221 6.254 6.055 5.699 5.111 5.237 5.561 5.079 5.289 4.785 4.997 4.348 3.889 4.588 4.529 4.620 4.513 4.692 4.895 4.834 4.508 3.253 - 11.068 11.280 11.558 11.782 11.771 11.306 11.317 10.819 9.505 8.400 7.597 7.837 7.478 6.682 7.739 7.561 6.955 6.854 6.334 6.230 7.102 6.873 6.614 6.381 5.892 5.783 5.056 5.833 5.736 5.913 5.516 5.924 6.336 6.011 5.627 4.263 - 9.798 10.270 10.577 11.027 11.094 10.784 10.611 10.519 9.214 8.246 7.475 6.206 5.945 6.318 6.836 6.814 6.101 5.804 6.489 6.335 7.513 8.010 8.303 8.264 7.764 6.449 4.168 3.907 3.810 3.994 3.627 3.752 4.172 3.820 3.256 2.406 - 9.434 10.021 9.054 9.170 10.126 10.288 9.117 9.014 7.535 6.636 5.764 4.832 4.466 5.102 5.525 5.303 5.041 4.127 4.609 4.211 6.153 6.078 6.363 6.415 6.050 4.611 4.207 4.116 4.421 3.771 4.040 3.936 3.773 3.827 3.385 3.144 - 8.473 7.335 7.019 7.265 8.647 9.211 7.614 5.222 4.984 5.300 4.429 2.501 2.206 5.278 5.067 4.219 3.535 3.486 3.279 3.205 3.748 4.148 4.591 4.469 5.050 4.630 5.008 5.171 5.728 4.868 5.148 4.867 4.536 3.937 3.349 2.513 - 4.086 4.843 4.055 4.461 6.465 6.945 6.855 4.597 4.060 4.200 4.225 3.081 3.273 3.815 3.786 3.350 3.673 3.402 2.382 2.293 2.533 2.427 3.079 3.817 3.438 3.078 3.946 3.722 4.349 3.630 3.297 3.101 2.970 2.601 3.398 2.406 - 5.714 4.317 5.257 7.238 6.916 6.683 6.615 7.539 5.675 6.916 6.253 6.137 5.268 4.747 5.163 4.815 4.693 4.510 4.971 5.021 5.157 5.477 6.080 6.464 6.382 5.899 5.491 5.226 5.195 4.936 4.223 4.426 4.660 4.659 4.005 3.939 - 8.223 8.550 8.465 8.550 8.066 7.880 8.641 9.383 9.773 10.485 10.447 9.511 7.960 6.901 7.772 8.137 7.855 7.658 7.489 7.944 8.327 8.657 9.407 9.954 9.920 9.173 8.742 8.124 8.096 8.222 6.607 7.243 7.958 7.738 6.597 6.121 - 6.121 7.146 7.008 5.906 4.795 5.932 4.892 5.767 6.764 8.252 8.369 6.753 4.295 4.151 5.337 4.969 4.206 4.835 4.639 4.840 5.004 5.201 6.118 6.930 6.904 6.515 6.667 5.077 5.216 5.509 4.119 4.783 5.645 5.815 6.216 5.491 - 3.114 2.977 4.377 4.270 4.373 4.133 3.598 4.572 2.469 4.953 5.387 4.154 3.166 3.793 4.092 3.591 3.457 4.146 3.864 5.204 5.718 5.054 6.052 6.391 6.214 6.250 7.182 5.976 5.606 4.953 5.329 5.623 6.332 6.853 6.839 6.937 - 3.821 4.354 4.098 3.965 4.648 4.675 6.119 5.297 4.336 5.102 6.064 4.156 3.486 3.671 4.181 4.413 5.975 5.857 5.642 6.443 6.737 5.256 6.515 6.166 6.593 6.559 6.652 6.603 6.490 6.783 5.599 6.834 7.485 7.290 7.031 7.059 - 3.331 2.665 2.846 3.961 2.495 4.621 6.069 6.799 6.415 5.347 6.949 5.854 4.243 3.673 3.624 4.686 6.512 7.535 7.439 7.010 7.157 6.810 5.948 7.000 5.824 6.772 8.518 6.510 6.600 6.272 6.255 6.115 7.132 8.286 8.022 6.252 - 4.430 3.882 4.162 4.635 4.865 4.230 5.768 6.273 6.179 8.032 8.448 6.940 3.668 3.708 4.872 4.444 5.662 7.634 7.829 7.205 7.774 6.918 5.899 7.288 6.817 6.176 7.750 6.746 6.204 5.957 6.158 6.716 7.525 7.344 7.302 6.888 - 2.342 3.194 4.598 4.749 4.182 4.042 5.140 5.869 6.244 6.964 6.270 4.945 3.782 4.125 4.790 4.890 5.102 6.150 5.847 5.999 6.214 5.880 5.411 6.696 7.144 4.933 7.005 6.046 4.624 4.043 4.538 5.617 5.898 6.170 5.869 5.432 - 4.400 5.016 4.712 3.131 3.885 4.923 5.115 4.913 5.842 6.165 6.088 6.252 5.034 5.455 5.016 3.418 3.256 4.015 4.767 4.005 4.903 4.806 5.471 5.099 4.482 4.684 5.130 4.611 4.449 5.047 4.601 4.951 4.675 5.259 4.587 4.346 - 4.763 6.456 7.064 6.150 5.004 5.944 5.875 4.684 4.857 4.191 5.851 4.870 2.754 4.581 4.546 4.265 4.191 3.543 4.040 3.807 4.092 4.059 5.088 4.343 4.502 3.795 3.702 3.985 4.413 4.164 4.567 4.432 3.761 4.177 3.903 3.145 - 5.244 5.905 5.178 5.596 5.559 4.382 5.296 4.366 4.522 4.276 4.124 4.817 3.668 4.634 4.357 4.279 4.177 4.271 3.886 4.220 4.039 4.749 4.856 3.571 3.247 2.964 3.232 4.211 3.772 3.211 3.790 3.734 3.686 3.381 3.046 2.555 - 4.840 4.570 4.415 3.570 4.755 4.791 4.114 4.068 3.740 4.683 5.071 4.477 3.060 4.844 4.239 4.307 2.982 3.240 4.208 3.186 4.159 3.656 3.294 3.746 3.251 2.291 3.184 3.562 3.713 3.354 2.881 3.318 4.221 3.700 2.904 1.649 - 4.268 4.386 5.235 4.717 5.428 5.290 4.965 3.219 4.112 3.604 4.402 3.711 3.507 4.013 4.062 4.891 4.609 3.669 3.114 3.400 4.142 4.025 4.433 4.790 4.076 4.412 3.564 3.173 3.495 3.553 3.163 2.453 3.366 2.763 2.734 2.207 - 4.693 4.226 4.993 4.901 4.973 5.268 5.338 3.371 4.177 3.820 5.126 5.096 4.453 4.464 4.012 3.179 3.808 3.832 2.682 3.579 4.286 4.184 4.380 4.462 4.150 3.472 3.082 4.474 3.751 3.383 2.769 2.984 2.805 2.797 2.522 2.279 - 5.493 5.076 5.025 4.181 3.376 5.051 4.563 4.642 4.371 3.992 4.744 4.332 3.403 3.525 3.617 2.415 2.971 3.475 3.321 3.844 3.749 3.406 4.309 4.762 4.789 4.084 3.889 5.200 5.183 4.195 3.742 4.150 4.399 4.783 3.883 3.550 - 6.404 6.149 6.194 5.669 6.217 6.183 6.171 6.246 5.511 6.323 6.449 5.952 5.233 3.834 5.131 5.895 5.228 5.339 5.476 5.849 6.131 6.332 6.550 7.060 7.313 7.602 7.870 8.946 8.026 6.783 4.296 5.300 6.000 8.059 7.845 7.596 - 4.884 5.194 4.994 5.059 5.095 6.216 5.492 5.172 3.992 4.496 5.116 5.923 4.215 4.060 4.722 4.235 3.498 4.210 3.640 4.093 4.412 4.762 4.805 5.477 5.624 5.789 6.218 8.230 6.859 5.343 3.340 3.992 5.733 7.518 6.200 6.297 - 6.252 7.233 7.539 6.706 6.565 7.076 6.852 6.338 6.472 6.861 7.281 6.849 5.264 3.780 4.318 5.298 4.546 4.624 5.146 5.186 4.968 4.410 5.710 5.690 5.552 5.407 5.751 6.908 6.255 4.665 3.971 3.795 4.004 4.945 4.090 4.203 - 5.502 6.433 6.703 5.514 4.112 6.234 5.074 4.992 3.683 4.795 5.950 6.225 4.278 3.542 3.662 3.762 4.597 5.250 4.032 4.262 4.569 4.224 5.053 5.037 4.477 3.826 4.514 5.842 5.797 4.666 2.650 2.994 3.208 4.810 4.870 4.032 - 3.887 4.924 5.919 5.753 6.135 5.814 5.474 3.697 3.909 5.777 6.025 5.443 3.263 4.697 4.905 3.512 3.958 4.945 4.082 4.232 4.136 5.155 4.859 4.203 5.114 5.572 4.742 4.812 5.457 5.122 3.264 2.482 3.341 4.101 4.502 3.925 - 7.629 6.949 7.345 6.973 6.445 7.337 6.929 5.392 6.376 8.102 8.364 7.624 5.027 4.436 4.583 5.149 4.711 5.441 5.917 4.775 4.944 5.008 4.513 4.463 4.742 5.009 4.932 4.398 6.452 5.783 3.338 3.818 4.300 4.779 3.732 3.871 - 6.676 6.841 7.196 6.937 6.531 5.962 4.730 4.280 5.389 6.754 6.243 6.594 3.910 3.900 4.607 4.873 4.945 4.705 5.287 5.105 4.585 4.999 4.424 5.042 5.018 5.185 5.115 4.960 5.943 5.093 4.207 4.196 5.016 5.261 4.298 3.815 - 6.856 5.760 6.110 5.358 4.150 5.513 5.920 6.768 7.252 6.385 6.440 5.165 5.546 5.141 5.429 4.602 4.521 5.208 4.834 5.062 5.168 6.080 6.244 6.106 5.573 4.881 5.263 5.333 5.603 5.659 4.599 6.145 6.930 6.087 4.664 4.206 - 6.065 4.124 5.813 5.877 5.159 6.088 4.900 5.215 5.592 6.151 6.430 6.606 6.139 4.951 4.928 4.616 4.735 5.446 5.318 4.201 5.306 5.946 5.771 6.801 6.220 5.482 4.907 6.406 6.449 5.593 5.250 6.111 7.565 7.137 6.398 5.670 - 5.589 6.615 6.655 4.722 5.433 6.238 5.689 5.644 4.675 6.156 6.539 6.928 6.331 5.574 4.529 5.812 5.978 6.322 6.184 5.927 4.989 5.326 5.810 6.474 6.352 6.789 5.911 6.068 6.366 6.237 5.629 5.872 7.381 7.233 6.615 5.900 - 5.629 4.813 6.188 5.803 5.219 4.377 5.259 6.604 6.163 5.939 6.415 7.978 6.915 5.802 5.327 6.535 6.476 5.697 4.831 5.714 5.795 6.124 6.502 6.960 6.627 6.921 5.861 6.142 6.430 6.370 5.643 6.295 6.811 6.766 7.424 6.349 - 3.965 2.320 3.328 2.718 2.786 4.237 5.969 6.780 6.668 7.247 6.786 5.888 6.635 5.608 4.942 5.306 6.616 6.343 5.300 5.776 6.083 5.308 6.603 7.527 7.084 6.526 5.373 5.364 6.724 6.581 4.965 6.385 7.033 6.961 7.302 6.415 - 1.958 3.464 3.929 2.837 3.216 4.287 5.107 4.015 5.743 4.443 5.193 5.018 4.665 4.977 4.789 4.523 5.273 5.698 5.319 4.616 4.412 5.778 6.091 7.069 6.604 6.483 5.296 5.874 5.963 5.827 5.004 5.932 6.447 6.095 6.497 6.040 - 3.466 2.647 3.642 3.329 5.459 6.451 5.352 2.653 5.251 4.895 5.696 4.948 5.315 4.378 4.683 3.931 5.332 5.877 5.533 4.499 3.000 5.081 5.917 6.239 5.692 6.320 5.144 5.488 5.344 5.323 4.341 5.278 5.873 5.645 6.213 5.371 - 4.874 3.366 3.075 4.439 4.031 5.118 4.842 5.278 4.613 4.237 6.805 6.426 4.844 4.750 4.128 3.844 3.818 4.445 5.098 4.990 4.401 3.428 5.221 4.824 4.415 4.440 3.768 4.413 5.076 4.338 3.751 4.952 5.013 4.706 4.769 4.415 - 2.897 4.493 4.490 5.407 5.262 5.694 5.297 4.600 5.424 5.569 6.447 5.482 2.598 5.271 5.253 5.109 4.855 4.569 4.214 3.084 4.117 3.560 3.814 3.835 3.949 3.786 3.317 3.213 3.987 4.059 2.951 3.437 4.211 4.229 3.774 2.916 - 5.163 4.526 2.917 2.336 3.007 4.959 4.162 2.371 1.668 3.451 4.289 2.956 0.846 3.979 4.527 4.515 4.250 3.534 4.219 3.945 4.041 3.684 3.921 4.463 3.992 3.737 3.671 2.517 2.920 3.439 2.824 2.867 3.170 3.518 2.487 1.936 - 3.949 3.657 3.577 4.000 3.720 4.133 4.807 3.856 2.643 3.765 4.175 2.071 1.808 3.683 3.676 2.812 3.097 2.683 3.738 3.522 4.074 3.832 3.877 4.198 2.960 2.789 3.355 2.977 3.081 3.663 3.596 3.255 3.141 2.338 2.856 1.917 - 3.825 4.602 4.780 3.951 3.432 4.236 4.641 2.494 3.563 3.823 4.911 3.784 2.403 4.181 4.605 4.666 3.596 2.492 3.636 3.545 4.131 2.825 3.979 4.206 3.865 4.220 3.898 3.027 3.062 2.656 3.224 3.319 3.160 2.897 3.394 2.684 - 3.849 4.751 3.528 4.158 4.902 4.372 3.893 2.006 2.770 3.948 4.337 2.945 3.664 5.049 4.256 3.804 5.243 4.232 3.498 3.769 4.854 4.832 3.124 3.783 3.850 4.412 5.218 4.707 5.320 5.276 5.614 5.860 5.738 5.601 6.108 5.790 - 4.694 4.632 2.716 2.195 4.534 5.166 5.017 3.484 4.622 4.415 3.446 3.747 3.019 3.835 4.073 3.910 4.384 4.282 4.529 4.540 4.431 4.953 4.908 4.152 4.059 3.950 4.858 4.281 4.925 4.891 5.490 5.616 5.253 5.063 5.818 5.566 - 1.017 3.473 2.739 2.778 3.720 2.893 3.699 3.389 3.047 2.480 3.695 3.957 3.679 4.053 4.450 5.339 4.872 4.020 4.199 4.427 4.524 4.776 4.784 3.677 3.474 3.185 3.045 2.288 3.395 3.330 3.698 3.391 2.792 2.818 2.567 1.301 - 4.103 3.434 3.049 3.342 3.988 3.815 3.290 2.926 3.443 3.080 3.298 4.878 3.513 4.766 4.506 5.077 5.141 4.680 3.462 3.515 3.106 4.645 4.863 3.164 3.029 3.401 3.620 2.899 3.767 3.340 3.308 3.417 2.766 2.614 2.751 2.120 - 4.977 5.103 4.576 3.021 3.130 4.883 4.876 3.391 0.971 2.538 3.074 3.485 2.270 5.137 4.505 4.845 4.425 3.914 3.017 3.649 4.175 4.029 4.069 2.991 4.348 3.674 3.855 3.866 3.227 2.884 3.037 2.965 2.898 2.310 2.014 2.355 - 4.569 3.344 2.508 4.705 5.043 4.200 4.255 3.612 4.779 4.972 3.467 3.359 3.337 4.617 4.112 2.526 3.843 4.305 3.926 4.577 3.579 2.721 3.367 3.989 4.487 3.751 3.576 3.866 3.993 4.061 3.173 2.174 3.010 2.725 3.025 2.187 - 5.527 5.175 4.814 4.449 4.171 3.899 5.378 5.180 3.833 2.796 2.165 3.259 4.208 4.114 4.752 3.676 3.995 3.891 3.618 2.965 2.958 2.198 4.203 4.344 3.021 3.025 4.398 3.999 3.678 4.093 3.930 3.011 3.032 3.090 2.792 1.963 - 6.221 5.435 4.216 4.060 4.994 5.193 3.829 3.951 4.693 3.197 1.884 3.452 3.774 4.264 4.506 4.061 4.232 3.736 4.316 3.875 3.571 4.204 3.963 3.193 3.887 3.219 3.556 3.119 3.282 2.677 3.972 3.917 3.084 2.250 2.346 2.203 - 5.341 4.318 4.606 4.311 4.500 5.153 5.229 3.737 3.787 3.306 2.987 3.431 3.427 6.077 5.548 4.143 3.990 3.392 4.002 3.916 4.326 4.535 3.470 3.380 3.961 3.552 3.381 2.347 3.164 3.867 3.025 3.536 3.126 2.999 2.156 2.059 - 4.452 3.967 3.953 2.274 3.709 6.059 6.020 4.585 4.802 4.481 4.652 4.093 3.303 5.389 5.733 3.620 3.658 3.352 2.944 4.155 4.637 3.131 3.733 3.825 3.863 3.519 3.757 3.001 3.222 2.697 3.151 2.956 2.367 2.954 2.504 1.798 - 3.542 3.038 2.929 2.596 2.419 3.621 5.213 4.944 3.036 2.623 3.713 3.731 2.022 3.419 4.962 4.719 4.687 4.462 3.907 4.189 3.239 2.794 2.920 3.521 3.275 3.401 3.436 3.121 2.657 2.834 2.400 2.441 3.554 3.817 3.078 2.548 - 4.002 4.693 3.700 4.706 4.623 4.846 6.065 4.768 3.472 4.055 3.386 3.005 3.365 2.881 4.947 4.381 3.337 3.289 3.563 3.761 3.348 2.925 3.462 2.811 2.821 3.273 3.826 3.799 3.650 3.784 3.404 2.514 2.586 2.861 3.236 1.792 - 1.955 4.203 4.147 4.204 5.252 5.486 5.524 3.606 4.702 3.489 0.889 1.948 2.842 4.944 4.599 3.468 4.271 4.176 3.658 3.446 3.441 4.718 4.393 3.896 3.599 3.287 3.480 2.653 2.773 4.009 3.371 2.073 2.632 3.353 2.951 2.026 - 2.746 3.191 2.848 4.592 4.858 4.537 4.539 4.379 3.993 3.236 3.689 3.198 2.577 4.508 5.445 4.162 4.729 4.923 4.994 3.067 3.745 4.358 3.461 3.060 3.391 4.024 4.796 4.029 2.646 2.921 2.380 1.934 2.319 3.299 2.362 0.494 - 5.145 4.448 4.183 3.662 3.780 3.033 2.671 3.478 3.463 3.825 2.864 2.478 2.010 3.781 4.727 4.655 4.393 4.627 3.881 3.965 3.770 3.393 2.969 3.206 3.913 4.360 4.035 3.559 3.839 3.511 2.711 2.158 2.638 2.737 1.887 0.880 - 5.282 6.293 5.745 4.028 4.083 6.322 6.180 3.439 3.884 4.253 3.651 1.998 2.792 4.734 4.399 4.053 3.641 4.193 3.463 3.977 4.699 4.435 3.740 3.305 4.095 3.993 3.366 3.601 3.978 3.805 2.518 2.647 2.807 2.695 2.738 2.376 - 3.083 5.981 5.756 4.990 4.760 6.258 6.554 4.951 3.319 3.596 2.735 2.389 2.247 4.314 4.665 5.073 4.811 4.483 3.789 3.456 3.676 3.954 2.974 3.458 3.391 2.768 3.873 3.530 3.341 3.625 2.082 2.925 3.202 3.197 3.007 2.489 - 4.088 5.431 6.304 4.694 5.133 5.061 5.206 5.465 4.402 4.904 4.659 5.175 4.591 4.955 5.310 5.500 5.412 6.562 7.313 7.600 6.656 6.071 5.484 5.195 4.921 4.787 4.559 6.373 6.715 6.599 6.388 6.001 5.828 5.505 5.376 4.633 - 5.974 5.380 6.416 6.907 6.287 6.180 7.124 7.169 6.963 6.901 6.361 7.115 6.616 5.800 5.820 5.912 6.434 8.804 10.087 10.762 8.947 8.093 7.479 7.288 6.840 6.272 6.519 9.109 9.274 8.935 8.557 8.017 7.840 7.559 7.389 6.602 - 3.399 3.647 3.431 4.211 3.899 4.735 4.631 3.258 3.169 3.740 3.175 4.494 3.009 4.937 5.566 4.761 4.680 5.354 7.409 8.935 6.844 5.269 5.158 5.260 3.779 4.050 4.374 6.360 6.839 6.364 6.452 4.111 4.331 4.146 4.005 3.038 - 1.767 2.468 1.561 2.019 3.962 3.787 2.833 2.247 1.934 2.932 2.533 1.666 3.150 4.910 4.764 3.407 3.252 3.436 3.415 6.514 6.039 4.055 3.910 4.523 3.065 2.963 3.100 4.249 4.185 3.106 3.396 2.777 3.874 4.074 2.921 2.365 - 2.606 4.092 3.863 2.798 2.829 3.148 3.597 2.627 3.246 3.109 3.688 3.736 3.871 5.460 4.932 4.670 3.920 4.570 4.441 4.028 4.476 4.407 4.783 4.840 3.652 3.526 3.935 4.299 3.785 3.817 4.627 4.719 3.934 3.864 4.028 2.902 - 3.753 4.769 4.312 3.130 4.168 4.343 5.597 6.519 5.148 5.198 5.881 6.236 6.267 6.567 7.641 6.833 4.190 5.937 5.685 7.324 8.775 7.910 6.487 7.125 6.601 5.963 7.344 7.570 6.276 6.535 7.123 7.044 5.897 5.972 6.163 5.349 - 2.984 3.191 3.147 4.714 4.803 4.914 4.892 7.080 8.288 7.540 7.034 7.542 8.175 8.035 8.153 7.559 6.990 8.484 9.233 10.984 12.022 10.955 8.486 8.151 8.086 8.341 8.661 8.850 8.405 6.810 7.748 8.033 7.727 5.815 5.889 5.664 - 6.290 5.734 4.577 5.354 6.745 8.016 7.431 6.803 8.914 9.093 8.320 8.455 8.953 10.834 10.775 10.100 9.619 10.310 11.027 11.196 12.511 12.721 11.025 9.687 9.426 9.633 9.720 10.888 8.851 8.191 8.877 9.213 9.125 9.915 8.904 7.229 - 8.004 8.121 8.007 7.321 7.601 9.069 7.886 8.731 9.818 10.933 11.581 11.319 11.236 11.708 12.119 10.755 11.642 12.173 12.240 13.304 13.518 12.614 12.485 12.194 11.839 10.449 9.832 11.137 10.197 8.631 9.097 9.024 10.972 11.669 10.319 9.414 - 10.760 9.988 11.737 11.217 12.127 11.981 12.791 12.916 13.605 13.543 14.293 14.021 14.287 13.948 13.609 13.559 13.524 12.939 13.941 14.797 13.254 13.051 12.679 13.375 12.896 11.682 10.662 10.194 9.142 8.390 9.828 9.461 11.885 12.836 10.183 9.330 - 11.484 12.988 13.042 12.386 12.915 13.831 14.197 14.971 15.793 16.516 16.043 15.796 15.603 15.220 15.365 15.097 15.174 15.935 16.498 16.433 15.011 13.988 14.148 14.272 13.234 12.028 11.489 10.485 10.119 10.650 11.072 9.837 10.796 11.212 9.089 7.458 - 11.651 13.436 13.131 12.136 11.750 13.709 13.687 14.694 16.164 17.523 17.529 16.944 16.441 15.770 15.869 16.050 16.721 17.762 18.320 17.560 16.456 16.099 16.662 16.752 15.360 13.779 13.343 12.183 12.109 12.982 12.775 10.865 11.676 10.907 9.335 8.327 - 10.714 13.279 12.655 11.239 11.701 13.791 13.351 14.074 16.491 17.384 17.453 17.178 16.795 15.703 16.101 15.993 16.870 18.032 18.488 17.236 16.154 16.080 16.515 16.543 14.941 13.174 12.974 12.663 11.674 12.495 12.558 11.166 10.336 10.111 9.320 8.852 - 11.523 13.556 12.799 11.967 11.745 14.029 13.441 14.698 16.547 17.406 17.672 17.294 16.977 16.008 15.834 16.243 17.301 18.509 18.081 17.135 16.297 16.182 16.823 16.960 15.550 13.676 13.647 13.707 12.584 13.287 13.957 12.484 11.547 9.644 8.995 8.936 - 11.619 13.692 13.134 12.150 12.612 14.020 14.075 15.294 16.866 17.597 18.077 17.398 16.932 16.431 16.249 16.917 17.929 18.369 17.248 16.215 15.865 15.822 16.629 16.977 15.642 13.783 13.634 14.150 13.714 13.190 14.460 13.887 12.334 10.458 8.628 8.521 - 12.555 14.193 13.139 13.218 13.104 14.350 14.856 15.873 17.575 17.845 18.674 17.333 16.846 16.824 17.829 17.943 17.870 16.945 15.850 15.154 15.241 15.167 16.103 16.750 15.414 13.400 13.118 13.705 13.985 12.278 13.859 14.263 12.712 10.805 7.530 7.406 - 13.213 14.424 13.550 13.717 14.018 15.556 16.371 16.553 17.417 17.812 17.909 16.646 16.697 16.748 17.661 17.443 15.837 14.471 14.036 14.134 14.030 14.074 14.947 16.030 14.655 11.906 11.121 11.982 12.882 11.159 10.874 12.609 11.314 10.246 7.056 6.677 - 13.640 14.257 13.529 12.946 12.269 14.532 15.551 15.765 15.297 14.790 15.032 15.188 15.978 15.534 14.237 13.247 12.738 13.157 12.810 12.922 12.648 13.058 14.144 15.045 14.782 13.061 11.349 10.607 10.129 8.892 9.372 11.376 10.780 9.435 7.571 6.724 - 13.872 14.690 13.018 12.920 12.424 12.574 10.872 10.113 11.456 11.583 13.491 14.553 14.884 12.444 11.696 11.915 11.618 12.734 11.590 11.845 11.985 12.159 13.385 14.666 14.723 13.272 10.974 9.769 8.399 6.872 8.743 10.988 11.727 10.672 8.698 5.816 - 13.957 14.400 12.917 12.865 12.457 11.952 11.244 11.002 11.318 11.361 13.835 14.642 14.446 12.025 11.544 11.359 12.015 12.000 11.591 11.964 12.009 11.846 12.900 14.466 14.716 13.600 10.995 9.588 7.799 7.474 9.313 10.265 10.374 10.697 8.961 6.468 - 13.918 14.162 12.948 12.833 12.556 12.006 11.142 9.386 10.215 11.359 13.515 14.946 14.271 12.225 10.820 11.370 12.059 11.644 12.037 11.850 11.701 11.781 12.815 14.424 14.629 13.209 10.951 9.473 7.963 9.468 10.174 10.358 11.509 10.986 9.133 6.596 - 13.856 14.043 13.041 12.922 12.646 11.860 10.884 8.958 9.440 10.514 13.179 14.856 14.171 12.243 10.324 10.586 11.388 11.366 11.526 11.460 11.399 11.721 13.013 14.509 14.436 12.491 10.219 8.857 7.184 9.404 9.620 9.913 11.579 10.720 8.789 5.416 - 13.777 13.947 13.124 13.003 12.647 11.768 10.434 9.634 10.627 11.692 13.000 14.315 13.653 12.241 9.638 10.854 10.505 10.753 11.060 11.409 11.364 11.532 12.837 14.248 13.811 11.395 9.323 7.660 7.589 9.879 9.456 9.547 10.396 9.561 6.493 4.819 - 13.552 13.869 12.853 13.755 13.370 14.638 15.353 15.265 14.037 13.009 13.071 14.237 14.859 15.089 14.146 11.271 11.431 12.188 12.032 12.084 11.696 11.732 12.839 13.860 12.754 10.300 8.851 9.330 9.497 11.245 11.195 10.278 10.537 9.766 8.227 7.136 - 13.377 13.223 12.860 13.105 14.112 15.286 16.690 16.863 17.270 16.020 14.807 15.439 16.051 16.872 17.011 16.588 15.593 13.665 13.760 13.372 13.578 13.349 14.300 15.048 13.841 11.759 11.687 10.775 10.349 12.632 12.898 11.874 11.288 10.203 7.982 7.143 - 12.109 12.243 13.520 13.350 13.857 15.044 15.933 17.807 18.081 17.646 15.173 15.493 15.327 15.685 17.456 18.227 17.593 15.309 14.942 14.255 14.382 14.103 15.271 15.987 14.504 12.901 12.967 12.012 11.076 13.254 13.585 12.285 11.594 9.667 8.059 7.013 - 13.038 12.733 12.880 13.132 13.999 14.791 16.258 17.628 17.966 17.247 15.019 14.963 14.435 14.735 15.790 17.548 18.732 17.229 15.856 14.611 14.213 14.254 15.665 16.564 14.430 13.409 13.529 12.249 10.825 12.592 12.714 11.743 11.009 10.255 10.338 8.624 - 13.654 13.345 11.881 13.223 13.990 14.813 16.795 17.416 17.020 15.745 14.641 13.866 13.700 13.907 14.435 15.267 16.997 17.911 16.907 14.620 13.383 13.269 14.306 15.944 14.376 12.879 12.828 11.306 9.167 9.024 10.944 12.288 11.643 11.703 12.608 9.229 - 13.157 12.934 11.950 13.248 13.585 13.872 15.247 14.432 13.754 13.925 12.572 11.206 11.093 10.026 10.569 10.823 12.349 14.496 14.866 14.537 13.944 12.875 13.576 13.447 12.786 14.259 12.328 11.069 11.639 11.177 10.340 11.246 10.318 11.542 11.309 9.232 - 11.375 11.308 9.501 10.144 9.165 10.312 12.168 12.112 11.394 10.624 8.640 9.465 7.854 8.279 8.681 9.975 10.551 10.296 11.425 10.778 10.558 8.645 9.423 10.232 10.443 11.961 10.185 10.171 11.036 10.510 9.802 10.369 9.688 9.081 8.958 7.083 - 9.061 7.411 8.779 8.553 8.448 8.679 9.871 10.174 11.787 10.680 10.103 9.919 8.308 6.247 8.697 9.834 10.588 10.626 9.060 7.313 8.770 9.206 9.134 9.389 9.648 10.133 8.755 6.721 7.148 7.759 5.686 5.916 6.790 6.691 7.419 6.311 - 7.550 7.209 7.704 6.843 6.352 7.168 8.452 9.680 11.089 12.408 11.036 7.985 7.571 8.038 7.989 9.347 11.040 11.262 8.210 8.915 8.592 9.067 10.139 10.014 10.776 10.378 10.031 9.618 8.818 8.861 7.449 7.846 8.614 8.824 8.656 8.088 - 6.987 7.145 7.008 6.345 6.143 7.083 9.408 9.477 9.894 10.813 10.225 8.007 6.795 6.728 7.601 8.400 9.363 8.837 7.577 8.081 7.611 6.138 7.697 8.530 10.047 9.437 7.049 7.034 7.426 6.998 6.118 6.766 7.773 7.432 7.304 7.408 - 7.600 7.436 7.761 8.021 9.339 9.848 9.484 9.246 10.331 10.846 11.002 11.095 10.415 8.909 10.039 10.937 10.987 10.285 10.487 10.495 11.507 12.056 11.440 12.241 13.525 13.793 15.413 15.506 15.063 14.987 12.814 12.247 11.867 12.004 11.240 10.607 - 6.495 6.296 7.748 8.665 8.827 9.508 9.848 9.707 9.689 10.169 10.626 10.682 9.907 9.083 10.031 10.169 9.960 9.425 9.917 10.761 11.612 11.832 12.789 13.981 14.294 14.781 16.118 15.622 15.903 15.348 13.924 13.824 12.921 13.513 12.776 12.789 - 7.248 7.248 7.529 7.155 7.944 7.067 7.269 8.187 8.292 7.933 7.781 8.272 7.139 7.722 8.489 8.741 9.606 10.435 12.010 11.722 12.332 12.602 14.643 16.126 15.442 15.634 15.642 14.823 15.292 15.906 15.335 15.078 15.099 15.132 15.424 14.788 - 9.049 7.062 7.876 8.437 10.768 11.471 10.754 10.217 10.086 10.483 11.269 10.723 10.323 10.971 11.345 11.322 12.583 12.565 13.624 14.630 15.018 13.824 14.485 15.115 15.251 15.612 14.546 14.431 14.985 15.539 15.207 14.792 15.153 15.039 15.756 14.315 - 11.197 11.789 11.332 11.180 11.193 11.825 9.987 8.766 9.428 8.168 9.715 9.054 9.323 9.977 10.391 11.229 12.134 13.894 13.849 14.395 14.197 14.248 14.929 13.720 14.608 13.860 13.261 13.591 14.419 15.364 13.484 13.602 13.644 13.645 12.931 12.553 - 15.325 13.974 14.067 14.691 13.591 11.919 9.521 7.805 9.115 9.916 9.721 10.194 10.803 10.481 12.517 13.117 13.169 13.953 14.483 13.430 12.370 13.336 12.701 11.303 11.533 12.159 12.167 12.262 11.720 12.340 11.059 11.796 12.300 12.849 12.459 12.364 - 14.812 14.167 14.061 13.415 13.278 13.199 12.685 12.266 12.111 11.938 10.215 10.515 10.666 11.107 13.434 13.984 13.090 13.527 12.973 12.485 13.009 12.633 12.285 11.641 10.571 10.471 11.203 11.305 11.140 10.901 10.203 11.161 11.190 12.649 11.521 10.731 - 17.104 16.680 15.788 14.984 14.340 12.911 13.004 13.243 12.100 11.698 11.582 10.727 11.582 10.893 13.082 13.731 12.319 12.533 12.849 11.652 11.608 11.429 12.617 12.546 10.321 10.479 9.880 10.875 10.180 10.177 10.073 9.709 9.505 11.017 10.702 9.009 - 16.650 17.130 15.649 14.880 14.411 13.368 13.134 12.821 11.773 10.931 11.180 10.787 10.909 11.209 12.886 12.595 12.307 11.769 12.040 12.008 11.032 11.168 10.601 11.150 11.059 11.207 11.036 10.523 9.591 9.763 9.718 9.717 9.131 9.691 9.176 7.654 - 17.832 17.076 14.509 15.326 14.410 13.798 14.023 13.674 11.420 12.194 12.862 12.046 11.204 10.797 11.515 12.168 11.864 12.281 12.332 10.724 11.032 10.922 10.262 10.418 10.486 10.625 11.080 11.004 9.518 9.889 9.738 9.598 9.371 8.230 8.634 7.718 - 15.798 15.383 15.100 15.398 14.526 12.356 12.546 12.055 10.920 11.111 11.127 11.110 11.201 10.857 11.517 11.062 10.893 10.153 9.673 10.058 10.318 10.187 9.627 9.558 8.811 9.752 10.167 9.494 8.410 9.096 9.341 9.144 8.371 8.005 7.976 6.558 - 14.350 13.771 13.139 13.061 11.129 11.492 10.489 8.681 8.893 8.949 10.115 11.436 12.830 11.389 10.312 11.101 9.764 9.569 9.398 10.755 11.116 10.771 9.254 9.260 9.015 9.633 9.370 9.458 9.310 8.833 9.039 8.499 7.625 8.557 8.274 7.176 - 14.734 13.225 11.352 12.479 12.038 9.741 9.841 9.381 9.271 8.290 9.481 11.505 13.697 13.313 11.865 10.831 10.638 9.836 10.412 10.958 11.129 11.083 10.684 10.102 9.081 9.673 8.900 9.674 9.493 8.249 8.826 8.352 7.881 8.187 8.021 7.439 - 11.833 9.136 10.082 10.608 10.579 8.950 8.618 7.703 7.119 7.371 8.260 10.448 11.824 14.417 13.949 11.000 9.941 10.766 9.563 8.832 8.775 9.192 9.742 10.303 9.083 8.068 8.915 9.363 8.373 8.205 8.917 8.134 6.681 6.747 7.624 6.820 - 11.227 9.504 10.080 11.150 11.416 11.100 10.133 8.623 7.729 7.540 8.078 6.934 9.142 11.339 10.916 9.651 8.828 8.506 8.243 8.849 8.141 7.370 7.631 8.975 8.610 7.950 8.408 7.655 7.598 6.963 6.862 5.992 6.244 6.592 6.797 5.281 - 7.590 7.194 7.425 6.868 9.132 9.617 7.396 5.965 6.715 5.707 4.959 4.975 6.523 7.603 8.587 9.669 8.413 5.383 6.741 6.120 6.251 5.509 6.819 6.813 5.399 5.887 5.666 5.439 5.663 6.049 5.382 5.062 5.237 6.146 6.021 4.835 - 6.475 5.989 6.734 7.016 6.467 6.477 5.638 5.492 5.487 3.914 4.761 5.814 5.576 6.026 6.779 7.353 7.219 6.784 5.614 4.834 6.212 6.260 8.202 6.684 5.328 4.451 4.922 4.825 4.577 5.346 5.032 4.939 4.725 5.160 6.276 4.767 - 5.578 3.747 5.376 5.648 5.953 6.096 4.627 4.635 3.721 4.325 4.245 4.547 5.182 5.936 4.996 6.892 6.875 7.568 8.063 5.775 6.954 6.591 7.649 7.899 7.098 6.194 7.307 6.443 6.290 6.776 5.527 3.841 4.398 4.541 4.783 3.711 - 5.637 5.160 5.456 4.232 5.858 7.095 6.918 6.675 5.183 5.132 4.328 5.405 5.409 5.519 5.546 6.891 7.148 8.437 9.385 7.798 8.393 8.294 8.473 8.785 7.646 6.614 8.081 7.635 7.287 8.204 6.086 4.802 4.299 3.792 5.652 5.264 - 5.543 5.323 5.129 3.271 5.582 7.007 7.112 7.744 7.102 6.493 6.353 6.062 5.937 7.098 7.399 7.028 7.747 7.668 9.219 8.974 8.608 9.499 9.311 9.194 9.688 8.264 9.371 9.608 8.741 8.336 8.682 6.823 4.843 5.077 6.568 7.198 - 5.505 6.793 5.764 4.516 5.989 5.790 7.632 8.081 7.636 8.325 8.717 8.795 8.488 9.073 7.542 8.143 9.348 10.413 11.101 11.111 11.086 10.449 10.255 9.483 9.660 8.585 9.905 10.033 9.414 8.502 9.312 7.261 5.801 6.529 7.634 7.832 - 8.346 8.935 8.905 8.611 8.187 9.337 10.238 10.791 10.837 10.126 9.560 10.147 10.528 8.616 9.383 10.415 11.417 12.055 11.229 13.300 13.608 10.482 10.383 10.067 10.103 10.006 9.870 9.806 9.042 9.473 10.925 10.511 8.356 7.609 8.732 7.440 - 7.040 7.458 7.570 8.009 7.141 8.047 8.751 8.273 10.899 10.437 10.994 12.224 12.392 10.543 11.093 10.925 11.266 12.167 12.796 13.851 13.740 12.961 10.534 11.377 11.613 10.107 11.525 11.563 10.546 9.914 11.760 12.138 10.505 9.090 10.104 9.055 - 8.283 8.307 7.565 7.420 6.886 9.146 9.369 9.167 11.170 11.891 13.228 14.048 13.548 12.260 12.106 11.262 12.568 13.073 14.262 15.950 15.768 14.239 12.547 11.907 11.574 10.955 12.399 12.330 11.074 9.364 10.534 11.971 10.987 10.388 11.693 10.430 - 8.452 8.969 7.754 7.476 8.864 10.614 11.085 10.631 10.680 11.920 12.553 13.009 13.930 13.231 13.148 12.374 12.602 13.694 13.948 16.656 16.751 14.432 13.878 13.002 13.445 12.567 11.446 12.704 12.361 9.677 10.057 10.880 11.313 12.611 13.043 10.196 - 8.595 9.019 8.808 9.557 9.409 9.702 10.237 9.208 10.925 12.056 13.646 13.616 13.969 12.972 12.962 13.173 14.494 14.518 13.916 15.321 16.105 15.653 14.461 13.509 13.868 13.345 11.890 12.203 12.192 11.045 10.577 11.763 11.840 12.951 12.590 9.974 - 10.221 9.266 8.922 10.512 10.780 8.973 8.934 11.363 11.071 10.127 13.847 14.952 14.401 13.405 13.370 13.428 14.755 14.681 14.199 15.767 16.003 13.810 13.025 12.769 13.634 14.012 12.121 11.979 12.255 11.850 11.026 11.822 13.309 13.199 12.196 10.340 - 10.875 11.838 12.327 11.403 12.831 12.531 13.050 13.021 14.418 14.315 14.608 15.514 15.100 13.703 14.309 13.797 14.763 15.266 16.105 16.320 14.589 13.747 13.767 13.150 13.462 13.652 11.326 10.703 12.313 12.570 11.260 11.385 13.578 14.249 10.629 9.318 - 11.375 12.828 13.457 11.499 13.333 13.576 15.034 14.637 16.314 16.619 17.511 17.218 16.586 16.243 16.049 15.851 16.174 16.806 17.377 17.634 16.176 15.524 15.265 14.356 12.971 13.410 12.109 11.270 11.751 12.526 11.679 10.688 13.766 13.586 11.201 8.897 - 11.325 13.011 13.595 11.719 13.009 13.271 15.035 14.687 16.838 17.762 18.372 17.187 16.526 16.868 16.624 16.771 17.358 18.257 18.831 18.369 17.156 16.851 17.071 15.991 13.391 14.257 13.282 12.129 13.553 13.779 13.224 12.153 14.047 13.361 9.966 8.949 - 10.744 13.173 13.425 11.991 13.122 13.835 14.846 15.484 16.534 18.505 18.260 17.806 16.581 16.370 16.315 16.354 17.320 18.396 19.087 17.708 16.285 16.608 17.107 16.351 13.597 13.930 13.454 12.181 12.759 13.696 13.931 12.629 12.771 12.225 10.158 9.718 - 11.558 13.676 13.370 13.005 13.390 14.521 14.896 16.157 16.968 18.680 17.775 17.780 16.188 15.846 15.943 16.468 17.612 18.520 18.615 17.108 16.228 16.857 17.791 16.559 13.725 13.602 13.697 12.851 12.810 14.026 15.078 14.314 14.440 13.568 9.290 9.835 - 11.503 13.929 13.707 13.330 13.652 14.855 15.170 17.086 17.816 19.026 17.373 17.271 16.305 16.168 16.529 17.478 18.752 18.753 17.056 16.440 15.736 16.620 17.502 16.310 13.377 12.838 13.141 12.592 12.548 13.219 14.420 14.593 14.704 14.089 10.595 9.720 - 11.437 14.279 14.077 13.925 14.420 15.052 16.011 18.241 18.325 19.154 16.964 16.427 15.234 16.593 17.521 18.423 18.345 18.068 15.713 15.535 15.203 15.681 16.753 16.052 13.805 12.574 12.026 11.577 11.361 11.731 12.459 14.096 14.477 13.372 10.670 8.012 - 11.824 14.711 14.338 14.750 14.971 15.839 17.140 19.108 18.285 18.284 17.714 17.385 16.947 16.193 18.547 17.809 16.694 15.823 14.640 14.037 14.259 14.491 15.848 15.754 14.064 12.295 11.522 10.804 10.903 11.759 13.390 14.573 15.136 13.829 11.840 8.549 - 12.080 14.854 14.736 15.129 15.637 17.484 18.116 19.087 17.765 15.641 16.848 17.176 17.712 17.524 17.994 16.753 14.062 13.677 13.712 12.973 12.776 12.879 14.388 14.945 13.418 12.496 12.054 10.857 10.439 11.290 13.382 13.655 14.338 14.454 13.019 8.487 - 11.777 14.929 14.879 15.626 16.402 18.252 17.974 17.243 16.969 15.604 14.658 16.099 17.705 17.407 15.692 14.037 12.716 12.849 12.938 12.131 11.792 11.397 12.529 12.401 13.046 13.260 12.154 10.942 10.650 11.439 14.020 13.641 14.424 15.318 14.303 6.552 - 11.584 14.946 14.828 16.436 16.980 18.075 17.810 15.170 15.655 14.335 15.114 16.306 17.975 16.239 13.256 12.876 12.876 11.364 10.992 10.861 10.737 11.054 11.026 11.026 12.786 13.036 11.205 10.272 10.265 10.973 13.440 13.140 14.269 15.971 14.934 7.395 - 11.538 14.704 14.714 16.805 17.201 16.538 16.556 15.520 15.448 15.189 14.251 15.755 16.835 15.391 13.284 12.153 11.483 11.953 10.898 9.944 9.837 10.293 10.231 11.021 12.292 12.299 10.085 9.237 9.120 9.950 12.470 12.781 13.741 15.453 14.256 7.694 - 11.779 14.496 14.617 17.055 17.288 14.940 15.111 14.830 14.814 15.232 14.090 14.303 15.484 15.553 13.711 11.937 10.703 11.266 10.424 10.151 8.811 9.387 10.050 10.805 11.375 11.449 8.777 7.970 7.957 8.534 11.505 12.032 12.450 13.971 13.024 7.948 - 11.641 14.140 14.385 17.122 16.987 13.821 13.655 13.539 13.503 14.241 13.099 12.864 15.145 15.676 14.911 12.514 11.392 10.864 9.894 9.626 9.376 9.354 10.173 11.284 10.291 8.975 7.427 5.757 5.737 6.132 8.231 10.361 10.814 12.053 11.911 7.814 - 11.708 13.618 14.331 16.942 16.359 13.763 12.570 12.690 12.715 12.473 11.910 11.546 11.773 14.109 14.093 13.726 13.460 12.308 11.780 10.641 10.712 10.694 11.638 13.003 12.062 7.986 7.148 6.335 6.585 6.434 7.361 9.820 8.768 10.968 11.490 9.073 - 12.163 12.836 14.960 16.233 15.576 13.647 12.731 12.463 12.710 12.807 10.894 10.378 9.992 10.760 11.894 12.732 12.762 13.993 14.138 12.828 12.004 12.704 13.285 14.793 13.094 9.538 8.161 7.950 7.693 7.667 8.837 10.807 9.315 10.178 10.383 8.447 - 11.579 13.149 14.576 14.821 14.344 13.504 12.452 11.825 11.413 11.510 10.775 10.011 10.115 10.394 10.394 10.879 11.125 11.207 12.007 13.277 13.759 14.724 14.764 15.883 14.418 10.955 9.802 9.539 8.698 9.080 10.199 10.931 9.232 12.021 11.611 8.774 - 11.483 13.338 14.562 15.045 13.502 12.367 11.064 9.735 9.860 10.567 9.938 9.059 8.319 9.607 9.781 9.916 9.796 9.797 10.592 10.851 11.040 13.057 14.842 14.843 14.641 14.035 13.307 12.125 11.126 10.864 12.234 12.352 10.673 14.097 13.289 8.952 - 11.761 13.495 13.509 14.484 13.377 12.284 11.107 9.500 10.451 10.707 9.615 8.107 9.042 8.285 8.411 8.680 8.802 9.778 9.132 9.084 10.231 11.144 13.960 13.958 12.159 12.133 12.121 11.526 12.180 11.634 12.214 13.446 12.005 13.901 13.739 9.318 - 12.688 13.454 14.451 14.985 13.076 11.730 10.558 9.671 9.758 10.828 8.569 8.125 8.155 8.415 8.610 8.760 9.181 9.027 9.192 9.370 9.960 11.482 13.519 13.643 11.613 11.202 11.633 11.578 12.406 12.452 12.873 13.985 12.979 14.656 13.943 10.662 - 12.381 14.970 14.566 14.321 13.939 11.909 11.096 11.025 10.646 10.742 9.317 8.995 9.372 8.779 8.229 9.022 9.317 9.373 9.681 9.698 10.567 11.451 14.253 14.113 12.538 12.469 12.713 12.832 14.425 14.663 14.918 15.926 15.310 15.565 14.284 10.343 - 12.512 15.309 15.061 13.462 13.767 12.210 11.974 11.499 10.999 10.019 8.762 8.667 8.582 8.207 9.070 9.523 9.900 10.479 10.934 11.228 11.644 12.578 14.788 15.232 13.615 13.423 13.702 13.655 15.167 16.041 16.099 17.231 16.898 16.426 15.419 11.394 - 12.501 15.477 15.255 13.712 13.564 12.359 11.994 11.087 10.534 9.619 9.598 9.452 8.454 8.874 9.130 8.995 9.413 9.645 9.654 10.601 11.162 12.883 15.372 16.013 13.410 13.239 13.559 13.857 15.633 16.431 16.516 17.835 17.576 16.641 15.708 11.527 - 13.043 15.710 15.319 13.963 13.547 12.788 12.192 10.701 9.969 10.283 9.883 9.556 8.544 9.956 9.129 9.258 9.353 9.534 10.188 10.464 11.268 12.714 15.411 15.996 13.920 13.188 13.380 13.859 15.701 16.567 16.698 18.043 17.629 15.983 14.891 11.151 - 13.132 15.704 15.177 14.016 13.465 13.187 12.398 10.789 10.532 11.033 10.161 9.640 8.773 9.767 8.734 9.322 9.173 10.122 10.289 10.914 11.515 12.458 14.572 15.645 14.079 13.151 13.225 13.976 15.691 16.230 16.365 17.999 17.482 14.826 13.649 11.323 - 13.015 15.629 15.055 14.106 13.655 13.526 12.859 10.974 10.675 11.183 9.714 9.380 8.466 9.150 9.034 9.430 9.618 10.316 10.098 11.044 11.171 12.702 15.046 15.621 13.920 12.911 13.073 13.971 15.500 15.356 15.648 17.217 16.530 13.495 12.252 11.072 - 12.663 15.492 15.100 14.332 14.251 13.583 13.347 11.077 10.435 11.033 8.833 9.092 9.721 9.491 9.714 9.459 10.152 10.477 10.328 10.647 11.136 12.764 15.308 16.085 14.394 12.625 13.277 14.426 15.359 14.957 15.712 17.593 16.692 13.693 11.919 10.413 - 12.140 15.251 15.001 14.582 14.805 13.370 13.317 10.937 10.108 10.421 8.549 8.849 10.006 9.826 9.491 9.432 9.965 10.324 10.424 10.921 11.452 12.840 15.430 15.682 14.006 12.668 14.077 14.803 13.647 13.415 14.930 17.294 16.185 13.361 11.246 10.715 - 12.022 15.019 14.783 14.779 15.353 13.337 13.346 10.832 9.502 9.766 8.470 8.551 9.665 9.173 9.373 9.448 9.840 10.265 10.816 11.039 11.651 13.474 15.844 15.837 13.661 14.302 15.360 14.963 13.107 12.856 14.381 16.768 15.195 13.060 12.348 12.435 - 11.916 14.705 14.534 14.970 15.571 13.041 12.625 10.941 9.030 9.707 9.175 10.247 11.217 11.016 10.425 9.846 9.746 9.559 10.288 10.916 11.741 14.478 15.955 15.036 12.775 13.917 16.395 15.990 14.389 12.674 14.465 17.033 15.369 14.354 13.530 12.263 - 12.180 14.216 13.981 15.012 15.478 13.344 12.184 11.410 10.711 10.521 10.050 9.953 10.073 10.453 10.272 10.829 10.955 10.950 10.934 11.175 13.204 15.424 15.504 14.103 12.926 14.179 15.517 14.476 13.088 12.724 13.855 16.593 14.694 14.674 15.159 13.738 - 11.102 13.589 13.112 14.133 14.537 12.761 13.308 10.952 10.612 11.042 10.291 10.102 9.227 10.372 10.047 9.906 10.354 11.265 12.130 12.647 14.334 15.958 13.962 13.343 12.269 15.458 16.610 14.429 12.548 11.671 12.963 14.746 13.839 14.190 15.049 14.362 - 10.482 13.492 13.327 14.312 14.606 13.262 13.143 10.280 10.987 11.133 10.769 10.210 9.598 10.443 10.538 10.522 10.617 10.701 11.806 12.562 14.623 15.527 13.771 12.633 11.895 14.141 15.342 13.294 12.257 11.867 13.346 14.949 14.015 14.723 15.208 15.567 - 10.212 13.372 13.196 14.293 14.599 13.412 13.467 10.318 8.844 11.260 11.171 11.486 9.960 10.145 10.714 10.355 10.226 11.202 11.876 12.044 14.478 15.036 13.521 12.305 12.242 13.671 14.997 13.639 12.948 12.547 14.753 16.628 14.653 15.495 15.950 16.027 - 10.930 13.952 13.822 14.506 14.976 13.547 13.131 10.693 11.945 12.104 10.781 10.840 11.300 10.877 10.219 10.265 10.711 11.208 12.226 13.028 14.370 15.157 14.460 12.789 11.903 13.732 15.156 14.210 12.850 12.164 13.826 15.679 14.515 14.692 16.734 16.589 - 10.737 14.054 14.129 15.418 15.547 12.951 12.975 12.144 11.463 10.923 10.949 11.430 10.976 10.982 11.377 11.180 11.060 11.899 12.126 13.376 14.596 15.353 14.492 13.118 12.371 13.251 14.652 14.226 13.015 13.224 14.075 16.360 14.901 15.251 15.311 14.805 - 12.178 14.517 14.154 15.791 15.685 12.207 12.603 12.319 11.236 11.137 10.922 9.949 11.047 11.368 11.084 10.539 10.643 11.485 12.025 12.958 14.537 16.030 15.567 14.275 13.454 14.559 15.711 14.756 13.737 13.738 14.607 16.677 14.499 14.729 15.828 14.652 - 12.064 14.908 14.577 15.809 15.804 13.776 12.803 11.303 11.972 12.238 10.769 10.997 10.946 11.146 11.271 11.056 10.905 11.735 12.456 13.068 13.875 16.201 16.125 14.147 13.244 13.472 14.943 14.069 14.230 14.653 15.469 15.186 13.491 15.148 14.331 13.080 - 12.956 15.286 14.705 15.840 15.620 13.894 12.831 11.739 11.724 12.020 11.575 10.396 9.620 10.787 9.736 10.615 10.457 10.938 11.323 11.945 13.642 16.043 16.872 15.421 14.120 14.551 15.033 13.886 13.859 14.672 16.316 16.125 13.999 14.622 14.010 12.902 - 13.445 15.402 14.647 15.852 15.193 13.622 12.229 11.728 11.268 11.270 11.532 10.026 9.995 10.533 9.808 10.122 10.444 10.901 11.580 12.230 13.307 15.576 16.684 16.148 14.948 15.351 15.745 14.060 14.083 15.175 16.768 15.878 14.380 14.434 13.246 8.859 - 13.653 15.234 14.449 15.730 14.621 13.525 11.918 11.451 10.711 10.763 11.028 9.297 9.869 10.030 10.090 10.310 10.489 11.321 11.517 12.446 13.438 15.272 16.329 16.126 15.256 15.494 14.775 13.626 13.628 14.971 16.858 15.913 14.639 14.858 14.109 9.324 - 13.871 15.047 14.323 15.388 13.936 13.243 12.147 11.622 10.739 11.077 10.827 9.198 10.044 10.044 9.862 10.700 10.149 11.601 11.676 12.767 13.598 15.133 15.887 16.064 15.455 14.336 13.419 12.515 12.604 13.964 16.155 15.440 14.461 14.906 14.355 9.507 - 14.005 14.881 14.338 15.078 13.454 12.861 12.301 11.457 10.766 11.303 10.383 9.306 10.004 10.081 9.839 10.706 10.182 11.994 11.986 13.828 14.115 15.041 15.282 15.565 14.832 13.626 12.115 11.490 11.796 13.213 15.496 14.904 14.170 14.571 14.152 8.978 - 13.940 14.666 14.145 14.640 13.213 12.700 12.318 11.053 10.675 11.217 9.772 9.209 9.891 9.996 10.094 10.780 10.935 12.304 12.739 14.465 13.937 13.890 14.531 15.188 13.768 11.939 10.920 10.439 10.961 12.576 15.381 14.844 13.910 13.877 13.973 9.292 - 13.868 14.271 14.036 14.150 13.145 12.591 12.059 10.509 10.115 10.728 8.475 9.904 10.013 9.942 10.513 10.566 11.710 12.080 13.347 13.548 12.334 12.258 13.273 14.756 12.747 10.379 9.430 9.071 9.818 11.645 14.654 14.117 13.371 13.205 13.283 8.580 - 13.778 14.021 13.754 13.519 13.214 12.463 11.913 9.910 9.544 9.920 8.475 10.493 10.196 9.971 10.421 10.737 12.578 12.033 12.912 11.454 10.987 10.989 12.312 14.688 12.604 9.996 8.869 8.515 8.919 10.540 13.767 13.574 12.963 12.679 12.465 8.176 - 13.662 13.907 13.569 13.382 13.134 12.313 11.742 9.524 9.713 9.983 8.470 10.277 9.733 10.087 10.560 11.090 13.540 12.529 11.856 10.353 10.298 10.276 12.063 14.015 11.696 9.545 8.953 8.251 8.779 9.881 13.293 13.374 13.008 12.205 11.331 8.195 - 13.563 13.753 13.629 13.573 13.117 12.131 11.768 9.693 10.131 10.455 7.805 10.078 9.831 9.813 11.027 11.341 13.726 12.268 11.215 10.417 10.168 10.218 11.834 12.817 11.244 9.300 8.860 8.047 8.886 10.081 13.441 13.630 13.318 12.394 11.268 8.804 - 13.498 13.759 13.798 13.964 13.355 12.243 11.821 9.949 10.346 10.594 8.304 10.147 10.087 10.109 11.104 11.341 13.837 12.969 11.781 10.847 10.837 10.841 12.447 13.481 11.501 9.791 9.149 7.728 8.820 10.433 13.806 13.990 13.911 13.364 10.485 8.209 - 13.558 13.775 14.160 14.322 13.538 12.411 12.266 10.360 10.733 10.862 9.098 9.722 10.120 9.990 11.057 10.949 13.013 13.585 12.735 11.619 11.159 10.971 12.451 13.593 12.013 9.824 9.815 7.813 8.614 10.381 13.518 13.628 14.164 13.670 10.019 8.116 - 13.605 13.791 14.515 14.546 13.651 12.660 12.666 10.713 11.054 10.972 10.095 9.561 10.271 9.730 10.962 11.048 12.229 13.747 13.535 13.102 11.788 11.634 12.901 14.325 13.079 10.478 10.487 8.469 8.877 10.420 13.281 13.137 13.500 13.026 8.718 8.127 - 13.455 13.727 14.761 14.619 13.631 12.761 12.625 10.394 11.219 11.056 10.478 9.384 10.445 9.582 10.594 10.764 11.680 12.826 14.257 14.288 12.580 12.130 13.177 14.136 12.918 10.320 10.396 9.394 8.349 9.764 11.759 11.522 12.567 12.015 8.689 8.167 - 13.406 13.736 14.725 14.109 13.352 12.806 12.362 10.107 11.122 10.845 10.264 8.860 10.179 9.181 10.205 10.382 11.450 12.252 13.901 14.894 13.096 12.151 13.743 15.225 12.967 10.127 10.113 9.133 8.808 9.437 12.284 11.999 12.846 12.609 9.663 8.746 - 13.321 13.709 14.549 13.646 13.171 12.781 12.154 10.036 11.121 10.829 10.233 9.438 10.174 9.406 9.964 10.044 10.837 11.372 12.792 14.219 13.200 12.578 14.003 15.299 12.698 10.215 9.361 7.988 8.974 10.590 13.016 12.209 13.163 12.703 8.981 8.459 - 13.236 13.447 14.221 13.089 12.951 12.535 11.843 9.633 10.918 10.727 10.098 9.103 9.412 8.943 10.023 9.727 10.524 10.486 11.784 12.944 13.351 12.845 13.891 14.164 12.041 9.999 9.626 6.922 7.304 9.549 11.842 12.018 13.887 13.063 8.530 7.252 - 12.951 12.968 13.775 12.669 12.751 12.114 11.244 8.506 10.261 10.413 9.979 9.498 9.062 8.848 9.768 9.302 10.105 10.111 11.816 13.201 12.914 12.492 13.674 13.867 11.526 9.813 9.146 7.613 8.206 9.984 11.518 10.964 12.709 11.751 8.715 8.306 - 13.376 12.588 13.664 13.204 13.247 11.919 10.142 9.159 10.492 10.146 10.119 10.171 8.501 8.811 8.579 10.076 10.197 11.170 12.220 12.699 11.719 11.414 12.468 13.899 12.026 9.635 9.380 8.095 8.842 11.119 12.736 11.210 11.861 11.326 9.975 9.890 - 12.433 14.347 14.881 13.968 14.040 11.649 10.306 10.433 11.345 10.851 10.868 9.377 8.816 9.632 9.879 10.564 12.372 13.354 12.173 11.553 10.076 10.715 12.284 13.403 10.426 9.269 8.473 8.288 8.421 10.768 12.571 10.609 11.616 11.208 9.459 9.456 - 14.430 13.746 14.243 13.834 13.188 11.664 11.065 10.926 11.868 10.962 9.733 9.744 9.582 10.110 10.662 11.856 12.588 13.261 11.176 10.464 9.622 10.096 11.801 13.365 11.004 7.687 6.861 6.988 7.795 10.288 11.066 9.881 11.459 11.418 9.790 9.922 - 15.255 14.922 12.647 12.718 13.331 13.357 12.756 11.271 12.408 11.381 9.943 10.261 10.577 11.261 11.581 12.767 11.727 10.483 9.993 9.508 9.037 9.263 10.080 11.784 10.419 6.484 6.566 6.844 8.439 10.370 11.394 10.068 11.810 12.441 10.016 10.167 - 13.680 13.375 14.495 14.502 14.775 14.025 13.655 11.779 12.318 12.100 11.450 11.410 11.396 12.485 13.662 11.800 11.315 10.239 9.702 9.071 9.009 9.062 10.033 10.662 9.432 6.455 5.241 6.151 7.553 10.781 11.228 9.205 10.740 11.321 10.529 10.723 - 14.305 14.044 14.045 13.500 13.771 14.538 14.667 12.288 13.012 12.859 12.421 12.068 13.172 14.014 14.432 11.973 10.866 10.648 9.812 9.398 9.678 8.979 10.231 11.474 10.013 7.291 6.240 7.050 7.726 9.516 8.963 8.340 8.955 9.612 9.523 10.041 - 13.759 14.264 14.008 13.470 13.714 15.415 15.876 13.250 13.700 13.691 13.270 12.710 14.435 13.231 12.739 11.598 10.877 10.876 9.659 9.569 9.956 9.371 10.160 11.881 11.042 8.718 6.866 8.077 9.299 9.306 7.320 6.329 9.211 9.914 11.488 11.760 - 13.857 13.903 13.767 13.542 13.396 15.891 16.635 14.452 14.440 14.456 14.179 13.876 15.765 13.537 12.270 11.605 11.043 11.277 9.796 9.835 9.406 9.209 10.117 11.325 11.650 9.694 7.684 8.947 10.912 10.957 7.283 8.095 9.815 8.882 11.170 11.210 - 13.794 13.861 13.798 13.413 12.667 16.014 16.688 14.846 15.125 14.989 14.728 15.155 16.004 13.183 11.561 10.810 10.790 10.967 9.925 9.954 9.690 9.492 10.280 11.186 12.561 11.386 9.705 11.207 12.587 11.008 7.572 9.543 10.335 8.286 9.737 10.316 - 13.526 13.464 13.415 12.569 12.281 15.556 15.607 15.559 15.763 15.229 14.927 15.389 15.019 12.531 11.024 10.346 10.502 10.546 10.166 9.675 10.153 9.473 10.455 10.884 12.234 11.212 10.991 12.288 12.786 10.782 8.410 9.037 9.423 9.126 11.494 11.440 - 13.434 13.172 13.221 12.219 12.394 14.897 15.090 16.094 15.829 15.145 15.245 15.884 13.733 11.643 11.590 10.725 10.490 9.917 10.155 9.569 10.221 9.531 9.806 10.212 10.259 10.398 11.239 12.919 11.954 9.812 7.157 6.996 7.832 8.317 9.940 10.026 - 13.441 13.199 13.088 12.502 12.430 14.720 15.059 16.475 16.259 15.590 15.181 16.696 15.996 13.261 12.654 11.560 11.310 10.705 10.002 9.636 9.859 9.592 10.132 10.074 10.488 10.371 11.113 13.069 12.596 10.981 7.868 8.772 9.897 8.884 8.318 8.547 - 13.438 13.164 13.179 12.542 12.050 14.248 14.864 16.555 16.412 16.099 15.051 15.702 17.029 15.964 13.991 12.807 12.308 11.574 10.251 9.888 9.811 10.362 10.437 11.335 10.649 10.833 12.224 13.272 12.712 10.436 9.001 9.588 10.590 9.642 8.627 8.435 - 13.355 13.095 13.391 12.824 11.977 13.905 14.598 16.238 16.959 16.638 15.154 14.853 16.893 16.132 15.141 13.893 12.443 12.257 10.821 11.086 9.879 10.287 10.672 10.487 10.034 10.765 11.610 12.669 11.474 9.117 9.156 9.553 10.742 9.840 8.326 7.875 - 13.345 12.984 13.530 12.732 11.762 13.783 14.370 15.744 17.175 16.362 14.655 14.552 15.277 15.540 16.730 15.105 13.253 12.549 11.557 11.137 11.091 10.655 11.319 11.415 11.820 12.775 13.519 13.048 11.300 8.668 9.475 9.664 10.712 11.289 9.656 7.945 - 13.190 12.874 13.591 12.383 11.893 13.759 14.313 15.241 16.946 15.769 14.038 14.231 14.505 14.536 16.329 16.135 14.205 12.820 12.298 11.310 11.195 11.364 11.165 11.329 11.683 12.683 13.715 12.686 10.731 8.273 8.711 8.725 9.772 10.460 7.916 6.319 - 12.974 12.773 13.379 12.227 11.973 13.438 14.733 15.904 16.315 14.864 13.782 13.736 13.739 13.831 15.418 16.285 14.929 13.144 12.225 11.759 11.666 11.264 10.019 10.253 10.814 12.517 13.237 11.752 10.569 9.278 8.701 9.258 10.993 9.885 7.230 6.455 - 13.101 12.893 12.729 11.388 11.626 13.034 12.102 12.380 13.009 11.296 11.727 11.470 11.082 11.306 12.232 13.195 11.783 11.906 11.340 10.632 9.551 8.403 8.997 8.892 10.386 12.279 11.764 10.393 9.942 9.732 7.314 8.907 10.011 9.556 7.075 6.108 - 13.600 13.393 13.141 12.381 12.508 13.723 12.850 12.190 12.703 11.195 11.521 11.102 9.973 9.801 11.010 11.704 10.933 10.754 10.160 10.997 9.606 8.346 9.262 9.893 11.448 12.312 11.612 9.963 9.411 8.981 7.558 9.352 9.854 9.137 7.215 6.002 - 13.678 13.215 13.007 12.181 12.689 13.867 12.777 12.105 12.399 11.348 11.238 11.393 9.783 10.337 11.033 11.605 11.266 11.088 11.130 10.859 10.578 10.124 10.102 11.202 12.610 12.885 11.515 9.901 9.605 9.019 8.127 9.491 9.695 9.187 7.793 6.719 - 13.645 13.334 13.015 12.239 11.982 14.241 15.385 15.626 15.125 13.909 13.363 13.234 12.563 12.522 13.478 15.638 16.522 15.610 14.613 14.703 14.949 15.556 15.084 12.862 13.099 13.573 12.901 10.989 9.235 11.357 11.984 13.818 13.812 11.770 9.591 6.673 - 13.407 13.065 12.994 12.766 12.593 14.384 15.001 16.678 15.987 14.967 13.782 13.883 13.205 13.079 13.875 15.200 16.254 16.029 14.770 13.478 13.718 14.510 14.472 12.436 12.297 13.233 13.433 10.990 9.707 11.808 11.532 13.092 12.814 11.140 8.907 5.562 - 13.305 12.888 13.344 12.327 12.463 14.134 15.338 16.083 17.100 15.435 13.859 13.933 13.417 12.810 13.330 13.488 15.186 15.785 14.895 12.939 12.485 12.733 13.658 12.878 11.729 13.151 13.562 11.991 11.073 12.176 10.823 11.806 11.921 10.957 8.346 5.055 - 13.441 12.805 13.409 12.175 12.550 14.303 15.397 16.225 17.103 15.139 14.048 13.780 13.320 12.700 13.274 13.074 14.403 15.735 15.949 13.736 12.749 12.913 12.928 12.016 12.788 12.807 12.898 12.829 11.898 11.550 10.415 11.312 11.211 10.028 7.600 4.994 - 13.535 12.943 13.479 12.298 12.914 14.458 16.051 16.429 16.261 14.280 12.858 12.906 12.610 12.086 12.566 12.949 13.896 14.919 15.162 12.328 11.797 12.372 12.001 11.629 12.857 12.265 12.039 13.007 12.277 10.300 10.172 11.124 10.239 8.814 7.024 5.957 - 13.438 13.163 13.568 12.630 13.635 15.186 15.907 15.327 14.484 13.559 12.943 12.155 11.649 11.686 12.070 13.091 14.565 14.232 13.257 11.688 11.472 11.822 12.214 12.489 11.848 10.553 10.767 11.602 11.186 9.117 9.269 10.644 10.709 9.000 6.389 5.945 - 13.633 13.633 13.209 12.637 13.113 11.916 12.407 11.576 11.398 9.675 11.151 10.682 7.376 8.317 10.030 11.828 11.622 11.148 9.185 9.083 8.711 9.706 11.061 9.858 8.349 6.631 7.377 9.141 9.155 8.096 6.423 8.680 9.548 9.109 7.014 5.903 - 13.806 13.404 12.900 12.754 12.953 12.170 11.230 9.472 10.856 9.689 11.060 10.838 8.214 6.928 9.352 11.629 11.011 11.262 10.167 9.586 8.758 9.713 10.990 10.391 9.101 7.325 6.467 7.483 10.176 10.110 7.212 7.904 9.050 8.383 6.619 6.490 - 13.808 13.213 12.615 12.497 12.776 12.113 11.400 10.667 10.828 9.262 11.090 10.757 7.946 6.612 8.404 11.456 10.687 11.386 9.588 9.404 9.687 10.455 11.227 11.533 9.641 7.605 5.073 6.204 9.225 10.442 8.033 8.821 10.019 9.048 7.564 7.171 - 13.821 13.077 12.447 12.288 12.684 12.031 10.859 10.834 10.600 9.279 11.135 10.438 7.425 6.916 8.576 11.228 10.584 11.024 9.538 9.689 9.930 10.003 10.882 12.021 9.927 8.356 5.399 6.124 9.035 10.118 8.912 8.656 10.253 9.493 7.760 7.112 - 13.840 13.078 12.345 12.103 12.596 11.947 10.901 10.470 10.345 9.109 10.955 10.393 7.404 6.562 8.010 11.076 10.549 11.096 9.236 9.050 9.256 9.401 10.727 12.332 10.734 8.905 4.793 5.873 8.606 10.322 8.974 8.625 10.098 9.599 8.697 8.347 - 13.891 13.253 12.474 11.947 12.562 11.830 10.871 10.099 10.370 8.905 10.635 10.385 7.916 7.801 9.143 11.536 10.589 10.919 9.773 9.128 9.336 9.755 10.914 12.313 10.819 8.905 6.312 5.798 7.990 9.886 9.014 9.938 10.704 9.525 8.381 8.453 - 13.879 14.006 12.714 12.700 13.227 13.230 14.042 13.687 13.574 12.726 10.937 12.004 10.850 10.909 11.510 12.378 13.159 13.395 14.259 14.279 13.814 11.598 11.698 13.600 13.189 11.329 10.391 10.223 10.421 12.088 13.073 12.184 11.620 10.439 9.626 9.617 - 13.406 12.782 13.222 12.534 12.803 15.052 16.012 16.068 14.387 13.106 12.255 11.832 11.383 11.325 11.677 11.733 12.221 12.082 12.956 13.852 14.839 14.410 13.277 13.661 14.373 13.719 11.493 11.580 11.683 13.156 15.115 13.874 12.307 10.797 10.413 10.565 - 13.222 13.001 13.387 12.692 12.872 14.984 16.087 16.642 15.180 13.631 12.766 11.933 11.769 11.471 11.593 11.473 12.027 11.771 12.229 12.625 13.362 15.082 14.237 14.313 15.506 15.445 13.292 12.445 12.401 13.267 15.220 15.156 13.431 11.783 9.799 9.521 - 13.102 12.932 13.405 12.776 13.217 15.099 16.415 16.807 15.306 14.209 12.727 11.992 11.975 11.345 11.704 11.563 12.321 12.011 12.374 12.461 13.626 16.030 15.467 14.543 15.110 15.858 13.557 12.796 12.735 13.983 14.993 15.319 14.579 13.016 9.939 9.513 - 13.033 13.037 13.448 12.862 13.476 15.286 16.687 16.699 15.039 14.276 12.919 12.121 11.914 11.531 11.699 11.860 12.436 12.256 12.564 12.659 13.283 15.192 14.841 14.619 14.779 15.382 14.575 13.392 13.330 14.390 16.239 16.817 15.984 14.502 10.973 7.699 - 13.141 12.940 13.313 12.814 13.869 15.582 16.590 16.474 14.606 13.936 12.459 12.091 12.192 11.185 11.780 11.328 12.123 11.529 11.797 11.526 12.217 14.113 14.860 14.803 14.169 15.121 14.240 13.583 13.738 14.455 15.872 16.432 15.708 14.536 11.886 8.166 - 13.221 13.059 13.273 12.671 14.137 16.038 16.065 16.071 14.335 13.331 11.891 11.834 11.842 10.570 11.435 10.954 11.795 11.203 11.755 11.241 12.069 13.707 15.175 14.627 14.310 14.505 14.708 14.393 14.222 14.525 15.943 16.737 15.998 14.730 12.102 8.700 - 13.308 13.102 13.316 13.031 14.384 16.372 15.701 14.966 14.058 13.232 11.703 11.343 11.497 10.247 11.145 10.504 11.189 10.718 11.242 10.699 11.468 12.827 14.583 14.993 14.477 14.752 15.170 14.479 14.181 14.651 15.878 16.605 15.613 14.759 12.876 9.507 - 13.250 13.107 13.244 13.434 14.559 15.943 15.227 13.476 12.863 12.278 10.706 11.174 10.541 9.950 10.683 9.881 10.899 10.331 10.550 10.303 10.563 11.768 13.783 14.271 14.049 14.140 14.574 13.994 13.526 13.682 15.188 16.347 14.896 14.094 11.813 9.657 - 12.662 12.519 12.119 14.213 14.925 14.461 13.340 12.921 11.607 12.022 10.210 10.092 9.223 9.616 9.023 8.931 9.699 8.820 9.310 9.138 9.793 11.030 13.697 14.637 13.770 13.501 13.785 13.338 12.898 12.603 14.117 15.884 14.434 13.260 10.634 9.815 - 11.507 11.021 9.998 11.912 11.190 10.598 11.893 11.207 8.449 8.992 8.550 8.086 7.193 7.281 6.139 6.838 7.665 7.832 8.025 7.923 8.238 8.927 11.651 12.577 12.101 11.538 12.037 11.779 11.299 11.231 12.607 14.095 12.503 10.553 10.074 9.358 - 9.699 10.191 10.871 9.154 8.572 6.955 8.544 8.878 6.718 8.053 8.465 7.191 4.336 4.942 6.083 6.090 6.206 5.865 5.473 6.112 6.376 7.047 7.925 8.346 8.406 8.998 9.761 9.431 8.335 7.231 8.147 9.672 8.664 8.011 9.551 9.870 - 7.568 9.795 10.154 8.816 8.867 8.105 8.055 8.604 5.567 5.199 4.675 3.470 4.139 5.007 5.666 4.815 4.892 4.910 4.631 4.749 5.054 6.047 5.368 6.177 5.782 7.116 8.837 9.024 7.106 5.368 7.299 8.371 7.478 7.134 9.208 9.624 - 5.519 7.028 7.509 8.210 8.030 9.109 8.407 8.742 6.778 5.375 5.147 4.093 3.708 3.706 5.168 5.018 6.285 4.276 4.523 4.623 3.220 4.485 5.187 5.605 5.254 4.974 4.870 5.559 4.371 5.070 6.970 7.364 5.754 5.753 4.561 3.480 - 6.115 6.016 7.663 7.811 7.600 8.396 8.332 8.559 6.613 5.281 3.296 4.594 4.508 4.499 4.932 5.146 4.868 4.211 4.391 4.352 5.085 5.121 5.260 5.604 4.079 5.256 5.489 4.872 5.256 4.999 6.134 7.107 6.031 5.868 3.849 2.787 - 5.672 5.660 6.772 6.918 7.483 8.607 7.662 7.584 7.200 6.091 5.670 5.741 6.021 6.063 5.954 5.409 5.451 5.677 6.027 6.058 6.023 6.390 6.368 6.317 7.201 7.966 8.249 8.157 7.712 7.015 6.920 6.717 6.580 6.583 5.644 4.288 - 8.472 8.144 7.464 8.402 7.854 7.870 8.980 9.617 10.865 10.561 9.606 9.537 9.770 9.772 10.522 11.231 11.843 10.874 11.008 11.127 10.971 11.862 11.742 12.688 12.784 13.063 14.348 15.021 13.782 11.527 12.928 12.372 11.652 11.869 11.967 10.743 - 7.009 7.378 7.670 9.760 10.677 10.577 10.779 9.617 11.128 12.330 11.468 12.045 10.447 11.143 11.484 12.559 12.316 12.389 12.718 12.488 11.805 13.467 13.761 14.487 14.362 15.324 15.463 16.620 16.208 14.505 14.140 14.588 13.786 13.350 13.529 12.639 - 11.676 11.976 11.437 13.085 13.799 13.211 12.293 11.946 10.399 10.865 10.573 10.787 10.232 10.177 10.556 10.589 9.850 9.962 9.928 9.083 9.448 10.894 12.340 12.634 12.057 12.255 13.747 14.631 14.527 14.136 15.354 16.265 15.230 13.232 12.881 13.290 - 12.365 13.318 13.235 14.409 14.468 16.036 15.195 13.192 11.320 11.319 11.397 10.707 9.668 9.532 9.308 8.710 9.472 9.545 10.173 10.314 11.158 12.707 11.916 11.315 10.980 11.342 11.925 12.647 12.507 12.691 14.829 15.833 14.157 12.107 11.095 11.947 - 12.799 13.014 13.794 13.630 15.175 16.083 16.380 14.581 12.351 11.413 11.950 11.684 10.457 9.914 10.417 9.638 9.828 10.209 10.464 12.164 14.039 14.442 12.289 11.645 10.896 10.970 12.437 12.960 12.027 11.762 13.244 13.821 12.948 12.097 10.145 8.822 - 12.430 12.270 13.212 13.108 14.563 16.330 15.469 14.183 12.763 12.462 11.759 11.246 11.079 10.668 10.685 11.096 10.666 11.265 11.509 13.411 14.685 14.228 11.948 11.448 11.013 11.902 13.536 12.949 11.849 11.124 12.678 13.460 12.510 12.296 10.562 7.634 - 11.253 12.067 12.251 12.779 14.944 16.223 15.593 13.634 12.475 12.193 11.374 10.928 10.855 10.947 10.772 10.870 11.149 11.246 12.386 13.990 14.710 13.350 11.986 11.371 11.743 12.508 13.727 13.564 12.410 12.054 12.909 13.624 12.474 11.913 10.434 6.681 - 11.295 11.906 12.639 13.380 13.614 13.627 14.279 12.905 11.475 11.339 10.928 10.330 10.665 11.107 10.720 10.909 11.410 11.598 13.549 14.597 14.199 12.631 11.908 11.761 12.358 12.688 13.441 13.510 12.007 11.634 12.459 13.487 12.043 11.033 10.057 6.140 - 9.432 9.179 8.288 9.416 10.498 9.851 10.559 9.685 8.384 6.686 5.073 6.321 6.300 6.509 6.566 6.538 7.063 7.827 10.389 11.409 9.457 8.018 7.547 7.757 8.239 8.684 10.269 9.758 9.546 9.701 9.611 9.964 9.119 8.038 7.108 6.312 - 10.040 10.581 9.728 7.668 7.716 8.742 9.696 8.852 6.972 6.377 6.100 4.846 5.478 5.810 6.456 5.682 6.427 7.247 9.962 8.964 7.504 8.199 7.574 7.648 7.639 7.623 8.867 8.932 9.193 9.713 9.291 8.904 7.554 6.754 5.788 4.866 - 8.004 7.625 7.779 7.190 6.787 6.677 9.426 8.609 6.051 6.591 6.220 6.078 6.662 6.960 7.436 7.507 7.571 7.672 8.493 8.191 8.039 7.468 6.965 7.133 7.058 6.249 6.552 7.000 6.249 5.636 5.769 6.544 5.635 5.230 4.803 2.927 - 5.100 5.069 6.548 8.626 9.456 9.194 9.819 9.463 7.703 9.734 10.495 11.074 11.247 10.093 10.942 12.298 12.611 11.585 10.681 11.870 11.555 9.552 10.680 9.460 9.124 8.946 7.836 8.855 8.409 8.103 6.960 7.133 6.403 7.004 6.260 5.552 - 5.152 6.181 6.779 7.817 8.731 8.043 7.802 8.138 8.029 8.416 8.203 9.172 9.637 7.593 8.757 10.444 10.962 10.186 9.682 10.131 10.348 9.759 9.941 9.036 9.599 9.051 8.321 10.009 10.742 10.901 10.439 9.291 9.400 9.250 9.863 9.372 - 5.591 7.365 8.258 7.589 7.296 8.373 9.246 8.920 9.271 8.752 8.229 8.871 9.015 8.379 7.989 7.765 8.358 9.233 9.055 8.331 8.149 8.902 9.287 8.988 9.284 8.867 8.421 9.481 9.788 10.173 10.466 10.543 10.230 10.041 9.539 8.658 - 8.714 8.162 7.535 8.809 7.885 7.227 9.282 9.209 9.360 8.820 9.373 9.568 10.000 9.311 9.072 9.570 9.208 10.272 11.387 11.310 10.912 10.688 10.723 11.086 10.946 10.968 11.236 12.024 10.863 10.817 11.372 11.274 11.306 10.598 10.662 9.544 - 9.199 10.240 9.804 9.940 9.735 8.823 10.013 10.171 11.324 11.100 11.380 12.283 11.539 10.943 10.069 11.065 12.874 13.100 13.473 13.045 12.262 12.878 13.570 13.222 12.006 12.468 12.854 13.600 12.789 11.946 12.200 12.951 12.584 11.673 11.754 10.724 - 13.004 12.105 10.608 11.167 11.211 9.884 11.308 10.623 10.962 11.652 11.950 12.087 11.206 10.677 11.384 12.690 13.767 13.019 13.290 12.296 11.517 12.926 13.541 12.904 11.650 12.318 12.878 12.638 12.447 12.231 12.077 12.840 12.107 11.831 11.534 11.129 - 14.099 13.913 14.296 14.208 13.860 12.616 12.597 12.906 11.819 11.220 11.943 12.764 11.175 9.669 11.676 13.453 13.939 13.408 13.813 13.105 12.794 12.524 12.023 12.117 13.142 12.231 12.266 12.201 11.910 11.878 12.601 11.789 11.449 11.555 12.084 11.891 - 14.661 15.991 16.951 16.708 15.919 14.709 13.964 13.312 12.953 12.716 12.129 12.236 9.948 10.129 13.348 13.943 14.975 14.041 12.490 13.566 14.145 13.059 12.666 12.888 13.575 13.875 13.538 13.389 13.550 13.611 12.671 12.468 12.215 12.079 12.565 11.628 - 14.988 14.862 15.720 13.987 14.278 13.268 12.081 10.973 11.958 11.261 11.885 11.641 10.298 11.071 12.530 12.733 14.756 14.516 13.429 12.035 12.986 13.383 12.999 11.949 12.620 13.270 13.527 13.153 13.311 13.035 13.448 13.419 11.902 11.717 11.704 10.838 - 13.276 13.845 14.923 14.528 13.906 13.514 12.976 10.483 10.431 10.727 11.276 10.204 10.662 10.722 12.595 13.522 14.171 13.554 13.315 12.982 12.137 12.602 13.471 11.534 10.928 11.204 11.354 11.517 12.146 12.771 12.106 11.070 9.364 10.003 10.846 9.997 - 12.986 11.772 12.676 13.994 14.726 15.609 15.018 14.083 14.007 13.667 13.195 13.537 13.355 13.962 14.909 15.728 15.366 14.413 14.008 13.767 12.518 11.326 11.919 10.075 9.883 9.612 10.613 10.686 10.966 11.106 10.241 10.025 9.575 9.211 8.227 8.591 - 14.184 14.156 13.574 14.046 15.500 15.918 15.167 14.537 13.765 12.854 12.708 13.455 13.118 14.139 14.961 15.937 14.712 13.808 13.697 13.178 10.828 9.327 9.036 9.721 9.490 9.015 9.712 9.538 9.488 8.698 8.019 8.192 7.386 6.960 6.637 5.891 - 14.216 15.545 14.657 13.770 14.412 14.896 13.402 12.818 12.428 12.880 11.665 12.603 11.835 13.066 13.821 14.251 12.250 11.988 11.999 10.736 9.328 7.876 7.149 7.198 7.366 6.894 7.614 7.646 8.252 8.186 6.936 6.694 5.958 5.554 6.637 5.903 - 14.560 13.189 13.041 11.870 10.223 11.389 11.667 11.127 11.309 10.510 8.444 9.487 9.324 9.672 8.990 8.961 8.344 8.239 8.030 7.540 6.851 5.967 5.183 5.375 5.259 5.171 5.059 5.643 5.301 5.896 4.944 5.395 5.568 4.884 5.330 4.355 - 10.225 10.397 9.722 8.025 7.626 7.664 8.290 7.697 6.666 4.914 5.240 5.384 7.359 7.268 6.946 7.498 6.743 6.373 6.108 4.984 4.396 3.949 4.706 4.924 4.054 3.540 5.143 5.002 4.392 4.387 4.175 4.433 3.309 4.608 4.264 2.610 - 7.893 8.262 8.374 6.145 6.207 7.333 8.254 6.944 5.606 5.565 5.734 5.504 6.338 6.320 6.271 7.609 5.594 5.866 5.039 4.673 5.197 3.705 5.007 3.987 3.941 4.252 4.798 4.823 4.295 3.336 3.790 4.373 3.293 3.625 3.911 3.228 - 6.754 6.086 5.473 4.499 6.316 8.067 8.426 7.601 5.265 5.143 5.156 5.284 4.109 5.228 6.140 7.569 5.915 4.989 5.781 5.048 4.605 4.007 4.624 5.267 4.674 4.611 3.396 4.377 4.780 4.401 4.117 4.458 3.584 3.748 3.637 3.085 - 6.316 6.130 4.191 6.121 6.815 6.732 5.848 6.433 4.936 5.065 4.357 4.228 4.508 4.813 5.711 6.271 6.037 5.662 4.407 5.145 5.263 4.515 3.403 3.464 4.058 4.635 4.191 2.993 4.298 5.233 4.662 3.775 3.778 4.073 4.405 3.889 - 5.612 6.434 6.581 5.644 6.083 7.585 7.028 5.326 4.377 5.821 4.883 4.663 4.360 6.282 5.854 6.192 6.371 5.730 5.102 3.745 4.296 4.808 4.371 4.539 4.971 4.806 4.292 3.826 3.496 3.547 4.235 4.793 4.939 4.370 3.640 3.144 - 7.644 7.232 6.095 6.696 7.403 7.956 7.413 6.162 5.015 5.698 5.888 5.671 5.860 5.925 6.200 6.555 7.662 8.100 7.956 8.223 8.551 8.433 8.773 8.671 7.700 7.153 8.339 9.057 9.654 9.885 9.852 9.149 8.435 8.226 8.799 8.870 - 14.296 14.708 15.349 15.200 15.107 14.830 13.835 13.885 13.677 12.745 13.066 13.193 12.953 12.182 11.362 10.356 10.436 11.442 11.030 11.083 12.185 12.223 12.067 12.809 12.301 11.456 11.792 12.072 12.499 12.673 12.753 11.807 10.896 10.741 11.616 11.707 - 18.721 18.586 17.912 17.084 17.800 17.247 16.107 15.927 14.401 14.512 15.358 15.270 14.343 13.751 12.662 12.347 11.391 11.974 11.608 12.044 13.977 14.124 13.978 14.775 14.835 13.714 13.000 12.685 11.496 10.801 11.330 10.650 9.760 10.652 11.088 10.462 - 16.588 16.170 15.417 14.746 15.440 15.237 14.441 13.981 13.074 13.161 13.053 12.014 10.398 10.464 9.913 9.126 9.515 9.290 9.858 10.105 11.108 12.179 11.837 11.571 14.404 13.705 11.340 10.200 10.853 9.917 10.620 9.961 9.384 9.770 9.470 9.777 - 13.537 12.293 12.555 13.719 13.543 11.871 11.153 9.965 7.833 9.166 9.725 8.963 8.390 8.170 8.953 7.960 7.387 7.717 8.631 8.511 9.916 12.069 12.899 11.512 12.540 13.601 11.403 10.394 9.806 9.573 10.875 11.205 10.891 11.047 11.287 11.158 - 11.804 11.930 12.375 14.403 14.244 13.612 11.757 11.749 10.715 10.930 10.767 9.884 10.076 9.573 9.878 9.379 9.401 9.206 9.769 10.259 10.745 11.551 12.527 12.217 11.813 14.001 13.398 11.793 11.424 11.564 12.575 12.725 9.540 10.394 11.531 10.486 - 13.543 13.512 14.031 14.512 15.030 14.310 12.976 11.237 11.293 11.067 9.592 10.435 9.887 9.788 9.705 9.371 10.182 10.235 10.979 11.668 12.520 14.312 15.297 13.944 13.015 13.289 12.881 11.711 11.329 12.228 14.212 14.072 11.553 10.851 11.341 10.207 - 13.478 13.753 14.408 14.292 15.419 14.300 12.979 9.802 11.397 10.901 9.541 10.288 10.450 10.092 10.663 9.752 10.454 10.144 10.795 10.929 12.105 14.030 15.240 14.171 14.196 14.764 13.516 12.059 11.943 12.209 14.812 15.155 13.890 11.540 11.237 10.449 - 13.494 13.539 14.119 14.284 15.182 13.758 12.448 9.047 11.221 10.641 9.416 9.822 10.185 9.879 9.994 9.377 9.022 9.730 9.874 10.865 11.985 14.589 16.328 15.049 14.841 13.806 12.346 11.208 11.195 11.831 14.410 14.801 13.195 11.610 12.025 10.693 - 12.603 12.386 13.301 14.190 14.574 12.894 11.481 7.874 10.299 9.368 9.316 9.646 9.862 9.946 9.567 9.272 9.515 10.060 11.724 12.721 12.960 15.238 15.376 14.424 12.773 11.316 9.840 9.045 9.447 10.530 13.721 13.913 12.130 11.396 10.363 8.967 - 13.961 13.718 13.858 13.213 12.713 10.940 10.507 9.581 9.932 9.012 8.189 7.961 9.015 8.563 8.923 8.746 8.634 9.542 11.363 12.067 11.729 12.553 13.264 12.840 8.523 7.597 6.691 6.404 7.458 8.796 11.897 11.727 10.696 9.713 8.380 6.845 - 12.992 11.585 10.665 9.910 8.835 8.306 8.713 7.772 7.842 8.065 7.081 6.418 7.248 7.388 7.909 7.272 6.954 6.643 7.337 7.013 6.722 7.527 7.697 7.741 6.754 6.452 5.276 5.452 5.890 7.890 8.585 8.390 7.629 7.786 7.621 6.823 - 10.691 10.759 10.519 8.938 9.193 7.571 7.389 6.945 7.321 7.388 7.042 7.887 7.029 6.153 6.085 6.292 7.902 9.917 11.301 11.569 10.165 9.172 10.637 9.835 10.275 11.065 9.922 10.145 9.532 8.752 9.763 12.114 12.548 12.261 12.370 13.013 - 9.785 10.023 8.303 8.694 9.215 7.318 6.149 6.063 7.395 7.197 6.364 8.081 8.079 7.094 6.665 6.015 8.469 9.621 11.433 11.886 10.292 10.135 11.389 10.244 11.239 12.558 12.064 11.727 10.629 9.406 9.852 12.031 12.138 11.949 12.556 12.757 - 8.427 8.538 7.347 7.552 7.947 6.346 5.898 6.078 5.522 6.626 7.336 8.374 8.055 6.763 6.586 7.096 7.823 9.240 9.630 10.026 9.812 9.511 8.775 9.239 10.709 10.721 10.371 10.777 9.458 8.852 9.320 10.242 9.620 9.400 10.910 10.407 - 14.135 13.311 11.715 11.301 12.132 11.725 10.981 10.886 10.572 9.904 10.693 11.457 10.967 11.139 11.205 11.214 10.954 11.534 11.513 12.154 12.037 12.292 11.991 12.435 12.986 12.943 12.820 12.867 12.948 12.600 13.209 12.879 12.648 12.950 12.458 12.240 - 17.403 16.644 14.429 15.094 15.294 15.857 16.372 15.693 14.174 14.173 14.990 15.190 14.526 13.894 11.973 10.756 11.903 12.713 11.821 11.627 11.910 11.559 10.971 11.349 11.449 11.303 11.143 11.304 11.519 11.427 11.592 11.533 10.804 10.951 10.763 10.855 - 15.891 17.255 15.969 16.770 15.444 16.382 16.093 15.479 13.378 13.313 14.488 13.893 13.992 13.143 11.054 11.569 12.396 11.907 11.072 11.033 11.567 11.272 10.450 11.010 11.463 11.696 12.201 11.131 11.614 12.939 12.155 11.421 10.256 10.486 11.050 10.312 - 17.020 17.302 16.366 15.912 15.149 14.662 15.241 15.042 13.644 13.786 14.166 14.486 13.992 12.563 11.002 11.410 10.930 10.329 10.323 10.297 9.584 9.465 10.231 9.364 10.285 11.628 12.370 10.789 11.908 13.345 11.595 10.290 9.057 10.585 10.511 10.221 - 14.481 15.200 15.537 15.065 14.942 15.814 15.828 14.689 14.363 13.235 14.941 15.343 14.674 12.414 10.779 9.820 10.029 9.187 8.415 7.845 8.348 9.494 9.935 9.249 9.474 12.038 13.472 11.468 11.831 13.270 11.938 10.217 8.802 10.217 11.467 11.844 - 15.662 14.496 13.363 13.351 14.934 16.086 15.334 14.231 14.077 12.867 14.280 14.910 14.525 12.203 10.337 10.014 9.376 9.492 7.890 6.924 7.361 8.022 7.548 7.746 8.138 9.708 11.698 11.121 9.557 12.094 11.510 9.884 8.779 11.350 11.942 11.711 - 12.746 12.843 12.415 13.498 13.233 14.358 13.160 13.280 12.962 11.923 13.054 13.311 12.591 11.961 10.896 9.109 8.211 8.230 8.180 7.780 8.296 8.400 7.490 6.906 8.999 9.566 11.723 11.046 9.248 11.883 12.074 11.408 11.883 13.171 12.659 10.572 - 12.719 11.968 11.017 10.373 10.363 11.204 9.649 8.945 9.876 9.504 9.499 10.921 9.849 7.363 7.219 6.862 5.963 5.745 6.634 5.970 5.995 6.587 6.854 6.213 7.355 8.822 8.741 8.054 7.527 8.967 9.454 9.418 10.237 9.420 8.586 7.368 - 10.273 10.033 9.914 9.153 7.952 9.205 8.275 7.670 7.788 6.875 5.880 5.709 5.808 5.240 4.166 4.977 5.252 5.426 4.891 4.774 5.097 5.548 5.537 5.630 7.155 7.881 6.515 6.598 6.657 5.925 6.569 7.232 6.812 7.102 7.222 6.148 - 8.782 9.305 9.239 7.216 7.871 7.922 6.928 7.865 5.837 5.190 4.779 5.745 6.549 5.842 4.976 5.249 4.764 4.554 5.262 5.577 4.889 4.871 4.581 5.017 6.231 6.907 6.417 6.616 5.969 5.782 4.726 5.614 6.057 6.428 7.045 6.235 - 9.309 9.102 7.818 8.110 7.685 7.798 8.751 8.893 8.808 8.820 8.637 8.271 6.698 6.151 8.013 9.205 9.501 9.560 9.408 9.139 9.445 9.979 10.089 9.837 10.377 11.312 11.900 12.279 12.220 12.084 12.254 11.997 10.845 9.671 10.280 9.453 - 10.553 10.482 9.668 8.362 9.617 10.073 9.873 10.782 10.740 11.224 10.827 9.893 8.961 7.757 10.586 11.542 11.492 11.396 11.186 10.600 11.050 11.838 12.013 11.366 12.028 13.215 13.825 14.241 14.106 14.234 14.442 14.450 13.751 12.525 12.897 12.018 - 9.217 9.974 11.616 12.365 12.343 12.068 11.430 10.593 10.702 9.335 8.826 8.696 9.623 8.988 9.370 10.195 8.548 8.031 8.790 8.188 9.333 9.506 9.327 9.438 9.879 11.268 13.121 11.406 11.294 13.696 13.773 13.092 12.830 13.764 11.930 10.956 - 14.329 13.572 13.724 13.769 13.398 13.606 12.520 11.992 10.994 8.749 9.968 11.533 12.275 13.008 12.839 11.732 10.509 8.511 8.445 9.413 9.750 9.859 10.035 10.640 10.402 11.997 12.453 11.128 12.498 11.738 11.808 11.104 11.725 12.217 11.790 8.799 - 13.811 13.097 12.305 12.701 11.898 12.160 11.481 10.919 9.994 8.087 7.015 9.660 10.225 12.178 12.242 10.129 8.461 6.464 7.535 7.020 5.773 6.212 6.142 6.413 7.399 7.630 7.981 9.270 10.726 9.093 8.533 8.439 9.294 9.096 9.416 7.726 - 9.990 10.545 10.718 9.970 9.371 7.527 6.981 6.106 6.548 7.169 5.730 6.229 7.425 8.783 7.389 6.507 6.332 5.104 4.495 3.887 5.228 5.378 5.813 6.297 6.718 5.401 4.719 5.331 6.694 5.913 5.480 5.511 4.796 4.983 5.457 5.798 - 10.674 11.364 10.959 9.022 8.788 7.823 6.432 5.969 6.032 7.193 5.873 7.416 8.704 7.883 5.931 5.259 4.212 4.308 3.811 3.901 4.535 4.466 3.365 4.296 5.813 5.037 3.930 5.007 5.155 5.343 5.432 5.771 5.708 5.407 6.669 5.730 - 10.088 11.090 10.845 8.944 7.961 8.243 7.999 6.147 6.287 6.886 6.250 7.675 7.210 6.659 6.839 6.257 5.466 5.108 4.340 4.894 3.297 5.105 4.840 4.207 5.308 5.552 3.954 4.075 4.947 5.735 5.250 4.942 4.782 4.618 5.722 5.198 - 10.483 11.214 10.349 8.748 8.569 7.269 8.086 7.595 6.403 6.064 6.204 7.751 7.162 7.696 6.665 4.615 4.382 4.186 4.110 5.810 4.767 5.448 5.603 5.618 5.705 6.384 5.192 5.504 4.601 5.330 5.253 5.550 4.366 4.457 4.310 4.999 - 9.750 10.544 9.451 6.598 7.071 6.087 6.599 6.203 5.275 6.369 5.786 5.602 3.881 5.695 5.369 5.161 3.827 3.515 4.124 5.245 5.424 5.166 4.933 5.333 4.481 5.603 5.135 4.699 3.940 4.569 4.643 4.988 4.831 4.869 5.237 4.839 - 9.125 9.945 8.110 6.936 6.170 5.882 6.203 5.659 5.205 5.939 6.015 4.273 4.193 5.602 5.258 4.106 4.739 5.066 4.821 4.697 4.142 3.905 3.294 3.881 4.458 5.005 4.080 3.466 3.399 4.504 4.331 4.625 4.901 4.869 4.387 4.835 - 9.209 9.594 8.778 6.738 4.262 4.804 4.763 2.892 3.776 4.604 4.085 4.173 4.575 5.294 4.989 5.374 5.327 4.444 3.919 4.231 4.977 3.864 4.888 5.112 3.969 3.711 2.765 3.287 3.155 4.096 3.967 4.006 4.159 4.267 4.288 3.527 - 13.795 14.092 14.168 13.857 13.287 12.846 12.408 11.129 9.506 9.966 9.044 10.061 8.973 9.603 10.350 9.989 9.285 8.782 9.408 10.463 9.890 8.603 8.917 9.850 9.141 8.042 9.316 10.079 9.885 11.131 11.096 9.697 9.911 9.931 10.381 9.930 - 17.761 16.727 17.184 17.268 17.083 16.212 15.251 13.431 13.578 13.846 12.836 12.540 11.944 11.341 11.767 10.852 10.364 10.398 11.059 11.407 10.911 9.600 9.804 10.521 9.436 8.881 10.111 10.891 11.378 12.579 11.792 10.734 10.449 10.672 11.211 10.950 - 17.472 15.759 16.004 14.440 15.107 14.215 13.529 12.846 12.787 11.978 10.493 10.045 9.647 10.545 10.827 9.722 10.000 9.579 9.027 9.013 9.499 8.390 7.709 8.286 8.963 8.938 8.761 9.756 10.768 11.600 11.135 10.073 9.487 9.815 9.948 9.805 - 13.422 13.566 13.639 12.941 11.147 10.827 11.770 11.581 11.020 10.224 8.229 8.322 8.636 8.031 8.247 7.770 8.338 8.319 7.733 5.814 8.155 8.276 7.756 7.685 8.551 8.350 7.728 8.508 9.454 8.972 11.150 10.025 9.351 9.006 8.519 9.384 - 10.416 9.856 11.494 13.170 13.776 13.088 12.352 12.568 11.965 12.634 11.401 10.035 9.178 7.287 7.741 7.839 6.825 6.612 6.192 5.080 6.037 6.310 5.357 5.825 6.404 7.910 8.807 7.334 7.441 8.156 10.526 11.013 11.314 10.117 9.227 8.998 - 10.426 11.384 12.353 13.888 13.744 13.077 13.587 12.856 12.878 13.720 11.389 10.609 9.027 8.408 7.914 7.589 8.045 7.697 6.655 6.484 6.910 6.073 5.768 6.967 7.684 10.263 11.078 8.939 9.175 10.525 11.644 12.732 12.752 10.404 9.589 9.661 - 9.327 11.270 12.542 13.759 14.443 11.627 12.607 13.485 13.434 13.792 13.497 11.503 10.414 10.413 9.253 6.648 6.108 6.478 6.465 6.787 6.613 6.346 7.650 7.427 8.367 10.084 11.548 10.150 10.615 11.900 12.251 11.894 11.602 10.214 11.113 11.600 - 10.414 10.916 12.841 13.656 14.957 13.511 12.126 12.205 13.192 13.233 13.506 13.563 12.846 10.446 9.362 9.708 10.457 10.396 8.943 8.946 9.341 8.882 9.619 9.017 9.925 13.167 13.168 13.636 12.741 12.095 11.782 10.461 10.295 10.870 11.138 10.041 - 12.792 12.350 13.325 13.972 15.550 14.105 12.300 12.044 12.576 12.074 11.435 13.217 12.865 12.556 13.197 13.404 12.783 11.151 11.028 10.553 9.879 8.299 8.971 10.855 12.782 14.508 13.265 12.580 12.607 11.200 9.528 9.724 9.921 9.644 9.900 10.382 - 13.407 13.471 13.903 14.321 15.976 14.976 12.789 12.332 12.601 12.256 9.884 11.531 10.786 12.013 12.786 13.764 13.364 13.461 13.346 13.965 13.045 11.818 12.091 12.541 14.600 15.501 12.894 11.658 12.982 12.256 9.907 9.209 9.003 8.886 8.582 8.587 - 13.360 13.409 13.969 14.793 16.262 14.830 12.391 12.734 12.059 11.715 9.600 10.666 9.600 10.627 10.541 11.040 11.554 12.581 13.567 14.735 14.110 14.160 14.458 13.835 15.296 15.868 13.578 11.687 11.997 13.246 12.834 11.175 10.480 9.888 9.010 8.597 - 13.240 13.112 13.931 14.812 15.596 13.530 12.000 11.760 11.134 10.681 9.209 9.949 8.741 9.443 9.435 9.916 10.321 10.759 11.025 12.154 13.048 14.569 15.382 14.341 14.507 15.427 13.838 11.247 9.320 10.276 13.004 13.098 12.504 12.246 10.261 8.345 - 13.247 13.251 13.859 14.085 14.382 12.568 11.573 10.654 10.482 9.695 8.593 8.825 8.416 8.802 9.424 9.696 10.233 10.642 10.702 11.057 11.345 12.154 14.372 14.516 12.845 12.909 12.831 12.484 11.459 11.217 13.619 14.090 13.241 13.726 12.020 8.723 - 13.175 13.220 13.823 13.475 13.363 12.440 11.365 9.856 10.254 8.688 8.856 8.482 8.230 8.549 8.916 8.925 9.438 9.202 9.939 10.437 10.787 11.943 14.759 15.235 12.873 12.285 13.416 13.746 12.436 11.686 12.035 12.255 11.533 11.466 10.068 7.054 - 13.112 13.225 13.779 13.287 13.003 12.362 11.110 9.719 9.690 7.656 7.952 8.842 8.759 9.056 8.759 8.282 8.846 9.279 9.422 9.772 10.195 11.522 14.433 15.237 12.663 12.029 12.099 11.836 11.398 11.154 12.047 12.656 12.031 12.281 10.547 8.337 - 13.077 13.102 13.552 12.597 12.750 12.407 10.978 10.080 9.723 8.384 9.039 8.656 7.970 8.708 8.359 7.827 9.186 9.899 10.157 10.822 11.032 12.064 15.301 15.852 13.043 12.147 12.261 12.570 12.171 11.562 13.626 14.328 13.619 13.616 11.045 8.768 - 12.742 12.385 12.880 12.044 12.498 11.844 10.114 9.386 9.805 8.507 7.961 7.422 7.484 8.819 8.862 9.043 9.305 9.875 9.883 11.779 12.943 13.979 15.510 15.986 14.096 12.334 10.817 10.375 10.208 11.003 13.269 12.900 11.700 12.386 9.885 6.050 - 11.588 11.228 11.469 11.871 10.332 8.825 7.754 7.486 7.465 8.407 8.688 8.259 6.147 7.408 6.850 6.835 7.461 7.401 8.027 10.262 11.564 11.920 12.202 12.440 10.765 8.294 7.425 7.004 7.230 8.386 10.800 10.053 9.551 10.001 6.750 3.696 - 10.957 10.901 10.434 9.199 7.995 5.723 6.671 6.551 7.048 5.029 7.078 7.893 6.518 5.997 5.679 3.650 4.474 4.916 4.241 5.111 5.120 4.941 7.349 7.999 5.895 4.634 5.466 4.287 4.592 4.977 5.360 5.469 4.946 5.351 3.516 2.970 - 10.211 9.996 8.634 8.539 8.302 5.736 6.583 7.469 7.111 5.952 6.027 5.935 4.904 4.915 5.665 4.766 3.634 4.035 4.592 4.558 5.637 6.166 8.353 8.912 6.949 5.485 4.954 4.197 3.820 4.570 4.572 4.123 4.356 4.269 3.678 3.083 - 9.271 9.087 8.898 7.191 7.079 5.732 6.294 5.719 4.895 4.339 4.548 3.966 4.184 5.987 5.654 2.929 3.733 5.237 4.623 4.708 5.100 5.452 7.283 7.786 5.331 5.541 3.688 3.708 2.745 3.266 5.176 5.339 4.410 4.161 3.623 2.539 - 6.641 5.995 6.836 7.469 6.755 5.134 5.745 4.379 5.182 3.654 3.764 3.652 4.038 6.325 5.730 3.035 4.165 4.192 5.332 5.164 4.914 4.925 5.984 6.911 5.378 4.850 4.562 3.266 3.081 3.495 4.696 4.903 3.835 3.889 3.345 2.608 - 5.478 4.932 5.808 4.696 4.614 4.665 4.386 4.770 4.645 2.574 2.359 3.903 4.105 5.919 5.898 4.187 3.587 3.537 4.205 4.658 4.501 4.770 5.389 5.350 4.495 5.131 2.677 2.355 2.961 2.366 3.335 3.263 4.096 3.072 2.491 1.770 - 8.013 7.280 7.390 6.627 6.700 6.165 6.046 6.039 4.946 5.884 6.112 6.041 5.884 7.100 6.983 5.918 6.691 7.108 7.396 7.286 7.864 7.865 7.712 7.566 7.499 7.879 8.150 8.406 8.182 7.850 8.235 8.315 8.106 7.827 8.306 7.584 - 15.852 16.372 16.405 15.617 15.086 14.745 15.017 15.638 15.483 15.157 14.337 13.031 11.556 12.054 12.687 12.190 11.668 12.922 13.089 12.647 12.367 11.954 11.987 10.897 10.919 12.130 11.966 12.029 11.744 10.666 11.517 12.017 11.332 10.976 11.798 10.937 - 17.781 18.061 17.962 15.816 16.698 16.424 15.195 16.280 15.703 15.173 14.149 13.597 12.729 11.752 12.787 12.350 12.573 13.098 13.333 12.963 13.108 11.964 12.060 11.066 10.871 13.226 12.448 12.424 11.598 10.630 10.910 12.530 10.667 10.133 10.900 10.975 - 18.431 16.470 16.043 15.662 14.320 14.121 13.513 13.191 13.470 12.996 12.397 10.734 11.235 9.906 9.101 9.550 9.577 9.300 10.507 11.107 10.127 9.841 10.686 10.112 8.844 11.968 11.564 11.403 10.861 10.778 9.998 12.082 11.492 10.699 10.817 10.174 - 16.746 14.927 13.618 11.760 11.089 10.550 10.398 10.134 9.602 9.318 8.732 9.535 7.841 8.362 8.748 7.883 7.766 8.243 8.698 10.290 9.506 9.362 10.447 9.374 8.870 11.154 11.656 10.314 10.196 10.440 10.097 10.467 10.775 10.533 10.847 10.365 - 12.151 10.974 11.103 9.528 8.114 8.232 8.352 7.877 7.732 7.856 8.350 8.103 7.983 7.633 7.335 6.969 6.987 7.769 8.036 8.047 7.994 8.936 8.984 8.389 8.616 9.016 10.451 10.622 9.659 9.991 10.791 10.606 10.026 10.356 10.359 9.234 - 10.671 9.020 8.661 7.703 9.272 8.396 7.330 6.942 7.283 6.910 6.906 5.999 5.252 6.824 5.289 5.735 8.262 9.505 8.635 8.617 8.609 9.054 8.882 8.481 8.709 9.954 10.067 9.528 9.257 9.860 10.093 10.425 10.286 10.720 11.076 10.668 - 11.280 11.004 9.572 9.124 9.625 9.429 8.425 7.329 8.271 8.718 8.181 8.880 7.396 7.957 7.517 6.732 8.487 9.427 9.688 9.575 9.552 9.701 9.075 9.580 9.176 10.869 10.056 9.960 9.812 10.398 10.138 11.214 9.748 10.343 10.953 10.031 - 12.748 12.239 11.609 10.792 10.758 10.776 9.713 9.168 9.956 10.567 10.110 10.246 10.049 9.600 7.983 7.874 9.263 11.085 11.247 11.051 11.011 11.043 9.450 10.075 9.757 11.518 11.821 11.020 10.888 11.358 10.234 10.640 10.713 11.626 11.626 11.218 - 9.707 10.826 10.656 9.747 9.310 9.974 9.671 9.718 9.099 9.126 8.401 8.680 7.057 7.370 8.276 8.529 8.413 9.718 9.050 10.529 9.915 8.794 8.296 8.670 9.759 11.721 11.231 9.260 9.703 9.780 10.616 11.325 11.093 11.229 10.977 10.129 - 8.999 10.543 11.164 10.207 11.803 11.974 12.542 11.838 12.201 10.967 10.017 8.034 8.601 9.109 9.097 9.480 10.100 10.321 11.189 11.780 10.934 10.633 10.995 11.197 12.019 13.239 12.178 10.101 9.286 10.051 11.243 11.840 9.666 9.831 9.439 8.077 - 11.788 12.696 11.670 11.550 12.532 14.117 13.949 15.192 14.739 13.761 13.251 12.263 10.548 11.530 11.308 11.824 12.285 13.220 14.205 14.715 13.680 12.183 11.257 11.133 11.813 13.643 13.065 10.875 10.385 10.557 13.246 13.963 12.234 10.274 9.358 6.809 - 12.855 12.188 12.889 11.224 12.289 13.805 15.252 16.428 16.350 14.018 13.159 11.994 10.787 11.450 11.336 11.571 12.047 13.078 14.522 15.558 14.206 12.108 11.024 10.648 9.963 11.857 13.455 12.680 11.568 11.583 13.997 14.627 12.521 10.523 9.305 6.363 - 13.101 12.660 13.331 11.512 11.867 13.500 14.653 15.480 15.907 13.635 12.406 11.875 10.906 11.113 11.025 11.021 11.056 11.429 12.225 13.737 14.100 12.730 11.332 11.209 11.069 12.663 15.263 14.085 12.500 12.770 14.145 13.792 11.608 10.171 9.189 5.612 - 13.166 13.097 13.574 12.038 12.071 13.605 14.846 15.523 15.651 13.899 12.668 12.495 11.321 11.486 11.583 11.486 11.612 11.762 12.193 13.338 14.368 14.392 11.985 10.857 10.461 11.083 13.999 13.355 12.309 13.434 15.241 14.979 13.692 11.800 9.960 5.951 - 13.229 13.411 13.777 12.152 12.044 13.559 14.584 14.929 15.361 13.799 11.595 12.202 11.293 10.872 11.238 11.319 11.479 11.460 11.441 12.070 13.552 15.410 14.161 12.689 12.157 12.376 13.927 13.710 12.775 14.202 15.714 14.757 13.589 11.984 10.784 7.443 - 13.202 13.345 13.665 11.704 11.979 13.337 14.342 14.276 14.688 13.398 11.060 12.009 11.059 10.176 10.451 10.830 10.933 10.844 10.243 9.836 11.832 13.871 14.021 13.097 12.220 13.282 14.106 14.168 13.659 14.313 15.108 13.918 13.357 12.232 11.283 8.751 - 13.046 12.788 13.180 10.657 11.759 12.548 13.616 13.737 13.502 12.453 10.418 11.994 10.306 9.306 9.733 9.954 9.828 10.944 9.630 9.088 9.502 11.468 13.412 13.691 12.892 13.771 13.945 13.092 12.924 13.297 13.971 12.496 12.567 11.771 11.427 9.184 - 13.007 12.511 12.874 10.712 11.717 12.124 12.901 12.663 12.127 11.605 10.987 11.898 9.812 8.667 9.229 9.817 9.770 10.945 10.026 10.604 10.099 10.334 11.814 11.603 11.295 10.921 10.697 10.707 11.712 12.256 12.108 11.356 12.177 12.029 12.437 11.206 - 13.215 12.965 13.162 11.423 11.365 12.348 12.838 12.478 11.865 11.080 10.988 11.675 10.426 8.106 8.955 9.647 10.000 11.150 10.375 10.733 10.526 10.678 11.617 11.434 10.352 8.066 7.795 8.055 10.169 11.092 10.639 10.533 12.078 11.817 12.223 10.757 - 13.153 13.104 13.136 11.685 11.534 12.567 12.919 12.530 12.019 11.307 11.362 11.795 10.368 8.418 9.346 9.738 10.211 10.892 10.326 10.460 10.620 10.666 11.632 12.197 9.689 7.704 6.242 7.299 9.331 10.425 10.891 11.072 12.381 11.987 11.127 9.744 - 13.140 13.046 12.968 11.646 11.797 12.369 12.684 12.008 10.775 10.954 11.745 11.736 9.872 8.214 9.209 9.564 10.114 10.281 10.150 10.033 10.752 10.818 11.114 11.677 10.163 8.162 5.566 5.973 8.738 10.095 10.614 11.089 12.359 11.945 11.429 9.626 - 12.853 12.336 12.253 11.405 11.586 11.707 12.166 11.485 10.368 11.572 11.633 10.693 9.639 7.854 8.233 7.696 8.559 8.489 8.619 8.675 8.904 9.878 12.238 12.042 10.753 8.529 5.990 6.288 7.882 9.002 9.533 9.549 10.634 10.925 11.269 10.121 - 12.562 11.422 11.620 11.691 10.721 12.052 11.694 10.171 10.419 10.675 9.661 10.417 8.763 6.217 6.604 6.416 7.849 8.616 8.664 8.933 9.692 10.527 11.949 11.912 10.075 8.194 6.731 6.164 7.176 8.611 9.078 8.897 9.860 10.059 11.390 10.167 - 12.537 12.048 10.268 11.344 10.724 10.843 11.963 11.135 10.806 10.475 10.181 9.140 6.839 7.170 7.363 7.697 9.553 9.580 10.468 10.463 10.411 10.748 12.162 12.135 10.867 8.639 7.831 7.304 8.052 9.239 9.969 8.372 8.267 8.087 9.007 8.068 - 11.159 10.944 11.874 11.104 11.189 12.363 12.070 10.940 9.994 10.499 10.051 7.965 7.676 9.045 10.038 10.803 11.590 12.063 12.994 12.352 10.455 10.009 11.652 11.779 11.507 8.652 8.424 7.905 8.435 8.635 10.381 8.714 8.820 9.645 9.564 9.148 - 9.631 10.967 11.483 9.975 11.027 11.144 12.100 10.793 11.383 10.569 10.181 8.323 8.526 8.853 8.562 9.468 10.894 12.062 13.424 12.482 10.348 10.525 9.965 10.904 11.513 9.386 8.937 9.278 9.855 9.314 9.758 10.234 10.390 11.325 11.608 11.314 - 7.815 10.111 9.811 9.005 9.005 9.315 9.898 9.586 9.473 9.021 8.891 8.003 7.726 7.830 7.482 6.831 7.838 10.322 11.371 10.346 10.018 9.794 9.152 10.710 10.852 9.517 9.459 10.081 10.408 10.497 11.039 11.149 11.237 11.814 12.725 13.167 - 8.528 7.657 7.829 8.763 8.297 8.544 8.728 8.611 6.792 6.410 6.281 7.822 7.641 6.774 7.392 7.304 8.787 9.998 9.932 9.622 9.194 9.728 9.515 9.687 9.708 10.817 10.639 10.295 10.292 11.391 12.000 11.812 11.375 12.798 13.144 12.793 - 7.857 7.022 7.676 8.192 7.762 8.298 7.203 8.632 8.525 7.549 8.550 8.526 8.820 8.336 9.408 8.598 9.100 10.218 10.187 9.571 10.250 9.880 9.742 8.723 9.126 10.023 10.373 10.454 8.803 11.513 11.715 12.384 12.483 13.243 13.536 13.489 - 5.141 7.924 8.299 6.757 6.117 7.627 7.654 7.556 8.625 7.583 8.028 8.321 8.210 7.707 8.732 9.796 9.526 9.319 9.895 9.865 9.773 10.331 9.607 10.166 9.278 11.104 10.196 10.920 10.534 11.233 12.958 13.055 12.826 13.964 14.157 13.788 - 7.830 7.275 5.836 7.225 7.520 6.817 7.335 8.547 8.746 8.471 8.246 8.932 8.951 9.091 9.341 9.531 10.085 10.614 11.360 10.528 9.657 11.270 10.981 10.522 10.209 11.575 10.279 11.263 11.317 11.837 12.449 12.903 13.335 14.420 14.873 14.397 - 9.646 9.516 9.348 9.730 8.760 9.421 9.318 8.838 9.358 9.540 8.106 6.623 8.731 9.343 8.959 9.545 10.020 11.121 12.565 11.975 10.938 10.235 10.767 11.371 10.304 12.601 11.692 11.549 11.917 12.397 12.749 13.046 13.625 13.965 13.791 14.801 - 9.894 11.168 11.467 11.741 12.242 12.953 12.835 12.309 11.510 11.533 9.836 9.267 9.069 9.701 10.519 11.143 11.238 10.901 12.223 11.437 10.899 10.921 11.941 12.512 11.503 12.929 11.839 11.091 11.684 11.141 11.653 13.976 14.500 13.384 13.464 13.910 - 12.086 12.087 11.705 13.035 13.812 14.719 15.763 15.495 13.932 13.647 12.121 12.313 11.653 11.691 10.727 10.672 11.932 12.727 12.867 12.127 11.300 10.992 10.685 11.216 13.003 14.067 12.743 11.278 10.156 9.717 10.583 10.725 11.712 12.359 11.447 10.437 - 12.903 12.679 12.218 12.309 13.402 15.224 15.967 16.508 15.619 13.616 14.032 13.511 11.741 13.029 12.333 12.830 13.249 14.455 14.617 13.197 12.575 11.837 11.116 11.555 12.866 14.290 12.534 10.854 8.857 9.273 10.580 9.775 9.986 11.936 10.341 8.543 - 12.950 12.337 12.509 12.113 13.040 14.388 15.136 16.057 16.607 15.221 13.940 14.298 13.455 12.938 13.324 12.854 14.148 15.262 16.054 14.562 14.431 13.104 13.035 12.761 13.419 14.038 12.957 11.949 11.898 11.628 12.089 12.001 10.731 11.898 10.940 9.675 - 12.701 12.028 12.447 11.930 12.993 14.136 14.584 16.736 17.219 14.954 14.666 14.381 12.975 12.958 12.925 12.669 13.391 14.672 17.193 16.510 15.420 13.952 13.731 13.242 14.043 14.350 13.684 12.411 11.988 11.990 13.164 13.585 11.737 12.613 11.273 9.985 - 12.477 11.683 12.145 11.834 12.732 13.890 13.819 16.528 17.095 15.937 14.563 13.712 12.567 12.651 11.958 12.086 12.490 13.348 16.053 15.522 14.538 13.207 12.955 12.635 13.447 13.903 13.545 12.127 10.945 11.608 13.871 14.779 12.780 13.075 10.305 8.842 - 12.259 12.000 12.129 12.287 13.160 14.060 14.020 16.657 17.411 17.200 15.193 13.737 13.429 13.621 13.375 13.410 14.034 15.163 16.961 16.382 14.175 12.858 11.347 12.166 12.412 13.200 13.704 13.000 12.302 12.740 13.883 14.720 12.421 11.943 10.100 9.289 - 12.286 11.940 11.810 12.310 13.195 13.838 14.039 16.484 17.124 17.455 15.246 14.453 13.987 13.885 13.598 13.630 14.301 15.146 16.886 16.276 15.169 13.876 12.839 12.712 12.699 11.894 12.239 12.387 12.170 12.619 13.772 14.460 12.055 11.039 10.440 10.156 - 12.290 11.822 11.439 12.062 13.017 13.372 13.656 16.094 16.932 17.107 16.007 14.956 13.030 14.175 13.355 14.085 13.858 15.781 16.518 16.676 15.073 14.379 13.845 14.784 14.765 14.156 13.553 12.975 12.380 13.002 14.291 14.711 12.711 12.174 10.866 10.310 - 12.132 11.319 11.254 12.173 12.883 13.196 13.886 15.968 17.035 17.346 15.552 14.190 13.511 13.751 13.678 14.144 14.545 15.445 16.254 15.781 13.674 12.728 12.829 13.303 13.514 12.497 11.786 11.670 11.777 12.620 13.987 14.727 12.652 11.910 9.052 8.096 - 12.035 11.225 11.460 12.197 12.616 13.267 13.699 15.825 17.298 17.579 16.396 14.552 13.320 13.794 13.862 14.136 14.616 15.450 17.027 16.423 15.180 14.356 14.023 14.615 15.152 14.169 12.935 12.260 12.208 12.637 13.881 14.701 12.493 11.949 10.344 9.906 - 11.997 11.334 11.413 12.436 12.450 13.393 13.864 15.547 17.214 17.485 16.494 14.352 13.285 13.826 14.003 14.176 14.713 15.111 15.819 15.602 14.658 13.892 13.785 14.273 14.925 13.545 12.246 11.641 12.137 12.878 14.010 14.538 12.193 11.340 9.636 9.011 - 12.273 11.734 11.746 12.574 12.988 13.525 14.322 15.511 17.235 17.567 16.718 14.677 13.858 14.306 14.571 14.646 15.121 15.966 16.270 15.693 14.525 14.377 14.559 15.204 14.977 13.560 11.969 11.506 12.345 13.626 14.620 15.118 12.859 12.271 10.118 8.889 - 12.105 11.531 11.415 12.222 12.860 13.378 14.241 15.164 16.945 17.138 16.982 14.296 13.767 14.248 14.517 14.544 14.927 15.762 16.101 16.216 14.373 13.744 13.898 14.798 14.497 13.259 12.661 11.850 12.275 14.116 15.423 15.063 12.424 10.737 9.567 9.371 - 11.988 11.515 11.046 12.189 12.762 13.061 13.874 15.036 16.764 17.163 17.096 14.219 14.517 13.903 14.493 14.306 15.393 15.372 16.688 15.783 14.212 13.659 13.389 13.827 14.204 11.987 11.794 11.007 11.076 12.923 14.485 14.272 11.870 10.705 9.097 8.387 - 11.872 10.881 11.177 12.060 12.415 12.909 13.527 14.759 16.827 17.670 17.108 14.377 14.594 13.812 14.236 14.546 15.486 16.223 15.535 14.069 13.354 13.279 13.584 14.452 13.292 11.716 10.884 10.354 10.962 12.424 14.327 13.945 11.764 11.753 10.258 9.440 - 11.761 11.162 11.611 12.112 12.593 13.052 13.710 14.934 16.978 17.894 16.941 14.572 14.598 14.257 14.726 15.006 16.530 17.672 16.354 14.390 13.646 13.552 13.981 15.101 13.628 11.372 10.412 10.730 11.237 12.706 14.555 14.031 11.605 11.576 9.447 8.316 - 11.772 11.632 11.877 12.089 12.918 13.180 13.924 15.118 16.827 17.692 16.530 14.654 15.175 14.896 15.437 15.915 17.896 17.895 16.058 13.978 12.947 12.983 13.821 14.773 13.161 11.143 10.501 10.728 11.245 12.594 13.601 14.104 12.078 10.925 9.038 7.996 - 11.689 11.630 11.493 12.155 13.012 13.139 14.009 15.608 16.818 17.819 16.671 14.446 15.395 14.813 15.617 16.628 17.877 16.358 15.781 14.228 13.811 13.812 14.291 14.488 13.871 12.195 11.583 11.203 10.752 11.063 12.286 12.487 10.707 9.841 9.245 8.485 - 11.324 11.357 11.153 12.038 12.733 12.778 13.953 15.356 16.808 17.810 15.706 14.774 15.108 14.432 15.341 16.410 17.338 15.154 14.069 12.655 12.132 12.266 12.963 13.170 12.290 10.691 10.298 10.025 10.181 11.708 13.220 12.668 10.983 10.213 9.031 8.771 - 11.262 10.980 11.189 11.888 12.444 12.809 13.928 15.487 17.174 17.687 14.986 14.601 14.678 14.456 15.477 17.148 16.449 14.293 13.282 11.931 11.453 11.571 12.144 12.596 12.200 10.398 9.827 9.585 10.058 11.847 13.761 12.955 11.184 11.111 9.206 8.129 - 11.358 11.549 11.903 12.333 12.814 13.380 14.554 16.441 17.493 17.355 14.691 14.496 14.712 14.978 16.552 17.107 15.104 13.768 13.016 11.932 11.711 11.669 12.406 13.099 12.507 10.799 10.210 10.250 10.697 12.592 14.055 12.922 11.526 10.810 9.817 7.600 - 11.756 11.688 11.890 12.504 12.898 13.550 14.919 16.474 16.927 16.673 14.641 14.323 14.604 15.339 16.479 16.449 14.633 13.603 12.698 12.137 11.672 11.434 11.814 11.445 10.369 9.199 8.923 9.415 10.308 12.185 13.393 12.121 10.748 11.026 9.385 8.165 - 11.480 11.278 11.396 12.409 12.661 13.034 15.075 15.900 16.826 15.311 13.866 14.173 14.039 15.040 16.165 15.697 13.622 11.867 11.331 10.829 10.731 10.822 11.438 11.318 9.943 9.063 9.634 9.495 9.745 11.019 12.615 11.141 10.434 11.357 10.015 8.379 - 11.238 10.738 11.130 12.194 12.933 12.887 15.099 16.536 16.382 14.888 13.493 13.099 13.554 14.803 16.333 15.592 12.712 11.688 11.118 10.744 10.412 10.972 11.883 12.407 10.277 8.876 10.267 9.720 9.736 11.269 12.379 10.929 9.953 11.278 9.637 7.745 - 11.119 11.153 11.742 12.222 13.038 13.643 15.771 16.272 15.662 14.605 13.644 12.968 13.346 14.749 16.209 15.518 12.908 12.016 11.667 10.934 10.919 11.394 12.798 13.219 11.435 9.743 11.294 10.397 10.307 12.036 13.223 11.289 9.630 11.036 9.632 6.850 - 10.208 10.408 11.189 12.499 13.493 14.513 15.981 15.828 15.540 14.137 13.399 12.978 13.198 14.043 15.532 15.295 13.765 12.401 11.933 10.880 10.807 11.506 11.999 10.771 10.872 11.856 10.560 9.782 9.348 10.478 11.974 10.731 8.961 11.085 11.722 9.485 - 9.142 9.067 9.455 9.947 11.745 13.096 14.993 14.444 13.137 12.027 10.318 10.500 10.851 11.729 13.664 14.257 11.708 10.268 9.724 8.664 8.800 8.830 9.446 8.003 8.892 10.515 8.494 7.483 7.772 8.066 10.269 8.766 6.706 9.791 10.336 9.805 - 9.034 9.378 10.061 10.760 12.388 14.178 14.215 12.846 11.909 11.517 10.759 10.453 10.645 11.594 12.705 14.055 12.898 10.717 9.830 8.817 9.058 8.722 6.963 6.686 7.429 9.562 8.506 6.712 7.418 7.367 9.439 9.049 7.494 9.430 10.504 11.038 - 6.352 6.304 5.408 5.505 9.184 10.994 10.749 10.374 11.068 8.461 5.903 5.474 6.037 6.375 8.015 11.309 10.049 7.064 6.281 5.887 5.681 5.726 6.364 6.725 6.089 7.178 6.083 4.610 4.621 5.373 5.459 5.774 6.137 7.311 7.803 7.132 - 6.191 5.178 6.553 6.194 6.639 8.504 8.806 8.969 10.119 8.458 7.010 5.375 4.815 6.325 8.212 8.874 7.494 7.371 7.828 6.166 5.845 6.256 5.761 6.380 6.277 6.081 4.596 4.452 4.636 4.444 5.632 5.098 5.696 5.349 4.625 4.902 - 6.827 5.718 5.799 5.906 5.623 7.990 9.109 9.051 9.905 8.783 7.121 5.596 6.093 6.181 7.299 7.940 6.796 6.536 6.250 5.058 5.207 5.444 5.235 5.721 4.850 5.617 4.517 3.236 3.609 4.258 4.688 4.171 4.460 3.389 3.901 3.350 - 4.791 4.720 3.838 4.770 5.613 6.912 8.161 8.659 9.527 8.074 6.837 5.287 4.444 6.178 6.222 6.251 6.707 6.057 5.604 5.396 4.882 4.840 3.829 4.594 4.686 5.065 3.441 3.903 3.888 4.595 4.649 3.950 3.614 3.775 3.755 3.253 - 4.911 4.846 4.957 4.442 4.105 6.239 7.978 7.979 8.812 8.171 6.876 4.110 3.470 5.494 6.203 5.458 5.765 5.395 5.781 5.366 4.559 2.888 2.993 3.823 3.398 3.720 3.238 2.961 3.665 3.740 4.250 4.155 3.654 4.008 3.052 2.441 - 2.070 4.042 4.643 4.934 5.417 6.458 8.299 7.994 8.494 7.051 5.072 3.512 2.330 4.124 5.359 4.943 4.019 4.596 4.485 4.964 4.077 4.164 3.337 4.366 4.783 3.451 3.682 3.194 2.843 3.787 4.167 3.723 3.580 3.037 2.530 1.798 - 5.700 5.384 3.878 4.635 4.478 4.924 7.050 6.702 8.061 7.287 5.213 5.076 4.575 5.050 5.103 5.722 4.974 5.570 5.691 4.962 4.310 3.771 2.675 3.877 3.563 3.830 3.561 2.379 2.942 3.379 3.560 3.093 3.340 3.323 2.669 1.756 - 5.463 5.567 5.027 5.874 5.774 5.893 7.291 7.843 8.122 6.463 4.677 4.478 3.663 5.626 6.772 6.850 5.059 4.412 5.407 4.058 4.084 3.567 3.256 3.850 3.824 4.070 3.555 3.412 3.050 2.651 3.372 3.420 3.842 3.731 2.539 1.337 - 3.836 5.007 4.653 4.094 3.559 4.291 5.902 5.807 6.823 5.654 4.581 4.093 4.023 6.260 6.594 6.165 5.142 4.771 4.781 3.909 4.364 4.013 3.911 3.650 4.423 4.906 4.535 3.587 2.692 2.731 2.183 2.882 4.222 4.318 3.153 2.017 - 5.721 6.200 6.175 7.036 8.338 8.976 8.963 9.231 9.393 9.179 8.505 8.071 8.063 8.582 9.226 9.020 9.562 9.476 8.325 8.555 9.139 9.173 8.306 7.286 7.814 8.571 8.921 8.387 8.890 9.467 8.841 9.216 9.680 9.198 9.811 9.288 - 7.756 7.447 7.297 8.056 8.845 9.573 9.410 9.454 9.738 9.437 8.556 7.361 7.416 8.825 9.342 8.775 9.940 9.997 8.203 8.896 9.257 9.316 8.312 6.875 7.783 8.646 9.157 8.565 9.156 9.628 8.966 9.619 10.113 9.939 10.248 10.466 - 4.446 5.789 6.217 6.352 5.559 6.501 7.339 6.910 6.432 6.042 6.633 5.571 6.437 6.893 7.329 7.473 8.596 7.960 8.167 6.650 7.603 8.437 8.868 8.256 7.694 8.144 7.968 8.167 9.958 9.863 9.624 10.342 10.147 11.314 11.185 11.824 - 5.567 6.472 5.534 5.389 5.336 6.352 6.113 4.803 6.150 6.991 7.550 7.762 7.658 9.542 8.825 7.973 8.988 10.571 9.817 9.591 10.235 10.103 10.225 9.935 9.407 10.207 10.722 9.301 10.326 10.910 11.556 11.783 12.081 12.409 13.818 13.863 - 7.931 7.190 5.685 5.290 6.080 7.474 7.877 7.694 7.834 8.041 8.248 8.433 8.553 8.892 9.504 8.721 11.203 11.299 10.727 10.320 10.764 11.394 10.768 11.193 10.415 10.898 11.359 10.897 11.323 11.085 12.168 12.796 12.480 12.720 13.910 13.354 - 6.838 6.590 7.914 6.790 8.515 8.819 8.829 7.925 8.518 7.521 7.964 8.094 9.623 9.338 9.280 9.222 10.710 10.923 11.217 10.355 10.944 10.493 10.233 11.302 10.525 10.325 11.680 11.552 11.836 11.381 11.883 12.635 12.802 13.040 13.904 13.796 - 8.222 8.059 8.404 8.179 8.532 7.442 7.359 7.287 8.851 8.899 8.031 8.636 9.914 10.350 8.715 9.035 10.307 11.871 11.032 9.922 10.965 10.689 11.556 10.916 10.667 10.866 11.371 11.550 11.323 10.809 12.058 12.317 13.265 13.446 14.215 14.097 - 8.888 8.459 7.592 8.206 8.619 9.260 8.540 8.517 9.998 10.053 8.489 9.744 9.576 9.814 8.815 9.474 9.527 10.738 11.213 9.859 11.114 11.077 10.665 9.963 8.858 10.517 11.111 10.715 10.690 11.103 12.231 13.492 14.094 13.088 13.874 13.516 - 9.049 8.007 7.244 6.721 7.622 8.464 9.694 9.641 8.258 9.914 9.931 9.025 8.575 8.641 8.938 8.825 11.155 11.473 11.478 10.562 10.288 10.587 10.350 10.799 9.627 11.441 11.927 10.868 10.903 11.757 11.674 13.857 13.793 12.099 13.521 13.868 - 7.370 6.978 8.135 6.590 6.927 8.983 9.633 9.071 8.753 10.330 10.463 8.986 7.925 9.468 9.195 9.220 11.168 11.160 10.474 11.305 10.428 10.248 10.166 10.070 10.855 12.218 12.027 10.788 9.861 10.643 11.848 14.240 14.205 12.513 13.523 13.202 - 8.967 9.155 10.992 11.030 11.572 12.940 12.697 12.272 11.041 10.706 9.335 9.494 7.819 7.791 8.461 9.903 10.612 11.273 10.641 8.850 8.777 9.527 8.773 9.259 10.183 11.864 11.364 9.675 9.340 10.455 10.519 12.706 12.788 11.110 12.222 12.666 - 11.305 11.548 11.058 11.857 13.929 14.694 15.218 13.934 12.547 11.459 10.969 10.252 10.900 10.690 11.188 11.885 12.653 12.299 10.614 9.740 8.584 8.224 7.853 8.577 9.695 12.362 11.995 10.779 10.440 9.789 9.230 10.892 10.884 10.046 10.642 11.843 - 11.681 11.444 11.719 12.421 13.619 15.213 16.125 15.067 13.391 12.212 11.450 11.139 11.527 11.760 12.128 13.023 14.483 13.772 10.423 9.485 8.328 7.405 7.523 8.760 10.449 13.455 13.040 11.783 11.403 9.971 10.631 13.045 12.528 10.915 10.370 9.232 - 11.757 12.057 12.288 12.829 13.686 15.069 16.408 15.834 14.421 13.361 12.160 11.810 11.976 11.497 11.940 12.753 14.694 14.649 11.519 10.447 9.697 9.098 9.168 10.357 12.179 14.152 13.430 11.578 10.776 10.644 12.054 13.654 12.836 12.541 12.280 9.507 - 11.480 11.591 11.847 12.729 13.299 14.499 15.506 16.475 14.139 14.122 12.787 11.531 11.711 11.921 12.080 13.331 14.514 15.118 12.781 11.769 11.105 10.197 10.006 10.803 12.195 14.693 14.037 12.103 10.942 10.738 12.904 13.376 12.020 12.817 12.696 11.046 - 11.142 11.049 11.049 12.214 13.052 13.269 15.825 16.617 14.742 14.439 12.819 11.447 11.955 11.571 12.088 12.619 14.087 14.767 14.047 12.563 11.398 11.072 11.035 11.425 12.884 15.099 14.244 12.333 11.013 11.374 13.227 13.390 11.830 12.732 13.081 11.911 - 11.161 11.086 11.651 12.090 12.928 13.124 15.733 16.633 15.534 14.289 12.680 11.538 11.904 11.629 11.880 12.601 13.753 15.087 13.698 12.172 11.673 10.951 10.929 11.639 13.318 14.793 13.892 12.221 10.870 11.553 13.633 13.484 12.063 12.115 12.186 11.260 - 11.243 11.500 12.039 12.409 13.072 13.138 15.502 16.083 15.898 14.903 13.294 11.938 12.015 11.877 12.325 13.011 14.008 14.937 13.722 11.873 11.609 11.000 11.270 12.158 14.178 14.750 13.736 12.483 11.543 12.649 14.192 13.259 11.571 11.494 11.785 11.373 - 11.196 11.247 11.407 12.282 12.767 12.863 15.191 15.526 15.724 14.934 13.658 12.217 12.754 12.270 13.062 13.920 14.903 15.704 14.643 12.463 12.117 11.840 11.651 12.121 14.366 14.944 14.070 12.667 11.528 12.681 13.568 12.735 11.285 11.127 11.566 11.395 - 10.734 10.812 11.079 11.578 11.881 12.710 14.745 15.785 15.974 14.448 12.844 12.174 11.849 12.270 12.682 13.326 14.633 14.689 13.519 11.149 10.657 9.976 8.726 9.942 12.587 12.933 12.282 11.234 10.568 12.128 12.951 11.865 10.690 9.610 9.640 9.831 - 10.973 10.903 11.508 11.606 12.640 12.886 14.754 16.017 16.412 15.371 13.667 12.505 12.817 12.896 13.330 13.972 15.215 15.729 14.232 12.843 12.180 11.413 11.594 12.466 13.736 14.074 13.450 12.002 11.242 13.165 13.709 12.248 11.058 10.774 11.360 11.245 - 11.356 11.346 11.856 12.368 12.960 13.141 14.842 15.983 16.290 15.690 14.206 12.591 12.932 12.743 13.605 13.957 15.327 15.221 14.028 12.235 11.475 10.877 11.024 12.123 14.017 14.204 12.830 11.174 10.675 13.323 13.384 11.760 10.353 10.869 11.275 11.434 - 11.363 11.441 11.691 12.370 12.728 13.172 14.876 15.512 16.043 15.265 13.978 13.027 12.747 12.926 13.149 14.135 15.500 14.953 13.029 11.813 11.129 11.035 10.225 11.030 12.392 12.176 11.543 11.072 10.392 12.010 12.047 10.787 9.629 9.666 9.684 8.512 - 11.104 11.048 11.207 12.055 12.565 12.733 14.668 15.709 16.224 14.830 13.185 12.965 12.711 12.723 13.110 14.440 15.613 15.420 13.176 11.145 10.230 10.016 9.746 10.552 12.405 11.688 11.584 10.716 9.554 11.470 11.548 10.201 9.199 8.966 9.409 8.797 - 11.232 11.052 11.603 11.993 12.607 13.009 14.810 16.103 16.343 15.244 13.194 12.943 13.081 13.083 13.547 14.676 16.423 15.658 13.696 12.476 11.576 11.227 11.140 11.998 13.331 13.006 12.480 11.577 10.085 11.941 11.709 10.420 9.511 9.141 10.002 10.361 - 11.554 11.349 11.896 12.390 12.757 13.326 14.862 15.860 16.162 15.296 13.667 13.383 13.215 13.372 13.945 14.812 15.399 15.443 13.721 12.783 12.052 11.724 11.419 12.052 13.371 12.921 12.604 12.079 10.813 13.047 12.396 10.761 9.897 9.567 10.158 10.495 - 11.597 11.410 11.603 12.416 12.570 12.937 14.569 15.123 16.097 15.294 13.548 13.743 13.197 13.546 13.708 14.461 14.756 14.918 13.334 12.286 12.093 11.873 11.702 12.736 14.455 13.441 13.042 12.204 10.854 12.044 11.003 10.340 10.088 9.581 9.714 9.898 - 11.657 10.778 10.641 11.814 11.403 12.548 13.605 14.746 15.988 14.420 14.046 14.070 12.661 13.724 13.317 14.605 15.318 14.247 13.211 12.344 12.175 11.945 11.772 12.873 13.970 13.891 13.231 12.461 10.775 11.946 10.224 9.441 9.097 8.647 9.932 10.530 - 11.622 10.187 11.134 11.847 10.648 12.301 13.075 13.920 15.880 15.320 13.776 13.317 13.190 13.091 13.602 15.092 14.757 14.003 13.232 12.717 12.341 12.352 12.337 12.938 13.802 14.462 14.118 13.275 11.380 11.819 10.407 9.690 9.447 10.083 10.777 11.481 - 11.627 11.697 11.018 10.315 11.147 11.171 12.899 14.477 14.784 13.913 13.726 11.413 12.060 12.075 13.417 14.136 14.000 13.492 13.346 12.642 12.174 12.015 11.766 11.836 12.270 13.305 13.480 12.949 11.210 11.026 10.011 9.503 10.036 10.104 10.728 11.237 - 10.254 11.513 12.222 10.491 10.592 11.787 12.534 13.106 13.501 13.842 12.498 11.077 11.891 12.150 14.007 14.782 13.193 12.806 12.824 11.198 11.601 11.879 10.809 10.703 10.466 13.003 13.631 12.814 10.603 9.887 8.631 8.174 8.524 10.005 10.483 11.117 - 9.032 11.939 11.480 10.351 10.007 11.047 11.325 11.380 12.540 13.501 12.320 9.967 11.659 10.986 13.679 14.089 12.889 11.483 11.215 10.286 10.409 9.592 9.914 9.269 8.582 10.344 11.429 11.168 10.116 9.324 6.798 6.935 7.043 10.046 9.919 9.599 - 9.092 11.265 10.898 10.277 7.834 9.339 10.528 10.935 11.230 11.992 10.799 9.824 10.071 10.202 12.437 12.876 10.603 9.689 9.682 9.375 9.049 8.575 8.365 8.476 7.828 8.936 10.518 10.244 9.182 8.602 6.589 5.516 6.236 8.925 9.373 8.814 - 8.864 9.604 9.890 9.239 8.012 7.933 7.819 8.722 9.711 9.434 9.104 8.688 8.679 9.261 9.947 9.888 8.320 8.929 9.576 8.804 7.502 7.467 7.433 6.925 7.862 7.656 9.442 9.506 7.589 7.696 6.387 5.721 6.684 8.179 8.763 7.715 - 8.633 7.519 7.863 6.480 6.110 5.201 4.773 7.169 8.679 9.370 9.775 8.769 8.103 9.295 10.508 9.295 8.217 9.167 9.102 7.595 6.788 6.356 7.423 7.450 6.465 6.806 7.837 8.127 7.877 8.330 7.114 7.188 7.357 8.015 8.404 6.927 - 7.650 6.574 6.445 6.284 5.461 5.027 5.646 7.339 7.957 7.715 8.458 6.693 6.039 6.408 8.190 8.239 7.700 8.068 8.000 6.419 6.302 5.199 5.718 5.603 5.762 6.100 7.204 8.121 7.330 7.375 6.367 7.423 7.752 7.828 8.056 7.208 - 4.522 4.808 3.607 4.423 5.483 5.990 6.933 6.047 6.531 7.333 7.336 6.946 6.208 6.456 7.264 7.336 6.537 6.933 6.377 5.356 5.986 5.783 6.055 6.799 5.260 5.061 4.967 5.867 6.811 6.289 5.825 6.366 8.016 7.184 6.871 6.479 - 4.054 4.989 4.868 5.077 5.462 6.140 6.640 6.411 6.954 6.291 7.085 5.359 5.287 5.086 5.688 4.981 4.921 6.203 6.009 4.391 3.444 5.286 6.203 6.572 5.600 5.601 4.696 6.111 5.669 5.289 5.961 6.508 6.899 6.620 6.134 6.028 - 3.809 4.955 5.219 5.573 4.930 6.474 6.427 6.961 6.094 5.216 4.537 4.643 4.067 5.907 6.309 5.748 5.834 7.286 6.576 5.654 5.246 5.706 6.019 5.933 5.319 5.080 5.730 5.426 5.089 4.499 4.964 5.385 5.527 5.947 5.704 3.596 - 5.391 5.987 5.020 5.043 5.516 6.481 6.304 6.598 6.652 6.218 4.485 3.392 4.100 5.173 5.386 6.486 6.549 7.299 7.190 6.961 6.033 6.067 5.218 6.116 6.260 5.459 4.739 4.985 4.639 5.426 6.850 7.390 7.411 6.570 6.300 6.931 - 4.950 4.526 3.824 4.541 5.135 4.157 4.526 5.765 5.846 5.149 3.846 3.505 4.121 4.256 5.731 6.480 7.569 8.461 8.726 6.844 5.542 5.184 4.682 6.061 5.766 5.974 5.619 5.251 4.563 5.362 6.611 7.068 7.180 6.733 5.984 6.766 - 4.877 4.596 4.577 4.157 3.589 4.090 5.249 5.005 4.303 4.618 4.613 3.952 4.445 4.389 6.127 6.028 6.162 7.887 7.748 7.016 5.683 5.471 4.953 5.547 5.377 4.668 4.132 4.479 4.274 4.996 6.004 6.805 6.966 5.936 5.439 6.156 - 4.478 4.868 3.021 2.568 3.701 5.179 3.935 3.437 4.503 4.900 4.081 3.456 2.797 4.281 5.284 5.146 5.029 4.766 5.052 4.828 4.226 4.608 5.113 5.627 4.329 4.051 3.548 3.339 3.447 4.019 3.798 3.957 3.824 4.058 3.663 3.663 - 5.489 4.792 5.121 4.972 4.485 5.947 6.322 4.846 4.756 6.051 4.895 5.466 5.245 4.441 5.560 6.005 6.726 7.196 7.073 6.859 6.435 5.759 6.118 6.103 5.801 6.137 6.407 6.042 6.037 6.842 7.160 6.624 5.832 6.032 6.079 6.015 - 7.247 8.028 8.472 8.652 8.563 8.701 8.971 8.802 8.847 8.833 8.387 8.616 8.837 8.973 9.399 10.001 10.676 11.394 11.699 11.343 10.405 9.825 9.467 9.237 9.650 10.398 10.600 9.715 10.005 11.128 11.819 10.568 9.807 9.666 10.040 10.336 - 5.345 6.163 6.821 7.934 6.271 6.076 6.341 6.560 6.665 6.104 6.017 5.837 5.992 6.507 6.467 7.406 8.278 9.341 9.737 9.664 8.373 7.547 7.162 6.800 7.289 8.108 8.875 7.402 7.371 8.956 10.118 8.182 7.339 7.476 7.908 8.269 - 4.618 6.629 7.793 8.256 6.886 6.459 5.428 4.677 3.603 6.474 6.269 6.850 6.264 5.513 6.397 7.043 7.413 8.844 10.231 9.244 8.165 7.853 7.188 8.090 8.613 8.387 8.227 7.573 7.381 8.309 8.630 9.519 7.462 7.431 7.975 7.827 - 5.564 6.147 6.432 6.815 6.046 7.004 6.000 6.666 7.042 7.285 6.427 6.629 6.824 7.290 8.114 8.134 8.580 8.008 10.529 10.306 8.812 8.033 7.447 7.733 8.014 8.257 9.980 8.693 7.941 7.765 9.191 9.819 8.370 7.505 7.955 8.483 - 3.972 5.258 6.649 7.120 6.156 6.446 7.492 6.917 6.835 5.864 5.610 7.250 8.235 8.146 7.429 8.767 9.191 8.735 9.540 10.271 10.444 9.043 8.370 9.008 8.703 8.592 9.495 8.573 7.703 8.680 9.795 9.411 8.694 8.615 8.757 8.790 - 4.629 6.849 7.409 7.291 6.168 5.446 6.635 6.348 5.938 7.231 7.206 6.735 7.280 7.068 7.545 9.543 9.987 10.447 11.248 9.651 10.565 9.985 9.214 10.143 9.623 9.798 9.359 8.656 8.203 9.226 10.355 10.036 10.013 9.486 9.487 8.971 - 6.057 6.222 5.943 5.268 5.888 6.500 7.301 6.973 5.863 7.087 7.564 8.102 8.726 8.163 8.874 7.823 9.841 9.130 10.171 11.727 11.701 9.327 9.576 9.378 9.817 10.676 10.254 9.421 9.169 9.311 11.377 11.460 9.805 9.147 9.697 9.008 - 5.097 5.036 5.180 7.015 8.200 8.275 7.504 6.639 6.667 6.664 7.421 8.731 7.847 8.431 8.730 9.220 9.254 9.808 10.668 12.120 12.443 10.776 9.393 9.535 10.081 10.691 10.563 9.451 9.931 9.298 11.062 11.094 9.956 9.779 9.481 8.555 - 4.944 5.620 6.510 6.965 7.305 7.089 8.507 8.166 6.313 6.670 7.764 7.601 8.447 8.025 7.125 9.332 9.337 9.436 10.081 12.021 12.108 10.602 9.419 9.774 10.093 10.585 9.987 10.027 9.554 8.840 10.243 11.748 10.517 10.119 9.576 10.216 - 4.363 5.817 7.470 7.222 6.629 7.975 7.442 6.652 5.430 7.112 7.118 6.991 6.648 7.180 6.638 8.934 9.121 10.290 11.013 11.890 12.464 10.496 10.049 9.794 9.274 11.157 11.725 9.645 9.540 8.812 10.176 10.833 10.035 9.359 10.080 9.303 - 7.105 6.135 7.293 6.391 7.982 8.807 8.424 6.992 7.895 8.406 8.353 8.670 8.143 8.018 9.068 8.287 8.482 9.992 10.457 12.087 12.212 10.622 10.044 9.692 8.971 10.352 11.095 10.306 10.268 9.926 10.650 11.023 10.109 10.522 10.442 10.239 - 7.234 6.066 6.414 7.187 6.802 6.671 7.542 7.844 7.251 6.586 8.398 8.895 8.944 9.001 8.838 8.000 8.981 11.245 11.249 12.343 12.845 10.413 10.254 10.006 9.864 12.160 11.671 10.425 10.097 10.270 12.203 11.395 9.415 9.922 11.341 10.507 - 7.399 7.170 5.395 5.740 7.333 8.073 8.487 7.923 6.651 7.475 8.349 8.685 8.633 8.967 9.141 9.157 9.589 10.477 11.462 12.591 11.667 10.341 10.142 9.849 10.059 11.476 11.593 10.389 9.382 10.484 11.532 11.167 10.513 10.472 11.085 10.544 - 7.125 6.541 6.653 6.814 6.718 8.487 8.884 9.136 7.545 8.517 6.871 6.620 8.051 9.018 9.507 9.423 9.932 10.284 10.446 12.070 11.282 10.768 9.339 10.230 10.693 9.647 10.745 10.397 9.500 9.068 10.788 11.506 11.167 10.384 9.856 9.660 - 6.372 6.700 6.808 6.668 6.239 6.624 8.419 9.250 8.411 8.493 8.272 7.370 8.994 8.761 9.292 8.739 9.674 10.583 9.580 11.526 10.990 10.536 9.961 9.325 10.972 10.554 10.776 9.770 8.900 9.060 10.546 11.818 11.353 9.948 9.035 9.414 - 5.577 6.258 5.770 7.014 8.489 7.979 10.065 10.962 9.452 8.344 8.173 8.629 8.640 7.795 8.930 8.940 10.001 10.714 11.137 11.413 11.051 10.744 9.651 10.385 9.083 10.742 11.849 10.424 9.519 10.440 11.205 11.731 10.847 9.907 9.647 8.847 - 6.291 6.587 7.559 9.182 9.869 8.283 9.781 10.561 8.143 8.979 9.284 7.791 8.465 7.098 7.807 8.772 10.229 10.422 10.992 12.093 11.160 10.321 9.717 9.943 10.609 10.927 10.851 10.926 9.065 9.881 11.213 11.488 10.524 10.677 11.019 9.867 - 4.453 6.859 7.731 8.351 8.294 7.929 9.872 10.675 8.799 9.849 8.894 8.132 7.670 7.999 6.500 8.745 9.989 11.701 11.536 12.350 11.784 10.890 10.303 10.508 11.517 11.659 11.372 10.988 9.738 9.981 10.723 11.190 10.165 10.116 10.365 9.367 - 5.483 4.152 4.671 7.421 8.967 8.373 9.996 9.938 8.569 9.197 8.701 8.969 8.403 7.685 7.287 8.452 9.702 10.954 11.283 12.114 11.412 10.673 9.651 11.099 11.593 10.983 10.850 10.915 10.664 11.298 11.716 11.968 10.345 10.416 11.044 9.411 - 5.891 6.357 5.747 7.593 7.694 8.540 9.168 8.061 9.344 10.300 9.510 9.288 7.863 9.123 8.320 9.058 9.927 9.688 11.579 11.460 11.583 9.891 10.194 10.487 10.090 9.901 11.293 10.138 10.384 11.593 12.316 11.774 11.460 10.433 10.829 10.244 - 7.076 6.839 7.008 7.314 7.054 7.099 9.572 9.936 9.527 10.481 8.659 9.312 8.062 7.823 8.554 8.677 10.763 11.047 11.105 10.051 10.865 9.603 9.133 9.631 9.892 10.217 10.684 10.203 9.784 11.352 12.562 11.372 11.307 10.626 10.942 9.680 - 4.983 6.107 7.948 7.585 7.198 8.441 10.140 9.186 9.207 10.170 7.574 8.392 8.782 8.082 8.303 7.810 10.432 11.228 12.432 12.148 11.770 10.089 9.222 10.588 9.581 10.339 11.727 11.279 10.634 10.556 11.542 11.188 11.229 10.530 11.363 10.633 - 5.702 6.064 7.313 8.716 7.876 7.794 9.872 10.129 9.534 10.483 8.251 8.557 9.199 8.913 9.444 9.625 9.966 10.573 12.045 13.330 11.948 10.261 9.376 9.943 9.785 9.874 11.262 10.841 9.646 10.303 10.957 11.523 11.553 10.552 11.169 10.472 - 8.880 8.830 8.931 8.137 7.250 9.356 10.172 10.486 10.692 11.154 10.073 9.778 9.034 9.860 9.116 9.726 10.358 11.773 12.283 12.384 11.442 10.090 10.577 10.335 10.778 10.905 10.682 10.643 10.374 11.230 13.040 12.598 11.923 11.398 10.979 9.323 - 8.576 8.089 7.691 7.414 8.372 8.585 9.071 9.758 10.255 11.097 10.027 8.972 8.518 9.017 8.445 8.982 10.909 11.707 11.733 12.556 12.426 11.234 11.422 11.380 10.869 9.857 11.726 11.088 10.215 11.348 13.223 12.106 12.246 11.952 10.615 10.116 - 4.126 5.241 7.651 9.138 8.438 9.106 10.855 9.831 9.679 10.299 7.719 8.306 7.588 8.186 8.721 9.115 10.155 10.547 12.306 13.948 13.858 11.762 9.929 9.991 10.749 10.740 10.796 10.084 9.708 11.744 12.519 11.991 12.442 12.780 11.058 10.475 - 6.619 5.753 5.278 7.700 7.345 8.705 10.686 9.126 9.206 9.590 8.151 7.962 7.817 7.655 8.446 8.708 8.892 10.900 11.596 13.465 12.727 9.955 10.292 10.390 10.662 11.265 11.677 10.079 10.783 11.658 12.601 11.884 12.887 12.701 11.729 10.160 - 6.376 6.665 6.032 6.417 7.802 9.513 11.321 9.747 8.683 9.129 7.737 7.495 7.038 7.631 8.696 8.684 9.060 10.740 11.931 12.230 12.367 11.120 10.137 9.980 10.437 10.795 11.547 9.902 9.620 10.310 12.103 11.251 11.380 11.266 10.918 9.514 - 7.187 6.982 7.591 8.276 8.248 10.213 12.127 10.757 8.150 8.329 8.707 8.454 7.776 8.442 9.398 9.572 8.593 9.746 11.450 12.860 12.756 11.368 9.390 9.306 10.125 10.450 10.254 9.578 8.763 9.839 12.400 11.769 11.079 10.034 10.036 8.974 - 6.822 6.602 5.969 6.429 7.264 10.941 12.375 10.489 7.699 6.722 7.367 8.279 8.376 7.982 8.277 9.490 10.608 10.026 11.016 13.160 12.585 11.247 9.558 9.852 9.189 9.173 10.900 10.149 8.865 8.381 10.530 10.810 11.416 10.609 10.099 8.903 - 4.591 6.929 6.734 7.687 6.243 11.264 12.404 9.885 6.604 6.752 7.362 7.461 7.248 7.423 6.436 8.983 9.936 10.430 11.579 12.130 11.890 10.185 9.270 9.748 9.732 9.952 10.589 9.762 9.564 9.021 10.398 11.177 12.073 11.929 10.813 9.962 - 5.804 7.936 7.687 7.404 7.904 11.325 12.444 10.139 7.756 6.336 7.027 7.748 6.217 6.570 6.328 8.783 9.701 9.676 10.482 12.769 12.582 10.531 9.713 10.152 9.319 10.101 9.600 8.930 9.502 9.819 11.088 11.222 11.412 11.680 10.828 9.710 - 6.199 7.477 8.109 7.744 7.637 11.425 12.270 9.701 8.104 8.060 7.770 8.743 8.336 7.434 7.519 8.728 9.278 9.745 11.276 12.156 11.331 10.124 8.906 10.292 10.292 10.213 10.457 8.669 8.154 10.560 12.454 11.402 10.858 11.810 10.578 9.759 - 5.362 7.239 8.335 8.699 7.694 10.958 11.697 9.737 6.905 7.130 7.451 7.648 7.251 8.168 6.602 7.134 8.914 9.894 10.514 12.761 12.004 10.031 8.489 9.395 9.490 8.916 8.967 8.887 8.506 10.224 12.319 11.457 11.412 11.286 10.217 9.939 - 6.119 7.152 7.834 8.396 7.532 10.849 10.379 7.833 7.609 7.109 8.032 7.783 7.918 8.009 8.200 8.590 9.828 10.362 10.863 12.254 10.879 9.856 8.912 9.424 9.324 9.450 8.830 8.294 8.700 9.333 12.119 11.197 10.093 10.815 8.831 8.085 - 9.716 7.949 7.974 6.779 8.106 10.888 10.661 8.609 9.153 7.786 6.894 6.957 8.562 7.892 9.424 10.496 9.611 10.160 10.777 11.787 10.880 9.157 8.079 8.126 9.403 9.838 9.374 8.935 9.112 9.890 10.878 10.572 10.479 10.642 9.522 8.520 - 10.275 9.578 7.721 7.886 9.657 10.733 8.545 8.360 8.158 6.546 7.711 8.050 7.808 7.294 8.297 9.353 10.452 9.521 10.899 10.730 10.124 9.378 8.151 8.064 9.048 9.658 10.062 9.409 9.167 9.486 10.690 9.923 11.393 11.109 9.707 9.229 - 7.776 6.872 6.490 7.685 9.414 10.867 9.783 8.921 6.752 5.404 7.626 7.878 5.856 7.393 7.735 8.912 8.510 10.007 11.192 11.792 10.587 10.005 8.451 7.877 8.062 7.778 8.961 9.159 7.195 10.028 11.419 9.447 10.520 10.715 10.066 9.662 - 7.663 6.258 6.769 7.865 8.700 9.649 9.094 8.098 7.365 5.923 5.729 6.860 6.525 5.298 7.457 7.943 8.984 9.440 9.656 11.073 10.278 8.602 8.748 7.780 8.444 8.672 8.829 7.610 7.710 7.994 9.535 9.849 10.280 11.069 9.677 9.313 - 8.443 7.539 8.071 8.932 8.052 8.894 8.789 8.097 6.419 6.393 7.126 7.770 7.813 6.706 6.901 7.680 8.544 9.634 11.248 12.011 11.323 9.399 8.137 7.851 8.740 8.802 9.194 7.734 7.102 8.940 9.706 9.127 9.780 11.416 9.785 9.410 - 8.268 8.581 8.048 7.326 6.427 8.939 8.843 7.618 7.137 6.912 7.430 7.137 7.716 7.640 7.383 7.562 8.676 9.830 10.862 11.816 11.898 8.293 7.236 8.223 8.304 9.808 9.882 7.868 7.043 8.408 9.464 9.399 9.235 9.646 8.870 7.831 - 9.208 9.687 9.064 7.064 7.050 8.526 7.392 8.230 8.192 6.967 5.702 6.947 6.939 6.951 7.065 7.763 8.823 8.673 9.742 10.599 10.342 8.879 7.552 7.152 8.320 9.358 8.689 8.261 8.375 8.120 9.146 9.096 9.417 8.834 7.871 7.531 - 8.524 7.102 6.203 7.914 7.960 9.150 7.948 6.373 6.121 6.133 5.430 7.371 8.065 6.526 7.417 8.020 8.800 9.551 9.850 10.263 9.404 8.430 7.539 7.797 8.290 8.744 8.104 8.009 8.293 7.832 8.422 8.441 9.068 8.055 7.240 7.655 - 7.922 7.831 7.426 7.463 8.399 9.288 7.703 4.765 5.818 6.596 6.005 6.264 6.653 5.746 6.998 7.254 6.899 7.924 9.769 11.450 10.347 7.867 6.709 7.238 7.511 8.063 7.635 6.908 7.038 6.982 7.224 6.894 7.531 6.716 6.602 7.518 - 7.656 6.982 5.291 4.900 6.435 8.567 7.630 4.625 4.661 4.214 6.192 6.569 6.553 5.213 5.638 6.929 6.987 7.723 9.151 11.042 10.524 7.612 6.719 6.264 5.401 6.592 6.735 5.977 5.952 6.856 7.294 8.019 7.553 7.362 7.421 7.579 - 11.429 11.743 11.913 12.304 12.508 12.631 12.613 12.444 11.953 11.277 10.659 10.086 9.572 9.030 8.837 8.473 8.443 8.621 8.989 10.065 9.281 8.757 9.012 9.137 8.782 8.298 6.835 6.501 5.951 7.052 6.938 6.878 7.316 7.766 7.153 6.779 - 13.666 13.385 13.487 14.406 14.493 14.360 14.633 14.538 13.793 12.709 11.787 11.306 10.938 9.865 9.891 9.674 9.006 9.812 9.862 10.179 9.958 9.754 10.473 10.416 10.051 9.519 7.952 7.874 7.625 6.896 6.716 6.536 7.685 7.997 7.794 7.076 - 9.849 8.650 9.802 11.486 12.117 13.540 13.566 12.949 11.458 10.675 9.797 9.922 8.359 7.621 6.239 4.905 6.581 7.036 7.709 7.250 7.048 6.123 6.615 6.795 6.546 7.560 5.915 5.355 5.226 5.996 5.693 5.129 6.020 6.798 6.660 5.495 - 11.394 10.771 10.426 9.287 10.422 10.950 11.008 11.583 11.472 10.712 9.360 7.924 6.354 6.590 6.174 5.306 4.710 5.869 6.778 7.289 6.233 5.869 6.798 6.743 5.361 5.559 6.916 7.402 6.508 6.228 6.514 6.180 6.695 6.058 5.810 5.875 - 10.942 10.254 10.178 8.776 10.589 11.058 9.974 9.541 8.968 8.559 8.707 7.133 7.449 6.351 5.506 4.961 4.628 4.587 5.110 6.550 6.034 6.799 5.694 6.137 5.104 5.708 6.799 6.649 6.073 6.225 5.822 6.095 6.368 6.373 5.580 5.872 - 9.045 7.577 8.064 7.182 7.948 7.677 8.383 9.362 7.471 6.851 5.330 4.664 5.064 4.700 3.862 4.199 5.530 5.524 5.077 6.049 5.522 5.737 5.143 5.641 5.125 5.186 5.771 6.024 5.702 5.500 5.283 4.766 5.982 6.428 5.866 5.130 - 8.229 7.153 7.771 7.442 7.221 7.094 6.151 6.497 6.868 5.736 5.044 6.113 5.773 5.478 5.150 4.919 5.493 5.108 5.122 5.165 5.418 4.788 5.524 4.878 3.546 3.603 5.247 5.140 4.421 4.528 5.283 5.468 4.271 5.237 4.534 3.574 - 7.884 7.005 6.847 7.552 6.020 5.467 4.408 5.616 6.412 6.559 6.060 4.675 3.390 5.493 5.487 4.814 5.517 5.764 5.510 5.250 5.168 5.981 5.716 4.652 4.115 4.467 5.455 5.424 4.812 4.166 4.451 4.712 4.236 4.950 3.917 2.388 - 8.191 8.286 7.322 7.791 7.505 5.677 6.798 6.705 5.604 5.369 5.643 4.316 4.357 5.806 5.717 5.134 4.656 5.838 5.531 4.629 5.484 6.703 6.049 4.892 4.973 4.461 4.750 4.678 4.141 4.313 5.000 5.275 5.122 5.690 3.871 2.715 - 6.860 6.469 6.397 5.826 6.309 5.580 6.533 4.906 5.776 6.019 6.135 5.015 4.687 6.153 5.955 4.848 3.386 5.264 5.565 6.493 5.779 6.091 5.643 4.449 4.476 5.361 4.864 4.703 5.155 4.341 4.540 5.592 5.406 5.531 4.131 3.512 - 7.222 5.914 4.939 6.194 5.814 6.848 6.706 5.605 5.123 5.304 4.965 5.483 4.246 4.675 5.346 3.890 4.175 5.240 4.889 5.971 6.554 5.671 5.376 5.332 4.864 5.019 4.491 5.103 5.065 4.324 5.147 4.990 5.074 4.959 4.139 3.165 - 5.941 5.804 4.936 5.450 6.209 6.856 6.139 5.573 5.136 5.201 5.830 6.446 5.733 4.471 5.121 5.195 4.803 5.973 5.780 5.562 6.396 5.466 5.558 4.307 4.515 3.927 4.699 5.768 4.784 4.052 4.032 4.050 4.854 4.377 3.948 3.918 - 8.061 7.753 6.569 6.324 8.497 8.028 7.276 8.546 7.471 5.231 6.266 6.706 5.475 4.902 4.552 4.905 5.651 6.643 6.221 5.581 6.414 5.209 4.809 5.501 5.199 3.897 4.410 4.906 4.408 4.247 4.715 4.559 4.306 4.423 4.277 4.427 - 6.383 7.437 6.539 7.901 9.277 8.257 7.447 8.243 7.834 7.728 5.946 4.222 5.225 4.742 4.674 5.331 5.295 5.762 6.204 6.210 5.895 5.405 5.032 5.103 5.969 5.531 4.629 4.662 4.165 4.122 4.577 4.907 4.170 3.993 4.347 3.705 - 7.436 7.770 7.329 7.092 8.055 8.152 7.904 7.612 6.996 7.163 5.174 5.906 6.135 5.702 5.146 5.250 5.714 6.368 6.811 6.469 6.446 5.561 5.305 4.903 5.621 4.403 5.131 5.163 4.018 3.504 5.318 5.514 5.314 4.270 4.234 3.585 - 11.869 11.476 10.550 11.066 11.704 11.772 11.454 11.260 10.540 9.505 8.864 9.212 9.788 9.680 9.125 8.738 9.466 9.845 9.035 7.302 6.638 6.069 6.697 6.261 6.768 5.435 6.221 5.972 6.256 6.686 6.639 7.844 7.689 7.347 6.388 5.439 - 12.017 11.536 10.704 10.507 10.505 10.512 9.571 9.466 9.205 9.063 7.971 6.800 7.542 7.887 7.735 7.843 7.946 7.945 7.212 5.916 5.418 6.207 6.601 6.637 6.994 6.620 5.560 6.450 6.441 5.590 5.233 6.620 6.558 6.324 6.118 4.725 - 5.056 6.424 6.817 7.764 8.783 7.603 7.974 7.763 7.825 7.094 6.011 5.997 4.527 5.942 6.331 5.817 6.401 6.462 5.430 5.667 5.238 6.043 6.324 6.561 6.350 5.980 5.993 6.515 6.971 6.706 5.690 6.098 6.647 6.377 6.279 4.922 - 5.621 6.136 7.189 9.323 8.530 8.667 9.137 8.272 7.491 7.786 7.013 6.911 6.736 6.648 5.538 7.520 7.657 8.033 6.903 6.253 7.700 7.046 7.351 8.204 7.230 7.411 7.386 8.243 8.075 7.621 7.464 7.775 7.732 7.928 7.491 6.626 - 7.725 7.941 8.256 9.677 9.444 8.070 8.737 9.280 8.308 7.426 7.000 7.564 6.841 7.806 6.782 6.171 8.488 8.362 7.912 7.404 7.397 7.412 8.323 8.826 8.113 7.971 7.396 9.588 9.801 8.701 8.063 8.639 8.833 8.245 8.044 7.458 - 7.771 7.686 7.334 7.544 8.371 8.463 9.938 9.387 8.076 7.655 6.820 6.491 6.089 7.285 7.708 8.159 7.187 7.898 7.721 7.407 7.921 6.752 7.860 8.659 7.686 8.032 7.297 7.192 7.143 7.462 7.933 8.440 8.220 7.413 7.647 6.852 - 7.699 6.493 7.230 9.507 10.221 10.368 10.558 9.265 7.783 6.810 6.326 7.038 7.618 6.949 7.434 7.341 7.378 6.458 7.596 7.616 8.264 7.447 6.387 6.843 7.956 7.759 8.453 8.116 7.710 7.241 7.758 7.664 7.490 8.553 8.123 7.518 - 9.292 9.922 10.834 11.274 11.234 11.427 10.883 10.946 8.971 7.684 7.595 7.306 7.760 7.059 7.255 7.780 7.517 7.277 8.232 8.007 8.045 7.508 8.530 8.222 9.036 8.427 8.802 9.547 8.829 9.257 9.219 9.569 8.638 8.933 8.103 8.668 - 8.495 9.557 10.295 10.516 9.005 10.211 9.213 9.459 8.521 7.661 8.282 7.699 7.667 7.990 7.398 8.652 8.581 7.824 8.626 8.096 7.912 7.603 7.309 8.285 8.606 8.981 10.056 10.959 10.414 9.698 9.234 9.467 9.860 9.347 8.654 8.774 - 11.003 10.591 9.731 10.609 11.482 10.081 8.987 9.357 9.161 9.424 8.229 7.300 6.889 7.931 8.259 9.125 9.029 9.913 9.158 8.876 7.235 7.307 8.004 7.760 9.348 9.768 7.973 9.442 9.576 9.237 10.051 8.387 8.833 9.593 9.674 8.513 - 11.265 9.400 9.695 10.792 11.670 11.282 9.106 7.811 8.222 8.952 8.695 7.491 7.910 8.038 9.133 8.357 9.330 9.749 10.352 9.257 7.518 6.927 6.339 6.921 8.423 8.448 7.582 8.144 7.937 8.282 7.757 7.110 7.360 8.174 7.698 7.219 - 9.762 7.931 9.450 10.641 10.331 9.543 7.244 7.747 7.794 7.439 7.281 6.623 7.311 8.393 7.683 7.460 9.227 9.095 8.261 6.903 6.144 5.393 6.446 7.502 7.607 6.184 5.556 6.602 6.027 5.087 5.954 6.632 6.247 6.961 5.568 5.119 - 9.992 10.461 10.653 10.532 8.907 8.139 6.540 5.507 7.745 7.906 7.555 7.284 6.985 7.248 7.341 6.710 7.372 7.598 6.128 6.014 5.168 5.127 6.609 6.663 6.146 3.930 5.427 5.751 5.451 4.673 4.427 5.645 5.623 5.388 5.600 4.693 - 8.203 7.507 6.678 6.611 6.146 4.622 4.266 4.110 4.494 4.898 4.269 4.259 4.622 4.657 5.095 4.954 4.681 6.201 5.251 5.359 5.387 4.474 5.361 5.811 5.400 4.461 5.039 5.350 4.669 4.482 4.556 4.698 5.083 5.328 5.794 4.621 - 5.226 5.867 5.260 5.922 5.899 4.123 2.915 4.170 3.085 3.446 3.750 4.897 3.611 4.096 5.133 4.644 5.057 5.899 4.139 4.813 5.293 4.998 5.602 5.053 4.498 3.712 3.904 5.963 6.634 5.839 4.903 5.333 5.329 3.993 4.430 4.197 - 5.543 5.965 5.404 5.512 5.272 4.645 4.228 4.574 3.891 4.504 4.538 5.809 4.556 4.459 4.428 4.512 5.295 4.890 4.952 5.112 4.970 4.995 5.808 5.307 5.546 4.412 4.177 5.574 5.958 5.603 4.582 4.925 4.965 4.337 4.485 3.972 - 5.120 4.973 4.441 4.937 4.964 4.047 3.545 3.831 3.767 3.694 4.083 4.694 4.144 4.715 3.966 4.357 4.746 4.755 5.822 3.652 4.898 5.464 5.225 4.240 3.906 4.196 2.910 3.915 4.138 4.257 4.424 4.998 4.710 4.635 4.678 3.428 - 7.556 6.849 6.489 6.359 5.461 5.854 5.410 4.861 5.122 4.522 4.642 4.920 4.107 4.884 4.701 3.658 4.134 5.401 5.208 4.253 5.426 5.291 4.188 5.238 5.116 5.009 3.881 4.618 4.396 3.967 3.848 4.045 3.377 3.764 2.753 2.029 - 4.960 5.946 5.964 5.827 4.341 4.411 4.348 4.129 3.683 2.529 4.840 4.915 2.991 4.059 3.838 2.701 3.351 5.379 4.665 3.793 4.183 3.969 4.212 5.061 5.334 4.624 5.078 4.501 4.014 3.505 3.651 3.701 3.782 3.891 2.610 1.550 - 5.629 6.937 6.036 4.175 3.616 4.737 5.130 3.516 2.019 2.100 4.207 5.214 4.408 3.756 3.959 3.610 3.646 4.393 4.467 4.484 3.888 3.992 3.902 3.284 4.506 4.413 4.815 4.270 3.806 3.206 3.441 4.074 4.283 4.270 3.262 2.162 - 6.634 6.569 4.932 3.745 2.994 2.631 4.606 4.825 3.314 2.549 2.632 3.533 2.809 3.196 3.672 3.181 3.735 4.280 4.675 4.154 4.026 2.471 3.726 3.643 4.552 4.950 4.117 3.561 3.892 3.774 3.330 3.842 3.916 4.259 3.517 3.194 - 5.922 5.401 5.543 4.947 3.267 4.751 4.720 3.029 3.457 4.521 4.834 3.573 2.588 3.914 4.525 2.993 4.450 4.302 3.756 3.880 4.296 3.189 3.891 4.175 4.561 3.340 2.963 3.444 4.152 3.218 3.776 4.306 4.817 3.736 2.409 2.617 - 5.010 5.503 4.663 3.942 4.033 4.537 5.387 4.480 4.608 4.505 4.903 4.702 4.061 5.199 5.633 5.251 4.405 4.999 4.662 5.002 3.624 3.090 2.785 4.056 4.502 3.555 3.867 3.853 3.780 3.298 3.496 3.371 3.542 3.006 2.386 2.217 - 4.294 4.947 5.145 3.709 3.669 4.999 4.383 4.159 4.061 3.861 3.920 4.481 5.045 5.391 5.372 5.328 4.285 3.829 4.425 5.267 4.272 4.313 4.313 4.189 4.269 3.651 4.340 4.326 4.269 4.242 3.599 3.829 3.939 3.081 3.131 2.032 - 5.860 3.283 4.492 5.343 4.758 5.362 5.195 4.606 4.652 5.450 5.369 4.958 4.523 5.308 5.265 4.815 5.710 5.611 5.604 6.544 6.047 5.118 4.401 3.936 3.165 3.242 3.611 3.973 3.479 3.284 3.497 3.494 3.812 3.849 3.146 2.365 - 6.226 6.163 5.800 4.682 5.344 6.714 6.350 5.190 5.038 6.086 6.380 5.473 5.143 4.524 5.530 4.666 5.798 6.001 7.222 6.882 6.479 5.003 4.790 5.033 4.040 3.611 3.865 4.468 3.678 4.149 4.956 4.636 3.864 4.230 3.937 2.703 - 5.140 5.788 5.858 4.830 3.984 5.886 6.614 5.567 5.579 4.619 3.863 4.705 5.269 4.882 5.503 6.388 6.189 6.615 7.334 7.480 7.540 6.060 5.029 4.049 4.532 4.205 3.433 4.481 4.091 3.949 5.256 4.586 3.827 3.990 3.896 2.594 - 5.534 4.934 4.464 4.234 4.927 6.442 5.936 6.141 5.637 3.989 4.463 5.546 5.515 5.543 4.254 6.211 5.814 5.994 7.573 7.936 7.227 5.619 5.338 4.765 4.328 5.298 4.244 3.852 3.888 4.267 4.733 4.298 4.323 5.016 3.789 4.054 - 5.943 5.221 5.791 6.000 4.843 5.827 6.633 7.135 6.809 6.775 6.513 5.475 5.201 5.445 5.674 4.900 5.006 7.202 8.067 8.477 8.204 7.020 5.418 5.225 5.020 5.319 5.020 4.813 4.599 5.603 5.801 5.005 4.850 5.788 4.833 4.088 - 6.612 6.714 6.335 6.948 5.540 6.272 6.701 5.345 6.515 6.364 5.441 5.124 5.533 6.266 6.470 4.729 6.554 7.587 8.808 9.041 8.810 7.738 6.118 5.709 5.079 6.180 4.927 4.751 4.302 5.680 6.493 4.867 5.069 5.631 5.447 4.732 - 6.378 6.644 6.403 5.233 5.770 6.584 6.624 6.100 5.565 7.104 5.905 4.356 5.536 6.109 6.326 4.772 6.534 8.229 8.739 9.951 9.939 6.485 6.662 5.707 5.324 6.323 6.107 4.864 5.106 6.050 5.708 5.435 5.523 6.436 5.628 4.654 - 5.928 5.175 5.067 5.347 5.805 5.326 6.868 7.113 5.057 6.324 6.598 6.279 5.606 5.667 5.950 6.359 7.061 7.515 7.925 9.411 8.836 7.661 6.539 5.956 5.607 4.942 5.448 5.840 6.286 6.811 6.763 5.700 5.639 5.946 5.369 4.983 - 5.165 5.182 5.158 5.786 6.932 6.832 6.256 5.854 5.299 5.965 5.839 5.603 4.833 4.497 4.643 5.610 5.652 7.824 8.791 9.803 9.867 6.651 5.984 6.024 5.686 5.585 5.201 5.316 5.058 6.051 5.932 5.787 5.900 5.814 6.003 5.320 - 5.172 4.971 3.718 4.628 5.082 6.524 6.405 6.603 5.218 5.131 4.293 4.871 4.834 5.780 6.377 6.651 6.350 7.556 8.734 10.434 10.663 8.384 6.514 6.302 5.848 5.095 5.093 5.832 6.290 6.055 5.885 5.627 5.836 6.729 6.310 5.385 - 4.227 5.375 4.299 1.786 5.107 6.206 5.080 5.891 5.230 3.443 3.864 5.408 4.060 4.688 4.967 6.465 6.963 6.961 6.805 9.164 9.764 7.721 7.061 6.188 5.673 6.526 5.421 5.945 6.335 6.135 5.573 5.957 5.825 6.323 5.840 6.549 - 4.333 5.376 5.405 5.093 4.090 4.856 5.250 5.604 4.748 3.299 4.209 4.996 5.051 5.861 5.472 6.009 7.274 7.590 7.108 8.813 10.191 7.629 6.324 6.071 6.009 5.887 4.840 6.440 6.879 6.795 6.393 6.327 5.775 7.045 6.922 6.425 - 6.296 5.258 4.401 3.398 5.044 5.672 5.239 6.204 4.418 4.570 5.915 5.383 4.475 6.139 5.421 6.298 5.832 7.984 8.881 10.562 10.786 8.239 5.728 5.277 5.136 5.751 5.868 6.264 6.832 6.818 6.189 5.476 6.093 7.222 6.936 5.635 - 6.281 4.798 3.175 4.071 5.567 5.937 5.077 5.684 4.436 6.368 5.899 4.860 5.642 6.000 6.488 6.584 5.649 6.529 8.769 11.272 10.132 8.222 7.018 5.805 6.443 6.360 5.537 6.748 7.029 6.664 6.658 5.210 5.273 6.255 6.283 5.972 - 5.280 6.026 5.927 4.579 4.830 4.686 4.943 5.677 5.181 4.878 4.695 5.191 5.203 5.795 6.042 6.170 5.898 7.075 8.189 11.129 10.271 8.078 6.260 6.306 6.185 5.770 5.493 5.043 5.189 7.163 6.743 5.650 6.580 7.102 7.171 6.700 - 5.316 5.843 5.775 3.688 3.614 3.181 3.847 6.386 6.497 5.899 5.880 5.489 5.080 5.481 6.172 5.812 7.893 8.552 8.610 9.569 9.477 8.497 7.192 5.323 6.410 6.369 6.488 5.900 7.441 8.269 7.597 5.930 5.852 6.142 6.654 5.426 - 5.797 6.369 5.280 3.947 4.144 5.521 6.075 6.910 6.682 7.038 6.597 6.155 5.596 4.646 6.488 6.334 7.059 7.897 8.220 10.117 9.536 8.028 7.328 6.124 5.965 5.768 6.377 6.055 7.662 7.801 7.039 5.671 6.392 7.172 6.693 5.230 - 5.353 5.416 4.583 4.549 5.134 5.115 4.525 4.267 5.417 5.001 5.732 5.204 5.299 6.170 6.359 6.628 7.830 8.267 8.756 9.687 9.247 6.550 5.403 6.974 6.727 7.104 6.013 6.529 7.527 6.805 6.397 5.247 5.997 6.461 6.755 5.452 - 7.616 7.402 6.719 5.261 5.923 5.845 4.043 4.817 5.906 6.076 5.522 5.127 5.864 6.176 6.756 6.490 6.909 6.954 8.207 10.518 10.126 8.422 6.483 6.607 6.231 6.534 5.556 5.640 7.547 8.241 6.820 6.035 6.063 6.225 6.577 5.442 - 6.127 5.720 5.278 6.334 6.418 4.703 6.455 6.407 5.309 6.089 5.394 5.026 5.882 5.701 6.149 6.986 7.921 7.974 8.469 10.747 9.447 7.301 6.571 5.854 5.952 6.170 6.013 5.993 7.041 7.901 6.383 5.989 5.918 6.836 7.209 5.877 - 6.232 6.199 3.803 5.875 5.998 6.663 6.794 5.738 5.161 6.214 6.800 5.116 4.879 4.628 4.059 5.473 6.616 7.637 8.267 9.552 9.687 8.343 6.150 6.023 6.551 5.867 5.792 6.354 6.638 7.064 6.209 5.484 5.382 6.740 7.582 6.480 - 6.268 7.000 6.098 6.228 6.325 6.655 6.447 5.676 3.805 5.406 5.899 5.581 3.905 4.475 4.034 5.499 6.469 6.196 7.502 10.888 10.477 7.511 5.675 5.844 6.344 6.752 6.011 5.767 6.465 6.601 4.612 4.942 5.785 6.141 6.077 4.940 - 6.243 6.604 5.723 5.851 7.081 7.051 6.125 4.545 5.215 4.722 5.871 6.325 4.918 4.431 5.432 5.946 6.790 7.270 8.746 10.970 10.683 7.385 6.583 6.057 6.131 6.557 6.279 6.397 6.919 7.217 5.614 5.611 5.896 6.235 6.597 4.641 - 5.620 6.519 5.777 5.540 5.568 5.770 5.446 6.965 6.608 6.537 6.452 4.288 3.779 5.096 4.948 5.496 7.282 7.706 9.565 10.263 9.075 7.856 6.761 5.750 6.015 6.090 6.165 6.169 7.125 7.153 5.482 6.160 6.459 6.494 6.276 4.844 - 5.484 6.656 6.551 5.290 6.592 7.279 7.186 7.499 5.984 5.702 6.211 5.674 5.033 5.190 5.445 5.362 7.460 7.662 8.559 9.174 8.956 8.222 5.943 6.596 6.541 5.637 6.189 6.289 7.063 7.353 6.851 4.936 5.991 5.921 6.383 5.910 - 10.275 10.292 9.544 8.193 8.397 8.005 8.461 8.408 7.084 4.887 3.792 3.796 4.054 5.745 5.746 5.792 6.798 8.458 8.818 9.010 9.219 8.188 6.561 5.462 4.878 4.864 5.582 5.651 7.101 7.423 6.319 5.629 5.278 5.663 6.153 4.861 - 10.564 9.798 8.629 7.696 6.634 6.513 8.219 7.767 6.241 4.607 3.212 4.740 4.414 4.477 5.373 7.027 6.720 7.547 8.228 8.792 7.744 6.804 6.540 5.764 6.126 6.787 5.002 5.746 6.877 7.320 5.998 6.501 6.195 5.675 5.571 4.805 - 6.697 6.655 6.653 7.502 6.440 4.576 6.195 7.649 7.070 4.765 5.310 5.010 5.228 5.461 4.946 4.491 5.369 7.129 8.889 10.067 10.424 8.458 7.001 6.096 5.969 6.930 6.115 5.569 7.102 6.673 5.552 5.498 4.967 5.943 5.957 5.507 - 5.849 6.268 6.076 6.353 5.401 6.237 6.571 6.146 6.552 6.489 6.661 6.564 5.412 6.682 4.761 4.422 5.177 6.313 8.791 10.314 9.768 7.589 6.951 6.485 5.717 5.831 5.041 5.456 6.724 7.049 5.653 5.541 5.733 6.000 6.746 5.933 - 4.348 4.642 5.662 6.534 6.115 6.184 5.639 5.713 6.055 6.426 6.616 5.924 5.558 6.255 4.628 4.587 6.405 6.121 7.642 9.155 8.900 7.226 6.316 6.892 6.141 5.596 5.619 6.154 6.312 6.739 6.811 5.782 5.232 6.023 6.896 5.032 - 4.313 4.272 4.973 5.708 6.322 5.965 5.489 5.239 6.009 5.254 4.502 5.530 6.225 5.582 5.457 5.447 6.445 6.602 7.322 9.751 10.384 8.018 7.252 5.853 5.525 4.498 3.879 4.610 7.075 7.351 5.869 5.653 5.678 5.246 5.928 5.252 - 3.825 4.976 5.110 5.786 5.325 5.913 7.068 6.196 6.558 5.477 4.243 5.941 6.326 5.607 5.121 5.856 6.642 6.983 8.874 9.957 10.105 7.319 5.697 5.628 5.680 5.263 4.964 5.058 5.527 6.670 6.112 6.019 5.747 5.419 5.830 5.042 - 4.468 5.087 5.352 5.401 6.424 5.745 7.220 6.010 5.907 4.335 5.114 5.651 5.572 5.742 5.817 5.278 6.652 7.255 8.143 9.769 8.938 6.435 4.923 4.966 6.132 6.293 5.546 5.512 5.772 6.196 5.228 4.929 5.256 5.605 5.776 4.998 - 4.007 5.083 5.556 5.679 5.054 6.407 6.902 6.854 6.199 5.843 5.514 5.132 4.588 5.087 6.229 5.218 5.781 6.516 8.424 8.721 7.580 6.830 6.020 5.675 5.218 5.379 5.330 5.679 5.781 6.384 5.473 4.889 5.392 5.290 5.559 4.324 - 5.235 5.113 5.089 4.967 4.817 6.177 7.388 6.336 5.963 5.709 5.327 5.402 4.456 4.908 4.286 4.222 5.328 6.722 7.376 8.018 7.591 6.092 5.886 5.099 5.156 5.386 5.489 5.971 6.514 6.319 5.258 4.618 4.707 5.105 4.677 3.728 - 3.442 4.732 5.335 5.567 5.431 6.306 6.872 5.822 4.643 6.318 5.693 6.133 6.408 5.678 4.506 5.096 4.257 6.593 6.879 7.142 6.323 5.324 4.930 5.739 6.012 6.162 5.772 4.775 6.122 6.462 5.802 5.496 5.021 5.500 4.821 4.066 - 6.491 5.527 5.727 5.815 4.531 5.924 7.156 7.518 7.304 7.039 5.416 5.244 5.608 5.297 5.561 6.348 6.309 6.795 7.041 8.097 7.681 5.979 4.582 5.679 5.761 5.951 5.826 5.692 5.968 6.732 6.388 5.647 5.211 5.836 5.444 3.955 - 6.204 6.510 6.514 6.245 5.772 5.253 5.084 6.668 6.151 6.418 5.560 5.848 4.805 5.231 4.862 5.752 6.149 5.894 7.144 8.564 6.157 5.921 5.623 4.969 5.151 5.855 5.810 6.170 5.297 6.861 5.716 5.331 5.572 5.245 5.324 4.063 - 4.489 5.938 5.654 5.667 5.865 5.263 6.670 7.442 7.139 5.808 3.907 3.612 4.346 4.233 4.450 5.605 5.539 5.667 8.247 8.815 7.026 5.953 4.873 5.264 4.811 5.453 5.523 5.806 5.364 6.167 5.295 5.485 4.536 5.447 5.020 3.539 - 6.556 5.410 5.876 5.145 5.805 5.857 4.873 3.500 3.192 3.314 4.677 4.452 4.533 4.325 4.222 4.900 5.552 6.076 7.808 8.621 6.478 6.390 5.062 5.563 4.675 4.685 5.194 6.239 6.461 6.033 4.679 4.809 5.427 5.297 4.395 4.082 - 6.868 6.613 4.074 5.376 5.817 6.271 5.444 3.626 4.356 4.006 4.723 5.939 4.354 4.607 4.780 5.691 5.225 5.061 6.650 7.704 6.392 5.887 5.290 4.234 5.019 5.496 4.615 5.441 5.605 4.875 4.442 4.779 5.226 4.412 3.922 3.112 - 7.023 6.829 5.953 6.136 5.977 3.727 4.048 5.974 6.284 5.630 5.163 5.575 5.002 4.435 4.684 5.059 5.157 4.868 6.723 6.586 6.013 4.870 5.355 4.215 4.152 4.894 5.149 4.289 4.338 3.827 4.102 4.870 4.560 4.424 3.028 2.433 - 4.697 5.698 5.537 5.430 5.123 4.190 4.647 5.668 6.949 5.424 4.016 5.192 3.868 5.055 4.362 4.075 4.212 6.352 6.354 5.520 5.379 3.872 4.042 4.442 4.242 4.675 5.045 4.819 4.995 4.528 4.294 3.962 3.785 2.679 2.820 1.905 - 5.055 6.749 7.035 6.352 5.563 5.529 6.833 7.719 7.424 5.462 4.068 3.730 3.637 4.718 3.422 3.832 4.902 6.953 6.629 6.605 5.508 4.506 4.763 5.775 5.232 4.066 4.211 4.661 5.098 4.113 3.291 4.879 5.085 3.589 3.634 3.228 - 5.841 4.492 3.470 4.408 6.042 6.396 6.689 5.652 4.778 4.375 4.646 4.855 5.248 3.873 3.430 4.089 5.924 6.448 6.147 6.523 5.467 5.337 5.254 4.905 4.839 4.692 4.217 5.045 5.530 4.172 5.177 5.543 5.416 4.565 4.526 3.759 - 6.313 6.547 6.306 7.089 7.372 6.082 5.917 6.029 5.333 4.960 4.797 5.997 5.718 3.927 5.118 5.205 5.617 5.931 5.274 4.871 4.614 4.604 5.679 6.074 5.361 5.286 5.755 5.791 5.902 6.007 6.299 6.274 5.887 5.824 5.534 4.567 - 4.606 4.165 3.078 5.368 5.900 6.328 7.369 6.208 5.837 5.960 4.725 6.063 5.636 3.031 5.578 5.179 4.614 5.540 6.220 6.602 6.364 5.700 5.080 4.732 5.895 6.263 6.840 6.520 7.137 5.789 6.811 7.575 6.837 6.069 6.958 6.867 - 6.107 5.319 5.440 5.708 5.739 7.095 7.523 6.143 5.697 5.449 3.856 4.494 5.350 5.592 5.487 4.964 5.006 4.661 4.863 5.350 5.933 5.144 6.204 5.223 5.830 5.958 6.884 6.495 6.634 7.314 7.288 6.960 6.185 5.741 6.149 5.438 - 8.161 6.735 6.402 6.545 6.014 6.472 7.422 6.484 6.211 6.012 5.166 4.521 7.014 7.106 6.417 5.845 6.319 6.173 6.800 7.567 8.139 7.387 6.175 5.820 6.343 6.774 7.822 7.236 6.665 7.465 7.774 8.802 7.268 7.888 7.611 5.975 - 9.320 8.190 8.325 7.901 7.761 7.627 7.354 7.857 7.887 7.845 7.726 7.153 6.667 7.767 7.495 7.609 8.229 7.122 6.921 8.157 7.375 7.437 7.070 6.240 7.029 7.476 7.074 7.464 7.357 7.923 8.155 9.160 8.234 8.643 7.985 7.163 - 6.907 7.206 6.750 7.935 7.481 6.853 8.319 8.098 6.107 5.320 6.025 6.717 6.287 6.297 6.201 6.155 6.846 6.426 6.415 7.245 6.757 6.034 5.861 5.884 7.334 7.478 6.508 6.242 6.296 6.033 7.366 8.895 8.057 7.498 7.665 6.375 - 5.906 6.972 6.337 6.589 7.732 6.875 5.958 7.115 6.540 4.246 3.522 4.362 4.472 5.046 4.983 4.252 4.310 5.668 5.865 6.165 5.372 6.656 5.983 5.383 6.261 6.275 6.390 7.701 6.911 7.419 7.333 7.627 7.511 6.834 6.767 5.590 - 5.948 6.497 6.076 6.268 6.914 5.954 5.985 4.543 5.212 5.375 5.360 3.905 4.814 4.199 5.386 4.465 3.139 5.103 5.913 5.851 5.772 5.741 5.640 5.356 5.295 5.687 5.472 6.462 6.319 6.870 7.049 7.089 6.853 7.043 6.908 5.954 - 6.138 4.438 4.667 6.529 7.543 7.042 7.443 6.887 6.168 6.194 5.983 6.284 5.546 5.352 4.890 5.225 5.404 6.656 6.395 5.397 5.453 6.618 5.856 5.342 6.059 6.139 6.358 6.519 6.597 6.078 6.810 7.464 7.484 7.736 7.010 5.782 - 5.305 5.909 5.347 6.174 6.473 6.678 7.858 7.104 6.945 5.824 5.571 6.057 5.585 5.272 5.271 6.160 6.034 6.280 5.832 5.862 6.028 6.138 6.187 6.359 5.594 5.888 6.477 7.287 6.569 6.193 6.363 6.386 7.603 7.611 6.843 5.700 - 6.737 7.619 7.945 6.973 6.541 7.523 6.661 6.222 5.688 6.256 6.199 6.820 4.961 6.391 5.867 4.741 5.409 5.567 5.161 5.610 6.385 5.537 5.840 5.141 4.341 5.641 6.333 7.402 6.745 6.876 7.138 7.776 9.092 9.176 8.238 5.842 - 6.870 7.132 6.789 5.627 7.834 7.535 4.272 5.318 6.281 6.666 5.602 6.264 6.960 6.183 6.454 5.684 6.911 5.682 6.309 6.783 6.666 6.315 7.544 7.039 6.975 6.754 6.718 7.196 6.309 6.783 7.316 8.038 8.426 8.840 8.127 7.077 - 7.856 6.823 6.277 7.422 8.033 8.231 8.062 6.513 8.534 8.522 7.175 7.500 7.192 7.558 7.921 7.473 8.032 7.334 7.691 7.294 6.896 6.649 7.615 8.026 8.174 7.936 7.325 7.346 7.762 7.375 6.950 7.154 7.264 7.545 8.659 8.247 - 6.634 4.807 4.939 5.129 8.706 9.627 7.695 8.999 9.849 9.567 8.541 8.355 7.280 7.396 7.615 6.855 8.231 7.708 6.246 5.883 5.533 6.113 5.089 5.821 7.083 6.860 6.092 5.839 5.909 6.741 5.899 6.335 6.306 6.154 5.954 5.428 - 6.011 6.038 6.669 7.363 9.233 9.977 7.013 10.389 11.315 9.057 8.681 9.026 6.765 6.942 6.812 8.725 8.573 10.267 9.152 6.894 6.009 5.799 4.466 5.364 7.392 7.781 5.992 5.608 6.095 7.321 6.951 6.258 6.378 6.806 6.230 5.505 - 6.622 3.358 6.191 8.047 9.912 11.133 9.056 11.110 12.160 10.065 8.198 8.334 7.147 7.350 5.793 9.433 9.951 10.962 10.141 7.799 7.196 6.769 6.722 7.482 9.262 9.769 7.881 6.549 6.610 6.985 7.364 6.621 6.837 6.344 6.609 5.745 - 6.084 5.240 5.059 5.913 10.687 12.131 10.258 10.403 12.192 10.767 7.216 6.927 6.217 8.621 8.735 9.461 10.910 9.396 8.936 8.369 8.864 8.940 8.103 8.540 10.492 9.364 8.376 7.663 7.486 8.566 8.698 6.546 7.045 7.158 7.440 6.945 - 5.436 5.972 7.124 6.442 11.153 12.378 10.014 8.544 10.674 9.546 7.133 7.683 6.472 8.210 8.269 9.314 9.955 9.521 9.124 8.663 7.700 8.125 8.035 8.839 9.729 9.621 8.395 7.090 5.782 7.480 8.560 7.678 6.562 7.677 6.566 5.779 - 6.556 7.172 6.476 7.416 11.067 12.175 10.063 8.537 9.645 7.463 7.316 7.265 5.912 6.386 5.891 8.191 8.758 10.467 10.171 7.750 7.156 7.316 6.110 8.574 8.871 9.507 7.087 6.393 5.033 6.383 7.976 7.578 7.650 8.389 7.225 5.272 - 6.633 6.981 7.014 6.234 9.760 10.742 8.704 8.617 9.733 7.623 7.096 7.683 5.827 5.784 4.841 6.484 7.403 9.542 8.233 7.665 7.074 7.007 7.164 7.815 8.334 8.091 6.092 5.879 5.165 5.791 6.784 6.909 6.891 7.281 6.400 4.602 - 7.036 7.899 7.463 5.693 8.960 9.219 6.773 6.589 9.085 8.206 6.530 7.344 5.154 5.229 5.616 5.845 6.652 8.016 7.277 6.879 6.563 6.899 5.350 6.627 7.554 6.946 5.625 5.305 5.354 6.129 6.625 6.619 6.253 6.316 6.079 5.281 - 7.579 7.358 5.001 4.273 6.297 6.770 5.783 6.273 8.859 7.591 4.951 5.090 4.532 5.475 5.196 6.341 6.893 8.126 8.271 5.556 6.418 6.708 5.500 6.703 7.635 6.546 5.712 4.380 4.712 6.479 6.330 5.413 5.811 6.827 6.334 4.796 - 6.804 7.463 5.340 5.781 7.593 7.390 4.799 6.886 9.109 7.806 5.848 5.674 4.377 5.221 5.712 5.480 6.522 6.929 6.981 5.684 5.141 6.178 6.712 6.469 7.379 6.163 4.724 5.194 4.840 5.159 5.640 5.392 5.384 6.096 5.043 4.643 - 5.836 7.078 6.609 5.585 7.374 7.922 6.029 7.790 8.878 7.351 6.044 5.406 5.080 5.260 5.110 5.354 6.243 6.195 6.426 5.002 5.525 6.270 6.486 7.307 6.674 6.984 5.819 5.750 5.546 5.174 6.243 5.120 5.501 5.658 5.230 4.984 - 5.995 6.426 6.499 6.198 5.394 7.786 7.006 6.640 6.574 5.446 5.358 5.959 5.758 5.732 5.124 4.780 5.404 7.232 6.886 4.978 5.318 6.719 6.224 6.564 7.540 7.931 6.923 5.661 4.680 4.914 6.346 5.742 5.577 6.547 5.576 5.097 - 1.838 5.180 5.975 5.906 7.567 7.613 6.828 6.655 7.792 6.274 5.220 6.579 5.034 4.353 4.588 4.436 5.218 7.240 6.788 5.733 5.852 6.223 5.812 7.566 7.519 8.670 8.259 7.170 5.266 4.760 5.347 6.104 5.672 5.826 5.926 4.517 - 5.940 6.287 5.516 4.456 6.049 4.822 4.612 5.279 7.297 6.241 4.923 4.825 4.876 5.176 4.768 4.898 5.868 5.961 5.657 5.526 4.799 4.770 6.168 7.569 7.270 8.064 8.280 7.243 5.818 6.468 6.409 5.514 5.401 6.791 6.692 5.271 - 4.992 5.270 5.844 4.517 5.885 7.697 8.411 7.816 6.573 5.399 4.888 5.076 4.818 5.357 5.289 4.571 4.205 4.805 5.241 5.641 6.016 6.077 7.080 7.571 7.853 8.342 7.471 6.325 5.760 6.632 5.964 5.644 6.271 7.092 7.065 6.122 - 5.971 6.959 7.115 5.902 6.991 9.835 10.716 8.455 6.904 7.236 5.713 4.813 5.446 5.312 5.103 4.482 4.675 5.759 5.635 6.407 5.363 5.984 8.371 8.966 8.756 8.649 9.396 8.542 7.282 6.228 6.016 6.475 6.345 7.686 7.025 5.545 - 4.681 6.154 7.203 6.462 8.696 11.385 11.167 7.915 7.869 8.735 6.606 6.050 6.586 5.828 5.287 4.551 4.438 5.555 6.453 6.580 6.723 6.724 7.794 10.012 9.722 9.495 9.606 9.145 7.523 6.685 7.166 7.617 7.415 8.412 7.522 5.839 - 3.807 4.640 4.978 2.408 10.476 12.227 10.386 6.954 7.907 8.420 5.324 6.318 6.095 5.831 6.745 4.747 6.064 5.717 6.858 7.080 7.618 8.740 9.749 10.204 9.601 10.113 11.044 10.649 8.363 7.905 7.625 8.279 7.948 8.558 7.831 5.859 - 5.518 6.274 5.224 4.917 11.330 13.128 11.502 5.855 7.368 7.477 5.952 5.765 5.180 6.776 7.223 4.591 5.476 6.210 6.390 7.184 7.572 9.771 10.655 11.000 10.853 9.740 11.735 11.216 8.704 7.656 7.808 8.371 7.511 9.449 7.733 6.007 - 6.485 7.616 6.202 4.926 11.995 13.566 11.651 5.145 6.173 5.758 5.335 5.930 4.340 6.350 6.971 5.291 6.034 6.189 6.334 7.816 7.628 9.520 11.491 11.358 10.780 10.797 11.794 11.265 9.030 7.265 8.215 8.120 7.370 10.274 8.249 5.687 - 5.688 7.242 6.281 5.216 12.401 13.706 11.430 5.031 6.857 6.494 5.448 5.198 3.708 7.176 7.377 6.796 7.513 7.938 7.604 7.747 7.501 9.271 11.500 10.884 10.151 11.821 11.385 11.019 9.004 7.102 8.166 9.020 8.480 10.415 8.923 5.830 - 5.554 6.685 5.392 6.872 12.547 13.583 11.062 5.046 7.073 6.778 5.027 5.437 4.807 6.584 6.786 6.049 6.546 6.760 6.737 7.123 7.382 8.800 9.975 9.688 9.784 11.040 11.196 10.793 8.903 8.311 7.495 8.650 8.970 10.246 7.890 5.205 - 6.426 6.592 5.661 6.156 11.998 13.193 10.912 6.278 7.373 7.420 5.834 6.083 4.586 6.299 6.356 5.254 5.353 5.102 5.688 5.972 6.312 9.088 10.623 9.373 9.085 9.524 10.664 10.460 8.153 7.217 6.012 7.447 8.026 8.505 8.412 5.186 - 9.791 9.677 9.635 9.280 11.242 12.430 10.097 6.144 7.402 7.239 5.400 6.036 5.111 5.869 5.743 4.617 4.807 5.454 5.857 5.125 6.276 8.658 9.298 8.552 8.945 8.217 9.590 9.172 7.437 5.533 6.246 6.736 8.159 7.707 7.769 5.601 - 12.227 10.855 11.068 11.582 10.493 11.101 9.995 8.365 7.648 7.097 5.607 5.964 5.365 5.246 5.753 5.332 5.018 6.565 5.889 5.435 6.754 8.018 6.564 7.525 7.854 7.595 8.703 7.959 6.138 5.972 5.972 6.448 7.790 7.420 7.123 4.469 - 10.688 10.300 9.333 9.180 9.404 10.058 7.983 5.515 6.007 5.321 5.610 5.077 3.693 5.018 5.245 4.681 3.793 4.663 4.746 4.993 6.041 7.840 7.912 7.820 6.983 7.880 7.738 7.398 6.195 6.320 6.779 6.857 7.870 7.742 6.574 5.169 - 7.038 7.867 9.162 8.917 8.810 9.351 7.386 4.996 5.532 5.087 6.237 6.348 5.685 5.549 4.671 4.920 3.586 4.232 4.807 6.409 6.806 6.880 8.213 7.729 6.916 7.153 8.141 7.780 5.568 6.057 6.367 6.672 7.116 7.618 6.600 4.945 - 8.905 9.062 8.894 8.022 7.938 8.301 6.556 5.246 5.555 6.472 6.773 5.917 6.142 6.362 4.911 4.534 4.861 5.672 5.116 5.285 5.190 6.469 8.569 7.063 6.526 6.023 8.314 7.907 5.758 4.715 5.829 6.052 6.473 6.994 5.662 5.454 - 7.700 8.324 9.248 8.782 9.216 8.441 8.089 8.165 7.666 6.934 6.526 6.514 6.807 7.109 5.996 5.926 7.126 6.476 5.953 6.281 6.669 6.363 7.898 6.812 7.079 7.715 8.004 7.323 6.958 6.991 7.668 6.668 7.183 7.004 6.783 6.941 - 12.499 13.205 13.728 13.770 13.350 12.380 11.579 11.675 11.371 10.397 9.500 9.881 9.676 8.959 8.363 8.023 7.923 7.759 7.408 6.716 7.249 7.452 7.650 7.577 7.772 7.331 7.153 6.504 6.893 7.283 7.767 7.568 7.665 7.220 7.135 6.425 - 11.827 11.464 12.127 12.493 11.508 9.760 8.602 9.450 9.339 8.249 6.661 8.606 8.363 6.628 6.435 6.482 6.513 5.674 5.430 6.337 6.729 6.894 7.481 6.517 6.434 6.040 7.813 6.956 6.576 6.680 6.460 6.534 6.959 7.240 6.872 6.015 - 7.909 9.279 9.812 9.539 9.287 8.713 9.217 9.419 9.234 8.208 9.124 8.520 7.106 6.376 7.006 6.107 5.372 6.143 5.782 6.026 6.124 5.994 5.533 6.669 6.865 5.829 8.252 7.805 6.282 6.882 7.081 6.863 7.744 8.086 7.240 6.637 - 8.715 7.106 8.481 7.567 7.784 7.154 7.097 7.648 7.369 6.552 8.054 7.800 7.494 5.905 5.602 7.027 7.253 6.906 7.263 6.455 6.771 6.872 6.673 7.393 7.226 5.891 8.629 7.948 6.803 7.290 7.171 7.810 8.074 7.926 7.502 6.886 - 9.404 9.813 8.558 8.790 9.457 10.609 9.444 8.241 8.087 6.429 6.068 7.534 6.857 5.586 6.744 5.727 6.957 7.770 8.037 7.432 7.263 7.467 6.922 6.315 6.909 6.833 9.765 9.125 5.858 5.989 6.034 7.321 7.396 7.414 6.198 4.986 - 9.210 9.696 9.670 9.464 11.662 12.708 10.844 7.924 7.435 7.252 8.088 7.571 7.190 6.410 5.596 6.616 6.886 8.564 8.070 8.197 7.100 7.251 6.735 6.947 7.846 8.409 10.303 9.402 6.445 5.753 6.195 7.894 7.181 7.485 5.854 5.294 - 10.393 10.190 9.777 9.665 11.413 13.086 11.240 8.831 8.994 7.485 7.199 8.493 7.847 6.970 7.036 8.403 7.722 10.653 10.031 7.986 6.947 7.144 7.131 6.465 6.978 8.928 8.620 7.637 6.758 7.191 6.757 7.722 7.563 7.706 5.433 5.060 - 9.640 9.532 9.151 10.097 12.331 12.891 10.221 8.023 8.422 7.825 8.416 9.396 7.641 7.226 7.798 7.254 7.869 11.100 9.963 6.686 6.444 6.602 7.312 7.227 6.890 7.523 8.288 8.680 7.772 6.428 6.868 7.772 8.209 8.248 6.182 5.805 - 10.128 11.055 11.228 10.554 12.114 12.324 9.874 8.878 8.051 8.482 7.573 9.079 7.727 7.619 8.008 8.480 7.536 10.315 8.983 7.406 6.479 6.182 6.012 6.561 6.509 6.805 8.239 7.583 7.481 5.716 5.388 7.319 7.673 6.796 6.325 5.521 - 8.679 9.232 8.946 10.296 10.222 10.291 8.974 9.280 8.215 7.129 7.249 7.702 7.354 5.780 6.248 6.629 6.643 8.689 8.530 8.026 6.382 6.595 6.095 6.230 6.163 6.334 7.654 6.793 5.969 6.178 4.549 5.438 6.096 6.289 5.278 4.378 - 8.330 9.408 8.939 9.209 8.885 9.139 9.465 8.083 7.993 7.420 5.985 7.021 6.346 6.001 6.034 6.865 6.486 7.355 7.091 7.074 6.081 5.963 6.384 6.925 5.993 6.471 7.448 5.871 5.798 6.208 5.916 5.784 6.635 6.554 5.531 3.953 - 6.987 9.705 10.485 9.404 8.537 9.351 8.287 7.127 8.160 7.170 7.302 7.347 5.919 6.326 7.466 7.448 6.249 6.360 6.676 6.502 5.520 4.945 6.068 6.334 6.510 5.488 5.727 5.579 5.174 5.219 5.478 5.780 5.278 5.474 4.954 4.472 - 9.531 10.444 9.482 8.722 8.059 9.170 7.575 6.375 6.905 7.641 8.552 7.591 7.052 7.600 7.187 7.270 6.387 7.363 6.734 6.636 6.162 5.569 6.822 5.745 6.516 6.334 5.670 5.427 5.271 5.276 4.713 5.023 5.251 5.186 5.135 3.978 - 8.373 11.319 11.347 10.250 10.538 9.871 7.802 7.362 7.282 8.358 8.366 6.386 6.526 5.302 4.445 6.101 6.264 5.949 6.659 6.488 7.064 5.146 4.856 6.320 6.273 5.251 6.045 5.697 5.791 4.377 4.309 5.143 5.350 5.822 5.445 4.554 - 10.949 11.753 11.721 11.075 9.667 9.028 9.308 7.661 7.398 7.917 8.204 6.090 6.762 6.161 4.972 4.655 5.564 6.222 5.803 5.720 5.725 5.598 5.724 6.681 6.170 5.015 5.573 5.264 5.241 4.474 3.419 4.345 5.073 5.447 5.176 3.886 - 9.203 8.138 8.207 8.296 8.603 10.144 9.759 8.017 7.489 6.771 7.331 6.624 6.182 6.109 6.982 6.323 6.700 6.741 6.129 7.327 8.232 6.262 6.229 6.561 6.583 6.809 7.765 7.081 5.937 5.353 5.333 4.763 5.647 5.646 4.682 3.950 - 9.845 8.652 8.413 8.032 10.029 12.360 12.145 9.000 7.733 7.478 7.892 7.398 7.316 8.340 7.633 6.592 6.949 7.000 7.406 7.992 9.640 8.822 7.139 7.169 7.441 8.861 10.194 9.479 6.846 6.404 6.538 7.244 7.733 6.297 6.004 4.858 - 7.905 8.489 8.554 5.562 7.547 12.461 13.367 10.674 8.131 9.835 9.168 6.840 8.741 7.641 5.970 5.790 6.867 8.367 7.467 9.678 9.890 9.541 8.414 8.288 8.648 9.757 11.638 11.482 7.389 6.981 7.478 8.221 9.327 7.350 6.844 3.698 - 7.065 7.566 8.704 8.242 8.184 12.721 14.000 11.762 6.921 9.336 8.570 5.201 8.692 8.778 6.279 6.803 5.816 9.715 8.828 10.559 10.202 11.191 9.497 9.482 8.625 10.498 11.312 11.266 8.422 6.613 7.122 8.267 9.243 8.596 7.457 4.665 - 7.358 7.942 7.231 7.890 8.555 12.804 14.389 12.452 6.518 8.669 8.734 5.331 8.234 8.647 6.077 6.135 5.423 9.981 9.479 11.454 11.534 12.059 10.448 9.653 8.755 9.525 11.126 10.356 8.954 7.672 7.378 8.933 9.199 8.798 8.172 4.882 - 6.289 7.355 7.741 8.107 9.602 12.362 14.319 12.971 6.680 8.226 8.781 5.576 7.946 8.014 6.505 6.886 6.979 7.964 8.581 11.084 12.300 10.337 9.279 9.622 8.851 10.608 12.156 11.664 9.572 8.565 7.211 8.641 9.179 9.569 8.163 5.645 - 7.378 7.663 7.181 7.778 8.297 11.278 13.443 12.767 9.017 7.989 9.491 7.945 7.650 8.042 6.239 6.506 7.641 6.842 8.922 10.093 11.367 10.150 8.457 9.348 9.127 9.718 11.842 11.702 8.656 8.411 7.831 8.679 9.018 9.280 8.318 6.004 - 7.089 7.180 8.733 8.585 6.759 10.549 12.187 12.053 9.970 8.061 9.489 7.632 6.731 7.995 8.268 6.652 6.829 6.999 8.399 9.723 10.812 10.358 8.423 8.820 7.859 8.776 10.394 9.876 7.816 7.470 7.535 8.018 8.872 9.342 8.769 6.475 - 6.908 8.710 9.365 7.863 6.440 10.491 12.633 12.387 9.173 6.511 8.347 6.977 6.327 6.975 6.221 5.076 6.192 6.769 8.683 9.887 9.074 9.318 8.296 9.160 7.388 8.286 9.121 9.297 8.166 7.315 6.921 7.634 8.631 9.169 8.460 6.238 - 9.610 9.595 9.485 9.888 9.490 10.390 11.723 11.727 9.949 8.411 7.994 8.221 8.350 8.500 8.184 7.409 7.376 7.321 7.817 8.902 8.926 9.035 7.143 8.077 7.650 7.895 8.544 9.253 8.154 6.110 6.671 7.066 8.369 7.418 6.971 5.804 - 8.594 9.013 9.395 10.453 10.044 10.817 12.052 11.240 8.482 7.105 7.898 7.526 7.587 7.456 6.549 6.564 6.279 6.834 7.801 8.791 8.919 7.898 6.388 7.046 6.742 7.048 8.636 7.683 7.088 5.924 6.362 6.815 7.933 7.448 6.874 5.978 - 9.405 9.423 10.008 10.403 9.855 9.547 9.650 7.968 7.383 7.415 8.054 8.323 7.634 6.842 6.067 6.438 6.063 5.900 7.422 7.837 8.236 7.560 6.575 7.596 7.125 6.481 7.634 7.856 6.010 6.105 7.186 6.784 8.353 7.966 6.995 5.978 - 8.992 8.642 9.563 10.297 9.650 9.755 11.000 9.138 8.022 7.282 7.178 7.097 5.934 5.509 6.175 4.835 5.360 6.064 6.568 6.908 7.745 7.353 7.404 7.523 7.096 7.033 7.303 7.676 6.907 6.619 6.690 6.804 6.897 6.764 7.003 5.941 - 8.082 9.470 8.533 8.135 9.551 9.850 10.368 9.991 7.614 6.600 6.191 6.962 5.971 6.878 5.743 4.243 4.493 6.863 7.549 7.551 7.814 7.791 6.011 5.246 5.723 7.270 8.288 7.483 6.680 6.470 6.834 7.015 7.752 7.144 7.306 6.559 - 10.290 10.349 9.820 8.687 8.244 9.503 9.673 8.931 7.650 7.720 7.540 7.067 6.888 6.793 6.207 4.657 5.282 5.890 6.303 8.079 7.401 7.471 6.112 5.773 6.409 7.174 7.759 7.822 6.891 6.575 7.629 7.591 8.025 7.157 7.158 7.350 - 10.810 11.725 11.818 10.340 10.058 9.419 9.983 8.282 8.160 8.385 7.634 9.096 8.785 8.642 8.649 8.006 8.531 8.458 8.748 9.577 9.346 8.821 8.469 8.858 7.811 8.445 8.807 8.252 6.205 5.967 7.131 7.172 7.715 7.371 7.525 7.123 - 11.923 12.071 11.710 11.232 10.946 9.295 9.794 8.639 8.266 9.592 9.985 10.169 9.909 10.071 9.141 8.276 8.802 9.068 9.292 9.968 9.792 8.585 8.485 8.588 8.251 8.707 9.490 8.765 6.806 6.495 6.484 7.651 8.154 8.037 8.237 7.697 - 9.778 9.524 10.004 9.895 9.653 8.896 10.359 10.100 8.833 7.475 7.464 7.828 8.447 7.679 5.755 5.852 5.266 5.983 6.778 6.377 6.422 6.312 7.251 7.715 7.744 6.638 5.921 6.403 6.797 6.705 7.140 8.033 7.839 8.081 8.183 7.043 - 10.318 10.487 10.634 10.111 9.673 8.555 8.965 8.128 7.876 8.239 8.101 8.899 8.101 6.851 6.403 6.232 5.250 5.680 5.776 6.229 6.704 7.338 7.212 7.240 7.237 6.945 7.312 7.612 7.360 6.076 7.358 7.826 8.362 8.994 9.012 7.478 - 8.698 9.261 9.209 9.497 7.709 7.883 8.940 9.172 7.357 6.352 7.004 7.062 6.986 7.414 6.092 5.874 6.219 5.861 7.672 7.994 6.538 6.988 6.722 7.377 7.479 7.606 8.510 6.647 6.316 6.698 7.489 7.940 8.452 7.943 8.197 7.161 - 9.048 9.011 8.505 8.849 8.262 7.104 8.037 8.018 6.943 7.191 7.446 6.879 6.465 7.751 6.784 6.417 5.805 6.453 6.594 7.242 5.641 6.989 6.970 6.074 6.009 6.002 7.116 6.917 6.834 7.397 7.911 8.166 8.158 7.688 8.789 8.652 - 8.484 8.227 8.678 9.251 9.522 8.878 7.542 6.716 6.815 7.213 5.288 6.690 6.545 6.699 6.051 7.325 6.646 7.067 6.798 7.975 6.190 6.558 7.569 6.888 6.753 6.939 7.421 6.426 6.371 6.725 7.538 7.851 8.098 7.765 8.887 9.896 - 7.556 7.473 8.128 8.027 7.670 7.688 6.579 6.761 7.604 6.909 6.675 5.898 6.195 4.765 5.607 5.572 5.480 7.136 7.445 8.145 8.541 8.276 7.667 7.016 7.321 7.262 7.077 6.696 6.757 6.800 7.230 7.719 8.161 7.673 7.668 8.239 - 10.743 11.279 11.920 10.359 11.081 10.470 10.679 10.002 10.777 9.877 10.397 9.458 9.287 6.958 7.477 7.707 8.553 10.071 9.453 10.412 11.710 11.972 11.611 9.505 9.896 10.011 10.882 11.036 9.188 8.139 7.322 7.679 7.356 9.425 10.600 9.673 - 12.470 13.487 12.790 11.869 11.851 11.532 10.782 9.883 11.442 11.721 11.467 11.568 11.061 8.694 9.098 9.648 9.926 11.011 10.647 11.232 11.854 11.378 11.308 10.301 9.736 9.890 10.370 10.699 9.752 7.187 6.963 7.102 7.794 9.099 10.052 9.881 - 13.328 14.187 12.672 12.433 13.013 12.738 10.748 9.948 10.847 12.723 12.834 12.088 11.332 9.206 9.220 10.111 10.084 10.908 10.440 10.880 11.896 12.047 11.276 9.498 8.060 7.402 7.490 6.909 7.117 6.726 6.161 6.759 7.802 8.827 9.290 6.629 - 13.833 14.510 13.064 12.956 13.385 12.672 11.371 9.755 11.346 13.438 13.138 12.361 11.768 9.080 9.193 10.117 10.378 10.976 10.932 12.006 13.055 12.839 11.399 9.520 7.996 6.321 7.015 7.358 7.951 8.094 6.891 8.318 8.814 9.166 8.059 6.619 - 14.207 14.746 13.234 13.825 13.315 13.745 13.726 13.222 13.563 13.634 13.409 13.066 12.437 11.606 10.569 11.190 12.054 11.652 11.551 12.985 13.778 12.751 11.237 9.946 9.505 9.316 8.697 8.599 9.349 9.287 9.167 9.448 9.134 8.592 8.953 8.291 - 15.084 15.541 14.295 14.548 15.953 16.205 16.590 15.543 15.413 16.274 15.415 14.796 13.634 13.695 13.067 13.171 13.564 13.132 12.797 14.555 14.363 12.819 11.025 9.977 9.892 9.581 9.043 8.865 9.560 9.513 9.513 9.800 9.150 8.969 9.626 8.782 - 14.895 15.547 13.914 14.037 16.582 17.781 18.870 17.666 16.198 16.987 17.591 17.685 16.613 15.040 13.341 13.195 12.941 13.098 14.193 15.218 12.860 11.204 9.732 9.426 8.868 7.661 6.848 7.569 8.558 8.073 7.618 9.175 8.594 7.075 7.005 6.422 - 15.719 16.227 15.542 16.069 16.859 18.126 19.754 18.606 16.842 17.687 18.177 18.647 18.139 15.797 13.528 13.839 13.799 14.650 15.749 15.687 13.329 11.558 10.100 8.809 7.704 7.265 6.993 7.673 8.962 10.015 10.039 11.172 10.234 7.509 6.690 6.300 - 16.108 16.356 15.801 16.118 16.572 18.580 19.805 18.358 17.873 18.309 18.187 18.692 18.506 16.180 14.036 14.395 14.460 15.890 16.134 14.493 12.585 11.103 9.349 8.604 8.012 6.999 6.689 6.742 8.587 10.288 9.745 10.312 9.250 6.580 6.299 5.789 - 16.184 16.383 16.034 16.136 16.452 18.629 19.461 18.365 18.256 18.212 17.369 18.538 18.329 17.094 15.143 15.044 15.390 16.769 15.970 14.025 11.925 10.239 9.050 8.872 8.456 7.556 7.427 7.570 9.204 11.148 11.184 10.905 8.534 7.287 7.112 6.984 - 16.292 16.405 16.212 16.228 16.674 18.785 19.372 18.532 18.356 18.041 16.933 17.989 18.912 18.239 15.819 15.775 16.073 17.363 15.893 14.488 12.690 11.389 10.124 9.380 9.222 8.466 8.359 8.154 8.859 10.794 11.055 11.839 10.308 7.946 7.903 7.686 - 16.182 16.372 16.324 16.238 16.790 18.934 19.368 18.628 18.363 17.895 16.879 16.442 19.109 18.915 16.950 16.652 16.726 18.012 16.570 14.814 12.887 11.404 10.272 9.234 8.964 6.949 7.025 7.073 7.872 9.544 9.858 11.395 10.027 6.667 6.398 5.427 - 16.102 16.248 16.290 16.165 16.698 18.945 19.230 18.295 18.004 17.647 16.634 15.218 18.248 18.063 18.171 16.729 16.334 17.776 16.785 14.783 12.924 11.350 10.179 9.199 8.943 8.197 7.916 7.726 8.240 9.434 9.479 11.410 10.925 7.856 7.602 6.806 - 15.933 16.114 16.142 16.128 16.905 18.806 18.736 17.551 17.288 16.994 15.742 14.912 16.682 17.216 18.201 18.144 16.806 17.869 17.332 15.489 13.260 11.903 10.416 9.329 9.035 8.509 8.708 8.432 8.825 10.144 10.070 10.403 9.972 8.741 7.587 7.321 - 15.794 15.868 15.671 16.042 16.879 18.125 17.861 15.715 15.986 15.938 14.376 14.029 15.191 15.078 18.151 17.912 17.567 17.889 17.889 15.774 12.951 11.510 9.506 9.044 8.128 8.222 9.450 9.387 8.951 11.164 9.905 8.684 8.965 7.991 6.527 5.962 - 14.950 14.988 14.026 15.756 16.797 16.286 15.524 14.404 14.295 14.059 12.545 13.226 12.816 13.902 15.571 16.949 17.243 17.226 17.719 16.553 12.967 11.395 9.271 8.174 7.668 8.358 9.284 9.298 9.503 11.698 9.682 8.874 8.645 8.502 9.053 7.333 - 13.955 13.461 13.833 14.473 15.049 13.013 13.346 13.326 12.771 12.771 11.692 11.430 11.624 11.828 12.652 14.009 16.630 16.561 16.668 15.747 12.317 10.270 8.763 8.466 7.420 8.071 8.992 9.078 9.314 11.138 8.704 8.249 8.384 9.068 8.388 6.143 - 13.379 13.049 13.465 13.022 13.060 11.711 10.783 10.590 9.855 9.405 10.009 9.922 9.731 9.436 9.855 10.920 13.406 15.198 15.599 15.872 14.068 10.177 7.950 8.313 7.770 8.653 9.072 8.495 8.657 9.849 8.030 7.327 7.876 9.186 7.350 5.611 - 13.183 12.948 13.396 12.832 12.776 12.531 12.016 11.001 9.570 9.449 8.928 9.058 8.501 8.935 8.328 10.470 11.693 12.707 15.807 16.861 14.726 10.726 8.536 8.680 7.865 7.990 8.258 7.558 9.426 10.060 8.439 8.056 8.422 9.110 7.165 5.759 - 13.922 13.187 13.897 13.836 14.689 13.488 12.391 11.829 10.617 10.013 9.934 10.863 11.809 11.570 11.060 11.968 11.866 13.568 15.938 17.195 16.642 15.093 12.286 11.445 9.704 9.458 9.752 10.046 12.137 12.857 11.600 11.205 11.332 10.518 9.364 8.443 - 14.912 14.888 14.883 15.782 16.967 16.685 15.132 14.034 13.479 13.071 10.404 12.344 12.739 12.515 11.785 12.956 14.020 15.385 17.458 18.481 18.223 17.615 13.704 12.019 10.343 10.299 10.771 11.555 13.978 14.952 13.348 13.542 13.831 12.605 9.609 8.748 - 15.191 15.339 14.764 14.261 16.245 17.074 17.387 16.639 15.256 14.820 12.679 13.205 12.898 12.639 13.010 13.134 14.642 15.963 18.122 18.528 18.031 17.347 15.281 11.840 10.849 11.134 12.114 11.944 13.851 14.698 12.868 12.828 13.539 12.726 8.893 7.850 - 15.080 15.287 14.654 14.564 15.164 17.004 17.767 15.979 15.594 15.185 13.491 12.635 13.038 12.607 13.113 13.291 14.761 16.695 18.431 18.161 17.430 16.191 13.413 10.691 9.630 10.742 11.583 10.195 11.825 12.969 11.356 10.930 11.966 11.348 7.957 6.274 - 14.388 13.988 12.687 12.593 13.538 15.228 15.580 15.087 13.396 12.771 12.076 11.885 9.551 9.602 10.795 11.247 12.677 14.979 16.251 15.508 14.605 13.258 10.670 10.099 11.719 12.367 10.400 8.666 9.288 10.650 10.536 9.328 9.343 10.278 8.283 5.784 - 14.293 14.041 13.139 12.811 13.193 14.099 14.064 12.160 11.778 10.985 10.920 11.543 9.896 8.916 9.943 11.164 13.583 15.554 14.198 12.001 10.458 9.252 10.351 10.814 11.758 13.121 11.942 8.591 6.692 7.559 8.339 8.770 9.941 9.598 8.451 6.939 - 14.257 13.759 13.185 12.636 12.756 14.277 13.855 11.807 11.872 10.583 11.402 11.823 9.574 9.085 10.384 12.646 13.828 15.539 13.521 10.573 9.438 9.576 10.386 10.596 11.259 12.631 12.035 8.602 6.948 6.974 7.952 8.303 9.933 10.486 8.735 6.733 - 14.205 13.589 13.192 12.266 12.132 14.119 13.300 12.512 12.080 10.850 11.774 11.957 9.921 10.540 11.157 12.833 13.251 14.109 11.931 10.560 10.617 10.236 10.492 10.651 11.157 12.419 12.684 8.149 6.724 6.783 6.799 7.243 9.486 10.140 8.279 6.900 - 14.209 13.491 13.190 11.926 12.037 14.163 13.538 12.666 12.220 10.446 11.940 11.807 10.849 11.401 11.384 11.818 12.330 12.104 10.444 10.897 10.661 10.585 11.075 11.148 11.412 12.802 12.723 8.792 7.260 7.411 6.630 8.160 10.011 9.582 7.352 6.710 - 14.309 13.676 13.477 12.566 12.309 14.204 13.831 12.857 12.956 12.572 11.878 11.958 12.458 12.811 12.369 12.282 12.280 12.475 12.063 11.712 11.004 10.881 11.211 11.357 11.485 13.018 12.832 9.421 8.432 7.694 8.715 9.604 11.750 10.706 9.410 8.666 - 14.716 14.328 13.540 12.846 12.513 14.950 14.718 13.471 14.056 13.296 12.866 13.120 13.881 13.773 13.258 12.917 13.134 13.734 13.889 12.771 12.071 10.931 10.907 11.068 11.056 12.182 11.711 9.028 8.639 6.750 9.185 10.039 10.009 9.575 8.689 7.801 - 14.785 14.368 14.084 13.024 13.315 14.920 14.694 14.556 14.706 13.859 13.581 14.286 13.286 12.508 12.677 12.243 12.556 12.450 12.858 13.310 13.621 12.102 10.757 11.262 11.654 12.518 11.507 8.875 9.149 8.484 8.450 8.476 8.184 8.476 8.093 8.879 - 13.906 13.627 13.565 12.183 12.203 13.632 14.170 14.569 14.092 12.660 12.789 13.646 12.572 10.823 10.895 11.421 12.004 11.884 12.218 12.721 12.768 12.570 13.174 13.153 13.496 14.035 12.403 9.538 9.830 9.896 10.319 10.237 8.987 9.483 8.870 8.730 - 13.669 13.375 13.369 11.997 12.118 13.434 14.625 15.056 14.757 12.387 12.166 13.470 11.950 10.354 10.537 11.410 11.801 12.419 12.152 12.841 13.132 12.519 12.837 12.551 12.752 13.265 11.133 8.874 10.421 9.925 9.159 9.914 8.690 8.909 9.142 8.902 - 13.718 13.178 13.379 11.629 12.525 13.674 14.773 15.717 16.288 14.749 12.923 13.709 11.822 11.094 10.664 11.478 11.718 12.117 11.751 12.323 12.440 12.260 12.715 12.128 11.754 12.057 9.926 8.093 8.465 7.873 6.271 6.520 6.269 6.127 7.202 7.677 - 13.703 12.889 13.390 11.708 12.962 13.903 15.028 16.353 16.773 15.896 14.438 14.735 12.860 11.812 11.349 11.801 11.831 12.102 11.941 12.605 12.623 12.418 12.624 12.009 11.138 10.711 9.542 6.897 5.113 4.798 4.748 5.979 5.349 5.408 5.522 6.578 - 13.511 12.732 13.059 11.063 12.595 13.599 14.951 16.512 16.491 16.449 15.717 14.787 13.031 11.630 11.201 11.563 11.821 12.063 11.832 12.510 12.670 12.370 12.828 12.095 11.159 10.510 9.933 6.543 5.128 3.999 4.844 5.986 5.898 5.708 4.942 6.276 - 13.307 13.093 12.995 11.147 11.968 13.140 14.428 15.893 15.295 14.708 15.859 15.614 13.006 11.658 11.284 11.812 12.025 12.176 12.140 12.689 12.917 12.683 13.156 12.268 11.610 10.984 10.036 6.918 5.146 5.211 4.861 5.776 5.653 5.525 5.268 6.635 - 13.402 13.314 13.172 11.648 12.144 13.204 14.412 16.003 15.493 14.802 15.788 16.486 14.020 11.760 11.102 11.844 12.219 12.474 12.361 12.976 13.269 12.987 13.278 12.585 11.955 11.444 9.961 8.022 5.347 5.412 4.878 5.232 4.805 4.835 4.575 4.706 - 13.485 13.185 13.079 11.722 12.308 13.293 14.153 15.841 15.044 14.363 15.666 16.309 13.386 12.425 11.309 11.853 12.098 12.573 12.513 13.137 13.624 13.372 13.296 12.017 10.773 9.903 8.782 7.038 5.781 5.416 5.034 4.948 5.497 5.151 4.591 5.376 - 13.609 12.877 12.860 11.216 12.246 13.354 14.489 16.177 15.879 15.474 16.067 15.892 15.283 15.250 13.683 11.524 11.619 11.620 11.793 12.385 13.614 13.961 14.133 13.526 11.870 10.081 8.658 8.678 10.784 11.968 11.376 10.228 9.691 9.723 10.169 9.301 - 13.359 13.108 12.477 12.358 11.862 13.234 14.372 16.617 16.573 15.909 15.758 14.746 15.939 15.495 14.632 12.916 12.639 11.753 12.098 12.198 13.056 13.374 14.054 13.340 11.688 9.741 9.414 9.578 10.927 12.056 11.377 10.748 10.400 10.348 10.295 9.173 - 11.027 11.057 12.634 12.609 12.438 14.675 15.928 16.036 15.008 15.242 14.637 14.149 15.036 15.480 14.103 12.831 12.475 12.384 11.868 10.985 10.550 10.595 11.463 11.221 10.729 9.005 9.013 9.121 9.724 11.290 12.037 10.735 10.024 10.005 9.568 7.983 - 11.686 11.283 11.648 10.210 11.078 12.203 12.752 12.239 11.344 10.264 10.763 10.223 11.289 11.502 11.037 10.235 9.665 10.391 9.675 9.410 9.669 9.033 8.839 9.307 9.111 7.100 6.271 6.186 7.081 7.857 9.091 7.949 8.043 8.748 8.801 6.493 - 9.954 11.077 10.348 10.370 9.585 10.097 10.214 10.772 10.686 9.478 9.700 9.714 9.130 10.125 9.869 9.848 9.777 10.973 10.925 10.326 9.911 10.044 9.667 9.441 9.324 8.837 7.655 7.828 8.389 8.300 7.816 8.980 9.518 10.562 10.966 9.659 - 8.738 8.001 9.517 9.914 9.517 11.007 11.362 11.631 11.435 9.991 9.955 10.987 11.502 11.993 11.747 10.937 11.367 12.884 13.091 12.467 11.094 11.532 12.024 10.985 10.176 9.697 9.619 9.017 9.041 9.913 10.102 11.366 11.478 11.402 11.477 11.622 - 8.063 6.892 7.167 8.639 8.316 8.527 9.354 8.850 9.318 8.706 7.988 8.389 7.709 8.328 8.713 8.778 9.420 9.941 9.358 9.435 8.256 8.893 9.477 9.756 10.261 10.135 10.476 9.384 10.912 10.977 11.556 11.431 11.538 12.652 13.180 13.651 - 6.024 8.051 8.669 8.535 8.020 7.675 8.450 8.461 7.219 7.394 7.095 7.069 7.411 7.366 8.284 8.480 9.233 10.090 9.653 10.281 10.476 9.506 9.699 9.770 10.550 10.465 11.285 11.047 11.930 13.328 13.873 13.114 14.141 15.169 15.425 15.036 - 8.806 8.477 8.797 8.300 7.087 6.645 9.152 9.603 8.498 8.062 7.163 7.454 8.118 8.927 9.147 8.698 8.829 9.653 10.194 10.097 10.584 9.224 9.502 9.732 10.631 11.344 10.316 10.619 10.636 12.949 13.975 13.438 15.006 15.887 15.849 15.835 - 7.743 7.000 7.049 6.447 6.836 5.750 6.712 7.782 8.027 7.873 8.300 9.360 8.358 7.968 7.261 7.339 9.025 9.370 9.460 10.594 10.016 8.604 10.262 10.242 10.086 11.550 11.045 10.489 10.335 11.551 13.551 13.518 13.501 15.121 15.684 14.825 - 3.999 4.354 5.037 6.499 6.040 5.835 6.668 8.105 7.865 7.570 8.316 7.423 5.535 6.703 5.642 6.374 6.588 8.127 8.211 8.648 8.451 8.069 8.078 6.836 6.900 7.725 8.939 8.774 8.879 9.622 11.198 12.312 12.944 13.896 13.519 12.878 - 6.567 7.056 6.471 6.286 6.453 5.611 5.506 7.646 7.290 6.486 5.960 5.682 3.747 5.461 4.831 4.839 4.834 5.725 5.569 5.039 5.946 6.916 7.424 6.795 7.243 7.073 6.670 6.870 7.316 8.265 8.110 9.358 9.201 10.758 10.508 10.036 - 7.802 6.134 6.560 5.438 5.997 6.135 6.094 8.094 7.182 6.093 5.208 5.574 4.694 5.613 5.371 5.850 5.509 5.244 5.932 6.004 5.674 5.317 6.268 6.337 6.388 5.401 5.844 5.977 6.580 6.169 6.020 6.108 6.776 7.549 8.316 7.397 - 6.743 6.523 6.247 6.356 5.669 6.620 6.969 7.172 4.397 5.048 5.485 5.701 4.711 5.826 6.132 6.431 6.668 6.547 7.186 7.008 6.241 5.840 6.278 5.959 6.622 6.313 6.133 5.541 5.843 6.271 7.010 7.252 8.537 8.637 8.582 7.858 - 5.667 7.377 7.349 8.214 8.542 8.204 7.744 8.292 8.219 8.396 8.901 9.145 8.974 8.799 9.388 9.168 8.282 9.116 11.026 10.678 10.590 10.734 10.080 9.998 9.930 9.341 10.103 10.047 9.641 10.358 11.152 11.460 13.853 13.781 12.101 10.688 - 7.386 8.569 8.410 8.906 10.803 11.404 10.461 9.837 9.570 9.620 10.395 10.504 9.437 9.675 10.847 10.582 8.960 11.023 12.490 11.511 11.738 12.376 11.074 11.025 10.577 11.698 11.635 10.927 11.243 12.782 14.128 13.256 15.092 14.839 13.761 13.715 - 11.165 8.869 7.895 8.658 9.448 11.292 10.705 10.789 10.457 9.705 10.391 8.827 8.973 7.734 9.279 9.561 10.288 11.158 12.483 11.553 11.366 10.903 8.743 10.050 10.720 12.942 12.348 10.626 11.374 14.356 14.369 12.552 11.604 12.369 14.012 13.935 - 13.267 13.044 13.197 13.019 14.089 14.465 14.313 14.503 13.035 13.100 12.459 12.383 12.285 11.899 12.080 12.791 13.610 14.147 13.767 13.169 12.682 11.967 11.570 11.262 12.363 12.718 11.352 9.164 10.786 12.914 11.867 9.744 9.083 9.575 10.189 9.786 - 13.311 13.610 12.575 12.697 14.457 14.900 15.505 13.866 13.085 12.625 13.096 12.255 12.093 12.229 12.607 12.988 14.082 14.101 13.655 13.147 12.620 11.997 12.032 12.007 12.470 12.091 11.138 9.616 8.781 7.409 7.836 7.924 7.543 7.391 7.603 6.602 - 13.200 12.375 11.460 12.254 13.019 13.619 13.678 12.846 11.875 11.868 11.600 11.283 10.906 11.284 12.244 12.970 12.825 12.193 12.050 11.959 11.743 11.320 12.212 12.130 10.591 10.448 10.732 9.702 7.219 6.959 7.272 7.150 7.273 7.103 7.621 7.029 - 12.808 12.577 11.937 11.542 12.165 11.780 10.678 10.463 8.993 9.645 9.486 9.506 7.805 8.468 11.039 10.763 10.170 10.099 10.364 10.515 10.511 10.883 12.298 12.018 8.455 9.031 10.279 10.090 6.659 6.592 6.309 6.860 8.823 8.090 7.388 6.898 - 13.114 12.623 12.125 11.727 11.852 11.897 11.724 11.067 8.996 8.692 8.999 8.563 6.916 8.677 11.272 10.967 10.513 10.733 10.735 10.867 10.909 11.008 12.369 12.056 8.645 9.195 10.356 9.996 6.982 6.962 5.394 7.524 9.086 8.360 7.095 5.766 - 12.846 12.369 12.094 11.994 11.956 12.224 11.764 10.731 8.934 8.727 9.308 8.348 7.191 8.766 11.396 11.191 10.809 11.190 10.900 11.081 11.155 11.268 12.445 11.976 8.293 8.220 9.956 10.209 6.839 6.454 5.218 7.145 7.622 6.822 6.101 6.917 - 12.942 12.176 12.093 11.970 12.226 12.292 11.237 10.277 9.266 9.267 9.727 8.556 7.749 9.095 10.935 11.685 10.737 10.523 10.573 11.015 11.337 11.578 12.361 11.259 7.811 7.435 8.779 9.484 6.941 6.402 5.547 6.134 6.528 6.678 6.448 6.178 - 13.046 12.453 12.475 11.969 12.866 14.112 14.008 12.995 11.971 12.030 11.777 11.029 10.289 11.282 12.269 13.432 14.437 15.063 14.031 12.943 12.373 12.420 12.702 12.177 9.589 8.508 8.173 8.793 8.903 8.397 8.367 8.176 8.243 7.265 8.465 8.122 - 13.336 12.682 12.808 11.967 13.744 14.404 15.506 14.992 13.382 12.439 12.855 11.848 11.243 11.507 11.880 12.605 13.911 15.268 16.618 16.100 14.927 13.433 13.015 12.966 13.034 11.508 9.959 9.340 10.006 9.823 8.673 9.060 8.251 6.318 7.168 6.411 - 13.349 12.460 12.821 12.245 13.462 14.581 16.060 15.703 14.357 12.365 12.763 11.947 11.122 11.363 11.514 11.952 12.570 13.225 15.766 16.846 16.390 14.118 13.031 13.099 13.868 12.356 10.568 9.299 10.530 10.503 9.249 10.778 10.137 7.511 8.237 8.294 - 13.326 12.642 12.893 12.623 13.457 15.085 16.144 15.868 14.372 12.948 12.586 12.058 11.330 11.310 11.585 11.741 12.112 12.543 13.820 15.924 17.395 15.516 13.444 13.170 14.032 13.333 11.114 9.287 11.384 11.269 9.303 12.558 11.902 8.365 9.144 9.606 - 13.311 12.967 13.015 12.882 13.988 15.654 16.105 15.488 14.048 12.827 12.717 11.885 11.507 11.471 11.776 11.787 12.119 12.378 13.078 14.769 16.494 16.208 13.902 12.968 13.395 13.822 11.844 8.997 11.177 11.090 8.608 12.124 12.136 8.969 9.123 9.673 - 13.451 13.000 12.733 13.371 14.276 15.360 15.203 13.725 12.507 12.342 11.968 10.632 10.974 10.685 11.014 10.594 10.425 11.067 12.179 13.481 15.014 15.444 13.325 12.394 13.358 14.086 12.525 10.513 12.000 11.756 9.852 13.059 13.052 9.904 10.046 9.823 - 12.755 10.493 11.964 12.423 13.122 15.362 14.514 12.294 12.315 10.399 11.016 9.710 10.027 9.231 9.025 9.070 8.952 8.862 10.052 11.273 12.816 13.980 12.858 10.591 11.869 12.888 11.946 10.338 11.779 11.372 8.901 12.289 12.109 9.083 9.637 9.265 - 11.065 10.923 11.352 12.164 12.930 13.740 12.598 10.923 10.695 9.831 9.741 10.067 10.181 9.623 9.795 9.899 9.893 10.318 10.387 11.283 11.037 11.993 12.630 11.460 12.118 12.381 11.531 9.650 10.517 9.896 9.475 9.629 9.040 8.570 9.428 9.321 - 8.509 8.085 8.397 9.238 9.007 9.812 9.123 9.104 8.890 8.638 7.742 8.155 8.163 7.938 8.003 8.261 8.378 8.551 8.919 9.369 9.833 9.608 10.404 10.128 10.165 10.795 9.597 7.061 7.109 7.888 7.606 7.047 6.627 7.062 7.579 7.718 - 6.817 5.597 5.737 6.873 8.895 8.825 7.327 7.460 7.243 7.393 6.041 3.309 4.107 4.121 4.636 6.307 6.655 5.529 6.448 7.231 7.582 7.005 6.457 6.106 5.971 6.834 5.874 5.548 6.553 6.178 5.905 6.644 6.391 6.962 6.659 5.253 - 6.880 6.373 6.642 7.131 5.982 8.462 9.241 7.962 7.214 6.525 6.790 5.822 5.724 6.132 6.550 6.409 7.260 7.325 7.954 8.485 8.445 8.462 8.483 8.884 9.074 8.946 8.018 6.887 6.427 7.133 7.883 8.043 8.127 8.021 7.942 7.636 - 8.574 8.305 8.263 9.746 9.448 10.259 10.456 10.025 9.772 8.822 8.793 9.894 10.299 10.230 10.905 10.992 11.604 12.642 12.259 12.026 13.475 12.890 12.837 13.618 13.319 13.706 13.660 10.822 11.141 11.651 11.467 12.316 12.192 12.037 12.000 11.839 - 9.528 9.499 8.544 11.481 11.977 12.237 12.394 11.449 9.911 9.023 10.365 10.392 10.059 10.788 11.406 12.319 11.413 12.279 12.428 12.222 12.660 11.134 12.612 12.696 12.705 13.633 13.684 11.318 11.063 11.319 11.203 12.918 12.176 12.074 11.421 11.620 - 12.392 12.747 12.189 13.940 14.843 15.301 13.931 12.259 11.962 11.022 10.122 9.659 9.625 8.757 9.115 9.311 9.518 9.997 10.633 11.262 12.883 13.867 12.935 11.661 11.370 12.476 11.924 9.525 10.367 10.004 12.072 12.673 10.857 9.974 9.073 9.253 - 13.332 13.491 13.858 14.139 15.656 17.169 16.456 15.007 13.570 13.195 12.332 11.819 11.443 11.117 11.269 11.292 11.423 11.774 12.451 13.507 14.944 14.203 12.171 11.260 11.495 12.497 11.061 9.569 10.787 12.745 14.716 14.644 13.636 10.981 8.365 7.781 - 12.987 13.188 13.493 13.487 15.071 17.047 16.343 16.293 14.580 13.605 12.713 12.290 12.304 12.044 12.021 12.201 12.485 13.326 14.718 16.228 16.123 14.464 12.553 11.142 11.279 11.635 9.646 7.654 8.843 10.592 12.981 12.910 11.646 9.743 8.686 7.611 - 12.335 12.641 12.712 12.859 14.304 16.105 17.083 15.517 14.080 13.647 12.477 11.366 11.824 11.222 11.379 11.537 11.963 12.934 14.362 16.387 15.268 12.888 11.866 11.583 11.696 10.665 9.651 9.717 8.795 9.202 11.102 12.300 11.037 9.925 9.546 7.374 - 10.852 11.561 11.759 11.891 14.371 16.036 15.950 13.950 12.746 12.327 11.441 10.614 10.800 10.291 10.427 10.593 11.245 12.800 14.759 14.147 10.610 9.930 10.755 11.312 11.034 9.795 8.611 9.048 8.350 8.111 10.659 12.563 11.295 10.137 9.463 7.291 - 11.789 11.881 11.560 11.955 11.978 11.693 11.701 10.502 10.173 8.955 9.129 8.967 8.624 8.412 8.562 7.834 8.756 10.304 9.287 8.778 8.223 8.773 9.420 8.774 7.554 7.353 7.555 7.043 6.750 7.373 7.507 7.882 8.276 7.902 7.838 7.454 - 11.269 10.768 8.989 10.914 10.704 10.304 10.111 9.529 8.780 8.728 7.577 7.581 8.151 7.555 6.674 6.917 7.657 7.685 7.689 9.372 9.246 9.494 9.575 8.921 7.961 7.545 7.299 8.244 9.066 8.910 9.687 10.011 9.406 7.442 8.568 7.784 - 9.923 8.424 8.037 9.402 11.404 11.439 11.117 11.640 11.885 11.026 11.873 11.057 10.913 11.698 10.834 11.170 9.515 10.645 13.429 14.227 14.623 14.195 13.624 12.421 11.038 10.030 9.970 10.531 10.551 11.796 11.449 12.097 11.236 10.656 10.439 9.635 - 11.700 11.865 11.406 12.507 12.484 12.899 12.338 13.281 12.003 11.732 11.771 11.957 11.441 11.301 10.611 10.234 12.338 12.364 14.450 14.592 15.110 14.907 14.209 12.232 11.103 10.812 11.752 10.553 10.789 11.394 12.085 12.970 12.121 11.206 10.602 9.905 - 14.366 13.848 12.253 10.927 11.536 11.482 11.513 11.543 11.076 11.064 12.669 13.432 11.993 12.117 11.591 12.505 14.181 14.661 14.683 13.913 13.470 13.094 12.357 10.432 9.687 9.978 9.541 10.191 10.470 11.433 11.365 10.972 10.651 11.180 10.029 7.972 - 11.780 12.569 11.931 9.495 8.784 9.103 10.566 10.952 10.213 11.334 12.806 13.685 14.522 13.724 13.396 13.007 13.974 14.925 14.072 13.078 12.705 13.717 13.037 11.822 12.361 12.516 11.340 12.013 13.853 13.530 12.126 11.666 12.237 13.390 13.450 10.972 - 12.379 11.445 9.940 10.431 9.757 9.362 11.110 10.747 9.546 9.322 12.753 14.260 13.855 12.895 13.541 12.851 12.644 12.830 12.168 11.641 11.821 13.768 14.280 11.876 10.535 10.990 10.068 9.632 12.642 12.778 12.405 11.680 11.084 11.312 11.864 11.632 - 14.948 14.552 14.330 13.875 12.961 11.908 11.535 11.303 10.390 10.731 14.023 14.426 13.358 12.186 13.200 12.675 11.257 12.656 12.226 12.383 11.669 12.642 13.209 11.674 10.983 10.679 10.974 9.939 10.268 10.750 11.882 12.863 10.685 8.724 10.181 10.558 - 14.882 14.283 13.077 12.700 11.112 10.398 10.547 10.584 11.518 10.986 11.445 12.359 13.298 13.093 13.250 13.416 12.891 14.197 12.552 11.731 11.384 13.931 15.017 13.541 11.768 9.354 10.687 10.954 13.024 14.916 13.977 12.537 10.704 10.450 10.342 10.299 - 11.702 11.635 10.186 8.978 10.007 10.865 10.191 11.493 11.461 12.132 12.231 12.918 14.104 13.913 13.605 13.734 12.593 13.596 12.745 11.185 12.103 15.319 15.718 14.390 12.666 10.275 10.661 13.038 15.474 15.626 14.563 13.695 10.466 9.989 10.617 10.736 - 11.858 11.961 11.231 11.328 9.828 9.857 9.268 10.080 11.259 11.807 12.349 11.968 12.369 13.491 13.555 12.800 11.847 12.288 11.379 10.309 11.712 13.460 14.662 13.291 10.866 10.914 9.587 11.458 13.931 14.119 13.961 12.767 11.175 10.668 9.961 9.418 - 12.307 12.304 13.443 13.194 11.166 11.078 10.304 9.765 11.968 13.094 14.086 13.743 13.698 13.373 13.650 12.627 11.506 11.681 10.803 10.475 11.116 12.473 13.278 10.416 9.904 10.085 9.406 9.801 10.203 11.243 13.747 12.520 10.816 9.902 8.048 8.374 - 14.115 13.751 13.921 13.752 12.694 13.001 13.850 14.061 14.245 13.897 14.698 13.736 12.820 13.782 13.041 12.679 11.166 11.468 10.582 9.239 10.717 11.978 12.542 10.233 9.801 9.568 9.611 8.494 8.539 9.854 11.254 11.008 8.985 9.031 7.613 7.164 - 13.659 13.014 12.682 13.653 13.859 14.689 15.690 16.465 16.887 16.351 16.706 16.668 16.825 16.608 15.210 13.283 12.199 11.891 11.581 10.901 10.368 10.904 10.208 8.947 8.351 8.502 7.570 7.537 9.014 10.431 9.308 8.428 9.040 7.934 6.785 6.027 - 13.246 12.734 12.613 13.522 14.261 14.720 15.877 17.122 17.328 17.271 16.592 15.605 17.247 17.403 16.199 14.524 13.739 13.276 13.562 13.963 14.795 14.222 11.239 8.821 5.922 6.243 5.719 6.573 8.710 10.937 10.016 8.185 8.019 7.534 6.071 3.416 - 12.966 12.359 12.150 13.400 14.091 14.247 15.656 17.350 17.651 16.851 15.278 15.618 17.051 17.745 16.972 14.544 13.958 13.219 13.217 13.805 14.886 13.726 10.546 8.789 7.630 5.876 6.049 6.294 8.737 10.893 10.278 8.486 7.710 6.891 5.814 4.017 - 12.747 11.903 12.292 13.233 13.783 14.266 15.874 17.502 17.946 16.687 15.000 15.761 16.522 17.973 17.287 14.830 14.211 13.729 13.546 14.430 15.012 11.946 9.978 8.676 7.882 6.712 6.522 6.797 8.677 11.492 10.877 8.860 8.292 7.189 5.920 5.566 - 12.605 12.257 12.750 13.316 13.977 14.595 16.254 17.490 17.768 16.459 15.141 15.885 16.258 17.513 17.701 16.038 15.093 14.619 15.102 15.658 14.104 11.841 10.260 9.025 7.914 6.875 6.814 6.972 8.602 11.591 11.818 9.299 7.154 6.454 5.888 6.442 - 12.762 12.417 12.699 13.425 14.044 14.616 16.504 17.247 17.586 16.158 15.191 15.865 16.049 17.209 17.879 16.608 15.748 15.677 16.514 15.688 13.085 10.562 9.348 8.610 7.809 6.746 5.815 5.298 7.247 10.024 11.343 9.523 6.948 5.523 5.129 6.349 - 12.439 11.863 11.924 13.197 13.701 14.138 16.354 16.827 17.231 15.221 14.164 15.557 15.344 16.741 17.356 16.998 15.323 15.168 15.786 15.024 11.569 9.848 8.802 7.758 6.996 6.303 5.642 5.953 6.192 8.745 10.867 9.242 6.312 6.083 5.390 4.513 - 12.156 10.983 11.876 12.805 13.303 13.790 16.476 17.303 17.047 15.090 13.959 15.146 14.872 16.348 17.184 16.794 15.433 16.126 15.926 13.931 11.282 9.709 8.587 7.251 6.982 6.490 5.860 7.144 7.246 8.923 11.094 9.848 7.429 7.473 7.069 6.347 - 11.969 11.678 12.397 12.973 13.686 14.653 16.850 17.542 17.019 15.339 13.970 14.980 14.994 16.092 17.207 17.255 16.087 17.020 16.703 13.850 11.249 9.526 7.915 7.217 7.191 7.113 6.782 6.551 7.570 9.671 11.899 10.346 6.709 6.275 6.283 6.409 - 12.209 11.711 12.156 13.066 13.820 14.745 16.844 16.975 16.706 15.366 13.831 15.004 14.950 15.955 17.238 17.834 16.876 17.094 16.474 14.026 11.479 9.586 8.435 7.890 7.457 7.300 6.917 7.058 8.370 9.975 11.553 8.905 6.802 6.641 6.416 6.385 - 12.213 11.167 11.592 12.839 13.578 14.387 16.580 16.679 16.297 15.212 13.350 14.670 14.357 15.350 16.350 17.691 16.882 16.816 16.390 13.829 11.596 9.686 8.652 7.750 7.612 6.581 6.255 6.527 7.238 9.184 11.190 8.515 6.327 6.419 5.478 5.562 - 11.797 10.739 11.620 12.396 13.266 14.328 16.638 16.949 15.806 14.793 13.056 14.088 13.869 14.723 16.152 17.693 17.032 17.195 16.737 13.899 11.854 9.557 8.260 7.121 7.401 6.795 5.663 5.896 6.679 8.800 10.211 6.939 5.718 5.351 4.961 5.376 - 11.792 11.224 12.037 12.609 13.784 15.127 16.912 16.824 15.540 14.862 13.728 13.998 14.126 14.730 15.988 17.566 18.094 17.893 17.476 14.895 12.535 10.424 9.191 8.488 8.027 7.832 7.434 7.168 7.076 8.606 9.959 7.518 6.567 6.267 6.257 6.321 - 11.822 11.367 11.977 12.916 13.971 15.267 16.843 16.208 15.467 14.967 13.464 13.867 13.517 14.365 15.411 16.702 18.068 17.983 17.692 15.343 12.777 10.510 9.424 8.841 8.306 7.780 7.796 7.646 7.794 10.039 10.863 8.631 6.884 6.729 6.835 6.626 - 11.791 10.825 11.507 12.808 13.493 14.717 16.410 15.931 14.648 14.527 12.757 13.251 12.906 13.935 14.239 15.455 17.631 17.249 17.690 15.940 13.472 10.400 9.243 8.278 7.264 6.732 7.753 8.618 9.615 9.873 10.472 8.413 6.619 7.147 6.718 5.760 - 11.651 10.385 11.757 12.416 13.512 15.374 16.273 15.915 13.631 13.901 12.550 12.685 12.698 13.235 13.740 15.195 17.310 17.444 17.520 16.392 13.629 11.013 9.124 7.967 7.966 7.452 7.485 8.524 10.513 10.375 10.286 8.770 7.531 7.819 6.777 5.757 - 11.930 11.183 12.346 12.907 14.397 15.923 16.343 15.704 13.735 13.849 13.034 12.935 12.958 13.395 13.982 15.208 16.745 17.849 17.932 16.743 14.409 11.546 9.363 8.484 8.603 8.131 7.980 8.609 11.882 12.429 10.893 8.584 7.742 7.529 6.860 6.590 - 12.135 11.488 12.181 13.510 14.542 15.861 15.583 15.130 13.548 13.810 12.797 12.798 12.858 13.128 13.691 14.728 15.905 17.757 18.033 17.309 14.709 11.878 10.017 9.043 7.985 8.695 8.961 9.525 12.774 13.236 11.234 8.751 7.697 7.845 6.725 5.987 - 12.146 11.291 11.615 13.454 14.441 15.588 15.086 13.725 12.957 13.318 11.613 12.214 11.984 12.336 12.528 13.765 14.849 17.059 18.092 17.350 15.428 12.860 10.030 8.943 8.679 9.501 9.894 9.358 12.331 12.254 10.078 8.804 8.000 7.693 7.745 6.850 - 11.785 10.508 11.931 12.942 14.878 15.663 14.741 13.173 12.551 12.929 11.016 11.815 11.320 11.930 12.127 13.173 14.144 16.619 18.059 16.953 16.162 13.165 10.625 8.575 8.743 8.347 9.583 10.053 12.234 11.786 9.682 8.108 8.023 8.649 8.261 7.368 - 11.790 11.065 12.554 14.023 14.317 14.260 13.944 12.424 11.931 12.058 11.047 11.187 10.935 11.578 11.681 12.493 13.259 15.400 17.425 16.701 16.159 13.371 9.930 8.931 8.892 8.875 8.957 10.498 12.061 11.155 10.490 8.629 9.264 8.987 7.434 6.377 - 9.756 10.751 11.465 9.954 10.206 11.020 9.591 9.064 9.122 7.827 7.973 7.966 8.472 8.958 9.197 9.547 10.168 11.923 14.866 15.333 14.092 12.340 9.317 7.908 6.894 6.535 7.543 8.042 9.009 7.803 8.674 8.835 8.212 7.689 5.921 4.551 - 9.607 10.458 9.717 9.554 8.888 9.084 7.683 7.747 7.611 8.171 8.572 8.140 7.745 8.927 9.335 8.729 9.947 11.299 13.197 13.101 11.968 12.963 12.326 11.000 10.202 9.437 8.935 9.983 10.513 9.782 8.956 9.794 10.340 9.989 9.185 7.524 - 10.543 10.911 9.838 9.055 8.030 8.994 9.019 6.654 6.862 6.655 7.103 8.359 7.345 7.590 7.445 7.484 8.795 9.787 11.360 12.093 11.110 11.431 10.419 8.554 8.018 7.208 7.594 7.948 8.522 8.301 8.486 8.718 8.477 9.233 9.876 8.605 - 9.747 10.938 10.099 7.705 8.652 9.153 8.849 7.136 7.497 6.640 5.930 6.584 6.021 7.668 7.625 7.395 6.508 9.037 10.661 10.980 10.525 8.150 8.781 7.021 7.232 6.418 6.479 7.912 8.303 9.427 10.139 9.627 7.429 8.916 9.709 8.384 - 9.423 10.102 10.028 10.117 9.118 8.783 10.194 10.007 8.209 8.658 9.505 8.631 9.234 9.561 9.058 9.796 10.433 10.585 11.515 12.035 11.946 11.620 11.940 11.274 10.742 10.818 10.685 10.765 10.560 10.131 10.562 11.017 10.298 9.835 9.945 9.117 - 8.716 10.071 10.709 11.662 10.999 11.667 12.393 12.148 12.864 12.733 12.902 13.034 12.806 12.590 10.714 11.734 11.715 12.318 13.017 13.089 14.060 13.198 13.394 12.502 12.382 13.061 13.120 12.474 11.192 11.498 12.840 13.122 11.859 12.192 13.388 12.403 - 10.204 10.496 10.489 12.175 11.986 11.221 12.253 12.242 12.415 12.185 10.786 11.083 9.958 10.239 9.218 9.359 10.205 10.900 12.224 13.255 13.469 12.439 11.666 12.206 12.206 12.258 12.834 12.192 11.087 11.157 12.215 11.621 9.151 11.441 13.082 13.139 - 11.352 11.438 11.852 11.926 9.767 8.058 10.373 10.038 10.278 11.289 11.065 12.505 11.765 10.447 10.280 11.165 10.401 12.083 12.943 15.647 15.721 13.463 11.326 11.884 12.125 12.489 11.775 12.087 11.323 10.839 11.268 11.129 8.965 9.868 12.685 13.244 - 11.436 9.989 10.201 10.395 9.378 9.208 10.951 10.147 10.815 12.050 10.760 11.727 11.617 11.007 10.154 11.299 11.082 12.538 13.773 15.593 16.499 14.843 12.385 12.698 12.838 12.410 10.425 10.194 10.530 10.011 9.747 9.663 8.989 8.891 10.454 11.023 - 11.197 11.960 9.852 8.911 9.442 10.484 10.469 10.903 11.013 11.385 11.458 10.779 12.284 11.823 10.742 11.215 12.571 12.568 13.066 14.654 15.184 14.394 12.598 13.013 13.075 12.565 11.537 10.442 10.148 11.271 11.160 9.886 9.829 9.398 10.131 10.110 - 12.216 11.874 10.160 9.055 8.924 9.251 11.394 12.219 11.819 12.587 12.041 11.024 11.526 11.890 11.895 11.960 11.261 12.158 13.311 16.087 15.958 13.875 12.118 10.899 11.174 11.805 11.304 10.898 10.347 11.096 11.337 9.407 10.356 10.062 9.544 9.952 - 10.311 9.557 8.522 10.273 9.698 8.902 10.197 11.857 11.247 10.479 10.298 11.507 11.837 11.097 10.662 10.789 11.037 12.376 12.830 15.362 14.485 11.948 11.008 10.395 11.263 12.972 13.110 12.588 10.471 10.448 10.547 10.895 11.358 10.645 10.561 9.793 - 10.663 10.134 10.479 9.279 9.434 9.205 8.836 7.881 8.808 10.442 10.705 9.963 8.504 9.585 9.242 9.370 11.120 12.229 12.970 14.469 13.341 12.345 10.547 11.065 11.439 11.841 11.589 11.405 10.837 10.474 10.011 9.953 10.949 10.761 10.329 9.467 - 12.667 12.350 12.093 10.736 9.983 8.771 6.761 6.882 9.232 10.106 10.770 9.800 8.072 8.134 8.514 10.394 11.114 11.180 11.849 13.185 13.556 10.724 9.762 10.127 9.762 10.228 10.812 9.930 9.912 10.601 9.988 9.787 10.106 9.651 9.557 8.741 - 10.048 8.471 9.085 8.197 8.420 8.041 8.275 8.698 8.660 8.058 9.479 10.729 9.539 9.297 9.077 11.740 10.909 9.801 12.160 13.825 13.324 11.767 10.950 11.141 11.317 10.493 10.343 10.527 10.576 10.775 10.170 11.170 10.441 9.911 8.563 8.327 - 10.694 9.183 8.212 8.600 8.642 7.458 5.861 8.161 9.176 8.940 9.402 9.896 9.307 9.956 9.847 11.837 11.288 10.956 13.267 14.592 12.405 11.476 10.867 9.819 11.385 10.743 10.697 11.138 10.503 10.725 9.609 10.809 10.215 9.606 9.955 9.454 - 10.536 9.532 8.900 7.602 7.540 8.163 7.436 8.749 7.866 7.082 7.849 8.676 8.987 8.769 8.132 8.878 10.117 10.546 13.064 13.552 11.493 10.734 10.105 9.771 9.547 10.233 10.079 8.682 8.730 9.803 10.104 10.860 10.770 10.167 10.284 9.486 - 10.740 9.175 7.158 6.687 7.226 8.972 8.544 7.818 7.842 7.360 8.787 8.251 8.180 8.861 8.234 7.987 7.979 9.140 11.474 11.601 11.118 10.559 9.158 8.657 9.122 9.188 9.519 8.945 8.504 9.420 9.746 10.397 10.207 9.576 9.132 8.792 - 11.089 9.723 8.215 7.511 7.587 6.708 5.493 6.214 6.954 7.974 9.620 8.978 8.280 7.904 7.609 8.017 8.531 10.204 12.400 12.821 11.248 9.581 8.716 8.973 8.783 9.375 9.105 7.340 8.136 8.821 9.221 9.027 9.256 10.546 8.640 8.493 - 9.614 9.833 9.516 9.673 8.591 8.969 8.913 8.451 8.525 8.280 9.181 8.314 7.924 7.459 7.183 8.008 9.369 11.915 12.391 11.807 11.431 9.522 9.663 9.238 9.101 9.783 10.083 8.697 6.008 8.969 9.435 8.982 9.776 10.684 9.437 9.167 - 10.220 11.305 11.772 11.018 10.201 10.961 11.835 11.837 10.608 9.339 8.914 8.576 7.361 6.513 6.890 6.352 8.823 10.110 11.330 9.621 9.722 9.279 8.443 7.297 8.696 10.656 11.008 9.020 6.834 8.553 8.473 8.787 10.643 10.343 8.532 7.717 - 5.567 8.144 9.278 8.369 6.789 6.146 9.464 10.057 7.058 5.432 5.516 4.874 4.169 3.906 4.684 4.607 5.137 5.881 6.873 6.770 5.788 4.624 4.246 4.998 5.734 6.970 7.627 5.746 4.617 5.802 5.173 5.148 7.727 6.679 5.107 4.959 - 9.398 9.070 8.500 7.629 7.903 8.723 8.426 6.543 6.735 7.412 7.627 6.344 4.960 5.167 4.709 4.548 4.820 5.742 4.548 6.076 6.089 4.724 5.607 4.773 4.918 4.449 5.207 4.922 4.682 5.526 5.178 5.441 5.460 4.580 4.595 3.378 - 8.427 8.194 6.385 5.021 7.010 8.219 8.103 6.927 6.654 6.653 6.638 6.562 4.946 5.310 4.274 4.349 5.635 5.743 4.889 4.921 3.954 3.628 4.703 4.544 4.665 4.719 5.036 5.195 5.534 6.052 5.407 5.452 6.568 5.518 5.498 4.434 - 6.598 5.775 5.905 5.973 4.054 3.657 5.276 5.137 5.170 4.648 4.900 5.024 5.321 4.513 3.697 4.711 6.083 5.101 4.037 3.322 4.336 4.441 4.911 5.239 4.280 4.353 4.225 4.420 5.670 5.465 5.529 5.449 5.523 4.587 5.160 4.038 - 5.676 5.212 5.921 4.810 4.142 5.266 6.009 6.308 5.149 4.393 4.850 4.592 3.427 4.813 3.955 4.661 5.539 5.850 5.118 3.929 5.336 5.211 4.838 4.793 4.335 4.458 4.535 4.486 4.778 5.013 5.242 4.627 4.524 4.484 4.764 3.942 - 4.808 5.471 5.017 5.152 4.764 3.688 6.060 6.197 4.169 3.414 3.333 3.645 3.551 5.156 4.409 4.511 5.470 4.972 5.291 4.572 4.464 4.409 4.024 4.357 4.038 4.043 4.462 4.393 5.812 5.031 5.133 4.522 4.736 4.685 4.055 3.482 - 6.763 7.158 8.440 8.277 8.689 9.771 10.452 10.828 10.731 10.398 10.277 9.979 9.520 9.723 9.889 10.150 10.412 10.944 11.298 10.827 10.089 9.775 9.822 9.800 9.801 9.904 8.992 7.818 8.038 7.278 6.580 6.089 6.138 5.266 6.522 6.954 - 11.375 10.747 9.764 10.873 11.417 11.108 13.686 14.521 13.682 12.649 13.143 12.162 12.099 11.376 11.990 12.416 13.167 14.747 15.185 13.694 12.747 12.641 12.839 12.548 12.541 13.701 12.430 11.848 11.936 10.453 9.496 8.789 9.393 9.586 11.204 10.747 - 12.051 12.256 10.595 10.709 10.639 11.198 12.163 12.485 12.571 12.545 13.452 13.130 12.192 12.636 13.294 12.991 12.752 15.390 15.610 15.124 13.126 12.669 12.263 11.968 12.377 13.585 13.540 11.540 11.519 11.261 10.643 10.553 12.344 12.267 12.555 13.090 - 12.530 13.333 13.486 13.705 12.816 12.360 12.182 12.372 12.195 11.818 13.037 14.051 12.860 13.194 12.583 12.819 12.356 13.170 15.272 14.952 14.531 14.318 12.744 13.997 13.231 12.630 14.181 12.384 11.882 13.596 14.295 12.860 13.796 13.958 14.116 14.079 - 14.958 14.364 15.474 15.173 14.276 13.119 13.443 14.401 14.435 13.591 13.277 14.602 13.740 12.433 13.136 12.883 14.107 14.519 14.684 15.038 16.033 16.147 14.281 13.384 12.881 13.189 13.159 12.272 12.316 12.678 13.695 13.799 14.573 14.845 14.131 14.294 - 15.775 14.387 13.224 12.926 12.969 12.047 10.757 12.680 12.170 10.937 11.043 11.962 13.210 12.989 13.403 13.366 13.256 13.034 14.231 14.288 14.605 13.369 13.097 13.491 13.786 12.551 12.870 11.461 10.809 11.802 12.788 13.871 13.908 14.438 13.969 12.734 - 12.008 13.344 13.102 11.250 10.245 9.731 11.751 11.776 10.750 9.594 9.963 11.824 12.395 13.466 14.734 14.518 14.597 13.273 13.240 14.972 15.022 14.053 11.849 13.701 14.019 13.652 13.441 10.814 10.331 12.172 12.943 12.722 12.408 12.740 12.699 12.443 - 10.467 12.076 11.614 9.627 7.798 9.630 11.632 11.967 11.321 11.181 9.745 11.498 12.112 13.624 14.226 14.926 15.828 14.724 14.839 15.128 15.599 14.578 13.358 13.284 13.451 13.507 13.034 10.303 9.839 11.616 13.639 13.371 11.950 11.588 12.675 12.442 - 8.918 8.565 7.986 7.486 7.404 8.076 11.949 13.957 12.908 10.819 10.641 11.790 9.985 11.367 13.020 14.195 15.982 14.358 14.574 14.593 15.972 14.759 13.214 12.652 13.273 13.687 13.624 11.404 10.640 11.841 12.674 12.694 11.712 11.773 12.540 12.925 - 9.237 9.050 8.675 7.414 7.407 7.313 11.911 14.056 12.782 9.996 11.201 11.850 9.703 10.860 12.200 12.997 15.852 14.497 14.410 15.910 16.394 14.773 12.517 11.987 12.004 13.698 13.446 11.672 11.596 12.156 12.413 11.603 11.224 12.627 13.291 13.375 - 9.800 7.898 6.428 6.609 6.668 7.707 11.049 13.401 12.011 7.862 10.818 10.633 9.910 10.311 11.685 13.130 15.797 13.914 13.682 16.700 15.586 12.880 12.639 11.949 12.613 13.650 13.464 12.350 11.834 11.544 12.772 11.610 11.818 13.274 13.657 13.424 - 9.642 7.365 8.402 8.993 7.819 7.804 10.949 13.233 11.631 7.042 10.481 10.764 8.922 8.685 11.422 13.332 15.780 13.708 13.205 14.672 13.496 12.630 11.846 11.491 10.758 13.810 13.632 11.333 10.919 11.864 11.989 10.871 11.525 13.184 13.823 11.916 - 9.560 9.634 9.895 9.236 7.898 8.194 10.950 13.284 11.969 7.364 9.965 9.917 8.768 8.992 10.821 13.066 15.405 13.721 12.962 13.907 13.356 13.135 13.012 11.926 10.432 13.536 13.174 10.381 10.488 11.306 12.257 12.148 10.302 12.527 14.148 12.819 - 8.338 9.507 8.980 7.317 7.486 7.402 10.992 13.140 11.702 7.917 10.211 11.055 8.776 8.655 11.791 14.088 15.313 13.461 12.690 12.964 13.400 13.294 13.153 12.238 11.314 13.007 12.534 10.181 11.255 11.992 12.705 12.456 10.368 12.009 12.696 12.976 - 8.139 7.034 6.629 6.125 7.556 7.696 10.439 12.755 11.407 8.645 10.965 10.292 8.457 7.692 11.532 14.165 14.293 12.080 13.314 13.659 14.860 13.950 12.945 12.310 11.629 13.193 12.493 10.820 10.620 11.651 11.679 12.142 10.827 13.582 14.004 12.714 - 9.478 8.590 7.003 6.657 7.119 7.488 10.019 12.327 10.692 7.493 10.119 10.927 8.633 8.466 11.324 14.314 13.443 11.965 12.223 13.189 14.698 14.148 13.366 12.040 12.248 12.559 11.669 10.639 10.675 11.680 12.255 11.351 9.678 11.877 13.596 12.840 - 6.667 6.571 5.593 5.723 6.098 4.726 10.647 12.358 10.719 7.883 9.641 10.871 9.354 9.634 11.965 12.845 12.573 13.455 13.698 14.316 13.490 13.157 14.106 12.443 12.057 11.473 10.842 10.162 10.712 12.049 12.329 11.355 10.287 13.729 14.280 12.712 - 7.010 7.337 6.988 6.312 5.205 6.715 10.448 12.128 10.148 8.142 10.110 10.597 7.730 9.784 12.443 12.652 13.360 12.716 12.918 14.011 14.209 13.281 12.634 11.417 12.486 11.708 11.124 8.933 9.962 11.626 12.494 11.705 10.136 12.651 13.828 12.472 - 7.422 5.740 6.518 5.314 5.123 6.236 10.356 11.815 9.673 9.159 9.731 10.880 8.880 9.637 12.608 12.721 13.992 12.204 11.791 12.741 12.566 13.677 13.573 12.119 11.276 11.523 11.371 9.197 10.141 12.109 12.730 12.209 9.922 12.664 13.565 11.904 - 5.374 5.710 5.754 6.808 7.667 8.716 10.459 11.737 9.633 9.075 8.727 9.166 7.791 10.440 12.587 12.459 14.183 12.100 11.678 13.785 13.237 14.864 13.384 11.518 11.811 11.786 10.871 9.702 11.257 11.966 11.987 11.181 10.581 13.224 13.992 12.425 - 4.773 6.074 6.581 7.750 6.321 7.850 10.090 11.697 9.844 9.045 9.089 9.876 8.413 10.893 12.251 12.454 14.160 11.994 12.556 15.270 16.411 15.655 13.038 11.053 11.613 11.695 11.145 10.047 11.179 11.621 11.418 10.930 11.007 13.378 13.123 11.565 - 5.311 4.610 5.903 7.433 7.086 7.810 9.928 11.472 9.648 8.722 9.762 10.149 7.735 9.890 10.770 12.274 13.971 13.808 12.796 15.817 15.884 13.789 12.767 11.587 11.758 11.183 10.827 10.276 10.643 11.101 11.538 11.046 11.442 13.545 13.224 11.650 - 6.028 6.912 5.268 7.459 7.966 7.323 9.249 10.902 8.946 10.352 10.976 10.513 8.159 10.675 11.592 12.293 11.640 14.327 14.679 14.274 13.971 12.473 12.508 11.245 11.324 10.662 11.281 10.893 9.873 10.507 11.112 10.151 11.311 12.686 12.916 11.481 - 6.968 6.912 5.931 7.282 8.078 8.675 9.159 9.791 8.786 11.386 12.685 11.636 7.736 9.527 11.296 12.274 11.197 14.333 14.605 14.685 15.002 13.330 12.683 12.655 12.026 10.986 10.903 10.175 9.891 10.935 10.250 10.020 10.617 12.175 12.969 11.401 - 6.056 5.066 4.352 4.799 8.463 8.941 9.876 9.856 7.670 11.592 12.256 11.037 7.553 10.097 11.280 12.188 12.188 12.287 12.261 13.076 13.899 13.527 12.797 12.356 11.034 12.150 11.868 11.336 10.293 10.942 11.428 9.463 11.006 11.810 12.340 11.862 - 5.913 6.194 6.037 5.760 7.924 8.363 8.460 9.559 7.693 11.393 12.329 10.174 6.961 9.010 11.600 13.247 12.874 13.014 13.153 12.794 13.452 12.189 11.594 12.251 11.635 11.499 11.832 11.015 9.687 10.136 11.129 10.260 11.678 12.321 12.732 11.294 - 5.606 5.789 5.454 6.706 9.164 9.950 9.145 8.262 8.121 10.874 12.672 10.934 7.721 9.500 10.392 12.648 11.612 11.427 12.327 13.053 13.546 13.274 12.645 10.107 11.506 12.082 11.024 10.426 10.205 11.057 11.410 9.730 11.096 12.003 12.192 10.423 - 4.978 6.492 6.328 6.226 9.909 10.800 9.188 8.822 7.838 10.402 12.088 9.831 7.077 9.442 11.127 12.450 10.398 11.775 13.149 14.060 14.616 13.135 12.209 10.788 12.518 11.364 10.761 10.562 9.647 9.932 11.373 9.903 10.527 11.567 12.308 11.627 - 5.848 6.156 5.829 6.721 10.197 11.288 9.100 8.525 8.818 10.495 11.574 9.220 7.304 9.898 11.186 11.660 10.112 12.609 13.746 13.968 13.573 12.908 11.113 10.931 11.638 11.446 10.560 10.401 9.793 10.271 11.134 9.987 10.315 11.363 11.690 10.583 - 5.452 5.870 5.359 6.472 10.519 11.113 8.251 8.108 9.399 10.462 11.624 9.598 8.203 9.801 11.738 12.195 10.077 13.289 13.389 13.198 13.147 11.401 11.320 12.007 10.924 10.732 10.979 11.038 9.150 9.941 10.180 9.184 10.622 10.813 10.379 10.965 - 6.200 7.435 6.466 4.836 10.343 11.103 8.118 7.832 9.667 10.149 11.013 9.613 7.903 10.317 12.061 11.862 9.855 11.392 12.699 12.923 12.729 12.782 12.066 12.344 10.697 10.944 10.869 10.555 8.649 9.359 9.479 9.740 10.640 11.523 11.325 10.820 - 6.037 7.627 6.925 6.119 10.303 11.060 8.075 8.666 10.273 10.800 10.796 10.339 7.989 9.691 12.004 11.142 10.166 11.092 12.412 13.888 12.539 11.277 11.474 12.186 10.299 11.071 11.238 9.663 8.655 9.504 9.467 9.971 10.336 11.313 10.595 11.703 - 6.154 6.515 7.132 6.433 9.891 10.696 8.709 8.422 10.525 10.761 10.477 9.818 8.524 10.715 12.311 10.067 9.147 11.745 12.420 13.281 13.090 11.221 11.182 11.636 10.493 10.379 10.271 9.993 8.976 10.121 10.369 9.600 9.703 10.973 10.760 12.893 - 4.824 6.743 6.603 6.207 10.164 10.671 8.282 9.621 11.059 10.425 10.139 9.383 8.945 10.808 12.234 10.352 10.194 11.550 12.586 13.202 11.997 11.026 11.999 12.313 10.629 9.963 10.740 10.218 8.948 9.133 9.733 9.516 10.471 10.094 10.876 12.991 - 6.871 6.935 6.492 6.116 9.876 10.702 9.164 9.819 11.511 10.936 10.132 8.706 7.846 10.973 11.815 9.561 10.962 11.827 12.477 13.146 11.496 12.002 12.099 11.126 10.200 10.497 9.732 9.831 9.360 9.767 9.977 9.810 10.518 10.670 10.355 11.824 - 5.727 4.751 5.304 5.053 9.142 9.846 7.654 9.470 11.320 9.949 10.114 9.933 8.173 10.465 10.767 9.603 9.153 12.064 12.458 13.119 12.217 11.051 10.730 10.642 9.938 11.067 11.132 9.985 9.826 10.181 10.342 10.152 10.671 11.631 10.213 11.026 - 6.889 6.974 6.425 6.508 9.059 10.121 8.062 9.254 11.503 10.190 9.505 9.854 8.541 9.457 9.289 9.171 10.001 11.538 12.512 13.092 12.313 11.609 10.560 9.761 10.061 9.978 10.509 10.876 9.294 9.738 10.002 9.023 10.588 10.868 10.827 12.276 - 9.704 10.130 10.256 10.107 9.490 10.748 10.235 10.414 10.941 10.034 10.212 10.249 9.998 9.918 10.842 9.240 9.615 11.558 11.465 11.828 12.123 11.144 10.071 9.969 9.961 11.118 10.325 10.597 9.086 9.698 10.146 10.030 10.551 11.528 10.841 11.659 - 12.154 12.320 11.934 11.265 11.345 10.870 11.344 11.126 10.091 10.363 11.356 11.203 10.643 9.993 10.788 9.340 10.535 11.938 12.739 13.182 13.157 10.377 10.803 9.742 9.628 11.090 11.245 9.374 8.697 10.588 9.836 10.002 10.576 11.090 10.127 11.271 - 8.515 8.473 8.074 6.481 9.424 10.220 7.674 9.502 11.790 10.313 10.037 11.163 8.966 9.958 10.938 9.542 10.136 11.580 12.433 13.075 13.052 11.414 10.387 9.733 9.888 10.630 10.678 10.512 8.817 10.001 9.838 9.186 9.735 10.068 10.500 11.748 - 5.110 6.319 6.202 5.815 8.991 10.193 8.240 9.711 12.038 10.621 8.789 9.534 8.205 9.698 10.410 9.609 10.024 11.686 11.952 12.146 11.593 11.315 10.462 10.418 9.864 10.386 11.097 10.655 8.246 10.320 10.148 9.231 9.687 10.118 9.941 11.235 - 6.388 7.040 6.017 5.709 8.794 9.431 7.336 9.572 11.896 10.350 9.430 9.740 6.808 9.472 10.704 9.460 8.362 11.227 11.862 12.304 12.089 9.936 9.751 9.681 9.566 10.182 9.745 9.505 8.656 9.327 9.209 9.196 9.967 10.721 10.591 10.568 - 6.568 6.669 5.314 3.853 8.104 8.602 6.472 9.130 12.013 10.672 9.053 8.919 7.328 9.409 10.921 10.346 9.667 11.304 12.022 12.261 10.875 10.243 10.403 10.022 9.952 9.397 9.876 9.699 7.698 10.408 10.056 9.989 10.063 10.472 9.963 11.579 - 6.512 6.569 4.735 5.320 7.828 7.019 7.028 11.909 13.179 11.070 10.080 9.343 8.303 9.544 10.677 9.664 9.509 10.083 11.749 11.259 10.769 9.464 9.404 11.018 10.087 9.536 11.110 10.049 7.787 11.073 10.118 9.793 9.259 9.088 9.805 11.379 - 6.787 6.735 4.822 5.795 8.277 7.874 8.532 13.026 13.632 10.761 10.537 9.585 8.004 8.859 10.899 9.066 9.335 10.535 12.055 11.090 11.243 9.647 9.706 10.001 9.013 9.495 10.940 10.743 8.036 9.086 9.706 9.704 9.802 9.024 10.512 11.282 - 5.315 6.266 4.750 5.566 7.838 7.372 8.912 13.041 12.699 9.170 9.579 8.139 6.770 8.459 11.269 9.779 8.530 10.255 12.479 12.334 11.599 10.166 9.356 10.862 8.982 9.149 10.222 9.832 8.911 9.362 9.040 9.111 9.629 8.934 10.149 11.377 - 5.588 6.305 6.055 6.628 5.713 6.916 9.491 13.208 12.949 9.635 10.570 9.307 7.350 8.948 11.394 9.402 7.769 10.879 12.931 12.005 11.113 9.851 8.535 10.023 9.252 8.809 9.618 9.496 8.035 10.323 9.446 8.870 9.324 9.863 9.894 10.555 - 10.189 10.245 9.957 8.531 8.109 7.774 9.465 13.293 13.043 9.732 10.121 8.660 8.747 9.176 11.371 9.671 8.886 10.935 12.948 11.722 11.511 8.987 9.233 8.987 8.486 9.488 10.593 10.048 8.087 9.832 9.627 9.038 9.244 9.400 8.889 10.457 - 10.726 9.714 9.021 7.504 8.007 8.663 9.981 12.568 12.163 8.852 8.946 8.179 8.922 8.308 10.964 9.448 9.092 11.391 12.691 11.225 11.298 9.266 9.530 8.978 8.609 9.622 10.589 10.453 7.916 9.681 9.119 9.367 8.913 9.282 9.362 10.047 - 6.711 7.617 6.481 5.825 7.945 8.305 7.863 10.566 10.659 11.118 11.423 10.335 8.761 9.427 11.299 9.652 9.575 11.556 12.471 10.498 10.562 9.782 9.065 9.213 8.161 9.321 10.261 10.340 8.191 10.158 9.630 9.493 8.952 9.426 9.459 10.709 - 7.489 6.468 5.824 6.801 6.379 7.050 7.740 9.344 11.051 12.049 10.780 9.571 8.544 8.761 10.559 9.351 9.737 11.204 12.189 10.773 10.572 9.015 7.950 10.060 8.919 10.003 10.335 10.564 8.347 10.091 9.107 8.741 9.185 9.220 9.135 10.212 - 7.226 7.019 7.122 7.557 8.601 8.461 8.068 9.078 10.714 11.907 10.358 9.016 7.173 7.760 10.916 9.647 9.397 11.152 12.087 12.160 11.167 8.772 8.940 10.698 9.745 8.604 9.549 10.287 8.430 10.709 9.877 8.400 8.915 9.473 8.968 10.220 - 5.329 6.068 5.719 7.163 8.001 8.104 6.181 6.959 10.318 11.491 10.546 8.494 6.867 7.784 10.971 10.229 9.263 11.184 11.931 11.830 10.648 8.985 8.783 10.651 10.059 8.884 9.101 8.137 8.587 10.275 9.653 9.165 10.116 8.532 8.742 10.441 - 6.617 9.042 9.002 8.992 7.908 6.191 6.612 8.124 10.084 10.422 10.012 8.925 7.757 8.021 10.972 10.265 9.140 11.082 11.878 10.773 10.433 9.920 9.116 9.570 9.374 9.077 9.473 8.235 8.362 9.525 9.817 8.715 9.910 9.416 9.147 9.593 - 12.504 12.556 11.887 11.447 10.936 10.207 10.535 10.277 9.073 8.904 9.990 8.801 8.188 9.160 10.843 10.416 8.954 10.393 11.870 10.536 9.950 9.248 10.287 10.530 9.450 9.667 9.133 9.113 9.217 10.324 10.099 8.434 9.715 10.030 10.024 9.309 - 11.864 11.459 10.395 9.479 10.017 9.764 9.343 9.310 10.385 9.785 9.691 9.036 8.236 8.626 10.350 10.697 9.460 10.677 11.152 10.420 9.845 10.082 9.393 9.691 9.247 9.861 9.619 8.603 9.030 10.206 10.587 8.392 9.838 10.317 9.903 9.923 - 7.712 8.900 8.902 7.564 8.937 9.437 9.485 9.903 9.051 9.466 9.919 7.780 9.738 9.943 10.936 11.300 10.684 10.548 11.751 12.010 11.970 9.911 9.068 10.491 10.347 9.353 10.800 10.143 9.357 10.789 10.625 9.519 10.193 10.200 10.192 8.979 - 8.357 7.923 7.945 8.361 8.639 10.540 11.111 9.333 9.788 9.904 10.397 9.558 9.529 9.773 10.302 11.180 10.104 10.326 10.945 10.730 11.376 9.398 9.799 10.109 11.327 10.054 10.441 9.859 9.423 10.326 9.794 9.931 9.529 10.575 10.655 9.709 - 9.559 10.407 9.017 9.040 10.639 10.428 10.698 9.100 9.479 10.222 10.000 9.724 10.197 10.514 9.685 11.206 10.611 9.414 10.624 10.828 11.007 10.088 10.072 10.145 11.004 10.545 10.153 10.645 10.508 11.048 10.596 10.450 11.018 11.700 11.226 10.629 - 8.119 10.021 10.483 10.859 10.986 12.208 10.946 9.906 9.898 10.397 10.868 9.877 9.824 11.289 10.493 11.864 11.433 11.130 11.578 10.295 11.069 10.547 10.784 9.815 10.413 11.006 11.216 11.837 11.587 10.619 11.214 11.141 11.244 10.768 11.328 10.460 - 8.484 8.417 9.737 10.514 10.208 10.633 10.826 10.980 9.285 11.026 11.418 9.505 10.778 10.781 10.540 11.310 11.084 12.161 12.153 11.394 10.763 10.551 10.889 10.523 10.812 11.184 10.899 11.648 11.127 10.317 10.779 10.750 11.020 10.824 11.500 10.912 - 9.313 9.436 9.350 8.866 9.588 10.114 9.716 10.772 10.561 10.591 11.641 10.266 9.880 8.854 9.986 11.238 12.182 11.593 11.786 10.429 8.855 9.411 10.645 10.152 10.519 10.823 11.616 11.187 10.702 10.378 10.066 10.675 11.586 10.080 11.363 10.172 - 8.411 9.205 8.358 10.131 9.953 9.164 9.138 10.621 9.964 10.942 10.900 9.661 10.784 10.387 10.008 10.591 12.762 12.509 11.169 9.914 10.255 9.701 9.880 9.823 9.648 9.885 11.203 11.027 10.858 9.911 8.917 10.467 11.373 11.638 11.429 10.085 - 8.074 8.012 8.439 8.854 9.962 10.907 10.063 9.544 10.299 9.554 11.311 11.043 8.928 10.129 10.748 10.594 10.332 12.228 11.990 11.907 12.035 10.737 9.855 8.979 10.408 10.017 9.849 10.797 9.644 10.678 10.211 10.216 11.913 11.887 11.017 10.695 - 10.017 9.600 8.858 8.175 10.764 10.715 9.761 8.391 8.267 10.003 11.585 11.729 9.352 10.854 11.082 11.614 11.882 13.188 11.608 10.669 11.615 11.237 10.591 9.842 11.064 11.554 12.023 11.393 10.721 11.318 10.295 9.724 10.530 11.180 10.840 10.582 - 6.215 7.168 8.209 9.846 10.834 10.426 9.685 10.570 9.774 10.201 13.086 12.563 10.258 11.284 10.785 10.991 11.720 12.593 11.699 10.960 10.891 11.305 10.322 10.471 10.145 11.573 11.552 11.304 11.356 11.188 10.958 10.233 11.147 11.753 11.611 10.991 - 5.648 7.297 7.790 7.507 7.426 8.418 9.910 10.694 11.021 9.344 12.021 12.034 9.527 10.798 10.381 10.585 11.174 11.918 11.869 11.246 10.859 11.067 9.989 10.173 10.273 10.926 11.619 11.504 10.398 10.730 10.714 10.847 11.400 11.719 12.052 10.989 - 7.610 7.217 8.730 9.031 9.518 9.923 10.148 10.669 10.526 9.566 11.271 11.054 9.003 9.399 10.299 9.837 10.965 11.598 12.008 12.875 10.110 9.227 10.222 9.893 9.749 10.324 11.469 10.466 9.484 10.071 10.007 9.430 10.276 10.958 10.878 10.401 - 8.919 8.327 7.931 7.231 9.789 9.836 9.818 11.222 11.101 10.007 10.756 9.338 8.915 9.611 10.647 10.534 10.891 11.610 11.430 11.830 9.433 8.893 9.376 10.189 10.322 10.543 11.334 10.434 9.083 10.572 10.761 10.273 10.397 11.161 11.858 10.965 - 9.468 8.342 8.588 8.276 10.405 10.758 9.433 11.658 11.801 10.704 11.796 10.642 8.764 8.508 9.063 10.340 10.160 10.851 10.787 9.956 9.228 9.674 9.994 11.238 10.340 10.077 11.131 9.983 9.588 9.981 10.552 9.990 10.724 11.581 11.749 11.383 - 10.121 10.217 10.480 9.755 9.244 10.018 10.368 11.598 11.396 10.463 10.395 9.667 9.331 8.482 10.724 10.958 10.937 11.492 10.272 9.782 9.200 9.708 9.430 10.052 9.114 9.424 11.470 10.885 9.748 10.125 9.393 9.299 10.779 11.069 11.247 10.813 - 6.816 7.726 7.988 7.086 7.981 9.199 10.308 11.199 11.412 10.958 10.767 7.502 8.235 9.001 9.147 10.085 10.054 11.645 11.294 11.191 10.003 8.091 8.823 10.158 9.161 9.358 11.573 10.795 8.958 9.507 9.425 9.605 10.961 11.003 11.755 10.483 - 6.463 5.638 6.380 7.609 8.243 9.690 9.471 10.858 11.174 10.866 10.521 8.264 7.543 8.556 8.754 9.602 10.761 11.862 11.116 11.234 10.497 8.999 9.337 9.546 9.471 9.583 11.583 10.472 8.592 9.747 8.718 9.091 10.759 11.347 11.657 10.179 - 6.568 7.458 7.537 7.813 8.888 9.964 8.695 11.085 11.215 10.873 10.675 8.428 8.217 9.646 9.000 9.620 11.155 11.259 11.257 11.097 10.215 9.295 9.036 9.239 10.403 9.467 11.476 10.582 9.283 9.543 8.853 8.903 10.752 11.039 10.796 10.598 - 8.761 6.825 5.845 7.222 8.402 9.337 7.609 11.055 11.177 11.038 11.202 10.530 7.843 8.739 8.742 9.953 10.609 11.520 10.568 11.944 11.385 9.347 9.487 9.157 10.396 10.774 11.317 11.254 10.184 10.327 10.469 9.495 10.848 11.294 11.116 9.450 - 10.002 9.798 7.767 6.633 7.693 6.640 7.457 10.374 10.960 10.904 11.538 10.901 8.327 8.778 8.620 9.347 10.593 11.689 9.906 10.329 10.289 8.974 9.807 8.989 9.504 11.203 12.163 11.247 9.561 9.676 9.516 9.529 10.370 10.316 10.166 9.635 - 9.167 9.474 7.445 7.315 8.491 8.498 7.240 10.568 11.061 11.127 11.158 10.361 7.622 8.685 8.254 8.431 10.501 11.428 10.628 10.762 10.465 9.354 9.696 9.760 10.409 10.985 11.435 10.355 8.773 9.182 8.940 9.184 9.931 9.889 9.902 9.301 - 8.321 8.648 6.992 6.568 8.814 8.584 8.046 11.129 11.349 11.129 10.864 9.874 7.219 8.310 8.453 7.786 8.842 10.116 10.825 11.053 11.152 10.934 10.414 10.596 10.840 10.624 10.740 10.336 9.790 9.128 9.684 9.857 9.924 9.605 10.331 9.709 - 8.445 8.703 7.066 6.992 7.067 7.432 8.073 11.376 11.339 10.723 9.485 8.030 7.852 7.809 8.065 8.748 8.903 9.155 9.942 9.986 9.400 9.463 9.043 9.281 9.594 9.145 10.947 10.335 9.286 8.567 9.642 10.092 8.706 9.177 8.755 8.755 - 12.731 13.774 13.840 13.167 12.605 12.364 12.695 13.058 13.661 12.809 12.524 12.908 12.061 11.298 11.642 12.024 12.498 12.623 13.002 13.620 13.263 12.672 12.139 11.840 10.980 10.936 11.884 10.534 9.455 10.408 10.738 12.209 11.629 10.136 9.431 8.844 - 15.025 15.695 14.891 13.506 13.721 14.345 15.075 15.387 15.192 13.874 14.077 14.094 13.342 12.544 12.938 12.700 13.093 13.706 13.883 15.459 14.598 13.685 13.339 13.042 11.969 11.901 13.035 11.600 10.641 11.337 11.775 14.021 13.560 11.600 10.543 9.290 - 14.702 13.794 11.924 12.455 11.981 14.140 15.852 15.591 13.565 12.958 12.658 13.091 12.099 11.662 11.712 11.956 12.997 13.497 13.243 15.035 15.245 12.965 12.639 12.921 11.516 11.288 12.637 11.408 10.071 10.523 11.334 13.824 13.420 11.437 10.277 9.209 - 12.019 10.767 10.372 9.619 10.098 12.078 12.631 11.781 11.448 10.891 11.744 9.418 8.470 7.528 9.189 9.777 10.503 11.029 11.384 11.246 11.972 9.430 9.222 8.725 8.349 8.707 8.935 8.584 7.866 8.913 9.215 12.063 11.316 8.489 8.484 8.323 - 7.820 8.247 8.403 7.815 8.621 8.287 10.734 12.502 11.814 8.986 11.248 9.654 6.864 6.173 8.554 8.630 9.102 9.950 10.755 10.639 10.427 9.163 8.549 9.242 9.572 9.802 9.455 8.567 8.046 8.537 8.737 9.368 10.039 9.608 9.470 8.523 - 5.347 6.686 7.275 6.383 8.624 8.648 9.890 12.044 11.689 8.170 10.751 10.354 6.710 7.147 8.845 8.942 10.182 10.069 11.368 11.435 10.124 9.142 8.027 8.073 9.689 10.139 8.631 8.741 7.307 8.775 8.471 9.143 10.528 9.689 9.730 9.530 - 8.177 7.780 6.832 6.732 9.080 8.587 9.286 12.086 11.324 7.326 10.979 10.924 8.561 7.931 7.901 8.449 10.028 9.637 11.505 11.215 9.705 9.746 8.681 7.969 9.828 9.904 8.497 9.260 8.892 9.513 8.500 8.511 10.283 9.796 10.046 9.985 - 7.156 7.591 6.063 6.276 9.043 8.561 8.718 11.652 11.064 7.710 11.396 12.224 9.318 7.419 7.108 7.861 8.726 9.228 11.561 12.698 11.052 8.708 8.838 8.863 8.710 9.807 9.605 9.361 7.557 9.142 9.285 8.381 9.923 10.475 10.875 10.745 - 6.915 7.180 5.483 7.024 8.859 8.018 8.817 11.225 10.651 8.252 10.521 12.037 9.488 7.917 7.530 7.859 8.515 9.358 9.678 12.271 10.732 9.564 9.052 9.147 8.296 8.799 9.291 9.655 7.798 10.287 10.436 8.690 10.672 10.771 10.734 10.138 - 5.023 6.090 6.920 6.597 8.221 7.363 8.542 10.363 9.767 7.492 11.328 11.980 8.324 7.064 7.993 8.516 9.039 9.049 11.449 12.300 10.388 7.967 8.118 8.442 9.078 8.570 9.405 9.254 8.074 10.547 9.800 9.568 10.544 10.899 11.145 10.769 - 3.225 5.068 5.537 4.577 7.628 7.381 7.078 8.778 8.922 7.762 11.388 11.553 6.414 5.950 5.916 7.468 8.754 8.983 11.404 11.997 10.628 7.492 7.586 8.548 9.784 9.856 9.605 8.730 8.229 9.227 9.150 8.617 10.582 10.361 11.006 10.760 - 5.953 5.151 5.410 5.184 7.527 7.231 5.484 6.326 7.589 8.077 11.680 11.128 6.156 7.017 7.421 8.292 8.348 8.542 11.743 11.093 10.087 8.695 7.495 8.612 8.709 9.000 9.064 10.004 8.791 10.306 10.159 8.211 9.261 9.950 10.752 9.466 - 5.322 6.101 5.308 6.198 7.295 6.277 5.898 7.269 7.363 9.009 11.751 10.423 5.471 6.311 6.998 7.619 8.604 9.539 12.161 11.460 9.333 9.630 9.217 9.525 9.899 8.946 8.492 9.428 8.533 9.345 8.853 7.778 9.276 10.133 10.713 10.538 - 6.013 6.557 4.751 5.164 6.562 6.048 6.712 6.271 6.456 9.738 11.691 9.550 5.690 7.862 7.697 7.532 8.614 10.604 11.389 10.648 11.031 9.059 8.370 10.019 9.417 8.289 9.567 9.634 8.271 10.090 9.915 7.891 10.084 9.925 10.651 10.964 - 5.429 6.699 6.339 6.110 7.270 6.221 6.346 7.332 6.984 11.014 11.485 8.485 6.036 7.005 7.355 7.172 8.159 10.207 10.193 10.838 10.095 8.441 8.526 10.561 8.889 8.609 9.705 9.720 8.193 9.776 9.183 8.767 10.106 10.181 10.093 10.336 - 3.900 4.259 4.973 5.961 7.270 6.376 5.170 4.612 5.881 10.786 11.218 8.079 5.441 7.124 7.306 7.320 8.361 10.178 10.157 10.405 9.631 8.301 8.386 9.975 7.539 7.736 8.737 10.088 8.841 8.497 8.541 7.431 10.669 9.651 9.909 10.443 - 4.246 2.552 3.956 5.169 5.631 4.875 5.335 5.587 6.167 10.364 10.512 6.837 4.949 6.673 7.170 7.589 7.968 10.536 10.187 9.561 9.071 8.146 8.603 9.218 7.352 8.605 7.929 9.787 8.415 7.545 8.406 6.917 9.410 9.750 9.864 10.937 - 3.807 4.210 5.292 4.600 4.821 4.912 6.469 6.833 6.929 10.368 10.037 4.828 4.771 6.999 6.713 7.680 8.537 10.726 10.932 10.015 7.982 7.975 8.211 8.201 7.877 8.904 8.753 9.253 8.604 8.083 8.234 7.057 9.533 9.831 10.480 10.391 - 4.511 3.752 3.570 5.167 5.873 5.616 4.356 4.713 8.302 10.889 10.075 5.399 5.819 5.311 5.988 6.644 7.571 11.161 10.691 9.652 9.231 8.166 8.439 8.501 7.819 8.136 8.554 8.862 8.625 8.000 7.174 7.165 9.032 10.256 10.987 9.460 - 4.725 4.931 4.614 5.490 5.302 6.579 7.991 7.792 7.394 10.655 10.039 6.935 5.842 5.608 6.360 7.846 9.071 12.054 10.434 9.974 8.787 6.776 7.792 8.241 7.796 7.208 7.497 8.839 7.909 7.482 7.001 6.786 9.480 10.893 10.575 10.121 - 5.010 4.542 4.946 5.223 4.030 4.818 7.880 7.895 7.250 9.991 9.268 6.994 5.798 5.182 5.592 6.499 9.120 11.809 10.492 9.811 7.537 6.569 7.686 8.551 8.247 7.784 7.434 7.840 7.529 8.133 7.508 6.738 9.760 10.273 10.233 9.371 - 5.308 5.314 4.573 3.346 4.991 5.503 7.614 7.125 7.959 9.465 8.005 7.563 5.948 5.890 6.950 6.848 10.987 11.372 9.800 9.035 8.404 7.887 7.615 7.257 6.215 7.282 7.261 8.100 7.974 8.082 7.865 7.050 9.477 9.547 9.818 8.298 - 2.984 2.890 1.195 2.767 3.532 3.679 5.057 5.147 8.208 8.860 6.879 5.591 4.918 7.186 7.158 6.869 10.862 10.323 8.556 10.035 8.443 7.216 6.716 6.792 6.442 5.653 7.763 8.885 8.309 7.788 7.614 6.760 9.016 9.248 9.536 9.161 - 2.991 3.509 3.239 4.706 4.850 5.560 5.457 5.921 7.444 7.775 5.134 5.995 4.731 5.813 7.306 7.183 9.323 8.916 9.820 9.652 8.750 7.779 6.559 6.900 6.413 6.511 6.611 8.178 7.031 7.586 7.170 6.322 8.930 9.296 9.481 9.515 - 4.467 4.704 4.730 4.352 4.527 4.217 3.967 5.232 5.798 6.764 5.774 6.279 5.328 5.932 6.384 6.456 8.511 8.603 9.394 9.799 8.976 7.403 6.723 6.858 5.696 5.607 6.926 8.556 7.461 7.555 7.136 5.412 8.712 9.475 10.177 9.356 - 5.234 6.921 6.078 3.839 5.803 6.765 7.196 7.432 7.507 5.791 5.436 5.898 6.687 5.645 6.441 7.347 8.259 8.705 9.469 9.121 6.783 7.145 7.408 6.858 6.785 5.657 7.107 7.713 7.538 6.976 6.018 6.089 8.849 9.351 10.219 9.278 - 6.886 6.850 7.423 6.363 7.550 7.891 8.012 6.952 6.007 4.657 6.449 8.360 8.117 6.964 7.100 7.942 7.945 7.746 9.117 9.343 6.539 8.184 8.573 7.717 7.476 8.175 6.873 8.743 8.356 7.811 6.650 6.327 9.332 10.207 9.444 8.674 - 5.934 6.537 6.882 5.888 8.013 8.453 8.841 7.677 5.966 4.408 6.297 7.460 7.653 7.948 7.443 8.781 8.679 8.233 8.709 8.735 8.523 7.634 6.057 7.604 7.780 8.758 7.020 9.685 9.117 8.810 7.254 7.147 8.634 9.224 9.460 8.059 - 6.509 5.391 6.782 7.030 7.424 6.729 7.629 6.716 5.583 4.066 6.875 7.472 6.964 8.483 9.532 9.131 8.817 8.805 9.518 8.829 7.419 7.418 7.662 7.920 7.955 7.557 8.295 9.104 8.805 7.846 6.716 6.782 7.529 7.921 8.011 8.371 - 6.519 5.996 5.853 6.619 7.056 7.911 6.744 6.679 5.649 4.535 6.774 7.671 6.904 8.724 8.702 7.653 6.561 8.066 8.360 8.231 8.165 7.040 6.724 6.843 6.322 5.564 6.497 7.200 8.078 7.471 7.284 6.505 7.460 8.225 7.702 7.089 - 7.295 6.635 6.518 5.972 5.924 7.672 8.319 7.766 5.467 5.360 5.043 6.272 6.869 6.117 5.618 6.685 5.931 7.630 8.082 8.550 7.763 7.006 5.244 4.982 5.641 5.377 4.951 5.677 6.071 6.183 7.147 6.533 6.863 7.880 7.944 6.763 - 8.346 7.705 7.153 6.844 5.953 5.895 5.994 6.371 6.362 7.000 5.887 5.711 5.938 5.689 5.660 5.875 6.183 6.992 8.996 8.000 5.376 4.916 5.110 5.314 4.828 5.140 4.728 5.117 6.247 5.977 6.393 6.037 8.083 8.385 7.877 6.087 - 7.744 6.712 4.857 4.659 5.666 6.541 6.154 6.578 5.476 5.528 4.643 6.149 5.302 6.590 6.612 5.753 7.301 7.505 7.908 7.846 4.206 4.910 5.075 6.509 6.519 6.370 6.699 6.037 6.220 6.502 6.831 5.447 6.684 6.860 7.162 5.299 - 7.533 6.531 7.058 7.257 7.719 7.249 6.297 6.756 6.491 5.546 5.201 5.034 5.781 6.390 7.670 7.008 7.205 7.178 7.971 7.887 5.866 5.527 4.956 6.025 5.835 5.978 6.761 6.086 6.694 7.117 6.902 5.913 5.637 6.102 6.077 4.576 - 10.043 8.675 8.206 6.879 7.623 7.855 8.127 7.888 6.005 5.448 6.563 6.477 5.483 5.894 6.770 6.917 7.336 6.178 6.776 7.512 6.690 5.328 5.680 5.980 6.883 6.521 6.568 7.214 7.320 7.402 6.735 6.441 6.331 7.553 6.973 5.998 - 9.592 8.450 8.770 7.980 7.052 7.318 8.438 7.812 5.439 5.820 6.694 6.510 5.394 6.850 7.216 6.825 7.622 7.863 7.403 6.179 6.139 5.135 5.262 5.535 6.285 6.049 6.451 6.472 6.333 6.541 6.449 6.989 6.634 6.164 5.859 5.081 - 9.421 8.306 6.864 7.445 7.743 8.060 7.638 8.103 7.239 6.867 6.867 6.166 6.936 7.078 5.946 6.352 7.251 7.005 6.727 6.252 5.337 5.114 4.753 4.676 5.433 6.218 6.496 6.996 6.977 6.481 6.623 5.724 5.993 5.899 5.480 4.711 - 10.237 10.255 9.405 8.437 9.486 9.080 8.276 5.383 5.475 6.358 5.242 5.920 6.778 7.435 6.968 7.461 8.218 7.469 5.961 5.461 5.936 5.762 5.547 5.531 5.827 6.094 6.803 6.993 8.051 7.909 7.563 6.827 7.459 7.209 6.092 5.377 - 8.410 8.596 7.404 7.422 9.297 9.092 8.050 7.156 5.566 5.690 6.684 7.217 7.766 7.815 8.096 8.235 7.370 6.701 5.763 5.128 5.941 6.046 5.759 5.061 5.340 5.591 5.990 7.340 6.685 6.942 7.433 7.309 6.638 6.438 5.010 5.265 - 6.755 6.616 7.341 6.263 7.944 9.230 8.867 6.358 4.568 5.143 7.135 6.683 7.033 7.082 7.047 6.779 6.995 6.453 6.408 5.149 5.845 5.207 5.121 5.628 5.441 5.177 6.438 7.092 7.023 6.317 8.285 8.097 6.870 6.354 5.450 4.880 - 7.329 5.384 6.091 5.536 4.533 5.312 6.491 5.655 5.680 5.063 4.273 4.575 3.993 5.292 5.517 6.071 6.168 5.581 4.998 4.286 3.715 4.951 4.767 4.503 4.679 4.187 4.164 5.171 5.243 5.829 5.629 4.853 4.983 5.478 4.216 3.763 - 5.409 4.028 4.636 6.046 5.434 4.978 5.890 5.428 4.405 3.464 4.072 4.322 4.794 5.723 5.404 4.578 5.139 5.250 5.270 5.485 5.327 5.310 5.274 4.424 5.014 4.738 4.753 5.472 4.915 4.794 4.364 4.467 4.063 4.466 4.308 2.361 - 4.087 4.541 3.697 5.278 6.262 6.893 7.218 5.947 3.941 3.885 4.902 5.294 4.728 4.676 4.422 5.907 5.907 6.423 6.337 5.379 4.735 5.457 6.118 5.675 4.944 4.639 4.247 3.961 3.852 4.261 3.554 3.540 3.254 2.954 3.009 2.565 - 5.057 4.929 4.712 2.295 4.201 5.073 5.481 4.251 4.779 4.493 3.791 3.896 4.480 5.732 5.210 5.517 5.187 4.390 4.203 2.987 3.797 5.675 6.902 6.694 5.340 4.854 4.149 4.104 4.054 3.755 3.158 3.373 2.905 3.310 2.989 2.934 - 5.580 5.735 3.689 4.196 4.670 5.471 5.754 5.928 4.406 4.356 3.897 4.556 4.499 6.348 6.042 5.021 5.051 5.076 4.909 4.995 4.353 5.347 5.898 6.864 6.440 6.493 7.219 8.033 6.974 4.459 4.234 5.022 4.718 5.551 4.569 3.358 - 5.336 6.090 4.821 2.584 5.248 6.978 7.188 6.708 5.261 5.984 5.576 4.305 2.991 5.626 5.482 4.444 3.982 5.769 5.371 6.317 5.585 5.794 5.527 6.133 7.933 7.836 8.326 8.768 7.751 6.986 6.545 7.034 6.630 7.287 5.755 4.492 - 4.589 5.858 5.565 5.083 4.442 5.008 6.968 7.049 6.865 5.376 4.029 4.865 3.566 3.640 4.586 4.618 3.065 5.302 5.560 5.621 5.101 6.665 6.514 4.984 8.147 8.025 7.797 8.302 8.561 7.681 6.671 7.420 6.877 6.977 6.868 5.443 - 7.050 6.358 5.304 4.288 4.504 5.991 5.629 5.698 6.215 5.318 3.264 3.095 4.151 4.645 4.911 4.851 5.094 4.611 4.692 4.972 4.795 4.674 6.342 6.029 8.744 8.425 7.155 7.243 8.505 6.391 5.903 6.871 6.868 6.381 6.501 6.886 - 5.927 4.750 3.450 4.013 5.162 6.482 6.015 5.938 5.970 5.636 4.758 4.356 5.304 4.869 4.985 4.224 5.298 5.406 4.990 5.582 6.047 5.836 6.670 7.974 9.174 7.631 7.702 7.566 7.918 6.328 6.216 6.642 6.785 7.226 7.069 6.610 - 4.873 5.773 5.957 4.948 4.299 5.808 6.829 5.314 5.435 7.352 5.940 6.306 8.156 6.710 5.432 5.199 5.324 5.894 5.256 6.874 7.890 8.512 8.236 8.879 8.209 7.659 8.968 8.457 7.106 6.776 6.823 7.368 6.886 6.838 7.611 6.456 - 4.243 6.397 6.440 4.718 5.647 5.837 6.418 4.029 6.571 8.383 6.737 6.442 8.837 7.160 5.251 4.625 5.581 6.721 5.761 7.621 8.277 7.796 8.187 8.535 7.991 7.718 8.104 8.663 7.330 6.462 7.326 7.008 6.098 7.157 7.592 6.656 - 6.183 7.094 6.866 4.399 5.062 6.140 6.390 5.283 6.358 7.346 7.102 6.461 8.385 6.871 5.080 4.739 6.275 8.461 7.316 8.149 8.440 7.929 6.814 8.095 8.662 8.019 8.780 7.830 6.854 6.700 7.353 6.951 5.457 6.045 6.303 5.297 - 4.762 6.338 7.031 4.901 5.770 6.507 7.616 6.876 7.785 9.574 8.746 5.099 7.944 7.819 6.530 6.831 6.898 9.296 8.361 10.384 9.493 8.607 7.870 8.234 8.111 8.379 9.015 8.231 7.204 7.272 7.354 6.352 6.058 6.357 6.578 4.686 - 4.838 6.911 6.803 3.952 3.469 7.387 7.949 5.129 7.193 9.765 8.984 5.914 9.582 8.785 7.280 8.358 7.644 10.334 9.448 11.075 9.689 9.510 7.723 7.133 7.804 8.704 8.934 8.789 8.017 7.081 6.277 6.244 5.952 5.912 6.025 5.108 - 3.727 6.249 5.970 2.480 3.623 8.045 9.035 6.681 5.427 8.361 8.316 6.875 10.156 9.407 8.436 9.694 8.627 11.801 10.256 11.493 9.624 8.443 8.034 7.688 7.615 8.065 8.558 8.899 8.540 6.789 5.760 7.379 6.196 6.210 5.418 4.148 - 4.836 6.162 6.661 4.524 3.603 8.205 9.439 7.013 6.274 9.110 9.103 5.973 8.900 9.608 8.502 10.870 9.211 12.687 11.717 11.339 10.146 8.626 7.112 7.903 8.909 9.475 10.213 9.839 8.754 7.893 6.677 6.196 6.201 6.555 5.796 4.410 - 4.455 6.182 6.926 4.768 4.385 8.099 9.683 7.801 5.118 8.314 9.330 6.163 10.084 10.892 7.614 11.235 10.358 12.914 12.451 10.421 10.394 8.295 7.225 7.104 9.129 9.728 10.963 10.495 9.358 8.556 7.310 5.972 6.220 6.020 5.085 4.255 - 4.884 6.968 7.258 4.270 4.297 7.735 9.895 8.447 4.762 9.302 10.134 6.854 10.151 11.546 8.680 11.977 11.154 12.527 12.395 10.780 10.845 7.889 6.899 7.430 8.595 9.580 11.362 9.770 9.798 9.414 7.143 5.347 6.018 6.958 6.211 4.445 - 3.021 6.804 7.323 5.345 5.198 8.123 10.019 8.440 4.937 10.050 10.798 7.458 10.412 11.910 9.203 12.468 11.638 11.431 11.751 10.624 10.821 7.073 6.693 7.475 8.580 9.212 11.181 9.984 9.805 9.751 8.852 6.565 6.707 7.417 7.738 5.518 - 4.690 6.481 7.012 4.179 3.565 7.775 9.972 8.447 5.673 10.409 11.084 7.780 10.751 12.011 8.945 12.629 11.874 11.601 11.704 10.202 10.577 7.458 6.791 7.139 8.765 9.423 11.090 9.846 10.289 10.337 9.707 7.080 6.441 8.118 8.308 6.340 - 5.013 6.703 7.130 5.177 3.335 7.875 10.107 8.840 4.375 9.788 10.862 7.867 10.280 11.909 9.115 12.587 12.039 10.595 10.739 9.580 9.911 7.352 7.056 6.987 7.649 8.499 11.435 10.731 10.594 10.599 10.902 7.199 6.341 7.710 8.575 5.982 - 5.573 6.023 7.067 5.404 3.308 7.180 9.642 8.821 4.780 8.896 10.413 7.767 9.634 11.855 9.595 11.849 11.842 8.814 9.365 9.136 9.212 7.288 7.777 6.364 6.915 8.448 12.294 11.216 10.307 10.286 10.326 7.897 6.262 7.365 8.142 5.806 - 5.453 6.959 7.369 5.032 4.898 5.969 9.265 8.984 5.031 9.212 10.206 7.322 8.918 11.411 9.501 10.319 10.931 8.506 9.750 8.178 9.312 6.873 7.199 6.358 7.365 8.190 11.919 10.766 8.947 9.527 10.491 7.709 6.837 6.482 7.827 6.538 - 6.628 6.795 8.239 7.158 4.551 6.586 9.952 9.581 4.907 9.081 9.901 6.415 8.725 10.131 8.103 8.956 9.900 8.341 8.738 8.196 7.738 6.780 5.907 6.694 8.208 8.317 10.493 9.712 8.075 8.513 9.096 7.911 7.129 6.656 7.658 6.231 - 4.599 7.672 8.825 6.937 3.090 6.586 9.971 9.665 5.625 9.201 10.260 7.561 8.342 9.474 7.743 8.587 9.087 7.930 9.638 9.051 9.417 8.408 7.698 8.337 10.067 8.174 8.568 7.499 8.138 7.745 8.442 7.621 6.506 5.889 6.418 5.752 - 5.764 7.774 8.869 6.653 5.879 8.582 9.759 8.569 7.045 9.202 10.087 6.969 7.101 8.471 7.903 8.583 9.902 8.786 9.890 9.400 9.047 8.042 8.049 8.061 9.657 7.512 8.171 7.383 6.942 7.228 7.971 7.424 5.716 5.490 6.726 5.963 - 5.382 7.998 9.353 7.982 5.461 8.198 9.991 9.582 7.500 8.860 9.041 7.373 6.937 8.770 7.570 8.281 9.678 8.562 9.550 8.987 8.168 7.847 7.042 7.540 8.876 6.992 6.836 6.563 6.550 6.714 7.333 7.071 5.273 5.416 5.982 4.529 - 6.192 8.057 9.397 7.696 4.760 5.498 8.042 8.706 6.382 7.927 9.585 8.062 6.830 8.216 7.260 7.043 8.604 6.878 7.922 8.083 8.228 6.818 7.271 6.945 7.878 6.521 7.000 6.456 5.779 5.935 5.995 5.169 4.858 5.419 5.929 4.385 - 11.447 11.689 11.428 10.111 9.992 10.334 10.971 10.521 10.009 9.612 9.358 7.767 8.641 8.644 7.828 8.908 9.233 7.585 8.423 8.456 7.956 7.192 7.321 6.983 7.431 6.206 6.436 6.882 6.389 6.617 6.118 5.714 5.529 4.359 5.353 4.487 - 12.182 11.718 10.764 10.207 9.045 9.949 10.699 10.585 9.982 9.265 7.900 7.328 8.163 8.143 7.324 7.864 9.002 8.355 9.141 7.677 7.716 7.224 7.710 6.888 6.120 6.271 6.068 6.055 6.171 6.732 6.952 6.497 6.575 5.299 5.306 5.532 - 7.415 8.988 9.904 8.065 6.126 6.489 6.509 5.996 5.761 5.550 7.213 6.269 5.755 6.592 5.676 8.119 8.101 8.709 8.929 9.710 10.272 7.801 8.555 8.199 7.980 7.299 6.714 6.467 6.155 6.205 6.657 6.592 5.974 4.726 5.118 4.406 - 6.442 8.062 9.535 8.247 6.066 8.103 9.327 7.891 6.380 4.702 7.443 6.489 6.373 6.585 5.922 7.609 7.521 7.533 8.652 9.526 10.789 8.552 8.790 8.680 8.073 7.785 8.110 7.333 5.805 5.339 6.279 5.231 5.215 4.796 5.321 3.843 - 8.288 8.104 8.275 8.020 6.319 8.999 10.785 9.215 6.555 5.752 6.739 6.459 4.992 6.870 5.874 6.658 6.199 8.584 9.032 10.033 10.749 9.179 9.245 8.247 7.710 7.912 8.458 6.744 5.743 6.344 6.479 6.064 5.692 5.319 4.510 4.040 - 9.491 8.918 8.409 7.706 7.418 9.604 11.592 10.443 7.272 6.232 7.261 6.429 6.709 7.698 5.866 5.680 5.461 9.723 9.358 11.666 11.407 9.726 8.357 8.585 7.819 7.485 7.352 6.129 7.141 6.945 6.027 4.479 5.142 6.218 5.101 3.497 - 4.905 6.881 7.697 5.646 5.536 10.101 11.603 9.599 4.955 6.786 6.345 3.620 6.121 6.244 5.356 5.536 6.224 10.996 10.440 12.736 12.258 10.864 9.063 8.488 7.394 6.148 6.710 6.847 6.894 6.913 6.842 5.493 4.618 5.876 5.173 4.464 - 6.824 7.172 7.856 6.063 6.509 10.755 11.682 8.816 6.142 8.328 7.765 4.482 6.617 6.008 4.978 6.125 7.774 11.152 9.985 11.585 10.337 10.958 8.585 7.410 7.244 5.865 6.249 5.625 6.663 7.435 6.401 5.991 5.631 5.658 5.078 3.842 - 6.848 6.012 6.870 5.787 7.145 11.656 12.270 9.722 7.121 9.037 7.711 5.828 7.463 6.077 4.796 5.730 8.572 10.465 9.520 10.907 9.406 8.635 7.942 6.204 5.446 5.257 6.139 5.989 6.726 7.352 6.504 5.822 6.168 6.106 5.494 4.111 - 2.165 4.811 6.150 6.383 8.437 11.685 11.206 7.694 7.729 9.329 7.751 6.191 7.931 5.920 5.888 6.048 7.335 8.331 9.031 10.086 9.614 9.173 7.676 6.583 5.453 5.658 6.038 5.620 6.238 6.608 6.020 5.027 4.816 5.411 5.656 4.059 - 5.662 6.379 5.706 4.693 9.192 11.430 10.098 7.122 7.944 8.725 6.098 6.971 7.779 6.304 5.717 6.021 7.194 7.659 9.399 9.889 9.900 8.880 8.044 6.757 6.456 5.873 5.224 5.178 6.391 7.404 7.024 5.155 5.148 5.361 4.786 4.175 - 6.783 7.060 7.034 6.805 10.108 11.666 9.967 5.153 7.694 8.231 5.818 4.273 5.269 6.452 6.520 5.171 7.136 8.503 9.180 10.356 10.236 10.493 8.657 7.884 7.877 6.919 7.037 7.644 6.968 7.383 7.561 6.507 6.268 7.144 6.676 5.794 - 7.505 8.541 8.535 7.212 10.431 11.794 9.517 5.972 6.120 6.845 7.354 5.693 4.461 6.906 7.093 5.676 6.998 9.280 9.173 11.501 10.708 10.596 9.219 7.972 7.492 8.083 8.714 8.224 8.158 8.371 8.577 6.922 6.976 7.374 7.357 6.776 - 7.528 8.526 8.599 7.327 11.084 12.126 10.342 7.481 7.654 7.296 7.021 6.577 5.438 6.660 5.862 6.672 6.712 9.769 9.633 10.702 9.893 9.405 9.144 8.669 8.495 9.038 8.222 8.008 7.459 8.206 7.217 6.185 6.851 7.216 6.817 6.560 - 7.861 7.477 7.418 6.767 10.122 10.224 9.561 7.960 8.521 6.628 6.351 7.323 5.967 6.414 6.115 7.871 7.435 8.768 7.911 9.453 10.830 10.124 7.798 10.249 9.333 9.091 8.570 8.253 8.228 7.583 7.138 5.805 6.761 6.929 6.871 5.953 - 5.759 6.939 5.983 5.856 10.048 10.676 8.977 8.417 9.121 6.573 5.116 5.294 5.614 6.892 6.475 7.738 7.467 8.164 8.269 9.521 10.309 9.358 8.690 10.735 10.023 8.617 7.079 7.341 7.705 7.623 7.297 5.746 5.889 6.563 6.383 5.443 - 7.994 7.067 5.614 6.138 9.287 9.407 7.257 9.252 9.732 6.843 6.113 6.025 5.058 5.640 5.802 5.245 6.462 6.831 7.280 8.131 8.256 8.508 8.775 9.176 9.881 9.290 8.847 7.773 8.081 7.654 7.411 5.116 6.359 6.741 7.162 5.431 - 6.658 7.412 6.400 7.000 9.019 9.244 8.688 9.224 9.121 5.516 6.184 6.349 5.842 5.944 6.033 6.687 6.458 5.740 6.712 8.747 8.741 9.736 8.545 7.736 8.641 8.815 10.294 9.125 8.249 7.431 6.860 5.048 6.058 8.177 7.206 5.921 - 5.833 6.759 5.902 6.463 8.134 8.626 7.410 10.097 9.784 5.869 7.180 6.666 5.887 6.067 5.890 5.200 5.320 5.809 5.920 9.064 9.538 10.227 8.531 7.999 8.320 9.376 9.830 9.609 8.548 7.323 7.589 7.587 6.969 8.491 7.685 5.758 - 5.757 6.831 5.745 6.863 9.916 10.195 8.505 10.348 9.812 6.127 7.087 5.969 5.208 5.732 5.630 5.411 6.593 7.200 7.269 9.209 9.462 9.353 8.078 6.729 8.072 8.797 8.717 8.575 6.990 6.856 7.924 8.742 8.120 8.637 8.359 6.310 - 6.803 6.277 3.678 8.154 10.125 8.803 7.686 9.567 9.052 4.885 5.962 5.444 5.605 4.450 4.922 5.794 6.100 6.261 6.322 9.395 8.905 8.377 6.449 5.871 7.183 7.614 7.599 7.541 7.481 7.416 7.412 7.516 7.709 8.011 8.191 5.659 - 6.856 7.598 6.460 8.250 10.066 8.796 6.730 7.782 7.630 5.226 6.694 5.894 5.693 5.749 5.015 4.727 5.030 6.444 7.344 8.559 8.509 7.695 6.169 6.018 5.264 6.170 8.348 8.187 7.550 6.900 6.726 5.763 7.337 7.319 6.997 4.474 - 6.690 6.779 5.260 8.034 9.169 7.807 7.522 8.388 6.948 5.487 5.970 5.503 5.660 5.832 5.737 4.435 4.426 6.217 5.574 6.976 5.642 5.812 6.174 5.466 4.541 4.999 7.473 8.118 6.378 5.893 6.254 5.840 5.798 7.051 6.319 4.215 - 5.850 6.138 4.482 7.650 8.221 7.419 6.101 7.462 5.344 5.421 5.710 5.651 5.281 4.647 5.187 4.799 4.471 5.400 5.966 7.407 6.320 5.257 4.152 5.548 5.332 5.418 5.615 6.801 5.090 6.220 5.392 5.005 5.610 5.981 6.055 3.882 - 5.953 5.870 4.144 8.308 9.953 8.888 6.114 6.667 4.146 4.660 5.616 4.743 3.994 3.427 4.881 5.149 4.369 5.071 6.486 5.701 6.624 6.105 5.018 5.771 5.847 5.004 5.921 6.371 5.619 5.203 4.329 4.450 5.739 5.653 5.573 5.122 - 6.065 5.430 5.288 7.206 8.831 8.455 4.623 5.541 5.348 3.864 4.710 3.325 3.834 4.510 4.707 4.825 4.506 6.004 5.136 5.639 6.912 6.658 5.671 4.605 4.559 5.747 6.211 6.420 5.516 5.041 5.517 5.253 5.629 6.141 6.283 4.969 - 6.172 4.976 6.551 8.055 9.089 7.893 6.702 5.716 5.191 4.613 5.195 4.236 5.450 4.459 5.196 5.315 5.483 5.592 5.399 6.354 6.548 5.914 4.120 4.816 5.455 6.108 5.437 5.600 4.844 5.458 5.672 5.264 5.278 5.994 5.682 5.211 - 6.374 4.351 5.299 7.829 9.409 8.215 7.156 7.775 7.368 6.919 6.231 4.631 3.599 4.512 5.342 5.146 6.293 5.688 5.011 6.058 6.785 5.733 4.347 4.567 5.792 6.774 6.597 6.246 6.741 6.000 6.440 6.514 6.140 5.503 6.440 5.755 - 6.354 6.576 6.498 6.501 7.337 8.394 7.862 8.632 7.746 6.737 6.588 5.810 2.890 5.888 5.695 5.734 6.789 5.831 4.820 6.732 7.052 6.931 6.642 7.037 7.374 8.310 7.912 8.053 8.059 7.128 7.142 6.451 6.364 6.078 6.268 6.248 - 6.011 7.120 5.936 8.228 8.420 8.031 8.036 8.920 7.247 5.600 6.195 4.071 4.397 6.370 6.620 5.820 5.892 6.104 6.353 6.844 6.963 7.200 6.971 7.504 7.177 8.571 8.596 8.293 8.780 7.709 6.264 6.828 6.811 7.136 7.159 6.478 - 5.776 6.710 6.321 7.803 7.949 7.541 8.187 8.138 7.177 6.390 5.996 5.512 6.589 6.061 6.688 7.993 8.034 7.163 5.775 6.042 5.691 6.205 5.294 5.819 6.808 6.972 7.495 7.770 7.679 6.796 7.547 6.819 7.053 8.057 7.276 7.122 - 5.027 5.775 5.720 7.877 8.673 8.483 8.988 8.254 7.886 6.580 6.338 5.356 4.634 6.184 5.948 7.120 7.742 7.260 7.048 6.863 5.541 5.548 5.465 6.542 7.279 6.881 8.158 8.060 7.637 7.677 7.812 7.961 7.512 7.752 6.935 7.516 - 5.803 6.053 5.451 8.442 9.338 7.206 8.329 8.540 6.548 4.067 5.988 6.431 5.971 6.987 7.174 7.596 7.324 6.893 7.163 7.735 5.699 5.639 6.199 7.706 7.936 8.311 8.031 7.826 7.310 8.239 8.065 7.567 6.800 7.035 7.124 6.812 - 6.202 6.033 6.627 8.555 9.983 8.722 8.054 9.072 7.882 5.456 5.573 6.311 7.479 7.211 8.103 6.939 7.482 6.890 6.222 7.858 5.354 5.657 6.632 7.268 7.982 7.844 7.301 8.001 7.998 7.521 6.845 6.778 7.111 6.721 6.986 6.452 - 6.061 5.777 5.068 8.251 9.523 7.650 5.935 6.805 4.853 5.388 5.787 5.736 5.629 5.274 7.316 6.817 5.943 6.087 5.735 6.346 4.474 5.556 5.846 5.484 6.716 7.178 6.755 6.237 7.349 6.050 5.513 5.769 5.846 6.024 5.659 5.218 - 5.800 6.466 4.629 7.662 9.293 7.518 6.929 7.913 6.049 4.630 5.440 3.747 3.698 4.189 5.130 4.616 5.302 7.046 6.566 6.890 5.697 5.192 4.487 5.311 5.050 5.517 5.657 6.332 5.633 5.563 4.351 4.273 4.470 5.196 4.062 2.733 - 5.720 5.351 4.486 7.782 9.281 7.537 6.688 8.495 7.192 6.347 6.402 4.359 4.913 4.871 5.102 5.248 5.637 8.724 8.071 8.359 6.163 5.419 5.064 5.698 5.331 6.125 6.921 7.301 5.585 5.539 5.946 5.753 5.927 6.005 4.404 3.205 - 3.865 4.409 5.188 7.101 8.955 7.436 6.489 9.143 8.186 8.107 8.263 5.365 6.355 5.218 5.700 5.894 6.683 9.664 9.508 10.383 7.096 5.533 5.180 5.269 5.633 6.344 7.735 8.691 6.399 5.246 5.151 6.707 6.779 5.989 4.448 2.637 - 4.477 4.115 2.936 7.214 8.875 7.305 6.764 8.970 8.245 9.127 9.284 6.467 7.817 5.569 5.304 6.758 6.857 10.153 10.197 10.805 7.476 5.879 5.758 5.336 5.415 6.865 8.304 9.481 6.904 5.620 6.308 7.283 7.453 6.648 5.759 3.443 - 2.526 3.747 3.811 7.042 8.709 7.194 5.957 6.307 6.328 9.389 9.667 7.141 8.438 6.638 6.865 7.365 8.082 10.862 10.653 11.104 7.237 6.792 6.316 5.987 5.680 5.902 7.676 8.927 6.399 5.822 6.539 7.815 7.670 6.470 5.779 2.775 - 2.931 3.815 3.855 7.512 8.361 5.855 6.537 8.017 6.664 9.417 9.665 7.661 9.114 6.852 7.311 8.279 8.654 11.233 10.829 11.057 7.371 6.398 6.187 6.080 6.182 6.279 8.265 9.515 6.908 5.685 6.308 8.010 8.347 6.871 5.768 2.688 - 4.344 4.997 4.146 7.403 8.237 6.039 6.588 7.891 5.722 9.093 9.538 7.771 9.317 6.981 7.581 7.889 8.752 11.705 11.157 10.750 7.458 6.762 6.425 6.149 6.418 6.614 8.556 9.456 7.199 6.240 6.896 7.946 8.163 6.654 5.074 3.059 - 5.293 4.760 3.387 6.250 8.051 6.862 5.838 7.406 5.927 9.006 9.583 7.861 9.669 7.878 8.779 7.852 8.713 11.553 11.200 9.265 7.809 6.727 6.029 5.861 7.299 7.077 9.442 9.904 8.479 6.745 5.965 7.596 7.137 5.285 4.404 3.914 - 4.888 4.633 3.816 5.944 7.587 6.169 4.832 6.394 5.076 9.109 9.682 7.748 9.774 7.845 9.086 7.610 8.341 11.169 11.184 9.719 7.839 7.235 5.303 5.672 6.705 7.239 9.545 9.901 8.856 6.368 5.231 6.418 6.571 5.823 4.034 2.943 - 5.804 4.883 2.366 5.422 7.290 5.917 3.371 4.974 4.453 9.089 9.656 7.748 10.029 8.475 9.520 7.485 8.079 11.056 11.121 10.547 8.443 7.020 4.074 6.023 6.378 6.630 9.210 9.122 7.840 6.267 6.242 6.588 8.411 7.586 5.211 2.572 - 5.763 5.672 3.405 5.576 7.280 5.893 5.886 6.859 5.782 8.453 9.241 7.809 10.262 8.646 9.708 8.026 8.827 10.925 10.992 10.515 8.501 7.304 4.901 6.467 6.328 6.972 8.453 8.814 7.970 6.535 6.432 6.718 8.567 7.857 4.755 2.765 - 3.050 4.393 4.259 6.150 7.760 6.078 5.642 7.329 5.281 7.690 8.927 8.213 10.521 8.784 9.758 8.564 9.583 10.335 10.526 10.598 8.782 7.036 4.733 6.614 6.542 6.894 9.055 8.668 7.030 5.751 6.793 7.028 7.993 7.567 4.983 3.029 - 4.977 4.561 2.344 6.414 7.988 6.438 5.705 7.712 6.238 7.664 9.035 7.925 10.612 9.187 10.111 9.024 10.235 9.878 9.889 10.215 9.078 7.721 5.931 5.848 6.899 7.731 8.556 8.486 7.385 5.890 5.637 7.106 7.397 6.821 4.566 2.688 - 4.532 3.397 3.425 6.040 8.168 6.953 5.632 8.458 7.521 8.740 9.735 7.841 10.518 9.226 9.514 9.414 11.031 8.926 9.010 10.483 9.452 7.232 5.616 5.520 7.292 7.956 8.647 8.842 8.211 6.739 6.563 8.173 7.668 5.983 4.857 2.668 - 1.787 2.237 2.497 5.704 7.925 6.851 6.621 9.112 8.023 8.611 9.619 6.991 9.872 9.157 9.036 9.182 9.970 8.815 9.775 9.634 9.470 7.868 6.609 6.263 7.137 8.544 9.450 9.247 6.845 6.316 5.873 8.249 8.262 5.668 4.169 3.065 - 3.872 3.637 3.026 4.923 7.604 6.896 6.371 9.383 8.642 8.007 8.868 6.054 8.539 8.325 9.369 8.972 7.421 8.287 9.846 10.438 10.127 8.551 6.428 6.235 7.223 8.072 8.048 7.896 5.580 5.871 6.073 8.555 8.131 5.484 3.854 2.718 - 3.125 3.885 3.159 5.652 7.516 6.262 6.663 9.381 8.560 7.576 7.147 6.661 9.282 8.092 9.619 8.986 8.815 9.080 9.879 10.831 10.227 7.943 5.981 5.571 7.288 7.578 7.270 7.265 6.414 6.119 6.629 8.692 7.904 5.447 4.463 2.162 - 5.067 4.708 3.420 5.528 6.888 5.677 6.282 8.189 8.115 9.108 7.791 8.031 10.197 8.550 9.145 9.097 9.377 10.061 9.645 9.636 9.148 6.511 4.368 5.953 7.215 7.785 8.407 7.391 6.603 6.383 6.434 7.306 7.465 6.558 4.438 2.334 - 5.867 5.791 3.792 5.238 6.264 6.380 6.271 7.538 8.318 9.492 8.654 8.041 9.358 8.728 8.354 7.979 9.075 9.492 8.945 8.583 8.270 7.294 5.001 4.820 5.214 6.060 8.567 8.374 6.813 6.074 5.631 6.189 7.071 7.003 4.791 3.016 - 5.455 5.801 4.600 4.932 5.842 5.777 6.680 6.770 7.227 7.286 7.360 7.537 6.943 7.234 6.795 6.703 8.165 8.444 8.004 7.490 6.642 4.760 4.827 4.809 4.100 4.911 6.384 6.909 5.591 5.426 4.834 5.993 6.122 6.448 5.241 2.729 - 5.010 5.225 4.583 5.235 6.277 6.376 6.265 7.735 7.859 7.466 7.414 6.957 7.553 7.599 7.471 6.640 6.656 7.790 8.436 7.780 5.360 4.182 4.034 5.187 4.927 4.908 6.230 6.227 5.404 4.840 4.010 5.333 5.111 5.058 5.024 3.416 - 4.252 5.472 4.852 5.089 5.070 5.370 5.953 7.739 8.261 8.642 7.393 6.752 6.879 5.432 7.445 6.401 7.223 7.860 7.530 6.691 5.713 5.735 5.469 5.005 4.789 5.597 6.496 6.495 5.526 4.948 4.931 5.743 5.717 5.368 4.715 2.845 - 6.303 5.209 4.134 5.041 5.398 4.884 4.135 7.833 8.797 8.074 6.978 6.604 6.128 4.919 7.210 5.815 7.080 8.314 8.078 6.195 4.451 5.023 4.071 4.271 4.446 5.514 6.468 6.104 4.585 4.963 4.345 4.409 5.312 4.471 4.393 3.230 - 5.823 6.152 4.709 3.951 5.042 5.548 5.734 7.719 8.063 6.797 4.928 3.584 6.545 5.684 6.296 4.592 6.708 6.321 6.553 6.519 4.661 5.117 4.425 3.672 4.749 4.504 4.665 5.722 4.881 4.539 3.966 4.312 4.747 4.097 2.870 2.329 - 5.976 6.179 4.895 4.599 4.106 5.568 5.229 4.794 5.104 6.489 6.017 6.597 7.259 8.114 8.031 8.273 7.621 7.348 5.943 5.904 6.717 6.263 6.083 6.068 6.851 8.190 7.842 6.984 7.280 6.504 6.560 5.341 5.374 6.041 5.999 6.135 - 7.887 6.636 6.257 5.706 5.667 8.061 8.486 6.777 7.262 7.444 7.745 8.442 9.443 10.194 10.856 11.224 10.630 9.052 7.764 7.669 8.571 8.107 9.029 9.523 10.316 11.276 10.413 10.493 9.757 9.041 8.596 7.958 8.191 8.794 9.054 9.017 - 6.578 6.744 7.606 7.256 7.494 9.626 8.966 7.445 6.857 8.385 9.473 9.232 8.309 9.398 11.525 10.595 10.936 10.343 10.514 8.999 8.768 9.038 9.866 10.642 11.446 12.032 10.843 11.591 9.758 9.125 8.525 8.618 9.159 8.790 9.297 8.996 - 7.634 7.632 7.934 5.845 6.237 8.648 9.081 9.366 8.133 8.121 9.363 8.893 9.278 10.555 10.972 10.980 10.654 10.732 10.665 9.470 9.042 9.262 10.078 10.756 11.155 11.913 11.192 11.137 9.829 10.090 9.384 8.660 8.788 8.786 9.613 9.386 - 9.074 8.631 7.673 7.433 8.843 8.393 8.079 10.004 9.459 7.555 8.271 8.558 8.532 11.086 11.719 10.956 9.452 10.640 9.558 8.008 7.848 8.546 9.218 10.190 10.873 11.340 10.476 10.116 9.626 9.865 9.127 9.213 8.505 10.137 9.954 9.230 - 9.123 7.923 7.721 8.341 10.402 10.412 8.921 9.926 9.287 9.468 8.897 9.781 9.620 10.649 10.926 11.574 10.032 10.530 9.826 9.191 8.424 9.088 9.655 9.238 10.604 11.831 11.358 11.027 9.398 10.067 9.974 9.269 9.772 9.608 9.798 8.843 - 8.600 9.193 9.052 7.661 8.776 10.140 10.061 10.085 9.583 9.023 7.864 9.226 9.031 9.006 11.249 11.397 11.276 11.047 11.745 10.085 9.094 9.182 9.510 10.689 11.245 11.250 11.063 10.913 9.922 10.242 10.808 10.321 9.897 9.362 10.151 9.426 - 8.732 10.313 9.128 7.147 6.677 9.887 9.959 9.006 9.274 9.808 9.522 8.910 9.835 10.067 10.878 10.860 11.246 10.998 11.644 10.383 8.729 9.865 9.961 10.529 10.722 11.693 11.410 11.086 10.569 10.206 9.986 8.921 8.922 9.802 10.713 9.928 - 10.459 10.162 9.074 9.240 8.817 10.345 11.082 10.049 10.668 11.198 9.742 9.215 9.942 10.224 9.982 10.695 10.974 11.091 10.620 9.496 9.351 9.088 9.177 10.021 10.314 10.177 10.547 9.496 10.080 9.854 9.250 7.982 8.573 9.386 9.751 8.962 - 10.418 9.703 8.505 8.971 10.167 10.156 9.935 8.619 8.400 9.103 8.276 8.875 8.290 10.195 10.059 9.907 9.688 9.693 9.127 7.934 7.390 7.801 8.039 9.394 9.188 8.858 8.784 8.153 7.956 9.410 8.839 8.198 8.505 9.031 9.015 7.547 - 8.899 7.308 7.335 7.199 6.759 8.734 9.435 8.912 8.646 8.271 7.929 8.167 8.051 8.990 9.579 10.085 10.188 8.184 9.137 8.522 6.843 8.221 8.071 7.293 8.671 9.018 8.018 8.895 8.431 8.558 9.208 8.286 8.099 8.295 8.393 6.460 - 9.382 8.526 7.291 7.436 6.424 8.090 8.929 8.943 9.024 9.120 6.928 7.195 7.301 8.348 7.811 7.924 7.954 8.094 8.743 8.030 7.441 6.982 8.382 8.048 8.285 7.735 7.319 8.170 8.293 8.624 8.043 7.692 7.964 8.750 7.864 6.995 - 8.135 7.953 7.243 6.838 5.806 6.759 7.122 6.732 7.568 8.235 6.854 7.488 5.815 6.338 6.685 7.220 7.141 7.267 7.566 6.793 6.023 6.815 7.137 6.402 6.842 6.931 6.428 7.280 7.221 8.480 8.430 6.887 6.923 7.217 6.730 6.283 - 7.711 6.237 5.463 4.871 6.047 7.634 6.887 5.151 6.252 5.616 4.790 5.091 5.582 5.077 5.236 5.614 5.575 5.665 5.469 4.134 4.763 5.867 5.066 5.687 6.012 6.179 5.917 6.554 5.878 6.115 6.124 5.695 6.036 5.698 5.517 5.733 - 5.039 4.768 4.074 4.197 5.560 6.301 6.360 4.892 5.423 4.896 3.938 4.432 4.168 4.049 3.686 4.601 5.477 6.074 5.569 4.690 4.003 3.454 3.995 4.521 5.702 5.878 5.969 5.497 6.487 7.115 6.294 6.470 6.432 5.122 4.937 4.547 - 5.794 4.339 4.259 2.556 3.684 5.602 5.410 4.513 3.604 4.589 4.032 5.144 3.556 4.113 4.253 5.574 4.447 4.273 4.794 5.818 5.840 5.401 5.091 5.899 5.702 5.762 5.195 5.505 6.035 6.549 6.082 6.211 5.619 5.424 4.436 4.082 - 6.307 5.309 5.364 6.016 5.607 5.050 4.985 4.719 4.907 4.985 3.907 4.487 3.906 4.377 5.317 3.943 5.514 5.484 4.540 5.038 5.077 4.279 5.358 4.820 5.827 5.396 4.730 5.880 6.026 5.259 5.445 6.185 5.550 4.454 4.039 4.454 - 6.553 5.952 6.006 5.316 5.928 5.808 5.543 5.568 4.731 5.323 3.754 3.252 4.242 4.329 4.696 4.909 5.953 6.569 5.509 5.345 4.770 3.872 3.594 4.496 5.310 5.486 5.375 5.480 6.138 6.374 5.477 5.772 5.401 5.762 5.505 5.154 - 6.120 5.966 5.309 4.999 4.520 3.623 3.495 4.421 6.247 5.445 4.734 5.150 4.033 5.478 5.507 5.871 5.915 6.013 5.666 6.033 5.252 4.208 3.766 5.370 5.475 5.931 6.314 5.895 6.447 7.067 6.539 5.786 6.078 6.585 5.645 4.665 - 6.772 6.015 5.716 4.982 5.766 4.455 4.687 4.969 5.955 5.438 4.154 5.113 4.635 4.545 5.179 3.812 4.545 5.070 4.974 5.906 5.688 4.868 4.999 5.267 5.310 5.126 4.678 5.569 6.497 6.088 6.480 6.267 6.202 5.770 5.619 4.996 - 5.699 4.189 4.396 5.327 6.967 5.864 6.670 5.943 7.322 6.793 4.119 3.909 4.265 4.902 4.518 3.713 3.802 5.861 5.538 5.439 5.414 4.498 5.409 5.177 5.943 5.595 4.694 5.518 6.456 6.225 6.355 6.604 6.356 5.991 5.418 4.804 - 5.632 6.626 7.080 7.320 7.179 5.758 6.235 6.546 6.019 6.860 6.048 5.554 5.379 6.331 5.408 4.322 4.725 5.100 4.199 5.703 5.043 4.272 5.045 4.416 5.154 5.854 5.428 5.863 5.898 6.215 6.087 6.002 5.810 5.956 5.208 5.153 - 10.766 10.607 10.325 8.910 5.957 7.247 7.678 7.735 6.984 7.894 7.617 7.781 8.216 7.601 5.698 6.008 5.523 5.465 5.879 5.897 5.941 5.842 5.216 6.468 6.287 6.389 6.431 5.615 6.254 6.806 6.262 7.169 6.587 7.032 5.880 5.893 - 9.584 8.324 7.963 8.164 7.164 6.093 7.277 7.696 7.870 6.765 5.784 5.422 5.832 5.178 4.719 5.020 5.469 5.241 3.668 4.741 5.738 5.283 4.856 4.095 5.010 5.835 5.846 5.992 6.439 5.960 6.768 6.865 6.899 6.984 5.782 4.294 - 4.680 5.433 6.236 5.301 5.491 6.276 8.292 8.124 6.872 7.500 7.071 6.189 5.614 4.774 5.559 4.414 4.558 3.823 3.451 4.930 5.964 5.691 6.208 5.473 4.960 5.479 5.660 5.603 6.536 6.547 7.032 6.719 6.185 5.651 5.548 5.066 - 7.113 5.579 7.163 6.698 6.197 6.039 7.031 8.078 7.200 6.499 5.264 6.505 6.208 4.890 3.820 4.702 5.909 5.283 5.309 4.964 5.471 5.038 5.701 5.920 5.992 6.376 5.636 5.558 6.350 6.820 6.917 7.414 6.465 6.261 5.491 5.376 - 8.327 6.764 6.624 7.305 6.195 6.447 6.329 6.973 6.141 6.875 5.798 5.813 5.533 5.547 5.077 4.983 4.797 3.950 4.862 4.996 4.533 4.429 4.843 5.343 4.614 5.372 5.438 5.682 6.427 6.249 5.874 6.813 6.395 6.259 5.581 5.481 - 8.172 7.986 8.148 7.353 7.361 6.249 7.406 6.776 6.067 7.128 6.129 5.826 4.870 4.800 4.393 5.052 5.264 5.117 4.772 4.523 5.927 5.611 5.441 5.324 4.768 5.485 6.792 6.415 6.564 6.205 5.808 6.487 6.832 6.310 5.378 4.883 - 10.504 9.883 8.639 8.306 8.376 8.794 7.868 8.485 7.689 6.375 5.865 4.776 4.540 2.388 3.997 5.617 6.308 6.387 5.182 3.715 4.593 5.075 5.216 5.441 5.484 5.848 5.714 6.061 6.698 6.032 6.156 6.193 6.066 6.557 5.759 5.051 - 7.223 8.386 8.334 8.172 8.182 8.573 7.991 7.270 5.973 5.080 4.644 5.579 6.100 4.280 5.902 6.179 6.838 6.364 4.732 2.985 4.217 4.768 5.762 5.754 5.227 5.383 5.151 4.541 5.547 5.651 5.383 5.831 5.894 5.509 5.676 4.421 - 6.032 7.924 8.872 7.621 8.008 8.996 8.433 9.045 8.672 8.734 8.607 8.809 8.839 8.612 8.574 8.583 8.762 8.900 8.847 8.776 8.979 8.030 6.712 6.924 7.225 6.725 6.726 6.397 5.791 6.628 7.477 7.363 7.137 7.269 7.446 7.260 - 8.932 8.647 9.757 9.044 9.031 9.299 9.145 9.330 9.300 9.309 9.251 9.490 9.428 9.319 9.294 9.377 9.427 9.532 9.577 9.815 9.874 8.794 7.154 6.983 7.846 7.274 7.489 6.836 6.406 7.348 7.791 7.010 7.841 7.756 8.030 8.000 - 7.306 7.965 8.054 8.403 7.408 6.666 6.809 6.734 5.740 5.661 5.324 4.395 4.250 3.887 4.630 4.896 5.065 4.722 3.802 4.515 4.455 4.406 4.684 6.287 5.417 4.749 5.186 5.152 5.794 6.008 5.921 6.032 6.349 5.837 5.834 5.221 - 6.972 8.049 8.142 7.552 7.417 6.124 6.071 6.342 5.811 4.862 4.767 6.087 4.968 5.395 5.120 5.251 4.765 5.045 4.112 3.880 4.912 4.363 4.711 4.693 4.368 4.872 5.233 6.160 4.836 5.058 5.265 5.821 6.466 6.143 5.487 4.349 - 7.733 8.979 8.520 6.655 6.398 5.895 4.870 6.060 6.699 6.122 6.423 5.601 4.799 6.309 6.021 4.106 4.688 4.417 4.917 3.403 5.056 3.815 4.314 4.587 4.565 5.267 5.081 5.157 4.809 5.379 5.803 6.226 6.708 5.680 6.532 5.050 - 7.094 7.338 6.082 6.038 6.909 6.584 6.912 5.974 7.364 6.699 5.948 5.289 4.791 4.781 5.514 5.509 4.151 4.720 4.636 4.943 4.904 5.303 5.250 5.721 5.530 5.511 5.225 5.042 5.335 5.736 5.629 6.152 6.168 5.828 5.900 5.194 - 6.759 7.766 6.344 6.754 7.568 7.189 6.802 5.115 6.547 6.881 7.361 7.134 6.904 6.856 7.091 6.901 6.526 6.484 6.597 6.864 6.686 6.517 6.449 6.918 6.617 6.232 6.672 6.194 6.885 7.237 7.485 7.838 7.926 7.772 7.236 6.783 - 6.179 6.448 4.745 6.561 6.789 5.956 5.433 5.844 5.417 4.432 3.960 4.676 5.144 4.514 5.104 4.730 4.677 5.024 4.984 5.444 4.824 4.059 5.047 5.013 4.686 4.819 5.198 5.090 3.797 4.094 4.633 5.148 4.925 4.899 4.689 4.567 - 6.790 6.565 6.768 5.896 3.534 4.657 4.782 4.928 4.794 4.185 3.856 4.852 4.247 4.508 4.234 3.190 4.716 4.803 4.665 4.643 5.143 4.962 4.460 4.766 4.228 4.781 4.415 4.397 4.580 4.607 4.651 4.681 4.424 4.782 4.639 3.021 - 6.476 6.541 6.463 6.088 5.827 6.121 6.511 4.932 4.963 5.681 5.193 4.802 4.341 4.025 4.309 3.995 5.630 3.811 4.356 4.627 4.400 4.535 3.997 4.235 3.929 4.640 4.017 4.135 3.950 4.716 4.921 4.528 4.270 4.205 4.585 3.890 - 6.764 5.606 6.375 5.937 5.273 5.505 5.322 4.142 4.879 4.901 4.629 4.950 5.087 4.329 4.584 3.872 5.261 5.083 3.584 5.196 5.473 4.259 4.779 4.380 4.604 4.490 4.068 3.764 3.555 4.877 5.152 4.869 4.621 4.153 3.842 3.734 - 3.476 6.030 5.919 5.139 6.694 7.125 6.565 6.042 5.591 5.907 4.004 5.459 5.788 5.839 4.844 4.402 5.078 4.343 3.850 4.387 4.262 4.151 5.191 4.830 4.384 5.068 5.180 5.438 4.306 4.737 5.644 5.018 4.847 5.241 4.214 4.155 - 2.444 5.577 6.492 5.129 5.584 6.054 5.865 6.192 5.231 4.940 4.357 4.349 3.751 4.705 4.077 4.043 5.266 4.114 4.608 4.693 4.489 4.555 4.399 4.134 4.120 3.820 4.835 5.382 3.610 4.409 5.175 4.668 4.178 5.218 3.993 2.985 - 6.282 5.874 6.009 4.739 3.378 6.243 6.874 5.452 4.093 4.984 5.241 5.363 5.845 5.247 4.554 4.484 4.692 3.918 4.038 4.247 4.502 4.296 4.790 4.680 5.070 4.800 5.386 5.010 3.943 4.645 4.020 3.860 4.892 4.974 4.556 4.060 - 6.205 5.154 4.697 5.647 6.139 6.866 5.080 4.683 4.020 5.474 5.819 5.203 5.093 4.201 4.638 3.510 4.207 4.294 3.495 5.066 5.306 3.845 4.940 4.711 5.237 5.502 4.973 4.332 4.801 4.369 4.162 4.370 5.309 4.799 4.009 3.482 - 5.751 5.637 5.868 4.845 5.533 6.443 6.712 6.734 6.022 6.244 5.599 5.623 5.635 3.811 4.356 5.047 4.731 4.491 4.298 4.547 4.580 3.842 5.589 5.618 5.031 4.631 5.327 5.051 5.550 5.369 5.095 4.442 4.576 5.074 4.654 4.723 - 3.998 5.224 5.489 6.206 6.687 7.169 7.131 6.673 6.210 6.014 5.904 5.128 5.483 6.280 6.336 6.576 6.419 6.608 6.825 6.342 6.618 7.130 6.896 6.917 6.970 7.377 7.652 7.509 7.743 7.932 7.928 8.143 8.070 8.030 7.900 7.245 - 5.701 5.408 5.596 6.537 8.074 7.607 6.371 6.152 6.212 6.650 5.846 6.037 6.304 5.055 5.000 5.492 4.992 5.167 5.086 4.681 4.887 5.765 5.591 5.495 5.502 6.034 6.263 6.368 6.272 6.260 6.227 6.476 6.647 6.596 6.561 6.116 - 7.158 5.765 4.678 6.877 7.936 7.104 7.029 6.753 5.700 4.508 6.036 5.725 5.009 4.679 4.422 4.026 3.922 4.455 4.219 5.237 5.236 5.137 4.689 5.740 4.926 5.308 5.136 4.993 5.453 4.944 4.201 3.501 3.866 4.145 3.812 4.157 - 6.891 5.328 6.457 7.318 7.524 6.623 5.976 5.542 5.291 4.458 6.154 5.950 5.058 4.190 4.562 4.792 4.412 4.022 4.269 4.233 3.874 4.749 4.855 4.447 4.519 4.105 4.625 3.843 4.770 4.493 4.141 3.683 5.220 5.166 4.259 4.263 - 6.620 5.833 5.655 5.824 5.746 5.212 5.321 5.440 5.123 4.648 5.809 6.716 4.864 4.556 4.844 4.900 5.588 4.666 4.727 4.709 4.418 4.706 4.872 5.571 5.248 5.509 5.672 5.634 5.431 4.303 4.640 4.648 4.602 4.995 4.923 4.136 - 4.762 5.715 6.074 5.664 6.177 6.684 5.140 5.508 5.754 4.867 4.375 5.326 3.599 5.144 5.049 5.765 4.757 3.589 4.268 3.659 3.368 5.219 5.939 4.866 4.325 5.117 5.063 5.136 4.609 3.419 5.283 5.229 5.154 5.207 4.948 4.124 - 4.325 3.482 5.018 5.073 6.137 5.464 5.434 3.735 4.282 4.006 5.023 3.956 2.780 4.246 4.526 4.077 4.217 4.020 3.278 4.225 4.203 4.675 4.937 4.304 3.862 4.463 4.837 4.603 3.186 2.550 3.153 3.360 4.095 3.926 4.000 3.827 - 3.764 4.034 4.971 4.378 3.455 4.023 4.780 4.922 4.623 4.127 4.634 4.248 3.950 3.512 4.196 4.130 4.625 4.218 2.921 4.263 4.562 5.940 4.803 4.324 4.306 4.248 4.221 4.265 4.049 4.378 3.438 4.601 4.792 3.887 3.645 2.687 - 4.684 4.091 4.132 3.735 4.716 4.691 5.247 4.415 2.943 3.627 3.666 4.770 3.754 4.532 3.429 3.976 4.250 4.393 4.142 4.617 4.713 5.170 4.152 5.104 4.683 4.233 4.208 3.844 3.684 4.195 3.907 3.729 4.199 4.236 3.775 2.988 - 2.818 5.334 6.112 4.758 4.923 4.305 4.735 4.767 4.411 5.567 5.101 4.303 4.139 4.540 4.102 3.520 3.961 4.385 5.029 4.920 4.615 5.434 5.559 4.961 4.350 4.238 3.923 3.661 3.121 4.248 4.650 3.436 4.181 3.638 3.017 2.522 - 3.698 5.977 6.366 4.672 5.425 5.218 4.533 3.088 4.330 3.992 3.447 3.527 3.901 4.379 3.559 4.392 2.440 4.199 3.640 3.953 4.668 4.794 4.661 4.711 4.334 3.728 4.320 3.904 3.576 4.404 3.893 3.315 3.158 3.258 3.226 2.519 - 4.380 5.806 5.336 4.252 3.829 4.483 3.236 3.424 3.349 4.070 5.053 4.499 3.859 3.494 2.362 4.145 3.599 4.623 4.212 4.867 4.958 4.930 4.913 4.227 4.947 3.790 3.471 3.367 3.706 3.661 3.024 2.918 2.818 3.534 3.480 2.781 - 5.192 5.089 5.829 4.135 3.081 2.487 2.642 3.804 4.526 4.931 4.219 3.638 4.408 5.501 3.930 2.820 3.182 3.874 4.847 3.620 5.269 5.088 5.997 4.673 4.677 4.278 4.147 3.879 3.325 3.237 3.108 2.993 3.285 4.074 3.400 3.170 - 4.175 5.164 5.148 4.423 4.501 4.353 5.273 5.593 5.220 4.135 5.010 4.715 4.469 4.961 4.856 4.647 3.629 4.186 4.326 3.556 4.701 4.922 3.634 4.262 4.507 4.164 4.181 3.947 3.160 3.404 3.556 3.951 3.339 2.829 2.782 2.268 - 5.478 4.523 5.149 4.930 4.964 4.252 4.339 3.748 5.053 3.950 4.693 4.377 3.911 4.517 4.265 4.590 3.730 3.722 4.545 4.148 4.385 3.271 4.100 4.483 4.396 4.840 4.257 4.132 3.772 3.387 2.900 3.689 2.767 2.439 3.184 2.901 - 4.773 4.128 5.266 5.192 5.521 4.974 3.009 4.783 4.824 4.420 5.500 4.596 3.978 4.517 4.420 4.149 3.739 4.035 4.010 4.756 4.844 4.071 4.902 3.699 4.143 3.951 3.863 4.402 4.181 3.997 4.509 5.768 5.763 5.677 5.471 4.709 - 5.771 5.664 5.615 5.137 5.121 4.239 4.860 5.675 5.626 4.629 3.566 5.330 5.341 4.075 5.040 4.974 4.629 4.136 3.208 4.329 4.660 4.325 4.770 3.912 2.997 2.982 4.403 4.446 3.973 4.516 5.004 5.298 5.423 5.320 5.060 4.141 - 5.034 6.215 5.576 4.103 4.538 4.991 6.164 5.789 5.066 4.759 5.751 5.078 3.690 4.570 4.800 5.447 3.355 4.887 4.599 4.201 4.814 5.054 3.885 4.678 4.702 4.907 4.529 4.711 3.985 4.393 4.109 3.786 4.135 3.409 2.587 3.248 - 4.377 5.335 5.661 5.502 5.051 4.571 4.166 3.910 4.763 5.282 6.159 4.933 4.655 4.786 4.814 5.180 3.516 3.658 3.475 5.122 4.510 4.766 4.286 5.185 4.825 3.991 4.779 4.342 4.769 4.617 3.987 3.416 3.952 3.692 3.472 3.565 - 5.149 6.250 5.634 4.661 4.814 4.575 5.101 5.712 5.730 5.667 5.409 4.918 4.295 3.864 4.465 4.394 3.910 2.833 3.097 3.674 4.374 4.925 5.028 3.122 3.645 4.531 4.666 3.981 4.402 4.095 3.983 3.661 3.451 2.979 3.460 2.828 - 3.926 4.104 4.137 4.355 5.279 5.518 5.006 5.769 5.083 5.533 4.821 3.473 3.201 2.891 3.308 3.864 4.817 4.532 4.744 4.828 3.838 4.934 5.154 3.986 4.147 4.762 4.505 3.679 4.248 4.413 3.220 3.984 3.893 4.583 3.896 3.508 - 5.567 5.924 6.302 6.132 4.965 4.410 5.655 5.092 6.279 7.140 4.994 3.200 3.924 3.879 4.441 3.636 3.745 4.308 4.322 3.901 5.763 5.397 4.968 4.276 3.599 5.165 5.619 4.420 4.316 4.795 3.806 4.570 4.057 5.059 4.776 3.826 - 5.456 6.556 6.441 6.698 6.849 5.489 6.202 6.211 5.891 5.957 6.216 6.214 5.903 5.664 5.165 4.791 3.969 4.761 4.426 4.195 5.465 5.196 5.756 5.137 4.546 4.049 4.615 4.643 5.324 4.410 3.916 4.408 3.543 4.047 4.609 3.699 - 3.317 5.245 5.391 5.182 5.706 6.243 6.617 6.826 6.580 5.946 6.212 6.387 5.257 4.499 5.141 3.998 3.598 3.684 4.807 4.742 5.070 4.833 5.399 5.298 5.850 5.320 4.802 5.121 5.164 4.216 3.669 4.291 5.177 4.917 4.861 3.734 - 4.547 5.332 5.745 6.300 6.751 5.247 5.142 5.701 6.528 6.287 5.632 6.358 4.646 4.897 4.930 4.288 3.766 3.194 4.134 3.722 4.214 5.221 5.637 5.609 6.294 5.553 5.188 4.693 4.956 4.718 4.055 4.232 4.790 4.828 4.309 3.460 - 6.221 5.204 5.270 5.613 6.187 5.850 6.831 6.075 5.159 5.758 5.874 5.431 5.263 5.620 5.617 5.719 4.936 3.843 5.348 4.805 4.357 5.634 5.352 5.022 5.098 4.512 5.207 4.109 4.078 3.578 3.935 4.002 2.935 3.397 3.279 1.602 - 5.726 4.992 6.197 6.566 6.582 5.134 5.618 5.212 5.214 5.440 5.709 4.191 5.069 3.725 3.655 4.193 4.435 4.324 4.974 4.435 2.505 4.009 3.399 5.086 5.080 4.850 3.954 4.310 3.996 3.782 3.340 3.577 3.084 3.847 3.553 2.220 - 4.555 6.269 6.866 4.992 5.283 5.647 6.692 6.753 5.524 5.257 5.566 6.045 5.418 5.672 5.284 4.600 5.748 4.882 4.000 4.785 4.495 4.148 4.998 5.707 5.107 4.101 4.190 4.377 3.248 3.591 3.397 3.254 3.327 4.150 3.641 2.215 - 5.029 6.758 6.727 6.473 5.537 4.695 5.551 5.653 5.617 5.656 5.555 6.982 6.409 5.206 4.559 2.684 4.510 4.824 4.557 4.034 4.684 4.100 4.160 4.478 4.507 4.891 5.161 3.538 3.032 3.919 3.354 3.639 3.943 2.986 3.045 2.809 - 5.998 4.337 5.177 5.996 5.795 6.453 5.656 5.549 5.909 5.930 6.471 5.536 4.889 4.625 4.639 4.819 3.667 4.712 4.671 3.539 4.254 4.375 4.759 4.795 4.821 4.592 5.109 3.586 3.361 4.402 3.597 3.971 3.815 3.538 2.577 2.811 - 6.444 5.128 5.580 6.238 6.757 6.928 5.789 6.673 6.222 7.403 7.843 6.638 5.300 5.163 5.769 5.185 4.717 5.066 4.809 5.004 3.669 4.445 4.630 5.278 5.226 4.356 4.821 4.546 4.310 3.817 3.341 3.311 3.226 3.300 2.964 2.992 - 5.862 7.122 7.051 7.193 7.291 5.589 6.537 6.518 4.934 6.599 6.334 4.551 5.470 6.458 6.097 4.894 4.205 4.450 4.776 4.408 4.031 5.277 5.915 5.446 6.005 6.495 4.621 4.127 3.384 3.315 3.437 3.619 4.137 3.138 2.890 2.397 - 6.556 6.729 5.255 6.161 7.350 7.079 5.228 5.104 6.613 5.655 4.840 4.940 4.248 4.713 4.740 3.074 3.362 3.707 4.639 4.598 3.876 4.758 5.625 5.694 5.687 5.498 4.397 4.376 3.260 4.038 4.467 4.244 4.587 3.904 3.625 1.784 - 6.277 6.791 5.203 7.313 8.550 7.126 4.879 6.843 7.077 6.018 5.455 5.435 6.220 5.519 4.002 3.640 4.198 4.776 4.911 4.366 3.629 3.400 3.956 4.882 6.684 6.754 4.119 4.763 3.955 3.633 3.933 3.634 3.601 3.110 2.744 2.263 - 6.528 6.487 3.463 4.727 7.900 7.217 5.799 5.076 4.918 4.894 5.698 5.922 5.799 4.429 2.357 3.324 3.697 4.902 4.362 5.838 5.463 5.689 5.969 5.291 5.740 5.991 4.201 5.050 4.059 4.343 3.358 2.923 3.014 3.308 2.870 2.447 - 7.674 7.690 5.706 5.742 8.678 8.225 5.748 6.947 6.091 3.669 5.821 5.375 5.284 3.974 6.394 6.409 4.544 5.113 5.049 5.590 5.299 5.863 6.098 4.586 4.918 5.145 4.782 5.074 3.685 3.258 3.323 3.894 4.513 3.999 3.609 3.270 - 7.457 7.746 6.051 7.517 9.488 8.506 5.202 7.661 7.307 4.768 4.593 3.550 3.920 5.443 7.804 7.386 3.692 4.571 4.746 5.993 5.616 4.802 4.894 4.136 5.910 6.597 6.459 4.899 4.219 4.606 4.355 4.475 4.229 4.847 4.397 4.073 - 7.136 7.255 5.089 6.882 9.532 8.625 5.896 8.684 7.894 4.781 5.740 4.999 5.374 5.080 7.772 7.494 4.609 3.971 4.865 6.354 6.281 5.987 5.647 4.662 6.641 7.548 6.197 4.338 3.648 5.101 5.769 5.083 4.419 5.501 4.946 3.722 - 7.140 7.364 4.906 6.500 9.634 8.995 5.049 8.674 8.195 5.148 6.079 4.900 5.368 4.394 7.549 7.656 3.955 3.516 4.608 5.632 5.656 5.334 5.390 5.797 6.219 7.061 5.917 3.850 3.962 4.987 6.034 4.507 4.769 5.895 4.069 3.145 - 7.292 7.697 5.893 7.347 10.060 9.360 5.654 8.573 7.939 5.371 6.746 5.632 3.701 4.959 7.644 7.835 4.262 3.055 4.007 4.318 4.497 4.655 5.037 6.168 6.913 6.653 5.760 3.283 4.290 5.506 5.036 3.987 4.502 5.846 3.555 2.427 - 7.462 7.636 5.497 7.322 10.238 9.488 5.235 8.561 8.321 5.338 6.558 5.127 4.084 5.134 7.882 7.773 3.445 3.592 4.876 4.112 4.566 4.602 5.322 5.709 6.635 7.518 5.812 3.514 4.245 5.789 6.132 4.542 4.970 5.925 3.727 2.270 - 7.620 7.900 6.558 7.977 10.400 9.601 6.076 8.729 8.020 4.438 6.375 5.669 4.691 3.511 8.319 8.299 3.531 3.127 3.629 4.063 4.732 5.253 5.556 5.764 6.228 6.965 4.673 3.975 4.484 5.599 6.125 4.695 5.225 6.722 4.035 3.054 - 6.798 7.442 5.851 7.941 10.363 9.281 5.553 8.246 7.855 5.469 7.277 6.343 4.926 5.225 8.946 8.546 4.816 3.747 4.913 5.947 5.627 5.283 6.252 5.817 6.803 7.688 6.036 4.136 3.990 4.852 5.328 4.894 5.732 6.203 3.983 2.606 - 8.295 8.130 5.688 8.677 10.567 9.144 4.780 7.213 5.831 5.314 6.516 6.155 6.967 5.996 8.684 7.987 4.720 4.415 5.414 6.445 6.225 6.351 5.256 5.241 6.072 6.280 5.393 4.894 4.714 4.961 5.492 4.794 5.516 6.130 4.282 3.489 - 7.565 8.266 6.336 7.885 9.955 9.143 6.488 7.474 6.228 4.125 5.008 4.888 5.876 5.568 7.384 6.369 4.517 4.719 3.710 4.950 5.285 5.983 5.554 5.478 5.629 5.978 4.684 4.395 4.488 5.864 6.453 4.478 5.133 4.999 3.685 3.233 - 9.202 9.771 10.051 9.099 8.004 7.708 6.375 6.653 7.398 7.994 8.616 7.647 5.621 5.842 6.487 6.297 5.108 4.881 4.091 5.522 6.009 6.199 4.938 5.180 5.471 5.748 4.866 4.528 3.987 5.320 5.739 5.272 4.538 5.288 5.395 4.498 - 10.423 10.510 10.508 10.089 10.004 8.467 6.205 6.926 6.960 6.615 7.874 6.426 4.846 4.155 5.964 6.043 4.764 3.672 4.770 4.766 5.191 4.975 4.962 5.256 5.823 6.054 5.119 5.360 4.899 5.311 5.546 5.378 5.337 5.271 4.917 4.281 - 8.856 7.722 6.303 6.417 9.149 8.449 7.667 6.932 5.967 6.532 6.579 6.391 5.207 5.287 5.343 5.796 5.303 4.425 4.421 4.510 4.752 5.052 4.654 5.570 5.770 5.703 5.747 4.810 5.022 4.996 5.509 4.740 4.497 4.621 4.686 4.278 - 6.519 6.890 6.378 6.754 8.491 7.778 6.627 6.062 3.947 4.537 5.607 4.244 3.801 5.853 5.300 4.908 4.928 5.137 5.343 6.031 5.072 5.160 5.983 6.133 5.936 5.466 5.374 4.916 5.010 5.099 5.418 5.225 4.988 5.484 4.726 3.598 - 6.012 5.921 4.820 7.000 8.862 8.231 6.613 5.709 4.692 4.948 5.176 3.612 5.398 6.115 4.846 5.703 5.943 5.751 5.034 6.019 6.806 6.106 6.551 6.683 7.876 7.439 5.731 5.440 5.143 5.767 5.725 5.291 5.512 5.611 5.623 5.521 - 8.612 8.097 7.296 7.162 8.973 9.545 7.801 8.607 7.815 7.801 5.612 6.485 6.431 5.935 6.245 7.175 7.247 6.116 5.343 5.764 7.245 7.718 7.061 8.394 9.186 9.453 7.403 6.435 6.777 6.851 6.482 7.356 6.620 6.894 6.362 5.702 - 12.430 11.259 9.238 9.899 11.099 11.762 11.518 11.058 10.602 9.828 8.953 7.932 7.293 7.724 8.355 9.275 9.435 8.313 6.249 7.021 7.408 8.325 8.284 7.418 9.520 10.168 9.319 8.826 9.372 8.771 8.334 9.478 8.595 7.766 7.932 6.200 - 11.049 9.739 9.307 9.397 9.465 8.800 8.823 7.773 7.334 7.748 6.923 6.344 5.584 6.583 6.712 6.282 6.781 6.403 5.436 6.009 7.202 7.938 8.638 8.296 10.160 10.351 9.274 6.601 6.714 6.963 6.587 6.871 7.431 7.355 7.162 5.696 - 11.803 12.089 10.696 11.567 10.864 9.602 10.616 9.639 9.123 9.676 9.267 9.197 9.137 8.804 8.919 8.441 8.092 8.044 7.899 7.330 7.184 8.833 9.339 8.710 9.602 10.089 8.818 8.066 7.699 7.080 8.098 8.035 8.128 8.672 7.950 5.586 - 13.393 13.055 12.316 12.188 11.168 10.650 10.840 10.115 9.039 9.816 10.156 10.299 9.887 9.959 9.791 9.267 8.535 7.483 7.508 7.621 7.519 8.215 8.382 9.417 9.818 10.838 10.012 8.723 7.908 7.571 8.273 8.399 7.700 8.663 8.065 6.426 - 11.110 9.655 7.014 9.325 8.760 6.907 7.190 6.904 7.228 7.681 7.207 6.624 6.366 6.575 6.130 6.199 4.113 4.903 5.401 5.601 5.568 6.166 7.839 8.410 9.445 10.266 8.599 6.166 5.660 5.763 6.427 6.978 7.687 8.156 7.809 5.429 - 7.222 7.236 6.545 7.622 8.703 8.419 9.538 8.320 6.313 6.992 6.878 7.080 6.176 5.165 6.713 6.556 4.196 5.271 5.007 4.777 5.248 5.376 7.144 8.598 9.818 9.963 8.861 6.801 5.657 6.308 5.505 6.454 6.831 7.352 7.482 5.486 - 7.623 6.033 5.166 7.951 8.844 8.011 9.384 7.510 6.172 6.342 5.844 5.110 5.392 5.493 6.261 5.346 4.630 5.090 4.852 5.094 4.994 5.651 6.462 8.123 8.724 10.297 9.352 6.904 4.919 4.822 5.179 5.604 7.213 7.845 7.542 5.487 - 7.472 6.806 6.747 9.836 9.759 8.973 9.263 6.209 6.933 6.116 5.603 4.599 4.855 5.287 5.399 5.221 5.278 4.193 4.736 4.847 5.311 5.813 6.871 8.398 9.387 10.772 9.216 6.907 5.875 6.114 6.417 6.056 6.765 7.206 6.546 5.458 - 5.553 6.123 7.275 10.415 9.793 8.613 9.607 7.146 6.427 5.780 5.789 5.505 2.288 5.597 6.807 6.627 6.157 4.718 6.006 5.958 5.967 5.689 7.413 9.716 10.540 11.061 10.186 7.564 6.438 6.900 7.337 7.214 7.669 7.252 7.739 6.303 - 4.225 4.559 8.711 10.759 9.744 8.968 8.744 7.297 6.474 6.259 5.109 5.613 4.720 5.174 5.896 5.564 4.650 4.667 4.119 4.906 5.757 6.045 7.563 10.334 10.688 10.801 10.233 7.995 5.891 6.039 6.756 6.148 6.975 7.661 7.749 5.714 - 6.147 4.971 8.296 10.129 9.137 8.388 6.947 8.621 9.006 6.627 5.753 6.208 5.027 5.378 4.433 4.658 4.646 4.309 4.301 4.853 5.647 6.863 8.686 10.422 10.703 11.281 10.153 8.000 6.362 5.850 6.712 6.802 7.931 8.784 8.097 5.932 - 3.478 5.322 6.140 7.602 8.580 9.047 7.668 9.742 9.762 7.045 6.031 4.288 4.010 5.566 4.682 4.492 3.300 3.551 4.854 5.056 5.462 6.586 9.353 10.872 11.184 11.091 10.031 8.142 5.906 6.081 6.849 6.969 7.435 8.737 8.291 6.508 - 3.468 5.664 6.255 5.622 7.187 9.172 7.875 9.006 8.651 7.438 6.792 6.209 4.566 4.931 6.085 5.089 4.224 4.381 4.787 5.716 5.114 5.452 9.254 10.619 10.350 10.925 10.260 7.839 5.906 5.898 5.811 6.968 6.763 7.977 8.291 6.651 - 3.395 4.983 5.575 7.086 7.581 9.214 7.785 8.994 8.519 7.194 6.223 4.931 5.747 5.452 5.603 5.768 3.953 5.102 5.535 4.713 5.931 5.129 9.184 10.998 10.529 10.824 9.702 7.719 6.378 5.958 6.247 5.779 6.009 7.914 8.025 5.843 - 4.571 4.843 7.424 8.092 7.683 9.256 8.124 8.617 7.761 7.404 6.883 4.491 4.487 4.793 4.496 3.676 3.835 5.260 6.593 5.747 5.497 5.528 7.888 9.632 10.145 9.729 7.919 7.151 5.857 4.585 5.761 5.908 7.497 7.853 7.368 6.176 - 4.795 4.614 6.527 8.084 6.994 7.351 6.728 7.438 6.290 4.931 6.174 5.836 4.188 4.293 5.389 4.120 3.324 3.794 3.905 3.668 4.803 4.737 6.420 9.019 9.698 9.593 8.198 6.611 5.298 5.393 5.263 5.238 6.550 7.643 7.602 5.183 - 7.428 6.671 7.307 7.479 6.818 7.285 6.755 7.670 7.580 6.919 6.514 4.229 3.350 4.753 4.578 3.876 4.805 4.779 4.462 4.415 5.702 6.116 6.001 8.142 9.179 9.336 6.507 5.924 5.169 5.314 5.476 5.893 6.303 6.849 6.549 4.208 - 8.778 7.207 7.883 7.146 6.894 6.657 7.081 6.925 6.157 5.744 5.864 5.073 4.845 5.157 5.331 4.683 4.434 4.556 5.350 5.433 6.092 6.480 6.147 6.818 7.862 8.055 6.064 6.200 6.566 5.880 4.455 5.380 6.266 6.570 6.754 5.500 - 8.521 7.707 6.865 7.062 7.178 7.286 5.903 6.095 6.258 5.911 5.019 5.335 3.848 4.798 5.794 4.942 4.773 5.024 5.763 5.762 5.718 5.413 6.984 7.171 7.085 6.165 5.981 5.566 5.889 5.660 5.194 5.625 6.281 7.356 6.630 5.551 - 6.472 5.815 6.479 6.358 6.082 7.771 6.612 6.205 5.702 5.804 4.108 4.990 5.342 4.009 5.256 5.009 3.880 4.874 4.852 4.880 5.521 6.320 6.290 5.998 5.739 4.624 5.961 5.820 5.906 5.534 5.206 5.180 5.152 5.857 6.053 4.544 - 7.465 7.806 6.971 6.810 7.708 7.498 6.977 6.427 5.172 6.195 6.225 5.390 4.886 4.620 4.730 5.466 4.393 5.129 5.377 5.014 5.208 5.427 5.786 7.326 6.735 6.864 6.445 5.632 5.260 4.867 4.627 4.764 5.077 5.173 5.287 3.765 - 9.557 9.265 7.950 7.692 7.952 8.080 7.723 5.844 5.894 5.309 6.229 5.076 4.526 5.340 4.977 5.808 6.223 5.050 4.774 5.288 5.722 5.095 5.190 6.793 6.048 6.007 5.772 6.342 5.047 5.912 6.007 6.337 6.440 5.904 5.319 3.876 - 7.839 7.437 6.519 6.245 5.589 6.751 7.024 6.351 5.247 5.668 6.183 6.384 5.479 5.663 6.335 5.122 5.949 6.038 4.661 4.456 4.214 5.394 5.773 6.444 6.891 6.723 6.440 6.676 6.226 5.881 5.168 5.585 6.641 6.142 6.651 4.931 - 6.727 6.904 7.857 8.086 6.922 7.226 7.057 6.417 6.852 7.611 5.750 5.297 5.045 6.019 5.823 5.181 5.089 5.145 4.608 5.277 6.028 5.689 5.740 7.690 8.748 8.898 7.592 6.135 5.543 6.062 5.447 5.468 6.272 6.729 6.196 5.522 - 5.836 7.208 8.004 6.755 7.451 8.750 6.896 5.895 5.976 6.972 5.021 4.528 3.479 5.433 5.366 5.032 5.001 4.303 4.900 4.849 6.390 6.137 5.720 9.197 8.925 9.618 8.017 6.854 6.099 5.871 5.783 5.552 6.431 6.933 7.217 5.733 - 5.688 6.642 7.165 6.693 8.094 9.566 7.838 7.564 6.869 6.030 5.212 4.206 3.924 4.684 5.835 5.018 4.936 3.625 3.971 4.850 5.015 5.635 7.356 9.333 9.206 8.647 9.123 7.854 6.546 5.377 6.687 6.681 6.726 7.613 7.341 5.275 - 7.135 6.762 7.090 7.429 8.680 8.997 8.275 9.119 8.204 6.939 5.897 3.844 3.943 5.674 5.847 5.152 4.219 4.157 3.802 6.567 6.934 7.068 9.024 9.600 9.157 9.103 9.252 8.040 7.601 6.425 6.929 6.504 6.846 7.296 7.680 5.752 - 5.273 5.932 6.816 7.400 7.660 6.891 7.819 8.068 7.216 7.428 5.990 5.873 5.859 6.421 6.143 4.713 4.094 6.223 5.921 7.388 7.808 8.039 9.209 8.378 8.693 9.095 9.215 7.620 6.540 6.021 6.789 6.148 7.299 7.493 7.904 5.824 - 6.212 5.601 6.839 6.415 4.956 4.659 6.447 6.244 7.995 7.491 4.569 5.906 6.200 5.650 6.402 5.543 4.190 5.425 5.575 7.131 8.119 9.248 8.562 7.515 8.345 8.824 8.685 6.776 6.276 6.182 5.960 6.160 8.267 7.938 7.435 5.470 - 6.330 6.408 7.313 6.121 6.803 6.196 6.070 6.173 8.353 7.704 4.992 4.119 5.276 6.044 6.155 5.848 4.695 5.816 6.328 6.937 8.531 9.297 6.980 6.940 7.616 8.669 8.109 7.089 6.251 6.080 5.985 6.196 7.697 7.969 7.219 6.104 - 6.325 6.462 7.800 7.098 7.242 7.048 8.119 6.878 7.260 6.737 5.876 4.177 4.927 7.134 5.826 5.551 5.433 6.113 6.518 8.316 8.893 8.271 7.864 8.030 7.444 8.300 8.624 7.283 5.839 5.481 5.826 6.019 7.053 7.597 7.807 5.845 - 6.526 6.529 5.862 6.232 6.006 6.698 8.155 7.021 7.270 7.426 7.532 5.028 5.901 6.699 6.445 5.280 5.264 6.479 6.036 9.490 9.584 8.102 6.609 7.116 7.342 8.339 8.498 7.206 4.808 5.137 6.110 6.491 7.361 7.753 7.505 5.500 - 3.993 5.303 4.408 5.841 6.210 6.231 6.710 7.384 8.111 8.784 8.033 7.521 6.357 6.501 7.101 5.281 5.402 7.069 7.361 9.963 9.900 8.114 6.036 6.504 6.661 7.429 7.692 6.504 4.988 4.709 4.832 6.335 7.430 7.278 7.376 4.190 - 12.027 12.296 12.049 12.092 12.148 12.246 12.185 12.001 10.603 10.613 10.671 11.058 10.633 9.528 9.681 9.592 9.746 9.362 8.840 10.096 10.040 8.433 7.402 8.169 7.332 8.566 7.996 7.706 6.446 6.453 5.730 6.984 7.247 7.221 7.077 5.612 - 14.514 13.391 12.764 11.981 12.837 12.662 13.078 12.950 11.241 9.299 11.198 11.883 10.970 9.050 9.808 9.666 10.117 9.610 8.815 10.155 10.343 9.374 8.219 8.845 8.475 9.403 8.336 7.893 6.848 7.066 7.048 7.514 7.784 6.599 7.071 6.628 - 12.232 10.779 8.778 9.806 9.153 9.607 8.896 8.104 9.558 9.626 8.488 8.073 8.040 7.124 6.935 6.300 5.531 6.744 7.285 9.986 9.990 8.083 6.075 6.807 6.479 7.067 7.761 6.946 5.895 4.647 5.510 5.694 6.150 6.183 6.607 4.725 - 10.314 6.655 6.638 5.835 6.693 6.013 6.368 8.220 8.477 8.652 7.515 6.950 6.974 5.654 5.260 4.441 5.747 6.392 7.801 9.017 8.948 6.114 4.764 6.252 6.309 6.988 8.537 7.176 5.036 5.546 5.408 6.482 7.220 6.596 6.872 5.240 - 6.967 6.097 6.114 6.203 6.966 6.013 4.404 6.800 8.957 8.614 6.101 7.182 6.354 5.723 6.115 3.977 4.302 6.969 8.003 9.819 9.816 6.895 6.252 5.450 6.409 6.336 7.711 7.590 6.324 5.540 5.439 6.505 7.279 6.201 6.173 4.597 - 5.123 5.667 5.841 6.185 7.078 6.802 6.107 7.113 8.007 9.195 6.887 6.411 7.122 6.365 6.680 5.074 5.549 6.123 6.941 9.684 9.318 7.466 6.073 5.862 6.774 6.284 7.730 7.145 5.363 5.119 5.370 6.281 7.065 6.223 5.608 3.594 - 7.376 6.858 7.019 7.501 6.874 7.278 6.607 7.896 8.331 9.236 7.398 6.776 6.010 6.948 5.951 5.009 5.843 7.421 8.088 10.077 9.146 7.240 5.484 5.009 5.850 6.484 7.335 7.039 5.768 5.728 5.131 5.360 5.222 5.792 6.177 3.613 - 7.965 8.882 9.194 9.687 9.657 10.493 10.932 10.204 10.223 10.622 9.682 9.690 9.213 8.969 8.883 8.192 8.599 7.845 7.936 8.002 8.460 7.993 7.971 8.142 8.988 8.053 7.878 7.744 7.067 7.179 7.715 8.865 9.665 8.188 8.703 7.583 - 11.469 9.487 8.315 9.343 9.064 10.264 10.781 10.443 9.734 10.143 9.597 9.298 8.437 7.431 7.962 7.643 8.092 7.990 7.471 7.275 8.408 8.769 8.474 9.724 10.272 9.129 9.163 8.644 7.683 8.153 8.786 9.369 9.872 9.315 8.792 7.745 - 11.094 10.656 10.531 10.753 10.552 10.255 9.994 10.713 10.265 10.119 9.683 8.607 8.592 8.532 7.655 8.041 8.562 8.999 9.318 8.646 8.732 8.702 9.625 10.653 11.227 10.869 9.780 8.508 9.901 10.557 11.013 11.539 11.729 11.343 10.492 8.641 - 12.155 9.570 8.450 9.035 7.872 7.601 8.804 9.130 7.976 7.017 6.921 5.569 5.331 5.041 5.011 5.007 5.987 6.566 6.602 7.297 7.347 7.274 6.245 7.390 7.620 7.401 6.430 6.507 6.412 6.621 6.905 7.629 7.710 7.305 7.019 5.636 - 8.859 8.193 8.415 9.588 8.212 6.147 7.169 8.767 8.995 8.651 7.056 5.391 5.762 6.217 5.559 4.897 4.360 5.489 6.264 6.650 6.483 7.154 6.263 6.402 5.464 6.182 6.199 6.422 5.810 5.899 6.493 6.516 6.262 5.550 6.382 5.781 - 7.678 7.490 7.139 8.102 7.915 7.498 6.673 5.881 6.304 6.997 6.456 5.609 5.219 5.778 6.267 4.212 4.956 5.378 5.649 7.324 7.092 5.657 5.651 6.602 5.295 5.699 5.605 5.917 5.348 4.876 5.461 6.407 5.873 6.102 5.662 5.199 - 8.048 7.805 7.583 7.748 8.675 7.286 6.573 7.025 7.907 8.213 7.422 6.586 6.652 6.272 5.857 5.876 4.687 4.192 6.143 6.387 6.916 7.036 5.851 6.030 5.564 5.888 6.034 6.135 5.891 5.455 4.407 5.350 5.226 5.724 5.500 5.984 - 9.106 8.969 8.577 8.961 9.045 8.360 7.609 6.774 6.866 6.805 6.220 6.534 5.195 6.427 6.457 5.068 4.172 4.298 4.976 6.450 6.166 5.835 5.715 6.345 6.071 6.407 5.756 6.046 5.753 5.760 5.359 6.122 6.061 6.306 5.126 5.365 - 6.773 7.916 7.545 9.689 9.507 6.585 6.986 6.952 5.262 6.377 6.990 5.423 4.704 6.825 7.110 6.374 3.823 3.828 4.688 5.940 5.499 6.078 5.123 6.389 5.679 5.163 5.820 5.933 6.279 5.813 5.847 6.248 6.359 6.049 5.185 4.351 - 6.681 5.279 6.396 8.536 8.333 7.508 7.151 6.873 6.649 6.290 5.672 5.864 5.712 5.372 5.429 5.063 4.842 4.441 4.642 5.932 5.939 6.599 5.611 6.401 5.741 5.630 5.125 4.933 5.209 4.843 4.812 5.117 5.403 5.941 5.741 4.900 - 6.094 5.468 5.909 6.632 6.697 6.862 7.213 6.268 5.547 5.037 6.300 5.526 3.547 2.992 4.421 4.916 4.751 5.123 4.360 4.601 6.251 6.069 5.520 5.988 6.601 5.359 5.096 4.892 5.173 5.614 4.769 4.529 5.483 5.445 4.597 4.094 - 5.624 5.314 6.519 7.402 6.569 6.411 5.805 5.666 6.581 6.278 6.231 5.576 4.177 3.696 4.927 4.579 4.093 4.879 4.585 5.152 6.050 6.281 6.794 5.471 6.016 5.311 4.450 4.597 4.712 4.436 5.039 4.545 4.960 5.364 4.974 3.886 - 7.354 6.500 5.898 7.948 8.422 7.849 7.636 7.510 6.604 6.875 5.950 5.291 7.467 6.900 5.971 5.503 4.196 5.380 4.519 5.504 5.293 5.560 5.792 5.738 5.094 5.145 5.509 5.193 4.792 5.163 5.872 5.516 5.679 5.545 5.930 4.058 - 5.384 6.927 6.860 7.089 7.242 6.679 6.834 6.044 5.632 5.916 7.369 7.889 7.624 6.213 6.377 6.159 3.929 4.841 5.166 5.494 5.258 6.331 6.091 4.921 4.673 4.808 5.427 5.177 3.864 3.216 4.497 4.752 5.171 4.868 4.532 3.305 - 8.453 6.737 7.186 7.283 6.064 6.558 8.195 8.090 6.929 7.430 8.030 6.829 5.769 6.662 6.483 6.506 6.022 4.965 5.266 5.311 5.164 5.375 7.485 6.736 5.241 5.888 5.025 4.397 4.609 4.742 4.273 4.985 4.998 4.877 4.876 3.417 - 10.774 10.633 9.958 8.669 7.829 7.240 7.054 8.472 8.558 7.330 7.732 7.176 6.776 7.313 7.318 6.431 6.206 5.311 3.815 5.145 5.684 5.782 6.029 5.991 5.763 5.342 5.029 4.616 4.416 5.340 4.927 4.813 4.807 5.012 5.370 5.057 - 8.997 9.143 7.638 6.807 6.958 7.621 7.843 7.183 7.633 6.163 6.635 7.909 6.494 7.475 7.001 5.414 5.570 6.382 5.726 5.561 5.534 5.520 5.895 6.124 5.492 5.673 5.319 4.414 5.151 5.183 5.142 5.650 5.764 5.172 5.386 5.138 - 6.008 6.296 7.542 6.724 6.555 6.071 6.920 6.662 7.324 6.648 6.758 6.400 6.141 6.162 5.321 5.335 5.220 4.762 4.930 5.691 5.748 6.136 5.713 4.769 5.328 5.265 5.126 5.118 5.490 5.622 4.996 4.921 5.712 6.450 5.184 5.044 - 6.514 5.635 5.780 6.786 7.404 5.219 5.054 6.091 6.761 6.468 6.911 6.540 6.774 5.506 4.483 4.901 5.514 4.031 4.208 5.874 6.234 5.433 6.091 5.657 4.567 5.813 5.319 4.805 5.076 5.385 5.184 4.800 4.932 4.464 4.646 4.897 - 5.520 6.878 6.889 7.174 6.048 5.167 4.494 6.717 7.150 5.292 6.445 7.076 5.482 3.858 5.360 4.458 5.880 6.241 4.964 5.265 5.848 5.547 5.185 5.231 5.768 5.214 4.768 4.337 4.623 5.318 5.351 5.245 4.429 4.662 5.212 4.346 - 5.937 5.961 5.289 7.248 7.153 6.160 6.225 5.131 5.734 5.740 6.750 7.334 5.683 5.784 6.034 5.664 5.490 5.971 5.848 5.816 5.863 5.664 5.662 5.511 5.648 5.017 4.499 5.665 5.071 5.267 5.185 5.855 5.890 5.077 5.366 4.166 - 6.192 6.049 6.024 6.312 6.500 5.785 6.970 6.534 6.066 6.082 7.261 6.801 3.933 5.701 5.501 5.557 5.627 6.182 5.615 5.476 5.654 5.865 5.628 5.800 5.026 6.067 5.690 5.527 5.594 5.447 5.813 5.874 5.930 4.971 5.695 5.187 - 5.509 4.231 4.607 6.548 5.501 5.430 6.303 6.755 6.535 7.271 6.728 6.208 6.701 6.803 6.753 6.104 6.054 6.480 6.262 6.197 6.316 5.875 5.945 4.972 4.684 6.079 6.016 5.429 5.259 5.371 5.898 5.859 7.208 6.990 6.873 6.546 - 7.202 5.450 5.258 6.357 6.729 5.476 6.363 6.074 5.784 6.571 6.045 5.335 6.095 5.746 4.450 4.780 4.886 5.265 4.727 5.347 5.920 4.904 5.581 5.232 5.865 5.315 5.582 5.683 5.123 5.455 6.153 5.934 6.402 6.045 6.442 5.874 - 6.889 5.715 4.415 5.497 5.298 5.368 5.769 5.593 6.488 6.640 6.749 5.687 4.998 5.192 4.802 4.633 4.584 4.783 4.956 5.481 5.180 4.382 5.215 4.555 5.672 5.205 4.772 5.411 5.794 5.331 5.773 5.482 5.550 6.187 5.544 5.705 - 4.459 6.796 6.717 6.666 6.458 5.233 5.008 4.656 6.666 6.135 6.036 6.416 6.442 7.136 6.209 5.018 5.113 5.630 5.037 4.651 5.107 5.151 5.540 5.207 5.378 5.479 4.802 5.258 4.957 5.219 5.648 5.895 5.617 5.444 5.386 4.966 - 5.960 6.547 6.363 5.079 3.008 5.327 6.499 5.626 6.213 5.470 5.355 5.125 4.612 5.792 4.823 5.278 6.066 4.977 4.803 3.436 4.693 5.750 5.528 5.533 5.389 5.638 5.200 5.144 5.044 4.949 5.848 6.491 5.388 5.602 5.753 4.751 - 5.059 6.064 6.700 5.591 4.958 5.496 5.055 4.304 5.612 4.912 4.947 3.363 4.413 4.770 3.372 3.550 5.156 4.205 3.421 3.620 5.165 5.704 5.073 4.366 5.019 5.776 4.410 4.320 4.819 4.623 5.245 5.330 4.380 4.615 4.220 3.544 - 5.677 6.817 6.409 5.517 5.891 6.825 6.829 5.981 6.034 5.774 5.426 4.930 4.886 4.832 4.328 4.374 4.942 5.481 4.188 4.731 5.209 3.855 3.877 5.342 5.730 5.728 5.462 4.360 5.722 5.839 5.874 5.321 5.122 5.015 5.332 3.909 - 5.702 6.022 5.579 5.200 5.186 7.317 6.772 5.787 6.090 5.653 5.887 5.724 5.071 6.113 5.581 5.013 4.745 4.507 4.061 4.992 4.732 5.365 5.787 5.661 4.937 4.900 4.892 5.034 4.821 5.428 5.092 4.463 5.192 4.909 5.102 4.296 - 3.519 2.844 4.820 6.471 5.921 4.854 5.722 5.754 6.037 6.124 5.175 6.366 5.424 5.602 6.415 5.110 6.266 5.465 4.437 4.257 5.363 5.245 5.310 4.231 5.000 5.611 4.522 4.765 4.268 5.490 5.163 5.033 4.738 4.981 4.725 3.359 - 3.782 2.892 4.659 6.414 5.882 5.220 4.793 5.054 5.962 5.828 5.130 5.158 5.160 3.986 4.699 5.522 5.502 5.520 4.672 4.632 5.961 4.925 5.470 5.137 5.243 4.825 4.626 4.688 4.526 4.919 4.528 4.716 4.327 4.192 3.999 3.326 - 4.614 5.713 6.477 4.829 5.580 5.471 4.833 3.550 5.724 5.500 4.538 5.247 5.833 5.271 5.082 5.552 5.389 5.278 5.362 4.741 5.096 5.306 6.516 5.680 5.680 5.036 4.954 4.954 4.359 5.087 3.984 4.005 4.286 4.047 3.686 3.043 - 3.922 4.720 6.278 5.631 5.995 6.364 5.874 4.360 4.171 3.442 5.591 5.558 4.687 4.142 4.378 4.471 5.484 5.035 4.684 4.736 5.874 6.027 5.158 5.095 4.614 5.074 5.197 4.849 5.356 5.010 4.409 3.683 3.884 3.914 3.669 2.701 - 6.222 6.539 5.107 2.327 3.514 4.335 5.489 5.698 3.595 4.468 5.374 4.108 3.151 3.862 3.521 4.112 4.550 4.884 4.475 4.019 4.265 4.861 5.565 5.289 4.781 4.182 3.828 3.900 3.871 3.875 3.913 2.750 3.419 3.554 3.332 2.578 - 6.666 5.691 5.541 4.465 3.839 3.423 4.658 4.606 3.937 6.253 5.648 5.220 4.883 3.935 3.648 3.376 3.991 4.640 4.335 4.827 5.350 4.954 4.688 4.782 5.187 3.826 3.816 3.418 3.968 4.312 3.116 3.390 2.903 3.527 3.264 1.950 - 4.245 5.905 6.384 5.465 3.707 3.828 3.649 3.247 3.153 6.382 6.215 4.768 4.405 4.511 4.564 3.751 4.305 4.529 5.474 4.983 5.473 5.659 5.651 5.680 5.609 4.121 3.753 3.896 3.823 3.841 3.253 3.580 3.688 3.559 2.862 3.088 - 5.366 5.580 5.036 5.091 4.557 3.945 3.880 4.513 4.608 5.821 5.056 4.755 4.796 5.368 4.543 4.693 4.688 4.992 3.867 4.539 4.586 5.838 5.359 5.424 5.015 5.085 3.725 3.375 3.887 3.883 3.268 3.648 3.140 4.064 3.804 2.750 - 3.878 4.642 5.553 3.645 5.849 5.627 4.717 3.819 4.280 4.215 5.612 5.403 4.718 4.802 4.820 4.220 3.615 3.561 3.297 3.855 5.483 5.885 5.163 3.624 4.415 5.034 4.706 3.818 3.846 4.461 3.493 4.096 3.536 3.105 3.149 2.251 - 4.072 6.140 6.532 6.531 5.842 5.762 5.121 3.531 4.077 4.155 6.317 5.484 4.577 5.507 5.064 3.298 3.362 4.539 4.330 4.765 5.056 5.066 5.526 4.583 4.400 5.036 4.386 3.442 2.892 3.212 3.772 3.549 3.050 3.016 3.309 2.169 - 4.705 5.969 5.727 6.299 5.671 4.074 4.613 4.761 4.411 3.985 4.873 3.638 4.739 5.042 4.216 4.312 4.541 3.991 4.133 4.378 4.820 5.292 5.233 4.253 3.796 3.720 5.161 3.860 3.482 3.864 3.588 3.447 3.370 3.804 3.283 2.152 - 3.667 4.552 4.887 5.473 5.657 3.742 3.671 3.679 2.419 3.105 3.496 2.979 3.589 5.126 4.660 3.564 3.148 3.434 3.530 4.976 4.845 5.402 5.223 5.781 5.743 3.712 4.080 4.137 3.873 3.514 3.381 3.600 3.948 3.787 4.034 3.612 - 3.866 5.882 5.179 3.401 4.228 4.511 4.677 4.439 4.296 5.467 4.427 3.641 3.832 4.523 3.650 2.819 3.947 4.596 4.787 3.802 3.905 5.616 5.347 5.381 5.566 4.413 4.433 4.621 4.670 4.699 4.388 4.236 4.946 4.677 4.291 3.673 - 5.966 5.606 5.716 5.962 4.452 4.130 5.914 6.161 4.974 6.187 6.029 4.939 3.487 4.380 4.367 4.248 4.708 5.352 4.872 4.443 4.340 4.636 5.290 5.227 4.718 4.567 4.989 4.156 4.481 4.260 3.904 4.559 5.522 5.087 3.920 2.820 - 6.886 6.729 5.910 5.913 6.380 5.107 5.574 6.764 5.676 6.099 5.369 4.184 4.905 5.695 5.815 3.966 3.431 4.183 4.108 4.529 5.278 4.469 5.418 5.339 4.922 5.007 4.774 4.745 5.068 5.067 3.956 3.760 4.303 4.019 3.648 2.606 - 7.424 8.777 8.085 6.922 6.801 7.750 7.935 5.935 6.202 7.038 5.788 5.355 5.360 5.612 4.723 4.217 4.278 4.010 4.508 4.942 4.973 5.922 6.548 6.978 6.372 6.193 6.858 6.179 5.840 5.393 5.818 5.813 6.408 5.012 4.701 4.481 - 7.376 7.557 7.608 5.741 6.603 6.896 7.689 7.133 5.804 4.624 5.955 5.273 3.822 4.718 5.024 4.572 5.147 4.792 4.335 5.689 5.331 5.954 7.490 7.502 7.233 6.798 7.228 7.078 5.760 5.490 5.408 4.556 5.618 5.455 4.862 3.654 - 7.474 8.188 7.432 5.470 6.234 8.039 8.456 6.177 4.585 4.529 5.960 5.374 4.011 4.896 4.758 5.495 5.023 4.918 4.221 6.080 5.824 6.694 8.168 7.956 7.783 7.658 8.050 8.241 6.819 5.966 5.447 6.023 6.086 5.305 4.633 4.141 - 6.552 6.885 7.415 7.870 7.940 6.803 8.738 8.067 6.310 6.982 5.399 5.229 5.156 5.192 5.731 5.785 4.878 4.936 5.556 5.893 5.576 7.045 8.799 7.534 7.070 7.059 7.037 7.627 7.106 5.239 6.319 6.477 6.518 5.716 4.939 4.450 - 10.008 10.007 9.580 7.858 6.862 7.897 8.357 7.077 8.445 8.684 6.478 6.137 5.661 4.822 5.381 5.101 5.339 4.972 6.310 5.720 5.543 7.696 8.745 8.083 7.649 7.401 7.965 8.633 6.828 5.065 6.147 6.692 6.387 6.193 5.888 5.895 - 11.724 11.304 10.849 10.076 10.424 10.586 10.232 9.185 7.338 7.621 8.367 8.092 7.773 7.350 6.805 5.789 4.956 5.191 5.544 5.333 5.801 6.015 7.201 6.630 7.230 7.370 7.309 7.739 6.854 5.586 5.735 5.437 6.052 5.905 6.577 5.553 - 10.531 11.283 10.551 9.711 9.970 10.457 10.689 8.299 8.250 8.646 8.055 8.189 7.926 7.815 7.216 6.560 6.350 6.813 6.982 6.068 5.947 7.624 7.678 6.568 8.147 8.644 7.839 8.325 7.100 6.170 7.153 7.422 7.816 5.971 6.317 5.287 - 10.889 10.396 10.294 9.891 11.003 11.424 10.218 8.736 7.495 8.839 8.770 7.669 8.438 8.144 7.484 7.826 7.915 8.560 8.647 7.689 6.794 7.793 7.425 7.638 8.407 8.850 7.741 6.935 6.305 6.663 6.532 7.183 7.348 7.079 6.898 5.702 - 11.832 12.124 11.879 11.965 11.922 12.010 11.077 8.666 7.981 8.540 9.212 7.734 8.694 8.536 8.545 8.505 8.572 8.774 8.323 7.104 7.442 7.901 7.168 8.044 9.087 8.506 7.563 6.453 6.256 7.051 7.460 7.936 7.720 7.228 6.423 6.202 - 7.760 8.036 8.071 9.205 8.531 9.756 9.264 6.908 7.144 7.226 7.435 5.962 5.551 5.955 6.025 6.651 6.049 6.670 8.263 8.439 7.466 6.592 6.473 7.310 7.768 7.431 6.671 7.544 6.918 7.594 7.052 7.099 7.469 7.506 7.333 6.587 - 8.788 7.901 6.998 8.087 8.460 8.650 8.115 7.943 7.676 7.895 7.916 6.900 6.972 7.248 7.494 7.787 8.152 7.536 7.509 8.461 8.883 8.253 8.345 9.529 10.143 9.411 7.936 8.176 7.905 7.832 8.935 8.857 9.594 9.651 9.399 8.492 - 8.056 7.809 8.516 7.506 6.981 9.095 8.158 7.423 7.752 7.364 6.394 6.170 6.089 6.451 5.887 6.261 7.204 7.024 6.943 7.187 7.718 6.916 6.723 8.285 8.777 8.303 7.235 7.177 7.284 8.012 8.321 7.466 8.343 8.832 8.500 7.399 - 7.925 8.077 8.279 7.561 7.742 9.590 8.523 4.107 4.283 4.787 5.477 6.032 5.663 5.128 5.344 5.800 6.350 6.119 7.352 7.611 6.478 6.630 6.173 7.030 6.982 7.106 7.471 7.344 8.099 7.616 8.153 8.519 8.415 8.446 7.715 6.562 - 9.315 9.810 8.667 6.998 8.082 8.221 8.594 6.632 7.016 6.853 5.757 6.488 7.147 6.195 5.891 6.663 6.724 6.800 7.182 7.022 7.025 7.523 8.224 7.809 8.130 7.671 7.157 7.899 8.527 9.127 9.102 9.109 8.941 9.397 8.841 8.389 - 7.652 9.943 9.971 7.951 7.586 8.102 7.064 7.116 7.454 8.022 6.714 6.015 6.466 6.036 5.585 6.052 6.561 6.240 5.976 6.395 7.222 6.424 6.165 6.582 6.744 7.424 6.925 6.386 7.669 9.172 8.439 8.383 8.762 8.209 7.854 7.729 - 6.793 7.176 8.395 7.918 8.668 8.325 6.368 7.014 7.141 6.567 6.400 5.848 5.957 5.663 6.089 6.165 5.468 4.612 6.667 7.047 6.363 7.081 6.568 6.863 6.771 6.653 6.720 7.309 7.493 8.458 8.017 8.284 8.752 8.065 7.078 6.567 - 6.809 7.227 7.700 8.238 7.263 6.002 6.688 5.757 4.459 5.424 5.219 6.334 6.231 5.349 4.813 5.186 5.403 4.612 5.905 5.551 5.875 5.991 6.849 6.532 6.056 6.787 7.027 6.259 6.424 6.773 7.266 7.318 7.836 7.416 7.083 5.978 - 5.439 6.575 5.465 6.501 5.557 6.444 6.799 5.289 3.801 5.244 5.759 4.505 3.956 4.070 5.615 5.403 3.826 5.655 5.983 5.650 5.780 5.372 5.538 4.747 6.131 4.950 5.970 6.321 6.525 6.301 6.915 6.559 6.421 7.079 6.670 5.705 - 9.316 8.989 8.036 6.732 7.179 5.184 4.863 4.181 4.352 5.123 5.354 5.957 5.887 5.758 6.428 6.168 5.161 5.489 6.451 6.280 5.429 4.454 4.628 4.910 5.864 5.106 6.058 6.475 6.404 6.936 6.190 6.431 6.401 7.057 6.782 5.927 - 7.391 6.769 7.593 6.005 6.420 5.377 4.367 4.218 5.013 5.195 5.701 4.068 4.850 5.693 4.850 5.073 5.526 4.887 5.794 5.669 4.462 5.490 5.153 5.697 5.256 5.403 5.793 5.605 5.660 6.095 6.531 5.818 6.524 6.989 6.648 4.726 - 4.031 5.789 6.997 6.449 5.388 3.159 3.262 4.915 4.034 5.466 5.376 4.480 4.199 4.006 4.788 5.098 5.858 4.790 5.808 5.146 4.460 5.481 6.059 5.713 5.548 5.630 5.857 5.809 5.752 5.985 6.334 5.481 5.983 6.384 6.405 5.151 - 6.435 6.011 8.215 8.613 8.913 8.093 5.914 7.767 7.860 7.247 5.483 5.394 6.730 6.127 6.382 7.057 6.175 6.283 6.589 6.404 5.531 5.343 5.968 5.069 4.893 5.463 5.970 6.055 5.586 5.957 6.261 5.918 6.070 5.588 6.531 4.976 - 9.863 9.533 9.416 10.138 10.056 9.640 9.470 9.180 8.853 7.651 4.689 6.476 6.708 6.199 5.576 6.649 6.017 5.536 5.863 5.604 4.636 4.709 4.335 4.885 4.863 4.773 5.279 5.526 4.859 4.803 5.470 5.703 5.139 5.350 6.569 4.600 - 7.902 7.361 5.641 6.538 5.584 6.510 6.486 6.020 4.355 4.451 2.749 4.832 3.978 4.847 4.553 4.170 5.306 4.720 3.595 4.419 4.458 3.893 3.582 3.949 5.009 4.806 4.507 4.898 5.575 5.358 5.202 6.449 5.282 6.043 7.175 5.799 - 4.452 4.684 3.017 4.100 5.379 6.291 5.452 5.444 5.789 4.882 3.190 5.221 4.183 5.506 5.812 4.426 3.923 4.853 3.889 4.327 4.331 5.546 4.229 3.557 5.255 5.276 4.483 5.247 5.868 4.769 4.720 5.258 5.504 5.397 6.003 4.774 - 5.893 4.357 4.587 4.849 4.993 5.345 5.206 6.354 5.843 4.766 3.773 5.312 4.689 4.127 4.876 4.407 4.252 3.655 5.125 4.277 4.742 4.470 4.050 4.459 5.219 5.456 5.102 5.143 5.833 5.170 4.867 4.745 4.930 4.850 6.266 4.874 - 5.405 4.372 3.720 3.360 3.373 4.933 5.374 4.775 3.678 4.535 2.799 2.685 3.566 4.636 4.576 4.112 4.584 3.633 4.441 4.469 4.477 4.535 4.796 4.193 4.110 4.439 4.204 4.128 3.877 4.784 4.504 4.055 5.009 4.511 5.139 4.338 - 5.649 4.813 4.409 4.562 4.461 4.744 4.772 4.495 4.477 4.781 4.447 3.246 3.630 4.347 4.550 3.594 3.573 3.904 4.295 4.834 4.582 4.538 4.365 5.098 5.198 5.332 4.068 4.042 4.531 5.079 4.414 4.670 4.683 4.811 5.673 4.953 - 5.134 4.596 3.999 5.054 5.706 4.701 4.670 3.202 3.945 4.140 3.535 3.162 3.338 4.555 4.769 3.927 4.058 4.327 4.814 4.430 5.217 4.535 4.310 5.643 5.156 5.147 4.351 4.564 4.554 5.300 4.897 4.420 5.216 4.042 5.500 5.172 - 5.927 5.645 5.551 5.665 5.686 5.743 6.395 4.620 2.608 4.365 4.346 4.268 4.306 4.250 4.669 3.356 3.793 3.470 4.444 4.564 4.471 4.179 4.199 4.178 4.438 4.700 4.061 3.359 3.004 3.725 3.569 3.737 3.580 4.332 3.563 2.701 - 3.006 5.559 6.110 4.834 3.549 5.200 5.127 4.234 4.363 3.973 3.073 4.622 4.357 4.235 4.874 4.763 4.082 2.939 3.445 4.459 4.781 4.357 4.157 4.260 3.857 4.090 5.320 5.006 3.713 4.169 3.930 3.956 3.545 3.936 3.720 3.120 - 5.177 5.455 4.222 2.666 2.728 3.932 3.787 4.044 4.373 4.057 4.166 4.850 5.674 5.050 4.494 3.001 3.205 4.292 4.066 3.367 4.582 3.594 4.747 4.610 4.548 4.986 5.075 5.348 4.189 4.788 4.404 3.894 3.888 3.762 3.292 2.769 - 4.136 4.084 4.067 3.893 3.861 4.938 5.694 5.374 4.694 4.021 4.155 3.619 4.422 5.434 4.332 4.270 4.810 4.579 5.182 4.768 5.327 4.962 5.353 5.108 4.667 5.484 5.154 4.656 4.237 4.389 4.696 4.319 4.187 3.330 4.083 3.786 - 5.627 6.484 5.823 4.803 5.450 5.542 5.411 4.414 5.128 3.970 4.270 3.642 4.192 4.707 5.189 4.836 4.440 3.965 4.439 5.129 3.920 3.409 4.253 4.881 4.842 5.232 5.003 4.405 4.485 4.399 4.108 4.106 4.150 4.092 3.933 3.420 - 4.629 4.280 3.623 4.455 3.495 5.157 4.449 4.024 3.538 4.299 4.045 4.607 4.355 4.503 3.531 3.619 2.612 2.963 3.157 4.762 4.603 2.870 3.398 4.080 3.865 3.760 3.790 3.705 4.141 3.626 2.899 2.901 3.476 3.794 3.718 2.939 - 4.194 5.034 4.442 4.072 3.593 4.287 5.113 4.722 3.828 4.118 3.927 4.490 5.107 5.007 4.230 3.126 2.937 2.580 3.991 4.311 4.355 4.185 3.938 3.841 3.975 2.949 3.320 3.832 3.613 3.678 3.568 3.439 4.103 3.694 4.086 3.376 - 5.319 3.861 3.424 2.013 3.073 4.435 4.075 3.582 3.187 4.277 4.688 4.590 2.955 3.589 3.781 3.200 3.671 3.167 3.935 5.498 5.053 4.339 3.743 2.699 3.916 4.236 4.341 4.245 4.162 4.396 5.032 4.568 4.484 4.419 4.819 3.918 - 5.266 4.626 4.896 5.522 5.275 4.411 3.440 3.372 3.836 5.047 5.227 3.671 4.051 5.053 4.854 3.671 4.277 4.615 3.931 3.952 3.400 4.222 5.018 5.350 5.183 5.148 2.779 3.390 4.310 3.956 4.269 4.866 4.114 4.512 4.519 3.938 - 4.231 5.244 4.583 5.164 5.327 5.163 5.086 3.770 3.404 4.074 5.441 4.655 5.030 5.436 5.839 4.125 3.715 3.151 3.548 2.959 3.194 4.080 4.405 4.706 4.990 5.044 3.471 4.352 4.693 4.433 4.511 4.701 4.784 4.714 4.303 4.309 - 5.849 6.056 4.821 5.483 5.745 4.634 4.754 4.591 4.246 4.974 5.338 4.427 4.151 3.966 3.342 4.010 4.778 4.071 3.900 4.442 4.412 4.597 3.319 4.238 4.825 4.517 3.715 5.120 5.666 5.149 5.047 5.569 6.179 5.906 5.172 5.417 - 5.580 4.367 5.236 5.956 5.115 4.652 4.946 4.553 2.858 4.000 4.334 3.693 3.051 2.987 4.234 4.050 3.681 3.829 5.348 5.515 4.385 4.283 3.937 3.972 4.649 4.141 4.553 5.148 5.234 5.160 5.901 5.624 5.615 5.902 5.916 5.456 - 5.352 4.554 4.409 4.346 3.851 4.926 4.558 3.026 2.075 3.394 3.739 4.352 3.303 4.317 4.329 4.120 4.883 4.563 5.113 4.751 3.810 4.357 4.391 3.523 4.715 4.773 3.988 4.352 5.349 6.098 5.963 6.238 5.656 6.073 6.118 4.982 - 4.234 5.731 5.914 5.230 5.026 5.597 5.048 2.226 2.254 3.522 4.184 4.531 3.420 4.048 4.088 3.717 4.143 5.147 5.205 4.407 3.877 3.599 5.060 5.648 5.800 5.194 4.320 4.717 5.014 6.163 6.972 6.173 5.900 5.878 5.571 4.943 - 6.391 5.238 4.708 3.803 3.526 5.172 5.649 4.743 4.906 3.147 3.829 3.482 4.466 4.842 4.832 3.863 4.175 5.001 4.281 4.031 4.694 5.213 4.514 5.661 5.648 5.298 4.594 4.872 6.257 5.239 6.420 6.358 6.616 5.727 5.275 4.582 - 6.778 6.265 5.490 4.788 3.957 4.333 5.389 5.077 4.422 4.614 5.388 4.537 3.818 4.507 4.833 4.671 4.575 5.463 4.565 4.079 5.109 5.422 5.368 6.002 5.968 5.403 6.907 6.015 6.204 5.840 6.147 6.712 6.994 6.800 7.045 6.188 - 5.052 4.315 4.233 5.017 5.745 4.761 5.746 4.697 3.964 4.052 3.961 4.884 5.347 5.385 4.722 5.054 5.675 5.580 5.221 4.206 5.486 6.050 6.628 5.815 5.396 5.537 6.091 6.698 6.855 6.425 5.961 6.426 7.103 7.608 7.282 6.553 - 5.252 5.971 5.768 5.694 5.921 5.793 4.868 4.139 4.424 5.332 5.774 4.939 3.634 4.362 4.478 5.226 5.752 4.266 3.445 4.068 5.551 5.339 5.543 5.420 5.770 5.078 5.412 5.726 6.471 6.301 5.277 5.280 5.427 5.845 5.426 4.499 - 3.097 4.880 5.200 5.368 4.829 3.775 3.583 2.967 4.146 4.259 5.571 3.785 3.215 4.220 3.856 4.736 4.712 3.866 4.283 4.524 4.346 4.888 4.667 5.772 5.247 5.039 5.520 5.535 5.746 5.022 5.634 5.117 5.456 5.517 5.365 4.593 - 5.382 3.616 3.841 4.340 5.355 4.941 6.483 6.246 5.771 5.448 5.085 4.411 3.834 3.374 3.929 3.911 4.568 3.216 4.043 5.664 5.597 5.040 4.430 5.269 5.554 5.379 5.812 5.625 5.753 4.787 5.643 5.326 5.288 5.802 4.592 3.729 - 6.034 5.305 6.253 5.482 5.981 5.886 6.460 5.665 3.993 5.380 5.950 6.122 3.848 2.489 2.788 2.596 2.862 3.808 4.109 4.029 4.886 3.178 4.153 4.973 3.959 3.003 4.208 3.568 3.662 4.009 4.393 3.993 4.497 4.107 3.856 3.167 - 5.519 6.075 5.715 5.449 4.385 4.772 4.971 3.879 3.510 3.720 5.268 4.559 4.046 4.193 3.062 2.761 3.569 4.129 4.590 3.025 4.406 3.845 4.748 4.367 4.329 3.912 5.118 4.785 5.578 5.923 4.979 5.354 5.464 3.913 4.102 4.386 - 7.333 7.153 6.429 6.447 5.701 6.067 6.897 6.576 5.977 5.803 4.172 5.053 5.435 4.766 4.831 3.908 3.916 3.872 4.144 3.684 4.490 3.234 3.618 4.206 4.491 4.695 5.729 5.131 6.183 5.697 4.890 5.187 4.983 3.905 4.173 3.562 - 8.548 8.845 7.040 6.106 6.273 6.108 7.242 6.835 6.710 6.377 5.797 6.445 6.022 5.500 4.844 3.977 4.477 3.649 4.208 4.089 3.861 4.096 3.517 4.739 4.309 4.221 5.083 5.478 5.761 5.335 3.803 4.754 5.480 4.446 4.851 4.294 - 8.923 9.104 7.229 6.903 6.934 6.757 7.029 7.648 6.815 5.644 6.616 6.673 6.171 5.667 3.924 3.881 4.365 4.964 4.622 4.386 4.595 5.255 4.841 5.013 5.533 5.526 5.139 4.880 5.418 4.780 5.182 5.165 5.441 5.951 4.598 3.714 - 8.302 8.264 8.167 7.235 6.903 6.633 6.761 8.019 7.429 7.265 7.202 6.817 6.330 6.929 6.322 5.639 4.574 4.592 4.751 4.762 4.929 5.443 5.774 4.547 6.080 5.836 5.650 6.683 6.400 6.075 6.033 5.605 5.946 5.684 5.206 4.896 - 8.959 9.461 8.027 8.541 8.436 8.588 8.363 7.629 6.818 7.458 7.176 6.886 5.699 6.630 6.789 6.533 5.146 5.645 5.570 4.826 6.230 5.914 6.265 6.032 7.825 7.230 7.643 6.859 6.729 6.282 6.262 6.513 6.071 5.983 6.997 5.397 - 9.265 8.239 8.692 7.397 8.834 8.976 8.811 7.252 7.799 7.363 7.304 7.683 6.443 6.822 7.218 7.740 6.756 6.664 6.865 6.084 6.853 7.068 6.832 7.781 7.671 7.152 7.937 7.863 6.858 7.005 6.775 6.538 6.558 6.705 7.621 6.114 - 8.608 8.740 7.746 7.509 8.216 6.832 7.508 8.239 6.892 7.276 7.734 7.612 6.973 7.060 6.141 6.427 6.215 6.285 6.095 6.291 6.718 5.219 6.204 6.553 6.265 7.019 7.427 6.953 7.499 7.230 7.123 7.178 7.391 7.343 6.926 6.185 - 8.993 8.544 7.197 6.679 7.716 6.835 7.099 8.138 7.457 7.306 7.499 7.771 7.201 7.446 6.260 6.148 5.938 6.270 7.223 6.396 6.353 4.347 5.147 5.358 6.698 7.933 7.541 6.098 6.750 7.383 6.678 6.722 6.998 6.604 6.384 5.191 - 8.670 8.653 7.965 6.786 7.380 8.414 7.578 7.486 7.843 7.205 7.164 7.402 7.435 7.637 6.751 6.004 6.163 6.666 6.475 6.688 7.022 5.968 5.557 5.861 7.054 7.544 6.977 6.577 6.767 6.555 6.525 6.545 6.794 6.026 5.562 4.311 - 9.616 8.527 8.117 9.265 8.937 7.743 7.605 7.111 7.807 6.513 7.658 7.179 6.963 7.680 7.003 6.791 5.827 6.866 5.453 5.234 6.914 6.580 5.752 7.300 7.642 7.823 7.241 6.488 6.565 6.515 6.136 7.069 7.079 6.928 6.815 5.163 - 7.855 8.386 6.809 7.867 7.951 6.612 7.642 8.503 7.830 5.364 5.337 3.811 4.392 6.009 5.719 4.796 5.216 6.141 6.567 6.648 6.513 6.339 5.293 7.086 7.634 6.745 7.252 6.603 6.957 7.121 6.756 6.875 6.272 6.824 6.845 4.660 - 7.299 6.643 4.635 4.744 5.818 8.627 9.773 9.015 8.137 6.518 5.727 4.998 6.535 6.966 5.552 4.452 6.319 7.362 7.907 7.343 6.681 7.134 6.410 8.474 9.027 8.103 8.645 7.887 7.617 8.787 8.453 9.444 8.635 8.649 8.930 7.877 - 9.234 9.175 8.196 7.153 6.124 8.940 9.318 7.960 7.986 8.464 6.849 7.287 6.769 6.842 7.033 6.853 6.604 7.487 7.764 5.896 7.498 7.765 7.773 8.020 8.359 8.090 8.193 8.167 9.155 9.879 8.897 9.036 9.354 8.492 8.925 8.125 - 8.018 9.105 8.175 7.402 9.770 10.092 8.350 8.214 7.651 8.037 6.556 6.708 7.106 6.692 7.038 7.433 5.953 7.245 6.580 7.623 7.678 8.004 7.873 7.939 8.677 8.789 8.122 8.443 8.983 9.099 9.064 8.037 8.849 8.718 8.590 7.873 - 8.847 7.954 7.213 7.089 9.175 9.221 8.177 8.567 6.758 6.614 6.468 6.081 6.856 8.001 7.077 7.979 7.748 7.273 6.389 7.408 8.237 8.102 8.186 8.491 9.302 9.352 9.402 10.033 9.482 9.030 8.361 8.456 9.149 9.057 9.241 8.255 - 8.260 8.109 7.236 6.503 5.922 8.811 9.133 8.056 7.682 7.208 5.742 6.928 8.054 6.660 7.481 8.155 6.343 7.629 7.796 7.410 7.587 7.779 8.280 9.141 9.373 9.296 9.464 9.844 9.231 9.401 8.593 8.792 8.404 8.821 9.174 7.431 - 5.489 6.662 7.200 6.504 6.584 9.192 9.094 7.608 7.843 7.084 7.061 6.792 7.039 7.446 7.025 7.603 6.839 6.590 6.693 6.251 5.831 6.627 9.419 8.573 8.634 8.877 9.356 8.820 8.169 9.242 9.329 8.581 8.113 8.503 8.323 8.337 - 7.491 6.626 6.926 7.561 8.687 8.470 8.438 7.827 7.538 6.972 6.886 6.904 7.057 7.573 7.087 8.049 7.712 7.239 7.419 7.155 6.924 8.187 8.945 8.421 8.894 10.304 10.536 9.274 8.596 8.639 8.605 9.251 8.638 8.263 8.614 7.819 - 6.243 6.602 6.277 6.840 8.746 10.098 9.219 7.808 8.230 7.245 7.706 7.487 7.707 6.548 5.978 6.814 7.645 6.591 6.796 7.908 7.831 8.446 9.229 8.523 9.021 10.308 10.573 9.527 9.737 7.931 8.420 8.393 8.874 9.103 8.362 8.605 - 5.780 4.649 5.548 5.707 7.132 7.940 7.980 8.923 7.473 6.102 6.331 7.215 7.313 6.142 6.318 6.769 7.048 6.268 6.367 6.055 7.756 8.335 9.088 8.191 9.317 10.063 10.331 8.771 9.403 8.001 7.579 7.767 8.274 7.902 8.110 7.706 - 6.069 6.694 7.342 6.841 6.200 6.166 8.024 7.691 6.354 6.146 5.747 7.083 7.144 6.211 7.099 6.976 7.191 7.011 6.092 4.617 6.513 8.212 8.013 9.167 8.667 8.581 9.430 8.215 8.447 7.950 7.405 6.787 7.876 8.711 8.873 8.459 - 6.959 5.402 6.067 5.941 6.008 7.675 7.097 6.792 5.970 6.439 6.367 6.398 6.578 6.613 6.299 6.822 6.647 5.940 6.318 7.029 7.253 8.964 8.502 8.918 8.746 8.788 9.305 8.730 8.027 7.268 6.925 7.520 7.715 8.113 8.728 7.919 - 5.021 4.290 4.981 5.438 6.827 7.597 6.874 6.749 5.062 6.206 6.804 6.280 6.349 6.832 6.768 7.123 5.338 6.869 6.704 7.398 7.263 8.303 9.613 9.920 9.458 10.196 9.914 9.680 8.977 8.095 7.251 7.739 8.129 8.516 8.949 8.644 - 2.948 3.060 3.337 4.767 5.314 6.192 7.190 6.208 5.223 4.518 3.777 5.291 5.733 6.817 6.847 7.189 7.082 6.704 8.156 7.602 7.625 8.203 8.007 9.546 7.952 8.175 9.598 9.757 8.690 7.360 6.861 8.219 8.819 8.766 8.191 8.466 - 4.081 4.121 5.334 6.201 5.388 7.044 7.048 6.994 5.989 4.382 4.109 5.398 6.050 6.529 6.856 6.634 7.364 6.247 7.677 7.441 6.831 7.271 8.553 7.873 7.733 8.053 9.150 8.817 8.543 7.160 7.129 7.948 8.250 8.027 7.348 6.740 - 4.523 4.933 4.984 5.615 6.932 7.302 5.526 4.937 5.243 3.126 2.818 5.617 5.634 6.904 7.459 6.809 7.165 6.445 5.236 6.787 7.010 6.294 7.516 7.175 8.146 8.433 7.987 7.634 7.676 6.662 7.346 7.374 7.529 7.286 6.669 6.240 - 5.593 5.532 5.498 5.284 6.075 6.191 7.663 7.568 6.549 6.906 6.879 6.586 6.685 5.332 5.331 4.831 6.152 6.094 5.455 5.651 6.212 5.765 6.435 6.240 6.847 7.308 7.315 7.507 6.272 6.608 5.844 6.333 6.767 5.489 5.766 5.827 - 5.663 5.978 5.181 6.451 5.836 6.698 7.001 6.732 6.450 6.397 6.350 6.168 6.286 4.821 5.321 5.133 4.208 3.592 4.665 3.867 3.607 4.161 5.343 5.256 6.525 5.784 5.497 6.362 6.229 5.864 5.491 5.609 5.971 5.424 5.231 5.028 - 5.954 6.895 6.178 8.317 8.740 8.554 8.544 6.998 6.280 6.305 6.339 5.192 4.458 6.313 5.665 5.879 5.243 4.577 5.912 5.126 4.707 3.904 4.282 4.462 4.293 4.438 4.210 4.960 4.848 4.752 4.007 4.784 4.460 4.619 3.785 3.006 - 8.037 7.778 7.275 8.320 10.508 9.835 9.920 9.204 8.513 7.605 7.856 8.056 7.580 7.763 7.482 7.649 8.622 8.369 7.092 6.049 5.903 5.439 5.897 5.965 6.322 7.693 7.118 5.898 7.064 6.481 4.562 4.573 4.559 4.273 4.330 2.538 - 7.898 8.447 7.556 8.400 11.012 10.734 10.813 9.741 9.240 7.961 8.478 8.533 8.476 8.273 8.063 8.792 10.107 9.807 7.681 6.450 6.269 6.140 6.394 6.985 7.877 8.966 8.069 6.910 7.946 7.619 4.902 4.667 4.541 3.822 3.467 2.250 - 8.234 8.775 7.678 8.473 11.039 10.673 10.827 9.932 9.551 7.814 8.419 8.746 8.645 8.332 8.102 9.362 10.375 9.866 7.959 6.076 5.886 6.347 6.105 7.259 8.193 9.254 8.237 7.362 8.098 7.605 5.587 6.087 5.825 3.952 4.392 3.732 - 8.387 8.945 7.729 8.526 11.073 10.582 10.695 9.790 9.376 7.648 8.046 8.639 8.548 8.095 7.846 9.499 10.065 9.199 7.489 6.204 5.977 5.503 5.910 7.206 8.250 9.256 8.009 7.463 7.973 6.602 4.850 5.135 4.772 3.612 3.625 3.228 - 8.506 9.037 7.627 8.527 11.190 10.862 10.611 9.477 9.023 7.027 7.533 8.464 8.394 7.686 7.265 9.479 9.909 8.599 6.786 5.755 5.797 5.419 5.899 6.947 7.933 8.663 7.367 7.359 7.790 5.095 3.800 4.557 4.653 3.376 3.396 3.049 - 8.852 8.922 7.896 8.672 11.072 10.540 9.664 8.927 8.335 6.673 6.821 8.344 8.025 7.203 6.700 9.313 9.593 7.796 6.149 5.390 5.788 5.860 5.841 6.775 7.235 7.648 6.829 6.834 7.239 4.805 4.071 4.705 5.066 3.765 4.046 2.929 - 8.723 8.718 7.741 9.095 10.822 9.825 7.914 8.421 7.481 5.922 6.753 7.860 7.240 7.393 6.893 8.714 9.062 6.896 6.728 6.389 5.363 4.902 5.515 6.708 7.417 7.664 6.622 6.068 6.936 4.696 3.675 4.869 5.166 3.652 3.686 2.776 - 8.517 8.643 8.069 8.816 9.867 8.376 7.604 5.594 6.488 6.922 7.112 6.851 5.658 6.720 5.549 6.714 7.245 6.588 6.420 5.020 4.149 5.130 5.278 5.983 7.347 6.975 5.125 5.034 5.058 4.307 3.662 3.524 3.482 3.302 3.982 3.026 - 8.482 7.989 7.592 7.947 7.843 6.286 7.803 6.988 4.974 5.258 5.791 6.346 5.636 5.616 6.045 5.590 6.253 6.512 5.401 5.608 4.742 4.414 4.190 4.852 6.152 6.641 4.731 5.345 4.988 4.253 3.630 3.657 4.198 3.116 3.865 3.218 - 8.150 7.139 5.979 6.604 8.008 8.707 9.219 7.727 5.104 5.639 6.277 5.567 4.702 5.604 5.527 5.459 6.018 5.711 5.905 4.793 3.335 4.541 4.415 2.786 3.721 4.473 4.472 4.518 4.662 4.024 3.750 4.274 4.442 2.913 4.029 3.984 - 8.062 7.152 5.779 6.701 7.761 7.730 8.823 6.634 5.242 4.062 4.861 5.054 3.487 3.203 3.831 4.997 5.820 5.469 4.620 4.909 4.141 4.230 3.893 3.214 4.852 4.363 4.173 4.646 4.428 3.605 3.214 3.458 3.977 2.737 3.598 3.447 - 7.323 6.638 6.360 5.753 6.379 8.417 8.938 6.724 4.635 3.319 3.902 5.165 3.973 3.943 4.251 5.192 5.378 4.235 4.140 4.420 4.433 4.898 4.541 2.862 4.337 3.900 4.239 4.090 3.201 4.010 3.476 3.638 4.297 3.198 3.414 2.904 - 6.987 6.160 5.821 5.557 6.044 5.589 7.275 6.164 5.021 3.511 4.389 5.229 4.987 4.702 5.468 5.584 5.346 5.542 4.295 4.458 3.954 3.763 3.698 4.227 4.106 3.694 4.364 4.315 4.205 3.964 3.370 3.756 3.832 2.219 2.951 2.585 - 7.230 6.570 6.042 5.284 6.579 7.373 7.644 6.551 5.717 4.800 4.882 4.106 4.930 5.169 4.822 4.376 5.147 5.108 4.071 4.032 3.512 3.431 3.264 3.121 3.870 4.336 3.979 4.998 4.402 4.497 3.620 3.613 3.536 2.510 2.638 2.740 - 7.836 7.552 6.377 6.157 6.988 5.754 6.666 6.672 5.268 5.048 5.576 5.392 5.317 5.709 5.733 5.311 5.609 5.724 4.744 3.156 4.132 3.956 3.449 3.399 4.043 4.852 4.082 3.932 4.098 4.000 3.796 3.461 3.076 2.522 3.326 2.985 - 8.844 8.266 6.130 5.345 6.971 7.162 8.014 7.635 6.819 6.524 6.364 6.860 6.528 7.288 6.141 6.066 6.516 6.129 4.669 3.020 4.586 4.922 5.012 4.020 4.727 3.896 4.206 3.896 4.302 4.290 4.324 4.390 4.607 3.677 3.674 3.809 - 9.214 9.022 7.508 6.006 6.395 6.702 7.775 8.260 7.805 7.332 7.457 7.658 7.573 7.460 6.657 6.658 7.706 7.691 5.816 4.298 4.901 5.727 5.360 4.101 5.552 4.925 3.916 3.840 3.842 4.173 4.074 4.035 4.232 3.673 4.199 2.886 - 8.955 8.817 7.732 6.799 5.689 6.460 7.407 8.752 8.384 8.092 7.733 7.651 8.043 8.281 7.675 7.766 8.520 8.060 5.486 3.842 5.278 6.416 6.195 5.089 5.887 5.418 3.838 3.050 3.503 4.439 3.379 3.845 4.242 3.407 3.442 2.239 - 8.709 8.498 8.084 7.524 5.708 7.331 8.078 8.499 8.169 8.155 7.991 7.981 8.021 8.216 8.182 8.128 9.069 8.541 6.489 5.523 5.515 5.555 5.683 4.911 6.219 6.102 3.126 3.610 4.163 4.534 3.078 4.012 4.008 2.803 2.898 1.818 - 8.628 8.021 7.816 6.920 6.501 7.546 8.325 8.714 8.443 8.426 7.817 7.663 8.059 8.188 7.701 7.351 8.188 7.937 6.378 4.466 4.143 5.598 6.236 4.851 6.224 6.204 3.187 3.690 4.616 5.052 4.220 3.704 4.260 3.217 3.023 2.126 - 8.308 7.365 7.103 5.854 6.332 6.612 8.555 8.690 7.513 7.462 6.413 7.395 6.899 6.896 6.755 6.742 7.619 6.931 5.954 5.530 5.310 5.326 5.585 4.482 6.439 5.789 3.254 2.982 4.796 5.108 3.843 4.091 4.721 3.851 3.073 2.527 - 8.243 7.139 5.983 6.225 6.225 7.184 8.425 7.966 7.219 6.340 5.141 6.627 6.107 6.109 6.509 5.960 6.372 6.580 5.643 6.057 5.564 5.602 5.251 5.240 6.379 5.978 4.681 3.540 5.128 5.365 3.741 3.938 3.343 2.556 3.098 2.794 - 8.054 8.233 6.981 4.201 5.750 6.697 7.361 7.549 7.184 5.511 3.734 5.416 5.438 6.037 5.838 5.230 5.949 5.198 5.406 3.451 4.720 5.783 5.129 4.896 6.852 6.410 3.681 3.847 5.081 5.290 3.969 3.653 3.072 2.790 2.852 2.611 - 4.943 6.733 6.298 4.206 5.316 6.014 5.532 6.074 6.267 4.844 4.978 4.887 3.711 4.967 4.771 4.369 5.103 4.039 3.680 3.052 4.289 4.645 4.749 4.119 4.956 4.434 4.179 3.393 3.062 3.435 3.495 3.041 3.140 2.615 1.632 1.747 - 7.092 7.032 6.053 2.892 5.254 6.087 5.385 6.114 4.277 4.311 5.893 4.574 4.599 5.887 5.550 4.328 4.590 4.423 4.278 4.581 4.008 4.937 4.722 5.165 5.432 4.722 4.124 3.836 3.660 3.276 3.279 3.230 3.321 3.257 2.292 2.229 - 7.454 7.782 6.591 4.476 3.948 4.772 5.409 5.582 4.260 2.684 4.557 4.282 2.562 3.642 4.069 3.129 2.257 5.412 5.146 3.968 3.184 3.584 3.644 4.180 3.176 3.753 2.858 3.612 3.020 2.769 2.581 2.649 2.639 3.036 3.181 1.452 - 6.037 6.232 5.465 3.801 3.962 4.044 4.527 4.175 4.165 2.879 3.743 3.941 2.986 4.556 4.707 4.777 4.166 5.474 5.021 4.492 4.286 2.379 3.189 3.981 3.239 2.884 3.616 4.212 2.992 3.331 2.483 2.924 2.806 2.604 2.025 1.201 - 2.001 4.344 5.473 4.530 4.396 4.937 4.203 5.436 4.447 2.586 4.311 4.337 3.177 4.918 5.045 3.502 3.931 4.462 4.268 4.103 3.756 3.367 3.608 3.898 3.180 3.224 3.211 3.564 4.107 3.702 2.463 2.640 2.587 2.419 1.973 2.010 - 4.398 4.535 4.856 4.598 4.900 4.619 4.481 5.300 3.139 2.775 3.714 1.763 2.486 3.379 3.327 2.909 3.532 3.597 3.840 3.993 4.087 3.592 3.196 3.510 3.907 3.402 3.606 3.883 3.437 3.648 2.821 2.947 1.563 2.116 2.272 1.997 - 5.797 6.748 6.682 4.823 4.525 6.039 5.778 4.038 3.190 2.243 2.886 2.847 3.430 3.830 3.530 3.833 3.880 4.095 1.813 2.613 3.916 4.087 4.131 4.224 3.316 3.039 2.813 3.417 3.258 2.869 2.825 2.299 2.448 3.122 2.658 1.727 - 5.226 5.756 5.858 2.992 3.585 6.135 5.955 4.271 3.641 3.985 4.080 3.226 3.337 3.238 4.812 4.555 4.887 4.796 3.756 3.842 3.463 4.135 2.789 3.832 3.888 2.919 2.156 2.455 2.439 3.071 2.482 2.526 2.367 2.512 2.157 1.821 - 8.581 8.247 7.839 7.473 7.547 7.119 5.610 4.396 5.340 5.392 3.870 4.217 4.348 4.960 5.452 5.662 4.854 4.602 5.031 5.094 3.518 4.538 4.777 5.889 6.252 5.925 5.708 5.788 6.124 5.608 6.203 5.204 3.600 4.591 5.464 5.801 - 9.025 9.453 8.407 8.021 8.605 8.067 6.943 6.627 6.371 7.145 5.572 6.345 6.159 6.159 8.601 9.492 8.570 8.625 8.350 6.756 5.577 6.645 8.139 7.895 7.892 8.000 7.815 8.074 8.938 8.919 8.340 7.673 6.329 6.210 7.738 7.804 - 8.220 5.999 5.724 4.800 4.135 4.553 5.615 6.548 5.863 5.420 4.087 4.468 4.515 4.572 7.286 8.057 7.581 6.936 6.136 4.064 4.144 5.792 6.614 5.451 6.377 5.510 6.450 6.591 7.013 7.134 5.682 4.716 4.559 5.038 5.178 5.201 - 6.181 5.424 4.856 2.985 3.035 3.871 4.575 3.940 3.570 3.495 2.341 3.874 3.727 4.088 3.961 3.909 4.093 4.465 3.407 3.440 4.156 3.442 4.020 4.181 4.010 3.926 3.684 3.855 4.317 4.510 4.369 3.409 3.488 3.034 3.515 2.840 - 4.878 5.128 5.029 5.607 5.360 4.366 4.655 5.727 3.796 2.560 3.341 4.936 5.311 5.172 5.269 4.606 4.581 4.377 4.289 3.635 3.792 4.241 4.454 4.783 5.217 4.319 4.224 4.098 5.107 4.834 4.866 4.997 5.356 5.026 5.252 4.808 - 5.238 5.036 4.404 5.295 5.214 4.993 4.454 4.164 3.251 2.855 4.931 4.971 3.940 4.872 5.140 4.918 4.716 5.261 5.663 4.860 5.483 5.338 4.928 4.885 5.307 5.307 4.796 4.560 5.184 4.767 4.680 4.661 5.307 4.890 5.161 4.627 - 6.242 5.633 2.899 4.376 4.925 5.295 5.371 4.758 5.043 4.679 5.578 4.370 4.117 5.235 6.019 6.359 6.302 5.282 5.072 5.337 5.309 5.996 6.827 7.144 7.766 7.846 7.770 7.549 6.954 6.485 5.996 6.125 6.720 7.094 7.246 6.737 - 6.167 5.383 5.535 6.143 5.539 5.714 6.628 6.494 5.387 5.831 6.293 5.485 5.106 5.982 7.219 6.735 5.607 5.410 4.807 4.231 5.368 6.298 7.771 7.310 8.451 8.543 8.346 8.052 7.603 6.915 6.902 6.576 6.941 6.889 6.730 5.738 - 5.337 5.481 5.044 2.974 4.567 4.457 5.169 5.489 5.696 4.819 3.861 4.420 5.680 6.440 6.554 5.799 7.269 6.308 5.051 5.654 7.133 6.460 7.475 7.370 8.655 9.013 8.685 8.853 8.521 7.944 8.591 7.585 7.900 7.166 7.698 5.860 - 6.736 7.076 6.412 5.289 5.934 5.448 5.511 5.892 5.151 4.253 4.746 5.209 5.620 5.341 5.356 6.539 6.748 5.381 4.753 4.966 5.637 6.515 7.156 7.403 6.783 6.575 6.306 6.527 6.759 6.546 6.927 6.396 6.212 5.818 6.142 5.563 - 7.148 6.694 7.025 6.651 7.669 7.350 7.848 6.509 5.494 5.229 5.166 3.772 5.585 6.420 6.046 7.351 7.924 6.498 5.794 4.796 5.406 5.946 7.050 7.055 6.835 6.287 6.116 5.975 5.684 4.835 6.451 6.717 6.882 5.550 6.487 6.108 - 8.421 7.759 6.223 5.244 6.492 7.533 8.068 6.390 5.120 6.393 5.969 4.412 5.141 4.412 4.903 5.006 5.546 5.748 4.089 4.883 5.149 5.753 5.699 5.050 5.743 6.523 6.555 6.832 6.918 5.369 5.680 6.664 6.364 5.486 6.274 6.555 - 8.721 6.818 6.382 7.375 7.742 7.497 6.837 6.768 4.953 4.914 5.479 5.623 4.572 4.148 4.834 5.389 5.611 5.841 4.202 4.731 5.521 5.548 5.166 5.636 4.845 5.509 5.853 5.501 5.241 5.405 5.257 5.459 4.847 5.423 5.274 5.505 - 4.588 6.066 5.989 5.835 6.129 5.954 5.229 4.989 5.066 4.519 4.556 4.703 6.405 5.256 4.857 4.991 6.142 5.765 6.148 4.804 4.987 5.508 4.877 5.388 4.904 6.361 5.642 5.745 5.556 5.074 4.736 5.051 4.660 3.808 4.458 5.189 - 4.961 5.731 6.531 6.539 6.060 5.548 5.232 5.274 5.738 5.557 4.975 4.391 5.412 5.436 5.877 4.543 4.693 5.871 5.659 4.440 4.099 5.615 5.947 5.904 5.100 6.537 5.336 5.312 5.184 5.742 5.344 6.003 4.824 4.558 5.269 5.018 - 5.599 5.229 6.609 7.117 6.260 5.141 4.946 5.455 5.976 6.337 5.432 3.757 5.278 5.784 5.186 4.755 5.052 4.875 4.201 4.094 4.938 4.966 4.926 5.266 5.045 5.615 4.621 5.427 5.029 4.421 4.311 4.221 4.656 4.837 5.231 4.614 - 5.979 4.092 5.406 6.652 6.030 5.345 5.964 5.653 5.099 5.197 4.602 5.635 5.174 5.504 5.135 4.586 3.136 4.959 5.091 3.479 4.385 5.240 5.291 5.502 5.075 5.592 5.633 5.532 4.383 4.816 5.120 4.525 5.198 5.583 5.156 4.366 - 7.132 5.920 5.122 5.108 5.814 5.330 5.023 5.700 4.763 4.378 3.695 4.788 4.477 5.247 5.097 4.453 4.942 4.746 4.901 4.299 3.727 4.232 4.644 4.629 3.887 4.827 3.995 3.477 4.291 4.568 4.110 3.864 3.652 3.664 3.881 3.473 - 4.237 3.973 5.643 6.498 5.266 5.278 5.305 5.622 5.539 4.889 4.533 3.953 4.641 5.645 5.533 3.520 3.268 2.466 4.585 3.841 3.587 4.045 3.255 2.800 4.122 4.259 3.412 3.885 4.217 3.107 3.905 4.049 3.167 3.512 2.998 2.773 - 4.810 2.923 3.053 4.593 5.792 6.109 4.968 3.811 4.713 5.128 4.456 4.368 4.629 5.064 5.111 3.380 4.997 4.842 4.690 4.697 5.060 4.224 3.803 4.218 5.657 5.839 5.314 5.806 5.748 5.362 4.893 4.459 4.718 4.042 3.960 3.348 - 5.867 5.111 4.019 4.560 4.517 5.064 5.034 5.311 4.886 5.582 4.510 5.255 4.837 6.301 5.669 5.164 5.122 5.060 5.097 4.371 4.521 5.171 5.408 5.739 6.183 5.793 6.049 6.378 5.327 5.727 5.141 4.675 5.422 4.992 5.559 4.872 - 6.152 6.283 5.807 4.517 5.244 5.772 5.364 5.703 5.813 4.135 5.309 6.587 5.977 6.065 5.352 4.436 4.902 5.756 5.077 3.993 2.904 4.122 5.643 5.338 4.579 5.926 5.991 5.519 5.721 5.320 4.908 5.027 5.805 5.433 5.286 4.566 - 4.173 5.974 5.899 4.869 4.907 4.687 6.089 5.369 3.963 3.139 3.699 4.573 4.245 5.626 5.844 6.487 5.841 5.874 5.692 5.263 6.121 5.844 5.339 7.193 6.497 6.482 6.610 7.365 6.979 7.757 6.959 7.572 7.393 6.663 7.181 6.728 - 5.749 4.904 4.550 4.875 4.492 5.362 6.527 5.943 5.062 4.159 4.985 4.666 4.069 4.637 5.148 5.632 5.614 5.043 4.715 4.329 5.652 5.029 5.223 5.792 5.758 6.222 6.385 6.088 5.902 6.377 5.912 6.138 6.566 5.667 6.085 5.520 - 5.292 6.676 7.288 7.964 8.393 8.768 8.591 7.896 6.945 5.551 6.298 6.487 5.715 5.243 4.848 4.194 4.556 4.995 4.552 5.320 4.630 4.277 5.964 5.295 5.077 5.362 4.487 5.354 6.422 6.316 5.646 5.465 6.174 6.148 5.277 4.089 - 6.187 5.527 5.682 6.731 6.433 7.764 7.216 5.812 5.028 4.984 4.670 3.051 4.804 5.983 5.035 4.498 5.505 5.465 4.860 5.265 4.635 6.117 6.185 6.257 6.355 5.627 5.937 6.159 4.650 4.852 5.180 6.299 6.204 5.806 5.549 4.482 - 6.247 6.938 5.584 6.251 8.710 8.824 7.995 8.884 7.296 6.087 6.968 6.389 6.032 6.368 5.639 6.429 5.871 6.226 6.715 5.903 6.337 7.517 9.006 8.745 8.650 7.057 7.343 7.459 6.862 7.812 7.982 7.678 7.130 6.966 6.835 6.839 - 6.631 6.170 5.946 6.847 9.264 8.360 7.126 9.382 8.999 5.845 6.860 6.499 5.661 5.224 6.128 6.150 6.091 5.928 6.198 5.404 5.606 6.237 8.808 8.969 8.910 8.199 8.581 8.464 7.604 8.129 7.819 6.740 7.440 7.513 6.510 6.741 - 5.662 5.942 4.482 7.280 9.407 8.437 6.652 9.393 8.845 5.088 4.270 4.493 5.235 5.718 4.782 4.759 5.095 3.934 5.380 5.348 5.630 7.038 9.167 8.574 8.028 8.471 8.890 9.280 8.115 7.233 5.732 7.404 6.978 5.462 5.053 4.187 - 5.777 5.176 4.605 6.542 8.566 7.716 7.075 9.233 8.214 5.581 6.569 5.629 5.452 4.535 4.414 4.127 4.197 3.802 5.562 5.488 6.236 7.407 9.051 8.032 7.798 7.626 8.239 8.528 7.783 7.147 6.448 8.038 7.063 5.140 4.520 3.607 - 5.107 4.771 4.224 6.759 7.203 4.918 4.884 6.482 6.575 4.339 4.681 3.941 4.177 5.217 4.861 4.217 5.005 4.972 4.817 4.910 5.653 6.734 6.600 5.847 5.971 6.532 6.596 5.996 5.615 5.415 6.076 6.520 6.517 4.448 4.027 3.231 - 4.421 4.681 3.644 6.116 6.638 7.043 6.115 5.199 5.551 5.581 4.778 3.706 3.668 3.564 3.601 3.405 4.078 4.238 4.091 4.142 4.107 5.241 6.132 5.816 5.683 5.498 5.347 5.523 5.222 4.130 5.506 5.832 6.255 4.559 4.350 3.538 - 6.711 6.029 3.443 6.484 8.495 7.553 5.836 5.573 5.661 4.431 4.075 3.661 4.243 4.328 4.068 3.508 2.986 4.007 3.984 3.713 3.955 5.159 6.008 5.520 4.995 5.159 5.514 5.405 5.608 5.020 5.087 5.382 5.202 5.207 5.159 4.787 - 6.471 6.850 5.595 6.503 8.153 7.267 4.842 5.281 5.058 4.683 5.751 5.115 4.289 4.891 4.392 3.290 3.417 3.610 3.947 4.341 3.972 5.128 5.197 4.985 4.833 4.593 4.873 5.200 5.962 4.894 4.690 4.409 4.667 3.751 3.035 3.042 - 4.436 5.783 5.029 6.605 6.499 5.967 4.141 4.522 4.068 3.973 6.026 5.067 3.404 3.142 3.571 3.313 4.187 4.259 4.748 4.322 3.595 3.716 5.159 5.445 4.852 4.378 4.920 4.890 4.486 3.258 4.161 4.891 4.575 4.690 4.220 3.265 - 5.507 4.385 4.922 6.490 7.721 6.677 6.002 6.663 5.495 4.587 6.001 5.880 5.439 4.666 4.806 3.352 4.538 5.790 4.314 3.427 5.127 5.043 4.507 5.587 6.158 5.456 5.707 5.719 4.802 4.257 4.908 5.488 5.288 4.716 5.346 4.467 - 5.024 4.562 3.596 4.326 6.749 7.367 6.387 5.327 4.697 3.957 3.851 4.305 4.964 5.127 5.059 3.184 3.543 4.403 3.719 4.731 5.837 4.851 5.216 4.904 5.006 5.062 7.681 7.376 5.331 5.029 6.017 5.242 5.192 5.158 5.645 5.863 - 4.797 4.706 4.168 4.934 8.253 10.081 9.139 6.112 5.637 4.264 4.481 4.903 4.338 5.278 4.974 4.611 4.443 5.744 7.149 8.243 7.369 6.131 5.859 6.405 7.040 7.455 7.934 7.312 6.085 5.516 5.531 4.849 5.177 4.726 5.483 5.345 - 3.090 2.734 3.226 4.576 10.213 11.424 9.580 6.834 6.932 5.931 5.538 6.175 4.785 6.919 5.873 5.901 5.514 7.949 8.383 10.081 7.996 7.761 5.761 7.653 7.939 8.662 9.543 9.439 6.899 6.908 6.478 5.752 6.751 6.143 5.460 5.035 - 4.329 5.224 5.384 5.398 10.392 11.458 9.089 7.271 8.592 7.593 6.291 6.629 4.987 7.551 6.509 6.428 5.991 8.740 9.321 10.809 7.976 7.459 5.449 7.478 8.302 9.183 10.097 10.566 7.553 7.013 7.178 7.930 8.559 7.095 5.126 5.216 - 4.317 4.342 5.566 4.764 10.105 11.007 8.542 8.629 10.592 9.010 5.618 7.083 5.009 7.297 6.347 7.093 6.471 9.258 9.270 10.722 8.017 7.774 4.767 7.546 8.228 9.268 10.286 10.786 7.825 7.153 7.610 8.582 9.173 6.985 5.084 4.762 - 5.100 5.400 4.946 4.612 9.596 9.981 5.996 9.059 11.327 9.703 6.487 7.313 5.098 6.918 5.952 7.192 6.697 9.959 9.141 9.688 7.676 7.504 4.613 7.844 8.155 9.257 10.414 10.975 7.344 6.850 7.544 9.258 9.776 6.755 4.495 5.541 - 6.525 6.150 5.364 5.954 9.971 10.308 7.315 10.111 11.886 9.962 6.906 7.336 4.906 6.727 5.566 6.887 7.196 10.497 9.349 9.050 7.076 6.673 5.459 7.620 8.563 8.973 9.848 10.353 7.449 6.903 6.397 9.614 9.836 5.662 4.871 5.332 - 4.746 4.012 5.622 6.209 10.004 9.808 7.210 11.012 12.154 9.774 7.551 7.710 6.697 7.369 5.729 6.973 7.330 9.788 9.227 9.188 6.152 5.425 5.833 6.672 7.665 8.654 9.907 9.373 7.213 6.013 6.673 8.434 8.712 5.992 4.926 5.040 - 6.887 7.245 5.946 7.291 10.165 9.808 7.796 11.483 11.653 8.869 6.639 6.189 6.584 8.036 6.302 5.889 5.946 7.328 8.177 7.454 7.036 5.368 5.541 5.461 5.470 7.481 9.066 8.596 7.641 7.553 7.264 8.283 8.671 7.048 6.939 6.062 - 5.656 6.346 6.183 7.579 8.625 9.276 8.859 10.975 9.706 6.971 6.343 5.835 6.859 7.641 5.749 5.545 7.962 8.595 8.523 7.276 6.914 6.552 4.737 5.603 5.888 6.712 8.723 8.413 6.248 5.802 6.149 8.127 8.368 5.933 4.829 4.384 - 7.166 6.174 5.793 6.396 8.670 8.576 8.229 9.318 8.776 7.516 6.788 6.845 5.836 6.403 6.604 6.923 7.440 7.390 7.013 6.542 5.539 5.602 5.275 6.136 5.254 5.848 7.553 7.836 5.497 5.656 5.600 6.163 6.342 5.104 4.875 4.459 - 6.350 6.719 5.131 6.324 7.115 6.423 6.784 8.557 7.828 6.766 7.970 7.035 4.994 5.074 5.018 6.270 6.756 7.639 6.253 7.002 5.217 5.261 4.746 4.994 4.828 5.548 6.862 6.640 4.423 4.333 5.369 6.115 5.665 3.803 4.492 3.723 - 6.862 7.242 5.693 7.020 8.451 7.927 7.865 8.654 8.970 7.331 6.297 5.594 5.324 5.866 5.232 5.767 5.725 6.196 5.218 5.519 4.876 4.692 5.292 5.788 5.746 6.117 6.362 5.619 4.397 3.528 5.155 6.143 6.005 3.804 3.581 3.798 - 5.221 6.062 5.903 7.874 8.938 7.144 6.523 6.532 7.903 6.143 5.437 5.909 6.598 6.310 5.503 6.374 6.649 4.121 5.350 5.967 5.121 5.177 5.461 5.900 4.867 5.311 4.887 5.716 4.483 3.827 4.263 5.472 5.207 3.798 3.467 3.905 - 2.856 3.963 5.165 6.977 8.508 7.051 6.185 8.274 8.346 5.618 5.566 5.373 6.756 5.452 5.323 6.838 6.955 5.620 5.755 5.544 5.114 4.686 6.192 5.666 4.954 4.980 4.479 4.617 3.744 4.040 3.714 4.542 4.342 4.395 3.854 3.555 - 5.055 3.729 5.029 6.142 7.269 6.404 7.549 8.446 6.902 5.770 6.527 5.912 6.150 5.195 5.656 6.167 6.162 5.441 5.333 4.685 4.674 4.127 5.253 6.311 5.204 4.918 5.789 5.331 4.772 4.267 4.839 5.366 4.492 3.863 3.921 4.206 - 3.630 4.024 4.464 7.121 8.000 6.468 7.732 8.874 6.687 5.689 6.028 5.747 6.733 6.126 7.221 6.228 5.265 7.051 5.957 5.056 4.136 4.689 6.221 6.177 5.845 5.500 5.579 5.450 4.600 4.607 4.645 5.022 4.814 4.182 4.015 3.308 - 5.370 4.929 5.180 7.317 8.468 6.294 7.476 8.886 6.857 5.910 5.881 5.640 6.155 5.511 5.801 5.772 6.027 6.768 5.753 5.899 5.341 4.663 5.089 6.379 5.346 5.305 5.760 5.748 4.953 4.050 4.271 5.384 5.776 5.182 4.961 4.566 - 7.201 6.278 6.053 7.863 8.378 6.116 7.055 7.827 5.840 6.087 6.093 6.807 7.239 4.121 4.610 6.854 6.284 5.993 5.706 5.668 5.675 5.175 5.823 6.090 4.988 5.164 6.154 6.049 4.442 4.806 5.428 6.095 6.114 5.641 5.094 4.119 - 6.842 5.814 5.734 7.648 8.888 7.274 6.428 6.901 5.318 6.123 4.312 7.660 7.992 5.699 4.701 7.175 6.759 6.213 6.283 5.291 5.709 5.086 6.226 6.312 5.133 5.554 7.014 6.360 5.094 5.105 4.058 6.280 6.028 5.201 4.698 4.742 - 6.859 5.544 6.152 8.237 9.084 6.978 7.899 8.956 6.972 6.549 5.584 8.229 8.116 5.474 5.510 7.242 6.266 6.469 5.488 5.066 4.486 4.693 5.831 5.233 5.106 4.935 5.290 5.272 5.325 4.933 5.188 5.271 5.973 5.991 6.253 4.660 - 5.963 6.391 5.885 8.619 9.244 7.076 9.052 9.199 6.766 7.052 5.660 8.301 7.598 4.315 5.437 6.837 5.204 5.759 5.434 4.602 3.325 4.393 4.607 5.169 5.325 4.499 5.008 5.613 5.320 4.275 5.210 5.264 5.091 4.650 4.935 3.942 - 7.746 6.152 4.489 8.540 9.234 7.385 9.324 9.450 6.698 7.311 7.151 7.678 8.016 6.519 6.861 7.246 6.936 7.456 7.120 7.264 7.457 7.401 7.662 7.988 7.798 7.995 7.885 7.700 7.549 7.331 7.876 8.211 8.424 8.433 8.140 7.446 - 4.877 3.257 3.789 7.466 8.465 7.454 9.252 8.398 7.297 7.783 7.917 8.543 7.024 5.969 6.161 6.381 5.445 6.182 5.983 5.684 6.236 6.008 6.567 6.511 6.646 6.821 6.490 6.444 6.610 6.071 6.620 7.039 7.126 6.990 6.640 6.087 - 6.165 5.932 5.951 8.384 8.687 7.373 7.501 5.951 7.713 8.382 7.796 8.464 7.568 6.704 6.711 6.517 5.507 6.212 5.634 4.250 4.755 5.348 4.430 3.515 3.960 4.239 5.058 6.423 6.814 5.765 5.987 5.279 5.181 4.215 4.392 3.653 - 6.268 6.234 5.795 7.702 8.575 7.695 7.057 8.483 8.167 8.342 8.073 7.512 7.295 5.847 6.470 7.455 5.562 5.206 5.282 6.044 4.280 4.458 5.090 4.529 4.224 4.280 4.826 5.793 6.108 5.120 5.126 4.988 5.114 5.100 4.449 2.979 - 6.322 5.453 4.938 7.284 7.832 7.551 8.458 8.905 8.367 8.275 7.777 8.102 7.528 7.251 7.733 9.150 6.979 6.088 5.750 5.282 5.299 4.802 5.019 4.265 4.309 4.248 4.965 5.243 5.224 4.765 5.958 5.606 5.187 4.608 3.784 2.987 - 6.013 6.777 5.822 7.481 7.406 7.762 8.891 8.840 8.310 8.436 8.750 8.391 8.634 7.303 7.545 10.688 10.050 7.727 6.378 5.991 5.838 5.502 4.923 4.981 4.122 4.527 6.206 6.405 6.110 4.376 6.650 5.894 5.586 4.013 3.835 2.540 - 4.327 6.084 6.152 7.026 7.117 6.207 7.359 6.438 8.866 9.055 7.977 8.749 6.407 8.021 7.953 9.216 9.253 8.247 7.556 6.760 6.467 6.137 5.629 5.549 5.650 5.858 7.278 7.530 6.713 6.655 6.289 6.051 6.130 4.980 3.934 2.807 - 5.893 5.157 3.588 6.471 5.767 6.906 8.816 7.484 9.318 9.952 9.116 10.174 8.275 6.786 7.615 7.472 7.826 9.062 9.518 8.004 7.177 6.724 6.676 6.797 6.676 7.207 8.759 8.883 7.350 7.536 7.261 7.042 6.386 5.982 4.569 3.269 - 5.884 5.186 5.349 6.867 6.325 7.562 9.592 8.364 9.731 10.145 8.927 9.778 6.941 7.752 7.031 7.509 8.214 8.782 9.877 10.282 9.198 7.013 6.957 7.180 7.331 7.948 9.207 9.291 7.953 7.686 7.003 7.504 6.946 6.307 4.243 3.415 - 5.910 6.195 4.840 5.366 6.044 7.458 9.416 8.236 10.066 10.667 8.597 9.633 7.726 7.927 6.587 7.184 7.925 8.233 9.179 10.806 10.364 7.570 8.273 7.881 8.076 9.122 8.771 9.207 8.170 7.810 8.282 8.357 7.870 7.340 4.254 3.812 - 4.368 4.383 4.350 6.378 6.541 6.415 8.727 7.475 10.335 10.682 7.549 8.197 6.181 7.010 6.730 7.558 6.441 6.980 7.725 9.142 9.019 9.093 9.363 8.172 8.906 9.902 8.841 8.706 6.646 8.008 8.602 7.276 7.642 6.985 5.061 4.519 - 5.612 5.941 5.457 6.974 6.409 6.833 8.949 7.689 9.746 10.041 6.883 7.949 6.131 6.928 5.917 6.898 7.316 6.408 6.854 8.637 8.409 8.423 9.894 8.871 9.602 10.020 8.994 7.645 6.127 7.367 9.005 7.335 7.752 7.304 5.112 4.296 - 5.970 3.646 3.700 7.139 7.359 7.436 9.024 7.515 8.436 8.788 6.043 7.372 6.392 6.600 5.928 6.130 4.861 5.047 6.404 8.803 8.510 7.783 8.566 10.019 9.675 9.216 9.043 7.925 7.092 6.848 9.072 7.410 7.237 6.576 4.913 5.218 - 5.290 5.089 4.681 6.539 5.820 5.927 7.633 7.119 7.195 6.912 5.780 6.148 5.626 6.730 4.863 4.750 4.323 5.064 5.617 7.934 7.690 7.818 8.071 9.709 9.026 9.546 8.608 7.063 6.857 6.625 7.545 6.334 6.691 6.741 5.837 5.278 - 5.802 4.680 3.826 6.267 5.640 6.591 6.269 4.547 5.385 5.948 5.471 6.239 5.241 6.518 5.811 5.563 6.180 5.668 4.127 6.336 6.955 6.752 6.655 8.217 8.492 7.916 6.931 7.226 5.678 5.513 5.721 6.272 5.403 5.344 5.458 4.098 - 4.869 6.142 6.667 6.267 6.959 6.915 6.908 5.749 6.151 5.753 6.168 6.436 3.995 5.416 4.937 5.245 6.669 6.216 5.987 6.996 6.437 6.154 6.020 7.063 7.472 7.411 7.084 6.437 7.169 6.902 7.211 7.115 5.920 5.750 6.440 6.453 - 6.102 6.335 6.130 7.713 6.889 6.636 6.973 6.520 5.883 5.343 6.080 6.297 5.349 5.308 5.603 5.794 6.761 6.847 6.148 6.802 6.413 5.825 4.937 6.071 6.616 7.006 6.803 5.970 6.841 7.380 6.606 7.325 6.741 7.111 7.247 6.537 - 5.663 6.861 7.585 8.723 8.687 8.818 8.716 6.792 6.861 6.037 6.614 6.966 5.873 5.564 6.477 8.320 8.713 7.218 7.453 8.279 7.661 7.774 7.963 8.572 7.394 8.444 8.673 9.509 8.915 8.970 8.713 8.338 8.517 8.335 7.894 7.770 - 7.342 7.574 7.532 8.277 8.175 7.436 8.552 7.036 5.373 6.341 6.511 5.270 7.502 7.180 7.337 8.392 8.577 7.772 7.943 8.839 8.884 8.898 8.191 9.177 8.413 9.520 9.789 9.969 10.175 9.783 9.347 8.695 9.650 9.708 8.819 8.279 - 7.813 7.165 6.854 7.458 7.220 7.443 8.369 7.403 7.813 6.823 7.187 6.268 5.725 8.103 7.724 8.416 8.393 8.102 7.867 8.198 8.250 8.392 7.396 8.456 7.885 7.786 8.078 7.910 9.120 9.097 8.450 7.530 8.024 8.335 8.702 7.786 - 6.254 7.118 7.123 7.969 7.269 8.388 8.530 7.289 7.303 8.794 8.898 6.553 6.803 8.874 8.177 8.344 9.033 7.912 7.694 7.234 6.063 7.949 7.949 8.510 8.905 8.023 6.961 8.445 8.310 8.362 7.596 7.321 7.491 8.246 8.074 7.794 - 5.994 5.782 6.799 6.443 6.266 7.165 7.630 7.211 7.305 8.241 7.885 7.559 7.368 7.191 6.479 7.209 7.979 5.929 6.269 6.454 6.316 6.626 7.976 8.489 8.497 7.516 6.858 8.185 8.434 7.653 6.740 6.553 6.397 6.614 5.487 4.802 - 4.087 4.999 5.496 7.118 7.796 8.091 8.976 8.576 6.535 6.315 5.898 6.050 7.517 7.386 7.446 6.914 6.282 7.223 6.548 7.429 7.642 7.753 8.536 7.362 7.898 8.623 8.718 8.310 7.688 6.613 6.470 7.854 7.313 5.546 6.167 6.053 - 7.378 8.055 7.765 6.688 7.012 9.561 10.062 9.092 8.038 8.403 7.663 6.820 7.175 7.836 8.067 8.754 8.845 8.628 7.477 9.633 9.246 8.813 8.991 8.510 9.863 10.179 9.862 9.552 8.905 8.991 8.580 8.622 8.497 8.144 7.216 7.138 - 7.083 7.121 4.751 5.345 7.494 7.173 6.811 7.767 6.786 5.241 6.399 6.492 6.540 6.399 6.595 7.522 6.922 5.703 5.061 8.203 7.751 7.499 8.133 7.549 7.644 8.050 7.541 7.355 8.022 7.765 8.137 7.974 7.929 7.073 6.177 5.526 - 6.101 6.527 4.988 6.652 7.054 6.073 7.213 7.936 5.477 4.125 5.566 5.871 5.764 5.763 6.015 7.144 6.352 4.066 5.078 5.483 6.399 6.726 7.034 7.263 7.221 6.508 6.896 6.540 6.298 6.300 6.392 6.385 6.147 5.475 5.477 4.775 - 5.864 6.216 4.910 6.861 5.646 5.665 8.433 8.626 6.806 5.854 5.406 6.416 5.185 6.577 5.965 5.918 5.102 5.371 5.996 6.290 6.812 7.587 8.589 9.430 8.304 8.274 8.668 8.503 8.330 8.614 7.161 7.605 6.844 5.640 5.733 5.048 - 6.187 6.318 5.572 6.693 6.619 7.507 9.126 7.798 5.183 5.505 5.986 5.913 6.214 5.485 7.109 6.652 6.031 4.714 6.729 7.419 6.834 7.533 8.099 7.842 7.603 8.532 8.081 7.987 8.536 7.937 7.435 7.466 7.221 6.076 5.224 4.771 - 4.000 5.050 6.847 6.624 6.130 6.805 8.415 8.356 7.137 6.462 6.280 5.802 6.117 6.513 7.190 8.022 7.385 6.891 5.941 7.021 6.967 7.721 8.255 8.598 8.783 8.900 8.404 7.228 7.315 7.790 7.450 7.273 7.140 7.244 6.453 4.605 - 4.449 4.978 7.167 9.258 8.649 6.638 7.629 6.251 5.107 5.805 6.389 5.888 5.982 6.187 7.167 7.296 6.972 5.729 6.194 6.873 6.039 6.713 7.515 9.597 9.934 8.107 8.232 7.745 6.905 7.356 7.130 7.496 6.897 7.474 6.946 4.394 - 5.838 5.719 7.543 9.591 8.499 7.486 7.474 5.505 6.273 6.680 5.075 6.323 6.673 7.169 8.515 6.563 7.840 7.122 7.208 7.934 8.067 7.902 7.399 8.752 9.439 8.279 9.115 8.429 7.271 7.762 8.800 8.682 7.218 7.707 7.342 6.244 - 6.165 5.667 8.339 9.362 7.529 7.383 5.615 5.234 6.852 6.825 5.885 5.214 5.890 5.611 7.640 7.370 5.872 5.565 7.069 8.005 8.044 8.304 7.896 8.023 8.474 8.365 8.652 8.126 7.966 7.467 8.075 7.931 7.423 7.606 7.402 6.967 - 6.151 5.584 8.297 9.423 7.666 6.809 7.964 6.286 6.106 5.887 5.885 5.501 5.853 5.785 6.948 6.579 5.070 5.824 6.151 5.378 6.049 6.129 6.245 8.230 8.486 8.006 8.561 7.162 6.706 7.724 7.759 8.075 7.147 7.572 7.356 5.865 - 7.059 6.236 7.981 8.646 6.586 7.659 7.852 6.059 5.718 5.715 6.246 3.937 4.161 4.773 6.000 6.059 4.292 4.963 5.287 3.820 5.068 5.897 5.628 8.043 9.500 8.437 8.065 7.131 6.485 7.174 7.810 7.391 6.870 7.892 6.849 4.849 - 5.683 4.347 8.019 8.885 7.142 6.268 4.877 5.043 5.390 5.222 6.858 4.977 4.569 6.000 5.759 4.858 4.494 4.965 4.574 4.754 4.491 4.934 5.508 8.052 9.782 8.767 7.557 5.507 5.975 6.183 7.854 7.826 6.136 7.874 7.551 5.067 - 7.032 6.473 8.417 9.474 7.729 6.435 5.500 4.817 6.306 6.464 6.910 4.814 4.938 4.599 4.851 4.434 3.570 4.068 4.831 4.687 3.781 5.747 6.475 7.699 9.985 8.457 7.405 6.429 5.356 6.539 7.477 7.276 6.672 7.651 6.940 4.969 - 7.205 7.870 8.697 8.342 8.926 8.997 8.688 7.512 8.318 8.447 6.624 6.453 7.169 8.136 6.902 5.942 5.912 6.712 6.559 7.223 5.739 6.017 7.779 8.287 10.137 9.673 8.523 7.014 7.138 7.802 8.383 7.693 7.309 7.481 7.052 5.256 - 6.400 6.890 7.953 9.055 9.696 10.687 9.336 8.523 7.447 8.611 8.091 7.978 8.423 8.320 8.057 6.385 7.234 6.630 6.042 6.034 6.772 6.166 6.902 6.847 8.606 8.530 8.072 7.546 8.345 7.833 8.399 7.705 7.278 8.199 7.521 6.685 - 6.683 6.496 8.058 7.958 8.852 10.082 9.646 7.724 7.457 7.737 7.512 8.291 7.819 7.275 7.134 7.519 7.310 6.414 5.579 5.744 6.581 6.161 5.861 8.021 7.897 8.234 8.587 7.816 7.876 7.005 7.475 7.292 7.329 7.704 5.997 5.235 - 5.143 4.998 7.393 7.720 6.450 7.484 7.989 7.129 6.485 6.004 4.935 6.081 6.565 6.110 5.699 6.003 5.904 4.356 4.549 5.241 4.812 4.989 6.138 6.249 6.603 6.635 6.756 7.474 7.025 6.970 6.359 6.257 6.000 5.531 5.558 5.314 - 5.598 5.232 6.586 7.011 8.260 9.156 8.790 7.122 5.630 4.980 4.469 5.590 5.803 6.388 5.810 6.102 4.660 5.408 5.431 5.796 4.637 5.342 6.363 5.901 7.258 6.980 7.201 7.634 7.038 7.556 5.777 5.747 6.600 7.238 5.981 5.256 - 6.163 4.805 5.410 5.143 6.478 7.420 7.400 7.740 7.668 5.294 5.086 5.659 6.171 6.071 6.759 6.473 4.946 6.457 6.006 6.391 5.716 5.296 6.172 6.129 8.363 8.188 7.250 7.470 7.101 6.633 6.326 6.054 6.271 5.762 4.604 4.407 - 5.449 3.641 4.619 6.233 5.193 4.951 5.364 7.076 6.268 6.060 4.620 4.810 6.899 7.534 7.038 6.866 6.127 5.811 6.471 5.556 5.655 6.454 6.869 7.382 8.587 8.722 7.566 7.016 7.396 7.686 6.982 6.298 6.674 5.990 5.263 4.457 - 3.585 2.650 4.075 6.359 6.394 6.746 7.012 6.757 6.218 5.228 5.501 4.855 4.616 5.669 6.177 6.354 5.992 6.457 7.063 6.202 5.213 6.442 6.640 7.998 7.906 7.952 8.007 7.389 8.037 8.437 7.972 6.970 6.617 6.704 5.603 5.002 - 4.185 4.391 6.228 6.950 7.941 9.037 8.788 8.023 6.422 5.277 6.036 4.922 3.741 4.896 4.679 5.479 5.764 6.368 6.543 5.341 5.494 5.678 6.495 7.141 7.147 6.400 6.973 6.236 6.456 6.790 5.210 4.706 4.854 5.928 5.284 3.850 - 3.029 3.719 5.706 5.233 4.677 6.369 5.998 4.549 4.694 3.600 4.748 4.626 3.231 3.712 4.176 3.836 4.160 4.541 4.526 4.510 4.232 3.884 4.324 5.262 6.187 4.842 5.361 5.040 4.779 4.461 3.580 3.749 3.775 3.832 3.170 1.987 - 6.001 4.680 4.395 5.138 4.769 5.408 4.834 3.897 3.596 3.563 3.363 3.767 2.835 3.232 3.035 2.828 3.600 3.838 4.193 4.330 3.565 3.337 4.228 4.732 4.787 4.703 4.351 3.559 3.369 3.274 3.554 3.952 2.880 3.351 2.086 2.044 - 5.316 5.288 4.476 4.683 4.297 4.711 4.822 4.164 4.479 4.376 3.907 3.384 4.260 4.035 4.099 2.508 3.037 3.617 3.933 3.809 3.965 3.873 3.696 3.885 3.516 4.555 4.843 3.902 2.862 3.036 3.433 3.044 3.080 3.038 2.172 1.932 - 4.159 3.959 5.539 5.737 4.206 3.894 2.977 3.614 3.605 4.058 4.060 2.080 3.628 3.420 4.100 4.039 4.286 4.416 4.440 2.987 3.604 4.020 3.663 3.127 2.540 3.570 3.985 4.009 4.061 3.217 3.201 2.855 2.540 3.655 2.911 2.656 - 3.604 4.109 5.885 5.488 2.752 3.249 2.762 3.845 2.771 3.197 4.343 3.276 2.444 5.063 4.804 4.156 5.036 5.143 2.982 3.477 4.159 3.640 3.150 2.909 4.028 3.912 3.645 3.859 3.929 2.426 3.009 3.477 3.066 3.394 2.607 1.598 - 4.908 5.016 5.143 4.094 4.845 5.896 5.832 6.049 5.223 4.826 4.023 3.919 3.820 5.538 5.718 5.482 5.683 5.245 5.117 4.633 4.105 4.152 3.952 3.715 3.868 3.916 3.780 3.944 3.821 4.623 4.793 4.072 3.998 3.805 2.875 2.131 - 5.003 4.801 5.570 6.856 5.958 7.925 9.768 9.390 8.304 7.517 6.707 6.986 5.966 6.653 8.084 7.913 8.610 9.330 7.654 6.741 5.828 5.495 4.622 5.927 6.382 6.841 6.782 5.897 5.766 8.088 7.969 6.943 5.764 5.140 3.327 2.141 - 3.456 4.737 5.859 8.030 7.158 8.324 10.353 9.386 8.791 9.264 8.131 8.596 6.869 6.725 8.036 8.359 9.062 10.043 8.685 8.333 7.307 5.252 4.709 5.780 6.900 7.666 8.125 6.932 6.943 9.077 8.916 8.135 6.503 6.284 4.815 2.536 - 3.088 3.996 6.163 8.532 7.611 8.001 9.710 7.794 9.724 9.622 7.772 7.503 7.163 7.205 9.199 8.037 8.773 10.543 9.775 8.620 7.598 6.165 4.479 6.185 7.106 8.864 9.377 7.392 7.458 9.808 9.760 8.629 7.088 6.136 4.765 3.150 - 3.171 2.652 6.397 8.696 7.649 8.359 9.453 7.125 9.296 8.923 7.046 7.448 7.406 7.452 9.919 8.851 8.947 10.437 9.899 9.313 7.644 6.340 4.841 6.191 8.046 8.800 9.176 8.001 7.901 9.596 9.446 8.702 7.407 6.055 4.206 3.099 - 4.401 4.507 6.191 8.806 7.804 8.235 9.615 7.535 9.461 10.025 8.940 8.666 7.539 7.750 9.507 8.907 8.466 8.953 9.947 10.199 6.981 6.178 5.993 6.146 7.525 8.404 8.596 8.412 8.190 9.115 10.116 8.548 7.562 5.959 4.083 2.301 - 4.915 4.573 6.876 8.941 7.845 8.511 9.915 7.869 9.620 9.726 8.579 8.740 7.682 7.961 9.759 8.837 8.424 8.978 10.488 11.161 7.202 6.095 5.322 6.052 6.663 8.615 9.980 8.281 6.762 9.130 9.965 8.214 7.582 6.033 4.104 2.441 - 2.660 2.303 6.003 8.698 7.675 8.646 10.026 8.256 9.064 9.298 9.077 8.725 7.318 7.229 9.698 8.672 8.496 7.779 11.270 11.961 8.719 6.724 5.873 6.310 6.578 7.690 9.605 9.349 7.153 8.753 9.946 8.769 8.242 6.642 4.760 3.541 - 3.467 5.006 6.978 8.615 7.334 7.879 9.200 7.948 11.093 10.674 8.407 7.100 7.026 7.429 9.603 8.277 8.229 9.550 10.076 10.987 10.762 7.480 6.732 7.104 7.972 8.838 9.649 9.328 8.306 8.248 10.459 9.616 9.238 7.986 5.692 3.321 - 3.495 4.579 6.359 8.048 6.911 6.899 8.267 9.391 11.872 10.979 9.517 8.566 7.597 7.431 8.774 7.334 7.056 8.622 8.539 11.032 11.244 7.584 6.723 6.954 7.725 9.410 10.045 9.471 7.599 7.414 9.095 8.424 7.903 7.298 4.705 3.576 - 3.857 3.749 6.223 6.557 5.028 7.523 9.223 9.069 10.958 9.564 9.153 9.143 6.797 5.868 7.459 7.146 6.704 8.087 9.213 10.500 10.764 6.646 5.905 6.421 7.267 8.250 9.595 8.737 7.099 6.891 8.778 8.012 7.051 6.457 4.578 2.831 - 4.072 4.439 6.082 5.393 5.478 7.230 8.656 8.895 9.266 9.111 6.927 6.490 6.437 5.712 7.635 6.026 5.682 7.558 9.076 9.563 9.783 7.820 5.222 5.252 6.912 7.749 8.204 7.256 6.308 6.596 8.364 7.765 6.824 5.464 4.436 3.326 - 3.978 4.159 5.836 6.015 6.629 7.955 6.853 8.332 10.542 9.821 5.747 5.100 4.238 5.461 7.307 6.398 4.992 5.668 7.054 7.814 9.563 8.506 5.923 5.193 6.462 7.551 8.098 7.618 6.521 6.179 6.969 6.405 7.367 6.000 3.053 2.568 - 4.798 5.422 5.199 4.635 5.137 8.442 9.902 9.074 9.981 8.861 6.225 5.609 5.292 5.167 6.378 6.166 5.950 7.023 7.111 7.942 9.648 8.013 6.250 6.355 6.153 7.138 6.972 7.320 7.472 6.538 7.009 5.505 6.018 5.334 3.997 2.457 - 4.240 4.623 5.689 6.443 5.516 8.585 10.103 8.687 9.493 8.320 7.026 6.791 5.074 4.719 5.606 5.316 6.242 7.794 7.278 7.736 8.486 7.282 5.852 5.812 5.532 6.113 8.358 8.147 6.518 6.860 6.954 5.471 5.346 4.962 3.018 1.818 - 4.736 3.622 2.786 6.171 6.838 8.722 9.010 7.758 8.415 7.143 5.714 6.288 5.663 5.064 6.440 5.434 5.951 7.709 7.437 7.469 8.600 7.279 6.520 6.074 5.650 6.553 9.236 8.868 6.701 6.963 6.642 6.220 5.255 4.554 3.456 2.502 - 4.850 4.118 4.059 5.997 7.926 9.006 8.320 6.582 8.199 7.247 6.070 5.417 5.136 5.758 6.563 5.707 5.186 7.452 7.394 7.214 7.846 7.302 5.611 5.840 5.816 6.850 7.474 6.963 6.302 6.437 5.753 4.647 4.585 4.404 2.816 1.850 - 5.747 5.243 4.550 3.923 7.452 8.406 7.951 7.185 8.006 6.210 5.256 5.369 5.060 5.290 5.728 4.491 5.792 6.782 6.577 7.168 6.926 5.929 5.077 4.190 4.997 6.552 7.524 6.742 5.644 5.235 5.649 4.246 5.142 4.824 3.507 2.650 - 4.910 4.105 5.752 5.725 6.683 8.362 8.414 6.459 6.495 5.852 4.244 4.051 4.484 5.390 5.323 5.260 5.502 5.595 5.246 6.826 7.041 5.735 4.576 4.295 3.967 5.354 6.641 6.012 6.063 5.527 4.813 4.695 4.809 4.083 3.216 3.132 - 5.198 4.881 4.429 5.586 5.984 5.774 6.166 5.037 6.774 6.367 5.557 4.262 3.946 4.359 4.394 4.794 4.010 6.027 5.406 5.928 6.090 4.788 4.161 4.649 4.523 5.285 5.872 5.540 4.868 5.109 4.953 5.017 4.255 3.568 2.851 2.587 - 6.006 5.085 4.035 5.963 5.949 5.863 6.899 6.323 6.452 5.225 4.526 4.909 4.490 4.275 4.555 3.513 4.573 5.277 4.501 5.728 5.780 4.779 5.133 4.140 4.422 4.677 4.661 4.217 4.005 4.461 4.561 3.774 4.296 3.690 2.502 2.157 - 3.545 3.141 3.986 4.364 5.158 6.091 6.825 5.275 5.489 5.449 4.305 4.020 2.629 5.115 5.474 4.191 3.893 5.411 5.124 5.256 5.525 4.484 4.785 4.170 3.312 4.133 3.978 3.815 3.933 4.524 5.676 4.274 4.148 3.058 2.986 1.621 - 6.062 5.869 5.704 4.719 4.167 4.360 5.100 3.635 5.170 5.371 3.887 3.540 3.028 5.120 5.573 4.256 4.539 5.020 5.414 5.615 6.261 4.358 4.843 4.446 3.860 4.580 5.451 4.146 3.782 3.535 3.817 3.768 4.362 3.975 3.156 1.868 - 4.516 5.166 5.894 5.467 4.128 4.443 6.054 4.872 5.560 5.199 3.386 2.910 3.049 5.218 5.110 3.664 4.284 4.501 4.755 4.844 5.194 3.671 3.705 4.112 4.142 4.157 4.545 4.362 4.306 4.787 3.905 3.712 3.297 2.257 2.240 0.751 - 5.007 5.156 4.994 5.304 3.457 5.799 6.586 4.494 4.201 3.833 4.306 4.101 3.816 4.536 4.924 4.420 3.630 5.176 5.461 5.274 4.528 4.559 3.911 2.780 4.436 4.857 4.408 4.401 4.726 4.125 4.408 3.946 3.045 2.874 2.198 1.328 - 4.142 5.329 4.515 2.875 3.036 4.940 5.503 2.677 4.236 4.017 4.336 4.643 3.681 4.837 5.233 3.397 3.067 4.701 4.548 4.926 4.679 3.425 3.193 3.183 4.109 4.362 4.611 3.640 4.344 4.516 3.826 3.228 2.638 2.752 2.853 1.337 - 3.326 3.980 3.418 2.483 3.585 4.828 3.936 3.430 4.273 3.680 3.564 2.260 2.667 5.268 4.641 3.648 4.463 5.448 4.335 4.151 5.297 3.899 3.619 3.980 3.928 3.777 4.822 3.949 3.869 3.790 3.413 3.021 2.279 3.149 2.525 1.159 - 5.402 4.402 2.863 2.439 1.889 3.277 4.377 4.556 4.314 3.246 3.096 3.636 3.007 4.499 4.957 3.018 4.352 5.198 5.228 5.129 4.930 4.474 3.721 4.177 4.287 4.489 4.118 4.133 3.529 2.791 2.761 2.501 2.083 2.573 1.815 1.905 - 4.940 4.448 4.861 4.584 3.694 3.320 2.996 4.198 4.950 3.401 1.891 3.985 3.456 5.303 5.438 3.396 4.383 4.775 5.114 5.314 4.408 3.873 3.945 4.011 3.517 3.231 3.552 4.059 4.126 3.583 3.015 2.498 2.532 1.618 1.624 1.516 - 5.607 5.463 5.005 3.524 4.095 4.916 4.270 4.799 3.906 3.067 2.871 3.443 3.112 5.009 4.816 2.706 3.297 6.262 5.711 4.649 4.002 3.304 3.227 3.517 3.750 4.287 3.143 3.483 3.006 2.354 2.626 2.984 3.138 2.411 2.814 1.821 - 4.495 4.229 3.686 2.674 2.144 3.209 3.928 3.906 3.586 3.345 4.360 3.639 3.297 4.937 4.089 3.719 3.113 5.604 4.995 5.248 3.286 2.558 3.641 3.427 3.537 3.011 3.816 3.408 3.437 2.893 1.917 2.316 2.685 2.395 2.610 1.605 - 5.145 5.213 3.782 2.921 3.059 5.254 5.049 3.296 4.279 3.039 3.975 3.918 3.194 3.143 3.367 3.765 3.635 4.399 4.430 3.888 1.830 2.736 2.150 2.125 3.192 3.601 3.723 3.376 3.134 2.898 3.448 2.813 2.732 2.568 2.186 1.214 - 4.020 3.805 3.442 3.954 3.049 5.231 4.745 3.541 5.288 4.572 3.510 3.385 4.049 3.444 3.149 3.838 2.510 2.772 3.415 3.942 2.854 3.492 3.904 3.759 2.232 3.026 3.643 3.940 2.882 2.971 2.453 1.940 2.442 2.537 2.538 1.395 - 3.869 2.728 3.260 2.579 1.205 3.626 3.563 3.341 4.442 2.710 2.699 3.575 3.370 3.952 4.206 4.636 3.640 4.374 4.178 3.769 3.896 3.694 4.111 3.620 2.431 3.517 3.861 2.598 3.385 3.184 2.638 2.411 2.448 2.617 2.802 1.335 - 4.107 3.499 4.038 4.380 3.111 3.396 4.216 3.126 4.270 3.969 2.175 4.391 3.819 4.242 4.670 4.406 4.567 4.896 4.907 5.080 3.756 3.812 4.589 3.615 2.468 3.237 3.257 3.289 3.602 2.865 3.012 2.859 2.249 2.716 2.683 1.221 - 4.747 3.921 3.997 4.459 3.537 3.139 4.150 5.095 3.341 2.296 1.116 4.058 4.327 5.565 5.393 3.901 3.650 3.907 4.327 4.398 2.869 3.052 3.157 3.706 2.919 2.593 2.612 3.601 2.989 2.222 2.678 2.566 1.843 2.539 3.067 2.535 - 5.112 5.258 4.081 3.379 3.810 4.927 5.466 3.383 2.332 3.192 2.768 2.914 4.135 4.587 4.175 3.680 2.888 5.332 5.119 3.422 3.036 2.797 1.961 3.986 3.758 3.094 2.776 3.274 2.613 2.465 2.669 2.805 2.421 2.712 3.056 1.796 - 3.470 5.158 5.200 4.387 3.038 5.121 4.976 3.697 3.685 4.482 4.625 3.135 3.121 5.048 4.236 3.127 3.232 3.273 3.364 2.979 3.673 3.618 2.788 2.892 3.547 2.885 3.578 3.723 2.983 2.223 3.030 2.562 1.829 2.511 2.761 1.751 - 3.000 3.675 4.947 4.167 2.338 3.988 4.769 5.142 3.565 3.477 3.110 2.262 3.240 4.193 4.479 3.332 4.744 4.157 4.967 4.268 4.100 2.855 4.222 4.903 3.716 3.112 3.237 3.267 2.640 2.631 2.783 2.671 2.563 2.250 2.559 1.657 - 4.644 3.184 3.166 3.078 1.876 3.333 4.090 3.315 3.295 4.182 4.669 3.356 2.875 3.382 3.285 3.562 4.305 3.982 4.686 3.745 3.536 3.094 3.272 4.193 3.602 3.632 2.732 2.219 2.396 2.437 3.139 2.612 2.559 2.286 2.539 1.824 - 3.751 3.549 3.341 4.137 3.874 3.709 3.921 3.387 3.657 3.366 2.492 3.157 3.425 4.604 4.322 3.807 3.076 3.869 4.349 3.982 2.717 3.215 4.081 3.142 3.295 3.206 2.584 2.812 2.733 3.539 3.799 3.432 2.583 2.325 2.636 0.951 - 5.245 3.390 3.253 3.642 3.336 4.463 4.740 3.931 4.065 2.410 2.387 3.771 3.198 4.596 4.452 3.612 4.139 3.911 3.891 3.371 4.061 3.428 4.190 3.912 4.176 3.898 3.116 3.311 2.936 2.832 3.076 2.072 3.375 3.394 2.626 0.979 - 4.727 4.589 3.440 2.689 1.404 4.326 4.666 3.186 3.828 1.563 1.331 2.329 3.297 4.331 4.416 3.676 3.883 4.388 4.644 2.433 2.520 2.360 3.908 3.898 3.593 3.344 3.408 3.756 2.684 2.730 2.772 2.007 3.335 3.297 2.351 0.922 - 4.462 5.089 3.721 3.695 4.005 4.495 5.000 3.814 3.816 3.094 0.727 2.740 3.964 4.774 5.009 3.764 3.061 4.379 4.227 4.111 3.291 2.962 4.332 3.525 3.141 4.501 3.534 3.932 3.064 2.943 3.145 2.754 2.978 2.254 1.741 1.586 - 3.689 4.806 3.239 3.064 3.709 4.603 4.881 4.929 3.182 3.066 4.061 3.064 3.739 4.537 4.601 3.840 3.125 3.936 3.347 4.549 4.042 3.283 3.676 2.872 3.796 4.081 3.650 4.228 3.622 2.862 2.706 2.840 2.449 2.692 2.213 2.208 - 4.492 3.102 3.434 1.314 3.527 5.269 5.383 3.734 3.670 3.709 4.463 3.141 3.371 5.053 4.952 3.870 3.259 2.988 3.802 3.525 2.825 3.815 4.191 3.038 3.206 4.383 3.348 3.873 3.116 2.935 2.665 2.293 2.355 2.909 2.134 2.073 - 4.991 3.650 4.448 4.252 4.171 5.191 4.626 3.559 2.538 3.999 3.166 2.436 2.106 4.334 4.308 4.188 3.808 4.083 3.400 2.936 3.155 3.339 2.676 2.425 2.897 3.334 3.330 3.765 3.797 3.878 3.254 2.555 2.383 2.589 2.383 2.095 - 2.726 3.333 3.802 3.444 3.269 3.412 3.831 3.674 3.304 3.155 2.758 3.043 1.247 3.298 4.015 3.947 3.398 3.079 3.471 3.752 3.311 2.928 3.298 3.736 3.437 3.292 3.704 3.207 3.512 3.347 2.906 2.209 2.729 2.167 2.525 1.522 - 3.226 3.094 2.274 2.678 1.923 3.585 3.594 3.175 2.682 3.402 3.699 2.644 3.444 3.546 3.852 4.166 3.609 5.300 5.191 4.558 4.238 3.732 3.304 2.941 2.354 3.660 2.799 2.586 2.971 2.683 2.220 2.434 2.365 2.264 2.361 1.401 - 3.673 3.541 4.484 3.794 3.337 4.461 3.485 3.391 2.824 2.904 2.428 1.495 3.349 4.492 3.149 4.358 4.073 5.358 3.687 3.099 3.712 2.653 2.533 3.215 2.973 3.966 2.686 2.460 3.107 3.631 2.655 2.154 2.080 2.050 2.364 0.995 - 4.214 4.247 3.716 3.742 3.817 4.140 4.420 4.479 3.877 3.518 3.300 1.877 2.953 4.823 3.818 3.032 3.747 4.390 3.383 2.414 2.433 2.225 1.195 2.799 3.221 3.167 3.164 3.222 2.979 2.995 2.273 1.641 1.737 1.853 2.686 1.790 - 3.303 3.244 3.323 3.637 3.462 4.931 5.299 4.214 4.673 3.416 3.239 2.013 2.976 4.058 4.220 3.721 4.468 5.015 3.861 2.974 3.247 3.474 3.015 2.929 1.981 2.588 3.148 2.800 2.930 2.610 2.467 1.614 1.977 1.686 2.235 1.552 - 3.836 3.966 1.384 0.979 2.850 3.695 4.011 4.175 3.017 2.963 3.686 2.715 3.061 5.054 4.836 1.795 2.857 2.373 2.164 2.876 2.663 3.334 3.737 3.415 2.743 2.941 3.557 3.773 3.927 3.261 3.117 2.786 2.658 2.279 2.166 1.423 - 5.620 4.078 2.160 2.636 2.231 4.250 4.558 3.988 3.389 2.853 2.432 4.091 4.508 5.637 5.451 2.832 4.048 3.249 3.043 3.177 3.082 3.777 3.092 2.906 2.996 2.712 2.342 2.765 2.446 2.893 2.547 2.814 2.512 2.602 2.352 2.052 - 3.363 2.688 2.003 3.957 4.690 5.197 5.049 3.709 4.574 3.413 3.841 3.981 3.946 4.650 4.502 1.920 3.501 3.825 4.020 3.861 2.534 2.544 2.381 2.897 3.751 3.888 3.407 3.271 3.125 3.665 2.830 2.614 2.528 2.703 2.248 1.402 - 4.655 5.006 4.542 3.164 3.384 4.681 4.556 3.463 5.163 4.360 3.760 3.199 2.486 3.750 4.181 4.123 3.547 4.112 3.930 3.084 3.564 2.549 2.719 3.005 3.470 4.864 3.450 3.026 2.210 2.515 1.861 2.662 3.028 2.391 2.742 1.740 - 2.502 4.141 3.251 3.107 2.964 4.637 4.661 4.643 4.000 2.474 2.349 2.600 3.941 3.199 3.477 3.282 3.585 4.971 4.092 2.544 2.745 2.436 3.428 1.910 2.661 3.854 3.152 3.342 3.725 2.890 1.749 1.543 2.391 2.276 2.117 1.425 - 5.662 5.072 4.283 2.947 3.891 4.726 4.968 3.411 2.870 2.091 1.233 1.972 2.383 4.197 4.473 4.196 4.119 4.529 4.602 3.477 3.154 2.545 3.772 3.692 3.383 3.911 3.510 3.781 3.003 2.191 2.943 2.197 2.387 2.759 1.723 1.197 - 4.130 3.635 3.244 2.901 2.944 3.710 3.436 2.471 2.394 2.801 2.060 2.136 3.277 3.882 3.468 3.782 4.258 4.678 3.971 3.518 2.672 3.240 4.475 3.615 1.790 3.353 3.019 3.642 3.106 1.915 3.047 2.838 2.989 2.363 1.789 1.970 - 5.270 4.135 2.662 4.408 5.602 5.140 4.775 3.010 3.096 3.362 3.246 3.586 4.229 4.101 3.418 4.244 4.493 3.269 2.951 3.933 3.991 4.025 3.642 3.382 4.123 3.201 2.653 3.542 3.075 3.072 2.525 2.465 2.357 2.641 1.964 2.129 - 4.698 5.294 4.321 5.214 6.153 6.093 5.922 3.835 3.984 3.595 3.677 2.491 2.774 4.666 4.602 4.098 4.091 3.613 4.306 4.070 3.202 3.476 4.323 3.248 2.991 4.288 3.369 3.803 3.016 3.469 2.732 2.858 1.942 3.068 2.833 2.521 - 2.538 3.794 3.180 3.850 4.317 3.908 4.752 3.920 3.760 4.091 4.849 4.033 2.257 4.113 4.319 3.734 4.513 4.126 3.786 5.130 4.069 3.756 3.615 3.989 4.051 3.565 4.736 4.609 4.114 2.802 3.084 3.851 2.790 2.792 2.654 2.290 - 2.100 3.650 4.061 3.038 2.967 3.850 4.508 5.090 4.507 2.145 2.458 2.647 2.263 5.134 4.460 3.124 2.896 3.791 4.326 3.994 3.502 3.536 3.987 4.425 4.554 4.217 4.697 3.925 3.418 3.227 2.813 3.078 3.020 3.027 2.834 2.185 - 1.966 2.823 3.611 3.029 3.196 4.836 4.538 3.413 3.923 3.823 3.303 3.111 3.019 5.074 5.142 3.548 2.808 3.846 3.395 3.096 3.478 3.378 3.407 3.407 3.601 3.769 3.617 3.255 3.394 3.762 3.240 3.281 3.273 2.609 2.620 1.872 - 5.561 5.000 3.313 4.507 4.170 3.430 3.660 3.715 2.719 2.817 4.532 4.355 3.550 3.212 3.025 2.775 4.380 3.739 3.804 4.050 3.927 2.980 3.868 4.192 3.416 3.642 3.226 3.678 2.261 3.901 3.078 3.379 2.901 2.793 1.998 1.342 - 3.892 5.168 4.116 3.942 3.059 3.262 2.855 3.894 3.563 3.638 4.063 3.735 2.982 3.758 3.984 3.690 4.072 4.376 3.542 4.271 3.556 3.735 4.345 3.798 3.266 3.697 3.043 4.102 3.116 2.383 2.351 2.807 3.432 3.303 2.739 2.134 - 5.623 5.981 5.047 3.760 3.343 4.609 5.075 4.683 2.828 1.181 3.269 3.415 2.768 3.662 4.292 3.747 3.006 4.099 3.147 2.289 2.055 3.165 3.181 3.738 3.716 4.180 3.283 3.439 3.262 2.684 2.021 2.238 2.232 3.246 2.387 1.707 - 5.538 5.411 3.816 2.484 3.265 4.582 4.163 3.659 3.871 3.101 3.343 3.678 3.603 4.219 4.045 3.403 4.180 4.428 3.858 2.989 2.622 3.148 4.285 3.483 1.937 3.599 3.254 2.789 2.315 2.375 2.286 1.959 2.331 2.961 1.955 1.280 - 5.658 4.404 2.562 2.892 3.490 4.292 4.773 5.088 4.206 3.195 4.031 3.261 2.828 4.681 5.342 4.786 5.475 4.740 3.450 3.124 3.323 4.283 4.391 3.941 4.205 4.374 3.862 3.356 2.450 3.909 3.290 1.742 2.229 3.148 2.868 2.121 - 3.334 4.297 3.897 2.602 3.061 4.570 4.661 4.471 2.693 1.961 3.317 3.313 2.552 4.453 5.340 4.811 4.852 5.013 2.976 3.194 3.541 4.524 4.127 3.502 3.218 3.192 4.003 4.228 4.028 3.361 2.314 1.373 2.698 3.075 2.735 1.983 - 5.241 4.826 4.286 3.293 3.643 4.595 4.198 4.428 2.969 2.931 4.304 3.377 3.837 4.675 4.262 3.681 4.729 3.442 3.217 3.271 3.281 3.561 4.236 2.990 3.675 3.508 3.418 3.680 3.964 3.505 3.127 1.623 2.366 2.905 2.701 1.706 - 3.298 4.703 4.097 4.397 3.148 3.621 3.544 4.205 2.408 2.819 4.401 4.474 4.474 5.129 4.829 3.798 5.741 4.644 3.821 3.803 3.216 3.607 3.063 3.505 4.020 3.787 2.610 2.536 3.122 3.240 3.047 2.251 1.855 2.184 2.473 1.718 - 4.139 4.659 4.022 4.120 3.242 2.697 3.388 3.872 2.629 2.310 3.782 3.528 3.519 4.891 4.471 3.169 5.433 5.473 3.999 3.983 3.260 3.963 3.430 3.399 3.828 4.245 3.192 3.418 3.202 2.487 2.973 3.495 3.213 3.414 2.224 1.972 - 4.224 4.843 3.790 1.872 3.550 4.605 4.844 3.629 3.234 3.049 4.190 4.339 2.605 5.306 4.947 3.291 3.974 4.524 5.044 4.226 3.305 4.786 4.524 3.771 4.129 4.116 3.212 4.024 3.664 2.484 3.086 3.243 3.855 2.956 3.336 2.610 - 3.912 2.948 2.916 4.119 3.455 1.817 2.245 2.834 3.042 2.971 4.763 4.287 3.424 4.763 4.697 4.324 4.375 4.182 4.135 4.451 3.294 3.752 4.865 4.365 4.103 4.882 4.313 3.323 3.873 3.286 3.295 4.207 4.165 3.720 4.038 3.597 - 3.843 4.073 3.003 2.925 2.596 2.768 2.926 4.822 3.824 1.828 2.630 3.590 4.639 4.877 3.900 4.762 5.321 4.692 4.175 3.421 3.656 4.353 5.409 5.222 4.778 4.623 4.977 4.106 4.401 4.556 4.285 5.374 4.811 3.735 4.854 4.231 - 4.671 3.843 2.957 1.311 2.660 2.691 4.334 4.123 4.101 3.927 4.245 4.132 3.815 3.302 3.671 4.123 3.966 4.335 3.003 3.012 4.018 5.417 6.956 6.050 5.880 5.157 4.407 4.620 5.533 6.114 5.739 5.972 5.711 5.363 5.367 4.145 - 4.979 4.677 4.720 2.708 4.340 4.947 3.845 4.791 4.624 4.527 4.851 4.855 4.376 4.733 4.289 4.417 5.389 4.930 3.244 3.978 5.251 6.024 5.681 5.833 6.110 5.579 5.077 5.446 6.451 6.119 6.615 6.630 6.316 5.964 5.592 4.680 - 3.053 3.918 4.359 3.564 4.877 5.155 5.079 4.658 4.313 3.746 4.716 5.462 4.695 4.381 5.165 5.973 6.172 5.027 4.620 5.123 4.035 5.906 6.494 6.540 5.700 5.778 6.206 6.525 5.551 5.587 6.721 7.557 7.066 6.466 6.274 5.573 - 3.860 3.319 4.266 5.108 4.150 3.667 4.057 5.304 4.203 3.516 5.422 5.306 4.700 4.974 4.625 5.096 5.039 5.342 4.866 5.462 4.396 5.486 6.434 6.385 6.364 6.871 7.223 7.391 7.083 6.511 6.173 7.669 7.646 7.385 7.563 6.956 - 4.314 4.159 5.094 4.634 3.583 4.870 4.923 4.996 3.160 3.472 3.908 5.319 4.726 3.510 5.648 5.974 5.576 6.528 6.500 6.393 5.670 6.485 6.436 6.576 7.619 6.576 6.736 6.900 7.224 7.732 7.982 7.571 8.174 8.232 7.601 6.359 - 3.992 5.302 4.457 2.971 2.173 3.625 4.328 4.762 4.080 4.280 2.669 4.527 5.349 4.202 4.952 6.674 6.691 5.604 6.027 7.139 5.758 6.777 7.623 6.443 6.322 6.599 6.269 7.318 7.011 7.612 7.970 7.831 8.045 7.130 7.301 6.891 - 4.988 5.071 4.343 3.759 5.229 5.543 5.510 5.838 4.452 2.121 2.857 3.977 4.701 4.469 4.377 6.725 6.793 6.330 6.887 7.041 6.587 6.267 7.549 7.434 7.493 7.641 7.168 6.976 7.951 8.137 8.493 8.372 8.226 6.523 7.591 7.348 - 4.238 3.737 3.150 4.180 4.504 4.089 4.528 5.455 5.179 4.276 4.449 5.150 4.959 5.828 5.776 6.925 6.092 5.058 5.742 5.784 6.242 7.198 7.368 8.911 8.453 8.122 6.916 7.048 7.135 7.066 7.235 8.908 9.100 7.786 8.328 7.998 - 3.664 4.846 4.401 3.118 4.525 4.454 3.979 2.996 4.294 5.049 5.839 6.135 4.193 6.596 5.909 7.152 7.150 6.135 6.879 6.420 7.036 7.998 8.318 8.268 7.913 6.693 6.161 6.990 7.211 6.560 7.096 8.063 7.603 7.989 7.702 6.707 - 2.729 4.218 4.449 3.409 4.643 4.073 3.182 4.100 4.499 4.483 5.456 5.769 5.006 5.556 6.177 6.511 6.607 6.799 6.138 6.414 6.542 7.605 7.772 7.212 7.479 7.666 6.656 7.219 7.539 8.057 7.287 8.055 8.058 7.563 8.006 6.610 - 4.908 4.829 3.733 4.451 3.974 4.326 4.434 4.405 2.672 3.385 4.953 5.567 5.586 5.106 5.220 5.095 5.427 6.564 6.433 6.149 6.718 6.680 8.106 7.763 6.732 6.549 5.850 6.612 7.973 7.842 6.904 7.039 7.739 6.638 7.426 6.461 - 5.565 5.015 2.831 3.403 3.868 4.358 4.113 2.822 3.262 4.186 4.050 4.263 4.546 4.779 4.543 4.872 6.038 5.631 5.853 5.420 6.318 6.747 7.771 7.526 7.341 6.941 6.493 7.729 8.196 8.018 7.299 7.253 7.340 7.607 8.090 6.621 - 4.044 3.643 3.873 1.141 3.134 4.542 3.935 3.630 3.924 5.381 4.803 4.270 3.567 4.393 4.094 4.290 5.843 5.027 6.745 6.086 5.202 6.349 7.181 6.425 6.797 6.408 6.372 6.385 7.026 5.423 6.816 7.283 7.745 7.198 7.586 6.879 - 3.834 4.439 4.308 3.585 3.920 5.630 4.975 3.608 3.784 4.899 5.376 4.221 4.662 5.431 5.290 5.202 6.868 5.468 5.502 6.014 5.646 6.568 6.918 6.500 7.091 6.722 6.715 6.774 7.006 7.175 7.253 7.706 7.831 6.909 6.788 6.262 - 4.079 4.496 4.783 3.527 3.800 5.227 5.089 3.806 4.533 4.404 4.722 5.116 4.571 6.204 6.372 6.253 5.568 4.160 5.463 5.667 5.956 7.032 7.968 7.686 7.919 7.436 6.382 6.643 6.007 6.575 6.880 8.516 7.708 6.931 6.939 6.588 - 4.101 4.440 4.441 4.245 3.291 4.584 5.608 3.970 4.075 4.186 3.546 4.852 4.848 5.442 5.586 6.064 4.358 4.952 5.666 4.538 5.376 6.254 7.509 7.626 6.613 5.923 6.148 5.952 6.671 5.674 5.997 7.163 6.884 5.123 7.010 5.948 - 6.319 5.754 4.558 3.516 4.120 6.265 5.734 2.665 3.500 4.453 4.729 5.217 4.784 5.681 5.547 5.505 4.694 4.561 4.638 5.469 5.375 4.810 6.156 5.880 4.787 4.758 5.675 5.505 5.397 5.617 6.186 6.784 6.553 6.078 5.929 5.028 - 5.030 4.822 5.486 5.239 3.252 5.687 5.539 3.849 3.224 2.791 4.344 4.017 3.860 5.493 6.161 6.091 6.055 6.779 6.910 6.606 5.663 6.055 6.586 6.482 6.179 6.553 6.926 7.277 6.696 6.212 5.739 6.139 6.106 4.946 5.827 5.109 - 4.622 4.112 4.492 3.405 3.812 5.213 5.371 4.875 3.664 3.830 4.182 3.184 3.237 5.719 5.555 5.197 6.256 7.143 6.816 6.704 5.116 5.760 6.113 6.464 5.740 6.177 6.732 7.279 6.361 5.958 5.781 5.989 6.643 5.121 5.093 4.418 - 4.709 4.756 5.548 4.194 1.744 4.327 5.356 4.516 3.894 4.318 3.249 2.091 3.345 5.340 5.372 4.069 4.468 5.630 4.809 3.656 3.876 4.617 3.749 4.389 4.177 4.480 4.144 4.548 3.628 3.819 3.872 4.063 4.355 3.540 3.990 3.002 - 4.658 6.104 5.959 4.436 3.197 3.659 3.879 3.774 3.785 4.145 3.494 2.960 3.070 4.572 4.496 3.077 3.749 4.574 4.035 2.727 3.206 4.263 3.850 3.152 3.619 3.224 3.438 3.435 3.444 3.609 3.925 3.086 3.648 2.779 2.537 2.439 - 5.432 5.673 6.130 5.276 5.053 5.839 6.435 5.112 2.537 3.374 4.420 4.017 3.251 5.924 5.018 4.542 4.735 5.281 5.184 5.282 5.809 6.016 7.180 7.847 7.245 6.214 5.067 4.532 5.532 6.968 6.819 7.061 7.471 6.564 7.735 9.337 - 6.257 4.545 4.825 5.166 4.411 4.683 4.933 4.760 2.889 2.298 3.909 2.679 2.400 5.150 5.093 3.931 4.770 5.043 4.941 4.841 4.923 5.133 6.935 7.852 6.950 6.170 5.985 4.336 6.415 7.361 6.337 6.531 7.052 5.809 7.337 9.283 - 5.739 3.643 3.875 3.296 4.033 3.916 4.429 2.502 3.089 2.115 2.786 3.949 3.968 4.954 5.443 4.673 2.826 3.164 4.134 3.659 2.457 2.322 2.928 3.509 3.983 4.860 4.456 3.204 3.200 2.278 3.081 3.503 3.610 3.599 3.332 3.302 - 3.681 2.814 2.842 4.816 4.682 4.784 5.040 3.003 3.047 3.224 2.927 3.757 2.562 5.618 5.988 4.035 3.241 4.625 4.013 4.358 3.402 2.678 3.453 4.551 4.666 4.059 3.667 4.730 4.607 4.421 4.366 5.219 5.503 5.664 5.678 4.667 - 5.352 4.978 3.762 4.302 3.992 3.991 5.150 3.864 1.885 3.321 2.207 2.028 2.861 5.840 4.754 4.222 4.595 5.058 3.934 3.753 3.602 2.598 3.190 3.252 4.782 4.124 4.600 5.295 5.533 6.097 6.230 6.436 5.641 5.591 5.268 4.314 - 4.539 5.376 5.919 5.405 3.824 5.282 5.657 5.021 3.995 3.098 3.773 3.468 3.889 4.800 4.672 3.637 3.773 4.221 3.994 3.942 4.088 4.194 2.921 2.619 4.174 4.317 3.434 2.868 3.472 3.514 3.564 4.111 4.096 4.354 4.182 2.827 - 5.133 4.272 4.513 5.171 3.585 5.791 5.639 4.699 4.057 3.209 3.060 3.914 3.462 4.661 4.002 3.035 3.790 4.223 3.925 3.843 4.005 4.177 3.580 2.974 4.313 4.643 4.532 3.791 3.450 3.597 3.873 3.283 2.973 3.139 3.190 2.061 - 5.705 6.762 5.874 5.449 5.746 5.949 6.114 6.302 5.640 4.838 3.613 4.747 5.088 5.181 4.841 4.443 5.035 4.828 5.074 4.722 5.684 4.909 5.630 4.628 4.936 6.818 6.581 6.753 6.052 4.884 5.858 6.825 6.257 4.590 3.611 4.788 - 12.098 12.198 11.531 11.730 10.731 10.528 10.736 10.771 9.186 9.257 7.014 8.372 9.322 8.270 7.428 8.196 8.635 9.164 8.079 10.042 10.183 10.225 9.530 9.148 8.321 10.850 12.033 11.625 10.037 9.489 11.096 12.243 10.888 10.188 11.077 11.925 - 13.155 14.207 14.783 14.489 14.862 13.704 12.332 12.302 10.997 10.361 10.717 9.590 9.995 10.414 10.309 10.818 11.203 11.526 11.037 12.930 14.713 13.635 12.369 11.984 11.891 12.856 14.562 13.593 12.300 12.848 14.132 15.089 13.514 11.737 12.525 13.796 - 12.907 15.093 16.341 14.919 16.178 15.731 14.422 13.920 11.849 11.545 12.389 11.705 12.121 11.797 12.125 12.227 12.385 12.799 13.195 14.862 17.142 16.185 14.545 14.259 14.138 15.063 16.493 15.647 14.560 14.917 16.668 17.686 15.830 12.423 12.142 11.938 - 13.515 15.299 16.873 15.514 17.156 17.029 14.793 14.805 13.192 13.175 12.235 12.351 13.297 12.350 12.444 12.677 13.059 13.101 14.128 15.335 18.074 17.495 15.493 15.222 15.103 15.664 17.466 16.799 15.820 16.126 18.032 18.778 17.235 13.430 11.899 12.993 - 13.491 15.281 16.941 15.741 17.551 17.517 14.661 14.796 13.424 13.570 12.098 12.193 13.306 12.543 12.506 12.643 13.179 13.164 14.099 15.579 18.325 18.304 15.342 15.247 15.009 16.007 17.750 17.390 16.151 16.458 18.270 19.076 17.712 14.363 11.799 12.463 - 13.344 15.397 16.944 15.709 17.719 17.555 14.556 14.608 13.289 13.425 11.686 11.889 13.093 12.348 12.328 12.430 13.033 13.046 14.107 15.410 18.345 18.288 15.774 15.461 15.173 16.158 17.855 17.582 16.195 16.348 18.167 18.975 17.758 15.191 12.358 12.423 - 13.154 15.495 16.908 15.650 17.602 17.225 14.410 14.411 13.275 13.253 11.454 11.582 12.859 12.284 12.223 12.305 12.900 12.814 13.954 15.011 17.894 17.572 15.643 15.267 14.906 15.794 17.466 17.262 15.759 15.871 17.596 18.625 17.631 15.387 11.977 11.819 - 13.135 15.416 16.370 15.214 16.783 15.982 14.056 13.306 12.726 12.311 10.978 11.725 11.750 11.909 11.715 11.906 12.364 12.678 13.550 14.627 17.037 16.365 14.739 14.244 14.056 15.245 16.790 16.414 14.694 14.774 16.393 18.021 16.867 14.402 11.730 11.093 - 12.189 13.844 13.692 14.251 14.284 12.958 13.543 13.095 12.327 12.124 12.520 12.501 11.132 10.964 11.049 10.648 10.132 11.552 11.913 12.926 14.664 13.740 13.086 12.852 12.697 13.410 14.702 13.526 12.341 12.579 14.133 16.174 14.847 12.443 11.489 11.035 - 11.423 13.730 13.842 11.299 10.201 9.923 9.048 9.588 8.874 9.330 8.028 7.846 7.855 7.879 7.236 6.659 7.097 7.482 8.598 9.418 8.853 8.627 8.753 9.047 8.658 8.892 8.943 9.014 7.651 8.088 10.035 11.365 10.559 9.092 7.985 7.520 - 10.714 13.362 12.980 9.174 9.372 8.639 7.994 7.466 6.846 7.350 6.689 5.915 5.803 5.394 5.504 5.152 5.579 5.741 7.887 8.412 9.083 8.249 6.947 6.152 5.801 7.355 8.255 7.533 6.164 6.357 8.400 9.745 9.332 7.507 5.048 4.377 - 11.160 13.621 13.323 9.960 8.440 8.512 8.656 8.493 6.791 6.868 4.951 4.972 4.798 5.321 4.874 4.485 5.136 4.708 6.630 8.321 8.551 8.209 6.018 5.424 6.193 7.270 8.026 7.103 6.187 5.602 7.930 8.597 8.404 5.575 4.599 4.458 - 11.004 13.271 12.459 9.233 9.031 8.361 7.806 8.667 6.655 5.599 6.447 5.465 4.884 5.054 4.691 4.384 4.157 5.525 6.700 7.563 8.331 7.995 5.757 5.078 5.596 7.062 6.859 6.475 5.651 5.612 7.230 7.812 7.711 6.523 3.834 2.816 - 10.693 13.205 12.726 9.608 10.384 9.770 8.109 7.245 5.796 5.661 6.924 5.292 6.777 7.516 7.660 7.827 7.779 6.998 7.328 8.305 9.083 7.900 6.816 6.893 7.712 8.797 8.821 7.474 5.966 6.160 7.440 8.743 8.960 8.175 8.093 8.002 - 11.064 13.305 14.120 13.143 12.847 11.323 11.405 10.687 10.010 10.490 10.499 10.051 9.501 10.815 11.168 10.771 10.828 10.743 10.644 12.022 13.846 13.002 9.522 10.971 11.851 13.181 12.949 11.672 11.986 11.379 12.011 13.627 12.862 12.728 13.229 12.814 - 11.146 13.909 14.377 12.256 13.433 11.679 12.933 11.690 10.568 10.368 10.754 10.828 10.362 10.682 10.825 10.527 11.087 11.861 11.759 12.750 15.241 14.955 12.261 11.986 12.702 13.510 13.855 13.093 13.537 13.334 14.024 14.728 14.041 14.383 14.569 14.131 - 11.624 14.819 15.484 14.044 15.336 13.924 13.706 12.221 11.523 11.782 11.244 11.905 11.206 11.174 11.665 11.154 11.614 12.513 12.479 13.836 16.397 16.137 14.081 13.311 13.170 14.443 15.532 14.171 13.345 12.903 14.058 15.912 14.288 13.896 13.058 12.050 - 12.683 14.982 16.220 14.822 16.339 15.493 13.915 13.490 12.653 11.975 10.864 11.214 11.895 12.046 11.979 12.144 12.459 12.475 13.038 13.754 16.358 17.447 15.463 14.229 13.661 14.533 15.968 15.284 13.632 13.407 14.899 16.382 15.017 13.101 13.490 12.566 - 12.997 14.999 16.393 15.008 16.612 16.136 13.800 13.864 12.860 12.747 11.204 11.092 11.957 11.984 11.815 11.940 12.596 12.581 12.954 13.837 15.921 17.384 15.917 14.344 13.644 14.453 16.133 15.581 13.776 13.575 14.846 16.202 14.406 12.553 12.656 11.324 - 12.968 14.848 16.469 15.247 16.434 16.327 13.885 14.170 13.063 13.392 11.662 11.653 12.071 12.125 12.250 11.973 12.604 12.864 12.969 13.886 16.187 16.585 15.586 14.695 13.895 14.649 16.406 16.096 14.290 13.884 14.380 15.794 14.535 12.235 12.955 10.282 - 12.776 14.627 16.277 15.100 15.840 15.870 13.375 13.623 12.628 13.044 11.548 11.526 11.279 11.789 12.205 12.041 12.190 12.723 12.922 13.515 16.256 16.647 14.484 14.138 13.320 14.328 15.593 15.393 13.610 13.247 13.758 15.132 14.171 11.118 11.954 9.392 - 12.219 14.315 15.334 13.981 14.731 14.410 12.174 11.757 11.404 11.652 11.353 10.616 10.688 10.956 11.309 11.181 11.181 11.702 12.167 12.917 15.796 15.556 13.256 12.792 12.076 12.901 14.559 13.904 11.927 11.351 12.239 14.277 13.352 11.367 10.819 9.785 - 11.070 13.011 12.102 11.988 12.073 10.745 10.309 10.115 9.374 8.381 8.542 8.683 9.111 8.174 8.111 8.022 8.993 9.644 9.721 10.813 13.196 12.381 10.584 9.537 9.464 10.316 11.625 10.374 8.682 8.504 9.422 11.981 11.203 9.100 9.026 7.626 - 11.056 13.056 12.721 10.608 8.384 7.448 7.862 7.759 7.240 7.504 5.843 5.126 6.104 5.866 4.682 3.765 4.759 5.988 6.323 7.501 9.264 9.332 6.052 6.343 6.329 7.302 7.016 6.252 5.810 5.556 6.231 7.090 6.973 6.413 6.259 6.273 - 10.695 12.110 11.237 9.805 7.163 6.380 5.893 6.408 7.935 7.677 8.119 7.198 6.883 5.884 5.829 5.140 5.557 5.049 6.307 6.686 7.746 8.177 6.640 7.364 6.482 6.391 6.414 6.405 6.390 6.542 6.659 7.091 7.162 6.449 5.965 5.707 - 10.143 11.324 11.667 9.810 8.545 7.633 7.234 7.180 7.922 7.157 7.046 6.883 5.602 5.566 4.678 4.457 5.112 4.986 5.819 6.337 6.930 7.262 6.101 5.321 5.345 5.496 6.999 6.277 5.387 6.448 7.169 7.349 7.303 6.598 6.564 6.810 - 8.823 8.693 10.126 9.476 7.934 7.294 7.067 6.740 7.593 6.117 4.490 6.381 5.568 5.762 5.246 4.510 5.341 6.242 5.282 4.940 5.041 6.515 6.058 4.784 5.099 5.552 6.889 5.054 5.055 6.051 5.708 6.419 7.204 5.615 7.309 8.404 - 9.191 9.703 10.806 9.137 8.577 8.148 5.315 5.314 6.195 4.318 4.667 5.663 4.345 4.713 5.019 4.707 4.656 4.631 4.100 4.836 5.729 6.837 6.325 5.539 5.182 5.844 6.758 6.074 5.740 6.014 6.320 6.893 6.552 6.348 8.671 9.090 - 9.074 10.122 10.065 7.807 8.316 7.548 4.482 3.528 6.354 6.205 5.792 5.648 3.750 4.687 4.084 5.888 4.867 2.680 3.796 5.237 6.517 6.719 5.741 5.126 5.108 5.221 6.728 6.787 6.194 7.066 7.920 8.081 7.333 5.859 7.787 8.177 - 10.107 11.014 10.609 8.792 8.785 7.994 8.447 8.512 8.537 8.861 8.770 8.230 8.093 7.891 8.062 8.516 8.295 8.067 7.412 7.020 7.627 8.326 8.541 8.071 8.258 8.118 9.582 10.424 9.900 9.824 9.223 10.992 11.084 10.513 10.597 9.248 - 11.854 11.443 12.324 11.376 11.398 11.124 10.001 10.427 10.150 10.098 9.791 9.898 9.296 9.115 9.660 9.685 9.402 9.351 9.085 9.080 10.074 10.867 10.226 9.390 10.138 10.668 11.849 12.192 11.440 12.228 11.126 13.601 13.169 12.487 12.796 12.145 - 10.686 12.934 13.894 12.290 13.078 12.441 12.270 11.080 10.223 10.532 11.061 9.926 9.215 10.104 9.600 9.038 9.521 9.460 10.358 11.723 14.292 14.058 12.135 11.814 10.798 11.557 14.515 13.703 12.596 13.353 12.908 14.453 14.135 13.411 14.602 13.961 - 12.031 14.210 15.426 14.282 14.897 13.917 13.542 13.245 11.436 11.025 11.414 10.990 11.339 10.744 11.078 11.437 11.899 12.169 12.568 13.512 15.754 16.220 13.290 13.008 12.839 13.557 14.772 14.523 13.573 12.610 13.348 14.621 13.638 14.127 14.727 13.414 - 12.882 14.663 16.004 14.338 16.041 15.710 14.235 13.776 12.703 11.907 12.173 12.234 12.803 12.206 12.098 12.229 12.172 12.330 13.162 13.604 16.134 16.808 15.190 14.219 13.669 14.423 15.928 15.664 14.376 14.198 15.322 16.513 14.615 13.260 13.464 11.513 - 13.096 15.013 16.383 15.079 16.964 16.563 14.378 14.261 12.805 12.455 12.128 12.163 12.971 12.187 12.291 12.451 12.683 13.056 13.939 14.511 16.647 16.865 15.759 14.845 14.473 15.562 16.985 16.082 14.782 14.578 15.909 17.273 15.226 13.406 12.986 10.086 - 13.105 15.146 16.451 15.186 17.405 16.888 14.702 14.315 13.264 12.782 12.740 12.589 13.350 12.500 12.578 12.830 12.954 13.380 14.269 15.006 17.341 17.419 16.089 15.253 14.721 16.073 17.370 16.045 14.880 14.697 15.965 17.424 15.508 13.137 13.116 10.374 - 12.980 15.125 16.463 15.368 17.593 17.085 14.825 14.443 13.295 13.033 12.971 12.730 13.490 12.523 12.735 12.911 12.973 13.445 14.192 15.077 17.545 17.026 15.941 15.147 14.890 16.132 17.701 16.060 14.679 14.376 15.486 17.205 15.597 12.954 13.033 11.676 - 13.133 15.059 16.258 15.353 17.392 16.692 14.056 14.174 12.759 12.204 12.786 12.307 12.958 12.237 12.281 12.692 12.848 13.574 14.090 15.856 17.852 16.529 14.946 14.278 14.183 15.896 17.041 14.897 13.780 13.700 14.736 16.649 15.495 12.625 12.842 10.652 - 12.935 14.859 15.697 14.775 16.472 15.160 14.221 13.736 11.184 11.111 12.978 11.691 12.084 10.990 11.413 11.669 12.095 13.145 13.803 16.085 17.212 15.034 13.478 13.239 13.232 15.592 15.852 13.886 13.059 13.249 14.491 16.321 15.264 12.825 12.710 11.897 - 12.448 14.300 14.821 13.482 15.038 13.507 13.627 12.706 11.582 12.548 13.488 12.200 10.799 9.748 10.651 10.422 10.878 11.969 13.323 14.831 14.545 13.166 12.820 12.136 12.371 14.102 13.522 12.425 13.069 13.515 13.603 14.833 14.450 12.623 12.070 10.295 - 12.241 14.096 15.490 14.689 15.473 14.709 13.545 13.351 11.914 10.417 12.457 11.317 10.778 10.509 10.959 11.403 11.634 11.855 13.609 15.418 14.111 13.368 12.694 12.264 13.109 14.599 14.032 12.757 13.607 14.162 14.596 14.368 14.299 14.128 12.770 9.945 - 12.774 14.531 15.959 14.384 15.417 14.917 14.171 13.896 10.131 8.795 12.284 11.814 11.988 11.367 11.257 11.537 11.968 12.509 13.599 15.903 15.415 13.938 12.999 13.192 14.045 15.551 14.633 12.844 13.037 13.798 14.501 14.801 14.373 13.338 13.163 11.101 - 13.113 14.689 16.244 14.902 15.476 15.416 14.443 14.610 11.641 10.430 12.115 11.776 12.211 11.139 11.129 11.768 11.962 12.841 13.825 15.906 15.834 14.182 13.850 13.882 14.386 16.073 15.640 12.725 13.067 12.937 14.229 15.079 13.573 11.774 10.989 10.616 - 13.274 14.535 16.440 15.351 15.475 15.856 14.325 15.011 12.277 11.189 12.593 12.837 12.815 12.046 11.915 12.628 12.211 12.896 13.819 15.969 16.883 14.448 13.985 13.899 14.007 15.750 15.601 14.179 13.908 13.676 14.574 15.476 13.796 11.208 10.637 10.487 - 13.505 14.305 16.604 16.048 15.599 16.379 14.274 15.174 13.346 12.170 11.995 13.007 12.628 12.804 12.411 12.731 12.728 13.151 13.925 15.680 17.674 16.006 14.309 13.690 14.518 16.627 16.631 14.631 13.691 13.990 15.460 16.130 14.067 10.692 10.640 9.863 - 13.431 14.135 16.613 16.137 15.150 16.196 14.141 15.004 13.683 13.078 11.903 12.270 12.213 12.851 12.190 12.672 12.916 13.303 13.912 15.793 17.522 16.408 14.197 14.120 14.168 16.424 16.634 14.488 13.804 13.873 14.663 15.523 14.142 11.090 9.741 8.228 - 13.336 14.255 16.526 15.994 14.140 15.252 13.579 14.524 13.219 13.372 11.902 11.087 11.273 12.052 11.626 12.215 12.677 13.301 13.920 16.027 16.027 15.322 13.710 13.988 14.523 16.057 16.010 13.670 13.153 13.743 14.667 14.713 13.316 11.315 9.850 6.847 - 12.194 14.097 15.502 15.052 13.585 12.850 12.560 12.737 12.163 12.897 11.945 11.204 10.667 11.210 10.596 11.345 11.818 12.112 13.813 15.438 14.080 13.110 12.553 12.919 14.160 14.250 13.653 12.417 12.761 12.026 11.762 12.080 11.211 9.453 8.112 5.869 - 9.686 12.484 13.343 12.086 11.311 8.936 7.746 8.919 9.536 9.827 9.600 8.829 8.904 8.710 8.688 9.628 10.579 9.402 9.887 10.015 9.172 10.005 9.907 9.389 8.603 8.029 8.212 8.039 6.911 6.571 7.498 8.135 7.157 5.216 5.366 4.209 - 9.769 10.790 12.628 11.680 8.401 8.364 6.391 6.964 6.310 7.022 6.046 4.910 4.594 5.637 6.300 7.362 7.726 7.093 7.619 9.133 8.163 7.511 6.464 6.299 6.282 5.901 6.570 5.480 4.804 5.505 5.814 6.477 5.652 4.333 4.429 3.704 - 11.336 11.168 11.835 11.535 9.388 8.753 6.491 6.373 6.707 7.265 6.927 5.610 5.316 6.679 6.848 7.590 7.564 7.079 7.317 8.270 8.466 6.852 6.157 4.990 5.771 6.964 6.767 4.615 4.283 3.828 5.270 6.109 5.300 4.917 4.165 3.413 - 10.294 11.153 11.693 9.472 8.540 8.668 5.660 5.783 5.668 6.752 6.106 4.410 3.983 4.988 5.866 6.746 6.661 5.672 5.928 7.068 7.252 7.121 6.251 5.365 5.303 5.531 5.612 4.375 3.926 4.134 4.939 6.014 5.614 4.328 4.005 3.879 - 9.389 9.676 10.333 8.675 8.985 8.811 6.222 4.835 4.825 6.345 5.954 4.250 5.404 5.388 5.766 5.881 6.285 6.826 7.327 6.913 7.912 7.495 6.545 5.373 5.606 6.133 6.330 6.370 4.818 5.176 5.007 5.241 5.543 5.586 4.880 3.257 - 9.123 9.690 9.002 7.973 6.088 6.551 6.345 5.866 6.499 7.330 7.072 6.663 5.772 5.799 6.197 6.513 6.428 6.581 6.600 6.800 6.876 6.861 6.923 6.905 7.115 6.650 6.058 5.889 5.690 5.589 4.437 5.390 6.037 5.837 4.730 3.694 - 8.551 9.322 10.529 10.188 8.373 7.983 8.384 8.478 9.560 10.406 10.803 10.174 8.698 7.530 9.020 9.506 9.793 10.031 9.688 9.653 9.391 9.596 10.011 10.394 10.530 9.895 8.914 8.371 8.696 8.560 6.867 7.219 8.251 7.951 7.214 5.971 - 7.950 8.993 9.591 7.939 7.183 6.561 5.899 7.013 6.745 7.873 8.581 7.731 5.198 5.510 6.645 6.252 6.458 7.364 6.270 6.350 6.451 6.406 6.613 7.263 7.396 6.653 5.938 5.376 5.918 5.617 4.733 5.336 5.411 5.216 4.735 3.773 - 7.910 8.725 7.230 5.818 5.675 6.755 5.973 6.589 4.726 4.425 3.036 3.335 4.036 5.235 4.951 3.955 3.553 3.649 5.063 4.679 5.566 4.735 4.765 5.148 4.020 4.672 4.911 4.095 4.315 4.343 3.632 4.866 4.170 4.763 3.748 2.902 - 6.532 6.577 5.107 5.080 5.932 6.336 5.078 5.612 3.789 5.445 5.942 4.369 3.103 4.190 4.543 4.339 4.254 4.263 4.828 5.266 5.778 5.188 5.087 5.218 3.715 3.790 3.818 4.213 4.714 4.062 4.375 4.731 3.614 2.818 2.964 1.977 - 4.341 4.349 5.362 5.360 5.652 6.073 4.325 4.230 3.348 4.697 4.424 3.288 3.930 4.644 4.806 4.674 4.155 4.359 4.762 4.707 5.802 5.162 5.211 4.388 3.828 3.963 4.546 4.064 3.694 4.100 3.563 3.646 3.495 3.445 3.759 2.501 - 3.688 3.960 6.181 5.987 4.198 4.871 5.254 3.967 3.608 4.528 4.262 3.291 3.028 4.129 3.791 2.955 3.627 3.763 3.923 5.148 5.893 3.871 4.844 5.351 4.475 3.607 3.539 3.564 3.389 3.643 3.556 3.953 3.767 3.160 3.734 2.390 - 4.292 4.632 5.914 5.455 3.753 4.260 4.255 3.704 4.155 3.746 2.439 3.596 3.505 5.809 5.359 3.225 4.574 4.391 4.407 4.752 6.169 5.506 5.257 4.664 5.545 4.053 3.382 4.390 3.398 3.402 3.448 4.035 3.833 3.112 3.078 2.125 - 5.459 5.007 4.894 4.755 4.105 5.444 5.131 4.599 3.250 3.350 4.640 3.810 4.181 4.958 5.144 2.771 4.139 5.127 5.002 5.357 5.846 5.522 4.620 4.413 5.528 4.404 3.683 3.847 3.407 3.799 3.494 4.051 3.565 3.496 2.660 1.923 - 5.053 4.510 4.524 5.548 4.929 4.566 5.113 5.059 3.618 3.568 4.016 3.540 2.873 5.103 4.619 1.769 2.985 4.491 4.647 3.818 4.696 4.438 3.563 3.491 4.380 3.267 4.675 4.888 3.645 3.719 3.682 2.353 2.704 3.031 2.627 1.648 - 5.866 5.252 4.268 4.330 3.109 3.746 4.717 5.001 4.492 3.101 2.709 3.807 3.534 5.841 4.886 2.086 2.800 4.368 3.690 4.628 4.412 4.550 4.923 3.540 3.106 2.870 3.809 4.663 3.612 3.245 3.576 3.644 3.047 2.749 2.086 1.579 - 6.106 5.331 3.787 4.017 3.283 4.268 4.174 4.432 4.374 3.460 2.925 3.945 3.396 4.177 3.801 2.935 4.165 4.018 4.356 4.363 4.228 3.750 4.365 4.570 3.889 3.270 2.594 4.299 3.918 3.318 2.894 3.892 3.214 3.383 2.781 1.365 - 3.496 4.374 4.536 4.065 5.102 4.996 3.929 2.501 3.208 2.749 4.070 5.197 4.576 5.268 5.200 3.865 4.003 4.017 4.262 4.735 4.794 4.558 4.112 4.153 4.044 3.359 3.791 4.110 3.561 3.643 3.240 3.403 2.959 3.342 2.979 2.418 - 4.191 4.824 3.464 3.832 5.222 5.007 4.988 3.640 3.116 4.032 3.450 3.769 4.014 4.696 4.290 4.185 3.357 4.081 4.415 4.265 5.287 4.697 4.196 3.859 3.773 4.097 3.937 2.876 2.920 3.142 3.046 3.362 2.761 2.571 2.293 2.094 - 3.432 4.808 4.179 3.583 3.676 4.702 4.700 4.196 3.906 3.374 3.418 4.289 5.019 4.156 4.924 5.054 5.081 5.093 4.414 4.377 4.105 4.113 4.866 3.374 4.384 3.506 3.672 3.427 2.820 2.751 2.212 2.920 3.110 2.738 2.162 1.405 - 5.308 5.604 5.832 4.544 4.302 4.533 4.311 3.048 2.862 3.299 4.159 4.124 3.939 4.839 4.635 4.402 3.632 3.761 4.682 4.564 3.517 5.231 4.953 4.104 4.428 3.583 3.187 3.792 3.680 3.327 2.263 2.724 3.512 3.257 2.779 2.598 - 5.547 4.235 3.791 3.210 3.462 5.084 4.521 4.190 3.748 3.490 3.367 2.766 2.561 4.464 4.117 3.846 3.359 4.224 4.294 3.693 3.225 4.334 4.572 3.516 3.491 3.487 2.663 3.065 2.966 2.975 3.377 3.544 3.536 3.159 2.132 1.959 - 6.209 5.291 3.207 4.250 4.004 4.514 4.841 3.692 3.263 2.367 2.892 2.419 3.654 4.652 4.644 4.685 4.333 3.718 3.975 3.330 3.735 4.282 3.519 2.751 2.883 2.682 2.946 3.736 3.104 2.094 3.388 3.102 3.684 3.475 2.682 1.848 - 6.274 6.381 4.881 3.621 3.368 4.512 4.832 3.738 2.246 1.433 2.920 3.637 3.115 5.188 5.675 4.528 3.695 3.964 3.558 3.675 4.996 4.388 3.989 4.442 3.694 3.088 4.367 3.438 2.429 2.651 3.863 2.987 3.539 3.632 3.137 2.295 - 5.439 7.015 7.640 9.019 9.944 10.860 10.858 9.698 8.679 8.534 8.367 8.486 7.850 7.240 9.560 10.879 10.568 8.723 8.942 8.480 8.157 8.152 7.895 7.812 8.173 7.818 8.279 8.023 7.529 7.251 8.652 7.362 6.703 6.139 7.122 5.807 - 5.546 6.484 6.978 8.322 10.270 11.895 12.610 11.609 9.479 7.731 7.631 7.634 6.872 6.459 9.449 11.453 11.931 9.861 8.433 7.693 7.233 7.347 6.955 7.157 7.457 7.051 8.531 7.782 6.889 6.958 9.404 7.620 5.972 5.632 7.593 6.638 - 4.520 4.155 4.291 4.806 5.151 7.468 9.991 11.415 10.968 8.523 4.664 4.896 4.395 4.187 4.361 6.712 9.059 8.583 5.066 4.737 7.309 7.581 7.459 8.189 6.964 7.323 7.507 6.558 6.234 7.498 8.008 7.364 4.973 8.028 9.274 7.946 - 5.311 3.758 5.072 5.880 4.771 5.218 8.018 8.142 9.570 9.175 7.395 7.988 6.707 7.011 7.616 8.875 9.256 8.278 8.397 7.388 7.167 7.521 7.395 6.937 6.019 6.196 6.709 6.523 6.209 6.160 7.141 7.036 5.747 6.417 7.480 5.650 - 5.122 7.022 6.893 6.604 6.402 9.221 10.466 11.423 11.546 10.923 12.023 11.068 11.478 11.739 12.239 13.296 13.623 11.825 11.479 11.443 10.656 10.012 9.852 11.166 10.137 9.139 7.628 8.052 8.480 9.058 9.613 9.248 8.006 7.130 6.242 6.328 - 11.067 11.645 11.470 11.366 12.152 13.047 13.600 13.695 14.856 16.142 16.441 16.202 15.558 14.962 15.153 15.879 16.678 15.585 14.001 12.677 12.321 12.018 11.790 12.044 11.002 8.726 9.452 9.609 9.829 9.918 12.431 13.069 11.704 8.580 7.413 7.251 - 10.889 12.568 12.195 12.080 11.811 13.268 14.024 13.984 14.927 16.991 17.092 17.499 16.469 15.040 15.034 16.125 17.549 16.989 15.014 13.841 13.246 12.972 13.313 13.789 12.789 11.301 10.980 10.569 10.159 10.378 12.443 12.874 11.711 9.724 7.596 6.068 - 10.803 12.889 12.792 11.841 12.086 13.511 13.771 14.645 15.625 17.035 16.878 17.132 15.627 14.596 14.929 15.817 16.691 17.431 16.416 15.256 14.372 13.779 13.925 15.025 15.330 14.298 13.002 11.529 10.300 12.001 13.494 13.211 11.568 9.905 8.664 6.882 - 11.156 13.346 13.301 12.513 13.009 13.666 14.412 15.524 15.935 17.394 16.633 16.961 15.596 14.971 15.296 15.793 16.026 16.908 16.571 15.534 14.861 14.022 14.322 15.237 15.351 13.841 12.659 11.717 11.523 11.169 12.857 12.857 11.333 9.470 9.311 8.034 - 11.642 13.647 13.887 12.652 13.698 13.965 15.032 16.109 16.744 17.797 17.090 16.458 15.657 15.081 14.901 15.225 15.828 16.718 17.727 17.318 16.173 15.619 15.684 16.236 16.327 15.006 13.917 13.315 12.182 12.203 13.594 13.644 12.418 11.720 11.426 8.678 - 12.019 13.647 14.420 12.666 14.449 14.514 16.257 16.341 17.210 16.732 16.297 15.277 15.052 14.546 14.307 14.130 14.494 15.386 16.675 17.224 16.839 15.573 15.276 15.311 15.424 14.606 13.129 12.731 11.750 11.441 12.078 13.211 12.710 12.364 10.918 7.702 - 12.863 13.480 14.834 13.814 15.526 15.580 17.082 16.565 16.197 15.848 14.877 14.519 14.732 13.915 13.694 13.627 14.284 14.923 15.998 17.271 17.418 16.243 15.549 15.473 15.724 14.395 13.783 13.264 11.693 11.840 12.793 13.646 13.649 13.078 9.941 6.075 - 13.081 12.785 14.780 14.065 16.002 15.836 16.084 16.257 13.866 14.612 13.245 13.550 13.243 13.439 12.721 12.284 13.444 13.864 14.887 16.658 17.259 15.167 14.795 14.800 15.427 14.266 14.145 12.799 10.842 10.482 11.672 13.029 13.275 12.367 8.690 5.440 - 13.986 12.395 14.922 14.999 15.149 16.322 14.441 13.289 13.025 13.784 13.016 12.684 12.632 13.253 12.163 12.140 12.725 13.422 14.298 15.935 16.126 14.740 13.983 13.972 15.105 15.541 14.812 12.484 10.287 10.060 11.295 12.706 13.252 11.669 8.147 6.330 - 14.399 12.307 14.794 16.250 14.939 16.456 16.234 13.441 14.274 12.930 13.014 11.946 12.882 12.402 12.636 12.026 12.750 13.095 14.094 15.395 16.177 15.440 13.558 13.650 14.613 16.137 15.204 11.723 9.788 9.958 11.080 12.692 12.670 11.599 8.461 6.607 - 14.860 13.466 14.070 16.948 16.414 15.177 16.680 15.065 14.130 14.225 12.317 13.092 12.586 13.276 12.714 12.671 13.479 13.418 14.153 15.329 16.624 16.528 15.506 14.732 15.161 16.137 15.735 12.693 11.961 11.462 11.982 13.433 13.719 12.474 8.882 7.753 - 14.908 14.140 12.673 17.189 17.360 14.382 16.470 16.123 13.660 15.083 13.108 13.363 12.620 13.450 12.774 13.021 13.089 13.700 14.008 15.263 16.715 17.828 16.457 15.343 16.015 16.646 15.632 13.422 12.823 12.001 12.477 13.624 14.205 13.121 8.803 8.205 - 14.812 14.350 12.427 17.058 17.671 14.928 15.535 16.131 13.332 14.694 13.696 12.625 12.892 12.602 12.981 12.423 12.477 13.860 13.502 14.049 15.773 17.714 16.870 15.761 15.544 16.101 15.542 13.964 13.700 12.707 12.733 13.718 14.182 13.022 8.940 8.417 - 15.103 14.888 12.464 15.621 17.353 16.002 13.980 15.877 14.567 12.556 13.552 11.514 12.407 11.333 12.147 11.568 12.702 12.827 13.326 13.602 15.188 16.775 17.397 15.827 15.474 15.904 15.623 14.515 14.308 13.183 13.143 14.189 14.717 13.981 9.476 8.484 - 15.187 15.157 12.335 14.509 16.546 15.305 12.473 15.160 14.100 12.928 14.503 12.331 11.821 10.757 11.806 11.033 12.167 11.443 12.274 12.584 14.147 15.174 16.761 15.358 14.609 15.112 14.965 13.780 13.701 12.482 12.488 13.468 13.952 12.915 9.201 8.212 - 15.240 15.129 12.134 13.628 15.326 13.897 11.666 14.410 13.918 12.005 14.225 12.813 11.063 10.726 10.887 10.599 11.311 10.461 11.030 11.208 12.865 14.477 15.397 14.444 14.036 13.514 13.334 12.641 11.963 11.098 11.169 12.444 13.137 10.362 9.417 8.786 - 15.580 16.000 14.078 12.377 14.196 13.021 10.465 12.371 12.010 10.281 13.239 11.902 9.057 9.652 10.383 10.446 10.562 10.197 9.865 10.124 11.111 13.127 12.106 12.394 12.721 11.218 10.262 10.239 9.625 8.837 9.338 11.382 12.525 10.109 9.145 8.592 - 15.764 16.184 13.889 11.198 14.240 13.573 9.559 12.373 11.823 10.426 13.216 11.809 8.455 8.328 10.035 10.236 10.856 10.351 9.956 9.491 10.099 11.933 10.595 12.204 12.675 11.397 9.578 8.115 6.745 6.876 8.222 11.142 12.103 10.073 9.458 8.692 - 15.793 15.978 13.430 12.202 14.597 13.592 10.148 12.562 11.562 11.375 13.362 11.429 9.356 8.534 10.221 9.731 11.119 10.287 10.511 10.089 10.769 11.924 10.618 12.700 12.761 12.043 8.696 7.785 7.677 8.064 8.517 11.783 13.586 10.267 9.552 9.616 - 15.718 15.630 12.730 13.106 14.878 13.282 10.481 12.544 10.925 12.288 13.127 10.055 9.845 8.171 10.046 9.440 10.752 10.356 10.591 10.454 10.970 11.284 11.331 12.896 13.265 12.133 9.442 8.542 8.067 8.900 9.297 12.542 13.383 10.035 9.822 10.520 - 15.581 15.217 11.982 13.821 15.038 12.951 11.895 12.817 10.149 12.867 12.569 9.069 9.795 8.925 9.383 9.925 9.955 10.491 9.785 9.917 10.515 11.320 12.395 13.213 14.346 13.049 12.127 11.544 10.878 11.043 11.503 13.157 13.792 11.209 10.571 10.646 - 15.224 14.621 12.261 13.785 14.693 12.507 13.505 13.649 12.663 13.654 11.664 10.244 9.618 10.277 9.642 10.256 10.008 10.737 9.381 8.876 9.292 11.004 13.889 14.858 14.274 14.297 13.582 13.913 12.478 12.155 12.654 14.167 14.319 11.444 10.762 10.597 - 14.806 13.494 12.078 14.813 14.119 12.256 14.213 12.979 13.102 13.399 11.239 11.894 9.641 9.995 10.086 10.028 10.758 10.011 8.879 8.215 9.076 11.254 13.907 15.088 13.831 13.570 13.931 14.696 13.882 13.022 13.471 15.078 14.308 10.572 9.348 9.226 - 14.567 12.916 12.938 15.014 13.801 13.089 13.968 11.523 13.167 12.378 11.882 11.794 9.284 9.064 10.210 9.631 9.800 9.813 8.587 7.954 8.759 10.697 13.214 14.461 13.791 12.826 13.612 15.001 14.378 13.472 13.910 15.149 13.989 11.052 10.621 9.688 - 14.420 12.547 13.623 15.033 13.323 13.511 13.541 11.339 12.868 11.175 12.099 10.905 9.056 8.888 9.673 9.452 9.107 9.516 8.382 7.886 8.588 10.989 12.654 13.959 13.311 12.510 13.233 14.517 14.288 13.361 14.210 15.377 13.662 10.919 10.655 9.811 - 14.155 11.990 14.086 14.942 12.747 13.749 13.084 11.730 12.429 10.684 11.601 9.354 9.065 9.439 9.276 9.426 9.023 8.862 7.951 7.944 9.167 10.737 12.230 14.206 13.240 12.406 13.520 14.245 13.973 13.397 14.403 15.771 13.452 11.117 11.242 10.402 - 13.947 11.781 14.446 14.948 12.668 14.057 12.860 12.213 12.308 11.149 11.513 9.559 9.369 9.449 9.020 8.894 9.035 8.365 8.336 8.805 9.964 11.422 13.555 14.866 13.430 13.270 13.839 13.837 13.050 12.756 14.391 15.185 13.489 10.733 11.198 10.499 - 13.796 12.333 14.842 14.876 13.038 14.485 12.935 12.605 12.131 11.718 11.401 10.428 9.822 9.497 9.336 9.282 9.404 9.570 9.880 10.532 11.486 13.299 15.060 15.222 13.921 12.246 12.296 11.599 10.817 11.218 12.998 13.500 11.899 9.791 10.977 10.235 - 13.362 12.637 15.069 14.636 13.455 14.696 12.560 12.583 11.487 11.780 10.636 10.623 9.459 9.208 10.111 9.818 10.086 10.851 11.052 11.676 12.428 13.242 13.652 14.270 12.629 9.383 9.298 8.912 9.271 9.890 12.737 12.812 10.929 9.103 11.255 9.906 - 13.125 13.169 15.226 14.362 13.945 14.584 12.338 12.190 10.857 11.471 9.489 9.831 9.180 9.506 10.698 10.332 10.686 11.406 12.047 12.080 11.881 11.968 12.537 13.318 11.429 8.644 8.252 7.421 7.852 8.373 11.251 10.846 9.120 8.308 10.472 8.585 - 12.759 14.011 15.374 13.827 14.429 14.012 12.706 12.215 11.848 11.534 11.330 10.437 10.456 9.726 9.912 9.972 10.693 11.816 12.683 12.781 11.565 11.457 12.138 13.168 11.398 8.768 8.092 8.032 8.304 8.803 10.098 9.401 8.887 8.393 8.931 7.067 - 12.301 14.583 15.429 13.591 14.730 13.658 13.637 12.248 12.311 11.782 12.187 11.056 10.711 9.529 9.264 10.376 10.991 11.518 12.183 12.738 12.184 11.707 12.695 13.042 11.466 9.525 8.999 8.108 9.595 10.714 12.121 11.221 9.902 9.423 11.356 9.568 - 12.271 14.979 15.145 13.743 14.619 14.040 14.427 12.516 12.379 12.653 11.798 11.000 10.378 9.951 10.057 10.776 11.050 10.999 11.527 12.898 13.668 13.459 13.517 14.034 13.399 10.266 9.174 8.687 9.405 10.402 12.124 11.327 9.988 8.950 10.300 8.500 - 12.914 15.255 14.871 13.990 14.086 15.067 14.754 12.493 12.623 12.970 11.806 11.165 10.305 9.859 10.580 10.382 11.026 10.766 11.790 13.048 14.991 15.368 14.579 14.807 14.418 12.961 10.916 10.865 10.661 10.789 12.777 11.544 11.227 10.220 10.224 9.022 - 13.740 15.329 14.368 13.541 13.558 14.736 14.018 12.646 12.372 12.238 12.247 11.452 9.778 9.816 10.051 9.674 10.396 10.318 10.839 11.835 14.001 14.552 13.605 13.658 13.881 13.960 11.637 10.784 10.902 11.202 13.126 12.921 12.598 9.101 9.761 9.375 - 14.402 15.630 14.522 13.423 12.974 13.361 11.033 11.100 10.784 10.750 10.936 9.557 8.895 7.655 8.674 8.616 10.286 10.223 9.834 10.274 11.073 11.170 9.609 10.290 11.563 11.770 9.854 8.335 8.258 8.191 9.569 11.508 12.141 9.184 8.448 8.780 - 14.734 15.721 14.222 13.024 13.314 13.207 11.270 10.579 10.339 11.106 9.625 9.122 9.501 7.085 7.825 8.079 9.564 10.102 9.810 10.127 11.712 11.114 8.190 9.076 10.322 11.962 10.819 7.971 9.249 8.966 6.895 10.480 11.400 9.220 9.682 10.020 - 14.884 15.455 14.009 13.290 13.636 12.870 11.496 10.402 10.412 11.087 10.317 10.833 10.301 7.699 8.082 8.524 9.463 9.621 9.451 9.743 10.823 10.645 8.073 9.109 10.340 11.017 10.579 7.575 8.743 9.106 7.282 10.196 10.909 9.063 10.034 10.114 - 14.713 14.922 13.711 13.223 13.302 12.039 11.426 10.273 10.699 10.901 10.369 10.431 8.810 7.121 8.410 8.731 8.518 8.398 7.976 8.432 10.334 10.432 8.574 9.492 10.713 10.856 10.363 7.801 8.366 8.799 8.264 10.823 11.451 10.402 9.813 9.564 - 14.118 13.773 13.200 12.701 12.068 10.351 11.222 10.879 11.311 10.811 10.168 10.205 8.497 6.133 7.629 7.766 7.636 8.601 8.319 8.510 9.832 9.856 9.288 9.599 9.954 9.955 9.400 7.373 7.047 8.110 7.962 7.909 9.899 10.129 9.300 8.795 - 12.934 12.076 12.474 10.788 9.795 9.369 9.058 8.709 9.884 9.574 10.004 8.715 7.955 7.014 8.274 8.274 8.283 8.310 7.760 7.726 8.512 8.822 8.670 8.982 8.969 8.717 8.348 7.457 6.970 6.832 6.254 6.377 7.363 8.571 8.432 7.000 - 11.105 11.274 9.942 9.711 8.443 7.712 7.145 8.470 8.540 8.944 8.697 6.853 5.678 5.443 5.265 5.935 6.430 7.724 6.362 5.498 7.212 7.266 6.615 6.936 7.517 7.186 6.895 5.850 5.327 5.077 5.317 5.492 6.194 6.570 6.349 6.108 - 7.297 9.011 9.140 7.189 5.026 6.245 6.327 6.389 8.272 9.491 9.198 6.969 5.717 5.048 4.412 5.242 5.779 6.763 7.051 6.058 5.755 6.112 6.334 7.163 7.264 6.683 6.195 5.692 4.238 4.313 4.776 5.187 5.930 6.333 5.688 5.252 - 6.278 6.421 7.526 6.757 6.210 6.611 5.086 5.489 6.898 8.639 8.624 6.490 4.680 5.799 4.338 4.133 4.826 5.191 5.522 4.943 4.566 5.365 5.031 5.883 5.836 6.003 5.623 4.744 3.918 4.475 4.594 5.445 5.208 5.602 4.870 4.178 - 8.112 8.565 8.510 8.954 9.166 9.271 9.125 9.193 9.198 9.277 9.189 9.294 8.960 9.197 9.061 9.090 9.328 9.566 9.479 9.791 9.731 10.027 10.198 10.314 10.334 10.306 11.469 12.848 13.125 12.463 11.602 11.350 10.360 10.061 9.750 8.910 - 9.002 10.184 9.681 11.169 10.769 11.600 11.091 11.363 10.991 10.807 10.964 10.770 10.668 10.926 11.270 11.512 11.951 12.075 12.166 11.802 11.154 12.408 12.505 12.704 12.604 13.369 15.282 15.747 15.822 14.352 14.471 14.684 15.509 15.474 13.763 13.727 - 10.259 9.269 10.064 10.735 10.004 10.799 10.985 10.242 10.162 10.462 9.654 10.029 9.322 10.007 10.407 10.564 11.507 11.290 11.552 11.850 11.549 13.483 12.994 13.273 13.229 15.149 17.175 16.159 17.573 17.941 17.279 17.460 17.029 17.186 17.533 16.858 - 9.530 10.315 8.965 8.095 9.896 10.366 9.430 8.729 10.956 10.710 8.254 9.232 9.895 10.233 10.485 9.978 10.753 10.597 10.333 10.477 11.867 13.233 13.002 14.605 14.890 17.964 18.343 17.670 18.955 18.882 17.744 18.080 18.054 17.786 18.615 18.165 - 9.625 10.483 10.375 9.958 9.916 11.291 10.047 7.873 10.552 9.985 10.544 10.422 9.940 10.701 10.785 9.395 10.233 11.702 11.153 9.919 13.404 15.110 13.972 14.860 16.551 18.101 18.006 18.169 19.100 18.190 18.264 18.171 17.670 17.254 18.264 18.286 - 10.440 10.031 10.961 10.582 10.679 10.695 9.656 9.106 11.024 10.587 9.052 8.908 10.127 11.516 10.845 10.779 10.622 10.456 10.476 12.047 13.262 14.519 14.667 15.114 16.254 18.185 17.912 17.319 18.632 18.616 16.964 16.856 17.170 17.693 17.361 16.905 - 12.049 10.407 10.723 10.003 10.161 8.820 9.088 9.941 10.422 10.116 8.788 9.244 10.403 10.517 10.272 9.696 10.501 11.365 10.875 13.116 14.718 16.035 14.005 15.003 15.866 16.976 17.266 16.694 17.773 17.296 16.685 16.451 17.063 16.504 17.024 16.755 - 13.858 12.483 10.798 10.573 11.072 11.175 11.629 10.512 10.498 10.115 10.018 10.630 10.508 9.755 9.946 9.776 9.724 10.781 11.244 12.838 14.439 16.170 14.102 14.777 16.509 17.859 17.449 15.977 18.027 17.731 16.869 16.549 16.469 16.968 16.953 16.640 - 12.279 10.489 9.820 11.338 10.975 10.824 10.587 11.105 9.876 10.186 10.210 9.837 9.933 10.305 9.405 8.913 8.563 10.171 12.176 12.617 14.905 14.744 12.618 14.485 16.770 18.870 17.140 15.789 16.836 16.812 16.030 16.250 14.383 15.761 15.100 14.658 - 12.883 11.196 11.111 10.814 10.380 8.492 10.170 10.977 9.273 8.323 8.996 9.674 8.279 8.739 8.416 8.690 8.034 9.623 10.039 11.331 12.661 13.106 12.801 13.392 15.068 16.929 15.198 14.438 14.380 13.736 13.651 13.857 12.919 12.553 12.382 11.719 - 13.722 13.759 13.765 13.739 15.048 15.255 15.404 15.523 14.429 13.529 13.368 13.485 12.977 11.896 11.906 12.208 12.798 12.935 13.359 14.112 14.906 15.129 13.887 13.636 14.400 14.648 13.680 13.181 12.992 11.800 10.619 11.205 12.079 12.182 11.891 10.126 - 13.392 14.434 15.223 13.496 15.972 16.533 17.753 18.279 16.744 15.488 15.606 14.987 14.937 14.660 14.268 14.344 14.720 15.037 15.746 17.032 18.177 17.706 16.186 16.140 16.624 16.618 15.706 14.810 13.815 11.955 13.266 14.338 13.940 12.807 12.672 11.174 - 12.339 14.126 14.891 13.996 15.103 15.837 18.637 18.544 18.445 17.176 16.116 15.433 14.746 14.748 14.596 14.759 14.856 15.207 16.184 17.690 19.062 18.204 16.793 16.701 17.159 17.394 16.221 15.652 14.951 13.729 16.173 16.566 15.483 14.615 13.378 12.184 - 11.511 14.142 14.152 14.341 15.274 16.265 17.405 18.684 19.524 17.308 15.556 15.966 15.748 14.961 14.817 15.155 15.466 15.411 16.691 18.194 19.570 18.639 16.664 16.715 16.343 16.960 15.916 15.387 14.591 14.694 16.688 16.706 15.812 15.049 12.756 10.623 - 11.406 14.130 13.450 14.467 14.422 15.032 15.936 18.912 19.147 18.660 16.515 15.997 15.643 15.157 14.736 15.272 15.377 15.365 16.681 18.194 19.243 18.325 16.883 16.896 16.775 16.121 15.123 14.911 13.846 15.190 16.942 17.550 16.918 16.272 13.334 11.372 - 11.718 13.719 13.139 14.046 13.611 14.757 16.220 17.678 18.641 18.857 15.772 15.062 14.693 14.847 14.798 14.736 14.737 15.571 16.282 18.037 18.875 17.672 17.053 16.563 16.497 15.610 14.901 14.386 13.210 15.588 16.516 17.295 16.715 15.957 13.271 11.742 - 11.600 13.565 12.733 13.965 13.769 14.734 16.321 16.954 18.940 18.267 15.156 15.249 14.722 14.509 14.429 14.305 14.571 15.308 15.672 17.515 18.535 17.716 16.952 16.386 16.360 15.042 14.308 13.929 13.138 15.094 16.042 16.398 16.376 15.793 12.953 11.639 - 12.112 13.567 12.900 13.955 13.823 15.055 16.779 17.135 18.393 17.082 14.377 13.927 13.992 13.913 13.491 13.412 14.140 14.093 14.959 16.084 17.691 17.389 16.037 15.729 15.641 14.260 13.299 12.931 12.506 13.461 14.494 15.059 15.152 15.035 13.040 11.320 - 12.089 13.464 12.890 13.471 13.977 15.117 16.744 16.888 16.822 15.242 14.635 12.416 12.637 12.200 11.720 11.416 12.609 12.084 12.910 13.990 15.196 16.466 15.271 14.949 14.796 14.134 13.036 12.537 12.051 10.318 13.009 13.893 13.859 14.252 13.079 10.950 - 10.583 11.536 11.330 11.286 12.872 14.729 15.301 14.107 12.714 12.861 11.749 9.530 9.937 10.114 9.888 8.601 10.051 9.701 10.274 11.783 12.717 13.575 14.284 13.941 13.635 13.251 11.726 11.454 10.519 10.059 11.192 11.316 12.406 12.757 11.890 10.476 - 9.274 9.754 9.094 6.583 8.461 9.397 10.736 11.683 12.597 11.675 9.635 8.263 7.651 8.422 8.959 7.475 7.754 8.021 9.111 9.588 10.679 10.939 11.577 11.002 9.518 9.340 8.551 8.386 7.162 7.759 9.291 8.392 8.727 8.384 7.550 7.565 - 5.714 7.673 7.253 7.478 8.163 8.912 10.836 11.917 11.896 11.081 8.544 5.959 7.190 6.395 6.802 5.277 5.157 5.056 7.731 9.668 10.492 9.991 8.655 7.556 7.842 7.907 7.911 7.385 7.202 7.828 8.011 8.233 7.254 7.490 6.219 5.330 - 6.021 7.615 6.634 5.891 7.131 8.349 9.321 10.296 10.621 9.542 6.574 6.007 6.368 6.164 5.533 4.740 5.655 4.905 7.264 9.451 10.090 9.733 8.543 7.957 7.880 6.736 6.540 6.043 6.424 6.986 7.572 7.705 7.183 7.017 6.706 5.640 - 5.254 6.583 6.562 6.951 6.818 7.869 9.102 8.170 8.639 8.410 5.615 5.296 5.633 4.985 5.773 5.873 6.907 7.416 7.840 8.430 10.556 10.102 8.554 8.025 9.359 9.716 10.694 11.118 11.213 11.252 11.161 10.251 9.064 8.172 7.975 7.611 - 6.250 5.094 6.992 7.025 5.686 6.689 8.743 8.590 10.125 9.086 6.054 5.844 5.497 5.765 7.015 7.889 7.992 8.385 8.665 8.508 9.894 9.225 8.820 7.968 9.799 9.942 11.078 11.500 11.620 11.617 11.463 10.453 9.116 8.284 8.586 8.337 - 4.369 5.562 5.502 5.429 6.218 7.235 7.854 9.234 10.088 8.721 6.491 4.416 5.500 4.707 4.679 5.033 6.167 6.975 6.841 7.337 8.223 7.364 6.533 6.270 6.678 6.470 5.272 5.785 6.202 5.867 6.023 6.979 6.785 4.808 5.431 5.270 - 4.568 4.638 5.534 3.791 4.196 5.534 7.972 8.147 9.620 9.598 7.450 5.653 4.929 4.259 5.127 4.858 6.009 6.193 6.119 7.072 7.661 7.527 4.903 6.177 6.125 6.078 5.365 4.199 5.776 6.018 7.319 7.341 5.833 5.531 5.628 4.871 - 4.529 4.981 4.461 5.337 6.266 6.712 7.420 8.266 9.358 9.025 5.757 5.602 4.554 4.316 4.828 4.266 5.453 5.885 6.848 8.195 9.010 8.176 5.633 5.759 5.539 5.228 4.170 4.797 5.315 5.454 6.961 6.906 6.917 5.952 5.305 3.813 - 7.692 7.681 7.637 8.701 8.885 9.123 9.518 8.451 8.872 8.897 9.599 9.484 9.435 9.075 9.107 9.579 10.078 10.985 11.547 11.702 11.545 10.705 10.060 10.168 10.708 11.706 12.597 12.998 12.345 13.166 14.366 14.356 13.291 12.962 13.591 12.807 - 8.570 6.668 6.418 8.805 9.701 10.018 10.690 10.023 9.306 10.378 10.295 10.234 10.384 10.518 10.167 10.860 10.961 11.762 12.275 12.279 12.078 11.693 11.171 11.071 11.680 12.486 13.345 13.830 13.457 14.540 15.394 15.433 14.456 14.203 14.463 13.656 - 5.144 5.720 4.895 4.393 6.614 7.471 6.488 6.056 7.394 7.463 7.573 7.240 7.036 7.178 7.440 7.204 7.387 7.756 8.230 8.338 8.100 8.292 7.639 7.311 7.984 9.001 9.915 10.043 10.548 12.272 12.928 12.488 12.909 12.697 11.952 11.891 - 6.069 7.927 8.728 8.445 7.716 9.084 8.890 8.691 8.313 8.540 8.817 8.016 7.725 8.084 7.688 7.926 8.194 7.820 7.871 7.700 7.866 7.826 7.234 7.193 7.956 8.887 9.794 10.276 11.306 13.064 14.263 14.364 13.549 13.417 13.268 12.941 - 10.487 11.605 11.491 12.327 12.523 12.415 11.339 9.981 9.331 10.069 9.659 8.506 8.837 8.621 8.514 9.174 8.691 7.927 8.594 8.686 9.393 10.378 9.564 9.294 9.121 9.999 11.505 11.981 12.314 12.850 13.288 13.879 13.726 13.241 13.937 13.338 - 12.446 12.596 13.062 13.760 14.714 15.051 13.503 12.215 11.493 11.292 10.311 9.450 9.023 9.370 9.288 9.353 9.403 9.629 10.049 11.125 13.044 14.085 12.566 11.006 10.942 11.563 10.634 12.075 12.467 12.276 14.935 16.220 15.286 14.278 11.377 9.764 - 12.705 12.847 13.423 14.011 15.159 15.762 15.778 13.982 12.480 12.427 11.872 11.524 10.927 10.604 10.905 10.617 10.927 11.429 11.585 12.907 14.890 15.087 13.077 11.864 12.215 12.941 11.631 12.034 13.031 12.741 14.178 15.324 14.096 13.659 11.800 10.398 - 12.826 12.920 13.622 13.636 14.226 16.722 16.692 14.892 13.794 13.999 13.497 12.423 11.462 11.754 11.235 11.415 11.736 11.788 12.625 13.608 15.138 14.934 13.468 12.538 13.269 13.019 13.162 13.756 13.333 12.881 14.783 15.682 14.366 12.819 11.797 10.797 - 12.723 12.710 13.495 13.196 13.924 16.116 16.737 16.993 14.332 13.606 13.488 12.948 12.328 12.477 12.150 12.388 12.880 12.637 14.162 15.337 16.771 15.353 13.744 13.107 13.246 12.468 13.801 14.296 13.117 12.442 14.422 15.814 14.968 14.111 11.031 8.339 - 12.546 12.518 13.354 12.913 13.570 14.738 17.222 17.213 15.330 15.020 14.465 13.317 12.123 12.710 12.451 12.492 13.357 13.165 14.859 16.408 17.278 15.031 13.595 13.259 12.387 12.714 14.153 14.299 12.609 12.023 14.460 15.908 15.049 14.513 11.850 8.688 - 12.453 12.355 13.140 12.550 13.589 14.608 17.008 17.100 16.063 15.056 14.328 12.970 12.486 12.769 12.315 12.817 13.183 13.849 15.738 16.736 15.941 14.460 13.542 12.521 11.841 13.185 14.295 13.689 12.239 11.559 14.800 16.126 14.976 14.017 11.230 9.833 - 12.560 12.625 12.997 12.579 13.664 15.142 16.649 16.996 16.408 15.034 13.834 12.558 12.676 12.739 12.380 13.005 13.127 14.760 15.897 15.611 13.884 12.547 11.863 11.608 11.882 14.276 14.962 13.182 11.880 10.091 13.900 15.882 14.931 13.674 11.213 9.931 - 12.348 12.622 12.028 11.668 13.155 13.516 14.729 16.243 14.285 13.871 13.764 13.083 11.658 11.165 12.027 11.949 13.990 14.830 14.452 13.688 12.789 11.383 10.953 12.150 12.670 14.844 14.108 12.251 11.062 10.654 12.665 15.197 14.515 12.713 12.713 11.605 - 10.490 10.508 11.081 11.893 12.237 10.592 13.681 14.749 14.141 14.776 13.498 12.243 12.321 11.021 11.458 11.847 13.346 14.353 14.785 13.102 11.883 10.886 10.641 10.717 11.971 14.223 12.461 11.071 10.622 11.496 13.855 14.152 13.293 11.895 12.463 11.990 - 10.136 10.940 9.863 8.188 10.338 10.066 10.058 11.296 10.645 12.109 11.437 10.533 9.244 8.880 9.824 10.464 10.633 11.237 12.437 11.719 10.183 10.379 9.851 10.442 11.607 12.154 11.492 12.211 13.698 14.376 15.499 15.155 14.409 16.566 16.663 14.618 - 10.558 9.932 8.671 9.470 9.550 8.901 9.159 8.828 8.777 10.266 9.619 9.971 9.484 9.979 9.627 10.519 10.128 9.771 10.700 10.428 10.716 9.681 9.317 10.668 11.553 11.896 12.206 12.535 14.812 14.981 16.603 15.929 15.186 18.467 19.114 17.364 - 9.870 8.821 8.514 7.938 8.835 9.196 8.234 9.047 9.063 9.200 8.866 10.300 9.311 8.535 8.010 9.171 8.381 7.675 9.948 9.789 9.355 7.429 8.877 9.754 10.217 12.550 11.727 12.550 13.730 14.840 15.540 15.826 16.407 18.221 18.111 17.312 - 7.463 8.209 9.009 7.723 9.819 10.195 9.419 9.318 8.341 8.260 8.998 9.273 8.685 9.253 8.094 8.619 7.999 9.153 10.337 9.329 8.742 9.172 9.653 9.392 9.834 11.936 11.538 12.130 12.905 14.373 15.528 16.470 17.099 18.441 17.849 16.454 - 7.803 8.132 8.786 8.567 9.342 8.611 7.962 9.574 9.565 9.560 8.672 7.330 7.631 8.166 8.226 7.965 7.470 8.049 9.404 9.579 10.285 9.544 9.724 9.672 10.407 11.530 11.266 11.390 12.639 13.904 14.606 15.472 16.614 17.358 16.754 16.609 - 6.942 6.199 6.885 6.901 6.971 7.354 8.779 9.260 6.916 6.618 6.545 7.420 8.243 7.657 6.953 8.054 7.839 8.477 7.413 8.512 8.858 8.809 8.808 9.380 9.243 8.853 10.481 11.159 11.893 12.192 13.739 13.546 14.968 15.766 15.696 14.297 - 3.356 5.162 6.111 7.746 9.528 8.896 9.409 8.990 6.679 7.134 8.189 7.190 7.314 7.125 8.084 6.847 5.766 6.894 7.555 7.616 7.781 7.587 6.012 7.480 7.460 8.991 8.606 9.423 9.906 10.494 11.774 11.598 12.651 12.890 13.518 11.986 - 5.118 5.138 5.763 9.111 10.205 8.539 6.733 6.591 6.163 9.307 9.368 5.937 5.424 8.820 9.195 6.536 6.514 8.870 7.766 7.130 7.581 7.423 7.354 7.712 8.079 8.781 9.052 10.475 10.230 11.279 12.394 12.781 12.681 11.214 11.147 10.038 - 3.735 6.243 8.025 9.540 9.760 8.364 7.523 7.914 7.122 9.179 8.705 6.869 7.966 8.036 7.887 8.232 8.179 8.361 7.373 8.418 8.603 8.245 8.605 8.329 10.068 10.063 10.962 11.916 13.891 14.129 13.752 14.925 13.744 12.635 13.027 12.049 - 5.998 8.389 9.120 8.121 8.747 7.519 8.358 8.524 7.464 8.446 7.340 8.060 8.149 6.900 6.433 8.049 8.277 7.931 7.713 9.390 9.335 9.845 9.922 11.636 12.826 13.772 14.405 13.931 16.056 16.796 16.409 15.862 15.740 15.069 14.456 13.856 - 8.243 9.434 10.175 10.051 11.243 10.671 10.436 11.041 11.802 11.558 11.303 11.350 11.446 11.035 11.182 11.179 10.625 10.370 10.407 11.341 11.662 12.074 12.159 13.044 14.521 14.883 16.113 15.808 17.466 17.175 17.216 17.206 16.553 16.188 16.370 15.434 - 10.031 8.419 11.041 11.759 11.918 12.449 12.944 11.987 12.348 12.232 12.599 12.378 12.419 11.835 12.143 12.132 11.384 11.768 11.773 12.280 13.417 13.072 12.984 13.193 14.640 16.540 16.324 16.025 16.936 16.504 17.045 15.928 16.315 15.514 15.292 14.789 - 12.755 13.319 12.328 13.390 14.383 14.703 13.048 12.844 12.548 12.304 11.288 10.106 11.040 10.750 10.822 10.437 11.237 11.919 12.882 13.553 12.393 11.947 12.128 11.558 14.826 15.137 14.412 13.511 13.112 13.075 14.454 13.715 13.054 13.256 12.645 12.641 - 13.236 13.363 13.907 14.586 15.653 16.246 14.369 13.263 13.200 13.152 11.742 11.396 11.376 11.035 11.379 11.495 12.138 12.574 14.358 14.909 13.807 12.768 12.852 12.755 13.214 12.308 10.138 9.401 10.784 10.930 13.180 12.776 12.604 11.162 10.211 7.395 - 13.975 13.231 13.221 14.066 15.316 16.283 14.315 12.565 13.113 12.829 11.405 11.434 10.956 10.821 11.268 10.937 11.606 12.981 14.792 15.305 14.179 13.261 13.452 12.133 10.494 11.300 9.744 10.505 11.369 12.700 14.015 14.248 13.430 10.946 7.813 6.411 - 13.350 13.227 12.850 13.537 14.969 15.449 12.811 12.650 11.969 10.288 10.812 10.872 9.674 10.593 10.360 11.025 11.521 12.521 14.461 14.683 13.030 12.407 12.126 12.173 12.449 12.818 11.747 10.239 11.386 12.521 12.621 12.822 11.898 9.214 8.196 7.353 - 11.346 11.602 12.030 11.938 12.964 13.218 11.645 9.826 9.597 8.596 7.824 8.608 8.232 8.264 8.629 9.053 9.644 10.862 13.509 13.612 11.091 10.688 11.278 11.137 10.916 10.480 9.544 8.039 9.108 9.864 10.308 10.303 9.026 7.850 7.272 6.573 - 11.516 10.990 10.540 9.370 8.916 8.863 7.393 8.012 7.185 5.650 7.733 7.454 5.375 5.974 5.576 5.730 7.719 8.449 10.052 9.677 8.461 7.334 8.307 8.540 9.740 9.153 7.885 6.259 8.123 7.616 9.664 8.081 6.681 6.754 6.969 6.500 - 11.366 11.244 11.354 10.520 8.803 6.614 5.526 5.910 5.562 5.985 6.158 5.814 4.854 4.691 5.456 6.706 6.193 7.379 8.206 8.897 8.947 7.662 8.624 8.995 9.796 9.146 7.561 7.760 7.450 8.379 8.688 7.385 7.066 7.237 8.060 7.630 - 11.067 10.398 10.398 10.532 8.248 9.007 7.979 7.557 8.295 7.668 7.393 7.018 6.900 7.276 7.529 7.616 7.780 8.976 10.503 9.511 8.677 8.596 8.560 10.113 10.104 10.162 9.949 9.456 9.210 8.794 8.633 8.013 7.712 7.477 7.258 6.076 - 13.030 12.430 12.651 12.655 14.110 15.101 14.441 12.199 12.143 12.670 12.167 10.582 10.908 12.041 11.772 10.997 12.484 12.882 14.558 15.444 14.808 13.540 13.285 13.675 13.783 14.119 13.850 13.521 12.850 13.488 13.598 13.639 12.897 12.159 9.759 7.687 - 13.179 12.503 12.858 12.744 14.109 16.394 15.487 14.952 14.861 13.535 11.626 12.601 11.859 11.843 12.257 12.106 12.989 13.270 15.200 16.530 16.265 14.039 13.518 14.035 14.521 13.548 12.479 11.554 10.895 13.142 13.079 14.063 13.366 12.831 11.691 10.037 - 13.040 12.264 12.835 12.456 14.233 15.964 16.743 16.109 14.683 13.917 11.809 12.297 12.077 11.804 12.351 12.396 13.040 13.511 14.939 17.048 16.715 14.250 13.807 14.082 14.523 13.703 12.446 10.975 10.037 11.636 12.267 13.946 13.770 13.267 11.274 10.159 - 13.051 12.366 12.987 12.885 14.404 15.982 17.307 16.724 14.971 14.320 12.792 12.588 12.466 12.058 12.478 12.686 13.264 13.660 14.661 16.482 17.158 15.207 14.385 14.362 14.822 14.193 12.796 11.593 10.700 11.847 12.549 14.083 13.830 13.071 10.628 10.363 - 13.103 12.970 13.078 12.678 14.619 16.108 17.208 15.962 14.905 14.355 12.774 12.278 12.392 11.874 12.330 12.196 12.944 12.998 14.156 15.860 17.206 15.742 14.810 14.658 15.245 14.698 13.067 11.899 11.960 13.775 13.835 13.590 13.918 13.582 11.505 11.039 - 13.095 13.068 13.189 12.385 14.767 15.768 16.830 15.338 14.166 13.796 12.490 11.759 11.957 11.389 11.544 11.241 12.343 12.818 13.358 14.701 16.561 16.396 15.138 14.612 14.518 13.632 11.819 12.154 12.786 13.305 14.751 14.481 13.069 12.206 10.295 10.081 - 13.092 12.995 13.127 11.963 15.066 15.763 16.138 14.716 13.756 13.181 11.829 11.523 11.533 10.824 11.523 11.241 12.229 12.561 13.528 14.230 15.838 15.920 14.805 14.876 14.888 13.576 12.691 11.952 12.128 13.171 14.272 14.089 13.316 13.003 10.876 9.692 - 13.009 12.701 13.064 11.634 15.357 16.063 15.415 13.977 13.417 12.900 11.524 11.153 11.364 10.663 11.273 11.001 11.946 12.179 12.976 13.689 15.387 16.037 15.415 15.224 14.344 12.853 12.078 11.162 11.795 12.581 13.947 14.332 13.047 12.921 10.305 8.072 - 12.862 12.490 13.032 12.173 15.491 16.016 14.528 13.567 13.022 12.684 11.453 10.910 11.084 10.721 11.067 10.962 11.841 12.051 13.061 13.769 15.691 16.339 15.946 15.488 13.431 11.712 11.017 10.023 11.578 12.431 13.653 14.181 12.891 13.166 10.579 8.066 - 12.855 12.811 13.309 13.911 15.759 15.805 13.403 13.092 12.782 12.418 11.206 10.975 10.900 10.677 11.175 11.362 12.042 12.108 14.010 15.003 14.775 15.221 15.473 14.089 12.130 11.269 9.435 9.518 10.085 11.092 13.195 14.447 13.594 13.905 11.689 8.550 - 12.961 13.206 13.769 14.662 15.799 15.501 12.586 12.422 12.653 12.316 11.406 11.504 11.202 11.151 12.194 13.261 13.131 12.525 12.208 12.025 11.787 12.948 13.751 12.971 11.286 10.874 8.563 8.081 9.045 9.845 11.397 12.814 11.840 11.820 9.737 8.100 - 12.843 13.023 13.186 14.233 14.895 14.871 12.075 12.048 12.432 11.747 11.331 12.158 12.741 13.270 12.085 10.896 10.711 10.298 10.693 10.877 9.330 10.742 11.951 10.989 9.498 10.079 7.348 7.377 7.248 8.718 9.693 11.609 10.892 11.178 8.749 7.392 - 12.623 12.359 12.530 14.248 14.376 14.358 11.825 12.412 12.423 11.542 12.029 12.514 12.405 12.133 10.985 9.752 8.224 9.102 9.400 9.821 7.573 9.485 10.926 10.679 9.120 9.419 6.697 6.964 7.649 8.164 9.010 11.267 10.790 10.869 8.778 7.092 - 12.625 12.102 12.939 14.371 14.380 14.469 11.918 12.590 12.518 12.052 12.132 12.825 12.663 11.130 10.254 9.397 8.717 9.193 9.143 8.904 8.435 9.697 11.266 10.845 8.538 8.555 6.500 6.869 8.084 8.500 9.401 11.235 10.733 10.847 8.509 6.543 - 12.402 12.082 12.837 14.515 15.023 15.108 12.652 12.946 12.791 12.710 12.565 13.919 13.388 11.430 10.427 9.210 9.299 9.472 9.436 8.826 9.239 10.319 11.992 11.207 8.536 8.399 7.460 7.417 8.820 9.586 10.323 11.611 10.893 11.038 8.251 6.561 - 12.341 12.510 13.122 14.230 15.377 16.085 14.103 13.462 13.465 13.327 12.701 13.805 14.409 13.465 11.663 10.583 9.825 9.600 9.500 9.381 9.599 10.966 12.461 11.437 9.155 7.856 7.174 7.444 8.982 8.739 11.203 11.441 11.282 10.917 8.294 5.926 - 13.001 13.117 13.657 13.842 15.147 16.833 15.592 14.036 14.354 13.925 12.520 13.436 14.512 14.094 13.737 11.782 11.055 11.021 11.270 10.810 10.503 11.771 13.488 12.484 9.897 8.757 8.787 9.274 10.238 9.568 11.822 11.762 11.992 11.328 9.105 6.945 - 13.166 12.936 12.993 12.338 15.055 16.724 15.672 15.909 15.261 14.397 12.624 13.634 14.080 15.055 15.461 13.695 12.310 11.514 11.664 11.119 11.224 11.964 13.451 12.935 11.099 10.319 8.698 9.900 10.299 9.649 11.847 11.536 10.978 10.928 9.577 7.486 - 12.834 12.549 12.682 12.841 14.559 15.715 16.844 16.307 15.610 15.000 13.468 13.753 14.024 14.754 16.381 14.904 14.358 12.909 12.429 11.948 11.866 12.130 13.693 13.808 11.586 10.949 10.508 10.974 10.669 10.969 12.421 11.441 10.787 10.885 9.890 8.807 - 12.747 12.485 13.206 12.174 14.000 15.014 17.081 17.697 16.836 15.112 13.433 13.970 13.856 14.032 15.562 16.590 15.817 13.430 12.763 11.894 11.898 12.834 14.574 14.597 12.675 11.545 11.404 11.827 11.149 11.306 12.917 11.361 11.192 11.184 10.250 10.090 - 12.831 12.497 13.186 12.653 13.859 14.774 16.145 17.554 17.422 15.069 13.431 13.893 13.753 13.733 14.496 16.402 17.263 14.902 13.248 12.216 12.297 13.312 14.994 15.696 14.024 12.415 12.221 12.766 11.338 12.170 12.991 11.401 12.026 11.623 10.169 10.365 - 12.563 12.553 12.392 12.451 13.843 14.615 15.444 17.676 17.322 15.797 15.011 14.702 14.007 13.993 14.269 15.323 16.643 15.627 14.358 13.486 13.160 13.321 14.196 15.655 15.306 13.498 12.773 12.736 11.202 12.282 12.951 12.018 12.720 11.917 9.589 9.929 - 12.663 12.690 12.709 12.738 13.871 14.520 15.443 17.528 16.619 15.853 14.826 14.415 13.459 13.786 13.906 15.077 16.036 16.434 14.874 13.694 13.003 12.948 13.212 14.872 15.749 14.744 13.453 13.291 12.469 13.976 14.190 13.359 13.770 12.075 8.883 9.029 - 12.681 12.525 12.734 12.269 13.644 14.579 15.439 17.410 16.154 14.793 14.301 14.115 13.058 13.399 13.414 14.603 15.902 16.059 14.142 13.267 12.695 12.639 12.832 14.044 15.415 14.570 12.773 12.305 12.151 13.307 13.730 12.992 13.539 12.043 9.431 8.877 - 12.459 11.954 12.307 11.785 13.572 14.433 16.245 17.340 15.674 14.283 13.164 13.168 12.438 12.709 12.777 14.259 16.272 16.049 13.485 12.485 11.965 11.942 12.286 13.530 15.441 14.447 12.046 11.341 12.111 13.448 13.534 13.150 13.709 11.953 8.615 7.408 - 12.230 11.766 11.821 12.348 13.977 15.312 15.470 15.752 14.419 12.463 11.664 12.001 11.429 11.990 12.556 14.508 15.512 14.792 12.114 11.567 11.119 11.424 12.018 13.534 15.291 13.905 11.350 10.510 12.328 14.048 13.981 13.302 14.091 11.999 8.236 6.502 - 11.989 11.717 11.739 12.813 13.854 14.078 13.561 12.482 11.602 11.551 11.354 10.818 10.840 11.021 12.054 13.503 13.780 12.010 11.025 10.329 10.516 10.831 11.034 12.377 13.199 11.764 10.467 9.680 11.355 12.777 12.563 11.782 12.848 10.677 7.532 7.535 - 11.970 11.904 12.245 12.727 14.010 14.035 13.867 13.184 11.308 11.540 11.998 11.269 11.162 11.144 12.424 13.567 14.245 12.916 12.233 11.480 11.038 10.408 10.620 12.263 13.612 12.198 11.045 10.761 12.189 13.376 13.085 12.283 13.555 11.178 8.334 6.305 - 12.271 12.324 12.492 12.619 14.217 14.815 15.012 14.703 13.436 11.749 12.455 12.119 11.391 12.046 12.395 13.848 15.009 15.296 12.751 12.086 11.543 11.185 11.531 12.600 14.940 14.123 12.078 11.250 12.989 14.325 13.766 12.912 14.181 11.926 8.704 6.892 - 12.574 12.000 12.492 12.369 14.272 15.317 16.184 15.085 14.203 13.222 11.708 12.425 11.728 12.062 12.385 13.392 15.412 16.176 13.538 12.802 11.859 11.868 12.172 12.785 15.250 14.974 12.041 11.341 13.408 14.572 14.035 13.780 14.878 12.595 8.959 7.386 - 12.669 12.000 12.278 12.646 14.085 15.457 16.703 16.096 14.562 13.696 12.041 12.536 11.881 12.077 12.402 13.412 15.323 16.592 14.789 12.995 12.231 12.264 12.626 13.529 15.175 14.657 12.342 11.817 13.341 14.582 13.686 14.375 14.835 12.553 9.480 8.664 - 12.595 12.197 12.487 13.003 14.298 15.762 16.709 15.846 14.829 14.012 12.512 12.669 11.771 11.911 12.223 13.389 15.242 16.588 15.460 13.609 12.908 12.887 13.664 15.427 14.838 13.410 12.879 12.964 12.369 14.023 12.856 13.698 13.716 11.740 9.791 8.827 - 12.856 12.554 12.791 13.268 14.668 15.604 16.394 15.139 14.768 13.872 12.480 12.747 12.347 12.368 12.719 13.911 15.667 16.410 15.439 14.009 14.275 14.919 14.567 13.289 12.312 11.303 11.573 11.284 11.298 13.183 12.027 13.124 13.060 11.501 10.156 8.796 - 12.716 12.695 12.843 13.117 14.806 15.350 16.139 14.626 14.330 13.733 12.480 12.751 12.726 12.632 13.695 14.836 15.876 15.695 15.830 15.330 14.757 12.979 12.166 10.271 9.673 9.821 10.360 10.859 9.810 11.574 10.164 11.754 12.108 11.034 9.643 7.354 - 12.528 12.381 12.626 13.009 14.871 15.361 15.800 13.950 13.213 13.051 12.209 11.837 12.375 12.354 13.837 14.624 15.525 14.733 14.972 14.661 13.183 10.754 9.965 9.005 8.814 8.543 9.510 9.610 8.306 9.846 8.493 10.883 11.122 10.350 8.731 6.455 - 12.231 12.010 12.140 12.745 15.020 15.446 15.287 13.417 12.969 12.727 11.987 11.766 12.015 12.605 14.338 14.853 14.341 14.119 15.116 13.431 10.884 9.184 9.449 8.472 8.835 7.775 8.357 8.260 7.247 8.374 6.698 9.889 10.149 8.954 8.005 6.578 - 12.189 12.056 12.278 13.207 14.994 15.430 15.038 13.568 13.182 12.874 12.096 12.161 12.603 13.940 15.061 14.005 12.849 13.469 14.382 12.810 8.991 8.473 8.653 7.589 7.645 7.496 7.729 8.067 6.906 7.581 6.154 8.069 8.648 7.581 6.692 5.538 - 11.981 12.512 12.690 13.553 15.154 15.523 15.145 14.052 13.537 13.363 12.987 12.972 13.840 14.745 14.920 13.843 12.647 12.896 13.991 13.503 9.842 9.312 8.663 8.213 7.102 7.525 7.683 7.628 6.329 6.725 6.477 7.243 7.837 7.731 6.695 5.724 - 11.776 12.523 12.785 13.370 14.168 15.908 15.179 13.620 12.905 12.872 12.772 13.006 13.962 14.667 14.160 13.296 12.280 12.039 12.956 13.327 11.208 9.377 8.532 8.617 6.795 7.244 7.335 7.151 6.985 7.248 6.712 7.817 8.386 8.727 7.662 5.667 - 10.721 11.803 11.341 11.975 14.788 15.567 14.624 12.897 11.978 12.051 12.114 11.994 13.130 14.632 13.651 12.405 11.751 10.936 12.132 13.385 11.808 9.061 8.922 7.386 6.801 6.724 7.490 8.228 6.952 6.914 6.526 8.313 8.207 8.601 8.355 6.793 - 11.389 11.755 12.322 13.109 15.072 15.758 15.035 13.877 13.067 12.967 12.912 13.009 14.019 15.249 14.777 13.318 12.551 11.569 12.121 13.620 13.709 10.275 9.509 8.832 8.080 6.554 7.205 7.467 6.325 6.363 6.599 9.412 9.245 10.092 10.036 8.036 - 11.405 12.411 12.821 12.972 14.281 14.874 15.350 14.088 12.594 12.538 13.048 12.862 13.015 14.507 14.852 13.392 12.653 11.584 11.554 12.210 13.249 12.484 9.278 9.010 7.656 6.949 7.419 7.651 6.805 8.604 8.211 8.827 9.435 10.506 10.372 8.895 - 10.445 11.776 11.583 12.081 14.246 15.800 14.597 13.205 12.377 12.468 11.963 11.935 12.460 13.523 14.863 14.096 11.994 11.504 10.730 11.250 12.839 12.634 10.044 8.520 7.137 6.828 7.298 8.126 6.790 7.581 7.399 7.708 8.239 10.052 10.248 7.978 - 11.206 12.077 11.971 12.808 14.833 16.431 15.992 14.122 13.429 13.146 12.508 12.478 12.836 13.373 15.038 15.667 13.843 12.342 11.629 11.852 13.106 13.922 12.166 9.417 8.008 7.578 8.539 8.883 6.995 7.089 7.199 6.882 8.616 10.466 10.010 7.476 - 12.148 12.719 12.841 13.102 14.468 16.332 16.284 14.355 13.791 13.343 12.395 12.332 12.401 12.682 13.782 14.701 14.746 13.076 12.226 11.976 12.615 13.561 13.875 11.857 9.236 8.469 9.962 10.094 8.172 8.249 8.911 7.936 8.493 9.772 10.126 7.807 - 12.380 12.500 12.808 13.106 14.888 15.460 16.203 14.232 13.667 12.980 12.229 12.612 12.128 12.518 13.103 14.510 15.536 14.150 13.496 12.262 11.918 12.702 13.253 13.078 11.782 10.622 11.219 11.338 9.427 9.118 10.128 9.473 10.166 10.500 10.268 7.678 - 12.554 12.061 12.349 12.618 15.017 15.724 16.071 14.419 13.616 12.390 12.089 12.119 11.382 12.373 12.470 14.125 15.172 15.266 13.578 12.776 12.097 12.211 12.840 13.752 13.552 12.234 11.525 11.849 10.953 12.304 13.124 12.091 12.179 12.025 10.470 7.766 - 12.810 11.936 12.480 12.744 14.818 16.071 16.067 14.141 13.515 13.209 12.832 11.747 11.623 11.973 12.569 13.578 14.863 15.486 14.251 12.642 11.933 11.939 12.431 13.756 14.313 12.751 11.626 12.051 11.727 13.117 14.184 12.687 12.984 13.306 10.993 7.645 - 13.031 12.848 11.691 13.391 14.256 13.846 14.992 13.762 11.863 13.501 12.330 11.613 11.371 11.464 12.237 12.524 14.613 14.996 14.127 11.366 11.057 11.298 11.770 12.868 14.582 13.426 11.160 11.011 12.097 12.411 13.807 12.827 12.717 13.016 10.544 8.655 - 11.749 11.426 12.738 13.093 13.379 13.484 12.870 12.042 11.961 11.444 11.779 10.543 10.174 10.256 10.439 11.289 12.447 13.412 12.276 12.950 11.732 9.933 9.091 10.051 12.137 11.848 11.916 10.711 12.164 13.851 15.011 14.498 13.690 13.271 12.469 11.632 - 10.241 10.020 11.322 11.210 11.546 11.880 10.484 9.224 9.806 8.142 8.850 9.003 8.743 8.745 8.386 9.227 11.116 11.958 11.665 12.106 10.715 10.181 9.914 9.554 11.048 11.085 10.946 11.356 13.576 13.002 14.799 16.807 16.713 15.528 14.933 13.965 - 10.475 8.804 9.664 11.127 11.632 11.491 8.774 9.454 8.685 8.087 7.482 8.729 7.577 7.364 8.120 8.386 8.786 9.502 11.063 10.687 8.859 9.213 8.559 9.721 11.172 11.594 11.063 12.289 13.050 14.280 15.456 16.918 16.732 16.981 15.562 14.734 - 9.348 9.638 9.105 10.114 11.585 11.004 9.887 9.630 8.696 8.412 8.404 7.446 7.812 7.978 9.019 8.214 8.211 9.631 10.371 9.951 9.095 8.928 9.154 9.808 10.125 10.902 11.394 12.370 14.095 15.343 15.018 16.139 17.863 17.428 16.359 14.894 - 11.297 10.564 10.542 10.559 10.799 11.074 9.806 10.289 10.710 10.622 10.272 9.096 8.693 8.455 9.221 9.290 9.741 10.915 11.789 10.283 9.347 9.104 9.528 8.837 10.038 12.144 11.437 13.034 14.444 15.394 15.740 17.029 17.356 16.064 15.441 14.420 - 11.503 10.835 7.894 10.076 11.627 11.631 10.357 10.364 9.715 8.210 8.735 9.541 9.024 8.288 7.973 8.978 9.806 11.228 11.632 10.438 9.560 9.595 8.087 9.650 10.520 11.516 12.134 14.577 15.267 15.057 16.713 16.407 15.606 14.755 13.796 12.166 - 12.300 11.170 8.236 9.654 11.089 11.516 11.241 9.106 10.212 8.500 8.236 8.643 7.420 7.461 6.541 7.791 8.900 10.742 10.653 10.562 9.412 8.338 8.937 8.918 10.611 11.158 12.459 14.294 13.367 12.253 12.873 11.736 11.305 11.441 11.378 10.437 - 12.320 11.266 10.626 10.936 10.265 12.120 11.457 10.726 10.890 10.497 10.154 10.041 8.538 6.957 7.579 7.742 9.007 10.390 9.378 8.777 7.568 8.161 8.932 8.795 8.303 9.937 9.521 8.569 8.071 9.363 8.795 8.747 9.806 9.708 9.182 8.161 - 12.946 13.224 12.395 11.660 10.492 11.331 10.948 8.580 7.886 9.517 10.446 9.666 6.669 7.268 7.588 8.528 9.332 10.081 10.209 9.658 9.045 9.503 9.539 8.254 7.569 8.182 8.672 8.499 7.627 7.905 8.366 8.022 8.467 9.975 9.678 9.253 - 13.830 13.738 12.127 12.312 12.335 11.010 10.456 10.415 9.374 10.689 10.160 9.404 8.271 7.750 8.812 10.125 9.881 9.485 9.993 9.534 9.360 9.585 10.639 9.709 8.096 8.075 8.737 8.902 7.034 7.230 7.992 8.402 8.107 10.464 9.811 8.506 - 14.355 13.896 12.463 11.919 11.484 11.529 11.364 10.172 10.449 10.199 10.118 9.486 7.800 7.317 10.516 10.235 10.721 10.468 10.133 10.068 9.852 9.959 11.750 10.576 9.056 7.394 9.354 10.623 8.032 8.590 8.988 9.342 9.751 10.546 10.416 9.028 - 14.392 13.956 13.338 12.138 11.955 12.740 11.261 10.615 11.068 9.929 10.080 10.233 8.366 9.004 10.228 11.075 10.416 11.653 11.271 11.772 11.403 12.021 13.076 11.800 10.371 8.595 8.480 10.519 8.718 7.268 8.360 8.925 10.209 9.519 9.508 9.315 - 14.121 13.519 13.659 11.672 11.966 12.223 9.960 9.986 10.266 9.565 8.819 8.476 8.830 9.757 9.855 10.634 10.086 10.940 10.522 10.514 10.857 11.954 12.980 12.710 10.653 8.836 7.851 9.550 9.589 7.332 10.091 11.355 12.369 11.270 10.291 8.931 - 13.950 13.137 13.619 11.554 11.930 12.763 10.649 10.025 10.262 9.685 8.864 9.832 9.888 10.019 9.622 9.976 9.668 10.442 9.951 9.793 10.042 11.397 12.707 12.183 10.012 8.396 6.719 8.771 9.117 6.907 9.970 10.967 12.058 11.339 9.999 9.496 - 13.849 13.180 13.608 12.092 12.577 13.982 13.218 11.810 12.425 12.169 10.087 10.673 11.139 11.339 11.774 11.475 11.768 10.856 10.484 10.260 10.239 11.032 12.616 11.304 10.223 7.908 7.628 7.783 9.356 9.016 9.549 10.347 11.506 10.375 9.853 10.452 - 13.428 12.911 13.485 11.392 13.938 15.293 14.839 13.576 12.897 12.622 11.172 11.399 11.402 11.858 12.244 13.321 12.673 11.643 11.315 10.836 10.818 11.712 13.154 12.455 10.114 7.434 7.593 7.876 9.268 9.246 10.741 11.400 11.322 10.734 10.733 8.463 - 13.646 13.527 13.688 12.063 14.433 15.147 14.620 14.090 13.347 12.593 10.987 11.580 11.554 12.101 12.195 13.994 13.683 12.295 11.683 10.921 10.730 11.448 12.876 12.176 10.267 8.125 7.367 7.836 9.096 9.743 12.427 12.804 12.124 11.561 11.359 9.100 - 13.665 13.608 13.660 12.451 14.813 15.054 14.168 13.971 13.543 12.519 10.670 11.521 11.023 11.941 11.934 14.058 14.009 12.929 12.137 11.098 11.143 12.221 13.689 12.742 11.023 8.917 7.688 6.671 9.088 10.309 12.730 13.490 10.944 10.431 11.293 9.539 - 13.657 13.469 13.652 12.591 14.999 15.404 13.411 13.757 13.653 12.578 11.141 11.867 10.876 12.261 12.172 14.082 14.293 13.223 12.610 11.793 11.707 12.657 14.162 13.340 11.259 9.053 8.387 8.557 9.791 11.057 12.484 13.371 11.826 11.302 11.440 9.421 - 13.511 13.015 13.434 12.657 14.926 15.582 13.213 13.436 13.282 12.058 11.200 11.543 10.523 11.931 11.937 13.787 13.729 13.303 11.910 11.354 11.282 12.176 13.947 13.372 10.652 9.076 8.295 8.047 9.015 10.079 11.971 12.885 11.838 11.600 10.863 9.166 - 13.387 12.668 13.196 13.191 15.067 15.619 12.986 13.234 12.867 12.143 11.106 11.520 10.589 11.709 11.899 13.722 13.986 13.585 11.940 11.557 11.507 12.303 13.955 13.255 10.555 8.524 7.536 7.868 8.476 9.109 11.281 12.211 11.641 11.789 10.249 8.832 - 13.260 12.710 13.213 13.983 15.126 15.501 13.142 12.941 12.507 11.247 11.049 11.377 10.664 11.654 12.167 13.744 14.393 13.749 12.239 11.810 11.860 12.809 14.201 13.600 10.746 8.309 8.244 8.580 8.244 8.970 10.938 11.954 10.956 10.823 10.133 8.789 - 12.859 12.703 13.055 14.050 15.273 15.488 13.099 13.011 12.263 11.569 11.627 11.751 11.343 11.877 12.629 14.096 14.666 14.030 12.280 11.592 11.344 12.543 14.332 13.851 10.999 8.723 8.590 9.328 9.363 9.375 12.105 12.351 9.899 9.616 10.296 9.300 - 13.516 13.682 13.456 13.770 14.746 14.877 12.695 13.022 11.706 11.692 12.026 11.173 11.599 11.368 12.411 13.421 14.113 13.033 12.685 11.286 11.395 12.399 13.653 12.547 10.713 9.479 9.049 7.902 8.459 10.027 11.995 12.097 11.305 10.134 9.404 7.918 - 14.085 12.886 13.230 13.930 13.644 13.386 13.065 11.873 11.338 12.233 11.056 10.874 10.956 11.210 11.632 13.434 13.424 13.011 11.860 10.687 11.236 11.333 13.382 12.671 10.636 8.865 9.328 9.405 9.204 10.092 11.361 11.689 11.085 9.954 10.303 9.297 - 13.862 12.642 10.847 12.668 12.923 13.353 13.068 11.065 11.786 11.590 10.726 10.646 10.269 10.966 11.337 12.928 13.009 12.094 10.611 10.226 10.822 11.236 13.157 11.909 9.775 8.135 9.192 8.409 8.663 9.676 11.318 11.152 11.041 9.854 9.272 8.252 - 10.828 11.129 11.793 12.154 12.907 13.339 12.957 12.259 12.185 10.921 10.218 10.195 9.866 10.489 11.380 12.715 12.810 12.155 11.108 10.734 9.957 11.890 13.262 12.123 9.473 8.752 8.781 8.142 9.081 10.659 12.424 11.886 11.474 9.670 9.277 8.181 - 11.772 11.209 11.470 12.100 12.166 12.619 12.080 12.068 12.408 11.534 11.319 10.362 9.647 10.259 11.035 11.738 12.747 13.278 12.428 11.543 11.069 11.705 13.288 12.073 10.143 8.525 8.415 8.676 8.709 10.121 11.976 11.341 10.505 8.648 9.067 8.061 - 12.208 11.690 11.777 12.872 12.917 12.888 13.230 12.837 13.018 12.552 11.298 11.867 10.951 11.670 11.639 12.512 13.129 13.464 13.136 12.177 11.628 12.613 13.553 12.782 11.439 9.369 9.624 9.057 10.645 11.978 13.206 12.423 11.660 10.024 9.155 7.880 - 11.640 10.439 11.359 12.154 13.102 13.653 13.806 14.223 13.139 12.566 12.809 11.925 11.106 11.657 11.706 12.715 13.583 14.373 14.273 13.094 12.575 13.530 14.606 13.688 11.660 9.088 9.128 9.639 10.569 12.371 13.830 12.697 12.260 10.520 9.336 8.310 - 12.531 12.707 12.430 11.030 13.363 14.578 15.385 15.301 14.306 13.675 12.063 11.963 11.748 11.477 11.943 12.530 13.672 15.272 15.659 13.596 13.368 13.967 15.447 14.741 12.195 10.804 9.518 9.629 11.278 12.972 14.440 13.053 12.817 10.938 9.783 9.140 - 12.300 12.253 12.626 10.939 13.105 14.517 15.855 16.348 15.684 14.477 11.889 12.070 12.249 11.596 12.237 12.041 13.131 14.319 15.995 16.030 14.706 14.418 15.548 15.589 13.824 11.725 10.108 9.670 11.570 12.882 13.691 12.711 11.129 9.957 10.944 10.788 - 13.300 13.428 13.630 12.410 13.440 14.508 15.812 15.987 16.489 15.506 13.271 12.034 12.583 11.805 12.654 12.271 13.207 14.021 15.985 17.152 15.823 15.176 15.763 15.994 15.194 11.915 10.430 10.070 13.239 14.274 14.506 13.377 12.137 10.807 11.777 12.103 - 13.470 13.468 13.584 11.700 12.923 13.951 14.993 16.214 16.489 14.576 12.226 12.924 12.351 12.157 12.717 12.332 13.151 13.457 14.906 16.313 16.709 15.251 15.126 15.825 15.114 13.281 11.215 11.049 12.268 13.933 14.744 12.908 11.093 10.197 9.452 10.095 - 13.412 13.204 13.575 11.370 11.476 13.104 14.411 16.301 16.097 13.911 12.554 13.153 12.092 11.858 12.316 11.818 12.513 12.283 13.257 15.459 16.515 15.823 15.237 15.836 15.986 13.853 11.937 11.242 12.201 13.537 14.320 13.380 11.603 9.145 7.697 8.350 - 13.380 12.914 13.452 11.167 11.888 12.608 14.141 16.271 15.731 13.509 12.977 13.190 11.151 11.642 11.611 11.707 11.742 11.601 12.085 13.945 15.724 15.701 15.170 15.803 15.998 13.936 11.378 10.593 11.933 13.248 14.243 13.692 12.064 10.085 8.254 8.694 - 13.513 13.048 13.387 11.516 11.783 13.007 14.197 15.948 15.198 13.334 13.186 13.181 11.102 11.170 11.509 11.591 11.352 11.190 11.433 12.486 14.604 15.838 15.285 15.557 15.871 14.041 10.964 10.336 9.683 12.212 13.344 13.213 12.321 10.169 7.664 6.858 - 13.689 13.440 13.170 11.831 11.508 12.812 13.841 14.850 13.958 12.189 13.505 12.851 11.441 10.787 11.265 11.597 11.463 11.463 10.521 9.864 12.155 14.392 14.904 14.740 14.933 13.150 10.165 9.733 9.671 10.961 11.942 12.351 12.580 10.787 8.943 7.922 - 13.737 13.136 12.211 11.983 11.657 12.465 13.602 12.861 12.092 12.893 13.127 12.096 11.559 9.737 10.649 10.655 10.939 11.113 10.852 11.019 10.353 10.603 12.990 13.087 13.251 11.807 9.533 8.855 8.989 10.081 11.668 12.537 12.987 11.910 10.273 8.795 - 13.410 11.773 11.220 11.786 10.869 12.331 12.406 13.200 12.834 10.989 12.418 11.879 11.118 9.827 9.870 10.457 10.356 11.040 11.211 11.018 11.191 11.299 11.960 11.556 10.720 9.515 7.835 7.477 8.248 7.741 9.859 11.358 11.536 11.238 10.651 8.432 - 11.967 12.621 11.794 10.865 10.390 10.574 11.248 11.884 11.233 8.951 10.757 11.238 10.970 8.464 8.465 9.302 9.161 10.312 10.827 10.056 10.784 11.256 11.404 10.471 9.883 9.197 7.800 6.808 7.116 7.521 8.341 11.001 11.186 10.163 10.485 10.131 - 8.445 10.769 11.398 11.247 9.419 9.399 9.810 9.774 8.961 9.218 8.615 8.889 8.134 6.642 6.300 7.093 7.561 9.071 8.773 7.790 9.267 10.419 10.214 10.015 10.129 8.707 7.728 6.662 7.493 8.256 7.812 11.182 11.585 10.265 11.153 11.319 - 9.141 8.697 9.010 10.469 9.182 9.101 8.782 9.907 9.286 7.751 6.805 8.018 6.971 4.842 4.598 5.482 5.698 7.574 7.354 7.312 8.574 9.900 9.140 8.159 9.041 8.742 7.540 7.548 7.342 9.092 8.911 8.502 7.892 6.666 6.588 6.329 - 6.449 8.217 8.866 10.076 9.152 8.366 8.082 7.857 7.145 6.381 8.029 7.754 7.021 6.274 5.050 4.374 4.201 5.770 6.993 7.307 9.230 9.998 8.508 7.550 9.032 9.306 8.056 7.015 7.561 9.436 8.941 7.771 6.763 5.841 6.181 5.290 - 6.467 8.876 8.868 8.674 7.752 8.882 7.971 6.263 6.838 6.454 7.183 6.928 5.879 5.635 6.363 5.442 5.018 5.952 5.807 7.407 9.128 9.684 7.354 7.398 9.814 9.661 7.771 6.994 7.388 9.474 8.620 7.619 6.588 5.361 5.634 5.061 - 7.429 9.364 9.309 9.690 8.738 8.553 7.689 6.986 7.027 6.271 5.508 6.378 6.071 5.902 5.694 5.206 5.139 6.013 6.625 7.872 8.437 9.161 7.895 7.401 8.625 8.411 7.861 6.522 7.303 9.822 9.854 7.712 5.927 5.038 5.224 4.353 - 7.143 8.323 7.635 10.455 9.878 9.033 8.395 7.043 6.425 5.881 5.619 5.265 4.781 6.145 5.300 4.153 5.385 6.432 6.974 9.109 9.182 8.039 7.038 6.550 8.819 9.243 7.018 6.122 6.639 9.214 8.779 7.358 5.248 4.626 5.085 4.894 - 7.249 8.330 8.529 10.677 9.975 7.805 7.162 5.521 5.139 6.541 6.757 5.500 4.920 4.252 5.757 5.859 5.064 4.602 6.561 7.984 8.917 7.583 6.619 6.245 9.086 8.882 5.742 5.143 5.820 8.757 8.447 6.659 5.413 4.592 4.468 4.411 - 7.199 8.365 7.659 9.930 9.965 7.418 5.714 6.032 5.735 5.407 5.380 5.316 4.148 4.317 4.715 5.063 5.187 5.717 6.554 7.144 7.306 7.172 6.018 5.940 6.947 7.264 6.441 5.124 5.117 7.261 7.563 5.609 4.723 4.265 4.178 4.491 - 6.143 6.922 7.610 9.722 8.940 8.467 6.346 6.043 6.318 5.395 4.629 4.646 4.984 4.779 4.738 4.753 4.589 5.697 6.772 6.726 7.145 6.882 6.086 6.145 7.428 6.703 5.627 5.140 6.480 7.707 7.383 5.329 4.620 3.864 4.139 4.623 - 6.862 8.287 8.063 8.635 7.955 8.224 6.523 6.701 6.729 5.483 5.821 5.955 5.804 4.849 4.670 5.360 5.607 6.135 8.304 7.774 7.705 7.270 5.356 5.783 7.896 7.326 5.620 5.110 5.827 7.982 6.811 4.702 5.053 4.122 4.597 3.622 - 6.795 8.816 7.721 6.296 6.871 6.987 6.445 7.387 5.716 5.691 7.143 6.664 5.211 5.734 6.388 5.118 5.117 8.138 8.691 7.212 6.798 7.149 6.624 6.598 7.415 8.368 8.785 7.634 7.896 8.013 6.945 6.305 6.058 5.467 5.027 4.902 - 7.275 8.654 7.645 7.367 7.264 7.977 7.835 8.185 5.889 6.289 6.086 6.877 4.651 5.736 5.453 5.922 6.155 6.837 8.389 7.614 6.398 6.801 6.396 6.472 6.992 8.135 8.748 7.552 7.490 7.881 6.866 6.105 5.443 5.865 4.967 5.048 - 7.235 8.342 8.086 9.269 9.059 9.239 8.187 7.475 5.864 6.928 7.146 7.024 5.346 5.679 4.598 6.066 5.571 6.954 7.104 6.893 6.629 6.295 5.197 5.288 6.489 6.689 6.305 5.607 7.753 7.901 6.773 4.986 4.565 5.679 4.967 4.655 - 7.662 8.352 8.632 10.194 10.036 10.289 8.328 7.394 6.761 7.771 7.419 7.065 4.602 6.424 5.555 6.561 6.611 8.643 7.908 7.513 7.056 5.821 4.876 6.256 6.443 7.495 6.557 5.903 6.988 6.755 6.022 4.208 3.775 5.306 4.487 4.448 - 6.602 7.694 8.890 10.239 10.412 10.679 7.653 6.754 7.146 7.011 7.012 7.011 4.802 5.645 5.483 5.892 8.521 9.650 8.692 6.907 6.492 5.993 5.517 4.733 4.967 6.084 6.212 6.060 6.342 6.284 5.927 3.608 3.722 4.035 2.984 3.116 - 6.290 7.193 8.447 9.470 10.860 11.034 7.329 6.070 6.543 5.994 6.255 5.974 6.063 6.061 6.151 7.638 8.553 9.004 7.907 8.204 6.593 7.761 6.721 4.519 5.823 6.648 5.613 5.122 5.581 6.471 6.975 4.121 4.381 5.401 3.752 2.761 - 5.948 6.257 6.893 7.495 11.069 11.130 7.746 6.999 6.850 7.483 6.953 5.234 6.753 7.519 6.850 8.821 8.650 8.336 7.386 6.899 6.803 6.526 5.551 5.433 5.990 6.446 5.490 4.574 5.728 6.093 6.870 5.546 4.991 5.005 3.727 3.204 - 6.011 5.454 6.554 7.551 10.750 10.667 7.311 6.823 6.803 7.710 8.055 7.585 7.953 7.921 6.581 7.431 6.902 7.169 6.566 6.423 6.192 6.293 5.847 5.199 5.035 5.202 4.817 4.595 6.227 6.706 6.463 6.236 5.205 5.356 3.472 3.758 - 6.482 6.968 8.241 8.693 9.365 9.554 6.512 6.250 5.980 6.104 7.781 7.296 7.388 6.994 6.463 6.472 6.373 6.384 5.919 5.510 6.433 6.724 6.312 5.873 5.978 5.896 5.162 5.627 5.654 6.928 7.573 7.833 7.378 5.233 4.366 3.663 - 7.513 8.040 8.766 8.704 8.979 9.438 7.288 6.179 7.027 8.183 8.162 7.389 6.259 5.370 5.940 6.074 5.408 5.605 6.466 5.420 7.259 8.095 6.738 5.838 5.979 4.976 5.207 5.754 6.176 7.454 6.953 7.046 7.221 6.136 4.504 3.288 - 7.430 7.954 8.945 8.581 9.302 8.578 7.981 6.324 7.269 7.778 8.140 8.911 7.671 6.307 5.997 5.531 5.679 6.443 5.988 5.462 7.332 7.605 6.392 5.596 5.959 5.502 4.563 5.129 6.128 6.710 6.727 6.740 6.805 6.156 5.238 3.719 - 7.284 7.594 9.463 8.933 8.314 8.113 8.171 6.544 7.421 7.300 8.191 9.082 6.452 6.681 7.083 6.302 5.583 5.993 5.382 5.229 6.031 7.204 5.857 6.451 6.425 6.063 5.466 6.244 6.243 6.583 7.210 7.845 7.765 6.516 5.870 4.270 - 6.907 7.412 9.343 8.945 9.037 8.407 7.575 5.158 6.501 6.754 8.019 9.496 8.490 7.051 5.789 5.886 5.489 5.221 4.797 5.312 7.163 8.260 6.466 6.519 6.831 6.505 5.871 5.986 5.986 7.044 7.097 7.559 7.657 6.145 5.870 4.943 - 6.666 7.191 8.922 8.691 9.504 8.892 8.842 7.006 7.263 7.000 7.017 9.194 9.286 8.253 6.595 5.075 5.484 5.494 5.906 4.952 7.466 8.094 6.891 6.636 7.314 6.753 5.791 6.472 6.732 7.851 7.864 7.541 7.704 6.020 5.808 5.222 - 7.398 7.256 8.620 8.059 7.375 8.705 9.379 7.967 8.326 8.473 7.228 7.483 9.710 9.810 8.235 6.499 5.717 5.890 5.627 6.020 7.685 7.211 5.936 6.075 6.917 5.613 5.977 5.870 6.943 6.967 7.512 8.078 7.692 6.419 6.231 5.743 - 7.664 7.712 8.415 8.107 8.909 8.533 8.092 9.386 10.091 8.644 7.454 7.407 8.398 8.745 9.314 7.488 6.703 6.214 6.354 6.691 7.337 7.350 7.014 6.625 7.052 6.873 6.183 7.080 6.984 7.109 7.385 7.679 7.998 6.174 5.607 5.740 - 8.236 8.369 7.869 8.091 9.331 8.969 9.142 8.504 9.468 8.811 7.293 8.445 8.215 8.635 9.992 8.574 7.230 5.475 6.629 6.644 7.559 7.826 7.320 5.968 7.158 6.299 5.222 6.549 7.180 7.463 8.678 6.537 7.978 7.163 6.387 5.853 - 7.523 7.194 7.822 7.111 7.358 8.289 9.907 11.155 11.052 9.011 6.327 7.383 7.262 8.528 9.637 8.972 7.478 6.307 6.647 7.324 8.182 8.671 6.875 6.042 7.921 7.466 6.722 6.897 7.536 7.213 8.570 7.986 7.633 6.408 5.495 5.287 - 5.018 6.806 8.415 7.853 8.231 8.469 8.290 10.149 10.220 7.995 6.123 7.728 7.363 6.325 6.984 8.670 7.142 6.724 6.192 7.587 8.394 8.280 6.241 6.766 7.890 7.128 6.226 5.950 7.037 7.730 8.352 8.123 8.152 6.360 5.638 5.465 - 6.384 6.529 7.677 6.489 7.192 6.891 7.354 8.940 8.125 8.286 6.741 7.720 6.911 7.038 7.904 7.735 7.367 6.620 6.297 7.893 9.054 8.942 7.368 7.139 7.110 6.432 6.673 6.164 7.019 7.534 9.023 8.196 7.988 7.338 5.963 5.468 - 6.551 6.467 7.932 7.387 5.746 6.246 6.346 8.742 8.953 7.108 6.017 5.841 5.765 6.475 6.266 7.273 6.540 7.206 6.079 7.052 7.659 7.909 7.560 6.747 6.645 6.330 6.503 7.007 6.677 7.580 8.660 7.540 8.511 7.643 6.595 6.393 - 7.583 7.162 6.847 7.221 7.058 8.863 8.769 9.019 9.229 7.950 6.826 7.760 7.404 5.583 6.802 8.119 6.413 5.499 6.714 7.295 9.065 9.965 7.498 6.329 8.504 7.194 7.059 8.854 8.096 7.629 9.117 8.534 8.444 7.213 6.386 5.713 - 7.435 6.905 6.940 6.152 6.804 8.266 8.237 9.012 10.730 8.876 7.361 7.618 7.226 6.059 7.014 8.959 8.378 7.149 7.090 7.122 9.509 10.621 8.447 5.978 8.000 8.294 7.106 7.731 7.582 8.611 8.781 8.538 8.857 7.087 7.231 5.838 - 7.092 7.148 7.188 6.674 6.579 6.352 8.995 10.350 11.187 9.507 8.121 8.086 7.786 6.901 7.165 9.324 9.136 7.844 7.297 7.200 7.985 8.842 8.532 7.039 8.111 7.928 7.656 8.140 7.841 9.072 8.998 8.763 8.354 7.455 6.653 6.401 - 6.355 5.857 5.933 5.669 5.128 6.251 8.448 10.367 11.485 9.946 8.082 8.701 8.422 6.997 6.890 8.533 7.906 7.896 7.783 6.821 8.291 8.830 7.775 6.569 7.791 7.975 7.998 8.934 8.214 8.061 8.940 8.489 7.989 7.737 6.502 6.045 - 5.306 6.332 7.218 5.775 6.275 7.756 8.421 10.109 11.653 10.164 7.629 8.974 8.923 7.673 7.458 8.674 8.146 7.628 8.166 7.313 9.409 9.194 7.739 6.370 6.839 8.662 7.342 8.018 8.738 8.666 7.407 8.600 9.562 7.772 6.787 5.916 - 5.477 6.710 8.062 7.027 6.635 7.212 7.950 9.772 11.298 9.741 8.521 8.676 8.905 7.857 7.063 6.966 7.829 8.935 9.692 8.689 8.652 9.022 7.185 7.340 8.071 7.910 7.794 7.890 8.607 8.788 8.791 8.837 9.333 8.034 6.948 6.288 - 6.699 7.271 8.126 6.939 5.636 7.957 7.720 9.178 10.624 9.499 8.602 8.165 6.271 7.096 5.824 6.997 8.703 9.418 9.537 9.417 9.173 8.052 6.428 7.325 8.145 8.146 8.357 8.913 7.972 8.290 8.813 8.532 8.752 7.653 7.054 5.975 - 7.834 7.869 8.275 7.555 5.708 7.695 7.981 8.681 9.252 8.321 8.570 6.908 7.056 6.004 6.461 5.834 8.554 9.207 8.366 8.966 10.636 9.692 6.895 6.006 8.130 8.226 7.516 8.136 8.423 8.814 8.914 8.460 9.090 7.781 6.833 6.028 - 7.887 7.943 8.064 7.082 5.534 6.522 7.554 8.175 9.267 8.565 7.723 6.444 6.832 6.666 5.683 5.958 7.369 7.834 9.210 9.939 8.991 8.670 8.744 7.455 7.604 8.030 7.590 8.403 8.460 8.453 9.820 8.885 9.036 7.910 6.832 6.151 - 7.477 7.963 7.594 7.225 6.671 6.560 9.000 10.595 10.371 8.779 7.838 7.668 7.661 7.067 4.216 5.751 6.903 8.468 9.345 9.436 9.508 7.847 6.974 7.222 7.643 8.393 8.096 7.703 7.314 8.228 9.254 9.134 8.918 7.896 6.964 6.618 - 6.411 7.828 7.212 5.799 6.795 6.934 8.234 10.186 9.949 7.947 5.968 7.127 7.536 5.769 4.572 6.130 6.440 7.447 7.877 9.382 10.011 8.860 6.991 7.947 6.902 7.973 8.402 7.683 7.242 8.053 9.316 9.027 8.682 7.405 7.715 6.654 - 6.114 5.916 5.873 4.982 6.081 6.496 6.476 6.878 8.103 7.231 6.741 5.881 6.615 4.251 4.988 5.980 6.406 7.354 7.016 8.823 9.684 9.565 8.050 7.546 7.730 8.000 7.372 8.193 7.983 8.053 9.089 7.662 9.022 7.764 7.076 6.300 - 4.515 5.657 5.758 6.167 5.722 5.860 7.527 8.785 7.754 6.400 5.462 5.565 5.157 5.606 5.721 6.631 6.988 7.637 7.438 9.417 9.193 9.679 8.194 8.016 8.059 7.086 6.868 7.381 6.929 7.713 8.934 7.914 8.093 7.352 6.473 6.233 - 5.834 5.500 5.956 5.849 5.660 5.187 7.252 8.909 7.455 4.179 4.705 4.283 4.753 6.308 6.563 6.559 7.144 7.026 7.883 8.971 9.950 9.839 7.314 7.550 7.190 7.064 7.099 7.392 7.507 7.684 8.616 8.960 8.162 7.625 7.138 7.341 - 4.520 5.369 6.034 4.743 4.535 6.159 7.061 7.920 6.138 5.610 5.367 6.184 4.906 5.432 6.882 7.126 6.877 7.475 7.562 7.450 9.002 8.452 8.159 7.483 6.932 6.449 7.060 8.510 8.609 8.381 8.734 8.092 7.898 8.022 7.966 6.988 - 3.344 4.474 3.939 3.980 4.713 5.743 7.582 8.974 8.066 5.897 4.957 5.417 4.613 5.570 5.681 6.121 6.521 6.917 7.790 7.732 9.278 8.124 7.293 6.350 7.802 7.257 6.567 8.388 8.965 8.420 8.460 8.572 8.441 7.979 7.422 6.903 - 5.765 6.192 5.317 5.381 5.551 5.170 5.103 8.116 7.751 5.033 5.039 5.853 4.985 6.476 6.373 5.410 5.889 5.394 6.843 8.546 9.590 8.622 7.004 7.631 8.163 6.745 6.575 7.917 8.638 8.976 8.416 8.645 8.434 8.184 7.705 8.071 - 4.679 5.783 5.002 4.076 2.892 5.277 6.311 6.321 6.225 4.535 3.825 4.759 4.628 5.862 6.416 5.023 4.251 6.005 6.438 6.566 7.803 7.884 7.842 7.541 7.034 6.822 7.123 8.015 8.272 8.074 8.787 8.304 8.559 7.447 7.546 7.097 - 5.281 5.638 3.961 3.572 4.056 5.659 6.071 5.289 6.711 5.426 4.315 5.223 4.708 5.006 5.433 5.609 5.348 5.877 6.265 8.709 10.078 9.098 7.480 7.285 8.081 7.656 6.974 7.751 7.799 7.932 8.999 8.412 8.125 7.902 7.716 7.011 - 5.126 6.292 5.863 4.822 1.822 5.889 7.136 6.264 6.756 6.177 5.740 5.324 3.600 4.852 5.855 5.470 5.019 6.626 7.281 9.100 10.170 9.203 7.414 7.021 7.676 6.248 7.305 7.640 8.343 8.670 9.041 8.112 8.281 7.528 8.236 7.955 - 2.377 4.791 5.944 5.209 4.221 4.941 5.544 6.400 6.737 4.739 6.323 6.137 5.252 6.029 6.045 5.371 6.181 6.156 6.663 8.192 10.180 9.077 6.704 7.580 6.413 6.821 6.833 7.357 7.890 8.260 8.982 7.849 8.016 7.520 7.056 6.164 - 4.025 4.771 4.138 3.333 4.316 5.556 6.150 6.534 5.345 5.699 5.900 5.216 6.294 6.397 5.476 5.556 6.049 6.807 6.584 8.502 9.858 8.419 5.864 7.027 7.643 7.320 6.664 7.333 8.054 9.138 7.555 8.474 8.722 7.098 6.987 6.033 - 4.384 4.481 3.085 3.613 5.310 6.114 6.717 4.545 5.607 5.554 5.211 5.156 5.018 4.653 5.432 6.313 6.389 6.274 6.809 8.924 9.833 7.600 7.277 7.816 8.295 6.677 6.601 7.637 8.564 7.930 7.904 7.805 7.631 7.472 6.910 6.369 - 4.842 5.094 5.348 5.318 6.372 7.329 7.124 5.565 7.739 7.887 6.104 4.226 5.517 5.871 6.829 5.600 6.453 5.875 7.326 8.579 10.453 8.216 7.350 7.613 6.453 6.057 7.055 7.280 7.630 7.687 8.830 7.409 7.126 7.108 6.893 5.674 - 7.135 7.274 5.781 6.882 8.798 9.569 9.374 7.265 7.214 6.396 7.316 6.463 6.643 6.957 6.668 5.839 8.413 8.563 8.297 7.635 9.695 8.569 7.369 7.546 6.260 6.918 7.104 7.618 8.257 7.456 8.639 8.251 7.087 6.758 6.963 6.541 - 6.577 7.635 7.207 6.091 9.559 9.924 10.353 9.474 8.501 7.669 8.015 8.339 7.845 7.195 8.235 8.000 10.376 9.926 7.631 7.021 8.702 7.794 7.495 7.066 6.395 7.527 7.189 8.115 7.737 7.359 9.215 8.607 7.379 7.074 7.758 6.806 - 5.633 6.658 6.375 6.444 9.529 9.778 9.571 10.517 10.793 9.552 9.065 8.114 7.080 8.260 8.933 8.003 10.234 10.337 9.065 9.273 9.712 8.682 6.520 7.439 6.563 6.343 6.982 7.361 8.352 7.156 8.935 7.898 7.065 7.199 7.024 5.959 - 5.887 6.774 6.076 7.001 9.843 11.053 10.344 11.000 11.387 9.251 8.671 7.027 6.089 8.081 8.640 9.081 9.991 9.502 8.551 8.432 8.618 8.878 7.869 7.224 7.772 6.953 7.432 7.300 9.200 8.099 8.273 7.470 6.493 6.387 6.818 6.366 - 6.979 7.955 7.823 6.961 9.293 10.680 10.829 11.367 10.563 9.989 8.365 7.545 7.957 8.579 9.302 9.218 10.044 9.354 8.597 8.402 8.458 7.446 8.204 6.963 7.502 7.874 7.000 7.747 8.838 7.746 7.679 7.315 7.158 6.152 7.129 6.497 - 7.338 8.041 7.469 6.422 9.003 10.263 10.526 10.799 10.594 9.341 8.375 7.667 8.325 8.235 9.143 9.457 10.267 9.658 8.534 8.890 9.551 9.022 9.019 7.802 7.852 8.153 7.981 8.010 8.540 8.499 8.066 8.072 7.953 7.313 6.898 6.012 - 5.947 7.098 8.203 7.172 10.527 11.840 11.500 11.191 9.649 9.086 9.291 8.257 7.500 9.478 9.103 8.686 10.785 10.475 8.286 8.572 9.409 8.409 7.763 7.311 8.877 9.035 8.007 7.936 8.267 7.723 7.807 7.140 7.787 7.534 6.865 6.002 - 4.726 7.475 8.689 8.265 11.360 12.194 11.142 11.429 10.331 8.791 9.286 7.865 6.791 8.725 9.675 9.849 9.646 10.677 9.652 9.636 9.913 8.101 6.771 6.895 8.530 8.318 7.959 8.261 8.367 8.219 8.526 8.094 7.265 6.662 6.820 6.413 - 7.123 7.827 8.469 7.846 10.761 11.036 10.900 10.803 10.339 9.189 7.303 7.548 7.297 7.457 8.369 9.721 9.700 9.966 9.532 9.263 10.010 8.347 7.618 8.251 8.448 8.903 7.875 8.328 8.790 8.039 8.634 7.430 7.306 6.462 6.678 5.661 - 7.723 7.896 8.663 8.881 10.756 11.212 10.480 9.624 9.235 8.548 8.158 7.264 6.680 7.618 8.273 9.795 10.784 10.152 9.126 9.008 8.911 9.594 8.494 8.089 8.742 8.553 8.299 7.895 8.170 8.261 8.267 7.594 7.308 6.552 6.143 5.583 - 8.532 8.756 8.704 9.547 10.666 10.631 10.150 10.593 9.553 7.775 7.090 6.904 5.415 5.412 7.716 8.682 8.361 9.696 9.809 9.574 9.287 9.858 8.902 9.272 9.673 9.804 9.212 8.886 8.591 9.224 8.616 7.768 7.114 6.356 6.210 5.799 - 8.543 8.445 7.597 7.230 9.801 9.991 9.374 10.616 9.208 7.459 7.115 6.553 6.219 7.969 7.843 8.187 8.343 9.049 9.063 8.660 9.027 8.488 7.790 7.736 8.673 9.566 9.233 9.806 8.885 9.246 8.633 7.601 6.769 6.460 6.132 5.440 - 8.420 8.223 8.206 9.257 9.935 10.573 10.137 10.224 9.150 7.476 6.798 6.354 5.663 6.395 6.381 7.511 8.397 9.138 7.856 8.841 8.852 8.153 8.337 7.471 7.806 8.610 7.612 7.338 7.173 7.046 7.002 6.837 6.633 6.604 6.544 5.138 - 8.350 8.120 6.135 6.565 6.984 8.924 8.393 8.006 7.718 7.092 6.685 5.452 5.403 4.924 7.132 8.426 8.794 8.534 7.627 8.027 8.255 7.735 7.257 6.513 7.505 7.707 7.187 7.647 7.011 7.110 8.017 6.918 6.330 5.661 5.715 5.033 - 7.376 7.324 6.934 7.140 7.645 9.141 9.122 9.734 9.580 7.831 5.785 6.117 6.648 4.778 7.076 7.896 8.468 8.678 7.638 8.753 8.358 7.726 7.286 6.141 7.568 7.045 6.360 6.786 6.764 6.856 7.281 6.865 6.808 6.153 5.641 5.244 - 5.432 6.562 7.518 7.479 8.261 8.770 8.224 8.321 8.301 5.899 5.886 7.042 5.981 6.001 5.053 8.463 9.603 8.775 8.073 7.267 8.069 6.828 6.358 7.508 7.936 7.293 6.144 5.941 7.003 6.859 7.724 6.792 6.598 5.950 5.314 4.758 - 6.245 5.425 6.969 7.612 7.140 7.389 7.282 8.809 8.009 5.964 6.449 6.592 5.587 5.841 6.325 7.477 7.917 9.188 8.889 8.808 9.140 7.654 6.653 8.086 8.104 7.328 6.351 7.115 7.774 7.825 6.573 6.534 6.868 8.231 7.621 5.641 - 4.954 5.454 7.029 8.017 9.277 9.337 7.917 8.394 7.723 6.112 7.008 6.421 5.653 6.397 6.064 5.554 7.038 9.136 9.146 10.092 9.584 8.480 7.093 6.770 7.703 7.379 7.579 7.115 8.010 8.427 7.194 6.608 6.922 8.634 9.095 7.154 - 5.113 5.256 6.319 8.830 8.779 8.777 8.503 7.541 7.554 6.163 7.419 7.496 6.708 5.757 5.356 7.102 7.687 8.344 8.377 9.030 8.210 6.849 7.098 6.962 9.375 9.101 8.471 8.807 7.590 7.333 6.747 6.803 6.905 7.877 8.318 6.959 - 6.671 6.533 4.196 8.821 9.806 8.574 7.421 5.943 7.327 5.500 5.311 5.837 5.706 4.436 6.010 6.779 6.982 8.503 8.374 9.002 8.707 8.832 7.384 7.455 8.555 9.349 9.855 10.152 8.605 7.475 7.501 7.393 7.549 7.486 6.680 5.620 - 7.399 7.547 5.718 9.434 11.209 10.607 7.705 8.833 8.673 6.307 6.096 6.753 6.063 4.970 6.275 6.966 7.673 8.688 8.829 8.453 9.153 9.798 7.909 6.835 8.859 9.284 10.932 11.383 9.842 8.741 8.175 7.483 7.991 8.568 7.140 5.204 - 7.684 7.716 5.656 6.968 9.507 9.158 8.085 9.298 8.123 6.737 5.931 5.502 5.904 5.865 5.606 5.878 6.076 8.219 9.098 9.282 9.908 10.256 6.948 7.602 9.206 9.539 11.174 11.063 9.643 9.061 7.876 7.952 8.270 8.511 6.828 5.555 - 8.137 7.738 5.915 8.470 9.582 9.651 9.063 9.921 8.143 5.554 5.599 4.582 4.683 6.286 5.362 6.331 6.333 7.083 7.796 8.482 10.372 9.968 7.404 6.715 9.069 9.501 10.645 10.227 9.080 8.687 8.561 8.317 7.552 7.975 5.934 4.987 - 7.058 6.954 5.058 8.675 9.240 9.265 9.701 9.804 6.883 5.511 5.365 5.548 5.189 5.887 6.509 6.316 6.382 6.791 8.678 8.622 9.738 9.425 8.474 7.763 8.400 8.792 10.638 10.937 9.464 9.273 8.652 7.998 8.030 8.070 6.863 4.119 - 5.860 5.511 6.485 9.276 10.111 9.126 9.574 9.602 7.828 6.905 5.615 5.510 5.358 6.541 7.023 6.855 6.824 8.309 8.893 8.365 9.296 9.159 8.665 8.123 8.012 8.700 10.649 10.882 9.841 9.540 8.944 8.707 7.259 7.024 6.545 4.621 - 3.110 5.665 6.612 9.647 10.359 8.368 10.300 11.016 8.642 8.062 7.301 5.637 6.214 6.751 6.158 6.424 6.638 6.951 8.464 8.747 10.573 9.509 8.380 7.637 8.705 9.152 9.770 9.711 9.167 9.342 9.003 8.133 8.014 7.776 6.685 4.132 - 5.194 4.429 6.260 7.682 8.667 7.569 9.794 10.187 6.916 7.537 6.081 5.064 5.372 5.854 5.186 5.178 6.914 7.681 7.821 8.904 9.618 7.857 7.828 6.961 8.266 7.677 9.805 8.898 7.215 7.473 8.987 8.322 7.514 6.170 5.721 4.866 - 5.787 5.844 7.922 9.586 9.012 7.710 8.334 9.216 7.794 6.550 7.247 6.326 5.951 6.413 5.791 6.401 6.422 8.220 8.410 8.922 8.613 7.754 6.975 6.291 7.017 7.251 8.527 8.385 6.548 6.828 8.371 8.525 7.366 6.261 5.151 4.866 - 5.200 6.040 8.432 9.821 9.097 8.779 9.096 9.219 7.068 6.806 5.944 5.954 6.538 5.987 6.439 6.808 6.068 8.494 8.250 9.221 9.080 7.581 6.328 6.028 7.450 6.977 7.858 7.414 7.268 7.398 7.292 8.051 7.392 6.592 4.475 4.068 - 4.984 7.175 8.028 9.822 9.856 8.476 7.162 7.788 6.473 6.492 5.230 5.496 5.911 6.837 5.626 5.565 6.511 7.557 8.473 9.355 8.775 7.165 6.245 6.521 7.932 6.748 8.207 7.962 7.378 7.294 7.628 7.518 6.190 5.937 5.447 3.996 - 4.681 4.834 7.258 7.802 9.079 9.099 7.292 6.851 6.757 5.478 6.060 5.170 5.296 6.600 5.134 6.142 6.264 5.980 6.807 9.029 8.199 6.657 6.205 4.522 6.717 6.252 8.612 7.762 6.647 6.465 6.783 6.824 6.169 4.842 4.467 3.625 - 6.241 6.426 6.497 7.583 9.198 8.909 8.780 5.925 6.663 6.713 6.433 5.809 4.805 6.296 5.978 5.999 6.895 7.472 8.182 7.668 7.542 6.038 5.514 4.722 6.746 6.647 6.692 6.770 5.838 6.298 5.971 5.659 5.711 5.863 4.588 3.239 - 3.922 5.986 7.645 7.344 8.539 9.506 8.338 7.041 6.469 6.215 6.486 3.986 4.536 6.696 6.047 5.504 6.252 7.474 8.523 8.502 8.508 7.017 6.085 6.200 6.146 6.411 7.409 7.570 6.415 6.825 7.223 6.409 6.374 6.004 5.230 3.740 - 4.612 5.886 6.895 8.104 9.097 8.685 7.740 6.574 5.942 6.582 5.488 5.960 5.092 5.730 5.648 5.489 5.410 6.583 7.441 7.986 7.503 6.413 6.141 6.429 6.298 6.853 7.292 6.412 6.477 6.258 6.039 5.958 6.683 6.554 4.569 3.213 - 5.305 5.257 5.892 7.933 7.682 7.885 7.233 7.199 6.672 6.135 5.833 4.974 5.615 5.001 4.972 5.067 6.402 6.516 7.037 7.867 6.568 6.558 6.930 6.216 5.291 5.333 5.090 5.196 6.095 5.832 5.264 5.876 6.009 5.072 4.470 3.169 - 5.438 4.701 5.378 8.185 8.032 6.440 6.771 6.483 6.367 6.197 4.712 5.320 5.131 5.171 5.446 4.802 4.002 5.916 7.397 8.154 7.562 5.613 5.943 5.662 4.854 5.218 5.772 5.654 5.336 5.227 4.694 5.281 5.918 6.199 4.118 2.927 - 4.660 6.799 6.853 6.868 7.472 6.561 6.529 6.751 6.074 6.145 4.261 3.215 4.540 5.395 6.146 6.437 6.507 8.182 8.065 7.969 6.695 5.140 5.360 4.757 4.738 6.306 6.148 6.119 6.783 6.702 5.642 5.918 6.242 5.439 4.042 3.633 - 4.556 5.406 6.164 6.821 6.662 6.541 7.345 6.602 5.070 4.133 4.337 5.619 5.473 6.434 6.277 5.355 6.256 8.379 8.419 9.135 7.602 5.447 5.024 4.647 6.563 7.233 5.973 5.919 6.568 6.694 5.925 6.001 5.943 5.670 4.590 3.512 - 2.485 5.156 7.181 8.018 6.880 4.715 6.206 7.722 7.090 5.720 5.770 5.715 5.946 4.562 5.644 5.379 6.723 7.530 6.959 7.266 5.903 5.847 5.266 4.960 5.339 5.723 5.262 5.837 5.859 6.052 6.050 5.976 4.698 4.167 4.333 3.089 - 4.736 5.597 6.664 7.318 6.596 5.499 6.366 6.947 7.321 7.460 5.939 4.990 5.703 5.258 5.579 5.574 8.196 8.141 5.877 6.514 6.589 5.281 4.339 5.205 5.344 6.632 5.855 6.367 6.029 6.748 5.602 5.261 5.583 3.951 3.510 3.206 - 5.919 4.709 6.247 7.479 6.479 5.235 6.928 8.653 8.650 7.502 7.252 6.584 5.484 4.320 4.774 5.986 8.868 8.715 6.765 7.147 7.316 6.035 5.673 6.543 6.045 5.994 5.355 5.321 5.980 6.367 5.315 4.650 5.103 3.777 3.538 2.747 - 6.023 4.726 3.878 7.517 7.475 4.642 6.683 7.326 8.821 8.409 6.343 6.015 4.494 6.431 7.112 7.167 9.979 9.245 6.571 7.418 6.428 6.157 4.994 4.386 6.152 6.380 5.439 5.672 6.237 7.213 6.076 4.814 5.030 3.952 3.620 2.828 - 6.480 5.053 4.428 6.979 6.512 5.666 7.152 6.148 8.470 9.337 7.007 5.292 4.870 6.359 6.412 6.835 10.450 10.087 8.532 7.869 6.600 5.722 5.921 4.744 7.560 8.530 6.915 6.153 7.702 8.767 8.022 5.507 5.239 5.929 4.105 2.831 - 7.013 6.239 4.685 5.651 6.680 6.069 8.054 7.993 7.817 8.905 6.300 6.366 5.935 5.233 6.660 7.313 10.897 11.005 8.758 7.829 6.397 6.258 6.046 5.763 7.487 8.764 7.270 6.138 7.915 9.359 8.880 5.855 5.307 6.435 4.346 2.375 - 7.206 6.836 6.162 6.815 6.889 6.034 9.267 9.767 8.787 9.107 6.306 5.488 5.180 7.192 7.491 7.923 8.549 10.056 8.817 8.221 7.341 6.069 5.878 6.731 8.194 7.693 6.820 6.422 6.803 8.259 8.026 6.555 6.429 6.623 4.095 2.498 - 7.095 6.422 5.809 7.987 7.194 6.124 8.833 8.931 8.683 8.595 5.388 4.180 5.364 5.962 5.817 5.355 8.709 9.402 8.551 7.679 6.584 5.429 5.616 6.561 7.429 6.484 6.033 5.167 5.892 6.755 6.778 6.235 5.641 4.757 2.734 2.194 - 6.257 6.217 7.109 9.101 8.397 6.357 7.543 7.901 7.627 7.392 4.716 4.557 4.316 5.654 5.107 6.453 6.694 8.556 7.843 7.697 6.449 5.545 4.237 5.882 5.654 5.844 5.641 4.241 5.062 6.769 6.691 6.458 5.116 3.756 3.363 2.287 - 3.719 3.308 7.286 8.692 7.761 7.152 7.930 7.584 7.509 8.172 4.876 5.186 4.810 4.924 4.815 6.042 6.461 7.878 6.641 6.215 5.332 6.139 4.495 4.955 4.781 5.505 4.801 4.205 3.596 5.509 5.683 5.299 5.235 3.972 3.638 2.390 - 2.710 3.932 5.515 6.118 5.604 6.227 6.544 6.583 6.955 7.699 5.367 4.724 4.285 4.094 4.324 5.857 7.055 8.724 6.597 5.389 6.006 5.737 5.053 5.119 4.962 5.304 3.553 3.720 3.226 4.003 5.442 4.907 4.570 4.382 3.384 3.164 - 5.689 5.066 6.011 6.482 5.286 5.359 7.398 6.729 5.748 7.157 5.696 4.604 4.998 5.548 5.164 4.839 6.751 8.047 6.038 4.903 4.834 4.689 4.931 5.296 6.034 4.663 3.546 3.629 3.649 3.942 4.527 4.411 4.623 4.611 4.343 3.645 - 6.225 5.462 5.954 7.354 7.052 5.017 6.864 5.807 5.744 6.570 3.911 3.842 4.193 5.677 5.295 5.023 6.401 6.635 6.310 6.040 4.774 4.860 5.954 5.854 5.707 5.995 6.448 6.983 7.442 7.315 7.193 6.383 5.361 5.981 6.050 4.675 - 4.839 5.712 5.292 7.655 7.433 3.822 6.347 6.093 5.595 6.014 4.292 3.057 4.324 5.566 5.302 4.212 4.724 4.574 5.462 5.010 4.623 4.869 5.020 4.959 5.783 5.237 5.563 5.485 5.975 5.573 5.568 5.302 4.271 4.824 5.364 4.142 - 4.573 3.840 4.228 7.184 7.114 4.505 5.766 4.732 3.736 4.697 3.893 3.903 3.905 4.997 4.627 4.520 4.302 4.565 5.621 3.665 4.135 5.070 5.734 4.193 6.079 5.456 4.751 5.134 5.004 4.910 5.047 4.839 3.624 4.352 4.638 3.719 - 5.616 4.657 4.942 5.963 6.416 4.787 6.267 5.902 3.865 4.069 3.984 3.722 3.038 5.062 4.907 4.263 4.852 5.396 5.585 4.987 4.707 5.788 5.270 5.087 6.075 6.142 6.461 5.878 4.995 5.729 5.884 5.235 4.450 4.156 4.399 3.558 - 6.405 5.441 6.019 7.929 7.204 6.690 6.742 4.399 4.343 4.147 4.673 4.325 3.723 3.597 2.562 5.169 4.769 4.778 5.822 4.891 4.900 6.179 5.688 5.670 6.086 6.518 7.249 5.955 5.826 6.524 7.516 5.827 3.930 4.525 5.053 3.950 - 5.299 4.328 5.014 7.880 7.369 5.438 5.211 4.142 3.994 3.686 4.507 3.787 3.939 3.991 3.961 5.101 6.291 6.147 5.398 5.583 6.859 6.716 5.675 5.670 6.226 6.608 6.040 5.175 5.161 6.427 7.192 5.828 3.552 4.206 4.560 3.828 - 2.387 3.680 4.116 7.529 7.373 5.068 5.747 4.981 4.531 5.011 6.116 5.458 3.804 5.127 4.799 4.316 4.244 5.681 5.668 5.743 6.757 7.338 5.662 5.911 6.132 7.155 6.239 5.061 4.629 5.795 6.122 4.471 4.283 4.157 4.696 4.268 - 3.761 4.878 5.037 6.786 7.126 5.266 4.777 3.744 5.040 5.273 5.846 5.756 5.383 5.323 4.251 4.854 5.960 5.949 5.752 5.671 6.865 7.402 5.955 5.973 6.661 7.361 6.640 6.701 5.127 5.344 6.366 4.855 2.981 3.633 4.533 4.479 - 5.496 5.383 4.221 7.031 6.546 4.595 4.636 3.768 6.491 6.947 6.141 6.139 5.430 6.489 5.029 4.675 4.899 5.977 6.249 6.729 8.025 8.015 6.699 6.172 7.067 7.279 6.891 6.808 5.768 6.601 6.670 5.867 4.462 3.994 4.220 4.496 - 4.364 4.460 7.017 8.287 6.850 3.206 4.369 5.346 6.499 6.782 6.011 5.889 4.812 6.116 5.564 5.837 5.311 5.856 6.337 6.677 7.954 8.558 7.970 6.699 6.875 7.261 7.705 7.362 5.869 6.695 6.708 6.318 4.365 3.951 3.996 4.445 - 5.409 5.217 7.627 8.452 6.590 5.829 5.873 7.793 8.261 7.943 7.858 5.834 4.413 3.841 4.288 6.138 5.572 5.015 6.205 6.881 8.244 8.792 7.886 7.521 7.157 7.784 7.664 7.094 6.285 6.267 7.056 7.080 4.743 4.123 3.946 4.244 - 5.185 4.172 7.195 7.321 5.242 6.827 7.189 8.790 8.632 8.298 6.870 5.966 5.657 7.025 6.125 6.864 6.418 6.985 6.802 6.847 8.686 9.299 7.699 7.919 6.937 7.530 8.066 7.480 6.761 6.958 7.198 7.124 5.007 4.062 3.674 3.456 - 4.498 5.027 6.761 5.692 6.308 6.095 6.186 8.046 7.022 6.473 7.052 6.541 5.514 6.143 5.055 5.577 6.084 6.377 6.006 6.048 7.158 7.988 7.768 7.425 7.473 6.535 7.078 6.614 6.211 6.233 7.138 6.040 4.802 2.958 2.970 3.054 - 3.024 5.197 7.244 7.044 5.417 5.532 6.103 8.402 8.077 7.752 7.521 6.384 5.738 6.129 5.095 4.855 5.251 6.349 6.223 6.688 7.391 7.861 7.928 8.075 7.836 7.818 8.233 7.376 6.919 7.173 7.365 6.171 5.477 4.307 3.869 3.075 - 5.180 4.608 6.911 6.731 4.864 5.507 6.162 8.445 7.888 8.293 7.953 6.784 5.603 6.551 5.458 4.789 4.401 6.056 6.490 5.752 7.596 8.002 8.221 8.821 8.289 8.117 7.619 7.345 6.396 5.897 7.188 6.667 6.171 4.317 3.654 3.966 - 6.038 4.630 7.192 7.812 6.047 6.844 6.162 8.853 8.836 8.422 7.438 7.693 7.068 5.453 4.332 3.605 5.212 5.665 4.253 6.368 6.820 7.701 8.403 7.854 7.595 8.046 8.265 7.934 6.535 6.375 7.739 7.352 6.231 4.806 3.602 3.180 - 6.027 4.509 7.323 7.935 5.802 6.538 5.330 7.964 7.881 8.053 8.252 7.728 7.037 5.488 5.120 3.641 3.249 5.151 4.996 5.117 6.087 6.441 6.156 6.991 6.766 7.294 8.331 7.404 6.446 6.106 7.312 7.293 6.161 5.142 3.436 2.729 - 5.846 5.450 6.403 6.847 5.247 6.822 6.099 7.927 7.655 6.325 6.772 5.156 5.040 4.791 4.811 3.767 4.494 4.610 5.090 4.526 5.179 6.426 6.029 7.843 7.115 7.574 7.246 6.494 6.092 5.681 6.750 6.769 5.556 4.934 3.955 3.106 - 4.095 3.169 5.008 6.462 5.073 5.954 5.258 7.037 7.963 7.246 5.761 5.482 5.109 5.524 5.107 3.434 4.525 5.375 5.142 4.955 4.035 5.755 5.850 8.030 7.881 7.465 6.527 6.510 5.652 5.171 5.863 5.909 5.298 5.061 4.410 3.711 - 5.242 4.516 5.820 6.332 4.557 5.802 5.638 5.732 6.962 6.263 5.915 5.841 5.493 5.864 5.012 4.921 5.097 4.807 4.937 4.563 4.916 6.453 5.695 6.216 6.604 5.873 5.267 6.142 5.134 4.760 5.989 5.841 4.478 4.209 3.811 3.336 - 5.403 4.216 6.530 6.898 5.394 5.155 5.564 6.313 5.611 6.032 6.614 5.257 4.182 4.206 3.509 5.013 5.183 5.523 6.635 6.469 7.123 6.212 6.112 7.408 7.160 5.514 5.553 5.996 5.007 4.068 5.035 5.596 4.501 3.894 3.495 3.562 - 6.784 5.593 5.505 5.863 4.152 4.594 5.366 3.893 4.351 5.607 5.893 6.032 6.064 5.599 5.887 5.701 6.461 5.788 8.333 7.864 7.245 7.519 6.841 7.666 7.612 6.638 6.672 6.584 5.841 6.127 6.024 6.126 5.915 5.722 5.412 4.839 - 5.401 4.236 4.967 4.984 4.787 5.253 5.074 5.316 5.506 5.632 6.164 6.805 5.074 5.800 6.369 5.793 5.737 6.518 8.846 8.438 7.942 6.638 6.795 7.298 7.441 7.802 8.286 7.875 8.118 7.075 8.042 8.490 7.625 7.353 8.173 7.528 - 3.519 4.409 4.317 5.756 6.267 6.484 4.957 4.493 4.637 5.300 5.440 6.327 5.493 5.773 5.829 6.820 7.668 6.905 8.043 7.664 8.012 7.550 7.751 8.044 9.639 9.543 9.687 9.164 8.622 7.593 9.819 10.004 8.665 7.803 9.095 8.813 - 3.265 4.822 6.000 6.414 5.898 6.107 5.480 5.774 6.076 5.182 6.704 5.521 4.785 6.456 6.480 5.377 6.571 7.494 7.880 8.145 9.665 9.689 8.697 8.846 10.020 9.664 10.324 9.852 9.840 8.725 9.741 10.537 9.617 9.046 9.011 8.861 - 4.473 5.410 5.834 5.236 5.460 6.309 6.653 6.858 6.738 6.263 7.430 6.400 6.880 5.966 5.591 5.471 8.642 8.524 8.509 8.095 9.188 8.947 8.667 7.732 8.693 9.199 10.537 11.058 10.287 9.281 10.390 10.634 9.391 9.438 9.757 9.902 - 6.546 6.774 6.522 5.724 5.518 6.829 7.010 6.606 6.639 5.885 6.109 6.018 6.176 6.324 6.474 7.500 7.770 8.251 9.335 9.846 8.301 10.398 10.264 9.055 9.786 9.704 11.053 10.704 10.085 9.710 9.450 10.843 10.130 10.361 10.147 10.010 - 5.499 5.660 6.177 6.570 7.227 7.290 6.259 6.838 6.063 5.939 7.535 8.093 7.250 5.803 6.002 7.408 7.548 8.401 10.732 10.625 9.117 9.492 9.391 9.935 9.744 10.338 11.344 9.920 8.767 9.270 10.305 10.686 10.497 9.468 9.728 9.477 - 6.999 7.277 6.864 5.423 7.547 7.825 7.129 6.553 6.789 7.001 7.753 8.243 8.153 8.224 7.966 7.000 8.725 9.888 10.943 10.608 8.982 9.429 8.544 8.738 8.856 9.145 10.138 9.320 8.537 8.414 10.429 10.596 10.012 8.187 7.378 7.595 - 9.122 8.530 7.645 7.257 6.781 8.196 6.854 7.436 7.632 7.446 6.989 7.911 8.018 7.771 7.579 7.562 7.924 9.833 9.537 8.855 7.666 8.563 7.588 7.587 7.213 8.301 8.906 7.218 6.280 6.546 8.160 8.951 8.823 6.412 7.130 7.403 - 12.404 12.395 11.403 11.345 12.612 12.576 12.566 13.151 11.827 10.113 10.284 8.335 8.486 7.318 8.118 7.971 8.821 10.447 10.813 9.617 7.850 8.087 8.302 8.446 8.255 9.546 9.645 8.325 6.635 7.605 9.654 10.424 10.293 8.983 7.517 7.736 - 13.270 12.958 12.717 12.379 13.408 14.727 15.368 15.699 13.961 12.282 11.631 11.376 9.848 10.633 10.436 11.211 11.794 13.378 12.814 11.092 9.949 9.498 10.109 10.239 9.143 11.253 11.392 9.860 9.029 9.467 12.205 12.651 12.274 11.131 8.829 8.424 - 12.590 12.675 12.763 12.657 13.656 14.928 16.053 16.862 15.567 13.539 12.483 12.086 11.371 11.686 11.994 12.450 13.563 15.222 14.210 12.437 11.347 10.819 10.879 10.112 9.261 11.176 11.265 10.444 10.333 10.582 13.660 13.911 13.516 12.364 8.647 7.006 - 12.593 12.329 11.975 12.442 12.955 13.731 15.251 16.395 14.650 14.062 12.480 10.050 8.742 8.300 9.985 11.016 12.597 14.806 13.453 12.023 11.042 10.576 10.169 8.548 7.906 9.456 9.355 9.538 9.900 9.775 11.253 11.545 9.878 9.050 7.487 6.410 - 12.685 12.081 12.209 12.442 12.631 13.311 15.110 15.124 15.165 12.952 12.005 10.778 9.318 8.947 10.286 10.819 12.552 14.503 12.790 11.612 11.247 11.152 10.947 9.462 9.805 10.439 9.600 8.509 9.691 10.834 11.786 12.060 10.538 8.932 7.304 6.438 - 12.606 11.700 11.908 11.919 12.190 12.873 14.094 15.435 14.939 13.804 12.138 9.925 9.460 10.319 10.942 11.719 13.480 14.213 12.206 11.319 10.940 10.942 10.891 8.980 8.840 10.013 9.613 8.915 9.669 10.206 11.174 11.472 10.696 10.274 8.059 6.729 - 12.710 11.658 11.858 11.765 11.888 12.650 14.325 15.548 15.366 14.083 12.255 10.825 10.210 10.861 11.446 12.146 14.071 14.610 12.391 11.493 10.961 10.974 11.288 9.682 8.618 9.596 9.833 9.153 9.857 10.354 11.602 11.788 11.071 10.816 7.687 7.151 - 12.769 11.970 12.029 11.963 11.976 13.032 14.256 15.964 16.073 14.740 13.413 11.483 11.582 11.403 12.067 13.012 14.738 14.833 12.792 11.931 11.168 11.339 11.772 10.409 9.589 10.074 10.246 9.363 10.298 10.964 12.324 12.426 11.349 10.862 7.896 7.251 - 12.860 12.381 12.281 12.172 12.384 13.282 14.502 16.264 16.271 15.315 14.109 12.057 12.292 12.030 12.791 13.935 15.309 14.977 13.144 12.327 11.698 11.886 12.081 11.815 11.579 10.569 10.174 9.946 10.139 10.560 12.722 12.894 12.973 12.176 8.230 7.216 - 12.927 12.444 12.272 12.047 12.495 13.301 14.243 16.190 16.202 15.256 14.476 12.218 12.348 12.126 13.170 14.555 15.928 14.836 13.193 12.256 11.713 11.617 12.153 12.842 12.313 10.905 10.734 11.206 11.006 10.747 12.597 12.939 12.896 12.184 8.673 8.576 - 12.931 12.382 12.292 11.922 12.624 13.282 14.049 16.179 16.325 15.112 14.647 12.456 12.369 12.451 13.593 14.742 15.616 14.715 12.995 12.207 11.639 11.723 12.816 13.740 12.840 10.524 10.979 11.332 10.408 9.559 12.200 12.722 12.442 11.774 8.839 8.175 - 12.843 11.953 12.008 11.629 12.456 13.026 13.307 16.243 16.250 14.973 14.389 11.913 12.323 12.348 13.379 14.468 15.503 13.970 12.131 11.652 11.208 11.693 12.571 13.183 12.112 10.160 10.726 10.971 9.957 8.280 12.357 12.679 12.252 11.704 8.585 8.534 - 12.783 11.699 11.992 11.520 12.169 13.012 13.341 16.065 16.151 14.765 14.179 11.736 12.228 12.322 13.424 14.570 14.867 13.382 11.790 11.452 11.050 11.457 12.397 12.982 11.943 9.917 10.427 11.509 9.610 8.206 12.321 12.647 12.233 11.903 8.397 9.188 - 12.791 12.002 12.067 11.743 12.129 13.141 13.829 16.130 16.217 14.843 14.210 11.989 12.373 12.526 13.739 15.261 14.800 13.056 11.864 11.445 10.961 11.311 12.333 13.280 12.345 9.920 10.520 11.852 10.037 8.579 11.583 11.955 12.112 11.696 8.414 9.291 - 12.829 12.333 12.212 11.878 12.349 13.255 14.095 16.102 15.995 14.791 14.215 12.010 12.474 12.632 14.233 15.381 14.382 12.905 12.131 11.529 11.040 11.496 12.454 13.075 12.044 9.790 10.286 11.896 10.439 8.714 11.376 11.909 11.646 11.246 7.650 7.213 - 13.064 12.568 12.351 11.948 12.393 13.301 14.268 15.984 15.820 14.615 14.115 11.918 12.576 12.844 14.340 14.559 13.960 12.475 11.728 10.971 11.161 11.592 12.274 13.170 12.681 9.806 10.914 11.986 10.245 8.730 11.224 12.197 11.913 11.513 7.984 7.475 - 13.070 12.514 12.273 11.612 12.189 13.004 14.369 15.675 15.617 14.404 13.969 12.191 13.129 13.611 14.529 14.081 12.552 11.786 11.214 10.971 11.079 11.458 12.334 13.199 12.624 10.370 10.408 11.350 10.469 7.220 10.135 11.529 11.501 11.104 8.607 6.755 - 13.116 12.062 11.831 11.274 12.018 12.742 14.391 15.241 15.213 14.329 13.652 12.474 13.159 13.886 14.625 12.930 11.605 11.074 10.354 10.412 10.433 10.750 11.370 12.563 12.884 11.330 9.371 10.929 10.381 7.322 9.422 11.135 11.099 10.731 9.623 7.988 - 12.878 11.833 10.920 11.590 11.072 12.877 14.365 14.810 14.369 14.120 13.132 13.942 13.374 14.272 12.781 11.527 10.603 10.202 10.139 10.625 10.545 10.746 11.101 12.012 12.942 11.592 8.737 10.751 10.283 7.244 8.635 10.990 10.649 10.252 10.100 9.499 - 12.461 11.987 11.926 10.500 11.039 12.461 13.032 13.925 14.341 13.730 13.955 14.101 14.046 13.141 9.538 6.825 8.432 9.780 9.766 10.391 10.289 10.337 10.470 10.461 11.565 11.240 8.195 10.699 10.297 6.407 6.669 8.986 9.044 9.089 10.583 11.107 - 11.698 11.835 11.957 10.857 10.322 11.304 11.558 12.072 12.234 12.445 12.553 12.003 11.434 9.360 7.764 6.757 6.724 8.731 9.095 8.517 8.327 8.445 8.506 9.649 10.150 10.771 9.870 8.500 8.680 6.590 7.687 8.913 9.218 9.565 11.087 11.345 - 10.325 9.321 9.395 9.249 8.618 8.789 8.531 9.761 10.462 10.272 8.037 8.284 9.246 7.863 7.076 8.208 7.516 8.146 8.879 8.635 8.887 8.663 9.253 9.677 10.342 10.760 10.077 7.249 7.896 7.789 7.717 9.250 10.181 9.282 9.947 9.524 - 9.446 8.907 8.930 7.830 6.202 7.277 7.333 8.218 8.264 8.881 9.019 8.920 8.554 7.798 6.428 7.836 7.686 7.610 8.291 8.362 7.320 6.931 8.159 8.535 8.530 9.262 9.113 7.813 8.743 7.767 6.976 9.249 10.061 9.285 8.314 8.973 - 10.914 9.498 9.192 7.132 5.324 6.823 7.699 8.650 7.876 8.317 9.049 8.178 8.185 7.282 6.424 7.654 7.227 8.350 8.085 7.749 6.250 6.885 8.236 8.040 7.902 7.948 9.527 8.396 8.621 8.372 8.924 9.741 10.056 9.967 8.420 7.850 - 10.878 10.063 9.115 6.476 7.626 8.773 9.224 8.092 7.229 5.971 7.127 6.717 6.493 6.906 6.359 6.082 6.953 7.770 7.920 7.830 6.114 7.370 8.650 8.790 7.752 9.075 8.110 8.146 8.644 9.205 9.111 9.533 11.169 10.565 9.183 8.569 - 11.243 9.075 8.204 8.214 7.190 8.169 8.627 8.134 8.221 6.517 7.067 5.825 6.296 6.979 6.812 5.656 6.259 6.281 7.346 7.580 7.201 8.311 9.466 8.844 9.027 9.140 9.416 8.870 8.652 8.916 8.789 10.190 11.039 11.182 10.083 9.467 - 11.146 8.317 9.150 8.625 7.301 7.807 5.616 6.728 7.914 6.282 6.785 7.002 6.656 6.583 6.364 6.620 6.736 6.497 7.051 6.718 7.150 9.213 9.975 9.222 9.230 8.859 8.925 8.267 8.862 8.439 8.595 10.500 11.210 10.941 10.712 10.557 - 9.944 8.905 8.426 7.824 7.529 6.282 7.586 7.806 6.933 7.401 6.749 6.742 6.716 6.045 5.480 6.576 7.166 6.619 7.105 7.304 6.213 7.993 10.260 9.711 8.827 8.919 8.305 8.290 8.393 8.001 8.715 10.449 11.129 9.925 9.584 9.712 - 10.560 8.969 6.357 6.909 7.463 6.995 6.553 7.272 6.817 5.508 5.265 6.137 5.999 5.458 5.917 5.140 5.734 6.230 6.931 6.478 6.517 7.933 7.892 9.945 9.754 9.675 9.193 8.928 8.223 8.713 9.250 10.142 10.459 9.821 9.717 8.394 - 10.275 9.561 8.692 8.662 7.478 7.736 7.544 7.506 7.849 6.981 7.492 7.577 5.322 5.472 5.511 6.224 5.909 6.740 6.678 6.100 6.122 8.019 8.940 9.184 9.285 8.922 8.395 8.056 8.998 9.097 9.181 10.132 10.761 9.926 9.658 8.973 - 9.425 10.220 9.321 7.634 6.843 6.693 8.503 9.468 9.340 8.771 8.885 8.505 7.942 6.591 5.225 8.063 8.030 6.109 6.596 6.579 5.528 7.161 8.713 8.470 8.942 8.666 9.084 7.603 8.493 8.598 9.032 9.133 10.027 9.374 9.605 9.065 - 9.314 9.333 8.078 7.630 7.012 6.597 9.407 10.249 9.038 8.841 9.467 8.157 7.723 7.634 7.549 8.295 7.759 6.812 6.218 6.393 5.666 7.125 8.461 9.002 8.620 7.360 8.170 7.940 8.074 7.642 8.314 8.673 9.240 9.072 9.383 9.134 - 8.465 7.341 7.382 6.727 7.250 7.323 9.578 10.596 11.031 10.224 10.030 10.137 8.977 9.111 9.165 10.121 9.443 7.672 7.285 7.147 5.496 6.009 7.736 8.843 8.470 7.582 8.078 7.322 8.177 8.007 8.021 8.458 8.661 8.411 7.901 7.407 - 9.680 8.772 6.338 7.990 8.004 8.697 10.475 11.764 12.413 10.942 9.901 10.304 8.322 8.518 8.721 11.047 10.670 9.037 8.050 7.718 6.208 7.764 7.718 8.486 7.863 8.177 8.293 7.611 7.882 7.570 7.111 8.770 9.001 7.753 7.252 7.251 - 7.609 7.754 7.357 7.839 8.018 8.958 11.065 11.507 12.449 11.044 10.967 10.507 9.365 8.429 8.891 10.785 10.865 9.994 7.935 7.317 7.165 7.470 6.786 7.368 8.470 8.933 7.765 7.300 7.204 7.811 7.191 8.431 8.134 7.896 8.067 7.016 - 8.826 8.709 7.424 7.584 7.224 7.972 11.466 11.628 11.797 11.157 11.113 10.154 9.652 8.906 9.367 8.846 9.409 9.924 8.474 7.503 6.775 6.179 6.333 7.403 8.991 8.667 8.189 7.462 6.929 7.478 7.386 8.311 8.589 7.423 6.767 6.434 - 7.570 8.599 7.851 7.636 6.975 7.584 11.781 11.978 11.121 10.471 10.580 9.988 9.440 8.642 9.292 9.202 9.391 9.513 7.547 7.860 7.139 6.095 7.495 7.251 9.511 9.626 7.638 7.098 6.915 7.426 7.584 7.526 7.499 6.795 6.884 6.000 - 8.559 8.879 7.598 7.952 7.701 8.994 11.854 11.956 11.507 10.172 9.597 9.316 9.131 8.807 9.023 9.172 10.666 9.795 7.835 6.733 6.505 7.811 7.392 6.589 9.350 9.520 7.933 7.591 6.054 8.011 8.195 7.883 7.908 6.600 6.623 5.979 - 7.178 8.419 7.818 8.468 8.886 9.502 11.549 12.378 12.789 11.042 9.850 8.190 7.583 8.487 8.401 10.072 10.227 9.404 8.765 7.125 6.455 7.890 7.674 7.336 9.059 8.767 7.501 6.452 6.248 8.234 8.368 8.502 7.186 5.928 6.082 5.973 - 7.584 8.049 7.493 7.465 8.677 9.539 10.226 11.803 12.743 10.740 9.770 8.513 7.075 7.708 8.732 9.734 8.822 8.750 8.196 6.828 6.199 6.593 6.542 7.122 8.813 9.185 7.506 7.269 6.292 7.372 7.862 8.346 6.766 5.719 6.768 5.968 - 6.118 5.656 7.105 7.124 7.774 8.319 10.301 9.993 11.225 10.172 8.624 8.140 6.181 6.658 7.722 9.888 9.756 8.831 7.797 6.642 5.412 5.772 7.548 7.083 8.041 7.565 7.882 7.320 7.031 7.455 7.563 7.276 6.624 6.223 6.393 6.255 - 6.888 7.301 6.252 5.958 6.522 7.880 8.022 8.324 10.204 9.659 8.939 8.524 7.826 6.753 6.863 9.690 8.386 7.924 6.269 5.998 5.159 6.085 6.791 7.305 7.520 7.314 7.121 6.938 6.436 6.435 6.766 6.637 6.832 6.792 6.459 5.525 - 7.087 7.813 6.118 4.559 7.654 8.944 9.233 9.015 10.881 9.359 7.933 8.255 7.841 7.450 6.377 9.931 9.789 8.498 6.195 5.577 5.133 6.276 6.605 7.251 7.745 7.504 6.686 6.240 6.797 6.812 6.169 6.755 6.909 6.420 6.339 5.523 - 8.297 8.514 7.188 6.258 7.012 9.349 10.248 9.169 9.904 10.035 9.453 8.426 7.482 8.076 8.561 9.728 8.422 8.060 7.107 5.202 5.637 7.308 6.946 6.878 6.753 6.568 7.283 6.619 6.645 7.381 6.022 7.066 6.956 6.264 6.888 5.659 - 8.746 6.988 4.350 5.880 6.604 8.908 9.113 8.678 8.636 9.021 8.664 8.196 6.616 6.911 8.934 9.730 8.185 6.939 6.826 7.347 6.937 6.715 6.733 6.652 7.245 7.072 7.046 6.815 5.763 6.693 6.528 7.158 7.379 7.537 7.202 5.505 - 7.166 8.059 7.679 7.417 7.674 8.774 8.129 8.459 8.810 8.717 6.793 8.186 7.801 6.894 8.808 9.469 8.231 7.173 6.708 7.080 6.652 6.552 6.723 6.382 7.115 7.723 6.499 7.283 6.174 6.332 6.650 7.376 7.796 7.001 6.795 5.894 - 8.039 7.937 7.911 8.389 7.836 8.867 9.473 9.954 9.062 8.536 6.964 7.795 7.980 6.961 7.453 9.137 8.680 7.104 6.195 6.560 6.919 7.299 8.060 7.766 7.505 7.365 7.351 7.454 6.929 7.247 7.059 7.942 7.696 7.216 6.281 6.011 - 8.376 8.154 6.180 8.028 9.395 10.458 9.201 8.867 8.786 7.854 7.531 7.062 7.274 6.661 6.908 9.088 8.579 7.694 6.692 5.939 6.879 7.851 7.732 8.502 8.891 8.057 7.457 7.927 7.685 7.058 8.139 9.449 9.414 8.410 7.009 6.037 - 7.944 7.693 6.369 6.757 10.553 11.380 8.959 8.263 6.422 5.467 6.649 5.705 5.661 4.896 6.353 8.716 7.930 6.821 7.185 6.976 6.342 7.238 9.048 10.790 10.731 9.552 9.284 9.741 9.229 7.567 9.390 11.375 11.015 9.704 7.755 5.661 - 7.136 7.596 5.332 4.560 11.293 13.121 11.725 8.758 9.024 7.134 6.241 6.594 6.160 5.688 6.417 8.076 7.274 6.683 7.473 6.195 6.488 6.754 9.565 10.891 11.391 10.336 9.780 10.127 10.098 7.511 9.672 11.139 10.955 10.127 7.816 5.356 - 8.110 8.531 7.041 5.531 11.893 14.050 12.801 8.004 7.883 6.948 6.906 6.985 7.880 7.390 6.569 7.783 7.658 6.387 7.315 6.257 5.868 8.337 9.699 10.613 11.543 10.684 10.059 10.434 10.246 8.086 10.258 11.575 11.716 10.819 8.061 6.044 - 7.682 9.281 8.051 6.767 12.049 14.324 12.965 9.669 8.933 8.760 8.243 7.077 6.998 8.065 7.868 8.468 7.692 6.721 7.614 7.006 6.894 9.165 10.117 11.252 12.089 11.185 10.759 10.819 10.492 8.740 10.123 11.755 11.523 9.999 8.086 5.825 - 8.914 9.819 8.160 6.543 12.573 14.637 13.301 9.967 9.910 7.930 7.824 7.545 8.144 7.817 7.135 9.309 8.823 7.249 8.155 7.039 7.122 10.006 11.121 11.966 12.919 11.521 11.528 11.526 10.960 10.067 11.225 12.059 12.113 11.189 8.341 5.477 - 7.222 9.476 8.216 5.086 12.696 14.589 12.868 10.962 10.678 8.359 8.525 7.651 7.902 7.789 7.863 8.212 8.571 8.111 8.139 7.517 7.263 9.843 11.161 11.851 12.719 10.819 10.833 11.126 10.953 10.088 11.335 12.516 12.607 11.731 9.092 6.260 - 7.659 9.269 8.818 7.356 13.080 14.610 12.662 11.211 10.862 9.122 8.789 8.273 8.016 8.207 7.881 8.637 8.422 7.936 8.015 6.896 7.350 9.505 10.978 11.456 12.298 10.333 10.601 10.823 10.285 9.656 10.693 12.688 12.646 11.519 9.582 6.368 + 5.389 4.810 5.125 4.165 3.566 3.932 3.529 4.031 3.448 2.431 5.657 5.540 4.806 5.420 5.056 4.680 4.944 5.669 6.161 5.786 6.441 7.007 7.950 8.784 8.374 7.769 9.344 9.315 9.740 9.657 10.222 9.850 8.788 10.339 9.979 7.982 + 4.629 3.124 3.561 5.456 5.490 4.303 4.407 3.801 3.722 3.877 4.070 4.785 5.405 4.903 5.303 4.862 5.343 5.014 5.953 5.966 6.774 6.947 7.934 7.903 7.103 7.853 10.083 10.235 9.747 10.154 10.467 10.033 9.853 10.023 10.003 8.046 + 4.210 4.083 3.981 5.656 5.662 4.151 5.915 5.171 4.703 4.731 5.825 6.092 4.736 4.585 5.498 4.980 5.532 5.654 5.362 5.721 7.011 7.298 8.233 7.266 6.777 7.853 10.034 9.380 9.298 10.411 9.983 9.865 10.016 10.360 9.645 7.216 + 4.346 3.959 4.195 4.672 5.132 5.597 5.139 5.006 3.870 4.447 6.045 5.108 5.056 6.081 5.626 5.746 6.457 6.671 5.883 6.331 4.831 6.802 8.386 8.448 7.866 9.915 9.605 10.048 10.248 9.989 9.930 9.642 8.986 9.554 9.315 7.037 + 4.688 3.590 4.146 4.361 4.724 5.040 5.558 3.926 4.857 5.482 4.340 5.198 4.924 4.752 4.390 5.545 6.233 6.505 5.984 6.435 5.875 6.785 7.662 8.555 9.455 10.009 7.431 9.247 9.574 9.010 9.013 9.143 9.411 9.079 8.648 7.272 + 2.193 4.558 4.155 5.176 5.156 5.311 4.683 4.231 4.062 5.684 4.990 4.288 4.746 4.326 4.050 6.148 5.951 6.081 6.324 6.449 6.486 7.982 8.861 8.900 9.820 10.296 7.435 8.752 9.227 8.640 10.053 9.391 8.755 9.929 9.690 7.525 + 2.979 4.149 3.978 5.114 4.680 3.806 4.672 4.478 3.464 4.933 5.082 5.314 5.471 5.070 4.637 5.226 5.241 5.261 5.821 6.648 6.645 7.989 8.787 7.079 10.003 9.974 7.731 7.446 7.384 8.648 9.619 9.103 8.871 9.514 9.644 6.964 + 2.761 4.491 5.456 4.913 4.653 5.106 3.900 3.184 3.204 4.609 3.683 2.693 3.776 4.197 5.397 5.598 4.693 6.256 7.283 6.335 6.121 6.610 8.422 7.739 8.930 7.577 7.074 8.081 8.044 8.216 8.396 7.783 7.887 9.454 9.845 6.690 + 3.593 3.991 4.594 4.964 4.881 5.153 5.231 4.091 5.041 4.556 3.479 4.433 2.551 4.561 5.123 6.011 5.923 6.460 6.838 6.676 6.275 6.550 7.757 8.165 7.723 7.129 7.406 8.216 7.999 8.625 8.598 8.521 7.939 8.443 8.252 6.517 + 3.773 3.696 3.852 3.460 4.364 4.005 4.615 4.868 4.112 3.523 3.510 4.283 3.635 5.081 5.401 5.917 7.041 7.996 7.184 6.857 6.897 6.739 7.949 7.371 7.500 6.872 7.322 6.834 6.828 7.322 8.296 7.759 7.619 8.351 8.577 6.534 + 2.162 1.746 3.938 5.254 4.685 4.121 3.940 4.349 3.350 3.067 4.414 5.364 4.497 5.071 5.823 6.553 5.166 6.358 5.794 6.100 6.231 6.237 6.711 7.314 7.740 6.745 5.893 6.790 7.587 7.137 7.380 7.053 7.752 8.009 8.641 6.604 + 5.713 4.351 4.127 3.772 3.693 5.441 5.117 4.609 5.141 4.838 4.155 4.605 3.974 3.331 4.880 5.151 5.350 5.834 6.075 5.800 5.449 5.880 7.669 6.843 5.893 5.384 6.239 7.263 6.259 7.309 7.030 6.299 7.510 8.038 8.022 6.037 + 8.639 8.587 7.690 7.100 5.972 5.349 5.113 5.152 4.688 4.016 3.875 4.215 4.156 5.382 4.734 3.497 3.959 4.723 4.473 4.306 4.382 5.536 6.379 6.016 5.906 7.044 7.401 6.962 6.142 6.908 6.946 6.358 6.577 7.683 8.410 6.175 + 7.683 7.662 6.692 6.305 4.112 4.879 4.603 5.479 5.287 4.827 5.168 3.422 4.302 4.507 3.717 4.480 4.036 4.332 3.459 3.639 4.541 5.122 4.360 5.595 4.928 5.171 5.077 6.252 6.024 5.335 5.173 5.875 4.970 6.198 6.049 4.656 + 5.958 6.560 6.228 4.710 4.065 4.628 4.690 5.296 5.107 5.656 4.684 3.052 4.269 4.714 4.552 3.986 4.838 4.422 4.015 3.832 4.042 4.318 4.238 4.135 5.151 6.214 5.450 5.207 5.771 5.637 5.530 6.237 5.461 6.466 6.632 4.483 + 4.562 4.152 3.670 3.765 5.057 4.952 4.765 3.140 3.092 4.261 4.018 4.462 3.924 4.366 4.388 3.567 3.947 3.754 4.407 3.962 3.240 4.107 4.875 4.880 5.500 5.578 5.324 4.438 5.096 5.318 4.943 5.704 5.328 5.824 6.599 4.278 + 5.047 5.852 5.993 4.169 3.880 4.574 4.410 3.895 4.760 4.032 3.518 2.917 3.795 4.603 4.393 4.846 5.211 4.395 4.010 3.683 3.352 4.124 5.521 5.006 4.397 4.241 3.497 3.939 3.508 3.642 4.625 4.759 4.305 4.651 5.043 3.209 + 3.086 4.834 4.464 4.872 5.053 4.557 4.751 5.155 4.083 2.625 2.963 3.112 1.924 2.029 3.280 4.666 3.955 3.580 4.308 4.315 2.945 3.913 5.088 3.795 4.329 2.935 3.134 4.199 3.050 3.999 4.334 4.342 3.470 3.496 3.347 2.705 + 3.733 3.854 2.862 2.227 3.327 5.077 5.348 3.018 3.551 4.072 2.685 3.165 3.057 3.125 4.357 5.090 4.756 3.279 3.727 3.771 3.707 2.650 4.571 3.201 3.331 3.232 2.770 2.890 3.096 3.292 3.611 2.683 3.064 2.006 2.747 1.738 + 2.745 2.220 2.940 3.731 3.694 5.188 4.711 3.862 2.182 2.186 2.659 3.295 4.128 3.736 3.533 4.918 4.782 3.271 2.590 3.549 4.944 2.985 3.031 3.298 3.624 3.220 3.280 3.460 3.870 2.971 3.599 2.898 2.184 2.052 2.678 1.874 + 3.581 3.086 4.523 5.729 4.243 4.929 4.641 4.905 4.309 4.312 4.014 4.347 3.688 4.477 3.340 4.768 4.071 3.783 2.933 2.394 3.619 3.248 3.499 3.584 3.884 4.180 3.676 3.718 3.977 3.911 3.494 2.737 3.327 2.909 2.803 1.726 + 4.860 4.678 5.475 6.113 5.297 4.935 3.243 3.725 4.619 4.783 4.528 4.317 3.394 3.997 3.764 4.890 4.052 2.723 3.360 3.547 4.064 2.916 3.790 4.009 2.916 4.030 3.723 3.734 3.872 3.241 3.085 3.237 3.102 4.124 4.347 3.008 + 4.668 4.644 5.931 6.140 5.316 6.248 5.703 3.829 3.513 2.220 3.629 4.070 1.415 3.035 3.558 4.154 4.435 4.148 2.908 3.348 2.439 2.770 3.798 4.618 3.113 3.339 3.480 3.643 4.002 4.147 3.353 2.661 3.223 2.526 2.711 2.410 + 4.723 5.778 5.108 5.060 6.203 6.394 6.213 4.665 3.635 1.726 3.474 2.594 2.410 4.449 4.714 2.821 3.680 4.021 3.062 2.456 2.919 3.138 4.102 3.361 4.024 3.693 4.450 2.907 3.282 3.794 3.742 3.225 3.421 3.325 4.150 4.272 + 7.991 7.335 7.256 7.639 7.232 7.424 7.121 7.291 6.736 6.293 6.316 5.990 6.272 5.490 5.623 5.458 4.866 4.805 4.151 3.381 5.268 5.051 4.797 5.928 7.613 9.052 9.720 8.811 8.889 8.733 8.379 8.452 8.341 8.475 8.370 7.526 + 11.920 10.660 10.062 12.050 11.971 9.869 10.993 10.382 8.618 9.713 8.532 7.882 8.053 7.546 7.304 7.425 6.971 7.240 7.661 8.869 9.438 9.317 7.856 8.217 9.603 11.612 12.311 10.689 11.082 10.551 10.215 10.383 10.063 10.340 10.275 9.239 + 12.444 12.817 12.636 13.609 14.162 13.708 12.116 11.380 11.113 10.771 9.923 8.689 8.011 7.992 8.191 8.533 8.649 9.192 9.935 11.689 13.147 12.150 10.641 9.784 10.078 11.386 12.006 10.834 9.999 10.087 11.785 11.967 10.590 8.213 9.304 9.486 + 12.146 13.526 12.921 14.630 15.013 15.678 13.753 12.574 12.058 11.498 10.917 9.790 9.564 9.428 9.469 9.623 10.113 10.639 11.640 13.552 14.984 13.978 12.433 11.887 12.450 13.762 14.012 12.825 12.046 12.340 14.056 14.469 13.312 10.802 11.090 11.581 + 12.715 14.187 13.427 15.045 15.821 16.926 14.886 13.200 13.516 12.853 12.584 11.219 11.381 11.091 11.025 11.042 11.182 11.700 12.753 15.005 16.738 15.162 13.644 13.275 13.902 15.282 15.179 13.638 12.752 13.493 15.576 15.773 15.119 12.948 11.357 12.258 + 13.199 14.493 13.831 15.207 16.841 17.844 15.760 14.184 14.539 13.641 12.969 12.225 11.967 11.914 11.820 11.875 12.129 12.653 13.989 16.130 17.119 15.440 14.283 13.849 14.384 15.371 14.330 13.171 12.923 13.550 15.212 15.355 15.225 13.044 10.293 10.867 + 13.451 14.597 14.030 15.041 17.342 18.286 16.762 15.667 15.107 14.076 13.188 13.119 12.320 12.442 12.363 12.530 12.792 13.358 14.686 16.640 17.325 16.279 14.799 14.779 15.508 15.926 14.288 13.037 13.198 13.687 14.870 15.472 15.805 13.682 9.892 10.621 + 13.604 14.468 14.092 14.732 17.294 18.061 17.661 16.620 15.089 14.467 13.623 13.464 12.508 12.538 12.525 12.728 13.079 13.785 14.832 17.127 17.894 16.486 15.363 15.502 16.310 15.597 13.976 12.835 13.100 13.464 14.564 15.777 16.114 14.005 10.067 10.560 + 13.692 14.367 14.100 14.853 16.845 17.269 18.055 17.165 14.761 14.667 13.981 13.649 12.765 12.537 12.718 12.894 13.381 14.069 15.269 17.316 17.483 16.223 15.630 15.932 15.457 13.790 12.357 11.687 12.397 13.431 14.487 13.873 14.018 11.451 9.200 8.381 + 13.765 14.299 14.249 14.834 16.581 16.995 18.459 17.421 15.442 14.906 14.215 13.733 13.200 13.019 13.166 13.536 14.272 15.363 16.464 17.682 16.465 15.906 16.115 16.161 14.718 12.998 11.906 11.807 12.154 13.053 13.377 12.192 12.588 11.114 8.870 8.202 + 13.946 14.312 14.413 14.939 16.604 17.522 18.851 17.468 15.694 15.528 14.274 13.876 13.430 13.567 13.942 14.837 14.890 17.255 16.789 16.162 15.317 15.292 16.369 15.900 13.800 12.479 11.841 11.967 12.706 14.430 13.877 12.602 13.277 12.228 9.871 6.313 + 14.111 14.144 14.538 14.869 16.764 17.992 18.659 16.557 15.362 15.431 14.501 13.983 13.778 14.189 14.578 16.663 15.944 15.807 14.703 13.556 13.754 14.549 15.869 15.266 12.933 12.048 10.858 11.162 12.168 14.355 13.648 12.378 13.540 12.514 10.062 6.904 + 13.961 13.927 14.373 15.296 17.046 18.022 18.101 15.452 14.949 14.838 14.447 14.226 14.295 15.637 16.443 15.948 13.728 12.803 12.226 11.929 12.189 13.083 15.153 14.500 12.165 11.486 10.284 9.767 10.896 13.499 12.665 11.308 12.342 11.705 9.376 6.041 + 13.678 13.753 14.091 15.440 16.964 17.219 17.273 15.374 14.289 14.165 14.114 14.223 14.711 16.088 15.475 13.855 12.188 11.171 11.045 11.316 11.271 12.333 14.172 13.825 11.222 10.539 9.803 8.201 9.302 12.252 12.039 10.303 11.336 11.000 9.138 6.906 + 13.488 13.514 13.979 15.514 17.150 16.647 16.355 15.142 14.407 13.901 13.703 14.063 14.799 16.655 15.423 13.291 12.108 11.060 10.886 11.243 11.213 12.431 14.023 13.076 10.565 10.032 9.813 7.271 8.681 11.532 11.789 10.080 11.002 10.540 8.431 4.189 + 13.264 13.777 14.186 15.782 17.263 16.539 16.270 15.082 14.398 13.973 13.352 13.680 13.926 16.299 15.796 13.850 12.528 11.425 11.181 11.189 11.468 12.906 14.420 13.403 10.848 10.068 10.566 7.798 8.730 11.738 12.444 10.726 11.690 11.492 9.385 4.701 + 13.766 13.961 14.329 15.534 17.349 16.526 16.119 14.842 14.253 13.802 12.957 13.595 13.541 14.859 15.622 16.024 13.931 12.342 11.906 11.694 12.071 13.490 14.890 13.566 11.351 10.546 10.833 8.791 9.121 12.131 13.279 11.424 11.970 12.001 11.252 5.862 + 13.686 14.098 14.374 15.446 17.406 16.575 16.106 14.817 14.257 13.677 12.858 13.116 13.149 13.278 14.847 15.346 16.136 14.699 13.335 12.925 13.189 14.473 15.770 13.826 11.783 10.819 11.220 9.503 9.362 12.037 13.788 11.833 11.965 11.735 10.728 7.062 + 13.999 14.095 14.194 15.310 17.327 16.369 15.955 14.604 13.886 13.248 12.494 12.443 12.341 12.454 12.943 13.843 15.234 15.870 16.074 14.876 14.497 15.641 16.925 14.598 12.636 11.572 11.763 10.320 9.795 12.095 13.851 13.004 12.903 13.087 11.401 8.327 + 13.841 14.020 14.210 14.930 17.251 16.439 15.902 14.674 13.851 13.193 12.354 12.121 12.036 12.041 12.119 12.723 13.083 14.836 16.088 16.688 16.577 16.592 17.691 16.642 13.609 12.479 12.479 11.372 10.571 12.874 14.783 13.821 13.486 12.988 11.911 8.741 + 13.702 13.997 14.117 14.689 17.157 16.518 16.059 14.869 14.070 13.298 12.325 12.408 11.903 11.767 11.830 11.940 12.496 13.266 14.976 16.616 17.734 17.364 17.953 17.832 15.813 13.811 13.323 12.434 11.790 13.781 15.764 14.903 14.423 14.125 12.887 9.733 + 13.609 13.783 13.778 14.519 16.822 16.269 16.436 14.869 13.857 13.120 12.381 12.290 11.749 11.544 11.421 11.505 11.768 12.802 13.802 15.716 17.687 17.247 16.972 17.218 16.593 14.934 13.868 12.877 11.995 13.653 15.850 14.941 14.023 13.824 12.343 9.673 + 13.530 13.719 13.677 14.387 16.598 16.361 16.933 15.144 14.022 13.388 12.874 12.374 11.832 11.457 11.197 11.464 11.371 12.624 13.128 14.785 17.151 16.902 15.792 15.977 16.433 15.853 14.609 13.666 12.273 13.392 15.581 14.794 13.597 14.311 12.787 10.808 + 13.535 13.807 13.609 14.104 16.422 16.374 17.315 15.807 14.567 13.692 13.336 13.030 12.515 11.914 11.454 11.693 11.980 12.754 13.372 15.109 17.128 16.537 15.316 15.166 15.550 15.805 14.564 12.966 12.754 13.277 14.754 14.282 12.754 13.601 12.612 10.186 + 13.200 13.486 13.382 13.719 15.775 16.179 17.413 15.890 15.166 14.208 13.785 13.240 12.747 12.402 11.821 11.907 12.335 12.654 13.611 15.446 17.007 16.087 14.586 14.278 14.279 15.101 14.076 12.929 13.212 13.357 14.465 13.754 12.641 13.235 12.479 7.725 + 12.829 13.129 13.150 13.515 15.095 15.892 17.120 16.046 15.571 14.419 14.233 13.384 12.936 12.668 12.153 12.041 12.477 12.797 14.270 15.971 16.412 15.353 14.165 13.573 14.395 14.773 13.166 12.899 13.088 13.145 14.145 13.953 13.196 13.547 11.986 7.167 + 12.693 13.155 12.940 13.604 15.066 15.639 17.070 16.061 15.955 14.686 14.236 13.640 13.126 13.027 12.581 12.705 12.943 13.615 15.122 16.390 15.957 14.571 14.005 13.401 14.374 14.240 12.632 13.518 13.561 13.359 13.640 13.245 12.294 12.434 11.017 7.594 + 12.508 13.028 12.733 13.549 15.140 15.703 17.146 16.181 16.024 14.762 14.158 13.750 13.258 13.192 12.988 13.097 13.438 14.477 16.025 16.362 14.945 14.040 13.425 13.391 13.988 13.121 12.053 13.162 12.936 12.545 12.612 12.239 12.329 11.939 9.731 7.185 + 12.346 12.734 12.637 13.338 15.151 15.863 17.064 16.009 15.567 14.531 13.911 13.442 13.023 12.915 12.956 13.268 13.805 15.122 16.491 15.304 13.742 13.170 12.502 13.277 13.196 11.815 11.584 12.636 11.324 11.281 12.449 12.761 12.994 11.998 10.554 8.741 + 11.912 12.291 12.141 12.942 14.926 15.822 16.443 15.199 14.560 14.083 13.304 12.890 12.517 12.432 12.698 13.348 14.326 15.610 15.025 13.190 11.895 11.364 12.042 12.475 12.699 13.072 12.493 11.333 9.560 10.423 11.801 12.292 12.996 12.475 11.982 11.869 + 11.384 12.329 12.076 12.752 14.397 15.171 15.569 14.780 14.050 13.528 12.338 12.321 12.220 12.589 13.139 14.261 15.103 14.164 12.371 12.059 11.018 9.648 11.066 11.824 13.106 13.980 13.500 12.848 12.997 12.743 12.167 12.924 13.758 13.006 11.614 11.857 + 12.931 12.934 13.163 13.441 14.965 16.124 16.645 15.114 14.731 14.223 13.143 12.667 13.129 13.283 14.344 15.528 14.713 13.027 11.845 11.516 10.641 9.790 9.352 10.115 11.502 13.086 14.861 14.336 13.619 13.496 13.190 14.273 14.204 13.019 9.869 8.658 + 13.265 13.098 13.608 13.705 14.720 16.778 17.314 16.484 15.464 14.998 13.826 13.707 14.151 14.441 16.158 15.454 13.610 12.430 11.807 11.085 10.608 9.630 9.949 10.682 11.572 12.745 14.917 14.746 12.455 12.643 14.627 16.072 15.074 12.687 9.629 7.316 + 13.032 12.835 13.478 13.684 14.456 16.935 17.313 17.088 16.001 15.076 13.972 14.218 14.683 16.025 15.814 13.578 12.592 11.288 11.400 10.829 10.593 9.971 9.662 10.177 11.224 12.237 14.473 14.467 12.383 12.165 15.406 16.710 15.993 14.568 9.019 7.986 + 12.659 12.761 13.211 13.612 14.824 16.848 17.096 17.185 15.718 14.861 14.611 14.858 16.059 15.894 14.823 12.079 10.955 10.848 10.239 10.359 10.366 10.163 9.958 9.117 9.864 10.806 13.240 13.574 12.042 11.107 14.634 16.038 15.330 14.231 8.639 7.772 + 12.644 12.637 13.024 13.614 15.058 16.700 16.665 16.927 15.560 14.089 14.835 15.906 15.999 15.098 12.271 11.456 10.828 9.999 9.777 9.807 9.384 9.659 9.973 9.769 9.229 10.381 12.201 13.266 11.730 11.489 14.644 15.850 15.456 14.668 9.379 7.352 + 12.439 12.622 12.978 13.647 15.121 16.742 16.088 16.309 15.677 14.584 15.104 15.796 15.168 13.990 12.344 10.427 9.992 9.490 9.382 9.297 9.355 9.298 9.085 9.432 10.277 11.959 13.320 11.995 11.011 11.081 12.184 13.670 13.971 13.562 8.656 6.561 + 12.430 12.201 12.552 13.725 15.045 16.317 15.446 15.324 15.034 14.155 15.238 15.236 13.924 11.798 10.120 9.478 9.142 9.033 9.043 8.728 8.205 8.027 8.555 8.989 9.651 11.468 13.272 11.862 9.865 9.782 11.030 12.521 13.379 12.637 7.456 6.059 + 12.315 11.859 12.231 13.857 14.810 15.951 14.438 14.162 14.398 13.648 15.206 14.352 12.703 10.472 9.014 8.379 8.856 8.555 8.299 8.298 7.983 7.318 8.074 8.522 9.201 10.994 13.028 11.340 9.286 9.712 10.900 12.229 13.308 12.502 7.205 5.726 + 12.263 11.528 12.104 14.314 15.136 15.734 13.960 13.488 13.861 14.364 15.040 13.725 11.838 10.192 8.980 8.131 8.205 8.346 8.173 8.392 7.921 7.760 8.128 8.143 8.922 10.741 12.874 11.141 9.044 9.485 10.856 11.891 13.251 12.188 7.758 6.075 + 11.906 11.598 12.201 14.458 15.026 15.375 13.981 13.226 13.665 14.552 14.511 12.887 10.869 9.883 9.000 8.265 8.192 8.048 7.901 8.284 8.173 8.167 8.197 8.133 8.834 10.708 12.975 11.337 9.231 9.349 11.003 12.087 13.717 11.870 8.243 6.449 + 11.542 11.315 11.883 14.266 14.719 15.146 14.119 13.291 14.114 14.885 14.390 12.614 10.275 9.393 9.520 8.894 8.835 8.499 7.949 7.831 8.302 8.313 8.578 8.295 9.075 11.004 13.177 11.781 10.088 9.599 11.441 12.680 13.664 11.287 9.055 7.353 + 11.538 11.330 11.825 14.020 14.512 15.446 14.875 13.807 14.392 15.226 14.868 13.387 10.731 10.122 9.412 9.102 9.654 9.431 9.605 8.894 8.397 9.154 9.188 9.384 9.919 11.735 13.630 12.266 10.628 9.752 11.935 12.595 12.942 11.769 9.013 7.474 + 11.578 11.522 11.799 13.487 13.946 15.712 15.891 15.604 15.028 15.341 15.712 15.449 12.833 12.383 11.244 10.028 10.744 10.908 10.178 9.308 9.250 9.842 11.470 11.333 10.774 12.783 14.382 12.999 11.665 11.995 14.917 14.673 13.988 13.411 10.276 9.560 + 11.554 11.310 11.599 12.940 13.666 15.389 16.448 17.228 15.715 15.754 16.834 16.490 16.313 14.619 12.120 11.904 11.791 11.353 11.586 11.406 11.383 11.424 11.246 11.262 11.965 13.707 15.160 13.532 12.292 13.805 16.072 15.516 14.436 13.763 11.376 10.591 + 11.292 10.842 11.368 12.621 13.246 14.088 16.772 17.064 16.756 16.102 15.562 16.460 16.508 15.792 12.789 12.185 12.042 11.750 11.898 11.509 11.182 10.914 10.823 10.978 11.980 14.107 15.235 13.818 12.450 14.465 16.570 15.933 14.541 13.569 10.867 10.550 + 11.334 10.725 11.526 12.143 12.803 13.493 16.280 17.046 17.592 16.158 15.858 16.113 16.691 16.327 12.957 12.558 12.394 11.781 11.867 11.679 11.196 11.058 10.885 11.216 11.586 13.296 15.261 14.373 12.758 15.051 16.926 16.160 14.925 13.504 10.969 9.974 + 11.450 10.890 11.570 11.662 12.807 13.393 15.805 16.954 17.788 16.807 15.844 15.968 16.605 16.874 13.648 13.138 12.510 11.929 12.078 11.726 11.537 11.119 11.042 11.190 11.244 12.420 14.833 14.596 12.807 15.312 17.089 16.313 15.346 13.786 10.803 9.084 + 11.635 11.057 11.605 11.827 12.609 13.285 15.524 16.731 17.882 17.303 16.176 16.018 16.746 17.290 15.160 13.628 12.730 12.129 12.013 11.881 11.550 11.242 11.181 11.098 11.059 12.989 14.566 13.826 12.861 14.753 16.922 16.134 14.846 13.290 10.916 9.329 + 11.622 11.378 11.529 11.711 12.364 13.128 15.084 16.390 17.651 17.215 16.465 15.853 16.160 17.215 16.059 14.286 12.891 12.287 11.864 11.670 11.329 11.347 11.585 11.410 10.854 12.413 14.628 14.248 13.562 14.580 16.777 16.070 14.922 13.097 11.448 10.304 + 11.712 11.555 11.629 11.620 12.350 13.177 15.099 16.265 17.450 16.892 16.099 15.497 15.978 16.957 16.446 14.829 13.057 12.164 11.694 11.367 11.305 11.195 11.426 11.023 9.978 11.793 14.159 13.734 13.016 13.069 15.519 14.880 13.011 11.111 10.410 9.966 + 11.728 11.743 11.869 11.650 12.082 13.005 14.994 15.931 16.975 16.186 15.815 14.978 15.395 16.531 16.852 14.769 13.196 12.139 11.698 11.515 11.353 11.108 11.367 11.065 10.224 10.672 13.083 13.057 12.989 12.177 13.617 13.462 11.903 10.002 9.457 9.518 + 11.748 11.353 11.655 11.277 11.651 12.656 14.753 15.400 15.871 15.062 14.491 13.866 14.355 15.255 16.165 13.698 12.238 11.562 11.075 11.059 10.930 10.652 10.840 10.719 9.854 9.370 12.321 12.572 12.994 11.511 11.648 12.507 11.848 10.315 8.931 8.025 + 11.699 11.457 11.248 11.168 11.469 12.367 13.845 14.962 14.120 13.828 13.772 12.925 13.274 13.959 15.507 14.403 12.503 11.399 11.177 11.043 10.654 10.490 10.848 10.857 10.208 10.487 13.571 13.585 12.713 10.317 10.035 12.037 12.133 10.898 8.987 8.214 + 11.668 11.501 11.174 11.261 11.467 12.603 13.611 15.109 13.567 13.134 13.602 12.192 11.936 12.658 14.824 14.421 13.671 12.061 11.176 11.186 10.845 10.619 11.032 11.546 11.306 11.724 13.561 13.658 12.787 10.327 9.341 11.565 12.220 11.382 8.311 6.681 + 11.593 11.406 11.127 11.130 11.424 12.705 13.417 14.844 13.236 12.377 12.850 11.300 10.824 11.174 12.161 12.533 13.758 13.270 13.031 12.577 12.557 12.794 12.351 12.014 12.047 12.714 13.354 13.196 12.076 9.785 8.765 10.566 11.792 10.906 7.925 5.680 + 11.539 11.218 11.202 10.627 11.022 12.528 12.901 13.669 11.903 11.675 11.931 10.439 9.128 9.627 10.550 10.597 12.078 13.264 13.331 13.538 13.743 13.336 12.154 11.114 11.376 11.557 13.450 13.151 10.399 9.326 7.676 9.830 11.342 10.628 6.586 4.291 + 11.725 11.415 11.238 10.388 10.956 12.331 12.348 12.455 11.034 11.250 11.348 10.076 7.806 7.465 8.881 8.674 9.427 10.141 12.040 13.580 13.745 12.977 10.592 9.637 10.123 11.527 13.426 13.237 10.337 9.120 8.085 9.108 10.913 10.223 6.325 5.872 + 11.554 11.266 11.076 10.427 11.152 11.662 10.904 10.791 10.724 10.962 10.954 10.068 7.090 7.710 8.432 8.237 8.778 9.691 10.813 11.460 11.622 11.839 10.918 8.560 8.236 8.494 10.016 11.063 10.223 9.840 8.404 8.481 11.019 10.686 8.322 9.077 + 11.329 11.304 11.371 10.694 11.273 11.394 10.330 10.156 10.336 9.837 9.917 9.156 7.684 7.858 7.808 8.006 7.839 8.441 8.250 8.839 9.827 11.222 10.433 8.312 6.368 5.700 5.965 7.916 10.422 10.841 7.912 7.786 10.500 10.323 7.842 7.877 + 10.885 10.844 11.246 10.771 10.735 10.746 9.382 9.293 9.627 9.316 9.529 8.394 7.178 7.316 6.871 7.647 7.964 8.118 7.494 8.073 8.431 9.526 8.856 6.813 5.743 4.997 4.921 5.051 8.195 9.857 7.468 7.090 9.569 8.835 6.513 4.777 + 9.974 10.168 10.990 10.169 9.980 10.538 9.237 8.751 8.111 8.773 9.036 7.282 6.187 5.160 5.515 5.847 5.215 6.080 6.946 6.953 5.577 6.143 6.083 5.284 5.326 5.519 5.152 5.306 5.901 7.285 6.002 6.918 7.934 7.667 6.277 5.277 + 9.074 9.785 10.375 8.901 9.173 9.848 7.923 7.930 8.300 8.817 8.595 8.546 5.880 5.352 6.267 5.189 6.389 5.638 6.079 6.419 4.584 5.076 4.340 5.828 6.295 5.346 5.488 5.111 4.348 4.972 6.084 6.501 7.621 8.302 9.002 8.841 + 8.192 9.865 9.904 8.187 7.872 8.764 8.716 6.944 8.279 8.909 9.210 8.859 8.021 7.796 7.938 7.099 7.313 6.447 7.716 8.120 7.865 7.081 6.806 6.748 7.547 7.986 8.114 8.115 7.846 7.892 8.583 9.140 9.807 10.694 11.551 11.414 + 8.553 9.369 10.264 8.696 8.589 9.094 9.773 9.223 9.841 9.847 9.584 9.834 9.788 9.469 8.970 9.153 8.490 8.177 10.161 10.627 9.329 8.821 8.588 8.603 10.076 10.427 10.326 9.969 9.852 9.770 10.412 10.653 11.063 11.090 10.839 10.024 + 9.105 8.994 9.740 10.186 10.476 9.482 10.259 10.258 10.067 9.910 9.102 8.504 8.768 8.216 8.789 8.154 8.865 9.789 11.471 10.846 9.680 8.694 8.035 8.933 10.758 11.052 10.106 9.743 9.860 10.070 9.728 10.509 10.968 11.746 11.388 11.410 + 10.525 9.993 10.690 12.271 12.604 12.167 12.136 12.265 11.878 11.563 10.127 9.549 9.512 10.044 10.321 9.571 10.234 11.730 11.654 11.484 10.495 8.215 8.900 9.907 11.833 12.097 10.340 9.821 10.290 11.425 10.377 10.665 12.366 12.631 11.458 10.655 + 10.562 10.266 10.749 13.040 13.644 14.031 13.388 12.119 11.931 11.567 9.894 10.775 10.476 10.026 10.788 11.264 12.345 13.825 13.218 11.698 10.679 9.946 9.196 10.241 11.923 12.190 10.302 9.971 11.357 12.249 9.988 10.797 13.563 13.084 11.933 11.001 + 10.681 10.555 10.485 12.991 13.421 14.234 12.959 12.655 11.733 11.742 11.163 11.087 10.417 10.570 11.111 11.572 12.326 13.325 12.311 9.582 9.314 9.750 9.380 8.157 11.395 11.687 10.939 9.390 10.462 12.464 10.187 10.260 12.577 12.714 11.556 10.476 + 11.087 9.997 10.082 12.111 13.492 13.913 12.325 11.550 10.739 11.225 10.602 10.087 9.206 9.698 10.173 10.579 11.845 12.572 11.080 8.806 9.013 9.095 9.562 7.709 10.100 11.522 10.910 9.631 11.814 12.199 10.993 10.535 11.869 12.309 12.298 12.374 + 11.253 10.152 9.818 9.048 10.074 10.858 9.066 9.094 10.102 10.560 10.854 10.192 9.740 9.095 9.373 10.204 10.060 11.155 10.868 9.068 9.524 9.132 9.150 9.627 10.295 11.759 10.777 10.662 11.921 12.822 12.512 13.258 13.448 14.043 14.066 14.334 + 8.745 9.354 9.350 9.719 9.765 8.118 9.640 9.373 10.053 9.886 11.007 10.422 8.497 8.804 9.439 8.918 10.033 10.551 9.643 8.612 9.588 9.372 9.348 10.173 10.065 12.048 11.023 10.447 11.387 12.471 12.404 14.052 14.181 14.187 14.820 15.025 + 10.338 10.775 10.379 9.728 8.996 7.902 9.194 9.326 8.480 10.031 10.460 9.605 9.371 10.201 10.827 9.743 9.234 10.875 10.934 9.813 9.084 9.546 10.601 9.254 10.028 11.924 11.145 10.945 11.649 12.002 12.402 14.237 15.126 15.493 15.179 15.025 + 10.579 9.206 9.321 10.405 10.780 9.470 9.988 9.467 9.646 9.458 9.118 9.854 9.684 10.359 10.084 9.809 10.793 11.262 12.303 10.759 10.177 9.836 10.583 9.048 8.921 10.676 10.548 10.990 11.803 12.692 12.059 13.630 14.982 15.751 15.236 15.696 + 10.022 10.395 9.323 9.787 11.079 10.722 9.101 10.179 10.603 10.108 11.095 10.591 9.874 11.031 10.086 10.145 10.943 11.062 11.761 11.037 10.957 11.065 10.682 9.715 9.842 11.453 10.899 10.746 11.173 13.208 13.692 13.493 14.838 16.036 16.066 15.944 + 12.242 12.163 11.261 10.952 11.340 10.029 11.342 11.371 10.224 10.211 10.881 11.111 11.125 11.041 10.125 9.866 10.192 11.318 12.026 12.094 11.637 11.521 10.190 10.220 11.804 11.920 11.849 11.414 11.588 12.460 13.226 13.438 14.801 15.756 15.935 16.584 + 8.658 9.589 8.871 9.967 10.320 10.150 9.467 8.814 9.045 10.234 10.552 10.490 11.236 10.590 9.872 9.751 9.925 10.834 11.636 12.069 11.453 11.783 11.420 10.115 12.226 11.827 12.104 12.139 12.822 13.265 13.304 14.131 15.215 15.727 17.084 16.380 + 10.329 9.864 9.384 8.866 10.169 10.256 9.722 10.206 8.557 9.357 10.204 10.352 10.001 10.303 10.349 11.132 10.608 10.763 11.756 12.631 11.656 11.280 11.549 13.074 12.709 12.261 12.330 12.501 13.212 13.717 14.270 14.873 15.562 16.408 16.324 16.002 + 9.873 8.091 8.274 8.566 9.563 9.858 10.151 10.257 8.478 9.072 10.379 9.909 9.077 10.031 9.364 9.678 9.123 9.542 11.742 12.396 14.039 13.154 12.776 13.094 12.450 11.577 10.982 11.868 12.178 12.179 12.357 12.936 13.221 14.431 15.816 15.194 + 7.343 5.957 6.732 6.840 6.096 6.939 7.124 6.514 6.077 5.965 6.326 6.528 6.491 6.518 6.930 6.490 6.698 7.173 8.760 9.188 11.219 10.434 8.482 6.626 6.537 6.432 6.317 6.241 5.983 5.764 6.815 7.336 7.841 8.282 8.939 10.257 + 4.473 3.927 4.806 3.879 4.452 5.176 5.493 5.146 4.718 5.751 6.052 6.000 5.670 5.328 5.425 6.617 6.248 3.332 5.072 4.397 4.485 4.698 3.931 4.242 2.836 2.890 3.204 2.889 2.927 3.700 3.688 4.450 5.259 6.588 7.066 5.691 + 2.181 2.452 4.004 4.560 6.352 6.490 7.188 6.651 5.458 4.809 6.598 6.583 6.789 5.264 4.820 5.782 4.516 4.312 5.264 4.482 4.330 4.107 3.742 4.015 3.819 2.348 2.990 2.921 3.379 2.948 3.857 4.171 5.075 6.559 7.479 6.019 + 6.664 7.119 7.185 8.698 9.778 10.101 11.261 11.174 11.111 10.661 9.955 9.440 9.402 8.324 6.636 7.791 8.830 9.418 7.921 7.123 8.882 9.553 9.820 9.777 10.201 10.089 9.923 9.419 8.564 8.249 8.923 8.249 8.110 8.409 8.412 7.197 + 8.897 7.592 7.912 9.916 11.620 11.167 11.787 12.526 12.787 11.779 11.265 11.595 11.739 11.611 10.486 8.963 10.872 11.594 10.111 11.305 12.103 12.792 13.502 14.126 14.826 14.541 13.655 13.101 12.349 11.837 12.283 12.096 12.068 12.325 12.347 11.119 + 11.076 11.041 11.464 12.297 13.420 13.779 14.225 12.952 11.993 11.773 10.964 10.418 9.909 10.565 10.401 10.165 10.673 11.359 12.000 13.423 15.091 14.745 13.773 14.721 14.239 15.082 13.313 12.677 13.514 13.088 11.789 11.576 12.521 13.117 12.166 11.696 + 11.996 12.660 11.943 13.050 14.857 16.266 15.634 16.176 15.022 13.248 13.015 12.859 11.835 12.041 12.255 12.605 12.965 14.009 15.775 16.323 16.199 15.630 15.727 14.974 14.142 15.084 14.511 14.471 14.822 12.773 11.029 13.106 15.120 13.835 10.685 9.417 + 12.181 11.796 12.471 12.656 13.842 15.803 16.636 17.439 15.514 14.742 13.843 13.542 12.903 12.619 12.905 13.238 13.979 15.324 16.710 16.776 15.471 15.378 16.113 15.488 13.843 15.094 14.340 14.521 15.189 12.757 12.051 13.825 16.503 15.015 11.077 8.806 + 12.058 11.370 12.180 12.745 13.443 14.461 16.372 17.820 17.768 15.135 14.759 14.313 12.873 13.186 13.247 13.522 14.154 16.384 17.153 15.577 14.798 15.074 16.102 15.799 13.519 14.665 14.284 13.974 15.012 13.177 13.410 13.958 15.455 14.333 11.195 9.856 + 11.988 11.648 12.174 12.597 13.499 14.499 15.534 17.445 17.938 15.593 14.815 14.345 13.109 13.310 13.441 13.839 15.014 17.142 17.020 15.299 14.663 15.016 15.981 15.529 13.452 14.169 14.618 14.120 15.212 13.721 14.713 14.548 15.896 15.071 11.219 9.982 + 12.075 12.158 12.492 13.065 13.792 14.658 15.192 17.707 17.493 16.519 15.892 14.872 13.513 13.659 13.931 14.507 15.776 17.328 16.686 15.134 14.952 15.269 16.153 15.461 13.279 14.356 14.599 13.893 14.778 13.887 15.834 15.686 15.301 13.877 10.810 9.913 + 11.964 11.947 12.235 13.187 14.033 14.344 15.457 17.690 17.035 16.624 15.371 13.717 13.920 13.815 13.831 14.260 16.047 16.903 16.581 14.945 14.631 15.022 15.765 15.005 12.932 15.019 15.230 14.273 14.686 14.032 16.236 16.323 16.129 14.643 9.320 9.458 + 12.078 11.813 11.993 13.065 13.949 14.516 15.711 17.796 16.968 16.256 15.493 13.773 13.643 13.486 13.387 13.992 15.572 17.056 16.884 14.650 14.412 14.808 15.275 14.353 12.534 14.726 14.965 14.082 14.640 13.583 15.543 15.634 15.615 15.031 8.907 8.836 + 11.912 10.850 11.743 12.395 13.329 14.380 16.357 17.649 16.970 15.667 14.548 13.727 12.771 12.703 12.568 13.296 14.587 17.070 16.709 14.237 13.908 14.117 14.415 12.913 11.690 14.316 14.175 12.955 13.906 13.063 14.361 14.816 14.792 14.534 9.469 8.673 + 11.716 11.806 10.759 11.947 13.193 14.659 15.934 16.032 15.394 14.942 12.296 11.340 11.752 11.468 11.243 10.948 11.805 14.248 15.204 13.540 13.561 12.206 11.109 9.421 11.577 11.771 11.259 10.827 11.369 10.689 10.352 11.241 11.330 11.105 9.529 9.269 + 10.472 9.224 9.906 9.390 9.912 10.165 10.715 11.379 10.839 10.478 10.328 9.671 8.883 7.734 6.921 7.460 8.053 9.921 11.303 11.481 10.403 9.307 9.199 10.945 12.008 11.905 11.149 9.956 12.468 11.830 9.871 10.928 11.923 10.963 10.019 10.315 + 12.935 12.315 11.091 11.039 10.022 10.625 10.040 8.922 9.431 8.708 7.790 6.769 6.902 7.400 7.409 7.950 8.325 9.073 10.362 11.962 11.237 9.468 10.457 12.735 14.825 14.777 14.561 13.556 15.097 14.988 12.922 12.391 12.850 12.967 12.600 11.647 + 13.552 13.590 12.830 10.875 10.685 9.958 9.596 8.033 8.397 9.322 8.923 7.723 7.889 7.473 8.152 8.008 8.097 9.395 9.740 11.193 11.140 10.648 12.226 13.869 15.939 16.701 15.481 14.750 15.417 14.825 13.819 14.147 14.317 14.584 13.609 12.902 + 13.153 12.887 11.839 10.807 10.822 9.914 8.738 8.834 9.595 9.662 8.204 8.120 8.470 8.040 8.822 8.162 9.122 8.186 9.816 11.381 11.230 11.320 13.046 14.499 16.142 16.877 15.915 15.585 16.181 15.753 15.861 15.517 15.751 15.083 15.173 14.292 + 9.727 9.179 9.286 9.181 8.205 7.459 8.038 9.542 9.958 10.200 9.202 8.833 7.929 8.722 8.309 8.401 9.699 10.006 9.872 12.469 12.113 11.773 13.690 15.228 17.108 17.618 16.692 15.503 16.854 16.320 16.311 15.052 15.915 16.379 15.934 14.372 + 9.624 9.440 9.667 8.721 8.102 8.603 9.217 8.137 9.148 10.024 7.975 7.141 6.674 8.884 8.404 8.111 7.810 10.705 11.641 14.366 13.502 11.362 14.972 16.125 17.344 17.128 16.304 17.433 17.913 17.089 16.368 16.073 16.024 15.984 15.490 14.890 + 9.941 8.943 8.418 6.995 7.639 8.705 7.635 10.215 10.534 9.499 8.516 9.235 8.373 7.170 8.115 9.089 9.830 9.741 10.864 12.919 12.744 12.565 14.037 16.026 16.767 16.021 15.760 17.050 17.337 17.416 15.967 15.486 15.435 15.208 15.501 14.641 + 12.882 13.197 12.349 10.862 9.418 10.265 9.443 10.036 8.704 8.500 8.393 9.183 8.849 8.683 8.264 9.201 10.627 11.951 11.797 12.838 12.445 12.736 14.975 16.365 16.236 16.726 15.560 16.311 16.426 15.744 16.075 14.867 15.145 14.967 15.127 14.727 + 13.061 13.934 13.035 9.613 10.800 10.173 10.888 10.577 9.557 9.279 9.691 9.645 8.798 7.891 7.527 7.981 9.740 11.728 11.323 13.106 11.782 11.925 14.291 15.829 14.969 13.911 13.565 14.515 13.912 12.732 13.288 13.502 13.698 13.897 13.492 13.124 + 14.521 12.779 12.074 9.525 10.683 10.297 8.912 8.951 9.946 9.023 7.989 8.961 8.237 8.865 8.751 7.272 9.768 10.249 12.153 12.529 10.733 11.008 11.335 12.835 12.541 11.424 11.258 13.216 11.984 11.614 10.791 11.799 11.727 11.172 11.464 11.068 + 14.429 12.495 12.229 10.864 12.048 12.783 13.404 13.659 13.262 12.919 12.507 11.403 10.820 10.670 11.284 11.274 11.589 12.338 12.540 12.621 11.807 11.577 11.235 12.068 12.747 11.636 10.558 11.205 9.910 10.539 9.718 9.719 9.782 8.428 8.334 8.145 + 13.385 13.814 12.252 12.818 13.165 13.469 14.651 14.121 13.990 13.705 12.589 11.957 11.618 11.299 11.348 11.585 12.392 13.225 13.443 12.952 11.447 11.200 10.685 11.018 11.595 10.880 11.509 11.864 9.167 8.220 8.323 10.302 11.386 9.519 7.435 6.366 + 12.933 13.008 12.278 11.808 12.211 13.648 14.158 14.775 13.236 13.028 12.512 11.906 10.395 11.012 11.218 11.999 12.647 13.106 13.343 11.875 11.125 10.615 10.883 11.304 12.016 12.367 12.148 11.771 10.398 9.310 8.561 10.508 11.579 9.744 8.021 6.741 + 13.019 12.140 12.249 11.149 12.000 13.188 13.553 12.971 12.383 11.392 11.988 10.678 8.933 9.624 10.549 11.854 12.631 12.295 11.275 10.740 10.165 10.024 10.782 11.328 12.204 12.586 12.171 10.766 9.947 8.977 7.101 8.989 10.975 10.049 8.170 6.613 + 12.544 12.224 12.149 10.724 11.276 12.498 12.396 11.143 10.126 9.499 10.421 9.947 8.267 6.282 8.192 10.336 10.283 9.535 9.265 9.446 9.688 9.511 10.773 11.176 12.518 13.067 11.569 10.247 10.354 9.787 8.361 10.416 12.595 11.768 9.249 8.453 + 12.329 12.304 12.178 10.892 11.224 11.984 11.726 11.076 10.180 10.180 10.095 9.423 7.684 6.975 8.786 10.417 10.042 9.754 9.872 10.249 9.541 10.573 11.155 11.672 12.353 13.222 11.854 9.739 9.772 10.093 9.118 11.600 13.736 13.453 10.698 8.102 + 11.575 11.349 11.094 9.455 10.618 11.708 12.485 11.536 9.907 9.793 9.768 8.726 8.730 9.901 11.027 12.687 13.684 12.413 11.570 11.468 11.373 10.696 9.974 10.823 11.583 12.351 10.303 9.193 10.897 10.912 9.994 10.458 12.785 12.052 8.812 7.309 + 11.802 11.689 11.825 10.753 11.809 12.863 14.021 13.282 12.890 12.429 10.623 10.778 10.360 10.963 11.277 12.775 14.514 14.232 12.628 12.151 12.166 12.432 12.126 11.497 11.600 11.745 10.916 11.155 11.654 10.760 11.219 11.772 12.445 12.635 9.864 7.642 + 11.446 11.133 11.303 11.133 11.141 12.698 14.011 14.749 13.621 12.685 10.835 11.065 10.076 11.023 11.377 12.574 14.698 15.134 13.007 11.778 11.925 12.651 12.563 11.656 11.349 12.101 11.834 11.800 11.866 10.600 10.993 12.547 12.802 12.970 9.999 5.904 + 11.378 11.186 11.065 11.150 11.326 13.257 15.002 15.744 15.035 13.451 12.727 11.711 11.141 11.695 12.048 13.024 15.169 15.361 13.396 12.213 12.175 12.906 13.060 12.331 11.611 13.295 12.817 12.894 12.504 10.862 11.095 12.963 12.795 11.385 9.352 7.148 + 11.500 11.403 11.532 11.813 12.213 14.254 15.488 15.115 14.837 13.351 13.073 12.338 11.905 12.178 12.631 14.041 14.989 14.121 13.044 12.355 12.203 12.370 12.720 12.757 13.119 12.766 12.278 12.260 10.724 9.350 10.640 12.452 12.315 11.559 9.766 8.495 + 9.875 10.267 11.502 11.891 12.352 12.832 14.060 13.469 12.490 11.992 11.253 10.710 10.506 11.490 12.489 13.221 13.786 11.273 10.048 9.606 9.527 9.848 11.214 11.240 10.516 9.780 9.756 10.570 9.205 7.651 8.662 11.033 10.525 9.724 8.868 9.279 + 9.521 9.843 10.518 10.748 12.088 12.799 12.446 11.365 10.624 9.960 9.579 8.636 9.100 9.918 11.995 12.434 11.136 9.306 8.510 8.199 8.238 8.890 10.913 11.253 9.168 7.937 8.633 9.638 8.274 6.589 7.445 9.409 8.997 8.616 6.898 7.605 + 6.977 8.256 8.187 6.767 6.243 6.569 6.796 6.567 7.228 6.028 5.506 4.750 4.367 4.490 6.242 6.315 7.348 4.774 4.606 4.759 4.019 5.593 6.216 6.364 5.345 6.151 5.150 5.912 6.064 5.718 5.790 5.868 6.417 6.028 5.594 4.174 + 6.605 7.888 7.766 6.215 5.917 5.713 6.280 6.671 7.268 6.233 5.104 4.392 4.112 3.989 5.989 6.441 6.337 4.282 4.354 4.199 3.847 4.683 5.406 5.813 5.454 6.677 6.098 6.305 6.053 5.666 5.941 4.784 4.938 5.089 4.638 4.321 + 7.116 7.059 6.852 7.373 7.828 7.675 7.934 7.547 7.114 5.135 4.362 4.388 3.959 2.240 3.460 5.238 5.721 4.561 3.493 3.245 4.298 4.627 4.479 5.702 5.282 6.354 5.894 5.655 6.006 5.024 5.603 4.533 5.103 5.248 4.890 4.216 + 6.520 6.777 7.087 7.010 7.226 6.872 7.047 7.229 7.157 5.168 5.037 3.378 2.694 2.796 4.192 3.817 4.250 4.529 4.159 3.799 4.164 3.957 5.446 6.515 6.511 6.268 5.889 5.504 5.597 5.947 5.866 6.237 6.703 6.586 5.799 4.661 + 4.928 7.610 9.312 9.489 8.112 8.796 9.040 8.316 8.370 8.170 7.458 6.756 6.990 6.299 5.320 6.436 7.841 7.086 7.050 7.732 7.142 8.281 7.234 8.638 8.861 8.432 9.085 8.948 8.847 9.267 10.038 10.593 11.139 10.968 10.055 8.821 + 10.265 8.831 8.291 7.323 8.335 8.043 8.669 9.210 10.007 9.255 7.816 7.506 7.701 7.658 7.734 8.230 9.337 10.098 8.129 8.333 8.937 8.790 9.448 10.089 10.309 9.368 9.482 9.324 9.613 9.846 9.459 9.517 10.079 9.661 9.583 9.528 + 10.215 9.043 8.933 10.412 10.242 11.371 12.243 12.589 12.913 11.811 10.902 10.818 10.827 10.383 10.940 11.675 12.583 13.666 12.705 12.442 11.956 12.077 12.814 13.637 13.410 12.173 12.033 12.391 12.689 12.012 10.798 12.366 12.174 10.490 10.236 10.119 + 10.550 9.951 10.468 11.298 11.712 13.356 15.252 16.537 15.998 14.266 12.992 12.880 11.831 11.971 12.033 12.595 13.947 15.517 14.803 13.437 13.088 13.126 13.720 15.243 14.855 12.525 12.177 12.773 13.487 12.249 10.862 13.704 13.203 11.783 10.140 10.375 + 10.911 10.568 11.101 11.943 12.143 13.281 15.095 16.175 16.541 15.358 13.293 13.197 12.556 12.588 12.402 12.789 13.859 15.535 16.173 14.726 13.687 13.541 14.070 15.268 15.827 14.227 12.885 12.798 13.333 12.670 10.889 13.060 13.287 10.451 9.781 10.707 + 10.919 10.579 11.065 12.116 12.236 13.189 14.823 16.008 16.765 16.061 13.223 13.712 12.591 12.948 12.705 13.349 14.179 15.594 16.418 15.499 14.483 14.082 14.196 15.393 16.272 15.221 13.755 13.644 13.984 13.142 11.889 14.038 13.587 11.361 9.706 10.632 + 10.542 10.138 10.736 12.046 11.530 13.203 14.585 15.772 16.905 15.269 14.038 13.805 12.544 12.997 12.577 13.234 13.891 15.551 16.842 14.774 14.135 13.807 13.823 15.082 16.128 14.486 13.394 13.448 13.752 12.550 13.163 14.656 14.219 12.268 8.811 8.068 + 10.067 9.901 10.856 11.825 11.931 12.927 14.057 15.729 17.002 16.582 14.205 13.904 12.889 12.836 12.707 13.432 14.171 16.475 16.889 14.870 14.164 13.900 13.952 15.500 16.299 14.644 13.328 13.562 14.084 12.390 14.411 15.686 15.398 13.696 8.607 8.112 + 10.761 10.610 11.540 12.196 12.478 13.099 14.179 15.602 17.036 17.078 14.666 14.234 13.514 13.256 13.277 13.861 15.030 16.761 16.706 14.997 14.289 14.185 14.466 15.989 16.115 14.292 13.115 13.042 13.033 12.355 14.428 15.233 14.898 12.602 9.307 8.529 + 10.700 10.524 11.444 12.285 12.508 12.864 14.102 15.348 16.586 17.073 14.893 15.273 13.743 13.881 13.738 14.450 15.795 16.502 16.064 14.600 14.258 14.449 14.571 15.715 15.627 14.029 12.869 12.601 12.093 12.454 15.078 15.203 14.783 12.030 8.988 8.987 + 9.591 9.266 10.946 11.496 11.604 12.089 13.840 14.201 16.768 16.909 15.776 15.289 13.584 13.733 13.772 14.273 15.905 16.605 15.509 14.208 13.663 13.717 13.988 15.241 15.248 13.473 12.072 11.865 11.148 11.593 14.722 14.562 14.270 11.956 8.576 8.556 + 9.850 9.471 10.892 10.910 11.807 12.177 13.659 14.484 16.908 17.041 15.603 14.838 13.599 13.374 13.657 14.444 16.151 16.322 14.858 13.778 13.442 13.601 13.786 15.293 15.421 13.389 12.195 12.113 11.261 12.469 15.388 14.947 14.468 12.271 9.214 7.575 + 10.288 10.314 11.179 11.690 12.059 12.745 14.021 14.639 16.957 17.011 16.351 15.151 13.673 13.849 14.237 15.294 16.663 15.952 14.680 14.064 13.701 13.647 13.763 15.348 15.596 13.880 12.572 12.222 11.232 13.966 15.912 15.172 14.207 11.965 9.634 7.495 + 10.008 9.904 11.149 11.646 11.601 12.677 13.934 14.262 16.842 16.753 16.487 15.230 13.862 13.931 14.406 15.478 16.290 15.294 14.362 13.877 13.523 13.765 13.840 15.212 15.408 13.691 12.351 11.863 11.630 14.429 16.034 15.409 14.172 12.622 10.297 8.603 + 9.359 9.251 10.785 11.024 11.463 11.999 13.448 14.390 16.974 17.262 15.641 14.958 13.496 13.505 13.570 15.252 16.608 14.460 12.985 12.566 12.422 12.775 12.877 14.495 14.914 13.028 11.601 11.118 10.900 14.473 16.015 15.049 14.170 11.730 9.386 7.766 + 9.904 10.305 11.187 11.633 12.388 12.604 14.031 15.138 17.224 17.088 15.572 15.114 14.169 13.825 14.188 15.966 16.520 14.353 12.922 12.636 12.653 13.017 13.042 14.456 15.291 13.707 12.017 11.563 11.312 15.169 16.552 15.620 14.721 12.327 9.745 8.567 + 10.177 10.573 11.390 12.285 12.895 13.022 14.553 16.036 16.875 17.221 14.667 14.755 14.697 13.941 14.921 16.445 16.112 13.697 12.760 12.580 12.333 12.791 12.991 13.450 14.480 13.008 11.984 11.460 11.259 14.914 16.498 15.740 14.831 12.662 10.038 9.271 + 9.763 10.148 10.756 12.066 12.658 12.914 14.347 15.989 16.559 16.624 14.461 13.579 13.770 13.218 14.333 15.738 15.349 12.408 11.314 10.964 10.770 10.625 10.733 11.564 12.129 11.692 10.987 10.506 10.548 13.887 15.489 15.011 14.101 11.868 9.628 10.477 + 8.961 9.946 10.608 11.222 12.550 13.132 13.996 16.602 17.046 15.384 14.565 13.810 12.732 13.378 14.529 15.780 14.107 12.168 10.769 10.577 10.311 10.321 10.480 11.127 11.377 12.534 10.960 9.903 9.589 13.451 15.157 14.805 13.934 11.618 9.659 10.556 + 9.452 10.223 10.608 11.953 12.966 13.790 15.730 17.168 16.369 14.336 14.540 13.905 12.778 13.480 14.857 15.879 13.617 11.877 10.595 10.545 9.684 9.765 9.987 9.579 12.432 13.268 10.382 8.945 8.444 10.511 12.732 13.349 11.733 11.060 8.558 9.192 + 9.416 10.117 10.585 11.859 13.263 14.492 15.359 16.009 14.297 13.361 12.853 13.062 12.361 13.047 14.286 14.717 13.630 11.689 10.985 9.874 9.312 9.433 9.889 10.435 12.403 12.961 11.415 10.032 9.334 9.311 12.989 14.203 13.098 12.979 10.883 8.888 + 8.201 8.235 8.684 9.928 11.138 13.735 15.327 14.288 12.600 11.151 10.890 10.562 10.350 10.624 13.278 14.231 11.846 9.673 9.021 8.236 7.389 7.624 7.906 8.525 11.417 12.577 9.575 7.838 7.135 7.089 11.712 13.385 11.416 11.915 10.077 8.859 + 8.501 9.545 10.333 11.586 13.334 14.338 14.230 12.718 11.536 11.010 10.729 10.776 10.785 11.286 12.928 13.351 12.035 10.264 8.871 8.526 8.480 8.391 8.510 8.988 10.774 11.941 10.244 8.541 7.519 7.702 10.081 12.402 11.947 11.347 10.648 9.552 + 5.717 6.016 5.858 8.459 10.527 11.109 10.073 9.348 9.486 7.964 7.765 7.321 5.975 6.455 9.060 10.385 8.526 5.893 5.952 4.508 4.866 3.922 4.271 5.279 7.648 9.348 6.621 4.487 3.498 3.599 6.438 8.849 8.398 7.193 6.588 3.822 + 5.366 7.316 7.227 6.153 5.343 6.625 7.951 9.564 10.257 7.882 5.957 6.107 5.920 4.382 5.815 6.175 6.907 6.050 4.983 4.971 5.418 4.577 3.817 5.359 6.099 5.471 4.879 4.090 4.007 3.915 5.667 5.408 4.692 3.674 3.192 3.659 + 6.209 7.598 7.601 6.054 5.365 7.644 9.047 9.138 9.165 8.692 5.743 5.311 5.739 4.971 5.530 6.268 6.169 6.089 5.239 5.217 4.822 3.579 5.094 5.559 6.022 4.961 4.972 4.003 3.928 4.226 6.337 5.749 5.091 2.415 3.131 2.834 + 4.542 3.829 4.134 5.176 4.584 6.404 8.787 8.345 9.362 9.343 5.859 5.617 4.773 5.618 6.262 6.447 6.744 5.266 4.734 4.915 4.353 3.759 5.218 5.161 5.719 4.782 4.400 4.011 3.532 3.738 5.885 5.250 3.959 3.489 3.130 2.308 + 2.763 4.259 4.928 4.791 4.433 6.612 7.445 6.397 8.471 9.071 5.735 5.687 5.163 4.606 4.953 6.279 7.076 5.898 3.947 5.016 4.884 5.171 5.027 4.498 4.095 4.375 4.182 4.152 4.353 4.726 5.707 4.332 3.662 3.432 3.066 1.846 + 4.767 5.190 4.157 3.778 4.153 3.956 7.615 8.170 8.254 8.443 5.360 5.173 5.351 5.203 5.127 5.784 5.319 4.584 3.949 4.124 4.725 4.695 4.439 5.129 5.809 5.356 4.602 4.277 3.579 4.315 6.061 4.816 3.988 2.708 3.006 2.854 + 3.662 5.191 5.399 4.519 6.758 7.668 8.114 8.036 7.226 7.615 8.461 8.228 7.039 5.782 6.079 5.835 5.348 6.764 7.242 7.627 8.000 8.092 8.583 8.781 8.776 7.445 8.022 7.913 6.645 5.485 5.594 5.849 6.275 6.634 5.074 4.332 + 3.428 3.664 4.672 3.940 7.001 8.242 7.858 6.467 7.234 7.425 8.831 8.281 6.593 6.386 6.222 6.386 6.012 5.513 6.203 6.736 6.684 7.049 7.539 7.845 8.115 6.864 8.120 7.563 5.439 5.372 4.913 5.028 5.893 6.128 4.562 4.007 + 4.141 3.949 3.751 3.812 4.985 5.283 7.821 8.110 6.889 6.029 5.200 4.953 5.521 5.809 5.062 5.471 5.465 3.934 4.494 4.941 4.810 5.052 5.758 5.532 5.572 5.496 5.642 5.305 4.469 3.729 4.778 4.734 3.991 4.044 3.238 1.958 + 4.705 4.339 3.747 3.239 2.996 5.739 7.133 6.870 6.428 5.647 5.347 5.421 5.443 4.395 5.225 6.888 6.395 6.516 5.600 4.476 5.279 6.115 6.041 5.270 5.936 6.052 5.558 4.394 4.123 3.117 4.462 4.649 3.365 3.140 2.943 2.632 + 3.870 4.844 3.193 3.994 4.745 6.376 7.519 7.813 6.612 5.708 5.711 5.090 5.621 5.886 7.503 7.095 4.829 5.103 5.369 5.677 6.284 5.616 4.179 5.261 5.968 6.235 5.651 5.204 4.131 3.949 4.474 4.453 3.882 3.760 3.934 3.476 + 4.661 3.701 0.936 3.804 4.886 6.058 5.713 5.901 6.216 5.384 5.439 5.829 5.538 6.837 6.563 6.389 6.234 5.082 4.789 4.900 5.569 6.059 6.012 5.941 6.017 5.967 4.365 5.139 4.995 4.827 4.911 4.037 4.686 4.356 4.137 3.429 + 5.369 3.812 3.860 4.266 4.625 4.820 5.822 7.515 6.656 5.165 5.618 6.027 5.829 7.163 6.823 5.649 6.460 5.984 6.430 5.744 6.480 5.869 5.158 5.679 5.666 5.181 4.570 5.118 4.988 4.441 4.522 4.440 4.631 4.393 3.543 2.811 + 5.352 5.497 4.073 3.892 5.175 6.434 7.001 7.104 6.622 4.010 3.682 4.924 4.663 5.526 6.578 6.320 6.920 6.250 5.768 5.855 6.146 6.211 6.751 6.275 5.476 5.431 5.574 5.331 4.816 4.745 4.959 4.316 5.150 4.106 3.618 2.736 + 2.974 4.342 4.165 3.453 5.344 6.941 7.016 6.106 6.728 4.871 5.386 4.582 5.411 5.908 7.362 6.751 6.317 6.414 5.846 5.005 6.172 6.259 6.265 5.583 6.245 6.605 4.635 4.663 5.325 5.159 4.420 4.816 5.185 4.325 4.238 2.963 + 4.410 3.563 4.213 4.883 5.572 7.437 7.201 5.697 5.177 5.872 6.531 6.406 6.503 6.438 6.188 6.606 5.888 5.527 6.285 6.391 6.448 6.125 6.089 5.863 6.383 6.812 6.627 5.544 4.388 5.077 5.208 4.774 4.278 4.398 4.321 2.981 + 4.809 4.552 6.215 6.270 4.799 6.543 7.374 5.892 6.541 5.761 4.579 5.708 5.512 7.142 7.352 7.797 6.440 6.962 6.906 5.696 6.129 6.178 5.406 5.918 5.538 5.817 6.972 6.799 4.642 5.221 5.252 5.320 4.660 5.256 4.134 2.569 + 5.316 5.896 5.297 6.070 5.431 7.380 8.166 6.596 6.680 6.896 6.296 5.481 4.829 7.756 7.511 7.066 5.730 5.905 6.717 6.478 6.323 7.075 5.611 6.491 6.192 6.011 5.404 5.345 4.865 5.475 4.767 5.204 5.022 4.715 4.171 3.393 + 3.820 6.029 6.681 5.849 6.149 7.385 6.619 7.448 7.937 5.294 5.737 4.449 5.496 6.548 6.260 6.862 6.832 6.975 6.137 6.356 5.904 6.776 6.196 6.686 6.805 6.689 5.180 5.435 5.451 5.901 5.178 4.892 4.618 4.108 4.992 4.050 + 6.679 7.963 7.305 6.543 6.078 7.937 8.503 7.139 7.828 5.292 5.863 7.048 7.639 6.717 6.338 5.327 6.744 6.099 6.165 5.731 6.503 6.132 6.277 6.596 6.526 6.642 6.144 6.432 5.630 5.796 5.070 5.417 5.272 4.925 5.092 4.233 + 6.073 6.838 7.669 7.019 6.043 8.297 8.879 6.745 7.057 6.891 6.577 6.262 7.857 8.599 8.251 7.096 6.261 6.712 5.728 5.143 5.917 6.293 5.623 5.377 5.203 5.963 5.984 6.421 6.410 5.586 5.192 4.868 5.608 5.195 4.762 3.869 + 4.877 6.359 7.905 7.788 8.216 8.565 7.485 8.140 7.772 7.796 8.027 8.171 7.512 7.438 7.321 7.425 7.237 7.545 7.088 6.391 6.106 5.597 6.864 7.135 7.362 7.587 6.431 5.587 6.339 6.414 5.676 5.344 6.293 7.216 7.155 7.190 + 6.853 9.245 10.553 10.942 10.743 9.965 9.059 9.528 9.607 9.709 10.658 10.472 8.540 6.880 7.990 8.672 8.522 8.868 9.054 7.830 6.745 6.255 7.798 8.832 9.756 8.839 7.723 5.766 6.648 8.638 6.866 5.494 8.453 10.266 9.163 9.498 + 7.592 8.601 8.459 9.576 8.528 8.392 6.768 7.553 9.100 8.166 8.692 8.201 7.320 6.838 6.428 7.286 7.693 6.290 7.364 7.991 8.079 8.641 8.451 7.791 7.386 7.615 7.197 7.705 6.806 7.379 6.726 7.415 8.497 8.592 7.372 6.304 + 7.010 6.265 8.047 9.198 8.234 8.569 7.883 7.539 8.027 8.429 8.676 8.122 7.139 7.289 7.345 7.664 7.028 7.503 6.845 7.393 8.049 8.615 8.650 6.782 6.356 8.537 8.193 7.933 7.223 6.677 6.087 7.338 8.524 8.693 7.441 6.504 + 2.544 3.306 5.486 7.175 5.840 8.198 7.922 6.854 9.372 10.018 8.351 8.223 7.934 8.702 8.025 7.665 7.359 7.183 6.450 6.780 5.836 6.551 8.152 7.299 7.675 8.053 6.518 6.653 6.331 6.484 5.912 6.580 7.492 8.321 8.056 5.479 + 4.168 5.315 6.335 7.352 7.877 8.528 8.489 7.243 7.936 9.097 10.998 10.172 7.927 7.541 8.271 8.033 6.768 7.133 8.417 7.503 6.595 6.915 7.822 7.399 8.318 7.246 6.295 6.573 5.965 5.998 5.366 6.606 7.667 7.064 6.265 4.865 + 3.804 4.556 5.504 5.909 8.860 9.713 7.761 6.446 7.071 9.287 12.085 11.978 7.605 5.889 7.895 9.119 7.995 6.508 7.578 8.348 7.048 7.458 8.561 6.988 7.565 6.645 7.045 7.412 6.379 6.832 6.113 5.837 7.170 7.065 6.743 5.306 + 3.802 3.497 5.283 7.439 8.893 10.072 8.033 7.197 5.988 8.683 11.475 11.566 8.513 5.803 6.917 9.721 9.517 7.891 8.195 9.725 7.710 6.636 7.629 7.687 7.569 7.055 7.570 6.756 6.420 7.411 5.659 6.334 7.586 7.619 6.461 5.324 + 3.627 3.197 5.014 5.569 7.259 8.963 8.835 5.171 6.470 8.074 8.528 8.066 8.889 7.824 6.187 6.648 9.449 10.334 6.844 6.695 8.611 8.329 5.558 8.019 8.338 5.746 8.952 8.219 7.171 7.737 5.578 6.917 7.839 8.091 6.861 5.692 + 4.728 4.470 5.424 5.837 6.876 8.875 8.779 5.107 4.858 5.570 5.464 7.476 8.813 6.326 5.594 5.753 9.963 10.464 5.783 5.011 9.388 8.793 5.767 9.211 9.164 6.010 10.109 9.006 9.029 9.073 6.996 7.369 9.536 9.484 8.678 6.764 + 1.240 3.497 5.110 5.625 8.544 9.653 7.576 5.522 5.326 6.469 9.401 10.013 8.363 5.147 5.689 7.500 9.611 8.736 6.693 8.685 8.676 6.522 7.960 8.268 6.922 7.687 9.026 7.418 8.234 7.279 6.695 6.569 8.772 8.006 7.523 5.506 + 3.571 5.131 6.485 7.112 8.157 8.720 7.624 7.583 8.822 10.238 10.807 10.460 5.834 4.511 6.436 6.732 6.741 6.559 7.382 7.506 5.219 5.155 6.121 4.799 5.371 5.458 5.746 5.904 5.249 6.071 5.736 5.207 5.834 5.928 5.087 4.466 + 2.940 3.472 6.866 7.349 5.604 7.052 7.660 6.983 9.475 9.700 9.981 9.114 7.680 5.611 5.245 6.572 6.532 6.219 6.231 5.068 4.548 4.125 4.969 4.478 5.113 5.458 6.062 6.570 5.120 4.440 5.296 5.957 6.378 6.764 6.898 4.242 + 3.666 3.341 5.964 6.491 4.731 6.013 5.380 5.842 7.947 8.180 9.067 8.143 5.318 6.412 6.163 5.157 5.433 5.468 4.261 5.672 5.484 4.373 4.645 4.195 4.167 5.329 5.622 5.514 5.075 4.362 4.963 5.753 6.766 6.716 6.760 4.553 + 4.328 4.211 5.559 6.673 6.594 6.376 6.295 4.462 6.580 7.494 6.479 4.361 3.707 7.285 6.904 5.278 5.124 6.144 6.217 5.786 5.722 5.285 4.646 4.369 4.172 4.344 5.431 5.742 5.502 4.982 5.203 6.089 6.993 7.225 7.091 5.291 + 3.965 4.432 5.854 5.637 6.353 8.038 7.577 6.010 5.993 6.288 6.139 5.109 6.380 6.828 5.835 5.098 4.922 5.649 5.283 5.236 4.843 5.273 5.805 5.195 4.552 5.487 6.419 6.874 6.400 5.056 5.263 6.337 7.036 7.689 8.023 5.127 + 3.622 4.181 5.954 7.022 6.696 7.607 7.344 6.301 5.926 5.567 6.462 6.201 5.725 6.010 6.373 5.379 5.504 5.970 5.807 5.326 4.570 5.391 5.538 4.523 4.636 5.387 6.058 6.357 6.953 5.423 5.147 6.015 7.024 7.934 8.292 5.916 + 4.796 4.860 5.193 6.453 6.777 6.044 7.061 6.573 5.584 5.996 6.976 6.466 4.726 6.849 6.485 4.852 5.085 5.498 5.958 5.348 5.213 5.728 5.212 5.357 4.970 4.470 5.644 5.743 5.875 5.626 4.484 5.749 7.411 7.327 7.296 5.160 + 2.202 3.825 4.757 4.854 5.774 7.662 7.833 7.218 6.721 6.325 6.645 6.993 4.159 6.535 6.077 5.197 5.804 5.964 5.162 5.096 6.204 5.455 5.156 5.164 4.585 4.279 6.208 5.731 5.578 5.341 5.011 5.830 6.589 7.193 7.098 4.448 + 4.159 5.109 4.462 5.531 6.554 7.911 6.895 7.007 6.397 6.354 6.161 6.455 5.858 6.034 6.177 5.769 6.073 4.719 5.157 5.194 5.164 4.894 4.217 4.538 4.596 4.315 5.946 5.801 4.880 4.811 5.547 5.326 5.915 6.688 6.501 4.947 + 3.636 4.522 5.206 5.198 6.055 7.009 6.893 7.234 7.968 6.576 5.702 5.990 4.581 5.727 5.912 4.874 6.538 5.928 5.093 4.697 4.670 5.535 6.211 4.432 4.046 4.127 4.894 5.500 5.360 5.277 5.055 5.601 6.505 7.398 6.530 3.656 + 3.841 3.105 3.494 3.789 5.773 7.965 7.168 6.647 7.850 6.963 5.871 6.640 5.499 6.212 5.592 5.530 5.878 5.899 4.988 5.473 5.042 4.886 6.125 4.778 4.285 3.959 4.619 4.840 4.896 4.454 4.388 4.473 5.491 6.270 5.679 3.665 + 4.326 5.876 6.287 4.913 4.658 7.557 7.704 6.800 6.521 8.307 7.857 6.183 6.046 6.545 5.853 4.138 5.839 4.964 4.684 6.074 5.097 5.495 5.092 4.796 4.364 4.555 5.890 5.467 5.411 4.964 4.401 4.193 4.761 5.579 5.144 3.791 + 3.603 5.830 6.646 5.927 4.744 5.856 7.901 6.370 5.093 8.559 9.851 8.229 5.724 6.926 5.942 4.995 5.481 4.506 4.951 4.975 4.398 4.703 4.550 4.138 3.483 4.746 5.272 5.219 4.757 5.102 4.369 4.206 4.394 5.070 3.091 2.161 + 4.022 4.620 5.273 4.030 3.655 5.777 7.735 6.896 5.833 8.700 9.898 7.941 5.842 4.701 4.674 6.246 6.154 6.453 4.710 4.843 4.854 5.268 4.596 4.671 4.518 4.589 5.278 4.957 5.149 5.217 4.267 4.555 4.475 4.434 4.176 2.696 + 3.315 4.099 3.782 2.061 3.621 5.618 6.089 4.179 6.681 8.849 8.365 5.988 6.059 3.154 4.561 4.740 6.220 7.014 5.021 4.080 5.041 4.500 4.331 4.780 4.351 4.112 5.918 4.580 4.496 4.362 4.542 4.669 4.799 4.654 4.398 2.449 + 2.748 3.933 3.358 3.625 5.312 5.506 4.993 3.524 3.802 6.177 6.197 5.634 6.044 4.567 4.927 4.082 4.847 4.729 4.331 4.006 4.100 3.184 4.545 3.482 3.468 2.993 5.005 4.422 4.409 4.340 4.248 3.667 4.000 4.053 3.557 2.281 + 3.438 4.042 4.954 5.390 4.448 5.869 6.935 5.970 4.921 4.766 4.006 4.089 5.431 5.773 5.313 5.280 5.317 6.936 5.896 4.594 4.291 5.086 4.285 3.412 4.979 4.122 4.423 4.085 3.638 4.453 4.063 3.436 3.895 4.621 4.462 3.161 + 2.949 2.048 3.396 3.377 3.706 3.167 6.454 6.478 5.051 4.405 3.871 3.666 4.966 5.170 4.425 3.613 3.921 6.100 6.618 4.386 2.314 4.952 6.023 3.938 4.067 5.491 4.569 5.237 4.869 4.234 4.323 4.306 5.277 4.597 3.844 1.925 + 3.735 3.535 2.535 1.593 2.655 3.939 4.764 3.830 2.528 2.927 3.094 4.030 3.050 4.129 3.554 3.540 2.835 3.143 2.505 0.137 1.845 3.430 2.350 1.232 2.044 2.057 1.671 0.995 1.707 2.951 3.291 2.191 2.327 1.926 1.612 0.975 + 4.540 3.482 2.907 1.893 2.432 3.769 4.829 2.789 3.590 2.366 2.275 2.600 2.742 2.639 3.543 3.407 2.003 2.093 1.934 1.684 2.323 3.344 2.866 2.581 2.328 2.061 2.686 2.377 1.978 2.237 2.766 2.566 2.165 0.904 1.364 0.812 + 3.560 2.598 3.165 3.610 3.947 3.475 3.925 3.931 3.489 2.388 1.480 1.106 2.045 2.073 1.407 3.111 3.188 2.564 1.193 1.628 2.432 1.991 1.899 1.742 2.501 1.809 2.306 2.466 2.813 2.435 2.542 2.375 2.332 1.270 1.574 1.359 + 3.995 3.990 2.810 4.045 4.076 5.044 3.957 3.514 3.915 2.824 2.387 1.147 2.576 4.219 3.560 3.098 3.025 2.884 1.374 1.911 2.573 2.462 2.867 1.863 2.374 1.821 2.309 2.617 1.069 2.578 2.582 1.829 0.876 1.856 1.929 0.328 + 2.469 1.587 1.926 2.630 2.799 4.367 5.425 3.726 4.385 3.926 1.046 1.146 2.032 4.382 4.134 3.573 3.542 2.821 1.704 1.988 2.401 2.327 2.960 1.474 1.183 0.991 2.053 1.836 1.044 2.111 1.902 1.818 1.079 1.932 1.844 0.662 + 2.792 1.645 2.003 2.604 2.790 2.537 3.845 3.414 2.689 3.282 1.026 1.679 2.362 3.747 3.688 2.797 2.455 2.362 2.555 1.656 0.552 1.383 2.038 1.720 1.729 1.640 2.128 2.664 2.034 2.264 1.518 1.004 0.968 1.200 1.294 0.693 + 2.505 2.453 1.866 3.060 2.652 3.632 3.417 2.628 2.317 3.690 3.410 1.959 2.502 3.414 3.187 3.712 2.599 1.922 2.915 1.978 0.441 1.098 2.681 2.190 1.339 0.602 1.469 1.259 1.027 1.281 1.566 1.070 1.545 1.637 1.023 0.688 + 0.726 1.201 1.549 1.990 3.272 3.336 4.232 3.027 3.044 3.746 2.687 2.811 3.273 4.153 3.293 3.052 2.415 2.058 3.371 2.842 1.636 1.670 2.828 1.283 1.860 1.223 0.279 0.815 1.025 1.266 2.032 1.163 1.364 1.975 0.609 0.151 + 2.839 0.978 0.752 1.988 1.899 2.535 4.014 3.360 3.767 2.666 2.435 2.164 1.919 2.251 1.988 1.373 2.815 2.347 1.679 1.744 2.015 1.748 1.405 1.820 1.586 1.279 1.146 2.014 1.757 1.852 1.441 1.892 0.393 1.040 1.324 0.177 + 4.666 3.656 1.879 2.993 2.256 2.418 3.050 3.064 2.916 1.823 1.863 2.033 3.065 3.325 3.234 1.221 1.623 2.862 2.354 1.800 1.012 0.987 2.189 1.407 0.935 0.872 1.207 0.950 1.824 1.678 0.741 1.458 0.332 1.284 1.471 0.016 + 5.328 5.399 4.239 4.887 5.131 5.449 5.796 5.719 3.609 0.292 1.502 3.431 3.759 3.442 3.400 1.880 2.500 2.410 2.581 2.227 1.932 1.537 2.243 1.057 1.812 0.934 1.527 1.347 1.111 1.501 0.823 1.880 0.936 1.495 1.480 0.196 + 9.409 9.512 9.702 9.864 10.414 9.543 9.838 8.966 8.435 7.119 7.041 6.634 5.991 6.088 5.934 5.919 5.690 5.288 4.653 4.705 4.960 4.385 4.496 3.967 4.181 3.489 2.981 3.769 3.833 3.995 3.977 4.209 4.430 4.368 4.062 2.911 + 11.060 11.271 11.549 11.773 11.761 11.293 11.301 10.800 9.479 8.349 7.538 7.772 7.402 6.596 7.639 7.446 6.835 6.729 6.205 6.082 6.923 6.674 6.383 6.149 5.664 5.544 4.810 5.609 5.535 5.742 5.367 5.794 6.212 5.888 5.510 4.159 + 9.785 10.258 10.564 11.014 11.080 10.769 10.594 10.498 9.184 8.194 7.415 6.141 5.869 6.230 6.740 6.708 5.996 5.705 6.407 6.258 7.435 7.930 8.195 8.144 7.638 6.305 4.001 3.729 3.629 3.808 3.442 3.584 4.010 3.659 3.102 2.269 + 9.414 10.001 9.033 9.149 10.104 10.264 9.091 8.983 7.410 6.482 5.598 4.659 4.278 4.804 5.214 4.976 4.716 3.910 4.416 4.025 5.967 5.889 6.234 6.272 5.905 4.362 3.932 3.728 3.906 3.115 3.238 3.163 2.915 2.821 2.457 2.013 + 7.532 6.616 6.228 6.417 7.753 8.097 6.504 4.114 3.871 4.335 3.217 1.284 0.976 4.040 3.824 2.971 2.271 2.217 1.802 1.732 2.550 3.147 3.734 3.754 4.476 4.162 4.639 4.896 5.546 4.590 4.780 4.497 4.144 3.498 2.872 1.968 + 2.850 3.584 2.803 3.216 5.228 5.718 5.630 3.371 2.823 2.929 2.956 1.806 1.976 2.501 2.465 2.024 2.329 2.055 1.071 0.987 1.212 1.093 1.915 2.813 2.601 2.354 3.327 3.085 3.704 2.983 2.649 2.451 2.260 1.775 2.451 1.240 + 4.657 3.237 4.183 6.162 5.845 5.589 5.486 6.358 4.449 5.636 4.957 4.816 3.906 3.340 3.753 3.397 3.293 3.123 3.612 3.646 4.004 4.509 5.263 5.783 5.836 5.445 5.115 4.933 4.994 4.729 4.012 4.214 4.447 4.434 3.785 3.731 + 7.193 7.509 7.420 7.463 7.168 7.151 8.053 8.909 9.392 10.169 10.215 9.361 7.898 6.834 7.700 8.061 7.776 7.582 7.436 7.899 8.286 8.621 9.376 9.927 9.897 9.150 8.715 8.096 8.067 8.192 6.574 7.208 7.921 7.699 6.556 6.087 + 5.252 6.269 6.129 4.987 4.018 5.295 4.374 5.344 6.298 7.738 7.940 6.291 3.822 3.671 4.844 4.467 3.556 4.186 4.000 4.220 4.529 4.852 5.780 6.600 6.578 6.297 6.538 5.035 5.174 5.466 4.074 4.737 5.598 5.766 6.165 5.450 + 2.435 2.291 3.689 3.542 3.594 3.309 2.718 3.618 1.423 3.795 4.138 2.809 1.787 2.403 2.700 2.195 2.052 2.740 2.481 3.831 4.343 3.671 4.946 5.278 5.099 5.137 6.262 5.229 5.011 4.492 4.988 5.284 6.075 6.691 6.789 6.899 + 3.330 3.855 3.592 3.418 4.051 4.031 5.418 4.521 3.464 4.113 4.979 2.976 2.240 2.383 2.860 3.322 5.067 4.944 4.742 5.549 5.840 4.363 5.806 5.607 6.041 6.012 6.215 6.275 6.261 6.645 5.549 6.787 7.439 7.245 6.988 7.027 + 3.031 2.355 2.522 3.587 2.065 4.143 5.527 6.172 5.684 4.485 5.982 4.785 3.307 2.890 2.970 4.154 6.083 7.088 7.000 6.569 6.716 6.253 5.399 6.452 5.280 6.229 8.097 6.191 6.378 6.135 6.208 6.069 7.088 8.244 7.983 6.221 + 4.308 3.751 4.011 4.429 4.599 3.897 5.344 5.739 5.526 7.228 7.507 5.882 2.722 2.910 4.222 3.931 5.259 7.310 7.514 6.885 7.450 6.496 5.481 6.866 6.396 5.750 7.329 6.424 5.981 5.818 6.108 6.666 7.477 7.299 7.263 6.855 + 2.398 3.241 4.622 4.713 4.080 3.865 4.867 5.484 5.732 6.279 5.423 3.956 2.872 3.349 4.151 4.377 4.688 5.804 5.517 5.667 5.872 5.452 4.987 6.269 6.716 4.375 6.454 5.597 4.283 3.799 4.385 5.465 5.736 5.999 5.814 5.387 + 4.618 5.224 4.893 3.252 3.936 4.898 4.996 4.671 5.442 5.545 5.271 5.277 3.925 4.273 3.785 2.150 1.938 2.628 3.481 2.743 3.618 3.569 4.231 3.848 3.236 3.437 3.878 3.540 3.342 3.898 3.422 3.775 3.538 4.158 3.538 3.372 + 4.963 6.653 7.241 6.278 5.068 5.927 5.785 4.525 4.562 3.661 5.134 4.005 1.745 3.500 3.410 3.094 2.972 2.252 2.859 2.669 2.951 2.972 4.000 3.243 3.402 2.689 2.581 2.793 3.173 2.866 3.230 3.098 2.436 2.853 2.587 1.864 + 5.496 6.171 5.426 5.802 5.704 4.460 5.314 4.315 4.341 3.870 3.515 4.053 2.747 3.637 3.297 3.175 3.028 3.053 2.790 3.189 3.032 3.807 3.917 2.616 2.293 2.003 2.259 3.174 2.685 2.065 2.604 2.550 2.515 2.215 1.888 1.442 + 5.219 4.958 4.788 3.903 5.029 5.009 4.273 4.155 3.687 4.402 4.586 3.815 2.232 3.935 3.260 3.284 1.916 2.108 3.220 2.282 3.308 2.873 2.516 2.954 2.455 1.489 2.371 2.682 2.778 2.356 1.841 2.282 3.198 2.687 1.903 0.693 + 4.717 4.834 5.668 5.121 5.776 5.584 5.200 3.389 4.135 3.414 4.026 3.144 2.741 3.162 3.131 3.909 3.575 2.581 2.175 2.556 3.389 3.346 3.763 4.103 3.383 3.710 2.851 2.404 2.679 2.680 2.268 1.562 2.489 1.901 1.891 1.419 + 5.194 4.716 5.458 5.348 5.368 5.621 5.626 3.589 4.233 3.656 4.782 4.587 3.719 3.640 3.097 2.212 2.808 2.827 1.826 2.827 3.626 3.601 3.813 3.862 3.538 2.854 2.458 3.802 3.040 2.622 1.994 2.212 2.062 2.079 1.832 1.649 + 6.020 5.588 5.517 4.653 3.797 5.463 4.924 4.938 4.496 3.873 4.457 3.883 2.746 2.787 2.783 1.520 2.051 2.560 2.546 3.167 3.146 2.875 3.796 4.188 4.175 3.446 3.230 4.481 4.419 3.375 2.914 3.310 3.606 4.047 3.185 2.918 + 6.539 6.269 6.289 5.723 6.230 6.200 6.142 6.147 5.194 5.771 5.715 5.016 4.121 2.612 3.803 4.453 3.733 3.823 4.036 4.453 4.765 5.225 5.603 6.272 6.687 7.090 7.375 8.444 7.526 6.405 3.932 4.948 5.599 7.597 7.328 7.187 + 5.005 5.260 5.031 5.055 5.060 6.192 5.426 5.018 3.617 3.868 4.351 4.975 3.103 2.820 3.362 2.754 2.037 2.736 2.250 2.758 3.105 3.688 3.877 4.697 4.999 5.264 5.715 7.723 6.340 4.949 2.963 3.630 5.320 7.043 5.673 5.869 + 5.630 6.566 6.849 5.999 5.817 6.314 6.066 5.650 5.621 5.791 6.122 5.726 4.047 2.570 3.092 4.072 3.156 3.265 3.843 3.931 3.582 3.261 4.719 4.878 4.902 4.844 5.206 6.377 5.724 4.134 3.329 3.017 3.080 3.809 2.693 2.781 + 4.861 5.737 5.996 4.794 3.363 5.486 4.314 4.339 2.881 3.747 4.830 4.984 2.922 2.150 2.255 2.377 3.046 3.759 2.601 2.888 3.248 2.921 3.720 3.655 3.342 2.615 3.326 4.713 4.696 3.566 1.560 1.920 2.172 3.523 3.643 2.805 + 3.139 4.131 5.123 4.973 5.340 4.997 4.640 2.965 3.042 4.722 4.885 4.198 1.875 3.253 3.454 2.098 2.390 3.424 2.636 2.876 2.819 3.848 3.540 2.865 3.991 4.555 3.729 3.837 4.526 4.205 2.368 1.596 2.496 3.093 3.330 2.803 + 6.653 5.885 6.235 5.899 5.323 6.233 6.020 4.658 5.652 7.313 7.550 6.850 4.182 3.601 3.584 3.979 3.332 3.980 4.458 3.420 3.524 3.608 3.147 3.160 3.650 4.048 3.968 3.445 5.534 4.884 2.470 2.953 3.465 3.783 2.550 2.753 + 6.014 6.067 6.359 6.105 5.632 5.071 3.887 3.475 4.546 5.831 5.286 5.680 2.966 2.979 3.646 3.753 3.618 3.432 4.076 3.971 3.387 3.738 3.201 3.727 3.922 4.224 4.129 3.976 4.986 4.161 3.315 3.303 4.135 4.212 3.055 2.674 + 6.007 4.817 5.107 4.287 3.192 4.546 4.963 5.677 6.253 5.386 5.504 4.272 4.692 4.232 4.482 3.739 3.675 4.366 3.912 4.068 4.114 4.982 5.106 4.910 4.499 3.955 4.314 4.560 4.980 5.050 4.018 5.558 6.379 5.469 3.981 3.533 + 4.946 2.927 4.588 4.600 4.020 4.934 3.749 4.267 4.775 5.350 5.686 5.888 5.458 4.251 4.218 3.934 3.921 4.606 4.472 3.394 4.437 5.032 4.819 5.771 5.347 4.741 4.178 5.764 5.878 5.158 4.912 5.739 7.259 6.808 6.062 5.343 + 4.353 5.297 5.308 3.323 3.994 4.796 4.270 4.342 3.571 5.132 5.574 6.069 5.592 4.958 4.026 5.390 5.452 5.755 5.588 5.384 4.428 4.783 5.192 5.763 5.690 6.245 5.404 5.628 5.979 5.911 5.319 5.631 7.216 7.067 6.457 5.757 + 4.330 3.452 4.799 4.553 4.070 3.225 4.126 5.602 5.337 5.199 5.739 7.420 6.402 5.319 4.934 6.221 6.107 5.293 4.411 5.336 5.389 5.722 6.072 6.457 6.156 6.503 5.470 5.793 6.114 6.095 5.383 6.078 6.676 6.635 7.299 6.237 + 2.518 0.844 1.805 1.416 1.628 3.230 5.097 6.083 6.097 6.735 6.319 5.521 6.298 5.291 4.627 5.003 6.282 5.967 4.918 5.451 5.754 4.974 6.229 7.088 6.672 6.149 5.026 5.048 6.427 6.307 4.708 6.179 6.909 6.839 7.183 6.313 + 0.665 2.134 2.537 1.395 1.932 2.977 3.821 2.755 4.429 3.212 4.035 3.862 3.716 4.074 4.011 3.839 4.577 5.094 4.711 4.086 3.983 5.350 5.614 6.519 6.092 6.090 4.929 5.541 5.646 5.530 4.722 5.707 6.306 5.957 6.362 5.924 + 2.167 1.249 2.181 1.840 3.921 4.872 3.810 1.147 3.651 3.441 4.355 3.623 4.210 3.464 3.896 3.127 4.523 5.156 4.817 3.869 2.467 4.553 5.326 5.569 5.143 5.878 4.732 5.111 4.986 4.990 4.023 5.023 5.696 5.472 6.045 5.225 + 3.610 2.001 1.643 2.971 2.519 3.587 3.444 3.880 3.145 2.870 5.419 5.065 3.492 3.409 2.955 2.561 2.558 3.178 3.636 3.579 2.979 2.002 3.894 3.383 2.954 2.940 2.255 3.199 3.871 3.148 2.569 3.695 3.722 3.459 3.576 3.304 + 1.488 2.982 2.912 3.812 3.627 4.006 3.772 3.078 3.905 4.211 5.205 4.254 1.376 4.077 4.075 3.854 3.605 3.315 2.762 1.549 2.603 2.057 2.339 2.458 2.547 2.375 1.882 1.806 2.592 2.697 1.600 2.071 2.757 2.764 2.319 1.492 + 3.779 3.038 1.367 0.786 1.427 3.381 2.652 0.889 0.193 1.884 2.835 1.511 -0.604 2.586 3.161 3.145 2.816 2.035 2.741 2.429 2.562 2.225 2.410 2.996 2.541 2.339 2.293 1.173 1.593 2.174 1.576 1.668 1.950 2.271 1.244 0.740 + 2.606 2.212 2.060 2.488 2.190 2.613 3.321 2.425 1.246 2.282 2.674 0.610 0.349 2.289 2.312 1.431 1.611 1.099 2.182 2.067 2.648 2.432 2.386 2.751 1.602 1.515 2.095 1.752 1.880 2.528 2.480 2.234 2.110 1.278 1.788 0.921 + 2.419 3.105 3.210 2.415 1.889 2.710 3.117 1.047 2.180 2.343 3.404 2.317 0.929 2.741 3.153 3.217 2.040 0.807 1.991 2.031 2.662 1.379 2.463 2.791 2.536 2.976 2.659 1.830 1.909 1.541 2.158 2.350 2.173 1.910 2.413 1.783 + 2.300 3.125 1.843 2.556 3.315 2.809 2.344 0.559 1.399 2.657 3.023 1.647 2.305 3.697 2.860 2.414 3.699 2.522 1.661 2.110 3.277 3.322 1.521 2.269 2.399 3.035 4.056 3.694 4.305 4.255 4.593 4.884 4.778 4.673 5.232 4.778 + 3.106 2.947 0.955 0.531 2.866 3.542 3.431 2.006 3.218 2.965 1.981 2.304 1.515 2.349 2.528 2.335 2.594 2.212 2.523 2.756 2.747 3.336 3.311 2.645 2.635 2.601 3.758 3.351 3.992 3.955 4.544 4.794 4.471 4.332 5.160 4.810 + -0.486 1.877 1.066 1.182 2.123 1.340 2.187 1.969 1.671 1.055 2.244 2.615 2.281 2.656 2.974 3.815 3.132 2.031 2.249 2.710 2.791 3.137 3.062 2.091 1.973 1.788 1.686 0.939 2.059 1.969 2.353 2.128 1.502 1.535 1.271 0.081 + 2.555 1.801 1.348 1.731 2.379 2.277 1.802 1.472 2.030 1.718 1.909 3.617 2.288 3.521 3.185 3.706 3.650 3.009 1.675 1.950 1.505 3.008 3.178 1.621 1.546 1.980 2.250 1.575 2.405 1.959 1.962 2.192 1.508 1.389 1.569 1.016 + 3.198 3.232 2.629 1.197 1.360 3.255 3.340 1.958 -0.401 1.265 1.789 2.326 1.070 3.901 3.183 3.460 2.899 2.174 1.048 1.966 2.404 2.357 2.347 1.383 2.815 2.213 2.456 2.544 1.857 1.549 1.705 1.752 1.678 1.118 0.868 1.279 + 2.457 1.168 0.273 2.621 2.964 2.197 2.385 1.884 3.193 3.539 2.021 1.926 1.884 3.161 2.621 0.942 2.070 2.294 1.639 2.624 1.709 0.925 1.528 2.261 2.847 2.174 2.070 2.425 2.540 2.690 1.800 0.889 1.728 1.476 1.833 1.051 + 4.007 3.538 3.237 3.032 2.697 2.268 3.745 3.709 2.428 1.382 0.766 1.775 2.540 2.443 3.020 1.802 1.849 1.573 1.332 0.889 0.986 0.355 2.312 2.543 1.307 1.358 2.797 2.477 2.200 2.696 2.541 1.732 1.779 1.877 1.653 0.893 + 5.141 4.202 2.861 2.788 3.639 3.589 2.139 2.434 3.233 1.610 0.330 1.915 2.037 2.545 2.702 2.064 1.926 1.251 1.857 1.675 1.472 2.292 2.005 1.352 2.142 1.537 1.954 1.580 1.784 1.292 2.617 2.681 1.876 1.085 1.253 1.183 + 4.354 3.301 3.559 3.166 3.268 3.709 3.884 2.386 2.358 2.027 1.755 2.116 2.107 4.770 4.183 2.658 2.332 1.641 1.814 1.629 2.132 2.517 1.401 1.464 2.155 1.808 1.726 0.750 1.610 2.437 1.665 2.307 1.917 1.832 1.075 1.059 + 2.512 2.444 2.638 1.039 2.487 4.829 4.810 3.363 3.615 3.492 3.659 2.941 2.011 4.005 4.321 2.160 2.188 1.814 1.056 2.024 2.569 1.194 1.751 1.975 2.113 1.696 2.010 1.324 1.638 1.239 1.790 1.739 1.174 1.810 1.442 0.834 + 1.289 0.830 1.172 1.089 0.834 2.019 3.629 3.449 1.593 1.217 2.475 2.282 0.297 1.693 3.181 2.879 2.700 2.340 1.737 1.703 0.873 0.599 0.704 1.460 1.341 1.543 1.662 1.426 1.017 1.264 0.930 1.116 2.254 2.551 1.884 1.432 + 2.050 2.717 2.153 3.361 3.194 3.384 4.629 3.415 2.048 2.687 2.173 1.533 1.593 1.109 3.139 2.515 1.314 1.161 1.355 1.280 0.997 0.721 1.237 0.685 0.793 1.297 1.924 1.997 1.907 2.112 1.819 1.099 1.218 1.544 2.008 0.656 + 0.441 2.878 3.009 2.986 4.008 4.200 4.271 2.440 3.467 2.144 -0.481 0.276 1.124 3.113 2.735 1.523 2.123 2.121 1.533 1.076 1.163 2.564 2.234 1.834 1.628 1.343 1.421 0.746 0.973 2.272 1.722 0.600 1.199 1.966 1.668 0.843 + 1.367 1.705 1.303 3.198 3.372 2.982 3.007 2.943 2.416 1.473 2.166 1.631 0.829 2.946 4.039 2.721 3.186 3.465 3.503 1.405 2.121 2.698 1.786 1.180 1.587 2.244 2.876 2.254 0.969 1.289 0.860 0.460 0.913 1.942 1.110 -0.659 + 2.670 2.028 1.873 1.365 1.426 0.615 0.327 1.355 1.418 1.812 1.106 0.718 0.297 2.274 3.346 3.242 2.877 3.055 2.270 2.187 1.945 1.678 1.190 1.240 1.989 2.454 2.175 1.832 2.198 1.927 1.121 0.649 1.203 1.380 0.641 -0.262 + 4.454 5.535 5.033 3.215 3.166 5.286 4.948 2.057 2.418 2.795 1.902 -0.207 0.522 2.767 2.452 2.071 1.680 2.359 1.590 2.150 2.882 2.815 1.927 1.487 2.292 2.005 1.208 1.591 2.062 1.974 0.634 0.947 1.181 1.156 1.314 1.042 + 2.359 5.333 5.169 4.388 4.051 5.537 5.676 3.937 2.181 2.385 1.256 0.687 0.369 2.660 3.023 3.405 3.009 2.768 2.037 1.734 1.764 1.926 0.608 1.080 1.033 0.399 1.305 1.119 1.017 1.397 -0.002 1.001 1.348 1.423 1.344 0.886 + 3.456 4.839 5.749 4.160 4.505 4.500 4.586 4.815 3.757 4.239 3.944 4.424 3.794 4.316 4.766 5.049 4.985 6.164 6.956 7.266 6.310 5.727 5.064 4.766 4.487 4.357 4.154 6.011 6.393 6.318 6.147 5.819 5.642 5.308 5.173 4.409 + 5.698 5.095 6.147 6.661 6.051 5.981 6.946 7.001 6.802 6.722 6.165 6.899 6.379 5.579 5.615 5.726 6.251 8.624 9.951 10.668 8.877 8.032 7.401 7.209 6.760 6.193 6.444 9.039 9.209 8.878 8.516 7.991 7.813 7.529 7.358 6.568 + 1.643 1.872 1.672 2.482 2.185 3.061 2.980 1.956 1.875 2.601 2.185 3.630 2.265 4.199 4.994 4.333 4.259 5.048 7.152 8.720 6.567 5.004 4.971 5.071 3.589 3.861 4.190 6.081 6.454 5.982 5.975 3.529 3.651 3.324 2.958 1.552 + 0.172 0.848 -0.039 0.453 2.414 2.278 1.345 0.763 0.456 1.621 1.366 0.473 1.929 3.701 3.564 2.208 2.043 2.229 2.083 5.030 4.595 2.623 2.446 3.058 1.611 1.525 1.659 2.828 2.788 1.719 2.034 1.441 2.537 2.741 1.589 1.046 + 1.122 2.589 2.384 1.362 1.411 1.770 2.242 1.278 1.890 1.914 2.599 2.606 2.703 4.307 3.794 3.546 2.790 3.450 3.190 2.659 3.160 3.103 3.436 3.490 2.313 2.205 2.612 3.001 2.522 2.567 3.404 3.530 2.741 2.668 2.827 1.710 + 2.263 3.260 2.798 1.922 2.929 3.116 4.592 5.689 4.458 4.631 5.439 5.894 5.817 6.135 7.236 6.341 3.709 5.462 5.227 6.874 8.334 7.568 6.234 6.950 6.427 5.696 7.078 7.313 5.917 6.067 6.674 6.594 5.384 5.524 5.802 4.915 + 1.467 1.633 1.588 3.504 3.811 4.121 4.268 6.583 7.913 7.284 6.883 7.478 8.101 7.961 8.083 7.496 6.931 8.426 9.180 10.933 11.977 10.926 8.460 8.125 8.057 8.223 8.539 8.729 8.283 6.679 7.610 7.889 7.568 5.638 5.824 5.594 + 5.573 5.148 4.060 4.903 6.351 7.667 7.152 6.625 8.838 9.040 8.278 8.430 8.935 10.817 10.759 10.086 9.606 10.298 11.015 11.183 12.498 12.710 11.013 9.676 9.413 9.615 9.700 10.868 8.831 8.171 8.856 9.191 9.102 9.892 8.886 7.212 + 7.928 8.051 7.934 7.254 7.539 9.013 7.838 8.690 9.786 10.910 11.561 11.308 11.227 11.700 12.111 10.747 11.634 12.164 12.232 13.296 13.510 12.606 12.476 12.185 11.829 10.437 9.818 11.122 10.183 8.616 9.082 9.010 10.957 11.654 10.307 9.404 + 10.751 9.979 11.728 11.209 12.120 11.973 12.785 12.910 13.600 13.537 14.287 14.015 14.281 13.942 13.603 13.552 13.517 12.931 13.933 14.789 13.246 13.042 12.670 13.365 12.885 11.668 10.647 10.179 9.126 8.375 9.813 9.446 11.870 12.821 10.172 9.319 + 11.477 12.981 13.035 12.379 12.909 13.825 14.191 14.965 15.787 16.510 16.037 15.790 15.597 15.214 15.358 15.091 15.167 15.928 16.491 16.426 15.004 13.980 14.139 14.262 13.223 12.017 11.477 10.473 10.105 10.636 11.057 9.821 10.781 11.198 9.074 7.442 + 11.641 13.427 13.121 12.126 11.740 13.700 13.678 14.685 16.156 17.515 17.521 16.936 16.434 15.763 15.862 16.043 16.714 17.755 18.314 17.553 16.449 16.093 16.655 16.745 15.352 13.771 13.335 12.175 12.100 12.972 12.762 10.850 11.661 10.892 9.318 8.308 + 10.699 13.264 12.640 11.224 11.687 13.778 13.338 14.061 16.479 17.373 17.442 17.168 16.786 15.694 16.092 15.983 16.861 18.022 18.479 17.227 16.144 16.071 16.505 16.533 14.931 13.164 12.963 12.652 11.661 12.480 12.541 11.147 10.317 10.091 9.297 8.828 + 11.504 13.538 12.781 11.949 11.728 14.012 13.424 14.682 16.532 17.392 17.659 17.281 16.965 15.996 15.822 16.231 17.289 18.497 18.069 17.123 16.286 16.170 16.810 16.948 15.539 13.664 13.636 13.696 12.571 13.187 13.854 12.380 11.430 9.511 8.841 8.749 + 11.599 13.672 13.115 12.131 12.594 14.002 14.057 15.277 16.849 17.581 18.061 17.383 16.918 16.417 16.234 16.902 17.913 18.353 17.232 16.199 15.849 15.806 16.613 16.961 15.628 13.770 13.621 14.138 13.702 13.090 14.355 13.780 12.214 10.321 8.470 8.329 + 12.536 14.175 13.121 13.200 13.087 14.333 14.839 15.856 17.558 17.829 18.658 17.319 16.831 16.809 17.812 17.924 17.849 16.925 15.829 15.132 15.217 15.143 16.079 16.728 15.395 13.381 13.101 13.689 13.969 12.257 13.832 14.233 12.680 10.770 7.493 7.364 + 13.197 14.408 13.535 13.702 14.003 15.540 16.354 16.537 17.399 17.794 17.891 16.628 16.677 16.643 17.463 17.142 15.534 14.166 13.729 13.824 13.718 13.761 14.738 15.914 14.625 11.877 11.005 11.868 12.768 11.038 10.658 12.287 10.948 9.818 6.544 6.280 + 13.620 14.236 13.510 12.926 12.249 14.422 15.344 15.557 15.087 14.580 14.713 14.747 15.406 14.821 13.544 12.571 11.895 12.110 11.501 11.875 11.809 12.383 13.458 14.345 14.065 12.344 10.639 9.894 9.417 7.994 8.260 10.266 9.697 8.396 6.575 5.773 + 13.847 14.663 12.878 12.684 12.113 12.149 10.322 9.415 10.752 10.702 12.407 13.486 13.844 11.434 10.718 10.964 10.683 11.595 10.465 10.705 11.055 11.393 12.599 13.860 13.894 12.444 10.157 8.948 7.744 6.205 8.059 10.307 11.095 10.104 8.201 5.403 + 13.926 14.240 12.658 12.524 12.054 11.436 10.601 10.207 10.328 10.149 12.652 13.481 13.321 10.938 10.501 10.350 11.029 11.044 10.648 10.999 11.205 11.175 12.200 13.741 13.967 12.854 10.262 8.849 7.206 6.871 8.697 9.651 9.800 10.177 8.500 6.074 + 13.881 14.004 12.701 12.514 12.185 11.540 10.570 8.680 9.341 10.311 12.502 13.956 13.317 11.310 9.948 10.531 11.252 10.871 11.273 11.055 11.027 11.207 12.200 13.781 13.959 12.540 10.293 8.810 7.430 8.929 9.626 9.808 10.990 10.510 8.705 6.222 + 13.814 13.889 12.810 12.631 12.314 11.451 10.392 8.346 8.687 9.627 12.334 14.035 13.387 11.498 9.623 9.918 10.760 10.774 10.939 10.831 10.854 11.245 12.487 13.950 13.849 11.899 9.641 8.274 6.720 8.935 9.145 9.436 11.123 10.293 8.404 5.067 + 13.729 13.796 12.910 12.743 12.359 11.424 10.029 9.127 10.001 10.969 12.327 13.667 13.043 11.670 9.111 10.361 10.055 10.340 10.647 10.945 10.951 11.038 12.277 13.645 13.176 10.740 8.685 7.020 7.067 9.350 8.926 9.014 9.856 9.016 5.968 4.277 + 13.503 13.815 12.797 13.603 13.186 14.419 15.097 14.926 13.593 12.455 12.459 13.585 14.323 14.612 13.718 10.874 11.082 11.887 11.762 11.769 11.298 11.235 12.260 13.225 12.076 9.544 8.083 8.556 8.849 10.722 10.778 9.824 10.068 9.286 7.819 6.752 + 13.323 13.171 12.812 13.059 14.063 15.173 16.548 16.638 17.033 15.780 14.561 15.084 15.619 16.454 16.689 16.286 15.322 13.339 13.350 12.846 13.045 12.769 13.572 14.226 12.972 10.991 10.854 9.924 9.649 12.064 12.436 11.400 10.812 9.721 7.417 6.688 + 11.889 12.055 13.356 13.206 13.727 14.911 15.852 17.637 17.899 17.460 14.987 15.306 15.133 15.456 17.200 17.963 17.335 14.967 14.480 13.778 13.888 13.598 14.800 15.442 13.942 12.462 12.632 11.678 10.747 12.915 13.235 11.828 11.194 9.305 7.634 6.500 + 12.813 12.540 12.712 12.985 13.866 14.657 16.170 17.451 17.772 17.047 14.816 14.760 14.230 14.514 15.487 17.211 18.396 16.793 15.412 14.164 13.750 13.779 15.207 16.077 13.951 13.052 13.279 11.997 10.569 12.326 12.452 11.472 10.827 10.141 10.213 8.491 + 13.574 13.270 11.813 13.162 13.930 14.750 16.698 17.240 16.744 15.355 14.124 13.345 13.176 13.377 13.890 14.661 16.386 17.304 16.420 14.250 13.000 12.877 13.915 15.550 14.013 12.511 12.559 11.042 8.901 8.762 10.694 12.037 11.387 11.502 12.520 9.147 + 12.902 12.714 11.758 12.962 13.219 13.389 14.734 13.954 13.158 13.181 11.661 10.081 9.971 8.899 9.614 9.722 11.353 13.492 13.838 13.489 13.060 12.165 13.014 12.766 12.113 13.472 11.529 10.421 11.122 10.676 9.846 10.756 9.907 11.216 11.089 9.142 + 9.883 9.826 8.031 8.701 7.743 8.923 11.023 11.045 10.400 9.659 7.704 8.552 6.943 7.364 7.747 8.878 9.412 9.144 10.252 9.577 9.322 7.625 8.389 9.213 9.406 10.894 9.075 9.033 9.881 9.347 8.357 9.211 8.549 7.975 7.886 6.045 + 7.774 6.131 7.510 7.310 7.224 7.488 8.917 9.258 10.927 9.851 9.304 9.145 7.536 5.470 7.900 8.859 9.628 9.665 8.096 6.322 7.755 8.160 8.068 8.362 8.621 9.054 7.631 5.555 5.959 6.545 4.482 4.707 5.546 5.417 6.123 4.962 + 6.490 6.150 6.652 5.814 5.339 6.187 7.683 8.950 10.383 11.734 10.393 7.367 6.956 7.418 7.351 8.521 10.195 10.405 7.351 8.026 7.693 8.132 9.177 9.097 9.882 9.462 9.123 8.682 7.861 7.857 6.452 6.823 7.548 7.707 7.516 6.888 + 6.142 6.297 6.164 5.522 5.335 6.305 8.839 8.937 9.377 10.329 9.773 7.579 6.370 6.298 7.152 7.765 8.665 8.114 6.813 7.288 6.792 5.275 6.805 7.661 9.180 8.599 6.232 6.233 6.612 6.149 5.276 5.887 6.878 6.514 6.365 6.411 + 6.863 6.709 7.049 7.339 8.678 9.218 9.081 8.879 9.986 10.535 10.724 10.842 10.165 8.654 9.765 10.480 10.461 9.710 9.861 9.827 10.758 11.366 10.836 11.738 13.099 13.468 15.151 15.287 14.884 14.879 12.712 12.143 11.752 11.874 11.091 10.476 + 5.939 5.749 7.218 8.166 8.350 9.063 9.622 9.513 9.517 10.033 10.524 10.606 9.833 9.004 9.932 9.890 9.604 9.002 9.415 10.175 10.998 11.257 12.270 13.539 13.913 14.498 15.920 15.493 15.835 15.310 13.889 13.789 12.884 13.472 12.731 12.751 + 6.875 6.885 7.185 6.843 7.656 6.810 7.232 8.184 8.312 7.989 7.871 8.387 7.257 7.835 8.577 8.631 9.397 10.131 11.560 11.225 11.808 12.088 14.156 15.701 15.077 15.377 15.488 14.771 15.262 15.888 15.319 15.063 15.084 15.118 15.410 14.776 + 8.798 6.799 7.643 8.249 10.612 11.353 10.834 10.325 10.216 10.658 11.488 10.969 10.568 11.204 11.528 11.315 12.539 12.472 13.468 14.417 14.761 13.553 14.219 14.915 15.093 15.475 14.456 14.379 14.956 15.518 15.188 14.774 15.137 15.024 15.741 14.302 + 10.455 11.104 10.805 10.794 10.905 11.642 10.102 8.973 9.694 8.497 10.105 9.470 9.733 10.352 10.695 11.331 12.181 13.896 13.783 14.167 13.890 13.898 14.481 13.369 14.290 13.565 12.996 13.355 14.291 15.247 13.368 13.577 13.621 13.622 12.908 12.532 + 15.225 13.805 13.977 14.689 13.651 12.036 9.866 8.194 9.522 10.371 10.228 10.703 11.292 10.909 12.846 13.200 13.108 13.837 14.188 12.960 11.671 12.371 11.603 10.211 10.266 10.910 10.706 10.829 10.292 11.212 9.936 10.661 11.195 11.786 11.449 11.414 + 14.736 13.963 13.905 13.373 13.322 13.305 13.041 12.668 12.532 12.401 10.716 11.006 11.132 11.497 13.717 13.907 12.836 13.198 12.428 11.837 12.203 11.533 11.065 10.441 9.415 9.347 9.937 10.070 9.890 9.646 8.953 9.893 9.919 11.380 10.252 9.447 + 17.073 16.506 15.609 14.885 14.350 12.990 13.263 13.544 12.396 12.035 11.956 11.098 11.959 11.181 13.246 13.596 12.009 12.107 12.189 10.918 10.762 10.249 11.309 11.278 9.112 9.315 8.781 9.815 9.116 9.105 9.006 8.623 8.418 9.931 9.615 7.906 + 16.623 17.042 15.511 14.802 14.453 13.494 13.410 13.129 12.071 11.256 11.503 11.127 11.270 11.475 13.011 12.445 12.003 11.361 11.443 11.357 10.279 10.103 9.414 10.012 9.991 10.189 10.089 9.617 8.704 8.871 8.834 8.817 8.230 8.792 8.276 6.738 + 17.805 17.007 14.341 15.164 14.407 13.854 14.089 13.715 11.435 12.241 12.900 12.144 11.381 10.845 11.421 11.964 11.596 11.936 11.827 10.169 10.386 9.981 9.225 9.439 9.580 9.775 10.305 10.270 8.805 9.172 9.031 8.879 8.656 7.516 7.918 6.988 + 15.768 15.300 14.920 15.237 14.551 12.449 12.653 12.133 10.962 11.174 11.194 11.248 11.432 10.957 11.478 10.919 10.703 9.913 9.314 9.661 9.835 9.420 8.764 8.754 8.084 9.083 9.574 8.943 7.880 8.562 8.819 8.612 7.843 7.478 7.447 6.017 + 13.712 13.012 12.353 12.453 10.913 11.484 10.589 8.741 8.876 9.004 10.236 11.631 13.128 11.538 10.303 10.977 9.613 9.424 9.191 10.513 10.796 10.166 8.553 8.618 8.455 9.141 8.959 9.088 8.962 8.481 8.700 8.152 7.284 8.217 7.931 6.822 + 13.432 11.879 10.105 11.624 11.761 9.724 9.948 9.508 9.448 8.466 9.706 11.804 14.094 13.551 11.927 10.765 10.562 9.697 10.302 10.838 10.935 10.614 10.120 9.600 8.670 9.342 8.658 9.479 9.322 8.076 8.668 8.185 7.723 8.031 7.862 7.271 + 10.717 7.976 9.021 9.941 10.489 9.120 8.910 8.008 7.459 7.756 8.645 10.898 12.367 14.779 14.122 11.036 9.973 10.754 9.512 8.840 8.722 8.868 9.346 9.968 8.841 7.908 8.844 9.342 8.381 8.213 8.940 8.149 6.707 6.775 7.649 6.839 + 10.287 8.503 9.174 10.648 11.500 11.444 10.598 9.102 8.196 7.997 8.537 7.464 9.772 11.769 11.132 9.710 8.882 8.582 8.364 9.029 8.264 7.226 7.414 8.821 8.551 7.974 8.522 7.819 7.793 7.159 7.074 6.198 6.461 6.812 7.013 5.491 + 6.841 6.381 6.707 6.556 9.405 10.151 8.051 6.634 7.372 6.354 5.609 5.691 7.334 8.214 8.982 9.905 8.643 5.635 7.039 6.478 6.559 5.557 6.793 6.850 5.532 6.103 5.972 5.795 6.051 6.438 5.786 5.460 5.646 6.558 6.429 5.237 + 5.920 5.370 6.210 6.897 6.932 7.203 6.485 6.353 6.337 4.753 5.602 6.721 6.578 6.827 7.362 7.777 7.637 7.225 6.099 5.379 6.707 6.496 8.367 6.912 5.651 4.858 5.419 5.374 5.157 5.928 5.628 5.530 5.326 5.765 6.877 5.361 + 5.217 3.321 5.045 5.724 6.612 7.016 5.667 5.689 4.763 5.357 5.280 5.647 6.375 6.925 5.765 7.499 7.476 8.191 8.730 6.501 7.630 7.007 7.994 8.310 7.605 6.785 7.989 7.178 7.059 7.547 6.313 4.623 5.191 5.337 5.576 4.498 + 5.470 4.927 5.317 4.496 6.706 8.203 8.148 7.918 6.414 6.354 5.553 6.694 6.789 6.688 6.484 7.662 7.909 9.217 10.206 8.675 9.216 8.849 8.960 9.348 8.308 7.363 8.926 8.539 8.231 9.153 7.051 5.765 5.276 4.774 6.634 6.241 + 5.570 5.283 5.179 3.713 6.596 8.281 8.506 9.151 8.498 7.878 7.741 7.515 7.480 8.431 8.496 7.951 8.654 8.584 10.167 9.970 9.519 10.117 9.825 9.765 10.368 9.047 10.255 10.567 9.756 9.382 9.752 7.903 5.958 6.204 7.696 8.342 + 5.725 6.945 6.000 5.120 7.137 7.154 9.085 9.539 9.078 9.755 10.150 10.298 10.048 10.347 8.550 8.961 10.121 11.178 11.882 11.940 11.771 10.809 10.563 9.871 10.202 9.301 10.726 10.966 10.432 9.578 10.420 8.394 6.991 7.747 8.850 9.100 + 8.742 9.243 9.214 9.059 8.802 10.066 11.034 11.551 11.547 10.804 10.250 10.927 11.299 9.204 9.751 10.608 11.626 12.251 11.420 13.541 13.696 10.521 10.541 10.318 10.493 10.557 10.463 10.429 9.786 10.325 11.850 11.485 9.385 8.649 9.748 8.576 + 7.622 7.945 8.043 8.613 7.776 8.684 9.320 8.784 11.337 10.809 11.350 12.604 12.643 10.620 11.041 10.872 11.227 12.154 12.766 13.825 13.559 12.767 10.383 11.191 11.493 10.177 11.544 11.551 10.593 10.162 12.045 12.514 10.958 9.555 10.456 9.544 + 9.047 8.958 8.174 8.129 7.561 9.715 9.838 9.555 11.469 12.048 13.338 14.127 13.295 11.924 11.830 10.992 12.301 12.817 14.075 15.770 15.484 13.994 12.217 11.455 11.083 10.705 12.059 12.009 10.787 9.175 10.296 11.777 10.885 10.307 11.280 10.106 + 9.370 9.733 8.409 8.133 9.479 11.065 11.387 10.802 10.703 11.806 12.490 12.924 13.632 12.891 12.904 12.136 12.367 13.465 13.741 16.461 16.621 14.282 13.638 12.751 13.080 12.368 11.161 12.409 11.977 9.295 9.784 10.628 11.046 12.438 12.579 9.813 + 9.597 9.863 9.534 10.279 10.069 10.210 10.568 9.389 10.962 11.986 13.634 13.645 13.877 12.883 12.878 13.091 14.415 14.443 13.860 15.275 16.067 15.610 14.325 13.363 13.705 13.180 11.632 11.933 11.917 10.770 10.304 11.508 11.569 12.664 12.255 9.745 + 11.179 10.068 9.611 11.126 11.323 9.264 8.948 11.148 10.742 9.794 13.593 14.749 14.216 13.253 13.308 13.367 14.694 14.622 14.151 15.724 15.965 13.769 12.966 12.700 13.552 13.856 11.864 11.713 11.995 11.592 10.763 11.471 12.929 12.778 11.841 10.110 + 11.344 12.225 12.654 11.684 13.082 12.533 12.904 12.934 14.341 14.243 14.547 15.460 15.058 13.661 14.268 13.756 14.720 15.222 16.069 16.282 14.552 13.708 13.706 13.071 13.371 13.548 11.191 10.558 12.174 12.435 11.118 11.169 13.358 14.016 10.381 9.085 + 11.579 12.993 13.597 11.619 13.439 13.477 14.949 14.562 16.289 16.599 17.496 17.203 16.573 16.229 16.035 15.836 16.157 16.788 17.358 17.613 16.149 15.494 15.215 14.283 12.884 13.313 11.989 11.134 11.617 12.397 11.450 10.376 13.444 13.235 10.805 8.467 + 11.349 13.023 13.603 11.723 13.012 13.106 14.933 14.592 16.815 17.745 18.359 17.175 16.515 16.858 16.613 16.760 17.346 18.244 18.819 18.357 17.138 16.831 17.040 15.940 13.333 14.196 13.213 12.048 13.472 13.701 13.055 11.893 13.779 13.061 9.618 8.538 + 10.694 13.125 13.381 11.950 13.084 13.631 14.730 15.374 16.512 18.489 18.246 17.792 16.567 16.357 16.302 16.341 17.305 18.380 19.073 17.694 16.265 16.585 17.078 16.303 13.543 13.874 13.395 12.114 12.690 13.629 13.777 12.375 12.507 11.930 9.814 9.300 + 11.610 13.715 13.401 13.030 13.411 14.460 14.853 16.120 16.947 18.662 17.757 17.763 16.171 15.829 15.926 16.450 17.592 18.500 18.597 17.091 16.205 16.831 17.760 16.516 13.676 13.553 13.648 12.800 12.757 13.975 14.948 14.146 14.266 13.379 9.073 9.573 + 11.508 13.930 13.703 13.326 13.647 14.807 15.135 17.055 17.794 19.006 17.353 17.252 16.286 16.149 16.509 17.457 18.727 18.729 17.034 16.419 15.709 16.586 17.463 16.261 13.322 12.783 13.086 12.536 12.492 13.166 14.286 14.423 14.526 13.898 10.377 9.459 + 11.414 14.256 14.055 13.905 14.400 15.016 15.983 18.215 18.301 19.131 16.942 16.406 15.212 16.570 17.412 18.218 18.136 17.860 15.506 15.326 14.988 15.457 16.520 15.900 13.735 12.504 11.955 11.506 11.289 11.661 12.306 13.838 14.204 13.075 10.328 7.597 + 11.752 14.648 14.282 14.700 14.926 15.812 17.117 19.086 18.264 18.262 17.692 17.363 16.923 16.078 18.345 17.509 16.275 15.271 14.088 13.481 13.694 13.766 15.121 15.003 13.301 11.534 10.921 10.205 10.304 11.164 12.900 14.070 14.713 13.497 11.613 8.282 + 11.960 14.753 14.649 15.052 15.567 17.371 18.005 18.976 17.655 15.531 16.737 17.063 17.504 17.215 17.704 16.366 13.554 13.029 12.896 12.151 11.942 12.034 13.528 14.044 12.495 11.572 11.303 10.263 9.847 10.704 12.924 13.185 13.948 14.149 12.816 8.252 + 11.641 14.815 14.780 15.537 16.320 18.145 17.774 17.040 16.767 15.400 14.452 15.786 17.285 16.873 15.189 13.565 12.125 12.118 12.037 11.008 10.876 10.627 11.728 11.543 12.154 12.358 11.408 10.340 10.184 10.984 13.579 13.195 14.057 15.035 14.118 6.339 + 11.437 14.822 14.721 16.235 16.696 17.776 17.403 14.758 15.242 13.919 14.569 15.620 17.315 15.616 12.675 12.338 12.228 10.583 10.053 9.928 9.961 10.392 10.323 10.254 11.969 12.200 10.499 9.689 9.805 10.529 13.012 12.708 13.913 15.694 14.751 7.186 + 11.378 14.569 14.595 16.600 16.918 16.255 16.176 15.010 14.935 14.669 13.602 14.965 16.082 14.690 12.641 11.568 10.947 11.319 10.150 9.203 9.208 9.742 9.634 10.345 11.562 11.544 9.428 8.681 8.671 9.521 12.062 12.362 13.393 15.175 14.061 7.477 + 11.599 14.191 14.210 16.589 16.764 14.440 14.499 14.063 14.040 14.257 13.157 13.422 14.655 14.796 13.032 11.331 10.160 10.648 9.867 9.600 8.220 8.721 9.319 9.961 10.451 10.486 7.708 6.797 6.705 7.536 10.716 11.212 11.663 13.196 12.259 7.278 + 11.444 13.829 13.984 16.676 16.492 13.371 13.115 12.868 12.659 13.183 12.085 11.917 14.266 14.888 14.222 11.917 10.870 10.422 9.521 9.265 8.974 8.875 9.629 10.627 9.554 8.199 6.544 4.768 4.669 5.062 7.163 9.227 9.653 10.801 10.507 6.382 + 11.490 13.301 13.937 16.519 15.898 13.372 12.114 12.127 12.011 11.597 11.074 10.771 11.060 13.487 13.572 13.298 13.107 12.034 11.577 10.443 10.466 10.375 11.253 12.501 11.478 7.364 6.418 5.497 5.687 5.551 6.477 8.837 7.752 9.852 10.202 7.737 + 11.733 12.343 14.421 15.703 15.035 13.213 12.366 12.014 12.151 12.116 10.245 9.787 9.458 10.304 11.512 12.429 12.524 13.822 14.030 12.682 11.868 12.496 13.016 14.425 12.654 9.076 7.616 7.313 7.071 6.957 8.117 9.981 8.459 9.223 9.250 7.260 + 10.889 12.454 13.883 14.190 13.734 13.040 12.078 11.383 10.880 11.006 10.315 9.609 9.771 10.126 10.196 10.730 10.982 11.056 11.879 13.169 13.657 14.529 14.483 15.453 13.920 10.503 9.362 9.070 8.149 8.434 9.546 10.229 8.534 11.250 10.697 7.827 + 10.468 12.419 13.716 14.332 12.851 11.904 10.717 9.342 9.517 10.253 9.671 8.849 8.166 9.532 9.774 9.956 9.838 9.823 10.612 10.869 11.049 13.012 14.727 14.598 14.235 13.609 12.869 11.668 10.605 10.220 11.454 11.458 9.679 13.134 12.250 7.918 + 10.755 12.628 12.744 13.879 12.848 11.963 10.916 9.292 10.296 10.584 9.539 8.089 9.081 8.401 8.596 8.911 9.034 9.993 9.332 9.262 10.378 11.210 13.931 13.768 11.848 11.742 11.698 11.168 11.763 11.102 11.698 12.871 11.385 13.218 13.127 8.795 + 12.147 12.982 14.038 14.694 12.840 11.633 10.528 9.646 9.793 10.894 8.684 8.299 8.385 8.723 8.987 9.182 9.602 9.428 9.573 9.663 10.143 11.487 13.373 13.248 11.021 10.567 11.029 11.063 11.916 12.073 12.605 13.718 12.710 14.370 13.662 10.393 + 11.906 14.588 14.261 14.156 13.838 11.962 11.225 11.177 10.861 10.994 9.619 9.357 9.791 9.276 8.795 9.630 9.920 9.954 10.234 10.159 10.912 11.659 14.300 13.908 12.130 12.043 12.337 12.543 14.238 14.564 14.841 15.849 15.238 15.488 14.202 10.258 + 12.090 15.003 14.849 13.410 13.789 12.403 12.258 11.822 11.388 10.450 9.247 9.215 9.187 8.889 9.814 10.294 10.650 11.197 11.613 11.844 12.177 12.970 15.014 15.204 13.400 13.205 13.537 13.572 15.101 15.990 16.064 17.196 16.865 16.392 15.382 11.353 + 12.114 15.230 15.119 13.761 13.702 12.688 12.430 11.575 11.093 10.224 10.263 10.184 9.243 9.741 10.056 9.940 10.329 10.517 10.499 11.375 11.841 13.405 15.706 16.055 13.242 13.067 13.451 13.789 15.576 16.388 16.488 17.808 17.551 16.614 15.679 11.497 + 12.693 15.504 15.239 14.102 13.791 13.240 12.765 11.339 10.683 11.049 10.720 10.466 9.512 11.001 10.229 10.368 10.425 10.555 11.177 11.373 12.070 13.340 15.820 16.070 13.754 13.024 13.286 13.796 15.647 16.524 16.669 18.015 17.602 15.955 14.860 11.118 + 12.796 15.494 15.106 14.215 13.789 13.736 13.082 11.550 11.380 11.937 11.154 10.715 9.908 10.977 9.996 10.580 10.382 11.272 11.401 11.932 12.411 13.154 15.019 15.703 13.891 12.977 13.126 13.913 15.636 16.183 16.331 17.966 17.449 14.792 13.613 11.283 + 12.670 15.368 14.928 14.321 14.022 14.139 13.626 11.833 11.632 12.206 10.847 10.611 9.757 10.513 10.448 10.822 10.953 11.585 11.322 12.160 12.151 13.457 15.525 15.650 13.715 12.726 12.970 13.903 15.439 15.215 15.430 17.001 16.289 13.218 11.927 10.676 + 12.283 15.163 14.866 14.533 14.641 14.243 14.189 12.026 11.492 12.167 10.094 10.468 11.152 10.986 11.255 10.964 11.592 11.843 11.643 11.842 12.180 13.569 15.818 16.108 14.178 12.435 13.175 14.355 15.293 14.813 15.499 17.380 16.454 13.421 11.603 10.031 + 11.706 14.855 14.671 14.785 15.233 14.099 14.252 11.994 11.280 11.676 9.941 10.365 11.573 11.449 11.146 11.031 11.488 11.764 11.808 12.171 12.533 13.660 15.931 15.661 13.767 12.371 13.881 14.636 13.486 13.174 14.624 16.982 15.832 12.955 10.941 10.350 + 11.669 14.667 14.454 15.031 15.861 14.173 14.406 12.023 10.813 11.151 9.998 10.207 11.366 10.918 11.119 11.118 11.421 11.752 12.239 12.308 12.729 14.267 16.282 15.770 13.310 13.915 14.985 14.612 12.761 12.423 13.856 16.239 14.582 12.521 11.891 12.099 + 11.530 14.316 14.172 15.239 16.141 13.988 13.798 12.230 10.410 11.144 10.748 11.947 12.964 12.805 12.199 11.526 11.339 11.077 11.755 12.237 12.872 15.319 16.409 14.984 12.479 13.611 16.029 15.643 13.934 12.120 13.794 16.355 14.567 13.616 12.842 11.677 + 11.916 13.908 13.692 15.287 16.032 14.271 13.328 12.674 12.078 11.944 11.613 11.612 11.749 12.152 11.928 12.380 12.399 12.302 12.226 12.267 14.118 16.078 15.788 13.907 12.515 13.806 15.045 14.024 12.647 12.181 13.312 16.049 14.062 14.111 14.650 13.336 + 10.171 12.724 12.313 14.193 14.930 13.560 14.342 12.133 11.925 12.413 11.810 11.728 10.860 12.002 11.583 11.320 11.673 12.461 13.235 13.505 14.920 16.198 13.809 12.932 11.792 14.907 15.934 13.761 11.895 11.026 12.312 14.096 13.077 13.476 14.349 13.738 + 9.540 12.581 12.454 14.397 14.952 13.978 14.045 11.330 12.202 12.408 12.185 11.726 11.092 11.945 11.940 11.823 11.827 11.756 12.765 13.278 15.082 15.663 13.514 12.203 11.448 13.626 14.711 12.669 11.645 11.248 12.725 14.332 13.299 14.047 14.527 14.954 + 9.269 12.420 12.243 14.383 14.995 14.106 14.284 11.215 9.932 12.415 12.458 12.874 11.308 11.456 11.923 11.486 11.320 12.120 12.688 12.636 14.820 15.034 13.209 11.765 11.697 13.056 14.239 13.010 12.319 12.032 14.244 16.123 14.223 15.127 15.612 15.809 + 9.989 12.967 12.821 14.539 15.123 13.920 13.645 11.295 12.699 12.921 11.770 11.952 12.335 11.932 11.206 11.166 11.579 11.959 12.887 13.454 14.536 15.020 14.073 12.374 11.512 13.290 14.597 13.629 12.247 11.659 13.332 15.191 13.963 14.191 16.228 16.192 + 10.083 13.318 13.338 15.147 15.404 13.097 13.257 12.459 11.924 11.434 11.598 12.183 11.714 11.718 12.004 11.751 11.618 12.339 12.479 13.556 14.592 15.129 14.164 12.798 11.978 12.793 14.074 13.742 12.504 12.801 13.664 15.957 14.450 14.863 14.955 14.570 + 11.718 13.962 13.525 15.421 15.433 12.255 12.724 12.486 11.520 11.440 11.354 10.494 11.625 11.940 11.534 10.943 11.027 11.773 12.282 13.072 14.514 15.831 15.308 14.046 13.145 14.165 15.198 14.276 13.247 13.281 14.160 16.235 14.002 14.310 15.473 14.424 + 11.727 14.440 14.022 15.479 15.511 13.640 12.725 11.249 12.025 12.290 10.951 11.283 11.243 11.450 11.490 11.236 11.080 11.825 12.542 13.035 13.753 15.947 15.853 13.931 13.023 13.152 14.608 13.737 13.908 14.354 15.179 14.791 13.052 14.679 13.960 12.667 + 12.716 14.895 14.215 15.508 15.296 13.649 12.580 11.507 11.635 11.923 11.646 10.571 9.820 11.011 9.902 10.780 10.618 10.997 11.396 11.917 13.557 15.852 16.665 15.263 13.963 14.380 14.859 13.701 13.643 14.461 16.009 15.720 13.551 14.142 13.486 12.263 + 13.248 15.048 14.192 15.507 14.849 13.331 11.897 11.415 11.109 11.099 11.552 10.153 10.157 10.719 9.936 10.264 10.580 10.931 11.629 12.184 13.217 15.405 16.505 16.019 14.826 15.226 15.623 13.922 13.893 14.973 16.472 15.494 13.958 13.982 12.737 8.230 + 13.461 14.881 13.996 15.367 14.264 13.218 11.559 11.125 10.540 10.587 11.039 9.406 10.005 10.175 10.165 10.406 10.567 11.286 11.501 12.340 13.302 15.078 16.146 15.995 15.131 15.371 14.658 13.492 13.435 14.760 16.552 15.533 14.227 14.420 13.615 8.711 + 13.535 14.552 13.733 14.885 13.453 12.799 11.639 11.167 10.438 10.850 10.793 9.243 10.128 10.120 9.863 10.728 10.149 11.494 11.588 12.587 13.419 14.900 15.593 15.739 15.125 14.007 13.099 12.169 12.183 13.520 15.589 14.935 14.037 14.469 13.870 8.910 + 13.681 14.397 13.752 14.556 12.948 12.365 11.740 10.957 10.409 11.008 10.286 9.276 10.015 10.065 9.749 10.656 10.101 11.814 11.827 13.577 13.889 14.771 14.985 15.255 14.441 13.122 11.622 10.897 11.106 12.490 14.612 14.120 13.446 13.893 13.573 8.257 + 13.620 14.185 13.556 14.110 12.693 12.169 11.730 10.533 10.287 10.873 9.610 9.104 9.789 9.848 9.859 10.597 10.714 11.981 12.345 13.984 13.509 13.352 13.996 14.679 13.171 11.214 10.215 9.776 10.190 11.763 14.571 14.145 13.254 13.241 13.420 8.615 + 13.384 13.630 13.290 13.501 12.524 11.955 11.386 9.871 9.683 10.331 8.223 9.706 9.757 9.621 10.188 10.283 11.316 11.484 12.672 12.827 11.540 11.424 12.474 13.869 11.730 9.410 8.457 8.165 8.758 10.606 13.609 13.238 12.480 12.302 12.402 7.792 + 13.269 13.355 12.981 12.868 12.603 11.851 11.291 9.267 9.052 9.468 8.146 10.209 9.794 9.477 9.912 10.132 11.893 11.147 11.954 10.481 9.958 10.010 11.410 13.682 11.630 9.086 7.951 7.639 7.872 9.536 12.762 12.755 12.143 11.898 11.687 7.489 + 12.950 13.043 12.606 12.614 12.427 11.615 11.163 8.909 9.216 9.524 8.109 9.944 9.376 9.723 10.169 10.605 13.016 11.863 11.176 9.568 9.508 9.365 11.110 12.973 10.695 8.584 7.977 7.246 7.773 8.923 12.350 12.644 12.282 11.509 10.669 7.619 + 12.861 12.899 12.671 12.824 12.410 11.419 11.191 9.074 9.605 9.962 7.377 9.667 9.389 9.376 10.469 10.655 13.018 11.434 10.370 9.529 9.313 9.249 10.850 11.939 10.409 8.493 8.033 7.177 7.991 9.201 12.548 12.974 12.652 11.745 10.649 8.264 + 12.776 12.883 12.815 13.190 12.603 11.459 11.189 9.261 9.732 10.006 7.765 9.618 9.532 9.594 10.480 10.572 13.070 12.133 10.966 10.042 10.089 10.011 11.618 12.771 10.836 9.157 8.485 7.013 8.056 9.645 12.990 13.433 13.332 12.791 9.932 7.736 + 12.829 12.888 13.155 13.489 12.698 11.498 11.491 9.507 9.944 10.099 8.379 9.018 9.417 9.382 10.473 10.252 12.328 12.885 12.077 10.997 10.594 10.363 11.856 13.019 11.495 9.342 9.308 7.252 7.989 9.720 12.830 13.212 13.718 13.227 9.594 7.760 + 12.882 12.905 13.500 13.640 12.709 11.598 11.655 9.575 9.968 9.925 9.096 8.584 9.353 8.968 10.283 10.295 11.486 13.032 12.873 12.483 11.225 11.053 12.348 13.798 12.646 10.092 10.078 8.009 8.360 9.866 12.707 12.856 13.186 12.713 8.426 7.906 + 12.738 12.848 13.844 13.765 12.715 11.700 11.537 9.144 9.993 9.878 9.350 8.191 9.097 8.486 9.665 9.977 10.878 12.083 13.567 13.645 11.999 11.677 12.770 13.753 12.534 10.012 10.062 9.023 7.927 9.301 11.285 11.365 12.383 11.828 8.520 8.090 + 12.708 12.876 13.822 13.255 12.424 11.718 11.215 8.782 9.789 9.571 9.044 7.570 8.745 8.022 9.240 9.598 10.625 11.495 13.174 14.255 12.519 11.715 13.379 14.897 12.642 9.904 9.875 8.883 8.485 9.076 11.920 11.950 12.774 12.535 9.604 8.778 + 12.622 12.884 13.661 12.792 12.235 11.675 10.964 8.644 9.699 9.465 8.888 8.038 8.648 7.919 8.743 9.066 9.929 10.525 11.957 13.500 12.552 12.089 13.719 15.077 12.486 10.045 9.188 7.820 8.726 10.303 12.739 12.251 13.172 12.713 9.019 8.600 + 12.484 12.533 13.175 12.102 11.881 11.263 10.462 8.006 9.300 9.182 8.620 7.661 7.859 7.453 8.524 8.538 9.452 9.449 10.744 12.030 12.516 12.206 13.507 13.979 11.893 9.891 9.536 6.847 7.160 9.368 11.688 12.202 14.033 13.207 8.707 7.534 + 12.101 11.959 12.636 11.628 11.630 10.785 9.813 6.815 8.642 8.866 8.498 8.056 7.499 7.368 8.294 8.130 9.058 9.081 10.774 12.202 11.970 11.773 13.256 13.682 11.395 9.725 9.088 7.579 8.143 9.899 11.474 11.239 12.938 11.976 8.982 8.675 + 12.411 11.466 12.420 12.080 12.043 10.485 8.635 7.349 8.815 8.551 8.604 8.686 6.909 7.313 7.090 8.630 8.745 9.743 10.788 11.341 10.416 10.429 11.885 13.605 11.872 9.549 9.313 8.053 8.766 11.032 12.681 11.307 11.861 11.295 9.994 10.000 + 11.511 13.268 13.680 12.797 12.910 10.310 9.053 8.908 9.936 9.493 9.563 8.081 7.456 8.398 8.668 9.207 11.024 12.046 10.894 10.356 8.948 9.927 11.802 13.189 10.340 9.232 8.444 8.288 8.387 10.720 12.553 10.661 11.557 11.105 9.416 9.507 + 13.550 12.707 13.080 12.631 12.091 10.296 9.759 9.327 10.369 9.490 8.291 8.504 8.516 9.104 9.692 10.810 11.564 12.304 10.265 9.609 8.704 9.409 11.454 13.287 11.043 7.764 6.946 7.104 7.888 10.368 11.139 9.895 11.313 11.194 9.618 9.816 + 14.321 13.970 11.692 11.819 12.520 12.313 11.669 10.191 11.349 10.501 9.116 9.536 9.878 10.428 10.798 11.947 10.879 9.740 9.168 8.595 7.986 8.556 9.882 11.848 10.571 6.663 6.746 7.056 8.639 10.551 11.519 10.014 11.527 12.065 9.684 9.871 + 12.995 12.738 13.909 13.951 14.263 13.447 13.185 11.308 11.915 11.753 11.143 11.114 11.085 12.083 13.223 11.307 10.743 9.666 9.025 8.225 8.052 8.512 10.005 10.889 9.735 6.770 5.553 6.494 7.888 11.095 11.429 9.098 10.309 10.736 9.990 10.172 + 13.668 13.488 13.565 13.059 13.367 14.111 14.296 11.943 12.796 12.705 12.288 11.923 12.939 13.690 14.048 11.523 10.317 10.068 9.122 8.531 8.707 8.562 10.351 11.823 10.425 7.714 6.661 7.505 8.173 9.944 9.263 8.275 8.570 9.086 9.042 9.521 + 13.102 13.723 13.555 13.071 13.355 15.057 15.575 12.989 13.564 13.618 13.202 12.619 14.253 12.957 12.396 11.194 10.368 10.343 9.034 8.787 9.067 8.956 10.337 12.219 11.393 9.081 7.232 8.489 9.702 9.696 7.549 6.011 8.576 9.224 10.814 10.926 + 13.137 13.327 13.291 13.133 13.035 15.542 16.352 14.222 14.333 14.418 14.140 13.811 15.607 13.282 11.946 11.227 10.559 10.781 9.224 9.124 8.572 8.660 10.225 11.507 11.789 9.828 7.832 9.162 11.117 11.159 7.373 7.508 9.059 8.210 10.569 10.398 + 12.909 13.172 13.237 12.937 12.251 15.618 16.368 14.588 14.994 14.962 14.614 15.005 15.755 12.824 11.125 10.324 10.183 10.351 9.233 9.277 8.879 8.712 9.877 10.844 12.257 11.059 9.429 11.026 12.386 10.826 7.386 9.064 9.804 7.663 9.212 9.526 + 12.562 12.722 12.811 12.061 11.840 15.141 15.280 15.304 15.634 15.201 14.818 15.175 14.692 12.085 10.488 9.768 9.783 9.816 9.358 8.883 9.447 8.772 9.828 10.352 11.739 10.689 10.566 11.979 12.454 10.409 8.034 8.691 9.031 8.672 11.156 10.855 + 12.296 12.311 12.527 11.640 11.895 14.429 14.751 15.837 15.696 15.112 15.133 15.667 13.391 11.183 11.035 10.137 9.751 9.160 9.334 8.774 9.414 8.747 9.028 9.552 9.629 9.745 10.758 12.591 11.601 9.490 6.836 6.737 7.539 7.983 9.726 9.536 + 12.292 12.325 12.381 11.914 11.923 14.249 14.712 16.214 16.123 15.555 15.061 16.531 15.708 12.858 12.158 11.039 10.645 10.006 9.241 8.923 9.034 8.792 9.321 9.391 9.829 9.680 10.665 12.770 12.263 10.681 7.578 8.480 9.565 8.502 8.064 7.893 + 12.221 12.238 12.430 11.920 11.516 13.756 14.503 16.288 16.272 16.066 15.020 15.656 16.924 15.754 13.695 12.486 11.868 11.060 9.663 9.184 8.945 9.561 9.811 10.826 10.168 10.326 11.961 13.096 12.507 10.255 8.758 9.239 10.191 9.180 8.293 7.628 + 12.041 11.742 12.348 11.982 11.268 13.251 14.107 15.861 16.722 16.518 15.126 14.824 16.824 15.997 14.911 13.594 12.025 11.743 10.211 10.352 8.946 9.389 9.899 9.870 9.508 10.218 11.318 12.448 11.214 8.875 8.854 9.144 10.273 9.294 7.903 6.954 + 11.950 11.568 12.101 11.627 10.855 12.947 13.738 15.245 16.831 16.147 14.540 14.526 15.232 15.450 16.534 14.820 12.836 12.012 10.887 10.309 10.010 9.613 10.385 10.690 11.223 12.181 13.162 12.763 10.981 8.354 9.063 9.132 10.095 10.562 9.041 6.812 + 11.778 11.447 12.153 11.269 10.978 12.920 13.678 14.592 16.336 15.322 13.715 14.019 14.285 14.280 16.030 15.723 13.829 12.433 11.786 10.654 10.319 10.497 10.364 10.597 10.947 11.875 13.222 12.289 10.306 7.853 8.188 8.078 9.013 9.773 7.336 5.246 + 11.499 11.299 12.236 11.308 11.201 12.740 14.211 15.379 15.832 14.525 13.553 13.525 13.527 13.593 15.151 15.896 14.598 12.865 11.837 11.250 10.970 10.567 9.361 9.638 10.218 11.822 12.741 11.334 10.114 8.828 8.155 8.600 10.225 9.183 6.637 5.376 + 11.555 11.373 11.220 9.884 10.127 11.332 10.505 10.825 11.594 9.956 10.382 10.123 9.731 10.155 11.231 12.164 10.697 10.756 10.200 9.522 8.385 7.464 8.117 7.875 9.406 11.296 11.187 9.886 9.386 9.182 6.672 8.161 9.326 8.936 6.574 5.088 + 11.993 11.806 11.594 10.871 11.026 12.049 11.308 10.749 11.416 10.006 10.353 9.939 8.806 8.597 9.751 10.381 9.513 9.220 8.623 9.484 7.973 7.035 7.972 8.649 10.270 11.126 10.934 9.332 8.722 8.304 6.791 8.666 9.223 8.565 6.764 4.997 + 12.018 11.557 11.422 10.668 11.233 12.242 11.303 10.782 11.244 10.307 10.243 10.411 8.793 9.304 9.929 10.423 9.964 9.637 9.626 9.294 9.109 8.922 8.920 10.080 11.560 11.833 10.908 9.322 8.992 8.319 7.335 8.794 9.042 8.583 7.311 5.695 + 11.943 12.003 11.943 11.351 11.070 13.232 14.451 14.795 14.417 13.284 12.673 12.576 11.923 12.008 13.065 15.328 16.289 15.433 14.505 14.631 14.848 15.453 14.977 12.674 12.831 13.249 12.561 10.647 8.931 11.036 11.554 13.349 13.404 11.422 9.270 6.309 + 11.865 11.850 12.007 11.954 11.726 13.402 14.072 15.832 15.259 14.298 13.036 13.165 12.495 12.525 13.446 14.885 16.027 15.854 14.664 13.414 13.625 14.414 14.372 12.252 12.034 12.943 13.132 10.688 9.433 11.525 11.138 12.677 12.464 10.855 8.615 5.228 + 11.704 11.636 12.343 11.505 11.760 13.477 14.835 15.623 16.732 15.105 13.479 13.564 13.053 12.451 12.986 13.160 14.954 15.605 14.783 12.875 12.387 12.633 13.555 12.677 11.429 12.837 13.236 11.664 10.760 11.861 10.393 11.378 11.574 10.702 8.072 4.747 + 11.938 11.618 12.458 11.389 11.878 13.677 14.924 15.774 16.740 14.809 13.668 13.292 12.834 12.218 12.811 12.626 14.067 15.344 15.640 13.480 12.558 12.720 12.732 11.809 12.565 12.572 12.748 12.581 11.567 11.124 9.864 10.794 10.626 9.375 6.834 4.038 + 12.184 11.861 12.612 11.576 12.292 13.872 15.606 16.000 15.925 13.963 12.494 12.434 12.002 11.483 11.987 12.391 13.329 14.279 14.473 11.699 11.263 11.962 11.585 11.205 12.427 11.929 11.788 12.757 11.956 9.883 9.640 10.633 9.682 8.176 6.294 5.066 + 12.309 12.260 12.831 12.004 12.940 14.380 15.265 14.712 13.987 13.051 12.373 11.453 10.775 10.991 11.533 12.444 13.896 13.471 12.434 10.926 10.804 11.153 11.376 11.636 11.148 9.842 10.033 10.870 10.333 8.115 8.296 9.911 9.858 7.994 5.450 5.101 + 12.618 12.536 12.062 11.457 11.917 10.539 11.059 10.336 10.398 8.685 10.273 9.835 6.537 7.475 9.197 10.993 10.747 10.132 8.067 7.814 7.379 8.374 9.742 8.522 6.983 5.238 5.925 7.700 7.767 6.707 5.063 7.633 8.543 8.167 6.128 5.100 + 12.768 12.301 11.768 11.607 11.805 10.882 9.995 8.370 9.996 8.875 10.360 10.166 7.549 6.259 8.682 10.946 10.319 10.426 9.222 8.483 7.596 8.551 9.843 9.227 7.897 6.071 5.151 6.185 8.935 8.863 5.979 6.868 8.041 7.433 5.727 5.661 + 12.732 12.094 11.491 11.381 11.679 10.923 10.293 9.688 10.120 8.634 10.579 10.269 7.466 6.127 7.908 10.945 10.174 10.724 8.805 8.441 8.665 9.435 10.225 10.513 8.575 6.463 3.865 5.022 8.109 9.309 6.869 7.711 8.908 7.975 6.551 6.186 + 12.607 11.874 11.282 11.162 11.605 10.848 9.761 9.881 9.999 8.791 10.768 10.091 7.085 6.569 8.238 10.893 10.247 10.530 8.914 8.965 9.152 9.226 10.123 11.245 9.112 7.461 4.427 5.181 8.031 9.081 7.802 7.518 9.083 8.336 6.661 6.028 + 12.510 11.780 11.138 10.976 11.547 10.820 9.861 9.586 9.851 8.762 10.742 10.196 7.215 6.364 7.822 10.915 10.388 10.774 8.773 8.476 8.619 8.763 10.110 11.698 10.069 8.147 3.936 5.051 7.707 9.391 7.919 7.422 8.813 8.261 7.412 7.054 + 12.614 12.014 11.352 10.926 11.635 10.862 9.957 9.338 10.021 8.723 10.591 10.347 7.884 7.759 9.110 11.532 10.587 10.746 9.446 8.673 8.816 9.230 10.415 11.797 10.255 8.238 5.526 5.029 7.123 8.988 7.963 8.894 9.572 8.380 7.310 7.429 + 12.842 12.926 11.655 11.709 12.318 12.243 13.047 12.812 13.109 12.381 10.726 11.808 10.651 10.681 11.256 12.197 13.027 13.070 13.799 13.758 13.326 11.086 11.218 13.158 12.636 10.761 9.884 9.782 9.854 11.394 12.446 11.609 11.060 9.949 9.090 8.951 + 12.212 11.778 12.382 11.796 12.067 14.224 15.223 15.344 13.940 12.719 11.905 11.429 10.932 10.874 11.215 11.383 11.956 11.721 12.582 13.472 14.523 14.150 12.995 13.372 14.053 13.393 11.182 11.298 11.370 12.780 14.732 13.585 12.102 10.612 10.212 10.320 + 12.125 12.102 12.643 12.054 12.177 14.178 15.297 15.865 14.588 13.062 12.194 11.282 11.035 10.796 10.938 10.966 11.629 11.359 11.868 12.291 13.097 14.880 14.078 14.218 15.406 15.346 13.197 12.360 12.310 13.151 15.088 15.035 13.323 11.682 9.692 9.393 + 12.086 12.106 12.724 12.195 12.555 14.430 15.831 16.205 14.792 13.685 12.162 11.337 11.222 10.674 10.965 10.910 11.803 11.542 11.990 12.130 13.368 15.840 15.328 14.475 15.047 15.799 13.498 12.741 12.680 13.922 14.917 15.246 14.515 12.956 9.876 9.440 + 12.086 12.270 12.816 12.321 12.948 14.778 16.266 16.245 14.625 13.820 12.400 11.499 11.183 10.762 10.827 11.060 11.801 11.706 12.125 12.295 13.003 14.989 14.699 14.557 14.729 15.339 14.533 13.354 13.296 14.357 16.199 16.771 15.942 14.463 10.933 7.652 + 12.237 12.213 12.712 12.297 13.356 15.095 16.188 16.031 14.172 13.435 11.868 11.386 11.362 10.328 10.823 10.267 11.272 10.816 11.222 11.054 11.838 13.822 14.633 14.658 14.118 15.079 14.201 13.547 13.705 14.425 15.840 16.313 15.581 14.397 11.726 7.975 + 12.336 12.357 12.688 12.165 13.623 15.545 15.643 15.606 13.871 12.785 11.235 11.060 10.935 9.658 10.454 9.897 10.763 10.345 11.054 10.663 11.591 13.325 14.860 14.393 14.177 14.463 14.671 14.359 14.191 14.498 15.917 16.621 15.872 14.589 11.941 8.508 + 12.481 12.448 12.765 12.546 13.819 15.818 15.158 14.372 13.449 12.518 10.847 10.352 10.356 9.238 10.075 9.477 10.194 9.704 10.405 10.007 10.882 12.341 14.163 14.664 14.255 14.626 15.132 14.444 14.149 14.623 15.852 16.570 15.577 14.723 12.838 9.466 + 12.484 12.495 12.719 12.832 13.895 15.191 14.491 12.680 12.023 11.299 9.542 9.851 9.306 8.860 9.664 8.909 9.970 9.389 9.767 9.654 10.004 11.299 13.368 13.952 13.829 14.010 14.525 13.950 13.485 13.646 15.156 16.307 14.856 14.053 11.771 9.613 + 11.827 11.849 11.365 13.407 14.056 13.509 12.412 12.013 10.610 10.855 8.852 8.867 8.088 8.663 8.146 8.104 8.917 8.028 8.649 8.584 9.304 10.611 13.307 14.329 13.553 13.365 13.722 13.281 12.842 12.554 14.072 15.833 14.383 13.209 10.584 9.764 + 9.762 9.343 8.379 10.378 9.645 8.960 10.316 9.675 7.069 7.702 7.357 7.030 6.229 6.512 5.445 6.195 7.067 7.225 7.380 7.216 7.423 8.010 10.517 11.335 10.794 10.167 10.587 10.319 9.851 9.800 11.171 12.932 11.376 9.467 9.028 8.366 + 7.935 8.545 9.317 7.712 7.129 5.500 7.154 7.536 5.528 6.953 7.462 6.325 3.561 4.362 5.580 5.637 5.800 5.449 5.020 5.596 5.753 6.322 6.983 7.295 7.290 7.819 8.502 8.163 7.078 5.991 6.896 8.641 7.664 7.046 8.616 8.977 + 5.848 8.234 8.711 7.503 7.561 6.836 6.856 7.456 4.571 4.292 3.865 2.797 3.556 4.620 5.355 4.555 4.677 4.686 4.370 4.427 4.624 5.515 4.619 5.319 4.859 6.129 7.771 7.949 6.042 4.321 6.235 7.476 6.609 6.294 8.388 8.834 + 3.980 5.652 6.252 7.085 6.912 8.033 7.400 7.785 5.974 4.661 4.529 3.612 3.316 3.510 5.049 4.950 6.262 4.244 4.455 4.494 2.982 4.147 4.632 4.941 4.525 4.182 3.998 4.678 3.501 4.217 6.101 6.443 4.836 4.832 3.615 2.498 + 4.767 4.831 6.598 6.878 6.674 7.512 7.517 7.795 6.002 4.760 2.870 4.303 4.307 4.494 5.003 5.269 5.037 4.370 4.514 4.414 5.040 4.975 4.898 5.133 3.544 4.657 4.811 4.185 4.580 4.340 5.458 6.380 5.306 5.141 3.096 1.999 + 4.515 4.666 5.899 6.177 6.749 7.915 7.039 7.011 6.778 5.755 5.427 5.632 6.002 6.240 6.208 5.714 5.802 6.020 6.336 6.307 6.166 6.433 6.195 6.036 6.856 7.559 7.762 7.660 7.227 6.547 6.435 6.181 6.047 6.048 5.084 3.692 + 7.495 7.334 6.775 7.845 7.288 7.325 8.480 9.136 10.441 10.107 9.099 8.927 8.998 9.073 9.842 10.556 11.221 10.266 10.427 10.541 10.396 11.306 11.187 12.206 12.389 12.667 13.907 14.588 13.390 11.167 12.635 12.088 11.337 11.526 11.645 10.449 + 6.158 6.704 7.122 9.353 10.243 10.103 10.370 9.276 10.772 11.973 10.983 11.544 9.853 10.610 11.061 12.186 11.864 11.915 12.153 12.042 11.335 13.014 13.330 14.084 13.989 15.045 15.191 16.377 15.905 14.122 13.770 14.223 13.368 12.859 12.958 12.141 + 10.088 10.719 10.470 12.375 13.099 12.509 11.636 11.400 9.887 10.444 10.153 10.353 9.591 9.463 9.839 9.797 8.951 9.069 8.896 8.073 8.195 9.651 11.345 11.852 11.451 11.764 13.346 14.332 14.243 13.944 15.259 16.177 15.133 13.125 12.771 13.188 + 12.069 13.046 12.848 14.046 14.064 15.574 14.706 12.697 10.713 10.684 10.604 9.924 8.724 8.522 8.306 7.564 8.145 8.202 8.632 8.800 9.629 11.198 10.408 9.828 9.511 10.147 10.934 11.836 11.846 12.147 14.412 15.536 13.942 11.989 10.977 11.832 + 12.622 12.851 13.641 13.387 14.852 15.670 15.955 14.140 11.786 10.798 11.272 10.849 9.609 9.060 9.577 8.805 9.027 9.550 9.709 11.326 13.198 13.619 11.473 10.849 9.963 9.819 11.290 12.015 11.225 11.077 12.552 13.125 12.305 11.522 9.668 8.274 + 12.251 12.110 13.061 12.854 14.213 15.938 15.073 13.770 12.312 11.980 11.224 10.563 10.396 10.102 10.159 10.594 10.196 10.834 10.995 12.840 14.132 13.698 11.325 10.748 10.168 10.855 12.260 11.663 10.503 9.950 11.490 12.292 11.341 11.125 9.423 6.560 + 11.042 11.881 12.078 12.501 14.638 15.895 15.264 13.291 12.106 11.803 10.940 10.472 10.470 10.588 10.457 10.582 10.890 11.011 12.074 13.631 14.262 12.853 11.511 10.806 11.052 11.646 12.700 12.533 11.343 11.116 11.968 12.528 11.382 10.814 9.374 5.670 + 10.929 11.419 12.211 12.857 12.998 13.068 13.719 12.320 10.856 10.707 10.389 9.772 10.195 10.748 10.434 10.656 11.192 11.398 13.263 14.255 13.762 12.137 11.424 11.164 11.637 11.796 12.416 12.502 11.006 10.669 11.495 12.394 10.953 9.918 8.970 5.055 + 7.817 7.617 6.743 7.872 8.913 8.236 8.946 8.063 6.740 5.023 3.352 4.568 4.511 4.752 4.865 4.863 5.415 6.208 8.789 9.878 7.950 6.621 6.160 6.447 7.026 7.516 9.189 8.732 8.561 8.771 8.685 9.117 8.283 7.188 6.285 5.474 + 8.578 9.181 8.350 6.293 6.302 7.306 8.272 7.422 5.520 4.906 4.569 3.284 3.880 4.242 4.939 4.192 4.963 5.813 8.547 7.620 6.182 6.962 6.353 6.509 6.599 6.628 7.931 8.048 8.313 8.856 8.456 8.154 6.802 5.971 5.015 4.093 + 6.731 6.414 6.591 6.005 5.563 5.433 8.193 7.371 4.789 5.308 4.872 4.696 5.241 5.568 6.094 6.193 6.284 6.417 7.259 7.030 6.903 6.418 5.952 6.202 6.224 5.445 5.778 6.259 5.509 4.884 5.041 5.896 4.972 4.517 4.101 2.246 + 4.016 4.048 5.550 7.629 8.419 8.126 8.727 8.298 6.616 8.580 9.358 10.074 10.365 9.318 10.196 11.583 11.950 10.877 9.998 11.180 10.759 8.703 9.768 8.649 8.428 8.286 7.211 8.281 7.844 7.529 6.412 6.672 5.929 6.480 5.748 5.061 + 4.257 5.350 5.972 7.010 7.883 7.161 6.891 7.149 6.942 7.245 6.854 7.944 8.518 6.575 7.779 9.514 10.112 9.415 8.934 9.480 9.611 9.005 9.150 8.354 9.021 8.482 7.786 9.539 10.284 10.435 9.961 8.872 8.949 8.737 9.377 8.889 + 4.879 6.720 7.636 6.965 6.623 7.660 8.501 8.093 8.340 7.722 7.009 7.485 7.462 6.739 6.440 6.322 7.078 8.097 7.959 7.382 7.271 8.173 8.644 8.458 8.853 8.431 8.011 9.140 9.456 9.824 10.080 10.201 9.840 9.571 9.098 8.210 + 8.154 7.677 7.078 8.349 7.366 6.672 8.684 8.516 8.551 7.877 8.205 8.196 8.432 7.643 7.421 8.042 7.880 9.103 10.247 10.253 9.886 9.787 9.917 10.404 10.376 10.371 10.657 11.548 10.419 10.366 10.866 10.792 10.781 9.962 10.052 8.909 + 8.639 9.802 9.414 9.546 9.249 8.278 9.498 9.691 10.856 10.599 10.694 11.560 10.859 10.415 9.676 10.622 12.372 12.502 12.909 12.608 11.722 12.219 12.754 12.254 11.096 11.498 11.945 12.605 11.626 10.781 11.197 11.968 11.617 10.685 10.824 9.787 + 12.550 11.789 10.331 10.865 10.810 9.433 10.881 10.261 10.645 11.323 11.532 11.663 10.835 10.430 11.182 12.411 13.426 12.657 12.955 11.988 11.150 12.428 12.888 12.108 10.882 11.478 11.961 11.575 11.161 10.966 11.032 11.987 11.294 11.056 10.870 10.538 + 13.843 13.699 14.061 13.872 13.506 12.207 12.169 12.473 11.363 10.846 11.538 12.400 10.928 9.470 11.520 13.302 13.701 13.151 13.582 12.879 12.547 12.225 11.661 11.644 12.563 11.707 11.662 11.501 11.063 10.977 11.766 11.043 10.753 10.917 11.441 11.363 + 14.638 15.833 16.690 16.445 15.665 14.433 13.669 13.003 12.598 12.314 11.836 12.043 9.784 9.982 13.212 13.813 14.842 13.907 12.380 13.444 14.012 12.910 12.485 12.602 13.264 13.557 13.132 12.895 12.922 12.941 12.012 11.849 11.678 11.506 11.912 11.110 + 14.959 14.697 15.455 13.620 13.931 12.892 11.685 10.559 11.395 10.663 11.420 11.289 10.065 10.860 12.336 12.541 14.561 14.400 13.325 11.915 12.855 13.237 12.827 11.734 12.392 13.039 13.279 12.805 12.851 12.541 12.960 12.952 11.439 11.221 11.145 10.253 + 13.236 13.664 14.634 14.141 13.435 13.002 12.437 9.785 9.659 9.918 10.635 9.705 10.296 10.474 12.372 13.305 14.036 13.430 13.204 12.850 11.904 12.254 12.990 10.904 10.266 10.544 10.661 10.662 11.117 11.728 11.253 10.380 8.758 9.350 10.089 9.193 + 12.332 11.221 12.179 13.546 14.326 15.203 14.718 13.881 13.895 13.562 13.104 13.469 13.301 13.913 14.862 15.681 15.302 14.254 13.833 13.484 12.117 10.793 11.230 9.200 8.793 8.298 9.294 9.083 9.350 9.459 8.590 8.385 7.947 7.596 6.622 7.035 + 13.785 13.816 13.265 13.768 15.248 15.661 14.906 14.369 13.685 12.778 12.641 13.402 13.070 14.093 14.918 15.892 14.576 13.572 13.349 12.704 10.218 8.565 8.086 8.535 8.016 7.554 8.245 8.108 8.050 7.232 6.550 6.737 5.945 5.533 5.221 4.523 + 13.815 15.200 14.338 13.479 14.146 14.625 13.121 12.633 12.330 12.786 11.580 12.536 11.686 12.918 13.674 14.011 11.906 11.530 11.411 9.996 8.425 7.003 6.086 5.894 6.081 5.623 6.337 6.406 7.004 6.910 5.656 5.429 4.706 4.317 5.411 4.725 + 13.948 12.472 12.241 11.006 9.304 10.238 10.224 9.655 9.803 9.009 6.952 8.011 7.873 8.243 7.579 7.563 6.986 6.906 6.738 6.287 5.655 4.819 4.064 4.274 4.176 4.093 3.975 4.597 4.246 4.813 3.856 4.331 4.519 3.851 4.310 3.385 + 9.000 9.155 8.468 6.765 6.359 6.409 7.040 6.418 5.353 3.605 3.941 4.101 6.101 6.032 5.728 6.293 5.566 5.221 4.998 3.913 3.383 2.986 3.771 4.007 3.156 2.656 4.253 4.149 3.531 3.498 3.282 3.554 2.443 3.757 3.423 1.817 + 6.861 7.214 7.313 5.079 5.134 6.271 7.197 5.859 4.486 4.450 4.628 4.415 5.273 5.278 5.247 6.598 4.611 4.908 4.123 3.796 4.378 2.935 4.266 3.263 3.236 3.561 4.102 4.164 3.627 2.640 3.090 3.687 2.621 2.967 3.265 2.629 + 5.917 5.231 4.605 3.626 5.436 7.198 7.562 6.709 4.338 4.221 4.243 4.388 3.238 4.379 5.309 6.752 5.126 4.225 5.059 4.365 3.979 3.430 4.076 4.737 4.162 4.113 2.893 3.911 4.305 3.898 3.610 3.965 3.105 3.283 3.183 2.679 + 5.672 5.469 3.518 5.441 6.129 6.057 5.178 5.735 4.203 4.336 3.638 3.525 3.831 4.158 5.075 5.648 5.441 5.091 3.878 4.655 4.831 4.131 3.049 3.127 3.739 4.330 3.880 2.720 4.017 4.923 4.347 3.474 3.490 3.800 4.143 3.675 + 5.163 5.967 6.101 5.158 5.591 7.103 6.551 4.821 3.837 5.285 4.357 4.153 3.876 5.819 5.411 5.763 5.969 5.353 4.766 3.448 4.056 4.617 4.209 4.394 4.844 4.694 4.173 3.745 3.406 3.428 4.112 4.684 4.842 4.288 3.568 3.120 + 7.387 6.957 5.808 6.402 7.102 7.667 7.128 5.848 4.666 5.353 5.553 5.353 5.567 5.653 5.945 6.310 7.434 7.885 7.769 8.047 8.424 8.353 8.714 8.610 7.628 7.063 8.214 8.948 9.527 9.695 9.598 8.828 8.105 7.900 8.480 8.603 + 14.138 14.408 14.940 14.813 14.748 14.450 13.455 13.502 13.291 12.279 12.689 12.927 12.714 11.916 11.080 10.024 9.997 10.978 10.543 10.630 11.710 11.626 11.378 12.132 11.676 10.951 11.311 11.591 11.974 12.126 12.297 11.463 10.556 10.389 11.241 11.288 + 18.706 18.566 17.886 17.057 17.769 17.210 16.069 15.888 14.361 14.466 15.242 15.132 14.196 13.537 12.371 11.939 10.975 11.556 11.192 11.722 13.688 13.842 13.760 14.617 14.744 13.601 12.870 12.457 11.220 10.496 11.012 10.335 9.423 10.303 10.727 10.066 + 16.564 16.140 15.380 14.708 15.398 15.189 14.391 13.930 12.933 12.918 12.737 11.696 10.092 10.091 9.457 8.537 8.914 8.823 9.507 9.834 10.846 11.907 11.615 11.312 14.212 13.411 11.021 9.764 10.352 9.375 10.049 9.393 8.896 9.254 9.064 9.340 + 12.158 10.906 11.151 12.312 12.126 10.444 9.724 8.543 6.426 7.763 8.446 7.984 7.670 7.531 8.375 7.391 6.813 7.263 8.285 8.121 9.504 11.610 12.480 11.038 12.041 13.094 10.861 9.804 9.312 9.055 10.337 10.681 10.445 10.701 11.054 10.939 + 10.578 10.692 11.122 13.149 12.981 12.333 10.473 10.472 9.464 9.687 9.640 9.054 9.492 9.068 9.421 8.921 8.934 8.719 9.384 9.819 10.111 10.826 11.858 11.601 11.276 13.536 13.040 11.431 11.131 11.355 12.355 12.501 9.317 10.191 11.358 10.310 + 12.421 12.369 12.872 13.360 13.868 13.124 11.787 10.060 10.159 9.954 8.596 9.741 9.392 9.353 9.284 8.914 9.691 9.844 10.685 11.419 12.080 13.806 14.845 13.564 12.718 13.078 12.670 11.498 11.101 12.084 14.059 13.912 11.401 10.726 11.233 10.085 + 12.431 12.676 13.311 13.219 14.335 13.183 11.861 8.710 10.356 9.900 8.627 9.676 9.982 9.672 10.239 9.277 10.043 9.819 10.558 10.743 11.834 13.732 14.994 13.996 14.101 14.669 13.423 11.967 11.852 12.111 14.704 15.038 13.781 11.452 11.165 10.368 + 12.529 12.542 13.103 13.308 14.190 12.725 11.418 8.057 10.293 9.761 8.613 9.316 9.816 9.551 9.657 8.978 8.667 9.452 9.675 10.716 11.734 14.292 16.081 14.870 14.740 13.707 12.248 11.109 11.096 11.725 14.298 14.682 13.089 11.528 11.961 10.621 + 11.759 11.511 12.408 13.349 13.716 11.991 10.581 7.020 9.514 8.628 8.642 9.252 9.578 9.685 9.266 8.983 9.260 9.868 11.602 12.639 12.765 14.888 14.977 14.032 12.291 10.817 9.339 8.543 8.943 10.019 13.325 13.512 11.815 11.185 10.161 8.727 + 13.207 12.945 13.076 12.494 11.976 10.169 9.755 8.893 9.314 8.438 7.671 7.706 8.860 8.421 8.732 8.551 8.449 9.404 11.281 12.014 11.442 12.079 12.744 12.341 7.927 6.867 5.958 5.484 6.310 7.845 10.934 10.753 9.771 8.854 7.602 5.826 + 12.410 10.988 10.060 9.370 8.278 7.721 8.147 7.271 7.411 7.677 6.743 6.339 7.267 7.421 7.891 7.169 6.760 6.385 7.030 6.618 5.899 6.285 6.335 6.437 5.481 5.196 4.019 4.196 4.639 6.611 7.283 7.068 6.303 6.469 6.312 5.515 + 10.297 10.350 10.103 8.587 8.825 7.173 7.012 6.632 7.076 7.186 6.889 7.991 7.217 6.331 6.204 6.315 7.827 9.775 11.106 11.278 9.405 7.970 9.390 8.649 9.129 9.937 8.793 9.007 8.586 7.952 9.083 11.555 12.055 11.848 12.045 12.793 + 9.580 9.805 8.078 8.535 9.037 7.109 5.961 5.935 7.330 7.172 6.386 8.360 8.413 7.406 6.942 6.234 8.591 9.681 11.442 11.803 9.751 9.237 10.442 9.350 10.220 11.557 11.060 10.705 9.762 8.666 9.242 11.556 11.662 11.568 12.261 12.553 + 8.416 8.512 7.315 7.585 7.962 6.329 5.899 6.131 5.632 6.773 7.527 8.810 8.530 7.207 6.961 7.357 7.975 9.327 9.661 9.950 9.199 8.478 7.699 8.314 9.800 9.829 9.476 9.859 8.472 7.785 8.411 9.502 8.848 8.707 10.266 9.787 + 14.068 13.244 11.642 11.270 12.059 11.641 10.881 10.735 10.401 9.678 10.375 11.117 10.509 10.677 10.661 10.571 10.190 10.758 10.796 11.462 11.243 11.427 11.183 11.728 12.326 12.403 12.244 12.248 12.427 12.190 12.906 12.596 12.349 12.634 12.134 12.033 + 16.952 16.251 14.097 14.804 15.030 15.596 16.124 15.515 14.026 14.118 14.931 15.076 14.397 13.757 11.785 10.520 11.624 12.362 11.418 11.157 11.407 10.947 10.339 10.771 10.910 10.781 10.582 10.687 10.987 11.002 11.268 11.233 10.492 10.623 10.429 10.631 + 15.768 17.142 15.868 16.679 15.355 16.296 16.011 15.411 13.312 13.268 14.430 13.748 13.839 12.982 10.835 11.290 12.071 11.513 10.643 10.545 11.093 10.678 9.840 10.453 10.954 11.226 11.684 10.541 10.971 12.270 11.609 10.762 9.530 9.662 10.050 9.362 + 16.924 17.208 16.280 15.833 15.072 14.587 15.167 14.974 13.578 13.738 14.107 14.413 13.910 12.466 10.796 11.085 10.471 9.810 9.790 9.718 8.910 8.644 9.407 8.688 9.745 11.225 11.906 10.242 11.299 12.704 10.943 9.510 8.198 9.590 9.234 8.944 + 14.202 14.958 15.326 14.877 14.771 15.735 15.753 14.622 14.302 13.189 14.881 15.189 14.416 12.045 10.269 9.147 9.174 8.270 7.525 6.922 7.494 8.648 9.249 8.688 9.031 11.712 13.068 10.969 11.263 12.661 11.448 9.726 8.288 9.652 10.792 11.264 + 14.908 13.895 12.864 12.919 14.553 15.713 15.071 14.072 14.011 12.816 14.209 14.745 14.261 11.832 9.831 9.354 8.540 8.634 7.114 6.161 6.676 7.357 7.007 7.304 7.697 9.380 11.266 10.563 8.907 11.368 10.903 9.284 8.143 10.803 11.295 11.164 + 11.334 11.807 11.325 12.607 12.477 13.747 12.675 12.915 12.704 11.765 12.876 13.134 12.323 11.595 10.405 8.476 7.418 7.461 7.546 7.192 7.784 7.911 7.093 6.588 8.680 9.339 11.375 10.521 8.560 11.261 11.554 10.895 11.355 12.730 12.153 10.181 + 11.492 10.715 9.756 9.099 9.073 9.891 8.296 7.572 8.487 8.117 8.083 9.507 8.468 6.035 5.877 5.526 4.646 4.777 6.052 5.570 5.672 6.269 6.515 5.867 7.008 8.464 8.219 7.260 6.460 7.710 8.140 8.101 8.969 8.164 7.360 6.121 + 9.238 8.971 8.845 8.071 6.854 8.084 7.114 6.490 6.592 5.680 4.657 4.488 4.619 4.105 3.016 3.834 4.126 4.649 4.501 4.565 4.964 5.419 5.388 5.473 6.997 7.712 6.180 5.987 5.782 4.864 5.454 6.115 5.745 6.047 6.199 5.116 + 7.939 8.436 8.363 6.328 6.966 6.995 5.960 6.879 4.834 4.189 3.750 4.717 5.553 4.900 4.018 4.296 3.829 3.968 5.063 5.560 4.947 4.934 4.623 5.051 6.263 6.929 6.261 6.179 5.264 4.888 3.777 4.663 5.154 5.534 6.178 5.398 + 8.659 8.426 7.135 7.414 6.972 7.062 7.972 8.097 7.994 8.008 7.791 7.391 5.807 5.269 7.076 8.237 8.501 8.838 9.077 8.968 9.327 9.847 9.929 9.734 10.313 11.234 11.644 11.651 11.327 11.075 11.250 11.026 9.767 8.448 9.092 8.349 + 10.090 9.992 9.171 7.848 9.078 9.488 9.239 10.129 10.067 10.553 10.073 9.172 8.281 7.005 9.878 10.748 10.588 10.465 10.370 9.876 10.205 11.012 11.359 10.785 11.592 12.909 13.582 14.001 13.918 14.130 14.351 14.351 13.647 12.415 12.781 11.899 + 8.865 9.596 11.235 11.969 11.920 11.591 10.899 10.052 10.159 8.807 8.213 8.089 8.920 8.207 8.506 9.204 7.385 6.813 7.744 7.267 8.277 8.616 8.615 8.891 9.466 10.982 12.892 11.160 11.096 13.590 13.687 12.995 12.732 13.664 11.824 10.848 + 13.631 12.867 13.066 13.126 12.752 12.967 11.861 11.381 10.397 8.255 9.547 11.139 11.890 12.570 12.331 11.113 9.768 7.777 7.759 8.623 8.804 8.938 9.288 9.916 9.838 11.577 12.091 10.622 12.073 11.427 11.520 10.709 11.406 11.864 11.385 8.329 + 13.093 12.391 11.665 12.086 11.290 11.591 10.925 10.426 9.525 7.708 6.697 9.349 9.838 11.733 11.713 9.461 7.640 5.661 6.833 6.230 4.853 5.299 5.224 5.527 6.525 6.787 7.033 7.975 9.300 7.643 7.097 7.022 7.853 7.665 7.975 6.275 + 9.446 10.015 10.257 9.537 8.945 7.140 6.611 5.802 6.270 6.864 5.360 5.744 6.826 8.098 6.573 5.454 4.988 3.798 3.626 3.124 4.496 4.655 5.084 5.601 6.034 4.747 3.960 4.227 5.460 4.656 4.237 4.308 3.572 3.771 4.240 4.578 + 10.282 10.994 10.665 8.759 8.535 7.609 6.245 5.853 5.939 7.073 5.689 7.116 8.289 7.380 5.301 4.391 3.051 3.193 3.134 3.331 3.995 3.934 2.828 3.792 5.322 4.575 3.364 4.096 4.114 4.280 4.383 4.741 4.654 4.362 5.614 4.665 + 9.847 10.878 10.715 8.850 7.879 8.200 7.992 6.217 6.379 6.952 6.252 7.559 6.979 6.340 6.394 5.573 4.492 4.180 3.852 4.513 2.946 4.763 4.493 3.894 5.008 5.282 3.579 3.356 4.099 4.865 4.394 4.090 3.903 3.747 4.837 4.299 + 10.382 11.152 10.376 8.814 8.650 7.392 8.258 7.847 6.678 6.313 6.388 7.817 7.114 7.560 6.404 4.111 3.591 3.442 3.805 5.612 4.598 5.288 5.439 5.488 5.590 6.299 5.005 4.974 3.945 4.653 4.591 4.891 3.681 3.779 3.618 4.292 + 9.811 10.650 9.651 6.840 7.330 6.388 6.956 6.643 5.738 6.806 6.157 5.856 4.020 5.746 5.298 4.846 3.222 2.954 4.003 5.230 5.439 5.189 4.952 5.387 4.551 5.705 5.135 4.359 3.476 4.085 4.174 4.521 4.338 4.384 4.737 4.324 + 9.359 10.227 8.489 7.359 6.611 6.364 6.746 6.286 5.856 6.563 6.574 4.714 4.519 5.837 5.373 3.978 4.318 4.688 4.886 4.868 4.343 4.115 3.502 4.125 4.719 5.299 4.273 3.317 3.128 4.213 4.055 4.351 4.600 4.575 4.079 4.511 + 9.611 10.050 9.335 7.341 4.885 5.470 5.495 3.710 4.618 5.420 4.835 4.805 5.090 5.718 5.292 5.431 5.087 4.246 4.164 4.579 5.355 4.254 5.276 5.537 4.413 4.189 3.142 3.327 3.076 3.999 3.884 3.925 4.051 4.166 4.172 3.395 + 13.294 13.573 13.677 13.437 12.989 12.605 12.452 11.290 9.768 10.210 9.277 10.252 9.090 9.604 10.337 9.745 8.837 8.238 9.199 10.265 9.729 8.506 8.880 9.841 9.117 8.007 9.190 9.716 9.556 10.832 10.746 9.253 9.426 9.419 9.872 9.414 + 17.744 16.708 17.162 17.234 17.048 16.176 15.207 13.303 13.359 13.509 12.460 12.124 11.503 10.877 11.293 10.386 10.001 10.075 10.866 11.221 10.668 9.339 9.514 10.163 8.969 8.279 9.460 10.128 10.534 11.773 10.864 9.854 9.552 9.810 10.442 10.241 + 17.450 15.734 15.976 14.402 15.068 14.175 13.478 12.713 12.568 11.638 10.114 9.624 9.206 10.082 10.350 9.255 9.629 9.239 8.838 8.751 9.171 8.020 7.313 7.815 8.362 8.296 8.064 8.903 9.975 10.849 10.291 9.259 8.668 9.059 9.115 9.043 + 12.465 12.545 12.560 12.042 10.383 10.061 10.816 10.665 10.136 9.323 7.309 7.384 7.475 6.814 7.028 6.558 7.061 7.089 6.846 4.942 7.301 7.507 6.983 6.981 7.849 7.644 6.960 7.537 8.540 8.116 10.200 9.069 8.353 8.048 7.645 8.596 + 9.150 8.579 10.196 12.118 12.892 12.369 11.756 11.990 11.407 12.065 10.820 9.442 8.438 6.364 6.603 6.498 5.424 5.287 5.296 4.203 5.183 5.538 4.707 5.245 5.825 7.326 8.151 6.381 6.458 7.197 9.457 9.925 10.122 8.921 8.080 7.904 + 9.304 10.239 11.440 13.119 13.083 12.542 13.146 12.414 12.452 13.284 10.944 10.036 8.310 7.513 6.820 6.322 6.759 6.505 5.905 5.750 6.193 5.352 5.052 6.314 7.022 9.585 10.280 7.868 8.266 9.611 10.719 11.924 11.900 9.586 8.857 9.058 + 8.321 10.247 11.706 13.055 13.837 11.128 12.206 13.053 12.992 13.327 13.014 10.898 9.662 9.482 8.132 5.330 4.840 5.373 5.757 6.101 5.925 5.730 7.127 6.908 7.807 9.564 11.003 9.437 10.013 11.293 11.649 11.321 11.069 9.769 10.695 11.194 + 9.502 9.959 11.817 12.806 14.235 12.889 11.602 11.768 12.839 12.862 13.121 13.167 12.424 10.001 8.786 9.003 9.575 9.368 8.044 8.046 8.542 8.133 8.895 8.437 9.434 12.755 12.797 13.203 12.404 11.695 11.338 10.005 9.778 10.298 10.539 9.412 + 12.240 11.686 12.574 13.325 14.989 13.611 11.881 11.701 12.319 11.801 11.260 13.137 12.794 12.482 13.117 13.315 12.673 10.963 10.783 10.293 9.618 8.041 8.718 10.607 12.533 14.238 12.970 12.249 12.178 10.620 8.878 9.053 9.139 8.725 8.885 9.481 + 12.831 12.993 13.465 13.926 15.623 14.667 12.447 12.064 12.415 12.057 9.688 11.359 10.629 11.862 12.640 13.709 13.316 13.417 13.312 13.934 13.016 11.790 12.059 12.501 14.550 15.420 12.715 11.378 12.590 11.717 9.196 8.311 7.934 7.550 6.913 6.948 + 12.740 12.901 13.500 14.372 15.884 14.372 11.911 12.227 11.555 11.185 9.066 10.169 9.120 10.159 10.199 10.801 11.417 12.535 13.540 14.718 14.095 14.148 14.443 13.810 15.259 15.816 13.493 11.498 11.701 12.813 12.250 10.432 9.618 8.855 7.713 6.911 + 12.830 12.759 13.465 14.388 15.212 13.061 11.522 11.271 10.531 9.915 8.274 9.038 7.646 8.374 8.575 9.209 9.763 10.330 10.721 11.955 12.942 14.553 15.365 14.313 14.386 15.202 13.588 10.976 9.023 9.942 12.529 12.485 11.811 11.633 9.749 7.759 + 12.808 12.695 13.202 13.349 13.588 11.651 10.671 9.759 9.435 8.402 7.328 7.609 7.223 7.612 8.214 8.425 9.193 9.787 10.024 10.521 10.928 11.730 14.063 14.299 12.620 12.571 12.478 12.123 11.086 10.837 13.328 13.688 12.797 13.374 11.780 8.457 + 12.453 12.410 12.930 12.527 12.381 11.323 10.305 8.834 9.093 7.543 7.744 7.428 7.199 7.524 7.869 7.819 8.288 7.998 8.965 9.638 9.955 11.101 14.075 14.685 12.421 11.822 13.055 13.374 12.048 11.403 11.820 11.944 11.186 11.089 9.805 6.770 + 12.069 12.141 12.642 12.131 11.845 11.075 9.938 8.621 8.677 6.654 6.989 7.943 7.885 8.188 7.867 7.329 7.849 8.228 8.562 9.056 9.436 10.752 13.798 14.717 12.222 11.570 11.731 11.458 11.002 10.860 11.810 12.325 11.663 11.887 10.267 8.038 + 12.034 12.025 12.443 11.476 11.638 11.212 9.920 9.115 8.847 7.516 8.217 7.899 7.241 7.982 7.601 7.010 8.318 8.964 9.385 10.168 10.318 11.340 14.696 15.350 12.614 11.692 11.905 12.209 11.802 11.297 13.413 14.021 13.281 13.254 10.802 8.500 + 11.797 11.405 11.849 11.006 11.470 10.769 9.188 8.559 9.060 7.764 7.265 6.804 6.890 8.226 8.231 8.332 8.663 9.303 9.423 11.398 12.615 13.643 15.151 15.593 13.668 11.764 10.233 9.781 9.600 10.391 12.708 12.355 11.230 12.012 9.630 5.765 + 10.821 10.428 10.616 11.013 9.484 7.937 7.003 6.818 6.875 7.816 8.145 7.798 5.710 6.972 6.378 6.291 6.957 6.933 7.521 9.683 10.879 11.225 11.466 11.646 9.912 7.233 6.092 5.668 5.896 7.050 9.321 8.618 8.105 8.561 5.336 2.311 + 10.318 10.238 9.723 8.488 7.299 4.997 6.085 6.050 6.634 4.614 6.710 7.609 6.259 5.740 5.385 3.288 4.013 4.338 3.612 4.382 4.237 4.043 6.391 6.951 4.755 3.497 4.327 3.145 3.452 3.835 4.075 4.228 3.694 4.104 2.295 1.778 + 9.689 9.462 8.057 7.967 7.748 5.158 6.152 7.139 6.881 5.721 5.842 5.835 4.831 4.845 5.559 4.594 3.363 3.648 4.155 4.021 4.948 5.462 7.588 8.057 6.002 4.542 4.008 3.249 2.874 3.622 3.481 3.075 3.297 3.215 2.650 2.084 + 8.932 8.737 8.506 6.804 6.711 5.344 6.053 5.580 4.856 4.296 4.551 4.054 4.299 6.106 5.737 2.945 3.650 5.038 4.377 4.365 4.603 4.940 6.712 7.125 4.578 4.791 2.937 2.954 1.992 2.511 4.279 4.484 3.544 3.300 2.788 1.733 + 6.494 5.837 6.636 7.274 6.579 4.937 5.696 4.431 5.334 3.798 3.952 3.926 4.339 6.630 5.998 3.237 4.268 4.178 5.275 5.013 4.609 4.606 5.605 6.444 4.819 4.294 4.005 2.706 2.522 2.934 3.992 4.242 3.162 3.221 2.703 1.994 + 5.524 4.968 5.802 4.694 4.631 4.661 4.529 5.015 4.988 2.905 2.730 4.362 4.591 6.409 6.350 4.573 3.873 3.706 4.335 4.699 4.389 4.643 5.204 5.076 4.129 4.769 2.313 1.989 2.596 1.999 2.825 2.794 3.616 2.597 2.042 1.349 + 8.245 7.501 7.569 6.808 6.900 6.342 6.362 6.451 5.449 6.360 6.617 6.634 6.501 7.714 7.553 6.423 7.093 7.396 7.660 7.474 7.898 7.896 7.693 7.464 7.298 7.677 7.946 8.198 7.971 7.635 7.850 7.866 7.630 7.343 7.830 7.101 + 15.783 16.301 16.342 15.560 15.034 14.698 14.971 15.592 15.434 15.120 14.305 12.990 11.501 11.994 12.622 12.026 11.483 12.660 12.797 12.341 12.025 11.621 11.546 10.321 10.431 11.533 11.374 11.365 10.968 9.841 10.673 11.327 10.712 10.324 11.232 10.432 + 17.759 18.040 17.942 15.798 16.680 16.406 15.177 16.261 15.686 15.154 14.129 13.572 12.699 11.720 12.752 12.305 12.520 12.956 13.157 12.788 12.888 11.658 11.720 10.698 10.480 12.702 11.941 11.822 10.855 9.846 10.242 11.907 9.982 9.374 10.248 10.389 + 18.405 16.444 16.017 15.637 14.296 14.095 13.487 13.164 13.443 12.966 12.279 10.516 10.906 9.453 8.643 9.072 8.953 8.532 9.700 10.503 9.620 9.354 10.287 9.683 8.393 11.578 11.180 11.004 10.293 10.136 9.461 11.586 10.962 10.132 10.248 9.676 + 16.124 14.214 12.832 10.924 10.208 9.456 9.031 8.777 8.246 7.958 7.380 8.188 6.488 7.014 7.401 6.518 6.394 6.951 7.632 9.520 8.861 8.737 9.912 8.819 8.401 10.743 11.233 9.766 9.395 9.502 9.293 9.716 10.100 9.809 10.091 9.656 + 10.878 9.719 9.854 8.302 6.898 7.045 7.177 6.713 6.566 6.684 7.186 6.943 6.817 6.470 6.173 5.788 5.797 6.640 7.133 7.444 7.510 8.470 8.486 7.863 8.072 8.514 9.920 9.918 8.569 8.655 9.615 9.676 9.165 9.580 9.559 8.504 + 9.591 7.958 7.606 6.670 8.250 7.402 6.349 5.971 6.311 5.931 5.934 5.031 4.272 5.842 4.304 4.729 7.244 8.510 7.870 8.160 8.260 8.722 8.518 8.085 8.292 9.557 9.647 8.923 8.216 8.522 8.902 9.482 9.405 9.917 10.267 9.929 + 10.392 10.134 8.708 8.283 8.795 8.626 7.635 6.545 7.484 7.919 7.387 8.091 6.587 7.136 6.685 5.870 7.605 8.549 9.046 9.232 9.297 9.452 8.791 9.262 8.833 10.543 9.707 9.405 8.783 9.064 8.955 10.271 8.865 9.540 10.130 9.284 + 12.039 11.546 10.922 10.129 10.106 10.148 9.093 8.537 9.297 9.866 9.413 9.549 9.312 8.805 7.134 6.957 8.297 10.089 10.555 10.665 10.682 10.705 9.155 9.753 9.475 11.292 11.592 10.592 10.036 10.395 9.412 9.902 10.057 10.966 10.910 10.600 + 9.186 10.320 10.154 9.268 8.842 9.529 9.232 9.264 8.617 8.599 7.871 8.137 6.465 6.709 7.554 7.718 7.548 8.817 8.468 10.263 9.675 8.527 8.064 8.408 9.478 11.481 10.975 8.752 8.616 8.612 9.642 10.449 10.288 10.525 10.233 9.499 + 8.644 10.183 10.756 9.818 11.407 11.590 12.152 11.429 11.751 10.454 9.493 7.510 7.992 8.433 8.323 8.710 9.246 9.402 10.466 11.248 10.347 10.103 10.536 10.717 11.433 12.621 11.538 9.300 8.059 8.800 9.808 10.144 7.985 8.199 7.856 6.577 + 11.537 12.342 11.353 11.267 12.275 13.779 13.630 14.870 14.338 13.391 12.866 11.869 10.151 11.136 11.029 11.554 12.024 13.011 13.977 14.607 13.563 12.050 11.112 10.873 11.418 13.189 12.643 10.474 9.905 9.955 12.521 13.094 11.449 9.597 8.658 5.968 + 12.689 11.893 12.635 11.001 12.092 13.613 15.063 16.235 16.155 13.853 13.072 11.897 10.683 11.344 11.237 11.479 11.963 12.982 14.386 15.444 13.999 11.874 10.783 10.379 9.646 11.505 13.133 12.410 11.265 11.276 13.612 14.141 12.000 9.985 8.723 5.640 + 12.970 12.392 13.099 11.308 11.685 13.311 14.457 15.286 15.713 13.470 12.323 11.780 10.805 11.007 10.924 10.926 10.970 11.340 12.075 13.574 13.914 12.518 11.124 10.998 10.840 12.424 15.040 13.930 12.348 12.546 13.853 13.408 11.175 9.693 8.635 4.919 + 12.987 12.911 13.411 11.892 11.939 13.459 14.696 15.394 15.539 13.817 12.595 12.413 11.233 11.392 11.401 11.309 11.441 11.600 11.938 13.050 14.044 13.945 11.544 10.531 10.122 10.740 13.659 13.121 12.110 13.218 15.034 14.700 13.381 11.460 9.565 5.462 + 12.951 13.143 13.544 11.945 11.857 13.353 14.388 14.773 15.239 13.711 11.517 12.115 11.201 10.772 11.053 11.044 11.210 11.202 11.183 11.712 13.180 14.991 13.750 12.385 11.948 12.168 13.720 13.509 12.665 14.076 15.600 14.583 13.399 11.780 10.548 7.158 + 12.853 13.015 13.379 11.450 11.750 13.085 14.014 14.007 14.460 13.211 10.883 11.820 10.863 9.875 10.055 10.449 10.557 10.479 9.885 9.470 11.462 13.474 13.740 12.906 12.112 13.177 14.002 14.066 13.572 14.216 15.019 13.759 13.183 12.040 11.060 8.483 + 12.700 12.448 12.883 10.269 11.294 12.048 13.024 13.224 13.028 11.913 9.770 11.321 9.763 8.762 9.084 9.331 9.062 10.010 8.881 8.490 8.919 10.878 12.958 13.331 12.621 13.597 13.863 13.010 12.845 13.201 13.877 12.317 12.371 11.555 11.177 8.884 + 12.658 12.037 12.301 10.070 11.018 11.216 11.850 11.734 11.236 10.631 10.016 10.921 8.823 7.662 8.288 8.927 8.708 9.681 8.993 9.753 9.409 9.638 11.120 10.860 10.662 10.413 10.182 10.064 11.078 11.600 11.596 10.962 11.862 11.676 12.023 10.912 + 12.772 12.413 12.521 10.725 10.626 11.429 11.800 11.570 11.013 10.160 10.066 10.746 9.475 7.121 8.038 8.797 9.006 9.992 9.200 9.548 9.342 9.497 10.463 10.201 9.015 6.676 6.389 6.681 9.049 10.142 9.872 9.908 11.513 11.331 11.833 10.474 + 12.577 12.436 12.390 10.901 10.729 11.602 11.861 11.616 11.188 10.429 10.478 10.902 9.441 7.440 8.441 8.920 9.270 9.821 9.235 9.352 9.523 9.591 10.603 11.101 8.492 6.458 4.982 6.078 8.332 9.573 10.190 10.489 11.849 11.526 10.751 9.462 + 12.425 12.265 12.120 10.785 10.940 11.382 11.772 11.227 10.079 10.242 11.022 11.005 9.098 7.379 8.441 8.780 9.227 9.298 9.148 9.013 9.748 9.854 10.209 10.720 9.106 7.066 4.460 4.907 7.861 9.344 9.987 10.555 11.863 11.511 11.071 9.346 + 12.092 11.540 11.399 10.556 10.762 10.779 11.309 10.740 9.704 10.911 10.965 10.020 8.917 7.069 7.528 7.004 7.803 7.683 7.778 7.792 8.022 9.041 11.459 11.213 9.821 7.555 5.008 5.373 6.972 8.210 8.853 8.948 10.047 10.376 10.767 9.653 + 11.810 10.630 10.778 10.878 9.953 11.215 10.797 9.213 9.433 9.709 8.687 9.442 7.715 5.079 5.580 5.572 7.112 7.966 7.966 8.314 9.066 9.939 11.409 11.331 9.401 7.489 6.027 5.534 6.442 7.856 8.412 8.288 9.241 9.453 10.800 9.558 + 11.790 11.232 9.414 10.540 9.987 10.047 11.132 10.236 9.911 9.612 9.343 8.304 5.926 6.161 6.427 6.914 8.869 8.973 9.795 9.858 9.784 10.171 11.647 11.622 10.282 8.037 7.242 6.809 7.475 8.660 9.316 7.602 7.428 7.198 8.048 6.918 + 10.443 10.129 11.040 10.338 10.513 11.599 11.277 10.101 9.183 9.692 9.242 7.091 6.823 8.163 9.256 10.027 10.898 11.450 12.345 11.797 9.905 9.436 11.100 11.238 11.005 8.154 7.942 7.529 8.001 8.215 9.888 8.093 8.125 8.898 8.740 8.132 + 8.992 10.198 10.704 9.276 10.415 10.417 11.329 10.003 10.604 9.786 9.415 7.481 7.685 7.992 7.820 8.693 10.176 11.441 12.788 11.832 9.810 9.971 9.444 10.391 11.065 8.959 8.541 8.985 9.589 8.970 9.434 9.894 10.010 10.952 11.216 10.833 + 7.336 9.502 9.174 8.453 8.543 8.729 9.237 8.886 8.759 8.294 8.180 7.224 6.756 6.768 6.537 5.882 6.966 9.597 10.634 9.590 9.373 9.253 8.672 10.235 10.411 9.085 9.045 9.745 10.094 10.171 10.744 10.835 10.897 11.512 12.429 12.807 + 8.225 7.225 7.344 8.367 7.998 8.120 8.200 8.036 6.199 5.801 5.685 7.175 6.795 5.595 6.081 6.040 7.631 9.048 8.968 8.632 8.195 8.794 8.775 9.065 9.100 10.155 9.930 9.629 9.645 10.872 11.568 11.384 10.926 12.392 12.786 12.426 + 7.735 6.769 7.371 7.975 7.640 8.049 6.845 8.218 8.074 7.059 8.048 7.960 8.039 7.174 8.086 7.331 7.899 9.259 9.240 8.634 9.311 8.979 9.003 8.067 8.483 9.312 9.579 9.647 8.100 10.957 11.257 11.946 12.048 12.843 13.217 13.197 + 5.201 7.854 8.177 6.723 6.174 7.552 7.467 7.306 8.329 7.236 7.661 7.871 7.521 6.616 7.460 8.576 8.350 8.358 8.956 8.942 8.874 9.416 8.827 9.420 8.506 10.242 9.169 9.981 9.743 10.606 12.469 12.596 12.403 13.608 13.897 13.640 + 8.065 7.380 5.890 7.362 7.743 6.900 7.298 8.427 8.566 8.213 7.955 8.541 8.279 7.931 7.937 8.162 8.773 9.456 10.240 9.434 8.596 10.161 10.010 9.559 9.173 10.395 8.975 10.125 10.386 11.102 11.891 12.391 12.886 14.069 14.637 14.289 + 9.891 9.632 9.422 9.906 9.028 9.535 9.317 8.759 9.234 9.332 7.863 6.270 8.062 8.239 7.854 8.386 8.790 10.039 11.526 10.944 9.939 9.371 9.835 10.266 9.341 11.733 10.721 10.720 11.267 11.899 12.289 12.692 13.359 13.717 13.557 14.710 + 9.910 11.139 11.314 11.542 12.081 12.475 12.247 11.686 10.776 10.762 9.024 8.575 8.410 8.928 9.869 10.481 10.543 10.276 11.496 10.712 10.132 10.190 11.113 11.516 10.657 12.179 11.030 10.451 11.114 10.653 11.185 13.636 14.252 13.148 13.256 13.844 + 11.657 11.732 11.404 12.772 13.565 14.496 15.606 15.405 13.837 13.548 11.992 12.152 11.474 11.509 10.532 10.436 11.592 12.305 12.303 11.527 10.726 10.437 10.113 10.494 12.194 13.256 11.899 10.454 9.246 8.827 9.480 9.426 10.478 11.189 10.354 9.414 + 12.410 12.280 11.882 12.020 13.146 15.061 15.831 16.467 15.580 13.579 13.988 13.460 11.685 12.972 12.276 12.749 13.145 14.259 14.297 12.816 12.188 11.452 10.704 10.993 12.182 13.473 11.729 10.083 8.017 8.247 9.316 8.283 8.552 10.536 8.967 7.182 + 12.775 12.187 12.378 11.997 12.936 14.301 15.072 16.021 16.580 15.198 13.916 14.271 13.426 12.910 13.296 12.820 14.110 15.203 15.966 14.444 14.310 12.981 12.895 12.575 13.198 13.703 12.523 11.426 11.294 10.876 11.173 10.933 9.555 10.537 9.633 8.433 + 12.532 11.881 12.317 11.815 12.890 14.049 14.521 16.697 17.191 14.930 14.643 14.356 12.948 12.930 12.898 12.642 13.364 14.637 17.146 16.448 15.357 13.888 13.659 13.140 13.912 14.170 13.453 12.167 11.670 11.556 12.619 12.941 11.037 11.839 10.446 9.118 + 12.293 11.523 12.001 11.707 12.618 13.794 13.751 16.484 17.062 15.909 14.535 13.683 12.535 12.617 11.924 12.051 12.456 13.306 16.000 15.453 14.471 13.139 12.881 12.534 13.311 13.720 13.342 11.929 10.666 11.314 13.493 14.330 12.304 12.581 9.812 8.301 + 12.073 11.836 11.980 12.154 13.042 13.961 13.949 16.610 17.376 17.169 15.165 13.712 13.402 13.593 13.346 13.381 14.004 15.125 16.906 16.307 14.097 12.776 11.260 12.062 12.284 13.046 13.540 12.849 12.074 12.403 13.471 14.250 11.905 11.380 9.479 8.560 + 12.090 11.766 11.650 12.168 13.067 13.732 13.962 16.434 17.085 17.422 15.217 14.429 13.962 13.860 13.571 13.603 14.274 15.112 16.836 16.207 15.094 13.707 12.661 12.515 12.480 11.650 11.983 12.145 11.841 12.176 13.381 14.030 11.587 10.527 9.871 9.489 + 12.074 11.629 11.134 11.795 12.780 13.159 13.478 15.952 16.803 16.984 15.891 14.931 13.005 14.150 13.328 14.058 13.830 15.750 16.477 16.632 15.027 14.329 13.787 14.714 14.678 14.053 13.442 12.869 12.251 12.771 14.005 14.399 12.376 11.815 10.470 9.855 + 11.883 11.096 11.046 11.988 12.716 13.054 13.781 15.902 16.981 17.299 15.513 14.161 13.483 13.723 13.649 14.114 14.513 15.408 16.206 15.728 13.619 12.665 12.755 13.213 13.405 12.374 11.657 11.548 11.634 12.375 13.705 14.444 12.356 11.599 8.716 7.715 + 11.756 10.973 11.224 11.987 12.427 13.106 13.583 15.752 17.237 17.525 16.352 14.520 13.290 13.764 13.831 14.103 14.583 15.414 16.985 16.378 15.135 14.305 13.961 14.535 15.055 14.057 12.814 12.143 12.067 12.394 13.600 14.432 12.214 11.656 10.030 9.553 + 11.694 11.059 11.156 12.205 12.243 13.215 13.737 15.467 17.144 17.424 16.444 14.315 13.253 13.793 13.967 14.139 14.675 15.070 15.772 15.552 14.608 13.836 13.715 14.182 14.818 13.426 12.118 11.515 11.983 12.628 13.733 14.295 11.949 11.088 9.368 8.717 + 11.983 11.469 11.499 12.349 12.786 13.351 14.196 15.430 17.164 17.504 16.668 14.639 13.826 14.275 14.537 14.608 15.082 15.924 16.225 15.646 14.478 14.322 14.486 15.106 14.865 13.442 11.845 11.382 12.195 13.427 14.398 14.951 12.706 12.122 9.963 8.725 + 11.798 11.249 11.154 11.983 12.644 13.192 14.104 15.075 16.866 17.069 16.927 14.253 13.731 14.213 14.479 14.503 14.884 15.716 16.051 16.164 14.320 13.682 13.817 14.691 14.377 13.137 12.541 11.730 12.128 13.881 15.170 14.874 12.250 10.564 9.376 9.154 + 11.651 11.204 10.757 11.923 12.522 12.852 13.717 14.934 16.676 17.084 17.034 14.170 14.478 13.866 14.454 14.262 15.346 15.320 16.631 15.723 14.151 13.584 13.290 13.693 14.052 11.833 11.640 10.855 10.890 12.656 14.216 14.097 11.720 10.566 8.950 8.227 + 11.486 10.524 10.846 11.753 12.138 12.668 13.349 14.642 16.726 17.580 17.037 14.322 14.552 13.773 14.192 14.496 15.430 16.160 15.467 13.998 13.279 13.110 13.307 14.058 12.771 11.192 10.362 9.833 10.383 11.722 13.724 13.556 11.464 11.555 10.046 9.203 + 11.362 10.791 11.264 11.788 12.301 12.800 13.527 14.807 16.867 17.796 16.864 14.513 14.557 14.221 14.685 14.875 16.392 17.524 16.201 14.234 13.484 13.290 13.601 14.591 13.108 10.851 9.894 10.208 10.576 11.917 13.869 13.594 11.256 11.327 9.180 8.011 + 11.398 11.281 11.546 11.777 12.635 12.939 13.744 14.987 16.713 17.590 16.452 14.596 15.135 14.863 15.399 15.792 17.677 17.662 15.817 13.733 12.587 12.503 13.196 13.980 12.347 10.478 9.838 10.059 10.493 11.870 12.975 13.737 11.802 10.753 8.865 7.813 + 11.311 11.274 11.159 11.843 12.728 12.901 13.827 15.475 16.704 17.717 16.594 14.388 15.354 14.779 15.576 16.504 17.741 16.209 15.626 14.068 13.638 13.537 13.900 13.966 13.330 11.525 10.759 10.179 9.520 9.542 10.973 11.642 9.940 9.160 8.661 8.015 + 10.902 10.958 10.782 11.694 12.421 12.520 13.753 15.213 16.686 17.700 15.623 14.712 15.063 14.305 15.114 16.091 16.901 14.694 13.597 12.172 11.500 11.487 12.196 12.399 11.488 9.888 9.331 8.839 8.773 10.268 11.941 11.792 10.174 9.484 8.394 8.243 + 10.779 10.526 10.772 11.505 12.098 12.527 13.610 15.238 16.949 17.477 14.809 14.448 14.542 14.235 15.152 16.845 16.038 13.749 12.586 11.057 10.355 10.250 10.809 11.230 10.756 8.932 8.352 8.113 8.631 10.361 12.401 12.048 10.347 10.349 8.535 7.574 + 10.907 11.128 11.521 11.989 12.503 13.135 14.273 16.214 17.286 17.164 14.529 14.353 14.480 14.658 16.126 16.713 14.607 13.130 12.213 10.929 10.452 10.450 11.160 11.804 11.112 9.569 9.173 9.211 9.671 11.522 13.031 12.264 10.950 10.321 9.297 7.010 + 11.348 11.309 11.549 12.199 12.619 13.327 14.658 16.260 16.729 16.491 14.484 14.179 14.374 15.031 16.083 16.088 14.189 13.033 11.979 11.247 10.575 10.378 10.728 10.296 9.123 8.058 7.944 8.441 9.315 11.128 12.348 11.419 10.124 10.480 8.802 7.504 + 11.043 10.870 11.038 12.086 12.365 12.696 14.706 15.585 16.527 15.030 13.615 13.932 13.712 14.641 15.807 15.381 13.231 11.366 10.698 10.053 9.809 9.937 10.511 10.303 8.797 7.837 8.357 8.250 8.420 9.541 11.060 10.033 9.383 10.372 9.100 7.575 + 10.626 10.185 10.656 11.777 12.553 12.475 14.729 16.224 16.084 14.607 13.246 12.858 13.234 14.431 15.994 15.303 12.348 11.233 10.540 10.035 9.578 10.174 11.012 11.452 9.164 7.720 9.047 8.526 8.458 9.826 10.804 9.820 8.902 10.293 8.703 6.911 + 10.604 10.687 11.343 11.867 12.706 13.296 15.424 15.873 15.159 14.119 13.192 12.517 12.812 14.176 15.685 15.066 12.491 11.618 11.143 10.272 10.133 10.630 11.908 12.206 10.204 8.565 10.066 9.214 9.071 10.659 11.695 10.286 8.706 10.194 8.742 6.060 + 9.522 9.834 10.708 12.072 12.987 14.034 15.555 15.358 14.957 13.564 12.844 12.418 12.560 13.516 15.056 14.900 13.405 12.053 11.472 10.305 10.128 10.767 11.103 9.723 9.556 10.490 9.173 8.456 7.942 8.888 10.607 9.561 7.864 10.059 10.712 8.536 + 7.866 8.078 8.660 9.260 11.001 12.416 14.403 13.882 12.589 11.356 9.505 9.497 9.772 10.845 12.869 13.590 11.094 9.672 9.152 8.125 8.308 8.268 8.725 7.127 7.743 9.291 7.258 6.291 6.501 6.599 8.988 7.555 5.558 8.698 9.252 8.730 + 7.755 8.397 9.265 9.904 11.514 13.404 13.560 12.240 11.325 10.820 9.921 9.435 9.761 10.891 12.089 13.566 12.450 10.287 9.409 8.431 8.726 8.319 6.395 5.958 6.417 8.426 7.305 5.590 6.204 5.922 8.159 8.005 6.512 8.505 9.649 10.267 + 4.645 4.617 3.763 3.922 7.737 9.750 9.725 9.444 10.174 7.597 5.069 4.661 5.356 5.867 7.593 11.014 9.794 6.827 6.053 5.694 5.541 5.515 5.988 6.189 5.268 6.225 5.065 3.672 3.588 4.104 4.123 4.430 4.819 5.992 6.497 5.812 + 4.709 3.710 5.123 4.828 5.351 7.426 7.953 8.186 9.369 7.737 6.322 4.709 4.284 5.994 7.969 8.759 7.432 7.325 7.792 6.165 5.896 6.236 5.575 6.035 5.646 5.318 3.769 3.705 3.794 3.365 4.486 3.945 4.570 4.222 3.510 3.773 + 5.549 4.451 4.568 4.747 4.535 7.112 8.456 8.467 9.360 8.255 6.627 5.124 5.753 6.043 7.248 8.018 6.926 6.683 6.406 5.250 5.452 5.616 5.242 5.568 4.410 5.046 3.882 2.682 2.959 3.371 3.735 3.211 3.526 2.455 2.978 2.413 + 3.654 3.629 2.786 3.776 4.695 6.210 7.686 8.256 9.162 7.740 6.529 5.001 4.298 6.233 6.365 6.523 7.031 6.398 5.954 5.781 5.319 5.205 4.028 4.633 4.439 4.686 2.998 3.541 3.429 3.900 3.888 3.182 2.872 3.034 3.026 2.509 + 3.965 3.922 4.077 3.625 3.366 5.718 7.688 7.761 8.633 8.023 6.761 4.017 3.517 5.743 6.539 5.923 6.282 5.929 6.323 5.943 5.189 3.446 3.384 4.055 3.344 3.534 2.987 2.792 3.399 3.237 3.681 3.579 3.105 3.460 2.515 1.889 + 1.316 3.310 3.954 4.308 4.871 6.130 8.201 7.969 8.508 7.096 5.151 3.614 2.571 4.567 5.890 5.600 4.728 5.322 5.221 5.735 4.899 4.915 3.921 4.789 4.920 3.456 3.623 3.216 2.768 3.476 3.790 3.339 3.223 2.680 2.186 1.439 + 5.132 4.839 3.378 4.199 4.122 4.787 7.145 6.869 8.268 7.525 5.485 5.370 5.009 5.686 5.826 6.572 5.875 6.488 6.618 5.925 5.324 4.713 3.450 4.492 3.891 4.027 3.695 2.593 3.059 3.260 3.375 2.901 3.175 3.160 2.518 1.589 + 5.072 5.202 4.709 5.621 5.603 5.945 7.577 8.203 8.522 6.894 5.142 4.966 4.291 6.456 7.688 7.893 6.153 5.523 6.527 5.213 5.291 4.701 4.222 4.655 4.343 4.458 3.879 3.816 3.357 2.720 3.375 3.417 3.867 3.758 2.578 1.361 + 3.630 4.829 4.523 4.030 3.577 4.534 6.380 6.359 7.417 6.279 5.239 4.774 4.844 7.283 7.703 7.400 6.428 6.073 6.092 5.255 5.761 5.336 5.065 4.641 5.126 5.478 5.044 4.178 3.182 2.983 2.371 3.067 4.436 4.534 3.380 2.227 + 5.612 6.124 6.160 7.099 8.492 9.365 9.592 9.932 10.137 9.958 9.321 8.910 9.036 9.732 10.450 10.308 10.837 10.723 9.569 9.837 10.456 10.369 9.264 7.982 8.103 8.755 9.115 8.585 8.856 9.033 8.290 8.650 9.183 8.788 9.458 8.762 + 7.506 7.262 7.229 8.109 9.024 10.041 10.140 10.270 10.614 10.356 9.520 8.350 8.522 10.062 10.642 10.074 11.197 11.198 9.387 10.124 10.499 10.407 9.174 7.443 8.062 8.859 9.406 8.765 9.093 9.307 8.682 9.369 9.879 9.705 10.124 10.290 + 4.333 5.753 6.307 6.571 5.908 7.146 8.250 7.910 7.493 7.146 7.781 6.745 7.721 8.303 8.777 8.913 9.989 9.290 9.459 7.955 8.898 9.559 9.699 8.763 7.835 8.242 8.077 8.207 9.748 9.436 9.269 10.109 9.929 11.079 10.982 11.634 + 5.585 6.578 5.778 5.771 5.856 7.175 7.199 5.967 7.369 8.233 8.837 9.074 9.071 10.992 10.217 9.249 10.180 11.660 10.836 10.533 11.077 10.630 10.459 9.857 9.085 9.950 10.448 9.090 10.091 10.682 11.366 11.607 11.906 12.218 13.628 13.819 + 7.979 7.353 6.014 5.781 6.724 8.451 9.105 8.980 9.154 9.376 9.625 9.835 9.966 10.261 10.707 9.699 12.097 12.093 11.408 10.820 11.014 11.362 10.541 10.857 10.040 10.537 10.999 10.651 11.168 11.014 12.111 12.743 12.428 12.666 13.868 13.330 + 6.683 6.589 8.159 7.266 9.187 9.870 10.135 9.294 9.888 8.912 9.405 9.559 11.066 10.705 10.403 10.050 11.448 11.609 11.825 10.786 11.127 10.446 10.065 11.153 10.404 10.210 11.570 11.467 11.765 11.324 11.839 12.594 12.759 12.994 13.867 13.774 + 7.593 7.790 8.546 8.645 9.228 8.545 8.720 8.701 10.268 10.322 9.508 10.131 11.363 11.680 9.751 9.720 10.920 12.467 11.602 10.275 11.019 10.506 11.367 10.778 10.571 10.774 11.284 11.472 11.258 10.756 12.015 12.276 13.223 13.401 14.180 14.074 + 8.366 8.144 7.737 8.710 9.316 10.285 9.809 9.812 11.300 11.364 9.883 11.147 10.921 11.041 9.772 10.078 10.121 11.329 11.789 10.192 11.149 10.849 10.434 9.807 8.755 10.416 11.014 10.631 10.622 11.051 12.189 13.452 14.053 13.047 13.841 13.495 + 8.582 7.719 7.304 7.115 8.278 9.415 10.770 10.744 9.369 11.037 11.160 10.298 9.766 9.657 9.655 9.342 11.669 11.982 11.964 10.765 10.113 10.272 10.070 10.614 9.519 11.340 11.830 10.787 10.838 11.707 11.630 13.815 13.750 12.056 13.483 13.843 + 6.734 6.511 8.010 6.864 7.526 9.818 10.548 10.014 9.708 11.291 11.549 10.133 8.960 10.272 9.728 9.687 11.640 11.619 10.916 11.468 10.228 9.993 9.957 9.949 10.745 12.114 11.930 10.710 9.801 10.592 11.799 14.190 14.155 12.465 13.481 13.173 + 8.803 9.008 10.741 10.765 11.543 13.178 13.019 12.565 11.350 11.040 9.918 10.238 8.591 8.451 8.919 10.246 10.925 11.562 10.842 8.639 8.203 8.897 8.229 8.837 9.765 11.556 11.065 9.487 9.179 10.303 10.366 12.552 12.623 11.044 12.164 12.624 + 11.268 11.515 11.027 11.823 13.855 14.715 15.224 13.867 12.397 11.249 10.818 10.072 10.643 10.383 10.615 11.180 11.928 11.553 9.793 8.548 7.424 7.248 7.057 7.941 9.198 11.975 11.612 10.399 10.067 9.314 8.618 10.117 9.971 8.931 9.212 10.421 + 11.655 11.421 11.698 12.400 13.591 15.164 16.009 14.931 13.236 12.027 11.193 10.868 11.250 11.484 11.765 12.625 13.987 13.164 9.707 8.711 7.545 6.631 6.762 8.160 9.987 12.984 12.566 11.425 11.049 9.519 10.052 12.315 11.667 9.864 9.390 8.327 + 11.735 12.037 12.269 12.811 13.666 14.963 16.294 15.709 14.286 13.203 11.909 11.548 11.711 11.231 11.750 12.542 14.384 14.235 11.007 10.002 9.258 8.663 8.735 9.953 11.803 13.871 13.235 11.474 10.703 10.566 11.889 13.398 12.550 12.221 11.935 9.124 + 11.455 11.567 11.824 12.707 13.276 14.474 15.478 16.440 14.095 14.063 12.634 11.371 11.548 11.760 11.913 13.156 14.325 14.825 12.380 11.457 10.796 9.892 9.701 10.507 11.905 14.407 13.856 12.021 10.792 10.584 12.647 13.024 11.621 12.362 12.186 10.427 + 11.110 11.018 11.019 12.186 13.024 13.241 15.796 16.582 14.701 14.384 12.754 11.376 11.881 11.497 12.014 12.543 14.006 14.672 13.941 12.453 11.293 10.971 10.935 11.325 12.782 14.997 14.158 12.270 10.873 11.229 13.070 13.143 11.552 12.422 12.739 11.502 + 11.123 10.912 11.500 11.956 12.808 13.005 15.613 16.508 15.402 14.144 12.615 11.468 11.830 11.553 11.805 12.524 13.675 14.999 13.604 12.080 11.587 10.868 10.847 11.557 13.233 14.707 13.820 12.165 10.734 11.409 13.474 13.236 11.784 11.806 11.839 10.839 + 11.202 11.326 11.886 12.273 12.951 13.018 15.383 15.959 15.769 14.764 13.234 11.874 11.946 11.807 12.254 12.938 13.934 14.854 13.637 11.792 11.534 10.929 11.200 12.088 14.107 14.683 13.682 12.438 11.415 12.511 14.035 13.013 11.294 11.184 11.426 10.934 + 11.147 11.069 11.249 12.141 12.640 12.739 15.070 15.403 15.599 14.801 13.607 12.165 12.700 12.215 13.008 13.863 14.846 15.642 14.581 12.402 12.060 11.785 11.596 12.064 14.309 14.889 14.022 12.623 11.401 12.539 13.403 12.477 10.994 10.800 11.184 10.926 + 10.671 10.623 10.910 11.427 11.745 12.578 14.615 15.654 15.842 14.312 12.789 12.119 11.793 12.213 12.624 13.265 14.569 14.618 13.362 10.989 10.501 9.821 8.570 9.784 12.428 12.778 12.138 11.174 10.430 11.891 12.610 11.426 10.190 9.033 8.941 8.929 + 10.902 10.705 11.329 11.445 12.496 12.747 14.620 15.883 16.280 15.239 13.617 12.458 12.770 12.848 13.282 13.922 15.163 15.670 14.168 12.778 12.117 11.349 11.529 12.397 13.664 14.006 13.389 11.940 11.099 12.925 13.371 11.818 10.569 10.211 10.675 10.365 + 11.287 11.144 11.672 12.202 12.810 12.998 14.704 15.845 16.154 15.555 14.158 12.548 12.890 12.699 13.559 13.908 15.274 15.160 13.961 12.165 11.406 10.807 10.951 12.046 13.936 14.128 12.762 11.025 10.447 12.988 12.949 11.224 9.739 10.155 10.384 10.240 + 11.291 11.231 11.498 12.195 12.571 13.020 14.729 15.367 15.899 15.124 13.927 12.982 12.704 12.881 13.102 14.084 15.442 14.887 12.950 11.731 11.047 10.859 9.946 10.746 12.100 11.891 11.267 10.704 9.949 11.445 11.528 10.313 9.095 9.057 8.941 7.558 + 11.022 10.827 11.002 11.869 12.397 12.570 14.510 15.555 16.072 14.682 13.127 12.915 12.664 12.675 13.059 14.383 15.547 15.340 13.003 10.871 9.841 9.504 9.093 9.730 11.567 10.865 10.597 9.754 8.664 10.627 10.755 9.450 8.515 8.180 8.430 7.891 + 11.143 10.948 11.497 11.892 12.513 12.921 14.726 16.023 16.265 15.171 13.135 12.893 13.035 13.036 13.497 14.623 16.361 15.585 13.609 12.384 11.480 11.040 10.849 11.701 13.019 12.700 12.078 11.092 9.510 11.261 11.049 9.779 8.781 8.305 8.957 9.370 + 11.468 11.248 11.791 12.289 12.664 13.236 14.776 15.779 16.083 15.223 13.608 13.334 13.169 13.325 13.896 14.761 15.341 15.378 13.645 12.701 11.966 11.548 11.230 11.859 13.165 12.720 12.310 11.718 10.370 12.502 11.858 10.107 9.146 8.700 9.062 9.457 + 11.508 11.304 11.492 12.308 12.469 12.838 14.475 15.033 16.010 15.215 13.484 13.690 13.149 13.496 13.653 14.405 14.694 14.851 13.258 12.209 12.014 11.701 11.520 12.554 14.261 13.248 12.760 11.855 10.416 11.497 10.474 9.692 9.343 8.718 8.631 8.860 + 11.549 10.649 10.505 11.680 11.278 12.425 13.487 14.638 15.883 14.327 13.972 14.010 12.608 13.668 13.257 14.543 15.250 14.175 13.132 12.266 12.096 11.856 11.678 12.781 13.869 13.788 13.050 12.212 10.447 11.529 9.705 8.793 8.347 7.779 8.848 9.468 + 11.347 9.911 10.749 11.373 10.229 11.885 12.670 13.528 15.495 15.047 13.529 13.172 13.133 13.028 13.534 15.022 14.683 13.928 13.154 12.640 12.262 12.269 12.258 12.865 13.723 14.379 13.961 13.051 11.080 11.418 9.886 9.007 8.647 9.139 9.590 10.273 + 11.156 11.131 10.373 9.596 10.522 10.545 12.281 13.873 14.316 13.562 13.472 11.253 11.985 11.914 13.252 13.970 13.831 13.324 13.177 12.472 12.001 11.839 11.677 11.755 12.183 13.211 13.316 12.725 10.899 10.607 9.464 8.854 9.279 9.214 9.636 10.118 + 9.811 10.988 11.637 9.836 9.875 10.900 11.651 12.031 12.625 13.119 11.904 10.597 11.406 11.670 13.637 14.409 12.921 12.537 12.553 10.816 11.099 11.485 10.518 10.424 10.181 12.610 13.159 12.276 10.095 9.371 7.975 7.407 7.619 8.924 9.458 10.039 + 8.402 11.276 10.805 9.630 9.238 10.277 10.371 10.239 11.390 12.303 11.292 9.073 10.749 10.083 12.767 13.182 12.128 10.722 10.448 9.343 9.268 8.433 8.720 8.312 7.784 9.380 10.556 10.402 9.393 8.572 6.030 6.138 6.105 8.934 8.843 8.396 + 8.496 10.637 10.247 9.612 7.130 8.636 9.666 9.927 10.221 10.930 9.876 9.022 9.233 9.372 11.599 12.043 9.739 8.826 8.813 8.332 7.819 7.329 7.070 7.184 6.504 7.639 9.372 9.265 8.265 7.634 5.584 4.468 5.224 7.977 8.460 7.765 + 7.625 8.381 8.728 8.138 6.937 6.865 6.783 7.755 8.732 8.435 8.082 7.612 7.576 8.175 8.854 8.801 7.184 7.797 8.434 7.706 6.467 6.435 6.349 5.836 6.753 6.588 8.520 8.744 6.883 6.935 5.571 4.861 5.863 7.414 8.016 6.825 + 7.596 6.475 6.883 5.554 5.212 4.316 3.918 6.384 7.868 8.537 8.928 7.866 7.180 8.385 9.607 8.401 7.277 8.231 8.158 6.697 5.952 5.520 6.540 6.545 5.553 5.915 7.090 7.532 7.326 7.717 6.442 6.469 6.673 7.371 7.791 6.156 + 6.737 5.665 5.613 5.513 4.724 4.305 4.955 6.719 7.339 7.074 7.802 5.981 5.308 5.688 7.459 7.516 6.929 7.303 7.226 5.692 5.638 4.512 4.982 4.864 5.017 5.374 6.622 7.675 6.907 6.882 5.827 6.831 7.191 7.299 7.551 6.513 + 3.818 4.106 2.978 3.854 4.945 5.470 6.443 5.617 6.103 6.884 6.872 6.426 5.668 5.928 6.720 6.799 5.953 6.354 5.789 4.813 5.508 5.282 5.504 6.250 4.674 4.494 4.547 5.578 6.518 5.917 5.401 5.887 7.559 6.784 6.486 5.875 + 3.527 4.464 4.420 4.690 5.109 5.804 6.332 6.172 6.718 6.033 6.813 5.032 4.940 4.751 5.337 4.637 4.531 5.817 5.612 4.038 3.155 4.975 5.842 6.213 5.202 5.222 4.460 5.995 5.541 5.077 5.693 6.183 6.593 6.368 5.892 5.550 + 3.459 4.610 4.952 5.369 4.762 6.324 6.307 6.912 6.050 5.150 4.458 4.509 3.913 5.765 6.150 5.597 5.634 7.090 6.368 5.490 5.146 5.583 5.845 5.762 5.109 4.889 5.682 5.494 5.141 4.466 4.875 5.236 5.396 5.869 5.634 3.283 + 5.225 5.822 4.937 5.025 5.534 6.518 6.373 6.739 6.798 6.343 4.598 3.450 4.139 5.222 5.418 6.521 6.535 7.286 7.165 6.978 6.114 6.124 5.226 6.127 6.234 5.453 4.860 5.177 4.794 5.482 6.842 7.311 7.336 6.537 6.251 6.591 + 4.968 4.548 3.928 4.712 5.343 4.385 4.786 6.097 6.183 5.467 4.153 3.756 4.352 4.493 5.942 6.692 7.728 8.620 8.872 7.031 5.794 5.412 4.864 6.254 5.925 6.152 5.908 5.581 4.839 5.528 6.704 7.079 7.183 6.767 5.980 6.435 + 5.082 4.805 4.869 4.516 3.986 4.509 5.700 5.529 4.832 5.128 5.111 4.395 4.868 4.816 6.523 6.418 6.497 8.220 8.067 7.375 6.106 5.870 5.309 5.918 5.719 5.031 4.595 4.962 4.690 5.292 6.220 6.931 7.073 6.066 5.512 5.866 + 4.869 5.263 3.500 3.116 4.288 5.788 4.577 4.152 5.224 5.602 4.773 4.093 3.412 4.899 5.872 5.728 5.555 5.289 5.557 5.371 4.835 5.192 5.652 6.183 4.856 4.598 4.196 4.007 4.051 4.502 4.200 4.268 4.114 4.371 3.918 3.554 + 6.044 5.348 5.765 5.690 5.245 6.736 7.145 5.742 5.659 6.937 5.773 6.290 6.048 5.243 6.328 6.757 7.415 7.878 7.727 7.545 7.188 6.486 6.799 6.802 6.470 6.816 7.138 6.776 6.699 7.361 7.579 6.931 6.090 6.302 6.279 5.912 + 7.288 8.083 8.719 9.084 9.112 9.319 9.648 9.557 9.628 9.630 9.199 9.377 9.518 9.525 9.800 10.309 10.806 11.430 11.610 11.189 10.258 9.550 9.143 9.002 9.410 10.242 10.511 9.680 9.959 10.971 11.641 10.394 9.633 9.498 9.865 10.135 + 5.455 6.301 7.177 8.494 6.962 6.842 7.170 7.472 7.615 7.072 7.001 6.771 6.842 7.218 7.020 7.850 8.536 9.499 9.764 9.614 8.322 7.356 6.917 6.649 7.054 7.951 8.779 7.352 7.219 8.637 9.749 7.807 6.915 7.151 7.554 7.845 + 4.723 6.783 8.219 8.923 7.702 7.357 6.397 5.733 4.706 7.604 7.419 7.948 7.273 6.372 7.088 7.613 7.805 9.131 10.376 9.276 8.132 7.637 6.909 7.920 8.366 8.128 8.033 7.428 7.142 7.828 7.963 8.685 6.446 6.480 7.100 6.677 + 5.738 6.357 6.951 7.597 6.990 8.038 7.107 7.855 8.274 8.537 7.697 7.840 7.932 8.233 8.876 8.762 9.023 8.341 10.726 10.388 8.809 7.834 7.111 7.489 7.680 7.920 9.611 8.387 7.611 7.167 8.369 8.881 7.292 6.491 7.000 7.608 + 4.239 5.553 7.222 7.984 7.204 7.591 8.715 8.206 8.146 7.177 6.943 8.524 9.377 9.089 8.151 9.317 9.592 9.059 9.759 10.323 10.378 8.787 7.942 8.660 8.253 8.039 9.053 8.220 7.387 8.247 9.289 8.937 8.210 8.227 8.475 8.473 + 4.867 7.147 8.017 8.230 7.320 6.695 7.956 7.736 7.344 8.640 8.629 8.076 8.435 7.940 8.179 9.997 10.277 10.692 11.358 9.526 10.297 9.537 8.676 9.578 8.929 8.944 8.551 8.013 7.697 8.725 9.881 9.606 9.600 9.179 9.297 8.764 + 6.237 6.467 6.500 6.210 7.092 7.828 8.680 8.385 7.276 8.489 8.962 9.429 9.826 8.883 9.273 8.051 9.977 9.270 10.262 11.729 11.515 8.978 9.113 8.858 9.260 10.075 9.696 8.909 8.693 8.894 11.049 11.197 9.610 8.971 9.547 8.841 + 5.139 5.029 5.535 7.885 9.401 9.617 8.884 8.023 8.053 8.056 8.826 10.068 8.927 9.036 8.912 9.229 9.256 9.835 10.685 12.081 12.239 10.400 8.910 8.972 9.498 10.058 9.946 8.877 9.395 8.862 10.735 10.843 9.789 9.613 9.341 8.399 + 4.951 5.577 6.659 7.588 8.415 8.366 9.806 9.472 7.617 7.981 9.093 8.897 9.558 8.580 7.175 9.255 9.257 9.404 10.054 11.924 11.873 10.294 9.018 9.289 9.592 10.030 9.441 9.519 9.080 8.480 9.904 11.510 10.377 9.982 9.474 10.110 + 4.305 5.676 7.540 7.842 7.813 9.306 8.794 8.019 6.799 8.488 8.522 8.363 7.828 7.707 6.671 8.847 9.027 10.238 10.971 11.759 12.205 10.185 9.775 9.508 8.976 10.810 11.382 9.323 9.243 8.610 9.987 10.653 9.888 9.214 9.974 9.196 + 6.555 5.486 6.897 6.800 8.938 9.893 9.514 8.090 8.993 9.515 9.482 9.785 9.005 8.160 8.832 8.016 8.262 9.836 10.332 11.955 11.948 10.295 9.770 9.424 8.695 10.046 10.791 10.017 10.003 9.758 10.500 10.886 9.995 10.408 10.354 10.152 + 6.482 5.242 5.892 7.384 7.630 7.672 8.539 8.840 8.244 7.578 9.404 9.889 9.733 9.018 8.369 7.553 8.630 10.992 11.071 12.189 12.541 10.080 10.013 9.769 9.621 11.895 11.416 10.182 9.871 10.143 12.084 11.285 9.324 9.833 11.269 10.429 + 6.389 6.091 4.579 5.660 8.065 8.978 9.398 8.828 7.548 8.369 9.253 9.581 9.356 8.772 8.429 8.515 9.076 10.086 11.173 12.354 11.395 10.084 9.976 9.683 9.884 11.288 11.414 10.220 9.230 10.367 11.422 11.067 10.429 10.394 11.019 10.474 + 5.970 5.297 5.582 6.190 7.121 9.029 9.442 9.693 8.093 9.058 7.420 7.166 8.505 8.460 8.619 8.604 9.253 9.751 10.035 11.746 10.977 10.413 9.083 9.980 10.432 9.370 10.474 10.140 9.262 8.854 10.671 11.399 11.075 10.297 9.786 9.588 + 5.099 5.358 5.622 5.775 6.183 6.717 8.527 9.364 8.550 8.618 8.401 7.501 9.054 8.054 8.215 7.792 8.878 9.870 9.018 11.068 10.573 10.078 9.613 9.066 10.700 10.262 10.489 9.498 8.653 8.826 10.316 11.600 11.141 9.730 8.821 9.171 + 4.457 5.037 4.510 5.751 7.747 7.453 9.556 10.440 8.988 7.800 7.640 8.150 8.168 7.019 8.021 8.161 9.216 10.011 10.580 10.970 10.550 10.330 9.283 10.027 8.713 10.467 11.579 10.170 9.283 10.301 10.989 11.516 10.634 9.689 9.422 8.590 + 5.485 5.827 6.897 8.611 9.539 8.040 9.530 10.318 7.868 8.594 8.839 7.283 7.821 6.100 6.792 7.955 9.565 9.834 10.530 11.732 10.851 10.096 9.529 9.769 10.422 10.732 10.661 10.752 8.908 9.740 11.086 11.367 10.410 10.575 10.930 9.778 + 3.751 6.178 7.136 7.836 7.934 7.593 9.528 10.288 8.301 9.215 8.193 7.331 6.669 6.728 5.383 7.859 9.275 11.151 11.114 12.023 11.527 10.724 10.149 10.363 11.360 11.494 11.208 10.836 9.597 9.845 10.595 11.063 10.043 10.002 10.263 9.264 + 4.628 3.366 4.001 6.842 8.523 7.944 9.638 9.647 8.235 8.746 8.189 8.368 7.639 6.772 6.501 7.726 9.047 10.395 10.851 11.782 11.157 10.509 9.498 10.954 11.445 10.838 10.709 10.788 10.541 11.176 11.605 11.861 10.242 10.315 10.943 9.306 + 4.970 5.538 5.044 6.815 7.000 7.983 8.713 7.698 8.885 9.777 8.902 8.567 7.127 8.219 7.404 8.182 9.103 9.043 11.015 11.016 11.234 9.639 10.028 10.324 9.928 9.745 11.148 10.004 10.257 11.472 12.213 11.677 11.373 10.349 10.742 10.151 + 5.620 5.315 5.814 6.327 6.118 6.249 8.864 9.361 8.938 9.870 8.054 8.589 7.280 7.066 7.774 7.762 9.883 10.349 10.557 9.624 10.427 9.088 8.637 9.138 9.515 9.854 10.341 9.879 9.473 11.144 12.451 11.271 11.218 10.542 10.855 9.584 + 3.800 5.081 7.098 6.847 6.454 7.862 9.566 8.651 8.644 9.581 6.887 7.572 7.909 7.271 7.487 7.162 9.821 10.693 12.021 11.849 11.462 9.708 8.859 10.222 9.219 9.986 11.394 10.967 10.335 10.357 11.440 11.096 11.144 10.447 11.280 10.545 + 4.586 5.066 6.484 7.998 7.123 7.210 9.294 9.585 8.963 9.960 7.699 7.862 8.446 8.232 8.758 9.099 9.480 10.129 11.655 13.005 11.632 9.880 9.017 9.579 9.414 9.506 10.913 10.516 9.337 10.095 10.847 11.424 11.462 10.465 11.084 10.385 + 8.480 8.451 8.588 7.822 6.959 9.073 9.889 10.205 10.397 10.931 9.809 9.452 8.667 9.470 8.720 9.350 9.998 11.442 11.973 12.127 11.233 9.893 10.381 10.132 10.570 10.702 10.501 10.475 10.222 11.098 12.936 12.506 11.841 11.320 10.903 9.242 + 8.289 7.801 7.417 7.156 8.132 8.349 8.841 9.530 10.017 10.864 9.744 8.576 8.094 8.573 7.991 8.542 10.494 11.339 11.401 12.297 12.264 11.066 11.255 11.210 10.693 9.684 11.565 10.931 10.067 11.220 13.129 12.018 12.166 11.878 10.543 10.036 + 3.468 4.665 7.154 8.689 8.031 8.810 10.559 9.535 9.279 9.886 7.237 7.726 6.970 7.538 8.065 8.610 9.697 10.218 12.020 13.730 13.698 11.605 9.775 9.828 10.575 10.561 10.624 9.918 9.554 11.612 12.416 11.901 12.365 12.711 10.990 10.402 + 5.692 4.975 4.627 7.116 6.819 8.298 10.276 8.716 8.687 8.979 7.444 7.051 6.704 6.491 7.271 7.772 8.158 10.329 11.158 13.113 12.483 9.794 10.142 10.229 10.493 11.093 11.514 9.922 10.641 11.538 12.504 11.795 12.815 12.635 11.663 10.090 + 5.124 5.686 5.243 5.720 7.175 8.878 10.687 9.111 8.037 8.387 6.871 6.374 5.667 6.195 7.526 7.743 8.316 10.158 11.481 11.863 12.108 10.942 9.975 9.803 10.251 10.605 11.364 9.725 9.460 10.173 11.988 11.140 11.289 11.182 10.835 9.427 + 6.199 6.203 6.955 7.716 7.615 9.585 11.500 10.131 7.403 7.458 7.723 7.277 6.311 6.949 8.166 8.587 7.818 9.142 10.978 12.439 12.399 11.094 9.199 9.020 9.724 9.923 9.733 9.070 8.285 9.263 11.860 11.237 10.632 9.681 9.792 8.690 + 5.451 5.601 5.178 5.747 6.520 10.216 11.657 9.766 6.961 5.879 6.280 6.996 6.931 6.500 7.021 8.481 9.815 9.414 10.532 12.789 12.170 10.773 9.180 9.454 8.664 8.513 10.080 9.349 8.107 7.643 9.945 10.112 10.669 9.939 9.508 8.429 + 2.803 5.721 5.803 6.893 5.404 10.449 11.607 9.086 5.794 5.940 6.313 6.204 5.834 5.946 5.161 7.948 9.116 9.788 11.062 11.721 11.444 9.680 8.860 9.312 9.163 9.252 9.737 8.936 8.787 8.415 9.928 10.723 11.616 11.568 10.545 9.822 + 4.868 7.216 7.099 6.880 7.321 10.771 11.806 9.437 7.048 5.553 6.019 6.422 4.700 4.979 4.908 7.627 8.785 8.948 9.882 12.285 12.114 10.012 9.199 9.521 8.657 9.294 8.629 7.987 8.609 9.114 10.531 10.773 11.053 11.310 10.553 9.561 + 5.495 6.920 7.645 7.318 7.144 10.962 11.725 9.128 7.441 7.326 6.822 7.498 6.756 5.783 6.038 7.525 8.225 8.907 10.443 11.470 10.758 9.634 8.419 9.703 9.552 9.305 9.563 7.945 7.461 9.935 11.893 10.952 10.490 11.542 10.424 9.600 + 4.758 6.753 7.924 8.315 7.245 10.544 11.208 9.136 6.174 6.313 6.405 6.278 5.506 6.314 4.890 5.764 7.832 9.023 9.666 12.049 11.392 9.443 7.915 8.730 8.671 7.911 7.990 8.086 7.748 9.548 11.770 11.011 11.042 11.008 10.057 9.772 + 5.493 6.647 7.405 7.873 6.950 10.319 9.761 7.090 6.705 6.104 6.731 6.047 6.107 6.081 6.376 7.154 8.430 9.235 9.780 11.338 9.993 9.014 8.098 8.500 8.212 8.337 7.761 7.405 7.859 8.660 11.435 10.498 9.460 10.254 8.373 7.546 + 9.203 7.527 7.455 6.172 7.415 10.091 9.727 7.497 8.083 6.560 5.485 5.701 7.258 6.579 8.166 9.464 8.609 9.133 9.811 10.730 9.688 8.023 6.968 6.852 7.864 8.301 8.126 7.868 8.043 9.015 9.997 9.693 9.672 9.896 8.866 7.729 + 10.035 9.368 7.412 7.484 9.162 10.155 7.808 7.484 7.177 5.317 6.279 6.745 6.595 6.078 7.107 8.178 9.330 8.404 9.864 9.636 8.914 8.093 6.878 6.597 7.747 8.352 8.744 8.052 8.025 8.540 9.740 8.989 10.532 10.196 8.858 8.480 + 7.163 6.372 5.914 7.028 8.679 10.052 8.951 8.078 5.771 4.160 5.993 6.347 4.266 5.775 6.119 7.334 7.038 8.615 9.900 10.574 9.259 8.707 7.175 6.393 6.637 6.489 7.873 8.072 6.261 9.255 10.760 8.887 10.048 10.309 9.669 9.231 + 6.754 5.537 6.005 7.045 7.805 8.870 8.295 7.279 6.412 4.727 4.181 5.190 4.754 3.471 5.244 5.825 7.125 7.736 8.065 9.545 8.753 7.084 7.280 6.261 6.970 7.164 7.298 6.127 6.456 6.980 8.671 9.100 9.619 10.455 9.130 8.872 + 7.769 6.768 7.278 8.100 7.151 8.116 7.990 7.157 5.269 4.955 5.631 6.140 6.055 4.876 4.980 6.116 7.129 8.338 10.009 10.817 10.120 8.199 6.972 6.512 7.189 7.260 7.655 6.309 5.699 7.821 8.747 8.296 9.033 10.733 9.144 8.839 + 7.583 7.808 7.267 6.492 5.523 8.139 7.851 6.436 5.710 5.418 5.861 5.401 5.870 5.711 5.411 5.972 7.376 8.651 9.717 10.709 10.779 7.164 6.128 6.959 6.812 8.149 8.265 6.394 5.637 7.035 8.204 8.193 8.095 8.568 7.782 6.682 + 8.693 9.079 8.448 6.367 6.263 7.641 6.272 6.822 6.733 5.427 4.067 5.081 4.993 4.963 4.820 5.699 6.982 7.000 8.130 9.054 8.775 7.296 6.002 5.531 6.591 7.579 6.996 6.675 6.896 6.705 7.880 7.913 8.307 7.804 6.884 6.503 + 7.398 5.952 5.166 6.833 6.808 7.864 6.639 5.007 4.756 4.705 3.912 5.602 6.196 4.601 5.289 6.113 7.155 7.948 8.301 8.778 7.900 6.914 6.064 6.225 6.544 6.822 6.279 6.255 6.675 6.340 7.063 7.158 7.855 6.927 6.176 6.590 + 6.748 6.631 6.383 6.395 7.264 8.010 6.400 3.408 4.426 5.163 4.489 4.451 4.711 3.735 4.799 5.282 5.197 6.302 8.208 9.958 8.833 6.338 5.226 5.673 5.784 6.191 5.906 5.263 5.467 5.578 5.896 5.587 6.288 5.553 5.485 6.355 + 6.524 5.826 4.309 3.904 5.377 7.420 6.451 3.386 3.383 2.893 4.797 4.876 4.718 3.303 3.374 4.945 5.246 6.075 7.565 9.535 9.001 6.071 5.233 4.762 3.733 4.837 5.140 4.463 4.456 5.489 5.987 6.716 6.306 6.186 6.277 6.335 + 11.405 11.715 11.874 12.265 12.470 12.592 12.569 12.382 11.857 11.146 10.463 9.777 9.123 8.409 8.030 7.533 7.343 7.327 7.552 8.447 7.647 7.111 7.442 7.575 7.061 6.552 5.310 4.991 4.548 5.786 5.736 5.678 6.173 6.693 6.116 5.623 + 13.658 13.376 13.477 14.395 14.482 14.349 14.621 14.521 13.767 12.670 11.726 11.191 10.699 9.485 9.359 9.014 8.164 8.729 8.758 9.071 8.864 8.655 9.418 9.361 8.922 8.428 7.031 6.847 6.457 5.680 5.566 5.394 6.618 7.018 6.855 5.997 + 9.223 8.155 9.390 11.133 11.808 13.337 13.458 12.925 11.422 10.622 9.647 9.656 7.951 7.044 5.480 3.957 5.389 5.507 5.778 5.316 5.121 4.175 4.788 4.968 4.648 5.758 4.486 4.074 4.038 4.938 4.700 4.144 5.110 5.976 5.882 4.571 + 10.033 9.392 9.035 8.207 9.531 10.239 10.444 11.010 10.893 10.128 8.774 7.323 5.555 5.532 4.819 3.561 2.966 4.045 4.956 5.464 4.415 4.027 5.071 4.984 3.561 3.841 5.586 6.223 5.421 5.279 5.631 5.309 5.911 5.368 5.170 5.088 + 9.705 9.001 8.920 7.510 9.317 9.783 8.684 8.238 7.645 7.219 7.367 5.753 5.997 4.796 3.927 3.381 3.052 2.931 3.462 4.899 4.390 5.131 4.121 4.518 3.428 4.090 5.589 5.585 5.099 5.390 5.056 5.344 5.706 5.808 5.072 5.209 + 7.991 6.509 6.991 6.100 6.861 6.590 7.281 8.247 6.336 5.698 4.176 3.470 3.797 3.328 2.466 2.801 4.135 4.048 3.608 4.574 4.053 4.246 3.741 4.184 3.599 3.704 4.707 5.107 4.871 4.803 4.649 4.148 5.456 6.001 5.500 4.600 + 7.361 6.272 6.885 6.549 6.322 6.195 5.239 5.572 5.920 4.767 4.069 5.095 4.677 4.276 3.922 3.689 4.267 3.800 3.823 3.863 4.125 3.476 4.296 3.592 2.187 2.282 4.339 4.371 3.740 3.981 4.799 5.002 3.898 4.964 4.322 3.198 + 7.202 6.310 6.149 6.847 5.310 4.758 3.685 4.880 5.654 5.774 5.263 3.830 2.462 4.453 4.419 3.744 4.450 4.606 4.363 4.106 4.036 4.834 4.647 3.520 2.900 3.286 4.701 4.808 4.285 3.773 4.123 4.407 4.024 4.841 3.870 2.176 + 7.679 7.766 6.802 7.265 6.976 5.150 6.262 6.157 5.034 4.762 5.013 3.632 3.586 4.916 4.794 4.210 3.732 4.804 4.509 3.622 4.492 5.696 5.121 3.898 3.887 3.403 4.130 4.188 3.737 4.038 4.792 5.093 5.035 5.705 3.948 2.623 + 6.536 6.137 6.065 5.489 5.969 5.243 6.184 4.544 5.390 5.581 5.658 4.476 4.055 5.394 5.155 4.044 2.577 4.331 4.657 5.620 4.925 5.218 4.845 3.583 3.507 4.411 4.368 4.315 4.843 4.154 4.425 5.507 5.415 5.645 4.307 3.499 + 7.084 5.768 4.793 6.043 5.661 6.699 6.545 5.427 4.920 5.044 4.657 5.110 3.775 4.070 4.695 3.230 3.495 4.424 4.094 5.214 5.812 4.908 4.689 4.567 3.979 4.157 4.076 4.790 4.827 4.218 5.115 4.991 5.171 5.165 4.408 3.255 + 5.990 5.845 4.978 5.487 6.244 6.895 6.162 5.567 5.092 5.095 5.666 6.201 5.377 3.965 4.552 4.616 4.203 5.237 5.056 4.888 5.749 4.802 4.970 3.633 3.705 3.146 4.390 5.570 4.652 4.057 4.109 4.158 5.064 4.699 4.336 4.118 + 8.239 7.927 6.749 6.498 8.668 8.211 7.445 8.671 7.545 5.242 6.214 6.559 5.203 4.462 4.016 4.365 5.096 5.947 5.545 4.941 5.798 4.591 4.275 4.893 4.438 3.166 4.153 4.755 4.337 4.327 4.863 4.728 4.576 4.806 4.729 4.694 + 6.658 7.711 6.829 8.186 9.556 8.528 7.706 8.456 7.992 7.836 5.987 4.145 5.011 4.354 4.198 4.842 4.773 5.087 5.550 5.589 5.282 4.788 4.501 4.504 5.211 4.795 4.388 4.511 4.108 4.251 4.774 5.126 4.491 4.428 4.853 4.030 + 7.803 8.138 7.718 7.480 8.441 8.525 8.276 7.938 7.240 7.339 5.270 5.864 5.929 5.291 4.616 4.671 5.082 5.591 6.082 5.790 5.773 4.896 4.719 4.268 4.828 3.660 4.827 4.912 3.836 3.556 5.439 5.669 5.573 4.638 4.662 3.861 + 11.313 10.844 9.905 10.404 11.026 10.985 10.535 10.289 9.680 8.798 8.277 8.699 9.359 9.326 8.824 8.486 9.274 9.557 8.676 6.893 6.118 5.397 5.873 5.260 5.570 4.088 5.238 4.917 5.107 5.676 5.676 6.928 6.862 6.626 5.752 4.489 + 11.589 11.012 10.158 9.937 9.905 9.777 8.683 8.398 8.286 8.308 7.346 6.248 7.073 7.496 7.405 7.579 7.747 7.647 6.825 5.442 4.806 5.474 5.704 5.652 5.969 5.444 4.711 5.565 5.527 4.789 4.399 5.822 5.781 5.502 5.383 3.606 + 3.778 5.187 5.716 6.740 7.792 6.646 7.050 6.838 6.843 6.085 5.140 5.019 3.443 4.768 5.098 4.740 5.471 5.508 4.497 4.562 4.110 4.967 5.232 5.572 5.350 4.987 5.248 5.750 6.194 6.012 4.950 5.388 5.935 5.587 5.384 3.628 + 4.456 5.012 6.180 8.394 7.639 7.794 8.282 7.406 6.579 6.844 6.023 5.984 5.879 5.862 4.710 6.787 6.941 7.338 6.192 5.652 7.047 6.352 6.632 7.627 6.685 6.969 6.952 7.914 7.751 7.237 7.103 7.413 7.344 7.496 7.002 6.208 + 6.593 6.872 7.303 8.779 8.578 7.212 7.882 8.400 7.399 6.477 5.983 6.587 5.956 6.998 6.029 5.442 7.766 7.705 7.368 6.978 6.970 6.973 7.877 8.442 7.815 7.777 7.238 9.448 9.666 8.576 7.947 8.534 8.721 8.120 7.908 7.334 + 6.777 6.744 6.426 6.662 7.519 7.602 9.065 8.480 7.131 6.656 5.903 5.669 5.357 6.613 7.091 7.539 6.651 7.408 7.332 7.037 7.543 6.373 7.483 8.334 7.459 7.848 7.155 7.067 7.019 7.345 7.821 8.336 8.112 7.295 7.521 6.731 + 6.694 5.456 6.168 8.478 9.248 9.373 9.533 8.182 6.658 5.660 5.332 6.191 6.870 6.112 6.654 6.532 6.698 5.862 6.996 7.033 7.678 6.867 5.940 6.451 7.679 7.511 8.237 7.996 7.594 7.134 7.658 7.565 7.388 8.445 8.011 7.413 + 8.703 9.360 10.169 10.523 10.461 10.633 10.076 9.976 7.831 6.372 6.330 6.272 6.909 6.154 6.442 7.054 6.920 6.779 7.843 7.635 7.683 7.158 8.293 8.024 8.885 8.304 8.710 9.470 8.758 9.188 9.154 9.507 8.574 8.867 8.033 8.598 + 7.717 8.829 9.477 9.620 8.089 9.252 8.223 8.242 7.278 6.638 7.307 6.911 7.035 7.430 6.926 8.271 8.300 7.554 8.357 7.842 7.660 7.360 7.105 8.111 8.473 8.877 9.980 10.903 10.367 9.656 9.193 9.426 9.816 9.300 8.604 8.725 + 10.695 10.241 9.273 10.056 10.861 9.422 8.285 8.492 8.128 8.413 7.299 6.555 6.303 7.470 7.848 8.754 8.753 9.716 8.962 8.683 7.043 7.122 7.825 7.599 9.211 9.666 7.902 9.388 9.532 9.197 10.012 8.348 8.792 9.551 9.630 8.467 + 10.993 9.110 9.297 10.303 11.108 10.675 8.491 7.121 7.507 8.240 8.033 6.971 7.518 7.754 8.897 8.148 9.161 9.584 10.100 8.991 7.253 6.663 5.969 6.556 8.075 8.143 7.317 7.981 7.790 8.138 7.613 7.055 7.303 8.116 7.636 7.155 + 9.304 7.336 8.772 9.892 9.524 8.559 6.377 6.698 6.701 6.373 6.429 5.927 6.761 7.967 7.381 7.098 8.876 8.670 7.717 6.340 5.581 4.680 5.576 6.443 6.569 5.173 4.576 5.638 4.892 3.691 4.568 5.234 4.842 5.548 4.159 3.701 + 9.542 9.880 10.001 9.820 8.135 7.203 5.423 4.108 6.258 6.686 6.564 6.270 6.150 6.566 6.683 6.073 6.757 6.903 5.284 4.977 4.135 3.871 5.105 5.195 4.719 2.553 4.108 4.472 4.217 3.455 3.218 4.423 4.393 4.149 4.364 3.444 + 6.542 5.861 5.144 5.142 4.702 3.161 2.800 2.588 2.952 3.345 2.724 2.662 2.979 2.990 3.506 3.423 3.210 4.758 3.814 3.911 3.946 3.067 4.015 4.502 4.135 3.251 3.891 4.246 3.614 3.443 3.522 3.651 4.028 4.262 4.729 3.540 + 3.753 4.411 3.915 4.644 4.645 2.852 1.639 2.837 1.731 2.079 2.387 3.480 2.145 2.604 3.718 3.286 3.754 4.617 2.853 3.514 4.002 3.744 4.413 3.898 3.378 2.650 2.911 5.020 5.739 4.962 4.029 4.445 4.432 3.092 3.533 3.283 + 4.264 4.701 4.251 4.424 4.207 3.559 3.136 3.419 2.713 3.310 3.345 4.558 3.253 3.129 3.176 3.315 4.154 3.763 3.807 3.950 3.811 3.875 4.755 4.287 4.560 3.485 3.331 4.785 5.220 4.887 3.869 4.197 4.227 3.599 3.756 3.224 + 4.023 3.893 3.473 4.033 4.084 3.148 2.639 2.859 2.770 2.675 3.064 3.613 3.008 3.549 2.875 3.323 3.762 3.769 4.813 2.624 3.874 4.481 4.314 3.369 3.071 3.427 2.234 3.299 3.573 3.712 3.879 4.436 4.136 4.058 4.108 2.835 + 6.604 5.920 5.672 5.609 4.730 5.110 4.660 4.043 4.276 3.647 3.763 3.981 3.114 3.866 3.756 2.774 3.289 4.544 4.331 3.349 4.519 4.419 3.394 4.489 4.405 4.380 3.358 4.156 3.993 3.590 3.477 3.659 2.979 3.364 2.362 1.616 + 4.182 5.192 5.321 5.251 3.784 3.841 3.769 3.480 3.005 1.817 4.121 4.137 2.159 3.197 3.048 1.976 2.667 4.680 3.943 3.035 3.408 3.222 3.533 4.430 4.744 4.122 4.690 4.178 3.757 3.281 3.439 3.487 3.558 3.664 2.392 1.310 + 5.004 6.342 5.546 3.756 3.221 4.331 4.719 3.034 1.498 1.540 3.635 4.588 3.726 3.037 3.311 3.026 3.104 3.839 3.889 3.870 3.255 3.379 3.344 2.776 4.049 4.051 4.573 4.094 3.692 3.125 3.377 4.019 4.217 4.200 3.197 2.071 + 6.161 6.133 4.598 3.475 2.749 2.381 4.359 4.506 2.953 2.145 2.210 3.058 2.287 2.637 3.178 2.743 3.336 3.869 4.236 3.679 3.523 1.971 3.276 3.253 4.219 4.718 4.008 3.519 3.913 3.828 3.409 3.932 3.991 4.327 3.590 3.234 + 5.607 5.125 5.358 4.832 3.176 4.650 4.612 2.848 3.232 4.240 4.521 3.212 2.166 3.451 4.141 2.677 4.167 4.005 3.429 3.521 3.899 2.803 3.559 3.908 4.353 3.242 2.989 3.532 4.292 3.396 3.982 4.522 5.011 3.923 2.593 2.765 + 4.859 5.390 4.611 3.952 4.051 4.537 5.369 4.380 4.446 4.245 4.561 4.274 3.559 4.663 5.195 4.876 4.072 4.658 4.320 4.658 3.281 2.766 2.523 3.871 4.403 3.572 4.012 4.059 4.042 3.607 3.837 3.728 3.876 3.335 2.714 2.511 + 4.305 4.988 5.239 3.856 3.816 5.121 4.484 4.175 3.985 3.647 3.596 4.019 4.492 4.815 4.906 4.900 3.897 3.445 4.052 4.903 3.941 4.008 4.047 4.006 4.200 3.699 4.533 4.589 4.592 4.620 4.011 4.273 4.362 3.501 3.563 2.431 + 5.990 3.433 4.669 5.562 4.960 5.519 5.307 4.617 4.553 5.165 4.944 4.382 3.771 4.509 4.594 4.142 5.048 4.933 4.943 5.909 5.484 4.672 4.044 3.725 3.135 3.362 3.892 4.331 3.895 3.746 3.990 4.022 4.318 4.348 3.652 2.835 + 6.373 6.274 5.879 4.793 5.427 6.732 6.308 5.030 4.709 5.495 5.659 4.671 4.126 3.438 4.479 3.620 4.919 5.110 6.325 5.997 5.697 4.418 4.349 4.837 4.054 3.712 4.091 4.760 4.045 4.555 5.378 5.100 4.298 4.631 4.340 3.111 + 5.354 5.954 5.946 4.909 4.008 5.831 6.501 5.339 5.136 3.795 2.863 3.603 3.931 3.461 4.056 5.191 5.245 5.792 6.492 6.662 6.859 5.567 4.718 3.964 4.570 4.303 3.573 4.685 4.376 4.280 5.603 4.975 4.181 4.302 4.201 2.949 + 5.823 5.142 4.584 4.297 4.918 6.352 5.782 5.875 5.103 2.968 3.295 4.248 4.087 4.077 2.989 5.183 4.966 5.274 6.839 7.204 6.622 5.098 4.975 4.580 4.265 5.276 4.254 3.934 4.049 4.444 4.968 4.531 4.484 5.096 3.846 4.139 + 6.139 5.342 5.809 5.921 4.668 5.609 6.386 6.800 6.318 5.787 5.366 4.261 4.014 4.256 4.584 3.941 4.213 6.510 7.363 7.772 7.578 6.432 4.943 4.876 4.751 4.998 4.653 4.518 4.385 5.379 5.622 4.838 4.568 5.368 4.432 3.730 + 6.454 6.500 6.019 6.550 5.147 5.880 6.315 4.899 6.029 5.556 4.508 4.166 4.551 5.289 5.577 3.965 5.941 7.064 8.315 8.550 8.359 7.298 5.653 5.314 4.736 5.740 4.368 4.162 3.791 5.157 6.004 4.362 4.404 4.732 4.566 3.925 + 6.023 6.223 5.879 4.631 5.187 6.050 6.125 5.524 4.943 6.239 5.059 3.501 4.655 5.277 5.539 4.100 6.045 7.810 8.360 9.574 9.580 6.214 6.303 5.370 4.964 5.835 5.490 4.147 4.343 5.260 4.802 4.555 4.426 5.104 4.324 3.384 + 5.486 4.683 4.463 4.774 5.145 4.721 6.326 6.571 4.477 5.581 5.864 5.618 4.937 5.136 5.452 5.924 6.706 7.221 7.675 9.176 8.560 7.312 6.086 5.442 4.965 4.265 4.730 4.976 5.313 5.981 5.946 4.890 4.794 5.138 4.414 3.826 + 4.482 4.427 4.300 4.986 6.053 6.004 5.496 5.093 4.491 5.025 4.843 4.697 3.912 3.754 3.953 5.002 5.140 7.393 8.468 9.562 9.580 6.374 5.606 5.571 5.108 4.973 4.549 4.624 4.364 5.476 5.377 5.334 5.480 5.469 5.636 4.946 + 4.560 4.263 2.898 3.866 4.238 5.587 5.413 5.461 3.847 3.644 2.917 3.695 3.628 4.804 5.605 6.063 5.926 7.266 8.501 10.234 10.457 8.180 6.216 5.910 5.315 4.526 4.473 5.172 5.623 5.433 5.307 5.164 5.432 6.426 5.994 5.079 + 3.698 4.736 3.549 1.069 4.303 5.305 4.138 4.884 3.975 1.931 2.290 4.085 2.760 3.630 4.114 5.805 6.423 6.569 6.530 8.979 9.569 7.536 6.850 5.882 5.337 6.161 5.008 5.502 5.885 5.720 5.170 5.600 5.549 6.046 5.555 6.291 + 3.767 4.711 4.631 4.225 3.140 3.790 4.149 4.359 3.212 1.539 2.345 3.440 3.771 4.819 4.436 5.194 6.661 7.138 6.734 8.538 9.916 7.353 6.011 5.827 5.748 5.606 4.524 6.109 6.543 6.490 6.110 6.096 5.559 6.824 6.693 6.220 + 5.659 4.522 3.561 2.586 4.151 4.746 4.273 5.185 3.133 3.182 4.459 4.146 3.288 5.179 4.641 5.708 5.364 7.658 8.603 10.368 10.582 8.041 5.505 5.031 4.874 5.471 5.553 5.934 6.511 6.540 5.938 5.259 5.890 7.012 6.716 5.439 + 5.585 3.998 2.275 3.189 4.606 4.941 4.118 4.569 3.131 5.033 4.671 3.821 4.502 5.063 5.754 5.981 5.215 6.191 8.480 11.013 9.874 8.046 6.824 5.595 6.220 6.121 5.271 6.454 6.738 6.396 6.409 4.994 5.061 6.030 6.046 5.744 + 4.380 5.046 4.858 3.533 3.703 3.520 3.749 4.391 3.714 3.375 3.314 4.020 3.937 4.757 5.222 5.553 5.453 6.726 7.888 10.864 10.012 7.899 6.067 6.011 5.869 5.441 5.140 4.662 4.817 6.815 6.423 5.369 6.391 6.912 6.970 6.508 + 4.408 4.873 4.722 2.685 2.654 2.182 2.913 5.476 5.447 4.783 4.846 4.591 4.257 4.741 5.604 5.359 7.549 8.299 8.412 9.393 9.317 8.335 7.019 5.124 6.200 6.157 6.264 5.650 7.205 8.046 7.394 5.743 5.684 5.968 6.460 5.223 + 4.982 5.463 4.262 3.016 3.287 4.784 5.379 6.280 5.976 6.193 5.841 5.522 4.993 4.079 5.964 5.880 6.680 7.596 8.030 9.943 9.373 7.860 7.154 5.926 5.761 5.564 6.162 5.809 7.431 7.588 6.847 5.489 6.230 6.999 6.500 5.028 + 4.203 4.200 3.272 3.178 3.906 3.879 3.449 3.267 4.356 3.922 4.775 4.402 4.654 5.578 5.906 6.244 7.524 8.032 8.572 9.530 9.102 6.406 5.250 6.801 6.551 6.928 5.827 6.313 7.308 6.594 6.194 5.052 5.814 6.263 6.537 5.226 + 6.966 6.622 5.827 4.288 5.013 4.905 3.044 3.655 4.796 5.044 4.638 4.390 5.266 5.624 6.262 6.078 6.629 6.730 8.022 10.353 9.971 8.271 6.324 6.425 6.046 6.350 5.359 5.422 7.325 8.025 6.611 5.835 5.881 6.029 6.356 5.214 + 5.234 4.712 4.270 5.236 5.382 3.650 5.338 5.131 4.194 5.084 4.526 4.256 5.274 5.153 5.659 6.587 7.652 7.750 8.288 10.586 9.285 7.135 6.397 5.655 5.748 5.969 5.798 5.760 6.806 7.677 6.171 5.788 5.736 6.641 6.990 5.658 + 5.559 5.494 3.127 5.093 5.129 5.795 5.937 4.867 4.242 5.156 5.653 4.001 3.978 3.902 3.395 4.872 6.171 7.261 7.995 9.365 9.511 8.164 5.962 5.816 6.338 5.656 5.562 6.105 6.383 6.817 5.982 5.274 5.186 6.533 7.352 6.255 + 5.782 6.496 5.599 5.617 5.627 5.944 5.719 4.915 2.887 4.332 4.693 4.188 2.773 3.360 3.023 4.587 5.710 5.604 7.028 10.510 10.192 7.234 5.478 5.628 6.117 6.521 5.674 5.405 6.100 6.241 4.265 4.608 5.457 5.784 5.671 4.671 + 5.788 6.159 5.270 5.288 6.425 6.305 5.354 3.790 4.304 3.615 4.573 4.822 3.689 3.412 4.615 5.220 6.150 6.779 8.364 10.676 10.475 7.188 6.391 5.847 5.909 6.328 5.947 6.038 6.559 6.860 5.268 5.170 5.441 5.728 6.007 4.180 + 4.990 5.912 5.166 4.929 4.962 5.249 4.918 6.366 5.885 5.666 5.454 3.168 2.727 4.100 4.056 4.686 6.653 7.222 9.196 9.976 8.871 7.657 6.565 5.528 5.783 5.852 5.823 5.808 6.776 6.811 5.151 5.735 6.023 6.010 5.718 4.415 + 4.902 6.122 6.046 4.812 6.106 6.861 6.761 7.042 5.423 5.007 5.375 4.682 4.054 4.262 4.623 4.610 6.655 7.034 8.059 8.780 8.658 7.920 5.645 6.271 6.209 5.402 5.927 6.003 6.779 7.066 6.579 4.664 5.726 5.639 6.074 5.611 + 10.217 10.216 9.462 8.105 8.288 7.782 8.117 7.921 6.439 4.045 2.739 2.465 2.667 4.394 4.685 4.755 5.792 7.666 8.183 8.491 8.707 7.565 5.922 4.776 4.324 4.430 5.114 5.153 6.605 7.018 6.015 5.325 4.985 5.348 5.804 4.516 + 10.506 9.714 8.544 7.606 6.521 6.286 7.873 7.278 5.589 3.763 2.165 3.612 3.229 3.319 4.452 6.126 5.854 6.864 7.688 8.355 7.310 6.378 6.093 5.277 5.744 6.502 4.687 5.424 6.564 7.001 5.681 6.186 5.896 5.355 5.218 4.464 + 6.245 6.082 6.156 7.058 6.021 4.136 5.743 7.037 6.264 3.736 4.246 3.681 3.543 3.763 3.627 3.425 4.529 6.480 8.388 9.667 10.107 8.234 6.770 5.827 5.700 6.655 5.797 5.231 6.763 6.326 5.197 5.144 4.630 5.579 5.557 5.128 + 4.893 5.227 4.976 5.425 4.574 5.447 5.843 5.485 5.751 5.765 5.912 5.805 4.485 5.572 3.789 3.542 4.381 5.648 8.183 9.826 9.363 7.277 6.709 6.197 5.423 5.531 4.692 5.080 6.337 6.659 5.267 5.174 5.391 5.634 6.346 5.568 + 3.460 3.660 4.626 5.448 5.153 5.278 4.813 4.954 5.176 5.641 5.806 5.100 4.718 5.264 3.721 3.735 5.622 5.437 7.002 8.652 8.480 6.898 6.054 6.597 5.841 5.291 5.289 5.800 5.928 6.350 6.439 5.424 4.892 5.665 6.511 4.649 + 3.145 3.034 3.723 4.441 5.208 4.744 4.168 3.992 4.903 4.253 3.465 4.459 5.119 4.286 4.197 4.424 5.525 5.747 6.542 9.123 9.845 7.488 6.714 5.302 4.973 3.935 3.272 3.961 6.396 6.657 5.301 5.191 5.310 4.853 5.497 4.827 + 2.801 3.863 3.942 4.591 4.271 4.726 5.761 4.950 5.479 4.483 3.212 4.886 5.353 4.463 4.200 5.105 5.967 6.336 8.287 9.490 9.716 6.874 5.245 5.047 4.962 4.526 4.178 4.242 4.690 5.727 5.318 5.350 5.167 4.932 5.293 4.492 + 3.553 4.072 4.485 4.480 5.577 4.765 6.115 4.932 4.959 3.467 4.254 4.610 4.618 4.757 5.017 4.629 6.069 6.695 7.529 9.147 8.412 5.928 4.404 4.312 5.334 5.470 4.550 4.623 4.985 5.371 4.423 4.162 4.576 5.012 5.121 4.478 + 3.211 4.161 4.756 4.802 4.240 5.423 5.753 5.697 5.008 4.616 4.389 3.774 3.219 3.491 4.962 4.174 4.660 5.414 7.353 7.558 6.550 5.921 5.190 4.749 4.114 4.431 4.372 4.706 4.916 5.429 4.543 3.983 4.476 4.449 4.600 3.473 + 4.556 4.297 4.378 4.171 4.064 5.230 6.246 5.157 4.746 4.449 4.057 3.823 2.891 3.092 2.846 2.851 3.883 5.324 6.014 6.681 6.263 4.892 4.793 3.924 4.113 4.471 4.557 5.029 5.573 5.411 4.267 3.545 3.572 3.803 3.085 2.150 + 2.862 4.132 4.791 4.930 4.709 5.454 5.802 4.749 3.696 5.334 4.584 4.769 5.040 4.348 3.070 3.781 2.869 5.056 5.405 5.691 5.061 4.217 3.931 4.716 5.068 5.305 4.874 3.856 5.210 5.467 4.711 4.311 3.904 4.236 3.300 2.576 + 5.865 4.873 5.141 5.259 4.007 5.356 6.422 6.776 6.656 6.360 4.652 4.380 4.586 4.168 4.283 5.203 5.159 5.566 5.881 7.078 6.710 5.135 3.788 4.925 5.041 5.284 5.186 5.098 5.348 6.087 5.675 4.863 4.434 5.013 4.525 2.968 + 5.377 5.543 5.468 5.308 4.920 4.352 4.008 5.640 5.117 5.351 4.485 4.839 3.616 3.872 3.336 4.395 4.779 4.640 5.965 7.421 5.040 4.949 4.747 4.154 4.282 5.049 5.025 5.430 4.619 6.158 4.949 4.469 4.675 4.401 4.370 3.051 + 3.874 5.182 4.958 5.030 5.278 4.598 5.874 6.594 6.162 4.806 2.892 2.496 3.002 2.628 2.853 4.192 4.246 4.460 7.118 7.724 5.869 4.931 3.960 4.329 3.832 4.548 4.569 4.903 4.461 5.308 4.383 4.442 3.424 4.349 3.748 2.333 + 5.646 4.371 4.763 3.974 4.587 4.388 3.071 1.580 1.247 1.306 2.637 2.320 2.310 2.061 2.357 3.267 4.086 4.689 6.495 7.428 5.333 5.284 4.084 4.582 3.725 3.780 4.267 5.283 5.505 5.104 3.778 3.783 4.312 4.083 2.994 2.693 + 5.889 5.614 3.002 4.254 4.656 4.979 3.981 2.178 2.885 2.368 2.920 4.202 2.522 2.691 2.961 4.080 3.681 3.577 5.229 6.353 5.003 4.555 3.985 3.021 3.834 4.253 3.340 4.151 4.375 3.656 3.221 3.547 3.878 2.933 2.373 1.587 + 6.070 5.749 4.820 4.953 4.743 2.403 2.610 4.591 4.682 3.806 3.303 3.595 2.909 2.281 2.727 3.267 3.466 3.215 5.133 5.044 4.507 3.445 3.960 2.708 2.671 3.327 3.546 2.686 2.766 2.263 2.500 3.253 2.979 2.748 1.184 0.636 + 3.591 4.459 4.271 4.126 3.979 2.937 3.287 4.344 5.449 3.867 2.444 3.523 2.122 2.807 2.329 2.173 2.506 4.696 4.748 3.933 3.814 2.390 2.612 2.917 2.753 3.006 3.319 3.087 3.307 2.838 2.575 2.231 2.060 0.855 0.877 -0.005 + 4.140 5.686 5.875 5.331 4.666 4.531 5.783 6.524 6.036 4.021 2.623 2.260 1.812 2.495 1.354 1.912 3.341 5.439 5.153 5.220 4.126 3.161 3.379 4.345 3.789 2.380 2.467 2.892 3.251 2.269 1.471 3.003 3.185 1.622 1.585 1.171 + 4.574 3.239 2.326 3.195 4.785 5.011 5.204 4.138 3.210 2.609 2.709 2.497 2.768 1.561 1.169 2.027 4.310 4.895 4.620 5.000 3.942 3.837 3.682 3.325 3.210 2.732 2.169 3.128 3.753 2.395 3.427 3.744 3.624 2.768 2.672 1.983 + 5.448 5.658 5.431 6.130 6.357 4.997 4.781 4.962 4.154 3.506 3.185 4.131 3.780 1.879 3.107 3.386 4.089 4.294 3.647 3.441 3.183 3.186 4.395 4.776 3.996 3.566 4.201 4.462 4.585 4.819 5.219 5.190 4.879 4.897 4.713 3.722 + 3.740 3.306 2.296 4.500 4.969 5.308 6.293 5.224 4.799 4.708 3.465 4.531 4.046 1.371 3.961 3.690 3.214 3.972 4.658 4.847 4.806 4.340 3.970 3.753 5.014 5.222 5.963 5.831 6.579 5.267 6.351 7.146 6.424 5.660 6.681 6.602 + 5.132 4.452 4.679 4.865 4.828 6.117 6.492 5.103 4.614 4.275 2.636 2.970 3.761 3.940 3.894 3.513 3.768 3.274 3.512 3.795 4.579 3.976 5.268 4.414 5.104 5.251 6.322 6.013 6.262 6.964 6.981 6.666 5.906 5.479 5.905 5.182 + 7.425 6.051 5.791 5.917 5.301 5.673 6.622 5.633 5.382 5.241 4.416 3.662 6.119 6.185 5.435 4.883 5.379 5.198 5.736 6.400 7.065 6.424 5.432 5.221 5.839 6.377 7.463 6.942 6.431 7.271 7.608 8.634 7.109 7.756 7.496 5.860 + 9.123 7.983 8.113 7.677 7.538 7.389 7.135 7.620 7.642 7.616 7.512 6.944 6.474 7.517 7.137 7.123 7.731 6.617 6.381 7.553 6.761 6.819 6.547 5.851 6.744 7.225 6.845 7.268 7.209 7.800 8.045 9.056 8.138 8.568 7.921 7.103 + 6.710 6.995 6.548 7.734 7.272 6.545 8.028 7.799 5.793 5.016 5.736 6.417 5.988 5.941 5.830 5.656 6.231 5.794 5.738 6.501 6.025 5.311 5.241 5.406 6.964 7.213 6.270 6.044 6.146 5.897 7.240 8.776 7.949 7.414 7.600 6.315 + 5.519 6.603 5.859 6.146 7.306 6.446 5.440 6.484 5.754 3.285 2.580 3.417 3.339 3.653 3.529 2.750 2.801 4.397 4.757 4.950 4.367 5.829 5.334 4.890 5.879 5.998 6.140 7.494 6.758 7.281 7.206 7.509 7.395 6.741 6.688 5.515 + 5.350 5.940 5.426 5.534 6.106 5.134 5.049 3.614 4.083 4.015 3.761 2.302 3.236 2.574 3.677 2.698 1.352 3.578 4.556 4.604 4.514 4.463 4.613 4.542 4.623 5.146 4.977 6.027 5.956 6.619 6.896 6.948 6.718 6.933 6.812 5.863 + 5.366 3.754 4.055 5.827 6.762 6.234 6.638 6.068 5.174 4.999 4.582 4.591 3.899 3.766 3.238 3.545 3.745 5.245 5.124 4.206 4.436 5.580 4.968 4.640 5.479 5.670 5.927 6.025 6.187 5.699 6.542 7.210 7.225 7.489 6.765 5.514 + 4.227 4.994 4.568 5.457 5.802 5.970 7.150 6.478 6.313 5.065 4.687 4.978 4.338 3.846 3.794 4.665 4.306 4.807 4.515 4.690 4.861 4.955 5.175 5.560 4.926 5.222 5.857 6.592 5.944 5.712 6.003 6.040 7.234 7.241 6.591 5.432 + 6.306 7.218 7.565 6.583 6.142 7.097 6.249 5.799 5.152 5.715 5.535 6.016 4.050 5.309 4.762 3.421 3.823 3.965 3.452 4.088 4.875 4.003 4.619 4.182 3.536 4.974 5.809 6.935 6.355 6.605 6.972 7.621 8.938 9.048 8.137 5.755 + 6.421 6.725 6.276 5.023 7.241 7.013 3.757 4.795 5.762 6.133 5.059 5.709 6.487 5.606 5.759 4.850 5.915 4.622 5.259 5.725 5.780 5.456 6.860 6.517 6.556 6.436 6.444 6.937 6.081 6.587 7.150 7.888 8.278 8.722 8.040 7.004 + 7.540 6.537 5.999 7.044 7.687 7.917 7.778 6.248 8.273 8.262 6.921 7.246 7.027 7.337 7.651 7.119 7.554 6.814 7.166 6.764 6.384 6.143 7.174 7.638 7.872 7.734 7.155 7.178 7.600 7.220 6.807 7.027 7.141 7.435 8.570 8.175 + 5.730 4.106 4.323 4.587 8.235 9.213 7.407 8.814 9.752 9.468 8.438 8.252 7.178 7.258 7.411 6.523 7.763 7.186 5.583 5.203 4.869 5.441 4.446 5.249 6.638 6.526 5.792 5.629 5.611 6.341 5.390 5.851 5.783 5.593 5.338 4.714 + 5.177 5.389 6.087 6.868 8.805 9.677 6.829 10.307 11.240 8.976 8.592 8.956 6.689 6.863 6.721 8.518 8.239 9.877 8.646 6.252 5.357 5.139 3.764 4.502 6.563 7.118 5.388 5.000 5.495 6.584 6.055 5.209 5.380 5.881 5.127 4.077 + 5.834 2.747 5.669 7.604 9.527 10.875 8.905 11.059 12.109 10.006 8.126 8.270 7.081 7.283 5.723 9.306 9.739 10.712 9.784 7.436 6.832 6.405 6.340 6.967 8.784 9.373 7.520 6.192 6.155 6.404 6.630 5.735 6.018 5.442 5.543 4.354 + 5.294 4.629 4.552 5.481 10.311 11.882 10.113 10.353 12.143 10.715 7.158 6.871 6.161 8.563 8.672 9.369 10.802 9.296 8.826 8.257 8.753 8.827 7.984 8.405 10.367 9.251 8.264 7.464 7.190 8.155 8.151 5.996 6.441 6.495 6.648 5.924 + 4.544 5.291 6.565 5.965 10.738 12.093 9.837 8.410 10.618 9.486 7.068 7.618 6.409 8.144 8.199 9.229 9.853 9.429 9.026 8.565 7.603 8.027 7.934 8.723 9.602 9.506 8.283 6.962 5.560 7.145 8.100 7.208 6.054 7.144 5.947 5.003 + 6.006 6.733 6.106 6.962 10.540 11.666 9.644 8.173 9.276 7.085 6.806 6.753 5.525 6.112 5.718 7.999 8.545 10.268 9.963 7.637 7.044 7.205 5.993 8.434 8.654 9.304 6.889 6.185 4.808 6.147 7.722 7.219 7.277 8.115 6.935 4.934 + 6.116 6.565 6.660 5.798 9.254 10.262 8.293 8.249 9.359 7.125 6.456 6.880 5.020 5.137 4.328 5.943 6.824 8.986 7.788 7.332 6.847 6.873 6.933 7.471 7.901 7.573 5.580 5.352 4.611 5.220 6.184 6.315 6.380 6.860 6.085 4.241 + 6.226 7.012 6.515 4.719 7.960 8.180 5.783 5.645 8.140 7.275 5.613 6.436 4.241 4.479 4.858 5.042 5.656 7.199 6.441 6.190 5.865 6.189 4.472 5.735 6.528 5.940 4.412 4.271 4.266 5.219 5.702 5.695 5.393 5.524 5.368 4.677 + 6.635 6.374 3.984 3.257 5.272 5.657 4.489 4.995 7.573 6.321 3.695 3.844 3.274 4.183 3.878 5.005 5.540 6.768 6.873 4.109 4.942 5.203 4.010 5.201 6.163 5.098 4.286 2.955 3.276 5.012 4.817 3.892 4.291 5.293 4.799 3.243 + 5.899 6.538 4.397 4.849 6.650 6.381 3.628 5.733 7.942 6.651 4.692 4.525 3.218 4.036 4.511 4.266 5.294 5.693 5.681 4.338 3.755 4.762 5.311 5.063 5.987 4.796 3.384 3.896 3.551 3.840 4.277 4.007 3.993 4.712 3.665 3.255 + 4.716 6.006 5.564 4.566 6.362 6.977 4.941 6.738 7.798 6.274 4.957 4.325 4.009 4.174 4.015 4.258 5.131 5.079 5.238 3.748 4.225 4.924 5.135 5.939 5.292 5.628 4.491 4.506 4.343 3.938 4.981 3.838 4.220 4.415 3.999 3.768 + 4.874 5.388 5.495 5.232 4.450 6.920 6.034 5.704 5.606 4.457 4.346 4.966 4.782 4.730 4.104 3.763 4.376 6.203 5.791 3.816 4.084 5.387 4.831 5.147 6.097 6.520 5.549 4.370 3.450 3.659 5.105 4.523 4.358 5.369 4.407 3.957 + 0.453 3.992 4.860 4.865 6.576 6.713 5.958 5.803 6.913 5.378 4.292 5.685 4.168 3.456 3.666 3.514 4.294 6.308 5.781 4.828 4.863 5.300 5.011 6.824 6.757 7.932 7.546 6.493 4.483 3.978 4.429 5.030 4.489 4.698 4.802 3.415 + 4.651 5.227 4.539 3.558 5.199 4.066 3.893 4.575 6.571 5.481 4.111 4.039 4.112 4.383 3.954 4.075 5.039 5.124 4.748 4.706 3.879 3.888 5.397 6.864 6.533 7.321 7.548 6.539 4.987 5.633 5.500 4.433 4.169 5.634 5.589 4.215 + 3.738 4.272 4.823 3.536 4.992 6.919 7.667 7.098 5.845 4.606 4.009 4.311 4.137 4.646 4.558 3.828 3.434 4.031 4.534 5.016 5.277 5.340 6.418 6.947 7.194 7.673 6.820 5.565 4.853 5.829 5.118 4.732 5.268 6.185 6.260 5.390 + 4.859 5.925 6.292 5.036 6.215 9.144 10.061 7.751 6.198 6.451 4.911 3.987 4.782 4.616 4.422 3.783 3.954 5.040 5.024 5.892 4.845 5.446 7.892 8.542 8.405 8.289 9.053 8.082 6.694 5.621 5.379 5.771 5.539 6.817 6.261 4.848 + 3.582 5.296 6.514 5.716 8.010 10.714 10.514 7.175 7.168 8.006 5.754 5.183 5.923 5.159 4.687 3.941 3.804 4.833 5.856 6.096 6.239 6.199 7.316 9.604 9.414 9.242 9.415 8.922 7.254 6.406 6.869 7.275 7.033 8.012 7.163 5.506 + 2.589 3.734 4.252 1.647 9.764 11.644 9.824 6.399 7.431 7.827 4.561 5.547 5.476 5.230 6.076 4.048 5.452 5.158 6.423 6.775 7.312 8.423 9.464 9.996 9.495 10.026 10.943 10.530 8.221 7.757 7.464 8.079 7.723 8.318 7.599 5.641 + 4.292 5.374 4.505 4.176 10.638 12.559 10.956 5.311 6.900 6.946 5.374 5.183 4.716 6.323 6.715 4.128 5.095 5.897 6.133 6.962 7.352 9.539 10.456 10.876 10.783 9.683 11.661 11.128 8.594 7.542 7.683 8.211 7.332 9.254 7.545 5.826 + 5.610 6.944 5.652 4.325 11.440 13.009 11.037 4.534 5.573 5.085 4.614 5.165 3.696 5.690 6.337 4.734 5.576 5.862 6.061 7.574 7.412 9.315 11.323 11.266 10.723 10.746 11.732 11.189 8.931 7.165 8.107 7.976 7.208 10.096 8.082 5.518 + 4.724 6.511 5.686 4.586 11.825 13.183 10.842 4.438 6.283 5.872 4.791 4.389 2.893 6.229 6.395 5.938 6.798 7.384 7.096 7.268 7.133 8.995 11.318 10.799 10.096 11.768 11.322 10.948 8.921 7.019 8.077 8.896 8.343 10.266 8.791 5.699 + 4.784 6.086 4.895 6.342 12.049 13.144 10.560 4.527 6.485 6.140 4.351 4.593 3.933 5.579 5.720 5.124 5.781 6.170 6.193 6.611 6.991 8.509 9.780 9.593 9.722 10.990 11.136 10.726 8.830 8.240 7.416 8.532 8.839 10.104 7.752 5.070 + 5.753 6.060 5.215 5.665 11.512 12.709 10.367 5.715 6.734 6.723 5.091 5.163 3.654 5.276 5.282 4.168 4.442 4.391 5.035 5.357 5.827 8.705 10.339 9.195 9.006 9.462 10.509 10.296 7.982 7.049 5.837 7.223 7.776 8.225 8.118 5.029 + 9.727 9.617 9.575 9.143 11.062 12.171 9.725 5.625 6.715 6.482 4.582 5.036 4.121 4.824 4.645 3.520 3.738 4.619 5.096 4.249 5.555 7.901 8.672 8.068 8.586 7.863 9.115 8.554 6.945 4.910 5.750 6.175 7.511 6.946 7.102 5.047 + 12.202 10.694 10.920 11.396 10.250 10.770 9.530 7.724 6.797 6.028 4.517 4.626 3.955 3.781 4.198 3.791 3.515 5.406 4.751 4.340 5.653 6.868 5.394 6.369 6.714 6.475 7.321 6.568 4.979 4.829 5.012 5.502 6.887 6.577 6.363 3.808 + 10.504 9.996 8.930 8.672 8.871 9.397 7.130 4.392 4.522 3.835 4.077 3.554 2.344 3.617 3.792 3.251 2.403 3.574 3.674 3.971 5.023 6.770 6.825 6.752 5.935 6.849 6.471 6.110 5.101 5.236 5.647 5.733 6.755 6.654 5.549 4.226 + 6.414 7.175 8.409 8.077 7.994 8.534 6.400 3.765 4.232 3.779 4.875 4.969 4.478 4.294 3.426 3.608 2.230 2.946 3.544 5.215 5.639 5.647 6.957 6.505 5.743 6.011 7.003 6.614 4.553 5.046 5.295 5.602 6.046 6.563 5.609 4.022 + 8.016 8.164 7.977 7.032 7.007 7.332 5.677 4.150 4.523 5.487 5.739 4.851 5.193 5.351 3.938 3.446 3.747 4.483 3.868 4.115 4.065 5.319 7.424 5.960 5.478 5.006 7.310 6.880 4.654 3.611 4.640 4.899 5.292 5.795 4.497 4.299 + 6.859 7.495 8.405 7.976 8.379 7.548 7.286 7.207 6.820 6.164 5.692 5.616 5.798 6.076 4.994 4.779 5.887 5.070 4.399 4.872 5.373 5.205 6.800 5.790 6.108 6.761 7.158 6.445 5.992 6.023 6.608 5.712 6.209 6.056 5.924 5.952 + 12.483 13.060 13.590 13.646 13.235 12.258 11.452 11.541 11.235 10.255 9.431 9.803 9.576 8.812 8.162 7.700 7.534 7.246 6.799 6.035 6.469 6.620 6.797 6.722 6.964 6.546 6.482 5.778 6.221 6.617 7.017 6.885 6.980 6.597 6.486 5.683 + 11.805 11.320 11.869 12.265 11.301 9.542 8.375 9.216 9.102 8.004 6.486 8.507 8.239 6.396 6.085 5.991 5.942 4.955 4.606 5.454 5.747 5.892 6.595 5.749 5.709 5.334 7.201 6.285 5.933 6.031 5.707 5.836 6.241 6.584 6.191 5.255 + 6.452 7.914 8.427 8.455 8.380 7.967 8.626 8.959 8.892 7.864 8.847 8.319 6.794 5.933 6.421 5.333 4.375 4.936 4.691 4.880 4.868 4.962 4.618 5.872 6.114 5.189 7.688 7.168 5.666 6.236 6.408 6.249 7.126 7.538 6.685 6.040 + 7.440 5.924 7.278 6.342 6.536 5.888 6.059 6.792 6.669 5.844 7.285 7.149 6.944 5.396 5.150 6.411 6.537 6.048 6.496 5.786 6.025 6.170 5.977 6.688 6.558 5.266 8.073 7.405 6.295 6.754 6.594 7.301 7.584 7.522 7.101 6.478 + 8.266 8.751 7.452 7.664 8.307 9.445 8.248 7.231 7.042 5.370 5.092 6.691 6.130 4.946 6.203 5.233 6.400 7.228 7.564 6.946 6.722 6.965 6.352 5.652 6.204 6.034 8.947 8.315 5.073 5.179 5.146 6.402 6.506 6.569 5.455 4.340 + 8.108 8.809 8.920 8.670 10.828 11.858 10.130 7.316 6.793 6.618 7.310 6.766 6.488 5.820 5.108 6.095 6.310 8.005 7.588 7.797 6.629 6.744 6.225 6.320 7.124 7.595 9.481 8.594 5.660 4.980 5.363 6.895 6.232 6.572 5.023 4.534 + 9.633 9.570 9.246 9.069 10.754 12.423 10.688 8.365 8.605 6.980 6.662 7.955 7.404 6.644 6.810 8.162 7.437 10.280 9.725 7.672 6.540 6.646 6.592 5.790 6.189 8.139 7.883 6.925 6.064 6.509 6.098 6.942 6.831 7.034 4.740 4.352 + 8.931 8.954 8.650 9.533 11.700 12.248 9.687 7.571 8.043 7.422 7.997 8.977 7.310 7.003 7.672 7.104 7.666 10.825 9.658 6.339 6.001 6.059 6.628 6.380 6.027 6.663 7.476 7.915 7.066 5.797 6.260 7.150 7.645 7.665 5.607 5.233 + 9.269 10.366 10.633 9.892 11.391 11.700 9.375 8.485 7.733 8.146 7.233 8.749 7.483 7.474 7.893 8.345 7.341 10.048 8.688 7.061 6.031 5.639 5.344 5.753 5.696 5.927 7.355 6.730 6.692 4.944 4.632 6.535 6.918 5.973 5.585 4.835 + 7.840 8.302 7.940 9.231 9.120 9.149 8.020 8.471 7.519 6.259 6.531 7.130 6.897 5.443 6.025 6.394 6.337 8.297 8.212 7.664 5.924 6.054 5.453 5.475 5.264 5.386 6.714 5.706 4.754 5.012 3.376 4.212 4.811 5.046 4.067 3.136 + 7.215 8.251 7.731 7.961 7.613 7.803 8.103 6.639 6.721 6.125 4.672 5.946 5.440 5.103 5.153 6.115 5.706 6.420 6.274 6.316 5.187 4.958 5.440 6.026 4.955 5.481 6.468 4.762 4.605 5.047 4.697 4.535 5.343 5.277 4.274 2.712 + 5.886 8.582 9.339 8.224 7.319 8.049 7.177 5.987 6.936 5.912 6.225 6.443 5.002 5.437 6.603 6.411 5.176 5.272 5.721 5.436 4.252 3.774 4.917 5.185 5.417 4.432 4.669 4.401 3.939 3.988 4.137 4.429 3.926 4.087 3.578 3.171 + 8.739 9.623 8.639 7.831 7.117 8.180 6.593 5.363 5.796 6.664 7.692 6.847 6.286 6.864 6.487 6.401 5.490 6.463 5.761 5.558 4.869 4.379 5.615 4.540 5.354 5.178 4.506 4.179 3.989 3.977 3.293 3.566 3.761 3.666 3.671 2.591 + 7.772 10.695 10.703 9.545 9.772 9.167 7.095 6.513 6.383 7.428 7.352 5.469 5.580 4.410 3.465 4.883 5.088 4.773 5.614 5.510 5.905 4.096 3.784 5.249 5.212 4.105 4.892 4.422 4.484 3.063 2.837 3.592 3.730 4.212 3.904 3.068 + 10.503 11.258 11.184 10.472 9.000 8.318 8.585 6.788 6.648 7.132 7.358 5.186 5.828 5.297 4.037 3.499 4.345 4.781 4.516 4.476 4.483 4.492 4.585 5.540 5.038 3.887 4.450 4.037 3.999 3.234 2.004 2.833 3.474 3.857 3.650 2.397 + 8.267 7.209 7.261 7.316 7.588 8.905 8.733 7.015 6.464 5.673 6.145 5.386 4.888 4.929 5.897 5.118 5.637 5.655 5.119 6.351 7.246 5.352 5.243 5.530 5.444 5.438 6.405 5.637 4.494 3.932 3.782 3.165 4.005 4.028 3.137 2.469 + 8.986 7.888 7.778 7.427 9.363 11.545 11.466 8.318 7.121 6.938 7.368 6.726 6.636 7.732 7.065 5.992 6.477 6.551 6.857 7.325 8.955 8.157 6.518 6.633 6.790 8.009 9.217 8.452 5.919 5.499 5.445 5.906 6.114 4.750 4.569 3.307 + 6.853 7.625 7.861 4.964 6.881 11.915 12.931 10.230 7.754 9.521 8.841 6.385 8.238 7.175 5.400 5.222 6.429 7.937 7.012 9.208 9.509 9.200 8.152 8.118 8.429 9.481 11.332 11.185 7.132 6.630 7.062 7.660 8.676 6.693 6.180 2.951 + 6.085 6.774 8.066 7.702 7.577 12.214 13.589 11.347 6.582 9.074 8.205 4.777 8.117 8.312 5.799 6.334 5.455 9.366 8.476 10.311 9.978 11.074 9.396 9.402 8.526 10.351 11.136 11.082 8.245 6.432 6.910 7.932 8.863 8.192 7.074 4.260 + 6.495 7.240 6.661 7.407 7.987 12.310 13.983 12.017 6.170 8.398 8.360 4.812 7.545 8.108 5.544 5.617 5.025 9.597 9.101 11.184 11.360 11.985 10.382 9.595 8.686 9.429 11.007 10.230 8.830 7.550 7.244 8.683 8.918 8.492 7.862 4.554 + 5.395 6.630 7.153 7.611 9.016 11.852 13.887 12.514 6.307 7.945 8.398 5.133 7.428 7.620 6.121 6.514 6.711 7.709 8.332 10.932 12.177 10.262 9.218 9.571 8.796 10.541 12.068 11.571 9.480 8.480 7.117 8.480 9.000 9.373 7.955 5.438 + 6.480 6.920 6.578 7.270 7.780 10.846 13.080 12.346 8.671 7.728 9.189 7.586 7.248 7.585 5.799 6.073 7.346 6.561 8.645 9.871 11.181 9.994 8.393 9.295 9.068 9.650 11.760 11.618 8.572 8.333 7.747 8.552 8.878 9.131 8.160 5.847 + 6.213 6.217 7.967 7.948 6.181 10.050 11.751 11.643 9.638 7.803 9.316 7.412 6.471 7.651 7.942 6.330 6.564 6.752 8.155 9.492 10.614 10.190 8.342 8.750 7.783 8.690 10.294 9.774 7.716 7.379 7.444 7.902 8.746 9.213 8.638 6.349 + 5.977 7.704 8.304 7.005 5.681 9.692 11.934 11.738 8.494 5.916 7.854 6.476 5.764 6.302 5.685 4.546 5.598 6.314 8.233 9.461 8.650 8.821 7.790 8.532 6.748 7.773 8.586 8.759 7.629 6.908 6.625 7.414 8.494 9.030 8.322 6.109 + 8.062 8.072 7.984 8.734 8.513 9.564 11.039 11.140 9.491 8.056 7.730 8.016 8.110 8.176 7.882 7.113 7.012 6.856 7.231 8.322 8.245 8.248 6.353 7.138 6.697 6.922 7.725 8.574 7.478 5.577 6.254 6.726 8.103 7.132 6.802 5.645 + 7.304 7.701 8.081 9.413 9.145 9.930 11.153 10.468 7.742 6.520 7.418 7.113 7.124 6.904 6.113 6.132 5.778 6.227 7.067 7.913 7.916 6.780 5.259 5.737 5.656 5.936 7.675 6.703 6.281 5.121 5.542 6.097 7.258 6.677 6.188 5.186 + 8.557 8.530 9.082 9.428 8.828 8.390 8.498 7.017 6.449 6.563 7.170 7.518 6.804 6.052 5.277 5.664 5.183 4.879 6.230 6.658 6.900 6.302 5.325 6.416 5.930 5.244 6.556 6.748 5.090 5.187 6.237 5.934 7.520 7.202 6.312 5.184 + 8.298 7.878 8.764 9.450 8.746 8.747 10.003 8.214 6.917 6.071 5.930 5.784 4.567 4.222 4.884 3.581 3.978 4.760 5.299 5.653 6.500 6.188 6.259 6.453 5.999 5.874 6.268 6.614 5.830 5.554 5.574 5.782 5.851 5.767 6.075 4.818 + 6.516 7.976 7.145 6.776 8.180 8.542 9.105 8.747 6.385 5.250 4.803 5.508 4.467 5.446 4.283 2.829 3.206 5.651 6.385 6.410 6.669 6.709 4.971 4.292 4.737 6.207 7.324 6.477 5.643 5.440 5.742 6.013 6.707 6.144 6.379 5.444 + 9.419 9.437 8.931 7.782 7.291 8.396 8.424 7.569 6.308 6.429 6.218 5.635 5.373 5.363 4.786 3.290 4.066 4.752 5.214 7.017 6.350 6.488 5.176 4.911 5.515 6.182 6.865 7.005 6.176 5.864 6.866 6.897 7.320 6.526 6.631 6.752 + 10.534 11.349 11.408 9.883 9.523 8.822 9.249 7.545 7.452 7.744 7.096 8.598 8.355 8.204 8.243 7.596 8.051 7.890 8.047 8.843 8.470 7.792 7.552 7.891 6.854 7.417 7.900 7.463 5.423 5.207 6.483 6.594 7.141 6.874 7.139 6.705 + 11.777 11.817 11.421 10.896 10.523 8.848 9.342 8.195 7.839 9.201 9.684 9.906 9.705 9.938 9.012 8.140 8.581 8.758 8.945 9.593 9.380 8.048 7.888 7.914 7.432 7.855 8.741 8.010 6.051 5.633 5.778 7.054 7.575 7.540 7.857 7.299 + 9.595 9.240 9.689 9.523 9.270 8.483 9.942 9.692 8.443 7.123 7.089 7.387 7.971 7.118 5.082 5.023 4.282 4.827 5.519 5.287 5.467 5.358 6.384 6.939 6.970 5.909 5.271 5.772 6.173 6.094 6.653 7.619 7.447 7.784 7.930 6.797 + 9.929 10.023 10.179 9.624 9.175 8.022 8.431 7.606 7.376 7.659 7.493 8.189 7.340 5.999 5.414 5.255 4.114 4.363 4.427 4.839 5.467 6.107 6.105 6.241 6.221 5.843 6.320 6.783 6.672 5.438 6.847 7.381 7.932 8.663 8.808 7.284 + 7.533 8.157 8.272 8.584 6.718 6.880 7.934 8.168 6.174 5.203 5.799 5.634 5.459 5.933 4.624 4.433 4.893 4.624 6.413 6.688 5.361 5.816 5.638 6.423 6.508 6.646 7.649 5.926 5.727 6.153 7.056 7.577 8.100 7.686 7.996 6.967 + 7.513 7.671 7.456 7.862 7.209 6.037 6.960 6.943 5.889 6.161 6.344 5.521 5.001 6.318 5.379 5.070 4.585 5.308 5.443 6.068 4.438 5.781 5.867 5.100 4.995 5.017 6.238 6.179 6.218 6.899 7.522 7.843 7.844 7.469 8.602 8.465 + 7.006 6.883 7.687 8.341 8.546 7.890 6.547 5.723 5.851 6.287 4.325 5.620 5.355 5.520 4.900 6.214 5.653 6.136 5.851 7.011 5.057 5.409 6.534 5.976 5.801 5.987 6.564 5.707 5.762 6.225 7.157 7.538 7.784 7.541 8.698 9.707 + 6.220 6.253 7.281 7.263 6.826 6.836 5.726 5.911 6.782 6.127 5.862 4.770 4.907 3.488 4.343 4.331 4.279 5.935 6.298 6.971 7.362 7.060 6.593 6.074 6.334 6.337 6.285 5.973 6.142 6.289 6.841 7.392 7.828 7.429 7.459 8.030 + 10.463 10.856 11.480 9.862 10.632 10.023 10.254 9.578 10.388 9.423 9.953 9.041 8.944 6.610 7.129 7.346 8.204 9.737 9.214 10.249 11.565 11.827 11.461 9.366 9.756 9.854 10.705 10.830 8.970 7.918 7.122 7.500 7.168 9.238 10.421 9.503 + 12.385 13.382 12.595 11.582 11.592 11.276 10.527 9.633 11.205 11.473 11.228 11.408 10.987 8.620 9.021 9.566 9.842 10.926 10.584 11.171 11.790 11.304 11.223 10.213 9.647 9.779 10.235 10.529 9.551 6.980 6.769 6.926 7.605 8.896 9.858 9.699 + 13.285 14.140 12.515 12.171 12.776 12.504 10.514 9.719 10.623 12.489 12.597 11.946 11.286 9.160 9.170 10.055 10.026 10.848 10.392 10.830 11.836 11.892 11.018 9.130 7.567 6.866 6.905 6.146 6.293 5.897 5.508 6.113 7.226 8.337 8.768 6.066 + 13.802 14.476 12.983 12.764 13.210 12.497 11.198 9.585 11.179 13.261 12.958 12.222 11.729 9.041 9.151 10.072 10.332 10.929 10.895 11.966 12.922 12.608 11.061 9.065 7.400 5.690 6.323 6.614 7.173 7.465 6.398 7.832 8.398 8.844 7.718 6.283 + 14.182 14.720 13.203 13.792 13.284 13.714 13.695 13.194 13.536 13.608 13.383 13.044 12.419 11.586 10.548 11.167 12.031 11.628 11.526 12.954 13.735 12.685 11.079 9.692 9.239 9.039 8.410 8.299 9.036 8.970 8.870 9.156 8.918 8.361 8.696 8.000 + 15.069 15.527 14.281 14.535 15.941 16.193 16.579 15.534 15.404 16.266 15.406 14.787 13.626 13.686 13.057 13.160 13.553 13.120 12.781 14.530 14.329 12.766 10.877 9.730 9.634 9.317 8.773 8.590 9.276 9.221 9.235 9.622 9.055 8.874 9.524 8.672 + 14.878 15.532 13.901 14.024 16.570 17.769 18.859 17.658 16.191 16.981 17.584 17.678 16.605 15.031 13.332 13.185 12.930 13.084 14.173 15.188 12.819 11.065 9.493 9.082 8.510 7.294 6.475 7.191 8.170 7.563 7.115 8.673 8.155 6.579 6.418 5.695 + 15.707 16.215 15.530 16.059 16.849 18.116 19.745 18.598 16.834 17.680 18.169 18.639 18.130 15.788 13.519 13.830 13.787 14.634 15.726 15.652 13.277 11.411 9.855 8.463 7.343 6.901 6.629 7.315 8.610 9.555 9.588 10.722 9.846 7.075 6.174 5.656 + 16.094 16.343 15.788 16.106 16.560 18.568 19.794 18.347 17.863 18.300 18.177 18.682 18.496 16.170 14.026 14.384 14.447 15.785 15.932 14.272 12.249 10.641 8.759 7.879 7.262 6.249 6.099 6.288 8.143 9.849 9.317 9.887 8.880 6.172 5.812 5.184 + 16.168 16.368 16.019 16.120 16.437 18.615 19.447 18.351 18.242 18.200 17.357 18.526 18.318 17.083 15.132 15.031 15.373 16.665 15.771 13.804 11.587 9.776 8.460 8.149 7.712 6.819 6.846 7.122 8.765 10.717 10.767 10.491 8.175 6.889 6.634 6.384 + 16.274 16.387 16.193 16.210 16.656 18.768 19.354 18.514 18.339 18.025 16.917 17.974 18.898 18.226 15.805 15.761 16.055 17.254 15.684 14.257 12.436 11.012 9.618 8.743 8.565 7.817 7.858 7.783 8.502 10.334 10.615 11.405 9.935 7.533 7.408 7.062 + 16.160 16.350 16.302 16.217 16.769 18.913 19.346 18.605 18.341 17.875 16.859 16.424 19.092 18.899 16.934 16.636 16.706 17.982 16.525 14.751 12.804 11.221 9.986 8.848 8.557 6.547 6.635 6.700 7.515 9.094 9.432 10.979 9.670 6.280 5.938 4.854 + 16.076 16.223 16.264 16.139 16.672 18.920 19.203 18.183 17.892 17.537 16.526 15.112 18.143 17.959 18.068 16.627 16.311 17.742 16.737 14.715 12.836 11.156 9.877 8.789 8.510 7.767 7.498 7.327 7.861 8.957 9.029 10.975 10.553 7.458 7.132 6.223 + 15.902 16.085 16.111 16.096 16.874 18.774 18.701 17.436 17.173 16.880 15.630 14.803 16.576 17.112 18.099 18.045 16.781 17.836 17.286 15.424 13.175 11.762 10.161 8.958 8.640 8.117 8.325 8.064 8.475 9.769 9.661 10.020 9.671 8.423 7.218 6.873 + 15.756 15.831 15.632 15.903 16.654 17.792 17.411 15.155 15.280 15.053 13.497 13.161 14.505 14.546 17.753 17.628 17.361 17.766 17.838 15.702 12.855 11.357 9.294 8.773 7.838 7.937 9.172 9.017 8.598 10.790 9.512 8.264 8.560 7.549 5.999 5.307 + 14.900 14.802 13.735 15.384 16.354 15.719 14.822 13.581 13.296 12.833 11.569 12.446 12.193 13.415 15.206 16.688 17.048 17.104 17.659 16.467 12.780 11.147 8.971 7.824 7.301 7.999 8.933 8.859 8.967 11.255 9.269 8.413 8.179 7.979 8.417 6.533 + 13.302 12.726 13.044 13.651 14.198 12.186 12.550 12.597 11.906 11.736 10.658 10.374 10.755 11.115 12.076 13.547 16.231 16.235 16.319 15.466 12.030 9.912 8.349 8.001 6.938 7.600 8.532 8.637 8.786 10.713 8.316 7.828 7.959 8.592 7.815 5.439 + 12.065 11.772 12.233 11.839 11.908 10.603 9.727 9.644 8.970 8.564 9.169 9.061 8.822 8.483 9.054 10.242 12.790 14.525 14.892 15.130 13.306 9.495 7.350 7.643 7.077 7.963 8.387 7.830 8.010 9.325 7.522 6.782 7.320 8.556 6.579 4.937 + 12.017 11.829 12.329 11.817 11.796 11.602 11.143 10.245 8.878 8.801 8.282 8.390 7.786 8.175 7.510 9.757 11.020 11.946 15.001 16.119 13.953 10.012 7.880 8.004 7.166 7.287 7.566 6.883 8.660 9.432 7.757 7.326 7.777 8.366 6.242 4.912 + 12.824 12.161 12.942 12.947 13.845 12.709 11.678 11.246 10.107 9.556 9.479 10.385 11.284 10.999 10.422 11.397 11.301 13.059 15.485 16.816 16.323 14.830 12.073 11.300 9.559 9.311 9.602 9.890 11.981 12.717 11.469 11.077 11.221 10.393 9.222 8.280 + 14.256 14.204 14.232 15.170 16.382 16.182 14.715 13.754 13.191 12.758 10.116 12.037 12.386 12.110 11.424 12.627 13.670 15.060 17.169 18.245 18.041 17.494 13.644 11.956 10.281 10.237 10.708 11.492 13.917 14.902 13.298 13.489 13.781 12.549 9.546 8.673 + 14.690 14.761 14.154 13.622 15.624 16.409 16.861 16.292 14.928 14.489 12.403 12.950 12.641 12.339 12.757 12.895 14.365 15.686 17.861 18.304 17.855 17.239 15.248 11.806 10.815 11.101 12.080 11.908 13.817 14.670 12.831 12.775 13.485 12.666 8.824 7.770 + 14.913 15.001 14.278 14.129 14.702 16.486 17.256 15.576 15.242 14.857 13.244 12.439 12.847 12.377 12.942 13.133 14.543 16.452 18.181 17.931 17.234 16.066 13.376 10.650 9.590 10.702 11.541 10.151 11.783 12.934 11.307 10.787 11.812 11.173 7.753 6.031 + 13.603 13.149 11.835 11.740 12.723 14.362 14.768 14.587 13.092 12.611 12.001 11.857 9.529 9.541 10.771 11.132 12.363 14.471 15.535 14.781 13.914 12.673 10.215 9.509 11.135 11.788 9.821 8.090 8.566 9.929 9.771 8.372 8.435 9.419 7.488 5.080 + 13.312 13.076 12.211 11.909 12.364 13.262 13.444 11.838 11.651 11.005 11.022 11.693 10.048 9.024 9.999 11.121 13.323 15.067 13.460 11.198 9.657 8.562 9.808 10.274 11.225 12.593 11.414 8.067 6.040 6.742 7.466 7.676 8.871 8.538 7.408 5.934 + 13.394 12.919 12.351 11.837 12.042 13.597 13.385 11.625 11.889 10.756 11.660 12.135 9.882 9.344 10.590 12.755 13.730 15.207 12.925 9.865 8.704 8.943 9.895 10.104 10.775 12.153 11.556 8.127 6.364 6.239 7.169 7.318 8.971 9.523 7.773 5.792 + 13.480 12.863 12.481 11.597 11.553 13.609 12.978 12.460 12.237 11.163 12.182 12.410 10.367 10.939 11.501 13.089 13.317 13.935 11.486 9.965 9.981 9.684 10.060 10.215 10.730 11.998 12.262 7.734 6.219 6.143 6.111 6.374 8.638 9.279 7.405 6.027 + 13.535 12.827 12.555 11.346 11.557 13.783 13.323 12.711 12.499 10.884 12.477 12.389 11.423 11.933 11.858 12.219 12.559 12.092 10.166 10.447 10.144 10.128 10.709 10.767 11.042 12.439 12.358 8.439 6.829 6.860 5.925 7.278 9.143 8.663 6.368 5.656 + 13.623 13.015 12.869 12.028 11.870 13.871 13.651 12.938 13.280 13.033 12.439 12.564 13.055 13.368 12.873 12.721 12.557 12.522 11.893 11.374 10.589 10.508 10.915 11.026 11.164 12.705 12.512 9.111 8.025 7.163 8.150 8.998 11.193 10.124 8.795 8.041 + 14.030 13.651 12.919 12.301 12.017 14.526 14.409 13.364 14.136 13.466 13.143 13.448 14.194 14.049 13.490 13.111 13.211 13.672 13.709 12.475 11.716 10.618 10.675 10.790 10.787 11.924 11.434 8.749 8.272 6.268 8.670 9.486 9.511 9.036 8.084 7.174 + 14.113 13.686 13.454 12.418 12.699 14.310 14.099 14.044 14.437 13.722 13.586 14.364 13.374 12.589 12.754 12.339 12.651 12.445 12.744 13.096 13.345 11.860 10.585 11.030 11.425 12.310 11.275 8.646 8.847 8.080 8.010 8.018 7.789 8.040 7.574 8.331 + 13.225 12.955 12.951 11.555 11.555 13.003 13.556 14.007 13.789 12.518 12.814 13.754 12.711 10.968 11.048 11.612 12.218 12.014 12.189 12.573 12.547 12.374 13.035 12.928 13.249 13.804 12.107 9.274 9.491 9.446 9.832 9.734 8.558 9.013 8.284 8.171 + 12.992 12.722 12.755 11.329 11.402 12.759 13.975 14.434 14.430 12.256 12.228 13.631 12.161 10.589 10.791 11.709 12.135 12.671 12.297 12.853 13.066 12.465 12.826 12.443 12.583 13.106 10.906 8.581 10.061 9.455 8.658 9.404 8.255 8.470 8.583 8.370 + 12.905 12.423 12.656 10.821 11.794 12.934 14.043 14.991 15.904 14.599 12.998 13.897 12.077 11.336 10.984 11.864 12.155 12.475 11.996 12.417 12.453 12.277 12.687 11.980 11.530 11.852 9.654 7.764 8.085 7.395 5.647 6.016 5.837 5.671 6.559 7.010 + 12.822 12.071 12.577 10.975 12.316 13.341 14.434 15.721 16.396 15.748 14.523 14.935 13.077 12.013 11.605 12.164 12.269 12.491 12.230 12.745 12.693 12.415 12.572 11.816 10.862 10.480 9.258 6.572 4.761 4.365 4.322 5.542 4.975 4.986 4.839 5.810 + 12.572 11.868 12.181 10.297 11.926 13.023 14.497 16.121 16.250 16.405 15.889 15.068 13.321 11.907 11.540 11.963 12.262 12.482 12.160 12.692 12.714 12.345 12.751 11.843 10.823 10.261 9.653 6.239 4.822 3.741 4.601 5.735 5.717 5.480 4.454 5.706 + 12.312 12.195 12.083 10.351 11.268 12.528 13.968 15.521 15.033 14.627 15.990 15.846 13.241 11.883 11.591 12.186 12.431 12.571 12.454 12.862 13.040 12.754 13.179 12.117 11.402 10.904 9.965 6.843 5.091 5.124 4.786 5.693 5.644 5.465 4.937 6.213 + 12.312 12.345 12.189 10.798 11.395 12.548 13.921 15.624 15.151 14.629 15.839 16.631 14.156 11.882 11.323 12.135 12.525 12.795 12.615 13.086 13.344 13.021 13.271 12.380 11.732 11.426 9.994 8.067 5.433 5.486 4.957 5.308 4.965 4.942 4.402 4.435 + 12.271 12.112 12.002 10.796 11.490 12.425 13.487 15.318 14.556 13.994 15.539 16.274 13.332 12.349 11.418 12.025 12.263 12.743 12.656 13.143 13.608 13.326 13.221 11.735 10.535 9.961 8.932 7.218 6.020 5.660 5.283 5.194 5.831 5.434 4.589 5.275 + 12.288 11.702 11.675 10.214 11.370 12.597 13.918 15.747 15.527 15.189 15.788 15.716 15.082 15.027 13.614 11.537 11.605 11.553 11.732 12.370 13.585 13.908 14.052 13.197 11.319 9.453 8.139 8.031 10.072 11.103 10.625 9.566 9.101 9.181 9.704 8.755 + 11.854 11.780 11.144 11.263 10.928 12.442 13.773 16.171 16.240 15.652 15.556 14.581 15.718 15.245 14.534 12.910 12.603 11.645 11.990 12.101 13.001 13.324 13.977 13.068 11.271 9.364 9.136 9.278 10.518 11.626 11.023 10.462 10.147 10.092 10.014 8.847 + 9.227 9.328 10.850 11.220 11.275 13.714 15.185 15.331 14.459 14.802 14.302 13.855 14.666 15.065 13.867 12.735 12.444 12.287 11.678 10.803 10.431 10.499 11.355 10.916 10.108 8.409 8.536 8.749 9.225 10.779 11.595 10.360 9.668 9.749 9.289 7.651 + 9.863 9.566 9.891 8.471 9.366 10.527 11.165 10.760 9.897 8.745 9.213 8.821 9.969 10.335 10.447 9.998 9.517 10.266 9.554 9.296 9.527 8.921 8.716 8.850 8.183 5.950 5.059 4.948 5.830 6.793 8.108 6.863 7.029 7.790 7.915 5.695 + 8.231 9.481 8.720 8.768 8.018 8.591 8.803 9.472 9.425 8.149 8.340 8.495 7.987 9.109 9.389 9.728 9.748 10.968 10.924 10.331 9.888 10.048 9.665 9.125 8.536 7.821 6.575 6.711 7.231 7.330 6.915 8.155 8.775 9.888 10.374 9.167 + 7.170 6.560 8.046 8.473 8.114 9.667 10.119 10.502 10.347 8.838 8.766 9.915 10.470 10.971 10.985 10.497 11.055 12.598 12.804 12.188 10.778 11.254 11.756 10.591 9.447 8.730 8.585 8.143 8.297 9.307 9.554 10.918 11.068 11.082 11.260 11.532 + 6.674 5.632 5.878 7.383 7.099 7.374 8.299 7.908 8.420 7.746 6.991 7.505 6.860 7.485 8.127 8.510 9.281 9.827 9.243 9.325 8.108 8.755 9.313 9.463 9.705 9.306 9.730 8.755 10.386 10.566 11.214 11.204 11.344 12.471 13.121 13.599 + 4.810 6.971 7.561 7.462 6.988 6.707 7.581 7.707 6.511 6.627 6.292 6.374 6.745 6.699 7.867 8.360 9.226 10.108 9.668 10.298 10.447 9.461 9.681 9.644 10.190 10.005 10.879 10.724 11.689 13.177 13.794 13.070 14.110 15.149 15.409 15.022 + 7.765 7.575 7.869 7.409 6.237 5.862 8.470 9.039 7.982 7.487 6.549 6.943 7.631 8.434 8.883 8.711 8.936 9.784 10.320 10.222 10.655 9.250 9.543 9.651 10.282 10.887 9.894 10.273 10.368 12.773 13.897 13.398 14.976 15.870 15.836 15.824 + 6.886 6.285 6.308 5.743 6.176 5.157 6.220 7.407 7.700 7.489 7.877 9.038 8.051 7.650 7.160 7.466 9.237 9.605 9.684 10.808 10.170 8.747 10.417 10.257 9.856 11.201 10.706 10.213 10.130 11.426 13.474 13.471 13.462 15.098 15.668 14.810 + 3.330 3.828 4.485 5.986 5.570 5.433 6.366 7.920 7.730 7.379 8.085 7.292 5.419 6.573 5.725 6.678 6.973 8.534 8.606 9.033 8.775 8.335 8.295 6.874 6.530 7.008 8.195 8.098 8.287 9.129 10.843 12.079 12.702 13.755 13.493 12.854 + 6.077 6.714 6.104 5.959 6.169 5.397 5.394 7.651 7.345 6.487 5.923 5.745 3.824 5.524 5.107 5.336 5.412 6.324 6.155 5.615 6.451 7.361 7.819 6.935 6.926 6.345 5.672 5.684 5.956 6.837 6.718 8.000 7.852 9.422 9.160 8.676 + 7.489 5.973 6.377 5.294 5.900 6.109 6.171 8.290 7.428 6.288 5.364 5.828 4.962 5.868 5.838 6.537 6.276 6.032 6.707 6.768 6.357 5.940 6.840 6.650 6.234 4.822 4.982 4.916 5.335 4.932 4.819 4.941 5.620 6.407 7.162 6.231 + 6.606 6.540 6.243 6.394 5.755 6.779 7.234 7.556 4.834 5.435 5.834 6.144 5.166 6.266 6.779 7.295 7.614 7.512 8.138 7.950 7.102 6.641 7.028 6.453 6.653 5.919 5.456 4.665 4.784 5.222 5.999 6.276 7.572 7.687 7.619 6.884 + 5.527 7.433 7.403 8.332 8.725 8.464 8.118 8.791 8.782 8.947 9.403 9.690 9.512 9.301 9.930 9.802 8.917 9.709 11.569 11.183 10.990 11.037 10.291 9.998 9.500 8.556 9.179 8.930 8.606 9.355 10.207 10.596 13.055 13.037 11.382 9.997 + 6.810 8.072 8.003 8.702 10.756 11.464 10.666 10.189 10.021 10.163 10.931 11.019 9.909 10.034 11.102 10.796 9.047 10.930 12.216 11.170 11.305 11.833 10.571 10.566 9.972 11.111 11.186 10.549 10.969 12.623 13.934 13.007 14.832 14.580 13.477 13.376 + 10.217 7.990 7.169 8.246 9.255 11.317 10.888 11.148 10.934 10.296 10.995 9.414 9.472 8.103 9.509 9.697 10.220 10.840 11.877 10.838 10.645 10.256 8.211 9.612 10.260 12.550 12.074 10.403 11.145 14.172 14.101 12.186 11.207 11.936 13.493 13.280 + 13.215 12.990 13.133 12.856 13.901 14.205 14.033 14.220 12.705 12.753 11.993 11.922 11.945 11.603 11.856 12.489 13.196 13.754 13.268 12.656 12.161 11.436 11.024 10.699 11.905 12.383 11.046 8.853 10.494 12.528 11.382 9.148 8.423 8.822 9.246 8.499 + 13.275 13.574 12.539 12.642 14.333 14.688 15.204 13.510 12.639 12.081 12.519 11.674 11.545 11.787 12.271 12.734 13.864 13.935 13.520 13.012 12.480 11.847 11.869 11.825 12.189 11.713 10.671 9.071 8.144 6.638 6.939 6.879 6.324 6.221 6.474 5.508 + 13.157 12.333 11.416 12.186 12.882 13.392 13.362 12.473 11.412 11.300 11.004 10.688 10.349 10.832 11.898 12.703 12.595 12.012 11.917 11.829 11.604 11.078 11.952 11.850 10.211 9.973 10.173 9.052 6.469 6.085 6.473 6.246 6.247 6.126 6.685 6.127 + 12.756 12.389 11.642 11.150 11.735 11.237 10.026 9.754 8.178 8.703 8.691 8.869 7.174 7.795 10.346 10.022 9.308 9.295 9.639 9.809 9.635 10.010 11.557 11.398 7.851 8.458 9.637 9.354 5.832 5.821 5.621 6.111 7.987 7.304 6.642 6.186 + 12.892 12.279 11.690 11.207 11.320 11.253 10.978 10.289 8.135 7.915 8.335 7.890 6.252 7.959 10.526 10.156 9.537 9.783 9.859 10.024 10.078 10.180 11.512 11.327 7.939 8.539 9.652 9.205 6.119 6.169 4.706 6.930 8.437 7.762 6.538 5.242 + 12.621 12.027 11.668 11.491 11.458 11.633 11.095 10.064 8.223 8.104 8.775 7.801 6.652 8.165 10.761 10.481 9.912 10.280 10.043 10.263 10.359 10.481 11.624 11.275 7.626 7.621 9.335 9.526 6.119 5.810 4.684 6.714 7.161 6.415 5.735 6.583 + 12.710 11.829 11.673 11.481 11.757 11.746 10.631 9.705 8.680 8.773 9.303 8.106 7.305 8.585 10.388 11.057 10.021 9.773 9.853 10.335 10.694 10.949 11.700 10.689 7.283 6.892 8.235 8.905 6.364 5.907 5.167 5.862 6.256 6.463 6.273 6.035 + 12.970 12.374 12.279 11.671 12.520 13.655 13.450 12.399 11.327 11.271 10.982 10.400 9.810 10.895 11.983 13.210 14.221 14.863 13.893 12.817 12.175 12.153 12.323 11.670 8.993 7.899 7.569 8.169 8.311 7.918 8.023 7.956 8.118 7.219 8.459 8.149 + 13.267 12.613 12.742 11.891 13.639 14.196 15.186 14.580 12.874 11.795 12.175 11.164 10.582 10.905 11.435 12.295 13.688 15.117 16.547 16.045 14.869 13.285 12.763 12.667 12.610 11.046 9.507 8.867 9.586 9.450 8.490 9.014 8.241 6.417 7.320 6.595 + 13.280 12.394 12.760 12.183 13.393 14.475 15.926 15.474 14.032 11.918 12.280 11.455 10.632 10.888 11.100 11.585 12.318 13.067 15.696 16.798 16.347 14.056 12.868 12.890 13.607 12.044 10.273 8.924 10.197 10.239 9.120 10.808 10.213 7.646 8.441 8.525 + 13.259 12.579 12.835 12.567 13.397 15.002 16.037 15.658 14.054 12.502 12.100 11.559 10.827 10.675 10.997 11.204 11.722 12.276 13.658 15.789 17.269 15.387 13.363 13.045 13.885 13.110 10.910 9.070 11.114 11.092 9.251 12.598 11.991 8.491 9.370 9.853 + 13.248 12.910 12.962 12.830 13.932 15.578 16.008 15.354 13.868 12.592 12.448 11.603 11.111 10.964 11.168 11.225 11.619 11.951 12.715 14.438 16.176 15.993 13.757 12.861 13.272 13.612 11.669 8.811 10.906 10.926 8.573 12.152 12.218 9.083 9.349 9.901 + 13.392 12.945 12.681 13.317 14.214 15.278 15.093 13.511 12.237 11.941 11.519 10.039 10.238 9.808 10.009 9.437 9.527 10.280 11.574 12.923 14.594 15.135 13.097 12.225 13.272 13.901 12.351 10.337 11.805 11.628 9.804 13.044 13.068 9.936 10.204 9.999 + 12.519 10.293 11.786 12.154 12.770 14.885 14.027 11.658 11.491 9.344 9.670 8.001 8.361 7.659 7.552 7.661 7.588 7.812 9.224 10.457 12.163 13.452 12.420 10.221 11.593 12.598 11.677 10.068 11.587 11.252 8.846 12.265 12.111 9.098 9.783 9.418 + 10.622 10.556 10.888 11.634 12.335 13.143 11.990 10.154 9.712 8.583 8.144 8.481 8.636 8.176 8.455 8.628 8.679 9.152 9.461 10.366 10.109 11.209 11.943 10.838 11.600 11.845 11.126 9.123 9.982 9.593 9.242 9.427 8.848 8.367 9.342 9.217 + 7.126 6.706 7.043 7.936 7.721 8.521 7.804 7.764 7.518 7.237 6.326 6.748 6.795 6.669 6.843 7.173 7.347 7.570 7.952 8.411 8.860 8.567 9.248 8.835 8.788 9.381 8.505 5.985 6.022 7.226 7.208 6.809 6.481 7.015 7.640 7.764 + 5.625 4.410 4.575 5.763 7.801 7.726 6.200 6.313 6.064 6.184 4.817 2.094 2.931 3.044 3.670 5.412 5.818 4.741 5.674 6.466 6.803 6.157 5.494 5.006 4.786 5.571 4.939 4.629 5.622 5.667 5.660 6.564 6.403 7.073 6.890 5.467 + 5.880 5.378 5.672 6.213 5.080 7.554 8.306 7.006 6.226 5.507 5.756 4.796 4.736 5.243 5.772 5.702 6.612 6.728 7.370 7.909 7.853 7.802 7.706 7.974 8.077 7.868 7.221 6.106 5.634 6.712 7.720 8.042 8.213 8.202 8.240 7.918 + 7.739 7.479 7.464 9.000 8.715 9.516 9.682 9.206 8.896 7.879 7.770 8.797 9.127 9.032 9.837 10.025 10.730 11.851 11.476 11.401 12.965 12.463 12.488 13.262 12.879 13.249 13.162 10.428 10.616 11.120 10.801 11.622 11.437 11.361 11.329 11.271 + 8.720 8.709 7.789 10.790 11.308 11.555 11.660 10.638 9.056 8.095 9.429 9.504 9.063 9.718 10.419 11.452 10.664 11.626 11.915 11.785 12.246 10.813 12.378 12.481 12.496 13.413 13.498 11.144 10.851 11.111 10.984 12.685 11.933 11.829 11.219 11.422 + 11.915 12.341 11.725 13.488 14.351 14.815 13.356 11.678 11.202 10.043 8.881 8.324 8.152 7.285 7.876 8.266 8.625 9.172 9.975 10.753 12.492 13.558 12.701 11.426 11.122 12.142 11.668 9.279 10.011 9.653 11.603 12.062 10.179 9.221 8.436 8.470 + 13.244 13.415 13.782 14.043 15.532 17.042 16.290 14.795 13.295 12.839 11.892 11.330 10.865 10.473 10.601 10.617 10.695 10.981 11.742 12.735 14.055 13.459 11.395 10.356 10.645 11.761 10.484 9.025 10.360 12.425 14.290 14.219 13.297 10.629 7.989 7.314 + 12.908 13.119 13.427 13.421 14.998 16.980 16.259 16.189 14.455 13.450 12.520 12.072 12.052 11.769 11.735 11.937 12.241 13.094 14.495 15.936 15.742 14.108 12.124 10.605 10.586 10.909 8.942 6.986 8.295 10.042 12.311 12.240 11.046 9.236 8.136 6.912 + 12.243 12.560 12.638 12.786 14.226 16.038 17.004 15.418 13.964 13.502 12.294 11.157 11.583 10.960 11.108 11.288 11.734 12.709 14.142 16.096 14.888 12.424 11.323 10.906 10.837 9.604 8.373 8.508 7.585 7.998 9.910 11.110 9.892 8.834 8.518 6.416 + 10.586 11.337 11.564 11.708 14.193 15.948 15.848 13.823 12.600 12.143 11.210 10.347 10.496 9.972 10.106 10.297 10.875 12.340 14.208 13.512 9.868 9.089 9.812 10.149 9.578 8.351 7.186 7.920 7.225 6.977 9.520 11.423 10.204 9.092 8.469 6.351 + 10.703 10.742 10.381 10.752 10.747 10.479 10.206 8.991 8.648 7.407 7.546 7.362 7.024 6.805 6.948 6.256 7.222 8.810 7.819 7.342 6.845 7.420 8.169 7.532 6.315 6.124 6.345 5.841 5.552 6.141 6.263 6.629 7.043 6.683 6.620 6.218 + 9.849 9.376 7.615 9.564 9.360 8.984 8.798 8.200 7.441 7.365 6.179 6.162 6.753 6.171 5.285 5.563 6.347 6.437 6.480 8.208 8.139 8.397 8.559 7.916 6.938 6.524 6.277 7.216 8.026 7.828 8.579 8.878 8.282 6.349 7.479 6.668 + 8.703 7.230 6.860 8.245 10.237 10.273 9.915 10.382 10.580 9.847 10.624 9.752 9.581 10.407 9.517 9.909 8.282 9.608 12.444 13.389 13.829 13.431 12.903 11.793 10.374 9.345 9.199 9.623 9.515 10.694 10.258 10.806 9.755 9.234 9.086 8.184 + 10.402 10.640 10.233 11.355 11.322 11.730 11.312 12.370 11.201 11.011 10.986 11.130 10.673 10.539 9.971 9.510 11.639 11.715 13.849 14.107 14.648 14.405 13.706 11.714 10.654 10.328 11.161 9.951 10.062 10.751 11.482 12.346 11.447 10.497 9.854 9.223 + 13.731 13.197 11.590 10.242 10.809 10.599 10.593 10.801 10.444 10.513 12.132 12.947 11.593 11.809 11.368 12.207 13.860 14.352 14.389 13.564 13.051 12.582 11.737 9.788 9.124 9.394 8.845 9.332 9.601 10.682 10.649 10.230 9.834 10.292 9.045 7.023 + 11.356 12.125 11.473 9.011 8.253 8.449 9.899 10.324 9.715 10.919 12.440 13.364 14.266 13.547 13.295 12.837 13.715 14.646 13.784 12.759 12.345 13.222 12.407 11.202 11.873 12.132 10.855 11.400 13.218 12.964 11.707 11.312 11.846 12.938 12.926 10.561 + 11.561 10.719 9.274 9.782 9.087 8.715 10.461 10.239 9.144 8.982 12.447 13.984 13.626 12.732 13.363 12.603 12.313 12.476 11.813 11.247 11.305 13.097 13.462 11.215 10.001 10.546 9.630 9.062 12.033 12.310 12.069 11.424 10.812 11.003 11.516 11.241 + 14.747 14.348 14.124 13.644 12.683 11.531 11.154 10.927 10.026 10.447 13.758 14.174 13.042 11.833 12.834 12.215 10.704 12.065 11.632 11.738 10.869 11.823 12.403 10.865 10.139 9.767 10.083 9.023 9.188 9.678 10.833 11.970 9.852 7.958 9.503 9.739 + 14.699 14.124 12.935 12.542 10.890 10.076 10.215 10.256 11.202 10.738 11.194 12.102 13.058 12.925 13.077 13.180 12.571 13.852 12.211 11.380 10.975 13.395 14.359 13.007 11.327 9.009 10.366 10.613 12.565 14.404 13.479 12.124 10.254 9.929 9.711 9.503 + 10.413 10.756 9.529 8.381 9.362 10.204 9.528 10.974 11.071 11.814 11.885 12.540 13.739 13.635 13.340 13.507 12.275 13.270 12.423 10.863 11.751 14.850 15.140 13.945 12.306 10.015 10.411 12.776 15.093 15.170 14.121 13.332 10.056 9.507 10.032 9.993 + 10.693 11.229 10.732 10.886 9.323 9.405 8.915 9.726 11.011 11.611 12.098 11.653 12.042 13.248 13.278 12.480 11.543 11.974 11.067 9.996 11.360 12.994 14.100 12.843 10.489 10.634 9.320 11.179 13.531 13.654 13.521 12.297 10.640 10.032 9.175 8.380 + 11.739 11.972 13.270 13.048 10.931 10.909 10.218 9.684 11.899 13.068 13.997 13.569 13.409 13.088 13.301 12.235 11.022 11.056 10.179 9.690 10.136 11.475 12.291 9.388 8.739 8.864 8.431 8.802 9.176 10.254 12.814 11.568 9.918 9.062 7.282 7.370 + 13.869 13.543 13.674 13.408 12.367 12.673 13.530 13.743 13.930 13.676 14.472 13.552 12.637 13.521 12.698 12.308 10.712 10.889 9.854 8.346 9.628 10.866 11.407 9.067 8.445 8.143 8.176 7.034 6.999 8.368 9.883 9.656 7.633 7.664 6.228 5.799 + 13.510 12.741 12.429 13.430 13.661 14.503 15.517 16.303 16.735 16.233 16.673 16.639 16.703 16.392 14.903 12.951 11.788 11.356 10.906 10.073 9.361 9.893 9.182 7.909 7.151 7.241 6.302 6.244 7.636 9.118 8.114 7.255 7.867 6.743 5.576 4.836 + 13.112 12.581 12.471 13.396 14.148 14.621 15.793 17.050 17.265 17.226 16.570 15.586 17.214 17.276 15.962 14.171 13.352 12.849 13.019 13.299 13.977 13.225 10.259 7.905 5.062 5.279 4.622 5.453 7.504 9.803 9.001 7.192 7.025 6.520 5.042 2.405 + 12.817 12.195 11.999 13.266 13.971 14.144 15.571 17.280 17.590 16.805 15.255 15.599 17.023 17.687 16.856 14.392 13.791 13.021 12.938 13.444 14.423 13.139 9.873 8.105 6.902 5.052 5.127 5.357 7.711 9.940 9.445 7.676 6.898 6.059 4.971 3.197 + 12.572 11.717 12.124 13.085 13.651 14.153 15.784 17.429 17.884 16.639 14.975 15.740 16.494 17.922 17.191 14.714 14.086 13.510 13.257 14.073 14.560 11.377 9.324 8.009 7.171 5.910 5.758 6.009 7.795 10.683 10.194 8.202 7.627 6.499 5.226 4.902 + 12.414 12.062 12.576 13.162 13.840 14.481 16.165 17.419 17.707 16.411 15.114 15.862 16.232 17.475 17.649 15.982 15.025 14.476 14.907 15.414 13.782 11.420 9.760 8.486 7.337 6.229 6.177 6.307 7.839 10.909 11.269 8.775 6.618 5.883 5.324 5.936 + 12.560 12.216 12.521 13.268 13.903 14.501 16.414 17.176 17.523 16.107 15.160 15.837 16.020 17.177 17.846 16.574 15.698 15.564 16.367 15.509 12.841 10.232 8.948 8.180 7.368 6.270 5.332 4.777 6.627 9.494 10.952 9.153 6.562 5.094 4.705 5.998 + 12.199 11.627 11.717 13.014 13.536 14.003 16.248 16.744 17.156 15.159 14.124 15.520 15.307 16.702 17.317 16.959 15.195 14.965 15.565 14.789 11.279 9.478 8.374 7.325 6.585 5.977 5.325 5.589 5.727 8.371 10.636 9.034 6.086 5.807 5.114 4.321 + 11.770 10.619 11.564 12.532 13.059 13.480 16.154 17.014 16.658 14.721 13.623 14.814 14.541 16.017 16.960 16.662 15.210 15.916 15.723 13.738 11.048 9.410 8.244 6.922 6.709 6.306 5.689 6.909 6.898 8.647 10.950 9.720 7.277 7.248 6.824 6.189 + 11.475 11.235 12.021 12.647 13.395 14.349 16.530 17.253 16.634 14.973 13.630 14.645 14.659 15.761 16.985 17.031 15.770 16.724 16.447 13.634 11.001 9.212 7.556 6.895 7.053 7.062 6.730 6.404 7.297 9.477 11.847 10.309 6.641 6.112 6.085 6.318 + 11.726 11.281 11.792 12.748 13.534 14.540 16.623 16.783 16.428 15.102 13.588 14.765 14.715 15.724 17.014 17.606 16.564 16.811 16.263 13.876 11.304 9.346 8.148 7.651 7.416 7.342 6.954 6.986 8.162 9.849 11.576 8.945 6.811 6.538 6.277 6.354 + 11.729 10.734 11.224 12.515 13.285 14.171 16.341 16.475 16.013 14.836 12.997 14.322 14.015 15.015 16.025 17.358 16.463 16.437 16.220 13.742 11.483 9.515 8.443 7.603 7.682 6.737 6.404 6.561 7.133 9.167 11.329 8.672 6.456 6.421 5.441 5.631 + 11.286 10.282 11.231 12.054 12.955 13.984 16.276 16.630 15.406 14.301 12.587 13.625 13.414 14.280 15.831 17.360 16.619 16.826 16.608 13.879 11.810 9.458 8.135 7.076 7.593 7.076 5.933 6.048 6.688 8.910 10.487 7.233 5.984 5.478 5.047 5.579 + 11.255 10.757 11.642 12.260 13.356 14.658 16.434 16.272 14.890 14.096 12.980 13.256 13.396 14.161 15.560 17.233 17.781 17.616 17.430 14.941 12.544 10.361 9.071 8.433 8.188 8.107 7.691 7.302 7.075 8.724 10.248 7.834 6.871 6.393 6.313 6.508 + 11.258 10.887 11.570 12.553 13.532 14.899 16.476 15.779 14.956 14.358 12.717 13.124 12.790 13.797 14.870 16.274 17.648 17.591 17.549 15.346 12.725 10.371 9.197 8.642 8.378 7.960 7.957 7.670 7.697 10.068 11.043 8.842 7.102 6.695 6.730 6.649 + 11.153 10.285 11.049 12.400 13.015 14.314 16.034 15.503 14.149 13.943 12.049 12.369 12.048 13.248 13.589 14.925 17.086 16.721 17.436 15.838 13.401 10.242 8.984 7.965 7.109 6.706 7.706 8.401 9.244 9.612 10.374 8.366 6.617 6.981 6.476 5.641 + 10.953 9.806 11.267 11.976 13.011 14.859 15.809 15.410 13.076 13.271 11.796 11.759 11.802 12.505 13.168 14.722 16.881 16.992 17.314 16.326 13.579 10.874 8.881 7.643 7.641 7.182 7.205 8.011 9.759 9.693 9.806 8.367 7.174 7.411 6.305 5.392 + 11.261 10.636 11.878 12.480 13.920 15.448 15.927 15.249 13.230 13.275 12.345 12.096 12.152 12.729 13.455 14.771 16.370 17.432 17.717 16.640 14.303 11.334 9.032 8.044 8.033 7.454 7.303 7.604 10.501 11.173 9.930 7.713 6.904 6.748 6.164 6.003 + 11.502 10.970 11.731 12.972 13.983 15.313 15.101 14.619 12.967 13.158 12.029 11.884 12.129 12.506 13.192 14.320 15.557 17.358 17.756 17.095 14.483 11.587 9.683 8.670 7.604 8.326 8.596 9.014 12.122 12.621 10.696 8.164 7.073 7.112 5.840 5.220 + 11.512 10.771 10.997 12.767 13.744 14.913 14.478 13.097 12.257 12.555 10.740 11.387 11.156 11.627 11.934 13.284 14.442 16.689 17.783 17.069 15.115 12.617 9.773 8.656 8.386 9.205 9.510 8.870 11.799 11.753 9.533 8.145 7.280 6.835 6.690 5.898 + 11.132 9.974 11.304 12.272 14.211 15.036 14.167 12.563 11.891 12.225 10.231 11.083 10.575 11.277 11.575 12.737 13.802 16.314 17.743 16.642 15.799 12.864 10.314 8.246 8.408 7.998 9.126 9.555 11.715 11.278 9.091 7.365 7.179 7.623 6.973 6.155 + 11.174 10.549 11.953 13.402 13.714 13.684 13.428 11.861 11.328 11.438 10.383 10.581 10.307 10.864 11.087 12.011 12.873 15.047 17.031 16.274 15.724 12.996 9.653 8.645 8.600 8.563 8.529 10.031 11.640 10.779 10.033 8.042 8.598 8.201 6.506 5.568 + 8.344 9.336 10.088 8.658 9.088 9.954 8.643 8.089 8.307 7.187 7.447 7.501 8.009 8.406 8.625 9.069 9.769 11.531 14.404 14.811 13.465 11.655 8.615 7.201 6.008 5.436 6.187 6.548 7.622 6.652 7.558 7.718 7.142 6.669 4.965 3.703 + 8.098 9.001 8.357 8.307 7.858 8.139 6.865 6.965 6.989 7.723 8.238 7.864 7.472 8.565 8.953 8.300 9.463 10.793 12.620 12.476 11.333 12.373 11.828 10.605 9.804 9.038 8.418 9.335 9.895 9.191 8.372 9.137 9.596 9.314 8.591 7.058 + 9.075 9.528 8.564 7.919 7.134 8.205 8.366 6.063 6.426 6.394 6.956 8.274 7.264 7.419 7.253 7.247 8.502 9.439 10.900 11.433 10.263 10.455 9.543 7.641 7.098 6.285 6.485 6.604 7.440 7.429 7.791 8.025 7.857 8.679 9.399 8.256 + 8.324 9.637 8.934 6.698 7.905 8.520 8.358 6.745 7.254 6.571 5.975 6.692 6.132 7.690 7.627 7.350 6.408 8.779 10.154 10.210 9.491 6.915 7.433 5.591 5.783 4.950 4.971 6.522 6.921 8.308 9.238 8.880 6.747 8.282 9.136 7.949 + 8.001 8.856 8.951 9.224 8.509 8.294 9.842 9.773 8.132 8.753 9.716 8.906 9.512 9.749 9.225 9.923 10.505 10.499 11.267 11.647 11.463 11.130 11.506 10.906 10.351 10.409 10.254 10.331 10.139 9.720 10.156 10.607 9.845 9.453 9.648 8.980 + 7.293 8.865 9.688 10.827 10.334 11.072 11.830 11.607 12.359 12.357 12.727 12.964 12.753 12.482 10.625 11.681 11.672 12.302 12.962 12.904 13.791 12.912 13.150 12.312 12.152 12.805 12.871 12.229 10.952 11.260 12.603 12.885 11.593 12.022 13.339 12.378 + 8.655 9.260 9.469 11.348 11.297 10.594 11.662 11.678 11.920 11.850 10.680 11.105 10.017 10.278 9.291 9.469 10.320 11.029 12.300 13.176 13.274 12.196 11.444 12.022 11.966 11.989 12.576 11.939 10.834 10.906 11.965 11.372 8.870 11.263 13.032 13.109 + 10.077 10.444 11.053 11.306 9.273 7.594 9.905 9.590 9.873 11.038 11.041 12.608 11.909 10.572 10.445 11.340 10.634 12.345 13.144 15.684 15.628 13.294 11.155 11.734 12.030 12.301 11.585 11.904 11.042 10.557 10.986 10.850 8.649 9.547 12.491 13.049 + 10.211 9.096 9.513 9.898 9.001 8.818 10.590 9.802 10.500 11.859 10.795 11.885 11.819 11.192 10.389 11.534 11.379 12.875 14.058 15.703 16.470 14.710 12.235 12.557 12.758 12.230 10.140 9.806 10.021 9.359 9.094 9.012 8.229 8.051 9.721 10.402 + 10.321 11.332 9.395 8.607 9.226 10.253 10.198 10.647 10.758 11.180 11.462 10.906 12.437 11.963 10.945 11.423 12.841 12.890 13.369 14.792 15.172 14.291 12.463 12.775 12.896 12.323 11.181 9.976 9.545 10.513 10.217 8.721 8.695 8.102 8.716 8.745 + 11.556 11.445 9.860 8.823 8.737 9.002 11.079 11.922 11.513 12.274 11.801 10.897 11.494 11.884 11.982 12.113 11.480 12.433 13.589 16.288 16.048 13.859 12.054 10.729 10.980 11.549 11.018 10.517 9.960 10.584 10.696 8.619 9.629 9.296 8.771 9.056 + 9.248 8.957 8.134 9.950 9.429 8.647 9.942 11.612 10.987 10.198 10.059 11.379 11.843 11.140 10.802 10.991 11.301 12.638 13.093 15.477 14.371 11.670 10.660 10.010 10.846 12.467 12.595 11.951 9.970 10.066 10.055 10.282 10.644 9.900 9.841 9.199 + 9.664 9.637 10.217 9.093 9.307 9.093 8.723 7.783 8.697 10.317 10.620 9.987 8.641 9.742 9.489 9.668 11.419 12.524 13.201 14.518 13.090 11.870 9.971 10.426 10.775 11.154 10.887 10.711 10.285 10.047 9.476 9.303 10.193 9.958 9.641 8.903 + 12.238 12.237 12.156 10.851 10.134 8.877 6.817 6.905 9.258 10.144 10.849 9.953 8.312 8.393 8.867 10.759 11.482 11.542 12.138 13.270 13.335 10.130 9.002 9.238 8.940 9.372 9.929 9.050 9.191 10.015 9.436 9.137 9.355 8.878 8.898 8.206 + 9.134 8.180 9.080 8.288 8.574 8.211 8.445 8.876 8.839 8.246 9.694 10.904 9.785 9.568 9.447 12.126 11.301 10.187 12.464 13.897 13.190 11.279 10.075 9.821 10.073 9.261 9.060 9.444 9.688 10.046 9.488 10.552 9.893 9.370 8.095 7.993 + 9.884 9.034 8.367 8.853 8.947 7.781 6.183 8.489 9.505 9.267 9.709 10.073 9.514 10.190 10.159 12.167 11.627 11.287 13.510 14.600 12.259 11.000 9.955 8.780 10.397 9.750 9.657 10.262 9.778 10.137 9.060 10.319 9.665 9.065 9.487 9.119 + 9.864 9.516 9.203 8.000 7.993 8.637 7.910 9.229 8.346 7.556 8.306 8.998 9.331 9.130 8.549 9.312 10.561 10.983 13.411 13.649 11.423 10.324 9.234 8.604 8.306 8.894 8.645 7.477 7.723 8.966 9.298 10.127 10.101 9.573 9.804 9.142 + 10.209 9.231 7.548 7.186 7.789 9.559 9.131 8.411 8.434 7.939 9.373 8.713 8.669 9.371 8.796 8.560 8.561 9.716 11.965 11.851 11.194 10.280 8.393 7.593 8.015 7.948 8.169 7.787 7.516 8.583 8.938 9.667 9.533 8.972 8.657 8.454 + 10.653 9.915 8.761 8.173 8.314 7.461 6.245 6.972 7.709 8.720 10.366 9.595 8.919 8.547 8.291 8.701 9.228 10.895 13.003 13.175 11.415 9.360 7.995 7.995 7.780 8.221 7.824 6.001 6.973 7.830 8.266 8.166 8.427 9.803 8.027 8.008 + 9.056 9.924 9.994 10.300 9.295 9.703 9.646 9.193 9.280 9.048 9.998 9.041 8.674 8.150 7.903 8.733 10.107 12.647 13.023 12.151 11.545 9.175 8.983 8.344 8.181 8.701 8.851 7.417 4.878 8.001 8.493 8.127 8.943 9.929 8.811 8.669 + 9.244 10.659 11.232 10.521 9.850 10.680 11.568 11.534 10.398 9.332 9.289 9.134 8.136 7.332 7.744 7.213 9.701 10.982 12.098 10.098 9.953 9.034 7.844 6.477 7.845 9.620 9.801 7.762 5.705 7.572 7.548 7.995 9.875 9.647 7.964 7.276 + 4.442 7.498 8.758 7.891 6.493 5.930 9.265 9.900 6.999 5.587 6.061 5.612 5.132 4.915 5.729 5.658 6.205 6.944 7.832 7.438 6.211 4.573 3.843 4.374 5.079 6.130 6.617 4.689 3.416 4.490 3.951 4.129 6.681 5.665 4.204 4.143 + 8.359 8.493 8.067 7.255 7.729 8.631 8.350 6.511 6.808 7.717 8.347 7.261 6.106 6.361 5.941 5.787 6.076 6.993 5.696 6.936 6.703 4.864 5.403 4.349 4.463 3.810 4.398 4.058 3.673 4.407 4.153 4.602 4.592 3.744 3.870 2.739 + 7.530 7.731 6.075 4.781 6.977 8.268 8.169 7.037 6.873 7.113 7.530 7.658 6.272 6.687 5.690 5.773 7.077 7.180 6.225 5.971 4.758 3.960 4.682 4.300 4.388 4.254 4.397 4.498 4.689 5.094 4.541 4.795 5.881 4.865 4.956 3.979 + 5.888 5.502 5.786 5.922 4.209 3.894 5.530 5.434 5.575 5.292 5.976 6.305 6.829 6.072 5.296 6.318 7.709 6.723 5.559 4.556 5.324 4.964 5.079 5.182 4.186 4.070 3.765 3.900 5.004 4.688 4.843 4.978 5.022 4.122 4.808 3.773 + 5.152 5.124 5.985 4.942 4.479 5.685 6.446 6.788 5.736 5.215 6.105 6.052 5.114 6.552 5.735 6.449 7.346 7.654 6.822 5.347 6.507 5.922 5.196 4.924 4.429 4.360 4.258 4.151 4.295 4.414 4.733 4.334 4.199 4.196 4.589 3.855 + 4.463 5.568 5.264 5.465 5.284 4.290 6.679 6.860 4.940 4.410 4.755 5.275 5.408 7.067 6.361 6.472 7.451 6.949 7.173 6.173 5.818 5.311 4.573 4.677 4.317 4.127 4.363 4.235 5.505 4.607 4.798 4.405 4.586 4.580 4.063 3.580 + 6.079 6.690 8.043 7.871 8.270 9.313 10.062 10.417 10.342 10.008 9.957 9.862 9.669 10.039 10.368 10.650 11.042 11.624 11.933 11.384 10.509 9.981 9.836 9.634 9.543 9.303 8.216 7.131 7.390 6.678 6.192 5.923 5.961 5.172 6.545 7.064 + 10.908 10.196 9.303 10.479 11.072 10.799 13.436 14.376 13.563 12.535 13.107 12.040 11.974 11.251 11.863 12.256 12.948 14.516 14.956 13.464 12.612 12.506 12.696 12.402 12.425 13.619 12.256 11.589 11.570 9.967 8.998 8.288 8.822 8.910 10.432 10.105 + 11.845 12.058 10.419 10.552 10.498 11.067 12.044 12.416 12.520 12.504 13.426 13.106 12.168 12.614 13.271 12.962 12.633 15.265 15.483 14.994 12.994 12.539 12.130 11.832 12.245 13.537 13.484 11.463 11.441 11.182 10.563 10.474 12.263 12.179 12.466 13.016 + 12.490 13.289 13.439 13.659 12.771 12.319 12.144 12.336 12.160 11.784 13.009 14.026 12.836 13.171 12.561 12.793 12.323 13.137 15.236 14.916 14.496 14.284 12.710 13.962 13.199 12.605 14.157 12.361 11.858 13.574 14.275 12.841 13.779 13.943 14.101 14.063 + 14.946 14.348 15.454 15.152 14.256 13.098 13.422 14.379 14.413 13.568 13.255 14.583 13.721 12.413 13.115 12.858 14.082 14.494 14.660 15.014 16.008 16.120 14.256 13.358 12.858 13.166 13.136 12.249 12.293 12.658 13.677 13.783 14.559 14.832 14.119 14.282 + 15.759 14.367 13.198 12.898 12.941 12.017 10.725 12.647 12.138 10.905 11.013 11.936 13.186 12.963 13.376 13.336 13.225 13.003 14.200 14.257 14.574 13.336 13.065 13.459 13.756 12.522 12.840 11.433 10.781 11.775 12.764 13.849 13.888 14.420 13.953 12.718 + 11.379 12.614 12.292 10.377 9.327 8.822 10.623 10.365 9.624 8.696 9.254 11.273 11.980 13.162 14.526 14.400 14.565 13.240 13.205 14.936 14.986 14.015 11.813 13.666 13.984 13.617 13.406 10.780 10.297 12.138 12.910 12.690 12.379 12.714 12.674 12.419 + 9.595 11.140 10.614 8.585 6.734 8.562 10.328 10.674 10.266 10.326 9.063 10.971 11.716 13.334 14.030 14.813 15.796 14.693 14.807 15.094 15.564 14.540 13.320 13.244 13.326 13.380 12.907 10.178 9.617 11.288 13.312 13.045 11.588 11.314 12.357 12.055 + 7.797 7.438 7.083 6.737 6.760 7.422 11.310 13.317 12.239 10.278 10.218 11.383 9.585 10.969 12.723 13.984 15.858 14.322 14.537 14.555 15.932 14.716 13.172 12.609 13.143 13.555 13.491 11.272 10.415 11.517 12.348 12.368 11.350 11.502 12.228 12.548 + 8.307 8.113 7.902 6.766 6.843 6.734 11.333 13.467 12.157 9.339 10.511 11.179 9.039 10.199 11.660 12.571 15.531 14.276 14.281 15.868 16.351 14.727 12.471 11.941 11.955 13.645 13.391 11.618 11.463 11.934 12.189 11.379 10.980 12.356 12.981 13.002 + 9.060 7.149 5.786 6.062 6.186 7.206 10.539 12.873 11.440 7.250 10.167 10.005 9.289 9.694 11.169 12.725 15.489 13.696 13.549 16.562 15.446 12.737 12.497 11.812 12.472 13.504 13.318 12.108 11.604 11.208 12.437 11.275 11.442 12.844 13.153 12.799 + 9.085 6.797 7.736 8.425 7.315 7.277 10.400 12.654 10.997 6.356 9.742 10.185 8.352 8.121 10.933 12.948 15.366 13.273 12.862 14.321 13.026 12.157 11.376 11.030 10.291 13.460 13.384 10.986 10.585 11.632 11.756 10.637 11.268 12.899 13.499 11.533 + 9.168 9.227 9.382 8.790 7.494 7.766 10.493 12.794 11.420 6.757 9.302 9.402 8.261 8.491 10.253 12.469 14.767 13.043 12.388 13.312 12.619 12.393 12.276 11.339 9.970 13.182 12.919 10.020 10.149 11.062 12.014 11.904 10.037 12.235 13.820 12.436 + 8.122 9.273 8.632 7.006 7.195 7.081 10.633 12.731 11.223 7.374 9.594 10.582 8.311 8.197 11.254 13.530 14.723 12.817 12.132 12.378 12.676 12.564 12.429 11.510 10.721 12.531 12.169 9.812 10.919 11.744 12.458 12.209 10.207 11.838 12.513 12.773 + 8.109 6.977 6.453 5.958 7.388 7.487 10.167 12.417 10.987 8.154 10.386 9.852 8.025 7.146 10.881 13.512 13.587 11.436 12.735 13.177 14.252 13.338 12.467 11.830 11.249 12.912 12.214 10.535 10.268 11.393 11.424 11.889 10.662 13.410 13.821 12.516 + 9.619 8.699 6.989 6.629 6.999 7.323 9.776 11.985 10.243 6.953 9.467 10.421 8.001 7.840 10.562 13.558 12.629 11.203 11.511 12.581 13.932 13.531 12.746 11.537 11.838 12.254 11.363 10.323 10.301 11.406 11.986 11.179 9.507 11.700 13.408 12.640 + 6.997 6.868 5.764 5.858 6.139 4.713 10.546 12.136 10.360 7.406 9.009 10.376 8.748 9.144 11.323 12.198 11.886 12.805 13.091 13.813 12.842 12.496 13.312 11.655 11.395 10.942 10.313 9.611 10.090 11.566 11.970 11.096 10.116 13.555 14.095 12.516 + 7.524 7.811 7.334 6.605 5.406 6.846 10.485 12.025 9.895 7.732 9.507 9.986 7.007 9.171 11.648 11.843 12.503 11.869 12.121 13.350 13.675 12.733 11.980 10.768 11.944 11.283 10.705 8.495 9.469 11.144 12.133 11.438 9.953 12.469 13.636 12.268 + 8.120 6.394 7.042 5.720 5.443 6.446 10.459 11.747 9.405 8.669 9.114 10.249 8.269 8.993 11.842 11.935 13.173 11.391 11.029 11.977 11.932 13.035 12.943 11.485 10.735 11.095 10.950 8.759 9.653 11.635 12.372 11.941 9.735 12.482 13.371 11.696 + 6.227 6.462 6.375 7.311 8.085 8.989 10.600 11.674 9.326 8.478 8.100 8.523 7.158 9.770 11.840 11.689 13.370 11.282 10.952 13.048 12.621 14.247 12.773 10.891 11.289 11.373 10.451 9.261 10.757 11.484 11.623 10.902 10.380 13.018 13.771 12.189 + 5.779 6.964 7.340 8.391 6.871 8.226 10.311 11.680 9.562 8.372 8.390 9.153 7.686 10.146 11.452 11.767 13.579 11.416 12.083 14.781 16.013 15.262 12.648 10.647 11.211 11.284 10.713 9.587 10.647 11.113 11.028 10.615 10.767 13.126 12.849 11.274 + 6.459 5.630 6.788 8.201 7.754 8.278 10.214 11.476 9.363 8.007 8.879 9.243 6.807 9.083 9.918 11.566 13.379 13.199 12.293 15.405 15.555 13.474 12.398 11.201 11.362 10.773 10.394 9.722 9.992 10.481 11.036 10.611 11.077 13.150 12.785 11.164 + 7.268 8.020 6.235 8.312 8.717 7.826 9.536 10.823 8.511 9.495 9.928 9.465 7.078 9.754 10.817 11.679 11.140 13.676 14.146 13.823 13.602 12.123 12.090 10.809 10.875 10.195 10.812 10.316 9.200 9.870 10.575 9.576 10.706 12.012 12.140 10.802 + 8.288 8.080 6.953 8.192 8.888 9.243 9.557 9.776 8.416 10.735 11.970 10.941 7.025 8.929 10.715 11.693 10.753 13.742 14.112 14.282 14.678 13.020 12.304 12.246 11.599 10.538 10.465 9.650 9.260 10.327 9.723 9.461 10.034 11.541 12.254 10.761 + 7.510 6.355 5.493 5.823 9.387 9.607 10.348 9.847 7.193 10.918 11.572 10.383 6.919 9.550 10.597 11.342 11.357 11.219 11.345 12.287 13.206 12.811 11.965 11.663 10.455 11.672 11.403 10.796 9.642 10.182 10.773 8.878 10.369 11.115 11.557 11.141 + 7.488 7.600 7.294 6.897 8.961 9.121 9.014 9.610 7.211 10.731 11.668 9.636 6.458 8.456 10.906 12.391 12.030 11.912 12.208 11.979 12.616 11.330 10.768 11.566 11.049 10.917 11.265 10.364 8.994 9.327 10.420 9.622 10.976 11.561 12.045 10.667 + 7.268 7.294 6.810 7.941 10.300 10.780 9.753 8.304 7.595 10.268 12.015 10.399 7.205 8.932 9.690 11.782 10.765 10.347 11.414 12.082 12.550 12.318 11.730 9.335 10.835 11.502 10.462 9.765 9.623 10.383 10.776 9.103 10.413 11.269 11.384 9.658 + 6.702 8.063 7.749 7.527 11.110 11.648 9.817 8.885 7.297 9.850 11.457 9.317 6.559 8.875 10.436 11.600 9.544 10.673 12.214 13.072 13.640 12.203 11.316 10.027 11.845 10.716 10.183 9.865 9.004 9.180 10.668 9.231 9.794 10.790 11.582 10.855 + 7.637 7.793 7.316 8.089 11.461 12.174 9.766 8.598 8.350 9.918 10.906 8.661 6.744 9.309 10.579 10.915 9.370 11.673 12.824 13.004 12.632 11.982 10.210 10.032 10.829 10.669 9.848 9.678 9.064 9.446 10.258 9.134 9.370 10.340 10.667 9.444 + 7.314 7.578 6.917 7.912 11.850 12.037 8.950 8.150 8.849 9.772 10.847 8.933 7.540 9.128 11.047 11.370 9.294 12.420 12.555 12.399 12.359 10.595 10.531 11.232 10.164 10.004 10.271 10.307 8.333 9.060 9.290 8.332 9.667 9.866 9.414 9.958 + 7.976 9.060 7.942 6.197 11.592 11.905 8.784 7.941 9.078 9.400 10.192 8.897 7.189 9.634 11.355 11.046 9.101 10.591 11.944 12.194 11.940 11.945 11.210 11.515 9.880 10.141 10.073 9.729 7.714 8.464 8.603 8.906 9.713 10.589 10.375 9.846 + 7.686 9.128 8.277 7.359 11.444 11.692 8.579 8.712 9.592 9.939 9.863 9.493 7.160 8.844 11.033 10.215 9.333 10.251 11.633 13.132 11.769 10.429 10.573 11.382 9.502 10.251 10.378 8.750 7.614 8.479 8.476 9.044 9.316 10.289 9.572 10.713 + 7.674 7.892 8.361 7.553 10.919 11.184 9.048 8.394 9.834 9.956 9.623 9.046 7.789 9.928 11.420 9.225 8.387 11.000 11.689 12.553 12.360 10.365 10.262 10.687 9.514 9.358 9.174 8.801 7.593 8.728 9.016 8.460 8.586 9.877 9.692 11.928 + 6.359 8.135 7.845 7.332 11.202 11.082 8.547 9.533 10.321 9.599 9.269 8.568 8.217 9.981 11.314 9.488 9.394 10.784 11.835 12.458 11.271 10.145 11.052 11.426 9.678 8.965 9.677 9.013 7.503 7.646 8.284 8.351 9.179 8.847 9.689 11.909 + 8.142 8.073 7.480 6.986 10.671 11.033 9.364 9.678 10.756 10.118 9.267 7.878 7.103 10.086 10.825 8.625 10.086 10.980 11.633 12.301 10.681 11.040 11.081 10.154 9.147 9.382 8.554 8.468 7.726 8.050 8.346 8.514 9.084 9.291 9.053 10.622 + 7.046 5.933 6.336 5.964 9.978 10.236 7.897 9.348 10.522 9.089 9.095 8.957 7.329 9.438 9.628 8.513 8.141 11.097 11.462 12.121 11.216 9.831 9.452 9.423 8.619 9.651 9.610 8.257 7.998 8.305 8.588 8.470 8.728 9.715 8.349 9.224 + 7.908 7.870 7.173 7.138 9.627 10.326 8.146 8.972 10.680 9.193 8.372 8.780 7.616 8.306 8.009 7.906 8.827 10.422 11.502 12.076 11.269 10.339 9.248 8.566 8.790 8.618 9.057 9.237 7.528 7.948 8.305 7.673 9.034 9.373 9.427 10.991 + 9.493 9.929 10.007 9.747 9.156 10.425 9.818 9.838 10.327 9.284 9.363 9.328 9.235 8.967 9.775 8.146 8.599 10.397 10.387 10.745 10.999 9.756 8.639 8.704 8.661 9.726 8.832 8.950 7.289 7.862 8.403 8.632 8.921 9.941 9.350 10.286 + 12.115 12.265 11.863 11.157 11.228 10.710 11.078 10.788 9.736 9.876 10.786 10.520 9.942 9.118 9.792 8.326 9.420 10.621 11.469 11.888 11.806 8.770 9.217 8.197 8.058 9.542 9.559 7.585 6.793 8.644 8.002 8.458 8.982 9.566 8.587 9.852 + 7.482 7.647 7.168 5.628 8.683 9.569 7.026 8.932 11.331 9.712 9.334 10.481 8.271 9.075 9.931 8.494 8.930 10.143 11.017 11.598 11.502 9.580 8.511 8.109 8.229 9.004 8.929 8.707 6.917 8.061 7.994 7.683 7.995 8.421 8.840 10.205 + 3.783 5.296 5.124 4.657 8.023 9.332 7.381 8.813 11.116 9.667 7.670 8.433 7.213 8.429 8.913 8.002 8.435 10.120 10.410 10.559 9.925 9.357 8.580 8.840 8.272 8.846 9.457 8.968 6.462 8.511 8.424 7.716 7.901 8.424 8.173 9.591 + 5.231 6.105 5.035 4.640 7.894 8.614 6.489 8.671 10.965 9.380 8.278 8.589 5.792 8.169 9.135 7.814 6.730 9.614 10.280 10.726 10.435 7.944 7.723 7.823 7.687 8.224 7.608 7.281 6.231 6.847 6.853 7.145 7.728 8.556 8.510 8.587 + 5.587 5.605 4.237 2.697 7.139 7.715 5.518 8.097 10.932 9.536 7.908 7.727 6.262 8.032 9.225 8.597 7.937 9.581 10.327 10.589 9.157 8.202 8.330 8.176 8.090 7.574 7.885 7.645 5.493 8.174 7.917 8.190 8.115 8.610 8.015 9.753 + 5.704 5.678 3.827 4.526 7.150 6.396 6.329 11.129 12.339 10.176 9.157 8.365 7.221 8.134 8.897 7.852 7.729 8.335 10.040 9.555 9.013 7.398 7.297 9.234 8.284 7.906 9.324 8.206 5.884 9.171 8.282 8.209 7.496 7.418 7.842 9.536 + 6.135 5.996 4.040 5.134 7.709 7.339 7.901 12.294 12.821 9.895 9.629 8.631 6.899 7.409 9.054 7.221 7.530 8.774 10.331 9.381 9.481 7.594 7.724 8.378 7.368 7.796 9.062 8.852 6.084 7.140 7.806 7.974 7.733 7.036 8.563 9.455 + 4.828 5.691 4.098 5.011 7.355 6.791 8.208 12.200 11.749 8.152 8.494 7.012 5.464 6.718 9.452 7.951 6.716 8.447 10.708 10.565 9.795 8.028 7.171 9.063 7.169 7.289 8.171 7.706 6.741 7.205 6.929 7.295 7.485 6.869 8.107 9.451 + 5.246 5.874 5.515 6.165 5.305 6.396 8.823 12.377 11.995 8.592 9.516 8.239 6.133 7.336 9.861 7.870 6.254 9.358 11.449 10.409 9.489 7.914 6.571 8.108 7.327 6.814 7.409 7.183 5.673 7.967 7.140 6.875 7.078 7.690 7.763 8.533 + 9.045 9.124 8.746 7.565 7.297 6.938 8.570 12.362 12.039 8.640 9.028 7.561 7.475 7.475 9.813 8.116 7.335 9.444 11.495 10.139 9.914 7.120 7.350 7.120 6.613 7.561 8.446 7.809 5.792 7.535 7.385 7.037 6.913 7.136 6.666 8.336 + 9.864 8.801 8.168 6.794 7.393 7.886 9.165 11.732 11.248 7.864 7.963 7.045 7.581 6.494 9.299 7.785 7.420 9.820 11.152 9.574 9.640 7.373 7.636 7.147 6.771 7.738 8.493 8.289 5.691 7.452 6.939 7.317 6.401 6.823 6.927 7.694 + 5.521 6.409 5.189 4.508 6.609 7.133 6.777 9.411 9.503 9.871 10.204 9.100 7.553 8.226 9.999 8.162 8.119 9.990 10.941 8.840 8.908 7.978 7.123 7.375 6.311 7.410 8.171 8.185 5.977 7.926 7.441 7.352 6.232 6.739 6.795 8.100 + 6.409 5.368 4.639 5.598 5.156 6.025 6.781 8.372 10.074 10.984 9.646 8.415 7.369 7.580 9.172 7.745 8.050 9.388 10.428 9.006 8.805 7.172 5.972 8.272 7.119 8.138 8.296 8.452 6.201 7.937 6.948 6.610 6.396 6.457 6.406 7.529 + 6.080 5.830 5.856 6.305 7.344 7.406 7.056 7.972 9.504 10.632 9.028 7.650 5.746 6.304 8.983 7.333 7.146 9.072 10.068 10.253 9.249 6.751 6.775 8.927 7.973 6.967 7.787 8.478 6.482 8.770 7.968 6.509 6.603 7.229 6.267 7.489 + 4.256 4.930 4.513 5.990 6.826 7.098 5.196 5.864 9.136 10.256 9.267 7.230 5.512 6.383 9.127 8.053 7.136 9.190 9.986 10.063 9.002 7.273 6.973 9.041 8.496 7.430 7.561 6.563 6.957 8.428 7.833 7.355 8.113 6.530 6.458 8.171 + 5.569 7.943 7.843 7.888 6.806 5.221 5.594 7.057 8.801 9.087 8.655 7.620 6.316 6.499 8.960 8.220 7.139 9.143 9.971 8.771 8.472 7.881 6.966 7.675 7.532 7.202 7.575 6.305 6.613 7.546 7.860 6.773 7.751 7.246 7.043 7.437 + 12.440 12.441 11.737 11.239 10.669 9.824 9.995 9.549 8.119 7.697 8.554 7.234 6.425 7.143 8.688 8.227 6.823 8.338 10.073 8.866 8.246 7.491 8.529 8.892 7.978 8.261 7.769 7.591 7.708 8.727 8.503 6.850 8.100 8.287 8.200 7.345 + 11.796 11.351 10.248 9.283 9.761 9.395 8.821 8.604 9.458 8.610 8.256 7.534 6.498 6.641 8.220 8.534 7.363 8.619 9.325 8.583 7.851 8.155 7.466 7.834 7.628 8.318 8.238 7.079 7.651 8.858 9.276 7.086 8.584 8.990 8.578 8.447 + 6.983 8.247 8.286 6.948 8.302 8.804 8.820 9.028 8.274 8.605 8.873 6.739 8.695 8.765 9.686 10.081 9.585 9.258 10.290 10.647 10.540 8.229 7.531 8.986 9.011 8.022 9.642 9.020 8.291 9.699 9.643 8.463 9.216 9.166 9.134 7.803 + 6.962 6.852 7.064 7.527 7.812 9.704 10.219 8.384 8.957 9.162 9.456 8.582 8.546 8.660 9.123 9.998 9.050 9.058 9.597 9.465 10.130 8.049 8.578 8.908 10.307 9.022 9.524 8.960 8.564 9.409 8.948 9.001 8.685 9.678 9.765 8.788 + 8.591 9.625 8.354 8.400 9.989 9.760 9.985 8.395 8.891 9.609 9.208 8.904 9.382 9.584 8.711 10.231 9.661 8.304 9.425 9.694 9.893 8.923 9.008 9.210 10.254 9.827 9.494 10.021 9.966 10.501 10.091 9.915 10.505 11.144 10.686 10.102 + 7.708 9.679 10.174 10.518 10.603 11.797 10.551 9.431 9.400 9.891 10.181 9.176 9.175 10.552 9.723 11.021 10.575 10.174 10.564 9.281 10.044 9.481 9.873 9.088 9.865 10.487 10.739 11.384 11.250 10.280 10.893 10.774 10.861 10.337 10.931 10.061 + 8.093 8.088 9.439 10.141 9.798 10.260 10.498 10.577 8.872 10.608 10.840 8.912 10.279 10.294 9.963 10.627 10.373 11.368 11.330 10.625 9.988 9.761 10.116 9.899 10.353 10.756 10.496 11.258 10.816 10.002 10.476 10.421 10.674 10.435 11.161 10.580 + 8.900 9.084 9.028 8.455 9.117 9.684 9.350 10.357 10.137 10.049 10.919 9.533 9.287 8.308 9.348 10.459 11.279 10.459 10.825 9.523 7.942 8.457 9.737 9.408 9.958 10.330 11.214 10.796 10.402 10.068 9.769 10.326 11.217 9.666 11.003 9.831 + 7.787 8.478 7.543 9.243 9.029 8.303 8.367 9.928 9.267 10.236 10.155 9.039 10.304 9.981 9.494 9.958 12.028 11.573 10.204 8.949 9.278 8.648 8.831 8.988 9.011 9.250 10.579 10.424 10.403 9.470 8.502 9.983 10.849 11.036 10.959 9.756 + 7.473 7.509 7.979 8.306 9.343 10.221 9.449 9.034 9.782 9.029 10.619 10.336 8.367 9.663 10.280 10.055 9.739 11.568 11.302 11.214 11.341 9.981 8.952 8.232 9.790 9.391 9.136 10.112 9.126 10.184 9.751 9.798 11.472 11.394 10.574 10.400 + 9.037 8.824 8.172 7.419 9.957 9.877 9.028 7.800 7.672 9.400 10.846 10.993 8.761 10.372 10.588 10.993 11.187 12.596 10.990 10.005 10.951 10.544 9.885 9.277 10.647 11.149 11.586 10.964 10.419 11.025 10.006 9.381 10.171 10.785 10.467 10.262 + 5.596 6.647 7.722 9.262 10.181 9.736 9.111 10.122 9.323 9.747 12.524 12.004 9.833 10.958 10.446 10.513 11.152 12.006 11.075 10.315 10.241 10.638 9.644 9.932 9.755 11.214 11.171 10.930 11.081 10.930 10.702 9.937 10.841 11.415 11.292 10.704 + 4.509 6.094 6.772 6.401 6.246 7.162 8.814 9.784 10.268 8.734 11.379 11.390 9.031 10.421 9.991 10.077 10.497 11.228 11.132 10.542 10.154 10.345 9.265 9.587 9.816 10.556 11.229 11.134 10.125 10.478 10.472 10.572 11.115 11.409 11.770 10.739 + 6.803 6.310 7.935 8.132 8.529 8.872 9.219 9.895 9.747 8.923 10.599 10.247 8.369 8.896 9.786 9.291 10.251 10.737 11.101 11.968 9.332 8.426 9.427 9.223 9.118 9.778 10.997 10.007 9.147 9.762 9.710 9.090 9.926 10.578 10.536 10.098 + 7.758 7.383 7.102 6.424 9.002 9.025 8.954 10.314 10.181 9.090 9.658 8.026 7.725 8.491 9.442 9.483 9.804 10.530 10.463 10.866 8.608 8.044 8.540 9.515 9.549 9.861 10.740 9.870 8.624 10.141 10.351 9.826 9.932 10.786 11.526 10.663 + 8.591 7.612 7.915 7.638 9.803 10.193 8.949 11.144 11.273 10.059 10.975 9.674 7.648 7.195 7.562 8.453 8.196 8.903 9.068 8.481 7.979 8.599 9.092 10.369 9.488 9.222 10.379 9.261 8.919 9.347 9.957 9.372 10.187 11.131 11.429 11.095 + 9.798 9.910 10.172 9.442 8.929 9.673 9.952 11.085 10.864 9.829 9.592 8.833 8.511 7.510 9.612 9.844 9.783 10.157 9.030 8.674 7.922 8.158 8.151 8.996 8.068 8.369 10.396 9.853 8.806 9.356 8.775 8.652 10.095 10.468 10.773 10.486 + 5.217 6.492 6.959 6.168 7.152 8.455 9.572 10.486 10.681 10.241 9.881 6.556 7.127 7.673 7.558 8.480 8.346 9.972 9.539 9.460 7.991 6.081 7.230 8.858 7.885 8.077 10.260 9.652 8.017 8.732 8.801 8.939 10.256 10.376 11.254 10.127 + 5.115 4.543 5.432 6.745 7.455 8.970 8.753 10.156 10.445 10.151 9.644 7.218 6.508 7.487 7.475 8.303 9.352 10.468 9.650 9.788 9.056 7.279 7.713 8.209 8.174 8.292 10.263 9.162 7.511 8.860 7.998 8.208 9.806 10.451 10.879 9.528 + 5.312 6.422 6.420 6.810 7.986 9.149 7.876 10.275 10.368 10.028 9.644 7.389 7.202 8.581 7.718 8.315 9.713 9.810 9.761 9.623 8.914 7.740 7.585 8.030 9.226 8.298 10.290 9.408 8.307 8.637 8.110 8.091 9.888 10.245 10.124 10.057 + 7.547 5.794 4.743 6.228 7.503 8.547 6.800 10.215 10.290 10.152 10.139 9.453 6.784 7.627 7.389 8.715 9.413 10.306 9.312 10.706 10.302 8.202 8.415 8.274 9.567 9.862 10.382 10.325 9.413 9.601 9.806 8.682 9.962 10.330 10.278 8.757 + 9.085 8.799 6.706 5.647 6.795 5.767 6.623 9.501 10.047 9.977 10.566 9.909 7.365 7.779 7.406 7.907 9.104 10.189 8.348 8.796 8.926 7.610 8.549 7.965 8.628 10.327 11.264 10.357 8.813 8.976 8.832 8.678 9.428 9.290 9.267 8.880 + 8.187 8.441 6.366 6.298 7.564 7.607 6.364 9.788 10.264 10.324 10.301 9.474 6.767 7.792 7.164 7.145 8.946 9.865 9.122 9.271 9.172 8.085 8.527 8.793 9.469 10.047 10.482 9.350 7.914 8.211 7.806 7.786 8.289 8.255 8.370 7.875 + 7.066 7.400 5.724 5.415 7.784 7.711 7.195 10.240 10.439 10.216 9.880 8.859 6.084 6.955 6.755 5.723 6.984 8.475 9.340 9.677 9.983 9.928 9.583 9.902 10.248 9.962 9.980 9.552 8.969 8.176 8.577 8.509 8.383 7.802 8.618 8.102 + 7.164 7.392 5.739 5.818 6.024 6.533 7.085 10.352 10.287 9.676 8.381 6.893 6.577 6.288 6.143 6.780 6.866 7.070 7.758 7.809 7.591 7.591 7.509 7.990 8.465 8.011 9.801 9.319 8.305 7.460 8.554 8.787 7.245 7.523 7.198 7.324 + 12.700 13.733 13.796 13.110 12.545 12.297 12.600 12.954 13.550 12.676 12.375 12.738 11.887 11.082 11.402 11.790 12.257 12.374 12.764 13.370 13.001 12.384 11.871 11.552 10.648 10.496 11.354 10.011 8.931 9.785 10.026 11.341 10.716 9.184 8.558 7.987 + 15.013 15.682 14.879 13.493 13.707 14.327 15.049 15.359 15.163 13.840 14.037 14.045 13.286 12.473 12.859 12.625 13.016 13.626 13.806 15.377 14.509 13.581 13.238 12.919 11.812 11.697 12.799 11.368 10.414 11.084 11.434 13.552 13.074 11.094 10.036 8.742 + 14.684 13.776 11.908 12.438 11.962 14.117 15.822 15.558 13.532 12.920 12.614 13.037 12.039 11.592 11.635 11.884 12.926 13.424 13.173 14.964 15.169 12.872 12.547 12.811 11.372 11.095 12.416 11.191 9.858 10.291 11.017 13.379 12.954 10.954 9.799 8.686 + 11.081 10.050 9.790 8.962 9.378 11.166 11.886 11.026 10.693 10.135 10.791 8.213 7.257 6.306 8.181 8.543 9.267 9.791 10.148 10.011 10.734 8.182 7.977 7.178 6.766 7.071 7.266 7.276 6.815 7.851 8.169 10.983 10.294 7.542 7.641 7.593 + 6.589 7.001 7.152 6.556 7.353 7.013 9.430 11.176 10.488 7.658 9.918 8.312 5.516 4.817 7.184 7.284 7.756 8.600 9.406 9.290 9.068 7.778 7.168 7.850 8.152 8.324 7.939 7.041 6.514 6.982 7.167 7.717 8.380 7.931 7.823 6.872 + 4.307 5.630 6.214 5.309 7.534 7.552 8.756 10.883 10.528 7.006 9.582 9.168 5.516 5.948 7.619 7.746 8.990 8.870 10.170 10.241 8.910 7.892 6.783 6.827 8.423 8.806 7.255 7.355 5.906 7.359 7.031 7.592 8.960 8.075 8.145 7.923 + 7.323 6.909 5.957 5.838 8.165 7.665 8.316 11.074 10.309 6.309 9.956 9.879 7.506 6.875 6.801 7.386 8.983 8.583 10.452 10.166 8.623 8.620 7.563 6.851 8.664 8.649 7.194 7.949 7.555 8.175 7.128 7.101 8.871 8.379 8.692 8.633 + 6.486 6.905 5.373 5.562 8.303 7.813 7.905 10.754 10.152 6.798 10.477 11.278 8.365 6.469 6.093 6.881 7.802 8.302 10.634 11.771 10.087 7.685 7.815 7.840 7.636 8.627 8.352 8.105 6.270 7.835 8.055 7.219 8.790 9.390 9.881 9.813 + 6.428 6.677 4.977 6.490 8.294 7.444 8.169 10.467 9.863 7.464 9.723 11.206 8.651 7.085 6.628 6.984 7.718 8.566 8.881 11.469 9.887 8.655 8.139 8.216 7.318 7.685 8.060 8.429 6.523 9.076 9.318 7.622 9.650 9.802 9.884 9.403 + 4.720 5.772 6.600 6.247 7.838 6.969 8.058 9.878 9.250 6.976 10.796 11.409 7.742 6.485 7.331 7.880 8.349 8.367 10.762 11.608 9.648 7.161 7.297 7.610 8.202 7.639 8.343 8.192 6.945 9.497 8.858 8.686 9.721 10.147 10.419 10.172 + 3.111 4.938 5.406 4.414 7.432 7.171 6.765 8.432 8.541 7.384 10.992 11.111 5.955 5.489 5.352 6.937 8.191 8.426 10.841 11.420 9.978 6.758 6.821 7.782 8.970 8.884 8.457 7.580 6.977 8.072 8.137 7.679 9.699 9.551 10.323 10.208 + 6.025 5.207 5.466 5.210 7.519 7.203 5.341 6.121 7.346 7.833 11.412 10.797 5.798 6.652 6.933 7.849 7.899 8.089 11.287 10.616 9.539 8.056 6.816 7.927 7.959 8.151 8.027 8.966 7.659 9.231 9.213 7.310 8.434 9.215 10.057 8.916 + 5.578 6.341 5.549 6.409 7.473 6.420 5.968 7.190 7.245 8.890 11.599 10.194 5.202 6.013 6.645 7.235 8.326 9.225 11.814 11.062 8.845 9.046 8.605 8.818 9.117 7.945 7.292 8.300 7.346 8.170 7.815 6.782 8.355 9.306 10.017 9.983 + 6.455 6.983 5.179 5.563 6.927 6.351 6.928 6.330 6.474 9.730 11.630 9.393 5.471 7.562 7.356 7.167 8.336 10.263 11.028 10.204 10.475 8.396 7.704 9.261 8.563 7.293 8.357 8.534 7.158 9.001 8.945 6.996 9.274 9.217 10.008 10.474 + 6.043 7.299 6.943 6.686 7.813 6.660 6.682 7.504 7.113 11.111 11.511 8.394 5.863 6.715 7.027 6.828 7.895 9.859 9.814 10.332 9.452 7.666 7.744 9.770 7.990 7.532 8.369 8.527 7.032 8.643 8.152 7.832 9.261 9.440 9.426 9.822 + 4.686 5.032 5.753 6.715 7.991 6.980 5.656 4.928 6.153 11.022 11.365 8.084 5.338 6.868 7.032 7.043 8.162 9.870 9.816 9.928 9.018 7.561 7.654 9.225 6.666 6.598 7.299 8.878 7.642 7.316 7.323 6.320 9.651 8.741 9.133 9.813 + 5.218 3.511 4.922 6.110 6.540 5.661 5.973 6.041 6.576 10.727 10.763 6.912 4.885 6.407 6.891 7.370 7.839 10.269 9.868 9.106 8.492 7.430 7.924 8.520 6.514 7.477 6.484 8.673 7.315 6.436 7.269 5.877 8.469 8.922 9.168 10.388 + 4.964 5.354 6.443 5.725 5.912 5.875 7.283 7.462 7.513 10.889 10.432 5.018 4.786 6.776 6.479 7.501 8.456 10.471 10.629 9.570 7.428 7.296 7.579 7.554 7.085 7.779 7.293 8.204 7.556 7.009 7.138 6.054 8.630 9.045 9.825 9.884 + 5.844 5.071 4.899 6.471 7.131 6.741 5.324 5.487 9.025 11.550 10.601 5.697 5.914 5.172 5.845 6.559 7.570 10.965 10.417 9.220 8.678 7.478 7.810 7.860 7.018 6.986 7.071 7.878 7.642 6.986 6.262 6.179 8.147 9.489 10.350 8.967 + 6.224 6.407 6.090 6.939 6.702 7.838 9.079 8.674 8.218 11.410 10.653 7.302 5.958 5.528 6.278 7.829 9.132 11.922 10.213 9.598 8.327 6.246 7.224 7.662 7.068 6.134 6.068 7.948 7.009 6.630 6.231 6.054 8.853 10.388 10.204 9.898 + 6.675 6.186 6.576 6.820 5.575 6.216 9.095 8.894 8.185 10.848 9.965 7.447 5.981 5.159 5.567 6.539 9.245 11.752 10.333 9.483 7.114 6.105 7.183 8.042 7.599 6.756 6.009 7.006 6.676 7.329 6.771 5.917 9.041 9.675 9.768 9.050 + 7.136 7.116 6.353 5.089 6.672 7.032 8.953 8.235 8.978 10.393 8.736 8.032 6.135 5.882 6.940 6.906 11.130 11.322 9.647 8.760 8.044 7.435 7.134 6.769 5.579 6.246 5.879 7.302 7.144 7.224 6.988 6.071 8.595 8.784 9.185 7.806 + 4.999 4.880 3.160 4.696 5.384 5.376 6.559 6.412 9.370 9.895 7.674 6.074 5.050 7.083 7.053 6.822 10.894 10.095 8.298 9.691 8.020 6.686 6.250 6.314 5.839 4.662 6.435 8.124 7.504 6.951 6.755 5.808 8.166 8.516 8.936 8.703 + 5.162 5.644 5.352 6.785 6.847 7.395 7.086 7.296 8.724 8.930 6.044 6.557 4.888 5.739 7.226 7.150 9.336 8.590 9.467 9.250 8.286 7.216 6.068 6.399 5.791 5.535 5.363 7.489 6.290 6.801 6.359 5.404 8.113 8.599 8.916 9.093 + 6.764 6.969 6.981 6.571 6.664 6.189 5.730 6.750 7.215 8.059 6.814 6.940 5.484 5.811 6.254 6.361 8.419 8.127 8.894 9.249 8.360 6.800 6.192 6.315 5.043 4.655 5.730 7.969 6.820 6.865 6.413 4.583 7.988 8.872 9.709 9.035 + 7.453 9.077 8.227 5.957 7.840 8.601 8.846 8.865 8.760 6.931 6.372 6.427 6.685 5.349 6.127 7.067 7.989 8.240 8.957 8.570 6.191 6.567 6.892 6.332 6.148 4.671 5.881 7.151 6.916 6.309 5.312 5.280 8.144 8.767 9.770 8.972 + 8.586 8.458 9.052 8.026 9.159 9.291 9.170 7.964 6.866 5.476 7.163 8.722 7.817 6.179 6.271 7.146 7.352 7.145 8.464 8.664 5.838 7.460 7.912 7.043 6.692 6.879 5.383 8.095 7.649 7.069 5.895 5.465 8.576 9.558 8.932 8.303 + 7.498 7.968 8.269 7.311 9.408 9.590 9.688 8.370 6.486 4.901 6.733 7.671 7.278 6.963 6.387 7.752 7.829 7.400 7.914 7.936 7.725 6.908 5.377 6.978 7.123 7.837 5.982 9.086 8.474 8.147 6.481 6.278 7.782 8.366 8.653 7.388 + 7.921 6.681 8.041 8.349 8.736 7.821 8.383 7.331 6.126 4.622 7.402 7.848 6.853 7.869 8.850 8.457 8.297 8.296 8.931 8.134 6.571 6.635 6.871 7.195 7.211 6.424 7.028 8.308 7.979 7.007 5.766 5.788 6.534 6.873 7.096 7.587 + 7.835 7.179 7.029 7.871 8.316 8.989 7.498 7.281 6.200 5.107 7.338 8.068 6.832 8.125 8.020 6.980 6.023 7.543 7.745 7.504 7.299 6.138 5.810 5.924 5.350 4.169 4.915 6.172 7.014 6.390 6.188 5.356 6.398 7.126 6.735 6.261 + 8.334 7.546 7.412 6.926 6.939 8.561 8.921 8.225 5.870 5.736 5.372 6.424 6.638 5.166 4.523 5.561 4.980 6.706 7.218 7.727 6.928 6.127 4.357 4.093 4.612 3.928 3.305 4.536 4.877 4.966 5.908 5.220 5.624 6.725 6.915 5.879 + 8.772 8.059 7.612 7.467 6.669 6.563 6.526 6.821 6.781 7.393 6.229 5.849 5.666 4.826 4.675 4.851 5.350 6.196 8.261 7.305 4.668 4.165 4.352 4.563 3.953 3.838 3.220 4.036 5.092 4.793 5.181 4.739 6.853 7.231 6.846 5.200 + 8.157 7.057 5.334 5.291 6.397 7.244 6.749 7.080 5.944 5.969 5.035 6.326 5.096 5.818 5.714 4.788 6.575 6.822 7.289 7.254 3.596 4.258 4.399 5.842 5.738 5.108 5.193 4.967 5.091 5.352 5.658 4.225 5.525 5.776 6.201 4.489 + 7.692 6.630 7.375 7.749 8.288 7.797 6.737 7.146 6.876 5.926 5.538 5.122 5.490 5.680 6.827 6.074 6.522 6.545 7.410 7.360 5.324 4.947 4.334 5.415 5.120 4.749 5.269 4.973 5.528 5.933 5.699 4.694 4.476 5.013 5.116 3.770 + 9.527 8.135 7.915 6.781 7.713 7.923 8.191 7.963 6.087 5.533 6.618 6.356 5.126 5.155 5.884 5.991 6.660 5.559 6.222 6.990 6.148 4.749 5.037 5.343 6.129 5.257 5.000 5.930 5.984 6.056 5.380 5.093 5.037 6.332 5.882 5.060 + 8.750 7.615 8.119 7.530 6.900 7.136 8.266 7.686 5.346 5.731 6.573 6.276 4.983 5.999 6.201 5.846 6.939 7.245 6.860 5.674 5.616 4.584 4.662 4.941 5.558 4.808 4.887 4.999 4.789 4.995 4.902 5.485 5.169 4.757 4.577 3.949 + 8.980 7.773 6.417 7.065 7.461 7.710 7.297 7.806 6.858 6.390 6.375 5.523 6.130 6.050 4.804 5.327 6.586 6.448 6.257 5.822 4.891 4.642 4.227 4.152 4.762 4.999 4.945 5.521 5.417 4.923 5.082 4.265 4.585 4.560 4.268 3.653 + 10.145 10.142 9.261 8.334 9.443 8.975 8.121 5.186 5.182 5.940 4.716 5.282 5.911 6.287 5.718 6.369 7.505 6.862 5.441 4.985 5.452 5.267 4.998 4.977 5.078 4.823 5.330 5.520 6.460 6.317 6.001 5.384 6.074 5.923 4.830 4.148 + 8.303 8.479 7.237 7.285 9.228 8.963 7.855 6.890 5.265 5.337 6.207 6.709 7.080 6.900 7.105 7.439 6.897 6.214 5.253 4.677 5.432 5.528 5.182 4.469 4.508 4.128 4.411 5.699 4.891 5.147 5.692 5.719 5.112 5.004 3.699 3.912 + 6.017 6.008 6.681 5.736 7.589 8.909 8.556 6.060 4.240 4.759 6.617 6.114 6.262 6.012 5.880 5.920 6.469 5.914 5.850 4.643 5.341 4.695 4.541 5.030 4.557 3.660 4.933 5.431 5.231 4.527 6.556 6.547 5.393 4.974 4.195 3.397 + 5.915 3.947 4.748 4.571 3.836 4.661 5.854 5.039 5.049 4.411 3.601 3.833 2.975 3.969 4.068 5.067 5.593 5.085 4.563 3.899 3.329 4.558 4.307 4.025 3.903 2.727 2.474 3.307 3.213 3.806 3.698 3.164 3.352 3.932 2.790 2.423 + 4.154 2.754 3.453 5.217 4.860 4.449 5.373 4.931 3.896 2.931 3.516 3.695 3.899 4.536 4.084 3.658 4.598 4.772 4.840 5.105 4.945 4.917 4.804 3.934 4.211 3.260 3.085 3.699 3.001 2.900 2.573 2.935 2.592 3.082 3.045 1.182 + 2.994 3.416 2.627 4.517 5.771 6.444 6.775 5.514 3.495 3.413 4.409 4.738 3.930 3.533 3.116 4.997 5.391 5.952 5.883 4.953 4.306 5.014 5.610 5.153 4.095 3.018 2.474 2.208 2.072 2.517 1.929 2.178 1.954 1.740 1.916 1.557 + 4.137 3.977 3.809 1.695 3.812 4.711 5.123 3.902 4.415 4.095 3.367 3.402 3.716 4.686 4.026 4.751 4.805 4.030 3.901 2.681 3.485 5.346 6.504 6.282 4.573 3.271 2.496 2.334 2.394 2.151 1.692 2.167 1.762 2.253 2.054 2.080 + 4.810 4.931 2.927 3.657 4.329 5.146 5.431 5.607 4.066 3.968 3.472 4.052 3.764 5.350 4.917 4.279 4.694 4.731 4.561 4.715 4.098 5.100 5.612 6.618 5.894 5.330 6.036 6.935 5.788 3.220 3.024 3.972 3.602 4.543 3.681 2.541 + 4.687 5.383 4.107 1.981 4.795 6.474 6.660 6.177 4.699 5.350 4.902 3.557 2.088 4.518 4.338 3.537 3.368 5.147 4.745 5.773 5.155 5.438 5.193 5.881 7.576 7.208 7.686 8.142 7.040 6.185 5.612 6.082 5.537 6.130 4.638 3.459 + 4.018 5.236 4.910 4.449 3.794 4.259 6.189 6.257 6.045 4.445 3.032 3.788 2.416 2.562 3.482 3.701 2.409 4.607 4.939 4.992 4.608 6.254 6.129 4.693 7.808 7.530 7.303 7.812 8.067 7.118 6.032 6.686 6.053 6.046 5.843 4.537 + 6.454 5.719 4.645 3.655 3.836 5.247 4.879 4.949 5.434 4.412 2.290 2.032 3.002 3.615 3.874 3.977 4.439 3.918 4.076 4.343 4.311 4.282 5.964 5.735 8.409 7.940 6.668 6.756 8.088 5.892 5.338 6.293 6.242 5.679 5.781 6.304 + 5.420 4.176 2.851 3.425 4.526 5.752 5.246 5.143 5.108 4.629 3.689 3.189 4.037 3.724 3.849 3.240 4.408 4.486 4.182 4.919 5.537 5.425 6.288 7.675 8.856 7.260 7.329 7.179 7.488 5.832 5.679 6.101 6.208 6.586 6.441 6.129 + 4.342 5.180 5.316 4.330 3.633 5.145 6.086 4.507 4.730 6.480 5.005 5.308 7.050 5.660 4.201 4.043 4.367 4.935 4.496 6.283 7.444 8.165 7.953 8.682 8.053 7.462 8.660 8.112 6.706 6.314 6.343 6.871 6.349 6.261 7.049 6.054 + 3.595 5.699 5.695 4.036 4.896 5.105 5.722 3.405 6.054 7.851 6.158 5.825 8.114 6.450 4.355 3.601 4.638 5.757 4.884 6.937 7.750 7.385 7.877 8.325 7.850 7.522 7.845 8.363 6.965 6.046 6.900 6.570 5.623 6.661 7.133 6.262 + 5.339 6.211 5.945 3.566 4.157 5.292 5.658 4.665 5.849 6.834 6.550 5.876 7.684 6.309 4.464 4.135 5.718 7.890 6.791 7.764 8.176 7.768 6.664 7.970 8.449 7.743 8.452 7.460 6.346 6.032 6.662 6.231 4.650 5.324 5.585 4.565 + 4.013 5.510 6.110 3.962 4.948 5.740 6.997 6.270 7.297 9.136 8.326 4.743 7.620 7.510 6.205 6.512 6.630 9.024 8.104 10.203 9.358 8.517 7.780 8.138 7.910 8.126 8.712 7.874 6.711 6.622 6.672 5.494 5.078 5.460 5.607 3.607 + 4.123 6.070 5.996 3.121 2.735 6.696 7.414 4.601 6.779 9.404 8.704 5.685 9.407 8.627 7.119 8.201 7.531 10.219 9.329 10.984 9.600 9.441 7.648 7.046 7.681 8.535 8.648 8.385 7.472 6.375 5.385 5.132 4.621 4.320 4.036 3.146 + 3.070 5.626 5.413 1.846 2.914 7.352 8.499 6.189 5.039 8.021 8.014 6.600 9.973 9.325 8.356 9.617 8.578 11.747 10.195 11.432 9.553 8.374 7.958 7.598 7.500 7.901 8.281 8.575 8.086 6.192 5.003 6.441 5.093 4.895 3.885 2.695 + 4.167 5.562 6.142 3.907 2.909 7.532 8.924 6.532 5.906 8.783 8.804 5.690 8.728 9.537 8.435 10.806 9.176 12.649 11.667 11.284 10.083 8.563 7.045 7.828 8.815 9.349 9.978 9.494 8.275 7.255 5.864 5.184 4.977 5.029 3.783 2.434 + 3.758 5.570 6.407 4.273 3.812 7.539 9.269 7.409 4.842 8.084 9.119 5.963 9.919 10.825 7.553 11.174 10.329 12.879 12.400 10.363 10.328 8.228 7.156 7.030 9.045 9.626 10.805 10.238 9.017 8.074 6.681 5.179 5.278 4.877 3.628 2.569 + 4.133 6.312 6.709 3.776 3.729 7.200 9.513 8.082 4.513 9.105 9.960 6.688 10.004 11.493 8.631 11.927 11.129 12.494 12.341 10.714 10.771 7.812 6.822 7.348 8.508 9.484 11.216 9.534 9.476 9.013 6.599 4.652 5.204 5.975 4.951 3.015 + 2.206 6.107 6.745 4.834 4.618 7.555 9.613 8.058 4.684 9.877 10.647 7.315 10.282 11.869 9.165 12.428 11.613 11.395 11.689 10.546 10.734 6.982 6.603 7.381 8.481 9.110 11.070 9.787 9.547 9.446 8.515 6.092 6.166 6.786 6.969 4.589 + 3.821 5.740 6.400 3.644 2.957 7.208 9.569 8.075 5.430 10.240 10.940 7.642 10.625 11.975 8.910 12.591 11.846 11.480 11.552 10.028 10.394 7.270 6.603 6.947 8.573 9.230 10.988 9.704 10.096 10.123 9.481 6.803 6.133 7.768 7.894 5.846 + 4.051 5.892 6.467 4.606 2.697 7.314 9.710 8.477 4.144 9.625 10.724 7.734 10.156 11.872 9.079 12.545 12.004 10.466 10.578 9.394 9.712 7.146 6.853 6.782 7.447 8.298 11.333 10.603 10.419 10.408 10.707 6.960 6.075 7.407 8.218 5.546 + 4.688 5.252 6.432 4.856 2.693 6.678 9.294 8.507 4.542 8.724 10.272 7.633 9.508 11.731 9.377 11.520 11.520 8.367 8.884 8.607 8.528 6.590 7.228 5.946 6.614 8.150 12.105 11.014 10.059 10.112 10.150 7.677 6.016 7.087 7.816 5.410 + 4.547 5.952 6.558 4.347 4.149 5.365 8.792 8.543 4.674 8.955 10.056 7.178 8.780 11.284 9.285 9.999 10.616 8.070 9.280 7.555 8.522 6.064 6.544 5.842 6.969 7.799 11.646 10.487 8.711 9.356 10.320 7.506 6.611 6.231 7.536 6.187 + 6.064 6.108 7.664 6.663 3.981 6.070 9.551 9.188 4.411 8.706 9.643 6.057 8.370 9.801 7.672 8.402 9.217 7.653 7.858 7.080 6.795 5.814 5.102 6.037 7.540 7.790 10.098 9.411 7.834 8.174 8.757 7.538 6.707 6.322 7.270 5.759 + 3.982 6.936 8.212 6.414 2.481 6.126 9.581 9.273 5.126 8.697 9.765 6.948 7.576 8.772 6.899 7.551 7.821 6.861 8.724 8.284 8.789 7.899 7.154 7.775 9.503 7.614 7.891 6.821 7.403 6.814 7.506 6.809 5.751 5.196 5.807 5.251 + 5.409 7.425 8.562 6.379 5.583 8.337 9.557 8.360 6.754 8.873 9.678 6.464 6.466 7.809 7.105 7.593 8.698 7.760 9.016 8.673 8.443 7.545 7.517 7.521 9.130 6.998 7.548 6.744 6.142 6.220 6.754 6.351 4.664 4.457 5.728 5.022 + 5.078 7.699 9.086 7.744 5.222 8.010 9.831 9.413 7.249 8.570 8.671 6.923 6.365 8.150 6.825 7.358 8.561 7.596 8.709 8.283 7.569 7.233 6.389 6.889 8.252 6.388 6.124 5.832 5.646 5.587 6.210 5.876 4.064 4.180 4.724 3.260 + 5.913 7.642 8.879 7.245 4.329 5.110 7.679 8.335 5.917 7.433 9.106 7.637 6.297 7.663 6.608 6.238 7.623 6.004 7.146 7.423 7.647 6.219 6.629 6.306 7.277 5.949 6.346 5.663 4.816 4.746 4.808 3.884 3.515 3.983 4.381 2.691 + 11.430 11.663 11.396 10.078 9.959 10.290 10.916 10.456 9.860 9.389 9.033 7.384 8.152 8.112 7.203 8.148 8.310 6.771 7.690 7.832 7.258 6.481 6.558 6.231 6.725 5.541 5.705 6.006 5.336 5.568 5.066 4.549 4.301 3.032 3.909 2.872 + 12.166 11.694 10.735 10.177 9.015 9.908 10.565 10.437 9.740 8.950 7.472 6.850 7.570 7.506 6.578 7.153 8.143 7.598 8.453 7.085 7.043 6.551 7.005 6.216 5.490 5.684 5.435 5.285 5.241 5.793 5.996 5.391 5.384 3.982 3.841 3.839 + 7.025 8.480 9.302 7.389 5.388 5.745 5.580 5.030 4.592 4.497 6.177 5.379 4.908 5.862 4.990 7.530 7.516 8.196 8.468 9.335 9.816 7.338 8.096 7.779 7.544 6.808 6.185 5.795 5.314 5.363 5.806 5.576 4.860 3.476 3.702 2.730 + 5.533 7.083 8.498 7.177 4.974 7.001 8.229 6.500 5.085 3.558 6.325 5.556 5.492 5.831 5.218 7.005 7.054 7.127 8.283 9.240 10.411 8.148 8.384 8.303 7.688 7.353 7.638 6.723 5.021 4.560 5.506 4.300 4.201 3.638 3.975 2.211 + 7.034 7.151 7.502 7.185 5.453 8.126 9.918 8.339 5.734 5.042 5.899 5.632 4.238 6.199 5.238 6.117 5.790 8.244 8.715 9.792 10.396 8.838 8.911 7.948 7.407 7.568 8.073 6.225 5.063 5.663 5.740 5.184 4.723 4.187 3.182 2.396 + 8.277 7.997 7.669 7.080 6.750 8.939 10.948 9.786 6.657 5.716 6.640 5.849 6.070 7.066 5.250 5.163 5.077 9.413 9.064 11.445 11.044 9.355 8.054 8.333 7.521 7.131 6.960 5.609 6.456 6.245 5.271 3.563 4.098 5.056 3.778 1.794 + 3.858 6.076 7.043 5.086 4.943 9.514 11.028 9.012 4.404 6.343 5.807 3.157 5.627 5.809 4.963 5.224 6.020 10.855 10.296 12.651 12.026 10.573 8.797 8.234 7.078 5.761 6.268 6.267 6.139 6.129 6.052 4.498 3.476 4.623 3.770 2.678 + 5.904 6.461 7.273 5.555 5.974 10.193 11.105 8.228 5.576 7.893 7.241 4.066 6.168 5.623 4.650 5.883 7.626 11.066 9.879 11.526 10.112 10.686 8.344 7.192 6.962 5.494 5.822 5.058 5.927 6.658 5.606 4.947 4.382 4.290 3.619 1.958 + 6.042 5.385 6.353 5.334 6.655 11.193 11.768 9.200 6.584 8.658 7.253 5.507 7.080 5.756 4.468 5.494 8.332 10.309 9.320 10.667 8.938 8.129 7.502 5.803 4.959 4.783 5.600 5.293 6.020 6.636 5.777 4.818 4.954 4.813 4.179 2.512 + 1.702 4.436 5.830 5.969 7.966 11.234 10.688 7.142 7.130 8.820 7.139 5.771 7.565 5.531 5.468 5.731 7.018 8.017 8.638 9.656 8.864 8.338 7.096 6.074 4.850 5.065 5.519 4.953 5.533 5.828 5.242 3.904 3.398 3.862 4.032 1.888 + 5.330 6.105 5.465 4.362 8.784 11.018 9.609 6.648 7.402 8.270 5.539 6.623 7.479 6.000 5.383 5.673 6.792 7.270 8.911 9.369 8.957 7.823 7.337 6.155 5.889 5.300 4.693 4.500 5.672 6.628 6.254 3.966 3.570 3.624 2.995 1.960 + 6.497 6.822 6.690 6.384 9.607 11.136 9.349 4.473 6.946 7.578 5.004 3.900 4.938 6.128 6.163 4.791 6.754 8.238 8.834 10.077 9.560 9.718 8.112 7.329 7.337 6.368 6.350 6.765 5.948 6.473 6.732 5.450 5.152 6.033 5.636 4.791 + 7.064 8.181 8.081 6.698 9.846 11.067 8.728 5.165 5.269 6.048 6.333 5.211 4.017 6.462 6.696 5.373 6.782 9.160 9.016 11.418 10.287 10.173 8.840 7.545 6.925 7.435 7.996 7.404 7.284 7.628 7.870 6.284 6.403 6.903 6.920 6.342 + 6.967 8.076 8.057 6.734 10.413 11.326 9.504 6.699 6.856 6.522 6.029 6.021 4.924 6.147 5.394 6.307 6.408 9.563 9.404 10.562 9.552 9.101 8.868 8.335 8.096 8.589 7.709 7.404 6.812 7.581 6.574 5.636 6.386 6.780 6.400 6.169 + 7.268 7.000 6.855 6.151 9.565 9.600 8.906 7.377 7.929 6.046 5.592 6.719 5.391 5.701 5.411 7.287 6.892 8.348 7.467 9.138 10.493 9.846 7.530 10.019 9.070 8.776 8.189 7.785 7.706 7.048 6.578 5.351 6.292 6.459 6.425 5.546 + 5.273 6.539 5.498 5.306 9.558 10.108 8.381 7.776 8.456 5.876 4.215 4.490 4.831 5.924 5.503 6.729 6.645 7.497 7.612 9.032 9.863 8.990 8.334 10.417 9.765 8.305 6.699 6.822 7.112 6.994 6.634 5.189 5.313 5.971 5.806 4.895 + 7.437 6.412 4.910 5.492 8.724 8.795 6.613 8.575 9.020 6.113 5.351 5.359 4.320 4.724 4.870 4.289 5.501 6.034 6.481 7.521 7.676 8.020 8.274 8.738 9.511 8.965 8.456 7.242 7.476 7.006 6.733 4.561 5.785 6.142 6.582 4.882 + 6.081 6.748 5.696 6.365 8.464 8.612 8.027 8.592 8.460 4.840 5.466 5.708 5.121 5.061 5.137 5.784 5.469 4.926 5.898 7.964 8.000 9.100 8.026 7.324 8.296 8.504 9.855 8.540 7.724 6.895 6.303 4.471 5.423 7.494 6.545 5.413 + 5.040 5.919 5.063 5.742 7.513 7.908 6.631 9.355 8.994 5.209 6.468 6.037 5.171 5.200 5.000 4.349 4.377 5.045 5.168 8.347 8.835 9.617 8.030 7.617 8.001 9.080 9.463 9.203 8.204 6.983 7.236 7.215 6.559 8.062 7.321 5.466 + 5.256 6.241 5.125 6.325 9.446 9.628 7.877 9.732 9.159 5.445 6.358 5.337 4.468 4.840 4.715 4.563 5.676 6.453 6.531 8.518 8.608 8.617 7.455 6.236 7.534 8.226 8.074 7.940 6.461 6.453 7.520 8.327 7.665 8.282 8.141 6.158 + 6.412 5.796 3.166 7.702 9.725 8.336 7.161 8.992 8.367 4.192 5.215 4.784 4.834 3.538 3.981 4.927 5.241 5.560 5.448 8.587 7.924 7.520 5.543 5.120 6.366 6.734 6.625 6.745 6.800 6.873 6.878 7.084 7.241 7.645 7.965 5.503 + 6.389 7.056 5.913 7.620 9.512 8.189 6.081 7.100 6.799 4.358 5.754 5.065 4.925 4.855 4.081 3.881 4.207 5.634 6.379 7.683 7.428 6.538 4.933 4.989 4.281 5.090 7.229 7.060 6.557 6.075 6.052 5.082 6.578 6.515 6.325 3.949 + 6.209 6.240 4.724 7.415 8.488 7.081 6.751 7.572 5.949 4.414 4.781 4.480 4.725 4.955 4.828 3.598 3.629 5.447 4.704 6.209 4.677 4.775 5.062 4.525 3.528 3.859 6.279 6.901 5.043 4.756 5.093 4.666 4.409 5.713 5.095 3.108 + 5.146 5.428 3.827 6.926 7.453 6.594 5.224 6.505 4.176 4.423 4.582 4.665 4.387 3.812 4.329 3.992 3.695 4.673 5.160 6.716 5.451 4.321 3.143 4.517 4.253 4.229 4.340 5.469 3.593 4.631 3.748 3.325 3.930 4.304 4.471 2.374 + 5.533 5.397 3.708 7.799 9.398 8.292 5.472 5.925 3.233 3.731 4.574 3.786 3.129 2.622 4.045 4.378 3.638 4.405 5.712 5.055 5.838 5.258 4.097 4.840 4.859 3.936 4.751 5.177 4.256 3.748 2.811 2.860 4.144 4.057 4.069 3.685 + 5.612 4.925 4.859 6.722 8.310 7.912 4.033 4.853 4.513 3.024 3.771 2.417 3.000 3.718 3.880 4.076 3.815 5.365 4.390 5.042 6.204 5.898 4.855 3.777 3.666 4.774 5.160 5.352 4.261 3.675 4.070 3.707 4.072 4.575 4.805 3.554 + 5.629 4.400 6.066 7.528 8.544 7.336 6.090 5.061 4.380 3.800 4.274 3.300 4.542 3.581 4.284 4.504 4.743 4.929 4.644 5.775 5.908 5.260 3.424 4.113 4.686 5.259 4.502 4.635 3.677 4.171 4.307 3.767 3.757 4.449 4.225 3.820 + 5.819 3.762 4.775 7.254 8.808 7.561 6.417 6.985 6.403 5.942 5.127 3.516 2.464 3.431 4.318 4.264 5.494 4.983 4.234 5.491 6.182 5.149 3.728 3.939 5.073 5.970 5.685 5.259 5.482 4.609 4.972 5.123 4.734 4.128 5.171 4.596 + 4.988 5.308 5.355 5.340 6.184 7.319 6.702 7.420 6.520 5.601 5.318 4.547 1.582 4.665 4.386 4.626 5.794 4.935 3.897 5.968 6.240 6.122 5.761 6.102 6.408 7.291 6.749 6.833 6.633 5.662 5.693 5.189 5.156 4.764 4.964 5.083 + 4.926 6.065 4.892 7.132 7.333 7.000 6.966 7.813 5.899 4.262 4.894 2.787 3.089 5.101 5.252 4.659 4.845 5.143 5.389 5.854 5.930 6.319 6.001 6.629 6.346 7.776 7.705 7.378 7.900 6.802 5.346 6.073 6.022 6.246 6.209 5.682 + 4.663 5.639 5.217 6.659 6.830 6.496 7.111 7.032 6.009 5.192 4.869 4.554 5.786 5.221 5.768 7.223 7.357 6.454 5.081 5.305 4.815 5.136 4.188 4.828 5.847 6.027 6.554 6.906 6.865 6.103 6.971 6.376 6.620 7.604 6.854 6.755 + 3.926 4.670 4.727 6.935 7.713 7.595 8.118 7.362 6.799 5.596 5.426 4.499 3.855 5.363 5.005 6.269 7.004 6.606 6.317 6.086 4.601 4.388 4.406 5.631 6.411 6.042 7.350 7.368 7.018 7.175 7.407 7.626 7.194 7.436 6.643 7.256 + 4.952 5.170 4.631 7.653 8.537 6.368 7.499 7.795 5.747 3.260 5.270 5.767 5.366 6.324 6.584 7.039 6.780 6.339 6.502 6.959 4.835 4.718 5.368 6.907 7.214 7.636 7.394 7.300 6.872 7.847 7.687 7.256 6.509 6.758 6.849 6.549 + 5.342 5.095 5.751 7.746 9.147 7.864 7.173 8.313 7.122 4.687 4.945 5.735 6.940 6.701 7.644 6.512 7.058 6.417 5.625 7.111 4.550 4.797 5.661 6.358 7.192 7.090 6.572 7.397 7.499 7.046 6.386 6.448 6.797 6.414 6.678 6.165 + 5.183 4.822 4.014 7.157 8.452 6.563 4.822 5.833 3.868 4.183 4.791 4.923 4.803 4.370 6.403 5.958 5.118 5.200 4.840 5.251 3.123 4.351 4.635 4.290 5.661 5.947 5.362 4.854 5.947 4.667 3.936 4.527 4.666 4.667 4.360 3.995 + 4.883 5.475 3.545 6.551 8.187 6.404 5.799 6.792 4.697 2.964 3.757 2.093 2.008 2.569 3.477 3.065 3.984 5.873 5.377 5.707 4.497 3.966 3.119 3.977 3.680 3.935 3.840 4.537 3.813 3.771 2.585 2.583 2.801 3.554 2.426 1.097 + 4.786 4.340 3.386 6.744 8.218 6.453 5.618 7.434 5.929 4.815 4.873 2.861 3.266 3.489 3.959 4.097 4.606 7.795 7.126 7.412 5.203 4.438 3.853 4.265 3.923 4.576 5.161 5.563 3.815 3.798 4.244 4.151 4.353 4.454 2.856 1.670 + 2.905 3.371 4.067 6.092 7.993 6.643 5.842 8.500 7.533 7.323 7.486 4.600 5.476 4.439 4.946 5.173 5.995 8.938 8.767 9.642 6.348 4.778 4.202 4.209 4.313 5.008 6.266 7.218 4.870 3.749 3.692 5.365 5.236 4.472 2.923 1.108 + 3.503 3.060 1.796 6.202 7.943 6.564 6.191 8.470 7.777 8.552 8.720 5.902 7.250 5.063 4.803 6.262 6.295 9.499 9.528 10.134 6.813 5.096 4.828 4.369 4.185 5.668 7.018 8.365 5.922 4.648 5.355 6.328 6.345 5.615 4.780 2.558 + 1.316 2.476 2.478 5.694 7.323 6.093 5.094 5.590 5.751 8.786 9.060 6.645 8.043 6.367 6.597 7.098 7.796 10.466 10.167 10.624 6.651 6.064 5.440 5.073 4.510 4.595 6.334 7.826 5.465 4.898 5.623 6.920 6.636 5.518 4.893 2.007 + 1.943 2.755 2.711 6.345 7.158 4.886 5.778 7.413 6.124 8.880 9.224 7.335 8.882 6.721 7.183 8.151 8.500 10.974 10.472 10.605 6.787 5.651 5.316 5.181 5.021 4.962 6.923 8.443 6.034 4.892 5.518 7.230 7.448 6.069 5.046 2.102 + 3.293 3.888 2.951 6.203 7.019 5.062 5.829 7.296 5.195 8.588 9.134 7.483 9.117 6.875 7.478 7.787 8.623 11.464 10.857 10.345 6.919 6.058 5.627 5.327 5.349 5.373 7.299 8.366 6.323 5.455 6.120 7.167 7.262 5.859 4.375 2.510 + 3.805 3.258 1.833 4.763 6.539 5.688 4.927 6.686 5.337 8.511 9.209 7.599 9.490 7.800 8.704 7.776 8.617 11.396 10.971 8.920 7.376 6.138 5.396 5.214 6.588 6.219 8.473 9.066 7.809 6.053 5.290 6.872 6.297 4.371 3.600 3.258 + 3.489 3.209 2.345 4.489 6.114 5.030 3.950 5.701 4.498 8.615 9.312 7.486 9.603 7.772 9.016 7.536 8.250 11.033 10.937 9.348 7.379 6.612 4.648 5.004 6.007 6.383 8.545 9.090 8.201 5.694 4.582 5.716 5.758 4.893 3.221 2.275 + 4.319 3.391 0.853 3.893 5.766 4.759 2.478 4.268 3.874 8.599 9.293 7.485 9.865 8.404 9.452 7.414 7.999 10.934 10.887 10.184 7.983 6.398 3.423 5.356 5.675 5.747 8.166 8.110 7.036 5.535 5.530 5.833 7.535 6.585 4.329 1.839 + 4.504 4.373 2.048 4.185 5.875 4.693 4.914 6.090 5.177 7.955 8.872 7.547 10.100 8.577 9.644 7.959 8.755 10.817 10.771 10.161 8.010 6.672 4.235 5.780 5.602 6.048 7.340 7.733 7.126 5.849 5.732 5.989 7.730 6.911 3.937 2.104 + 1.081 2.497 2.366 4.262 5.923 4.687 4.579 6.500 4.640 7.180 8.549 7.949 10.366 8.719 9.699 8.504 9.519 10.235 10.314 10.287 8.363 6.482 4.150 6.009 5.888 6.050 8.079 7.847 6.347 5.176 6.203 6.405 7.294 6.813 4.361 2.524 + 2.887 2.529 0.317 4.372 5.980 4.528 4.294 6.612 5.384 6.984 8.517 7.545 10.361 9.039 10.053 8.966 10.176 9.792 9.687 9.880 8.642 7.188 5.367 5.260 6.146 6.758 7.352 7.480 6.596 5.191 4.867 6.304 6.485 5.994 3.872 2.159 + 2.388 1.250 1.283 4.153 6.492 5.666 4.644 7.685 6.933 8.290 9.423 7.648 10.400 9.079 9.277 9.175 10.795 8.658 8.600 9.908 8.774 6.459 4.961 4.982 6.712 7.219 7.735 8.112 7.646 6.114 5.838 7.417 6.817 5.039 3.994 1.967 + -0.299 0.104 0.308 3.983 6.484 5.723 5.750 8.428 7.508 8.224 9.364 6.855 9.776 9.006 8.796 8.936 9.732 8.552 9.432 9.138 8.888 7.233 6.082 5.842 6.582 7.832 8.555 8.455 6.232 5.636 5.049 7.353 7.231 4.719 3.305 2.363 + 1.753 1.448 1.049 3.391 6.347 5.898 5.599 8.637 8.070 7.572 8.573 5.852 8.262 7.966 8.901 8.500 7.073 7.925 9.411 9.858 9.461 7.987 5.948 5.852 6.714 7.382 7.159 7.101 4.942 5.167 5.220 7.633 7.084 4.509 3.013 2.041 + 0.870 1.570 1.208 4.157 6.296 5.280 5.724 8.477 7.857 7.036 6.762 6.360 8.893 7.607 9.141 8.626 8.567 8.821 9.552 10.355 9.682 7.479 5.497 4.957 6.512 6.555 5.990 6.137 5.527 5.145 5.461 7.631 6.896 4.510 3.662 1.497 + 2.507 2.134 1.305 3.918 5.590 4.663 5.320 7.432 7.535 8.682 7.502 7.821 9.910 8.166 8.757 8.811 9.105 9.769 9.224 9.053 8.489 5.946 3.791 5.240 6.327 6.621 6.972 6.255 5.702 5.384 5.237 6.219 6.424 5.588 3.603 1.624 + 4.518 4.305 2.395 3.806 5.085 5.335 5.113 6.634 7.615 8.961 8.273 7.744 9.166 8.444 8.056 7.682 8.786 9.183 8.505 7.981 7.495 6.315 4.146 3.786 4.164 4.684 6.800 6.672 5.478 4.761 4.279 4.706 5.608 5.586 3.499 1.876 + 4.482 4.677 3.528 3.807 4.874 4.897 5.677 5.877 6.363 6.614 6.724 6.855 6.267 6.419 5.799 5.715 6.976 7.252 6.474 5.863 4.973 3.061 3.084 3.085 2.328 3.001 4.347 4.977 3.758 3.752 3.195 4.439 4.548 4.898 3.811 1.446 + 4.064 4.123 3.515 4.112 5.308 5.313 5.061 6.620 6.793 6.436 6.445 5.941 6.559 6.441 6.328 5.513 5.328 6.462 7.072 6.324 3.861 2.653 2.440 3.629 3.318 3.152 4.336 4.443 3.724 3.196 2.409 3.746 3.446 3.395 3.477 2.011 + 3.135 4.204 3.614 3.806 3.986 4.501 4.967 6.790 7.367 7.784 6.591 5.938 6.093 4.536 6.405 5.388 6.066 6.696 6.310 5.384 4.364 4.354 3.998 3.501 3.214 3.844 4.593 4.739 3.889 3.296 3.289 4.093 4.008 3.649 3.110 1.380 + 5.462 4.211 3.023 3.867 4.406 3.933 3.081 6.815 7.855 7.181 6.147 5.834 5.397 4.087 6.271 4.902 6.073 7.293 6.998 5.032 3.242 3.781 2.736 2.867 2.959 3.824 4.614 4.419 3.048 3.375 2.645 2.664 3.501 2.612 2.641 1.611 + 5.060 5.228 3.665 2.834 4.089 4.434 4.494 6.284 6.758 5.573 3.805 2.564 5.591 4.597 5.288 3.605 5.806 5.401 5.567 5.445 3.525 3.949 3.198 2.390 3.372 2.902 2.898 4.144 3.429 3.044 2.353 2.635 2.995 2.297 1.180 0.775 + 5.264 5.305 3.899 3.538 2.998 4.272 3.735 3.000 3.523 4.937 4.573 5.218 5.954 6.864 6.835 7.147 6.606 6.278 4.905 4.859 5.632 5.248 5.012 4.962 5.584 6.825 6.520 5.717 6.040 5.260 5.287 4.319 4.389 5.157 5.163 5.327 + 7.306 6.097 5.770 5.128 5.015 7.256 7.532 5.813 6.347 6.732 7.086 7.818 8.960 9.712 10.392 10.799 10.108 8.609 7.321 7.229 8.129 7.675 8.703 9.278 10.127 11.169 10.332 10.311 9.535 8.804 8.357 7.737 7.956 8.535 8.764 8.690 + 6.330 6.528 7.407 6.950 7.105 9.207 8.529 7.002 6.332 7.944 9.038 8.810 8.012 9.173 11.306 10.307 10.531 10.035 10.211 8.698 8.469 8.745 9.606 10.412 11.305 11.983 10.801 11.529 9.682 9.039 8.439 8.539 9.074 8.701 9.203 8.899 + 7.384 7.414 7.737 5.620 6.004 8.387 8.806 9.085 7.865 7.930 9.178 8.714 9.140 10.428 10.861 10.782 10.439 10.537 10.471 9.278 8.852 9.077 9.909 10.602 11.100 11.878 11.161 11.092 9.773 10.026 9.319 8.599 8.724 8.720 9.541 9.309 + 8.978 8.537 7.579 7.328 8.736 8.250 7.914 9.833 9.279 7.394 8.116 8.411 8.399 10.950 11.601 10.756 9.229 10.440 9.357 7.808 7.649 8.353 9.037 10.026 10.808 11.300 10.442 10.073 9.572 9.809 9.071 9.162 8.454 10.085 9.898 9.172 + 9.075 7.877 7.669 8.278 10.335 10.330 8.821 9.823 9.173 9.355 8.784 9.675 9.522 10.547 10.820 11.434 9.866 10.377 9.674 9.039 8.271 8.942 9.520 9.120 10.538 11.790 11.323 10.986 9.353 10.020 9.927 9.225 9.728 9.566 9.753 8.796 + 8.554 9.149 9.008 7.607 8.720 10.072 9.966 9.986 9.471 8.912 7.753 9.117 8.930 8.901 11.153 11.297 11.158 10.944 11.643 9.984 8.994 9.083 9.418 10.601 11.184 11.208 11.028 10.877 9.883 10.200 10.768 10.284 9.861 9.327 10.116 9.388 + 8.520 10.132 8.969 6.989 6.528 9.730 9.782 8.823 9.085 9.712 9.425 8.814 9.751 9.980 10.796 10.776 11.146 10.909 11.557 10.297 8.643 9.781 9.884 10.453 10.664 11.653 11.375 11.048 10.527 10.162 9.945 8.882 8.884 9.764 10.674 9.886 + 10.421 10.125 9.038 9.193 8.770 10.297 11.020 9.982 10.592 11.125 9.666 9.137 9.873 10.149 9.903 10.606 10.874 10.999 10.529 9.408 9.263 9.000 9.093 9.938 10.251 10.128 10.501 9.446 10.025 9.798 9.197 7.931 8.525 9.337 9.700 8.908 + 10.385 9.669 8.472 8.922 10.117 10.101 9.863 8.542 8.309 9.010 8.178 8.774 8.200 10.098 9.868 9.624 9.289 9.306 8.740 7.552 7.007 7.299 7.408 8.769 8.709 8.508 8.441 7.690 7.484 8.939 8.487 7.956 8.346 8.858 8.819 7.319 + 8.491 6.968 7.043 6.919 6.397 8.248 8.942 8.409 7.999 7.762 7.275 7.507 7.413 8.354 8.943 9.448 9.393 7.544 8.339 7.728 5.864 7.031 6.893 6.127 7.524 8.096 7.111 7.984 7.684 7.959 8.597 7.675 7.549 7.825 7.837 5.765 + 8.419 7.497 6.473 6.713 5.793 7.293 8.129 8.139 8.228 8.315 6.128 6.203 6.124 6.909 6.388 6.491 6.525 6.659 7.308 6.598 6.025 5.613 7.032 6.716 6.976 6.678 6.255 7.106 7.402 7.891 7.291 6.937 7.251 8.102 7.083 6.313 + 7.215 6.982 6.220 5.759 4.692 5.377 5.738 5.343 6.228 6.876 5.508 6.159 4.515 5.068 5.439 5.968 5.907 6.002 6.294 5.522 4.770 5.610 5.953 5.235 5.698 5.768 5.249 6.101 6.007 7.222 7.131 5.575 5.567 5.840 5.372 4.953 + 6.485 5.020 4.243 3.629 4.801 6.412 5.666 3.927 5.092 4.442 3.638 3.958 4.478 4.006 4.189 4.561 4.550 4.594 4.391 3.057 3.702 4.854 4.072 4.708 5.055 5.193 4.917 5.552 4.838 5.031 4.998 4.552 4.848 4.487 4.325 4.566 + 3.991 3.727 3.028 3.131 4.490 5.256 5.315 3.844 4.401 3.863 2.931 3.448 3.214 3.129 2.790 3.699 4.586 5.172 4.660 3.781 3.108 2.608 3.169 3.710 4.908 5.068 5.141 4.660 5.605 6.187 5.322 5.480 5.393 4.061 3.899 3.535 + 4.929 3.479 3.394 1.671 2.796 4.741 4.547 3.647 2.757 3.730 3.202 4.337 2.781 3.372 3.538 4.849 3.726 3.541 4.053 5.073 5.109 4.719 4.428 5.250 5.072 5.119 4.536 4.831 5.315 5.782 5.271 5.380 4.735 4.519 3.557 3.229 + 5.559 4.577 4.634 5.270 4.862 4.336 4.272 4.008 4.231 4.305 3.256 3.861 3.311 3.816 4.782 3.398 4.969 4.928 3.970 4.464 4.515 3.766 4.866 4.339 5.361 4.921 4.239 5.368 5.464 4.651 4.791 5.509 4.820 3.706 3.313 3.753 + 5.884 5.311 5.378 4.676 5.297 5.215 4.957 5.002 4.208 4.810 3.275 2.799 3.823 3.937 4.331 4.530 5.570 6.175 5.101 4.932 4.367 3.521 3.271 4.181 5.007 5.173 5.044 5.122 5.724 5.907 4.959 5.223 4.790 5.135 4.903 4.572 + 5.562 5.450 4.816 4.498 4.019 3.163 3.047 3.994 5.870 5.076 4.398 4.836 3.751 5.230 5.288 5.632 5.668 5.755 5.397 5.756 4.986 3.994 3.576 5.187 5.301 5.743 6.098 5.643 6.129 6.677 6.088 5.305 5.523 6.016 5.111 4.156 + 6.245 5.560 5.302 4.567 5.349 4.091 4.345 4.655 5.697 5.203 3.952 4.936 4.497 4.449 5.116 3.722 4.438 4.948 4.836 5.756 5.543 4.777 4.935 5.205 5.254 5.066 4.585 5.430 6.281 5.791 6.107 5.844 5.688 5.248 5.125 4.532 + 5.173 3.748 3.986 4.915 6.522 5.451 6.278 5.587 7.044 6.592 3.969 3.814 4.227 4.934 4.604 3.768 3.830 5.872 5.521 5.402 5.369 4.504 5.450 5.218 5.984 5.636 4.696 5.467 6.314 5.997 6.036 6.214 5.855 5.486 4.937 4.353 + 4.778 5.956 6.486 6.724 6.571 5.157 5.641 6.035 5.643 6.581 5.841 5.432 5.351 6.387 5.548 4.456 4.842 5.214 4.301 5.790 5.115 4.387 5.192 4.546 5.287 5.988 5.517 5.899 5.831 6.047 5.821 5.640 5.330 5.468 4.744 4.718 + 10.576 10.371 10.032 8.533 5.532 6.719 7.004 6.878 5.930 6.891 6.862 7.238 7.877 7.404 5.649 5.999 5.537 5.537 5.983 5.949 5.965 5.899 5.281 6.517 6.341 6.447 6.465 5.578 6.129 6.562 5.903 6.688 5.936 6.353 5.218 5.233 + 9.359 8.057 7.625 7.727 6.651 5.468 6.494 6.717 6.670 5.688 5.022 4.924 5.556 5.073 4.782 5.124 5.586 5.403 3.856 4.875 5.844 5.420 4.991 4.180 5.087 5.923 5.907 5.975 6.306 5.675 6.334 6.308 6.159 6.223 5.020 3.555 + 3.273 4.221 4.982 4.185 4.336 5.139 7.128 6.947 5.703 6.472 6.355 5.798 5.393 4.747 5.729 4.629 4.780 4.072 3.690 5.115 6.111 5.860 6.354 5.537 5.003 5.535 5.692 5.586 6.407 6.249 6.554 6.096 5.350 4.805 4.709 4.282 + 5.784 4.410 5.946 5.631 5.075 4.924 5.878 6.893 6.016 5.489 4.627 6.201 6.029 4.902 4.019 4.944 6.159 5.559 5.561 5.119 5.549 5.133 5.769 5.897 5.941 6.333 5.560 5.431 6.118 6.429 6.370 6.686 5.488 5.268 4.518 4.467 + 7.013 5.560 5.383 6.193 5.036 5.287 5.115 5.710 4.895 5.815 5.147 5.505 5.374 5.601 5.322 5.267 5.090 4.269 5.162 5.201 4.672 4.581 4.945 5.339 4.577 5.339 5.370 5.560 6.201 5.840 5.270 5.988 5.307 5.161 4.494 4.436 + 7.113 6.955 7.046 6.176 6.143 5.015 6.118 5.454 4.503 5.879 5.405 5.467 4.723 4.851 4.644 5.345 5.561 5.426 5.050 4.685 6.031 5.736 5.464 5.182 4.577 5.305 6.592 6.163 6.195 5.599 4.944 5.507 5.662 5.145 4.225 3.759 + 10.338 9.696 8.324 7.984 7.956 8.246 7.163 7.608 6.653 5.441 5.316 4.495 4.314 2.289 4.105 5.782 6.476 6.563 5.304 3.664 4.494 5.043 5.162 5.218 5.189 5.562 5.407 5.701 6.222 5.326 5.177 5.073 4.759 5.267 4.469 3.780 + 6.890 8.073 7.977 7.806 7.720 8.116 7.399 6.523 5.066 4.265 3.992 5.054 5.572 3.865 5.755 6.115 6.780 6.324 4.602 2.737 3.979 4.660 5.678 5.512 4.897 5.059 4.810 4.162 5.076 4.974 4.426 4.724 4.564 4.187 4.347 3.096 + 5.706 7.629 8.556 7.317 7.686 8.727 8.156 8.758 8.383 8.461 8.335 8.567 8.602 8.411 8.411 8.435 8.625 8.760 8.615 8.463 8.600 7.671 6.307 6.466 6.640 5.988 5.813 5.511 4.838 5.575 6.134 6.053 5.666 5.789 5.984 5.890 + 8.647 8.393 9.503 8.804 8.794 9.143 8.997 9.180 9.152 9.173 9.122 9.380 9.326 9.234 9.225 9.316 9.370 9.475 9.483 9.626 9.661 8.524 6.784 6.513 7.227 6.462 6.586 5.840 5.511 6.391 6.908 6.269 7.128 7.126 7.523 7.501 + 7.003 7.534 7.513 7.776 6.707 5.953 5.948 5.670 4.430 4.081 3.755 2.852 2.719 2.374 3.137 3.412 3.586 3.242 2.280 2.966 2.891 3.023 3.342 5.012 4.123 3.405 3.801 3.731 4.343 4.519 4.200 4.229 4.354 3.788 3.802 3.198 + 6.648 7.607 7.596 6.928 6.726 5.422 5.242 5.333 4.597 3.443 3.362 4.710 3.607 4.055 3.800 3.942 3.464 3.744 2.765 2.502 3.517 3.130 3.507 3.508 3.154 3.599 3.910 4.797 3.434 3.603 3.561 4.040 4.557 4.179 3.537 2.402 + 7.001 8.175 7.647 5.736 5.433 4.924 3.725 4.683 5.370 4.834 5.143 4.353 3.572 5.114 4.852 2.959 3.552 3.280 3.740 2.194 3.826 2.712 3.228 3.505 3.440 4.070 3.820 3.848 3.447 3.956 4.118 4.465 4.812 3.719 4.581 3.095 + 6.027 6.252 4.952 4.900 5.735 5.399 5.543 4.666 6.112 5.502 4.766 4.153 3.682 3.727 4.500 4.524 3.179 3.741 3.603 3.861 3.787 4.269 4.215 4.674 4.416 4.300 3.934 3.704 3.953 4.292 3.942 4.393 4.266 3.875 3.966 3.255 + 5.324 6.365 4.936 5.399 6.201 5.775 5.424 3.769 5.246 5.640 6.124 5.935 5.714 5.726 6.007 5.864 5.518 5.464 5.506 5.825 5.597 5.455 5.336 5.756 5.341 4.930 5.404 5.062 5.787 6.236 6.535 6.869 6.996 6.946 6.444 6.017 + 4.842 5.147 3.440 5.308 5.527 4.657 4.173 4.616 4.245 3.331 2.867 3.623 4.110 3.538 4.173 3.840 3.817 4.153 4.038 4.430 3.750 3.002 3.921 3.817 3.355 3.304 3.536 3.430 2.146 2.391 2.691 3.163 2.820 2.806 2.652 2.589 + 5.521 5.352 5.560 4.747 2.381 3.504 3.660 3.850 3.779 3.239 2.918 3.958 3.371 3.688 3.457 2.453 4.007 4.076 3.860 3.766 4.198 4.019 3.444 3.672 2.987 3.347 2.836 2.824 3.022 2.997 2.825 2.823 2.456 2.834 2.749 1.192 + 5.317 5.419 5.318 5.012 4.753 5.048 5.456 3.917 4.026 4.824 4.357 4.034 3.578 3.325 3.662 3.393 5.058 3.217 3.681 3.876 3.579 3.717 3.098 3.250 2.791 3.294 2.523 2.649 2.483 3.197 3.208 2.785 2.425 2.380 2.823 2.195 + 5.673 4.553 5.300 4.946 4.287 4.539 4.385 3.233 4.042 4.147 3.901 4.297 4.425 3.725 4.041 3.369 4.782 4.586 2.999 4.533 4.725 3.512 3.954 3.453 3.525 3.206 2.625 2.336 2.151 3.432 3.538 3.229 2.880 2.430 2.189 2.159 + 2.366 4.893 4.745 4.038 5.608 6.025 5.539 5.046 4.654 5.051 3.218 4.779 5.123 5.249 4.342 3.942 4.658 3.924 3.362 3.821 3.608 3.476 4.414 3.900 3.272 3.702 3.611 3.900 2.805 3.184 3.959 3.345 3.135 3.548 2.592 2.626 + 1.378 4.478 5.349 4.020 4.493 4.928 4.823 5.220 4.333 4.124 3.625 3.734 3.167 4.204 3.659 3.665 4.927 3.764 4.187 4.189 3.888 3.947 3.671 3.237 3.033 2.455 3.267 3.849 2.121 2.861 3.483 3.026 2.538 3.596 2.445 1.539 + 5.202 4.753 4.812 3.583 2.265 5.120 5.816 4.463 3.133 4.092 4.448 4.714 5.233 4.728 4.132 4.122 4.385 3.619 3.677 3.802 3.953 3.721 4.065 3.759 3.929 3.332 3.691 3.373 2.360 3.028 2.286 2.210 3.255 3.357 3.015 2.612 + 5.090 3.966 3.448 4.461 5.017 5.737 3.963 3.614 2.992 4.544 5.006 4.552 4.482 3.678 4.239 3.180 3.920 4.021 3.151 4.640 4.751 3.223 4.149 3.676 3.961 3.901 3.093 2.535 3.055 2.615 2.384 2.703 3.649 3.186 2.474 2.033 + 4.619 4.423 4.569 3.531 4.238 5.095 5.355 5.405 4.707 5.080 4.588 4.771 4.876 3.181 3.880 4.657 4.403 4.192 3.914 4.068 3.996 3.192 4.765 4.539 3.671 2.884 3.219 3.064 3.661 3.478 3.161 2.594 2.737 3.310 2.982 3.138 + 2.790 3.909 4.069 4.748 5.219 5.580 5.482 5.049 4.640 4.525 4.492 3.792 4.196 5.033 5.120 5.420 5.251 5.575 5.901 5.521 5.893 6.506 6.362 6.470 6.599 7.079 7.362 7.247 7.502 7.712 7.721 7.943 7.879 7.832 7.700 7.050 + 4.720 4.457 4.522 5.391 6.870 6.303 5.007 4.760 4.846 5.095 4.198 4.475 4.813 3.634 3.649 4.236 3.778 4.124 4.143 3.830 4.129 5.104 5.019 5.012 5.091 5.691 5.928 6.064 5.994 6.008 5.991 6.249 6.428 6.369 6.334 5.898 + 6.260 4.880 3.767 5.870 6.859 6.016 5.895 5.570 4.422 3.023 4.473 4.120 3.515 3.272 3.090 2.789 2.736 3.415 3.133 4.245 4.205 4.205 3.710 4.716 4.024 4.357 4.040 3.918 4.238 3.747 2.820 2.130 2.538 2.477 2.147 2.496 + 5.976 4.398 5.401 6.174 6.315 5.425 4.717 4.263 3.831 2.754 4.400 4.309 3.535 2.772 3.223 3.572 3.275 2.864 3.054 2.957 2.553 3.359 3.385 2.906 2.862 2.330 2.888 2.165 3.135 2.889 2.569 2.123 3.671 3.625 2.721 2.725 + 5.188 4.296 4.020 4.136 4.030 3.286 3.300 3.620 3.359 2.955 4.210 5.203 3.409 3.194 3.548 3.716 4.382 3.440 3.444 3.364 3.026 3.280 3.363 3.987 3.552 3.701 3.915 3.954 3.819 2.739 3.121 3.159 3.140 3.554 3.480 2.693 + 2.914 3.784 4.077 3.644 4.139 4.677 3.069 3.377 3.718 2.870 2.484 3.493 1.842 3.543 3.537 4.402 3.541 2.336 3.093 2.445 2.145 3.968 4.608 3.468 2.826 3.520 3.513 3.492 3.033 1.888 3.802 3.783 3.740 3.808 3.527 2.713 + 2.564 1.636 3.098 3.139 4.185 3.538 3.422 1.675 2.332 2.090 3.195 2.191 1.082 2.690 3.068 2.757 3.031 2.782 1.986 2.896 2.863 3.305 3.478 2.755 2.220 2.746 3.195 3.078 1.733 1.146 1.801 2.045 2.819 2.663 2.707 2.538 + 2.114 2.303 3.163 2.543 1.594 2.175 2.840 2.944 2.737 2.262 2.843 2.521 2.275 1.964 2.762 2.821 3.421 3.093 1.741 3.051 3.337 4.699 3.500 2.929 2.855 2.767 2.638 2.797 2.649 3.038 2.159 3.366 3.596 2.704 2.444 1.482 + 3.127 2.454 2.409 1.981 2.943 2.933 3.405 2.526 1.124 1.784 1.900 3.074 2.102 2.971 1.958 2.599 2.959 3.167 2.871 3.295 3.365 3.808 2.746 3.625 3.191 2.748 2.656 2.416 2.340 2.921 2.699 2.571 3.079 3.125 2.657 1.869 + 1.176 3.633 4.330 2.948 3.095 2.415 2.783 2.825 2.522 3.614 3.213 2.502 2.392 2.871 2.505 2.000 2.514 3.028 3.621 3.454 3.108 3.909 4.011 3.411 2.847 2.761 2.360 2.255 1.808 3.017 3.500 2.342 3.124 2.584 1.968 1.504 + 1.937 4.163 4.483 2.787 3.525 3.238 2.560 1.169 2.454 2.045 1.574 1.719 2.157 2.703 1.956 2.861 0.955 2.633 2.020 2.253 2.927 3.016 2.864 2.909 2.601 2.038 2.749 2.510 2.293 3.219 2.793 2.283 2.168 2.273 2.269 1.602 + 2.630 4.008 3.478 2.402 1.969 2.551 1.311 1.544 1.493 2.122 3.195 2.689 2.101 1.765 0.695 2.535 2.015 2.954 2.475 3.018 3.051 2.982 2.996 2.337 3.172 2.101 1.924 2.017 2.480 2.543 1.989 1.947 1.888 2.617 2.596 1.933 + 3.423 3.298 3.992 2.304 1.220 0.577 0.742 1.961 2.665 2.863 2.203 1.680 2.515 3.656 2.129 1.091 1.444 2.066 3.201 1.892 3.468 3.227 4.156 2.890 2.999 2.720 2.731 2.537 2.118 2.129 2.091 2.035 2.372 3.174 2.525 2.320 + 2.383 3.351 3.255 2.474 2.497 2.289 3.208 3.571 3.152 2.067 2.921 2.673 2.545 3.102 3.032 2.913 1.898 2.407 2.352 1.539 2.629 2.776 1.514 2.215 2.596 2.413 2.598 2.542 1.902 2.265 2.526 2.996 2.437 1.936 1.914 1.432 + 3.496 2.546 3.102 2.845 2.988 2.266 2.341 1.784 3.072 1.954 2.666 2.372 1.994 2.524 2.295 2.710 1.859 1.808 2.469 2.033 2.232 1.020 1.857 2.311 2.356 2.980 2.588 2.636 2.452 2.212 1.847 2.710 1.849 1.548 2.320 2.060 + 2.566 1.921 3.022 2.910 3.385 2.821 0.987 2.786 2.832 2.296 3.353 2.457 1.928 2.370 2.305 1.938 1.537 1.788 1.775 2.498 2.548 1.692 2.545 1.381 1.950 1.927 1.963 2.818 2.834 2.680 3.213 4.472 4.525 4.462 4.266 3.546 + 3.824 3.673 3.542 3.276 3.446 2.384 3.005 3.953 4.073 3.008 2.106 3.869 3.748 2.285 3.288 3.259 2.804 2.066 1.141 1.888 2.220 1.893 2.349 1.486 0.684 0.780 2.263 2.733 2.566 3.330 3.983 4.277 4.485 4.448 4.276 3.489 + 3.478 4.550 4.133 2.793 3.291 3.646 4.768 4.501 3.773 3.411 4.550 3.854 2.302 3.011 3.259 3.782 1.541 3.052 2.775 2.055 2.180 2.361 1.229 2.021 2.156 2.465 2.176 2.437 1.796 2.285 2.064 1.765 2.159 1.400 0.562 1.236 + 2.433 3.305 3.609 3.433 3.175 2.852 2.538 2.417 3.377 3.901 4.942 3.852 3.570 3.600 3.548 3.808 2.032 2.049 1.806 3.319 2.432 2.656 2.174 3.060 2.513 1.729 2.585 2.230 2.536 2.384 1.835 1.305 1.889 1.653 1.460 1.580 + 3.347 4.340 3.672 2.964 3.299 3.260 3.781 4.492 4.511 4.414 4.290 3.800 3.032 2.414 2.807 2.429 1.731 0.741 1.005 1.168 1.801 2.305 2.370 0.428 0.988 1.937 2.001 1.469 2.005 1.821 1.807 1.543 1.386 0.958 1.480 0.895 + 1.365 1.881 2.204 2.725 3.799 4.252 3.735 4.504 3.820 4.248 3.466 1.999 1.617 1.047 1.042 1.729 2.675 2.499 2.808 2.862 1.828 2.830 3.195 2.036 2.065 2.699 2.373 1.522 2.171 2.394 1.115 1.755 1.710 2.446 1.811 1.446 + 4.358 4.566 5.061 4.980 3.928 3.543 4.690 4.067 5.126 5.972 3.836 1.900 2.427 2.020 1.785 0.902 1.444 2.273 2.401 1.958 3.774 3.645 3.474 2.784 2.227 3.795 4.140 2.900 2.835 3.486 2.492 3.058 2.636 3.599 3.191 2.341 + 4.826 5.858 5.783 6.069 6.251 4.985 5.690 5.722 5.382 5.422 5.706 5.595 5.157 4.822 4.161 3.617 2.760 3.468 3.113 2.794 4.050 3.790 4.423 3.787 3.388 2.858 3.317 3.200 3.819 2.922 2.591 3.011 2.177 2.504 2.927 2.121 + 2.345 4.361 4.618 4.489 5.071 5.747 6.142 6.458 6.209 5.548 5.806 5.862 4.587 3.662 4.185 2.893 2.399 2.371 3.508 3.394 3.907 3.803 4.481 4.390 5.057 4.497 3.918 4.132 4.167 3.185 2.656 3.237 4.109 3.734 3.664 2.676 + 3.576 4.431 4.941 5.574 6.095 4.736 4.718 5.349 6.156 5.872 5.217 5.832 3.981 4.060 3.951 3.126 2.330 1.661 2.635 2.230 3.008 4.194 4.736 4.737 5.561 4.888 4.458 3.856 4.088 3.776 3.085 3.193 3.738 3.662 3.094 2.393 + 5.298 4.360 4.539 4.946 5.569 5.293 6.367 5.721 4.796 5.379 5.505 5.011 4.783 5.008 4.951 4.949 4.000 2.872 4.349 3.771 3.388 4.699 4.542 4.097 4.162 3.573 4.142 2.895 2.685 1.872 1.946 1.540 0.487 0.882 0.761 -0.847 + 4.999 4.284 5.561 5.964 5.901 4.501 5.083 4.640 4.615 4.714 4.889 3.190 3.982 2.598 2.461 2.817 3.032 2.673 3.315 2.978 1.288 2.821 2.233 3.737 3.720 3.478 2.559 2.893 2.365 1.763 0.935 1.115 0.646 1.344 1.053 -0.206 + 3.624 5.403 6.121 4.322 4.533 5.022 6.086 6.172 5.033 4.758 5.074 5.416 4.770 5.058 4.546 3.779 4.762 3.727 2.648 3.441 3.362 2.792 3.548 4.233 3.583 2.571 2.632 2.800 1.352 1.173 0.974 0.777 0.885 1.623 1.118 -0.236 + 4.226 5.823 5.915 5.739 4.840 4.117 4.952 5.092 5.070 5.193 5.165 6.479 5.889 4.641 3.945 1.961 3.599 3.708 3.254 2.544 3.400 2.717 2.779 2.924 3.004 3.386 3.628 1.982 1.457 2.054 1.247 1.141 1.476 0.405 0.479 0.311 + 4.862 3.363 4.324 5.217 5.063 5.764 5.077 5.090 5.456 5.546 6.062 5.014 4.259 3.947 3.904 3.928 2.561 3.368 3.112 1.751 2.727 2.956 3.351 3.206 3.285 3.047 3.539 1.994 1.749 2.514 1.500 1.423 1.293 0.886 -0.029 0.267 + 5.675 4.469 4.969 5.675 6.221 6.431 5.415 6.402 5.952 7.114 7.536 6.280 4.907 4.739 5.275 4.567 3.933 4.118 3.715 3.862 2.589 3.196 3.350 3.822 3.712 2.833 3.279 2.987 2.486 1.613 1.173 0.675 0.627 0.631 0.340 0.429 + 5.527 6.793 6.729 6.879 6.963 5.293 6.261 6.174 4.573 6.233 5.971 4.128 4.996 5.955 5.522 4.181 3.464 3.547 3.775 3.348 3.063 4.378 4.994 4.402 4.931 5.417 3.541 2.917 1.963 1.576 1.196 0.953 1.505 0.430 0.223 -0.215 + 6.110 6.329 4.860 5.773 6.972 6.717 4.776 4.661 6.055 5.071 4.233 4.202 3.361 3.636 3.538 1.881 2.118 2.423 3.265 3.191 2.716 3.789 4.649 4.592 4.547 4.355 3.337 3.194 1.936 2.406 2.385 2.163 2.578 1.924 1.746 -0.306 + 5.886 6.442 4.739 6.878 8.145 6.733 4.390 6.362 6.578 5.478 4.775 4.739 5.360 4.545 2.934 2.564 3.080 3.391 3.222 2.896 2.459 2.460 2.915 3.768 5.535 5.604 3.053 3.678 2.681 2.007 1.757 1.466 1.259 0.785 0.498 -0.451 + 5.940 5.989 2.967 4.137 7.233 6.418 4.856 4.266 4.239 4.030 4.640 4.682 4.533 3.270 1.282 2.358 2.659 3.738 3.322 4.909 4.714 5.095 5.291 4.609 4.944 5.115 3.237 3.940 2.754 2.681 1.123 0.702 0.374 0.678 0.118 -0.291 + 7.157 7.261 5.268 5.331 8.283 7.716 5.110 6.407 5.647 3.079 5.195 4.765 4.517 3.155 5.644 5.757 3.873 4.403 4.437 4.926 4.646 5.349 5.489 3.974 4.184 4.289 3.789 3.895 2.399 1.647 1.198 1.908 2.152 1.689 1.379 1.131 + 7.145 7.482 5.745 7.234 9.218 8.135 4.718 7.186 6.703 4.082 3.902 2.931 3.121 4.557 6.986 6.688 3.097 4.037 4.206 5.287 4.879 4.226 4.356 3.600 5.240 5.833 5.655 4.026 3.382 3.690 3.317 3.390 3.084 3.816 3.422 3.132 + 6.820 7.096 4.591 6.221 9.381 8.641 4.572 8.202 7.691 4.472 5.400 4.309 4.630 3.443 6.672 6.935 3.369 2.919 4.092 5.040 5.040 4.842 5.011 5.356 5.646 6.445 5.351 3.286 3.377 4.399 5.387 3.816 4.174 5.422 3.614 2.625 + 6.977 7.435 5.584 7.075 9.813 9.006 5.272 8.253 7.506 4.847 6.217 5.180 3.123 4.204 6.873 6.927 3.418 2.204 3.157 3.399 3.554 3.875 4.402 5.534 6.285 6.018 5.260 2.784 3.748 4.960 4.422 3.231 3.839 5.268 2.943 1.710 + 7.151 7.378 5.182 7.045 9.987 9.127 4.849 8.233 7.877 4.807 6.023 4.677 3.468 4.330 7.144 6.901 2.498 2.637 3.911 3.070 3.498 3.776 4.647 4.962 5.903 6.912 5.347 3.058 3.762 5.305 5.572 3.850 4.372 5.403 3.159 1.592 + 7.409 7.722 6.333 7.777 10.216 9.317 5.766 8.437 7.606 3.868 5.802 5.168 4.010 2.632 7.416 7.240 2.355 2.052 2.668 3.026 3.662 4.427 4.865 5.075 5.569 6.428 4.219 3.531 4.028 5.153 5.608 4.062 4.691 6.246 3.518 2.437 + 6.576 7.253 5.613 7.727 10.167 8.983 5.245 7.981 7.466 4.988 6.796 5.933 4.405 4.535 8.304 7.868 4.138 3.140 4.344 5.327 4.987 4.763 5.844 5.356 6.278 7.177 5.599 3.695 3.554 4.422 4.825 4.267 5.207 5.748 3.501 2.042 + 8.082 7.948 5.374 8.396 10.203 8.652 4.268 6.768 5.363 4.785 5.988 5.774 6.499 5.501 8.258 7.556 4.301 3.970 4.958 5.935 5.694 5.909 4.918 4.858 5.630 5.829 4.974 4.482 4.317 4.574 5.046 4.298 5.088 5.753 3.899 3.056 + 7.373 8.099 6.134 7.697 9.684 8.763 5.982 6.916 5.643 3.477 4.360 4.301 5.187 4.903 6.702 5.798 4.055 4.238 3.212 4.396 4.705 5.359 4.987 4.938 5.036 5.391 4.136 3.853 3.964 5.352 5.993 3.984 4.708 4.620 3.285 2.767 + 8.989 9.584 9.840 8.793 7.718 7.411 6.071 6.334 7.052 7.719 8.232 7.186 5.215 5.369 5.868 5.631 4.422 4.185 3.345 4.863 5.457 5.583 4.251 4.530 4.748 5.023 4.175 3.879 3.354 4.705 5.225 4.855 4.189 5.005 5.110 4.181 + 10.392 10.470 10.430 9.911 9.828 8.275 6.006 6.708 6.706 6.240 7.387 5.856 4.337 3.497 5.126 5.129 3.818 2.710 3.795 3.882 4.429 4.130 4.124 4.520 5.054 5.289 4.400 4.773 4.336 4.764 5.097 5.031 5.025 5.004 4.654 3.995 + 8.447 7.373 5.984 6.008 8.660 7.938 7.142 6.513 5.620 6.132 6.074 5.776 4.672 4.786 4.691 4.970 4.437 3.411 3.245 3.437 3.810 3.984 3.658 4.694 5.001 4.944 5.141 4.317 4.539 4.411 5.025 4.282 4.065 4.205 4.255 3.787 + 5.571 6.136 5.730 6.039 7.718 6.998 5.837 5.251 3.113 3.641 4.555 3.017 2.708 4.855 4.391 4.114 4.239 4.441 4.607 5.371 4.491 4.495 5.331 5.484 5.274 4.817 4.860 4.443 4.531 4.630 5.037 4.865 4.660 5.176 4.426 3.276 + 5.144 5.217 4.209 6.326 8.137 7.492 5.861 4.931 3.875 4.093 4.193 2.477 4.416 5.252 4.063 5.025 5.387 5.287 4.560 5.611 6.484 5.798 6.232 6.376 7.560 7.112 5.432 5.150 4.841 5.448 5.403 5.003 5.248 5.368 5.387 5.277 + 7.742 7.407 6.710 6.642 8.490 9.170 7.422 8.283 7.553 7.522 5.253 6.015 5.970 5.474 5.734 6.742 6.843 5.735 4.970 5.475 7.059 7.540 6.891 8.249 9.061 9.324 7.274 6.322 6.652 6.716 6.338 7.218 6.494 6.771 6.242 5.586 + 12.227 11.089 9.092 9.770 10.982 11.643 11.392 11.013 10.547 9.768 8.881 7.854 7.216 7.644 8.249 9.158 9.322 8.209 6.147 6.926 7.316 8.233 8.193 7.353 9.472 10.127 9.280 8.795 9.345 8.740 8.301 9.442 8.558 7.726 7.891 6.158 + 10.999 9.692 9.265 9.355 9.424 8.756 8.772 7.713 7.261 7.670 6.831 6.244 5.485 6.482 6.583 6.143 6.649 6.285 5.325 5.910 7.111 7.848 8.552 8.235 10.117 10.313 9.236 6.566 6.681 6.926 6.547 6.827 7.388 7.309 7.116 5.651 + 11.774 11.923 10.553 11.437 10.745 9.481 10.491 9.513 8.994 9.550 9.224 9.149 9.090 8.757 8.867 8.381 8.027 7.979 7.835 7.270 7.130 8.780 9.287 8.662 9.563 10.054 8.782 8.031 7.665 7.045 8.061 7.994 8.087 8.630 7.910 5.545 + 13.374 13.032 12.293 12.164 11.141 10.622 10.809 10.084 9.007 9.787 10.128 10.267 9.856 9.929 9.756 9.226 8.487 7.432 7.455 7.569 7.470 8.167 8.337 9.376 9.782 10.804 9.979 8.691 7.874 7.537 8.238 8.360 7.660 8.623 8.028 6.388 + 10.713 9.142 6.409 8.645 8.170 6.312 6.732 6.445 6.628 6.927 6.453 5.867 5.611 5.636 5.178 5.225 3.318 4.267 4.906 5.233 5.313 6.012 7.777 8.353 9.307 10.131 8.466 6.033 5.526 5.629 6.292 6.838 7.535 8.104 7.763 5.383 + 5.910 5.916 5.206 6.274 7.353 7.065 8.175 6.947 4.940 5.631 5.519 5.730 4.842 3.831 5.375 5.206 2.833 3.901 3.890 3.873 4.523 4.798 6.697 8.150 9.374 9.516 8.412 6.222 5.074 5.722 4.918 5.859 6.305 6.905 7.138 5.266 + 6.478 4.873 3.966 6.741 7.633 6.792 8.152 6.267 4.929 5.122 4.628 3.920 4.223 4.321 5.080 4.146 3.410 3.859 3.585 4.055 4.143 4.953 5.904 7.558 8.167 9.738 8.791 6.349 4.360 4.262 4.617 5.032 6.712 7.414 7.207 5.267 + 6.425 5.724 5.615 8.705 8.627 7.828 8.102 5.035 5.784 5.020 4.531 3.567 3.840 4.277 4.376 4.172 4.195 3.091 3.585 3.884 4.511 5.148 6.331 7.845 8.841 10.220 8.654 6.353 5.316 5.552 5.850 5.478 6.258 6.765 6.203 5.231 + 4.886 5.377 6.656 9.754 9.097 7.904 8.880 6.409 5.739 4.995 5.024 4.593 1.382 4.697 5.865 5.633 5.102 3.626 4.837 4.983 5.158 5.017 6.861 9.282 10.116 10.733 9.939 7.320 6.187 6.644 7.077 6.947 7.379 7.045 7.524 6.066 + 3.857 4.079 8.294 10.288 9.229 8.432 8.187 6.744 5.842 5.553 4.438 4.824 3.946 4.406 5.090 4.697 3.704 3.664 3.216 4.147 5.126 5.518 7.137 10.009 10.369 10.569 10.072 7.752 5.638 5.778 6.491 5.875 6.676 7.444 7.529 5.474 + 5.844 4.552 7.781 9.544 8.610 7.819 6.344 8.022 8.344 5.911 5.088 5.589 4.454 4.722 3.747 3.905 3.810 3.378 3.458 4.131 5.036 6.343 8.258 10.092 10.373 11.035 9.989 7.742 6.095 5.580 6.439 6.520 7.622 8.562 7.877 5.696 + 3.074 4.796 5.531 7.068 8.109 8.502 7.067 9.145 9.266 6.520 5.570 3.873 3.544 5.024 4.119 3.861 2.570 2.699 4.082 4.380 4.879 6.074 8.922 10.541 10.852 10.842 9.867 7.964 5.719 5.891 6.657 6.772 7.221 8.616 8.192 6.418 + 3.063 5.290 5.791 5.207 6.814 8.687 7.288 8.400 8.155 7.019 6.329 5.796 4.116 4.410 5.557 4.499 3.541 3.561 4.028 5.056 4.536 4.931 8.812 10.279 10.017 10.671 10.084 7.646 5.702 5.691 5.603 6.756 6.533 7.842 8.181 6.556 + 3.181 4.766 5.262 6.798 7.314 8.807 7.241 8.421 8.035 6.773 5.760 4.509 5.301 4.921 5.059 5.163 3.226 4.254 4.746 4.023 5.332 4.572 8.724 10.652 10.182 10.559 9.510 7.504 6.146 5.722 6.010 5.537 5.747 7.753 7.889 5.723 + 4.503 4.751 7.228 7.901 7.499 8.895 7.566 8.048 7.291 6.992 6.441 4.105 4.093 4.307 4.095 3.235 3.274 4.577 5.944 5.168 4.984 5.037 7.375 9.148 9.667 9.255 7.528 6.632 5.321 4.043 5.218 5.490 7.033 7.480 7.103 5.912 + 4.873 4.551 6.373 7.924 6.749 6.874 5.953 6.609 5.605 4.332 5.650 5.369 3.739 3.869 4.942 3.642 2.745 3.083 3.040 2.695 3.904 3.625 5.264 8.083 8.768 8.667 7.235 5.655 4.507 4.594 4.625 4.728 5.983 7.153 7.206 4.915 + 7.530 6.645 7.203 7.273 6.527 6.740 5.843 6.740 6.830 6.284 5.952 3.722 2.942 4.362 4.165 3.437 4.305 4.118 3.661 3.508 4.839 5.103 4.978 7.129 8.181 8.260 5.413 4.834 4.247 4.382 4.716 5.116 5.590 6.189 5.964 3.726 + 8.714 7.046 7.651 6.826 6.498 6.116 6.187 6.067 5.437 5.125 5.284 4.545 4.399 4.718 4.852 4.175 3.878 3.835 4.511 4.514 5.030 5.266 4.950 5.640 6.831 7.010 5.046 5.191 5.690 4.997 3.722 4.756 5.712 5.995 6.178 5.003 + 8.332 7.441 6.522 6.653 6.707 6.707 5.054 5.257 5.571 5.317 4.428 4.793 3.349 4.286 5.315 4.475 4.271 4.360 4.995 4.967 4.835 4.459 6.079 6.164 6.129 5.197 5.038 4.639 5.066 4.968 4.475 4.999 5.720 6.780 6.054 5.039 + 6.397 5.646 6.229 6.053 5.726 7.284 5.846 5.433 4.988 5.190 3.496 4.407 4.787 3.413 4.694 4.433 3.265 4.144 4.005 4.029 4.619 5.361 5.408 5.040 4.846 3.720 5.099 4.975 5.012 4.603 4.227 4.289 4.307 4.949 5.089 3.563 + 7.246 7.495 6.581 6.374 7.234 6.861 6.115 5.543 4.321 5.464 5.510 4.683 4.198 3.876 4.043 4.750 3.648 4.287 4.431 4.076 4.274 4.474 4.929 6.408 5.904 5.983 5.589 4.771 4.355 3.923 3.623 3.654 3.975 3.976 4.075 2.488 + 8.663 8.341 6.967 6.696 6.961 7.034 6.617 4.781 4.890 4.406 5.348 4.200 3.607 4.361 4.056 4.911 5.310 4.039 3.729 4.281 4.777 4.247 4.449 6.016 5.272 5.225 4.984 5.511 4.147 4.971 4.995 5.209 5.318 4.767 4.074 2.623 + 7.009 6.547 5.560 5.271 4.629 5.730 5.922 5.190 4.061 4.530 5.024 5.230 4.424 4.649 5.318 4.112 4.925 4.965 3.619 3.530 3.365 4.540 4.942 5.622 6.144 6.039 5.766 5.962 5.522 5.142 4.349 4.662 5.755 5.206 5.642 3.940 + 5.780 5.863 6.752 6.979 5.810 6.113 5.833 5.181 5.634 6.397 4.538 4.088 3.928 4.968 4.691 4.077 4.059 4.075 3.615 4.394 5.191 4.809 4.853 6.812 7.928 8.095 6.807 5.309 4.736 5.246 4.603 4.678 5.523 5.969 5.386 4.761 + 4.867 6.254 6.973 5.717 6.399 7.677 5.719 4.750 4.858 5.863 3.828 3.336 2.355 4.255 4.088 3.763 3.853 3.127 3.819 3.801 5.381 5.029 4.670 8.256 8.071 8.751 7.175 5.970 5.313 5.083 5.111 4.970 5.832 6.331 6.598 5.147 + 4.752 5.830 6.243 5.704 7.061 8.328 6.459 6.238 5.579 4.780 3.715 2.733 2.579 3.329 4.531 3.717 3.722 2.362 2.723 3.820 4.010 4.550 6.423 8.548 8.521 7.958 8.506 7.297 5.974 4.895 6.300 6.303 6.328 7.218 6.976 4.922 + 6.343 6.064 6.376 6.780 8.045 8.322 7.510 8.392 7.512 6.165 4.965 2.825 2.706 4.256 4.257 3.783 2.997 2.998 2.857 5.807 6.297 6.450 8.529 9.226 8.815 8.747 8.917 7.670 7.214 6.047 6.646 6.220 6.545 6.979 7.381 5.449 + 4.507 5.052 5.948 6.624 6.910 6.096 6.896 7.146 6.281 6.521 5.146 4.945 4.738 5.294 4.964 3.758 3.313 5.584 5.351 6.891 7.404 7.709 8.920 8.147 8.459 8.829 8.942 7.303 6.222 5.718 6.528 5.884 7.020 7.206 7.638 5.555 + 5.337 4.635 5.761 5.272 3.925 3.576 5.167 4.941 6.831 6.464 3.631 4.968 5.248 4.664 5.375 4.715 3.540 4.842 5.063 6.569 7.653 8.857 8.213 7.212 8.031 8.471 8.300 6.341 5.947 5.882 5.704 5.902 8.000 7.670 7.188 5.232 + 5.424 5.426 6.225 4.977 5.797 5.159 4.856 4.959 7.250 6.740 4.108 3.291 4.425 5.155 5.257 5.130 4.140 5.331 5.895 6.470 8.068 8.905 6.615 6.595 7.254 8.261 7.660 6.592 5.853 5.760 5.713 5.932 7.427 7.702 6.973 5.876 + 5.315 5.391 6.731 5.971 6.236 6.003 6.904 5.686 6.173 5.841 5.043 3.343 4.123 6.323 5.039 4.947 4.977 5.729 6.149 7.928 8.517 7.888 7.495 7.668 7.045 7.843 8.118 6.727 5.377 5.089 5.526 5.729 6.754 7.306 7.545 5.608 + 5.443 5.399 4.793 5.100 4.984 5.670 7.164 6.036 6.393 6.709 6.880 4.341 5.257 6.073 5.834 4.732 4.862 6.132 5.597 9.035 9.143 7.649 6.156 6.668 6.764 7.613 7.708 6.510 4.199 4.615 5.686 6.077 6.923 7.396 7.244 5.267 + 3.026 4.286 3.281 4.644 5.153 5.177 5.730 6.568 7.409 8.215 7.543 7.062 5.948 6.112 6.715 4.922 5.077 6.777 6.989 9.551 9.489 7.679 5.576 6.024 6.058 6.687 6.779 5.691 4.273 4.108 4.335 5.741 6.790 6.689 6.850 3.774 + 12.004 12.272 12.025 12.068 12.121 12.217 12.154 11.972 10.575 10.583 10.639 11.025 10.600 9.497 9.650 9.561 9.714 9.322 8.710 9.890 9.720 7.998 6.911 7.649 6.736 7.892 7.166 6.994 5.832 5.961 5.332 6.604 6.847 6.837 6.712 5.365 + 14.501 13.377 12.750 11.967 12.822 12.642 13.057 12.930 11.222 9.277 11.175 11.859 10.945 9.026 9.784 9.642 10.092 9.579 8.760 10.051 10.128 9.089 7.885 8.489 8.074 8.964 7.859 7.424 6.429 6.747 6.774 7.269 7.531 6.361 6.839 6.414 + 11.849 10.464 8.361 9.306 8.716 9.164 8.451 7.660 9.115 9.299 8.040 7.623 7.590 6.674 6.486 5.851 5.203 6.408 6.819 9.542 9.526 7.619 5.544 6.247 5.854 6.267 6.893 6.218 5.268 4.052 5.014 5.235 5.657 5.680 6.211 4.332 + 9.006 5.350 5.341 4.543 5.380 4.950 5.302 7.155 7.414 7.578 6.439 5.871 5.895 4.587 4.196 3.580 5.050 5.685 7.082 8.316 8.213 5.364 4.099 5.552 5.446 5.911 7.462 6.257 4.235 4.789 4.767 5.868 6.548 5.983 6.351 4.834 + 5.850 4.983 5.008 5.102 5.831 5.071 3.459 5.853 8.012 7.655 5.136 6.213 5.385 4.768 5.166 3.198 3.664 6.314 7.334 9.134 9.085 6.118 5.544 4.710 5.579 5.309 6.691 6.706 5.580 4.849 4.859 5.848 6.552 5.441 5.485 3.999 + 4.196 4.742 4.925 5.273 6.127 5.997 5.296 6.298 7.189 8.356 6.033 5.551 6.259 5.518 5.834 4.369 4.960 5.507 6.316 9.024 8.599 6.690 5.345 5.101 5.902 5.225 6.691 6.223 4.596 4.419 4.710 5.566 6.273 5.411 4.847 2.900 + 6.629 6.114 6.284 6.768 6.093 6.605 5.921 7.205 7.637 8.502 6.645 6.013 5.242 6.184 5.189 4.368 5.295 6.833 7.484 9.436 8.432 6.457 4.691 4.174 4.887 5.317 6.208 5.906 4.636 4.695 4.163 4.423 4.162 4.672 5.068 2.490 + 7.257 8.129 8.404 8.889 8.966 9.889 10.267 9.502 9.501 9.995 9.159 9.152 8.645 8.260 8.167 7.622 8.135 7.468 7.495 7.415 7.936 7.440 7.457 7.603 8.400 7.430 7.254 7.193 6.666 6.801 7.450 8.664 9.469 8.014 8.549 7.442 + 10.758 8.711 7.481 8.481 8.323 9.634 10.222 9.829 9.103 9.591 9.149 8.842 7.960 6.952 7.475 7.028 7.592 7.591 7.045 6.836 8.074 8.475 8.148 9.393 10.026 8.881 8.924 8.436 7.497 7.970 8.657 9.273 9.780 9.238 8.721 7.675 + 10.355 9.839 9.659 9.830 9.766 9.591 9.435 10.147 9.564 9.540 9.216 8.239 8.325 8.267 7.390 7.673 8.282 8.808 9.125 8.462 8.559 8.525 9.433 10.453 11.120 10.774 9.699 8.437 9.838 10.498 10.964 11.507 11.707 11.322 10.471 8.619 + 11.378 8.736 7.575 8.116 6.899 6.619 7.761 8.083 6.731 5.706 5.567 4.167 3.901 3.891 4.081 4.095 5.031 5.759 5.793 6.490 6.545 6.471 5.248 6.370 6.582 6.369 5.186 5.273 5.185 5.397 5.689 6.424 6.243 5.841 5.554 4.168 + 8.153 7.445 7.636 8.765 7.328 5.246 6.203 7.809 7.880 7.472 5.826 4.111 4.463 4.935 4.282 3.649 3.033 4.099 4.875 5.269 5.115 5.783 4.882 5.009 4.045 4.776 4.830 5.069 4.468 4.562 5.165 5.198 4.967 4.258 5.088 4.484 + 6.807 6.622 6.280 7.225 6.991 6.550 5.645 4.867 5.349 5.981 5.384 4.485 4.073 4.647 5.139 3.104 3.757 4.112 4.387 6.081 5.865 4.428 4.415 5.351 4.031 4.459 4.405 4.736 4.181 3.713 4.307 5.260 4.753 4.987 4.544 4.075 + 7.275 7.043 6.839 6.992 7.868 6.444 5.642 6.109 7.043 7.300 6.446 5.541 5.583 5.228 4.823 4.869 3.596 3.032 4.996 5.269 5.830 5.949 4.756 4.918 4.439 4.787 4.992 5.118 4.892 4.458 3.419 4.358 4.267 4.774 4.546 5.020 + 8.280 8.160 7.813 8.206 8.250 7.529 6.717 5.921 6.083 5.992 5.349 5.592 4.229 5.490 5.532 4.167 3.211 3.274 3.977 5.496 5.251 4.916 4.782 5.396 5.113 5.456 4.860 5.181 4.910 4.918 4.530 5.288 5.259 5.517 4.334 4.559 + 6.191 7.335 6.993 9.137 8.912 5.952 6.296 6.307 4.583 5.686 6.223 4.565 3.824 5.976 6.274 5.570 2.943 2.888 3.796 5.109 4.730 5.305 4.330 5.584 4.857 4.359 5.064 5.211 5.583 5.118 5.164 5.561 5.700 5.414 4.551 3.704 + 6.203 4.793 5.939 8.083 7.838 6.969 6.546 6.308 6.071 5.700 5.022 5.118 4.940 4.636 4.705 4.367 4.050 3.595 3.842 5.182 5.265 5.929 4.920 5.690 5.015 4.950 4.503 4.354 4.666 4.299 4.278 4.574 4.895 5.461 5.259 4.401 + 5.631 5.010 5.488 6.228 6.261 6.374 6.639 5.731 5.091 4.574 5.772 4.906 2.893 2.360 3.799 4.332 4.063 4.356 3.626 3.928 5.660 5.489 4.929 5.354 5.945 4.758 4.574 4.428 4.752 5.201 4.367 4.119 5.127 5.121 4.280 3.758 + 5.318 5.006 6.248 7.150 6.277 6.056 5.349 5.244 6.234 5.926 5.805 5.047 3.606 3.147 4.389 4.087 3.493 4.168 3.869 4.517 5.504 5.751 6.263 4.895 5.418 4.785 4.030 4.273 4.437 4.173 4.787 4.283 4.755 5.193 4.809 3.704 + 7.121 6.227 5.638 7.692 8.127 7.470 7.139 7.043 6.130 6.378 5.385 4.618 6.776 6.220 5.321 4.906 3.470 4.633 3.806 4.890 4.800 5.088 5.329 5.222 4.561 4.687 5.168 4.960 4.615 4.995 5.700 5.339 5.565 5.465 5.856 3.975 + 5.191 6.696 6.642 6.884 7.003 6.335 6.347 5.470 5.035 5.282 6.633 6.989 6.694 5.282 5.458 5.354 3.146 4.064 4.422 4.885 4.814 5.917 5.684 4.468 4.218 4.444 5.197 5.071 3.817 3.176 4.454 4.714 5.204 4.935 4.601 3.365 + 8.169 6.435 6.853 6.926 5.673 6.056 7.484 7.290 6.128 6.560 7.007 5.659 4.544 5.456 5.327 5.546 5.105 4.052 4.353 4.524 4.611 4.910 7.036 6.257 4.765 5.512 4.808 4.343 4.650 4.794 4.335 5.055 5.141 5.061 5.068 3.594 + 10.039 9.937 9.287 7.960 7.050 6.493 6.126 7.406 7.505 6.341 6.707 5.988 5.555 6.190 6.292 5.594 5.416 4.528 2.926 4.295 5.089 5.314 5.592 5.511 5.290 4.966 4.825 4.594 4.510 5.455 5.045 4.919 4.987 5.231 5.611 5.281 + 7.975 8.164 6.693 5.854 5.941 6.649 6.649 5.998 6.453 5.081 5.573 6.724 5.262 6.275 5.825 4.429 4.667 5.489 4.687 4.536 4.814 4.937 5.377 5.600 4.969 5.248 5.075 4.354 5.215 5.272 5.235 5.722 5.908 5.365 5.605 5.334 + 4.632 5.071 6.400 5.610 5.380 4.923 5.756 5.507 6.168 5.556 5.530 5.022 4.689 4.759 3.949 4.155 4.113 3.654 3.667 4.612 4.996 5.527 5.161 4.201 4.747 4.766 4.828 5.027 5.515 5.623 4.996 4.894 5.761 6.562 5.337 5.159 + 5.194 4.489 4.734 5.768 6.323 4.139 3.942 4.975 5.631 5.265 5.531 4.942 5.039 3.848 2.890 3.493 4.150 2.679 2.857 4.706 5.447 4.771 5.469 5.005 3.917 5.253 4.957 4.677 5.085 5.370 5.188 4.779 4.992 4.595 4.833 5.070 + 4.299 5.837 5.963 6.256 5.057 4.169 3.456 5.660 6.086 4.171 5.133 5.514 3.764 2.152 3.662 2.955 4.423 4.786 3.485 3.991 4.925 4.774 4.483 4.511 5.051 4.586 4.322 4.128 4.583 5.291 5.332 5.202 4.465 4.769 5.383 4.529 + 4.773 4.945 4.380 6.364 6.200 5.181 5.187 4.049 4.651 4.620 5.445 5.770 3.912 3.989 4.135 3.947 3.832 4.304 4.141 4.346 4.765 4.745 4.835 4.671 4.818 4.277 3.945 5.311 4.860 5.086 4.997 5.636 5.763 5.019 5.368 4.166 + 5.125 5.103 5.121 5.423 5.545 4.771 5.869 5.373 4.908 4.867 5.840 5.159 2.076 4.015 3.708 3.925 4.043 4.563 3.977 4.019 4.569 4.899 4.628 4.786 3.997 5.125 4.911 4.941 5.148 5.032 5.399 5.435 5.583 4.702 5.481 4.994 + 4.580 3.397 3.791 5.716 4.596 4.393 5.149 5.519 5.279 5.917 5.096 4.292 4.782 5.136 5.034 4.479 4.443 4.859 4.633 4.770 5.269 4.825 4.785 3.812 3.529 5.020 5.091 4.686 4.531 4.496 4.982 5.057 6.493 6.341 6.252 5.923 + 6.284 4.622 4.435 5.519 5.820 4.437 5.185 4.799 4.485 5.203 4.403 3.434 3.941 3.535 2.182 2.659 2.757 3.134 2.553 3.471 4.449 3.558 4.263 4.020 4.650 4.183 4.546 4.808 4.254 4.491 5.131 5.051 5.526 5.231 5.658 5.121 + 6.046 4.941 3.641 4.708 4.430 4.371 4.616 4.323 5.189 5.242 5.078 3.743 2.773 2.937 2.513 2.487 2.427 2.623 2.784 3.613 3.645 2.972 3.834 3.283 4.378 3.982 3.633 4.435 4.825 4.279 4.662 4.520 4.587 5.304 4.700 4.906 + 3.545 5.963 5.908 5.860 5.568 4.172 3.805 3.367 5.348 4.867 4.526 4.647 4.391 5.070 4.112 3.048 3.152 3.682 2.792 2.703 3.484 3.647 4.071 3.847 3.986 4.152 3.556 4.158 3.882 4.073 4.453 4.839 4.560 4.464 4.447 4.076 + 5.067 5.715 5.514 4.233 2.077 4.205 5.242 4.301 4.853 3.985 3.589 3.115 2.443 3.614 2.598 3.221 4.014 2.911 2.731 1.555 3.086 4.137 3.942 4.048 3.843 4.157 3.801 3.849 3.814 3.653 4.509 5.144 4.021 4.297 4.452 3.471 + 4.197 5.229 5.858 4.767 4.049 4.373 3.799 3.016 4.294 3.474 3.291 1.470 2.122 2.475 1.023 1.408 2.986 1.996 1.177 1.603 3.443 4.072 3.465 2.727 3.286 4.125 2.861 2.892 3.481 3.233 3.839 3.923 3.061 3.365 2.984 2.344 + 4.739 5.811 5.359 4.480 4.772 5.418 5.289 4.417 4.431 4.036 3.582 2.929 2.563 2.491 1.948 2.175 2.692 3.197 1.891 2.610 3.331 2.057 2.097 3.525 3.793 3.832 3.657 2.699 4.199 4.311 4.339 3.811 3.696 3.674 4.049 2.689 + 4.764 5.180 4.653 4.253 4.150 6.018 5.350 4.326 4.589 4.018 3.859 3.571 2.610 3.649 3.087 2.680 2.383 2.104 1.637 2.714 2.726 3.452 3.885 3.708 2.886 2.876 2.976 3.312 3.263 3.866 3.517 2.916 3.734 3.536 3.801 3.057 + 2.647 1.856 3.759 5.386 4.749 3.277 3.933 3.858 4.110 4.038 3.260 4.339 3.437 3.605 4.414 3.206 4.363 3.547 2.505 2.198 3.512 3.246 3.340 2.213 2.884 3.519 2.538 2.983 2.653 3.871 3.547 3.456 3.252 3.576 3.406 2.105 + 2.999 1.990 3.686 5.410 4.785 3.667 2.976 3.112 4.002 3.755 2.985 2.996 3.014 1.821 2.522 3.440 3.392 3.397 2.519 2.562 3.956 2.776 3.361 2.992 3.009 2.645 2.569 2.849 2.890 3.315 2.934 3.170 2.872 2.823 2.719 2.113 + 3.778 4.762 5.466 3.805 4.462 3.856 2.981 1.636 3.777 3.453 2.420 3.186 3.708 3.128 3.065 3.591 3.403 3.292 3.602 3.010 3.303 3.425 4.657 3.677 3.622 3.018 3.053 3.027 2.687 3.496 2.415 2.499 2.873 2.722 2.460 1.880 + 3.118 3.782 5.264 4.609 4.882 4.693 3.918 2.355 2.137 1.343 3.457 3.294 2.308 1.730 1.886 2.058 3.279 3.022 2.668 2.745 3.991 4.049 3.189 3.127 2.590 2.897 2.954 2.885 3.677 3.418 2.852 2.206 2.500 2.633 2.495 1.598 + 4.965 5.185 3.707 0.920 2.034 2.509 3.496 3.655 1.509 2.295 3.159 1.769 0.576 1.226 0.774 1.481 1.879 2.213 1.771 1.320 1.759 2.447 3.172 2.896 2.306 1.760 1.580 1.983 2.262 2.363 2.436 1.353 2.116 2.355 2.241 1.562 + 5.137 4.109 3.946 2.889 2.204 1.588 2.669 2.567 1.847 4.059 3.396 2.835 2.253 1.226 0.910 0.718 1.298 1.947 1.606 2.087 2.751 2.463 2.222 2.317 2.674 1.375 1.571 1.520 2.407 2.865 1.703 2.062 1.671 2.401 2.248 1.007 + 2.692 4.316 4.801 3.919 2.109 2.179 2.022 1.607 1.492 4.635 4.411 2.864 2.329 2.376 2.381 1.372 1.903 2.126 3.037 2.519 3.063 3.336 3.351 3.062 2.974 1.563 1.438 1.956 2.234 2.389 1.843 2.242 2.446 2.422 1.834 2.121 + 3.757 3.955 3.437 3.521 2.930 2.265 2.106 2.720 2.795 3.894 3.041 2.580 2.405 2.910 1.680 1.861 1.826 2.485 1.354 1.997 2.110 3.417 2.963 3.012 2.596 2.727 1.345 1.377 2.275 2.387 1.818 2.267 1.856 2.885 2.730 1.728 + 2.245 2.943 3.878 2.017 4.165 3.675 2.627 1.695 2.119 1.982 3.310 2.905 1.893 1.880 1.893 1.332 0.727 1.135 0.871 1.428 3.122 3.548 2.826 1.265 2.042 2.701 2.247 1.696 2.118 2.868 1.962 2.653 2.186 1.861 2.016 1.167 + 2.649 4.603 4.963 5.001 4.248 3.904 3.383 1.790 2.075 2.266 4.402 3.480 2.377 3.259 2.796 0.683 0.748 1.951 1.434 1.877 2.263 2.275 2.734 1.771 1.604 2.312 1.877 1.268 1.134 1.597 2.221 2.089 1.683 1.751 2.151 1.075 + 3.523 4.663 4.359 4.905 4.202 2.395 2.904 3.052 2.362 1.790 2.635 1.281 2.186 2.438 1.565 1.631 1.860 1.328 1.176 1.430 1.996 2.493 2.749 1.760 1.316 1.286 2.878 1.839 1.794 2.273 2.050 1.895 1.909 2.444 2.028 0.962 + 2.494 3.262 3.540 4.099 4.213 2.077 1.975 1.981 0.440 0.975 1.317 0.674 1.094 2.565 2.036 0.894 0.478 0.769 0.560 2.351 2.236 2.816 2.638 3.183 3.145 1.162 1.696 2.007 1.871 1.646 1.548 1.817 2.250 2.187 2.528 2.143 + 2.144 4.079 3.357 1.584 2.353 2.216 2.363 2.125 1.904 3.032 1.933 1.013 1.004 1.636 0.729 -0.172 0.952 1.921 2.112 1.445 1.846 3.564 3.294 3.466 3.773 2.623 2.570 2.864 2.850 2.722 2.428 2.509 3.189 2.876 2.598 2.052 + 4.162 3.730 4.031 4.516 2.915 2.661 4.427 4.674 3.322 4.514 4.328 3.014 1.037 2.210 2.039 1.920 2.380 3.024 2.544 2.341 2.255 2.551 3.150 3.070 2.776 2.625 3.085 2.314 2.890 2.892 2.543 3.124 4.104 3.634 2.590 1.607 + 5.963 5.658 4.882 5.025 5.516 4.183 4.557 5.747 4.558 4.920 4.313 2.992 3.396 3.934 3.723 1.874 1.339 2.051 1.737 1.976 2.741 2.058 3.232 3.413 3.282 3.533 3.316 3.324 3.792 3.939 2.799 2.535 3.053 2.665 2.223 1.303 + 7.140 8.512 7.840 6.677 6.545 7.475 7.563 5.473 5.690 6.474 5.128 4.499 4.290 4.310 3.106 2.544 2.520 2.147 2.672 3.307 3.589 4.751 5.604 6.213 5.733 5.646 6.397 5.761 5.447 5.003 5.402 5.368 5.945 4.531 4.242 4.006 + 7.106 7.305 7.379 5.523 6.374 6.561 7.269 6.630 5.202 3.886 5.102 4.222 2.582 3.180 3.427 3.035 3.544 3.329 3.145 4.652 4.458 5.196 6.910 7.076 6.860 6.491 6.977 6.813 5.496 5.211 5.095 4.200 5.228 5.048 4.465 3.240 + 7.083 7.853 7.141 5.196 5.944 7.637 7.968 5.614 4.013 3.827 5.120 4.427 2.933 3.674 3.486 4.317 3.844 3.907 3.428 5.415 5.228 6.190 7.784 7.710 7.572 7.492 7.905 8.086 6.658 5.784 5.222 5.757 5.788 4.982 4.308 3.808 + 6.376 6.720 7.268 7.732 7.788 6.628 8.489 7.763 5.926 6.492 4.837 4.616 4.437 4.363 4.833 4.980 4.078 4.232 4.995 5.404 5.119 6.666 8.517 7.326 6.895 6.919 6.913 7.495 6.972 5.093 6.138 6.267 6.285 5.461 4.698 4.194 + 9.920 9.919 9.498 7.776 6.783 7.811 8.214 6.890 8.211 8.333 6.065 5.677 5.132 4.171 4.684 4.443 4.648 4.346 5.854 5.329 5.187 7.397 8.532 7.906 7.503 7.284 7.852 8.514 6.706 4.936 6.002 6.540 6.219 6.012 5.738 5.744 + 11.704 11.285 10.830 10.055 10.398 10.551 10.184 9.129 7.273 7.532 8.251 7.947 7.571 7.072 6.497 5.446 4.549 4.764 5.142 4.952 5.444 5.715 6.977 6.442 7.078 7.243 7.190 7.615 6.728 5.455 5.600 5.298 5.899 5.742 6.442 5.422 + 10.510 11.263 10.532 9.690 9.945 10.428 10.649 8.254 8.201 8.586 7.980 8.096 7.807 7.673 7.062 6.381 6.120 6.569 6.741 5.828 5.718 7.423 7.500 6.405 8.014 8.538 7.741 8.230 7.015 6.077 7.053 7.318 7.702 5.852 6.219 5.186 + 10.867 10.376 10.274 9.869 10.977 11.394 10.183 8.696 7.453 8.790 8.711 7.605 8.370 8.076 7.417 7.754 7.817 8.452 8.534 7.574 6.679 7.682 7.313 7.524 8.297 8.755 7.651 6.851 6.229 6.584 6.448 7.095 7.257 6.987 6.819 5.625 + 11.818 12.110 11.865 11.948 11.900 11.985 11.047 8.631 7.943 8.498 9.165 7.684 8.645 8.489 8.500 8.453 8.509 8.702 8.241 7.017 7.353 7.812 7.075 7.856 8.900 8.326 7.389 6.291 6.101 6.893 7.297 7.772 7.644 7.157 6.359 6.138 + 6.801 7.308 7.479 8.698 8.083 9.422 9.033 6.767 6.901 6.981 7.183 5.708 5.296 5.703 5.778 6.405 5.799 6.506 8.096 8.267 7.293 6.419 6.294 7.127 7.579 7.249 6.500 7.467 6.849 7.525 6.981 7.033 7.404 7.446 7.276 6.531 + 7.490 6.593 5.676 7.038 7.580 7.930 7.531 7.475 7.202 7.528 7.652 6.733 6.808 7.085 7.336 7.633 8.005 7.472 7.440 8.396 8.821 8.191 8.280 9.463 10.074 9.343 7.876 8.128 7.860 7.788 8.893 8.822 9.563 9.624 9.378 8.472 + 6.919 6.654 7.343 6.553 6.174 8.422 7.461 6.701 7.019 6.606 5.772 5.675 5.599 5.961 5.404 5.900 6.953 6.856 6.853 7.103 7.638 6.838 6.642 8.203 8.694 8.221 7.165 7.122 7.233 7.962 8.274 7.426 8.308 8.802 8.473 7.373 + 6.936 7.051 7.227 6.469 6.613 8.409 7.295 2.824 2.971 3.422 4.087 4.613 4.516 3.979 4.415 5.045 5.747 5.622 6.846 7.225 6.091 6.246 5.895 6.750 6.704 6.832 7.215 7.192 7.952 7.561 8.103 8.475 8.378 8.411 7.683 6.530 + 8.374 8.845 7.672 5.961 7.198 7.300 7.657 5.644 5.971 5.753 4.626 5.328 6.196 5.029 4.944 5.881 6.097 6.291 6.776 6.722 6.726 7.226 8.024 7.610 7.936 7.487 6.990 7.748 8.383 9.075 9.056 9.073 8.911 9.369 8.813 8.361 + 6.714 9.000 9.013 6.942 6.724 7.347 6.308 6.342 6.622 7.131 5.791 5.057 5.681 5.074 4.632 5.259 5.922 5.714 5.436 5.847 6.680 5.745 5.620 6.037 6.211 6.908 6.438 6.030 7.424 9.024 8.383 8.338 8.727 8.176 7.820 7.694 + 5.940 6.318 7.533 6.992 7.868 7.600 5.630 6.252 6.317 5.692 5.478 4.872 4.983 4.488 4.932 5.195 4.672 3.942 5.980 6.356 5.687 6.407 6.015 6.314 6.234 6.137 6.235 6.953 7.246 8.302 7.949 8.230 8.707 8.022 7.033 6.521 + 6.062 6.488 6.957 7.432 6.395 5.031 5.695 4.712 3.330 4.207 3.913 4.932 4.832 3.988 3.454 3.770 4.004 3.415 4.668 4.304 4.660 4.776 5.819 5.682 5.376 6.256 6.534 5.896 6.167 6.600 7.180 7.156 7.675 7.243 6.888 5.752 + 4.863 6.005 4.884 5.852 4.848 5.626 5.947 4.380 2.808 4.155 4.558 3.201 2.659 2.792 4.330 4.067 2.503 4.290 4.559 4.241 4.421 4.013 4.374 3.574 4.954 3.780 4.810 5.171 5.352 5.076 5.669 5.083 4.964 5.633 5.212 4.257 + 8.661 8.391 7.455 6.095 6.490 4.460 4.131 3.391 3.464 4.122 4.186 4.633 4.557 4.431 5.073 4.742 3.768 4.073 5.006 4.905 4.137 3.173 3.301 3.579 4.536 3.784 4.748 5.173 5.068 5.525 4.736 5.018 5.017 5.688 5.404 4.553 + 6.854 6.300 7.149 5.513 5.872 4.796 3.765 3.568 4.261 4.312 4.634 2.819 3.559 4.404 3.521 3.683 4.167 3.499 4.410 4.352 3.242 4.299 3.915 4.460 4.028 4.179 4.583 4.401 4.427 4.773 5.156 4.495 5.229 5.708 5.353 3.437 + 3.633 5.471 6.711 6.101 4.984 2.714 2.783 4.396 3.420 4.715 4.420 3.313 2.978 2.774 3.511 3.769 4.549 3.437 4.448 3.850 3.273 4.344 4.882 4.555 4.397 4.482 4.727 4.694 4.619 4.763 5.059 4.253 4.774 5.192 5.196 3.954 + 5.773 5.420 7.721 8.140 8.471 7.572 5.335 7.163 7.203 6.541 4.637 4.503 5.688 4.889 5.317 5.937 5.063 5.182 5.509 5.401 4.468 4.346 4.972 3.942 3.795 4.384 4.909 5.021 4.534 4.813 5.058 4.761 4.927 4.464 5.386 3.848 + 9.124 8.711 8.697 9.524 9.518 9.196 9.044 8.802 8.447 7.128 4.152 5.944 6.027 5.360 4.721 5.749 5.062 4.442 4.794 4.615 3.603 3.753 3.390 3.847 3.856 3.794 4.324 4.609 3.932 3.787 4.384 4.651 4.093 4.320 5.509 3.554 + 6.505 5.992 4.230 5.111 4.149 5.064 5.111 4.599 2.946 3.046 1.316 3.401 2.553 3.467 3.220 2.761 3.949 3.380 2.285 3.216 3.428 2.938 2.638 3.042 4.107 3.934 3.659 4.064 4.726 4.418 4.346 5.585 4.420 5.220 6.345 5.004 + 3.284 3.529 1.814 2.876 4.139 5.036 4.259 4.186 4.555 3.640 1.901 3.931 2.915 4.257 4.606 3.140 2.678 3.572 2.641 3.210 3.364 4.623 3.308 2.647 4.340 4.402 3.659 4.438 5.032 3.859 3.739 4.290 4.531 4.453 5.003 3.755 + 4.836 3.324 3.511 3.745 3.871 4.203 4.109 5.224 4.726 3.611 2.567 4.114 3.512 2.935 3.692 3.106 2.977 2.336 3.869 3.144 3.735 3.489 3.061 3.472 4.249 4.542 4.247 4.313 4.985 4.261 3.910 3.838 4.047 4.002 5.372 3.966 + 4.488 3.484 2.788 2.402 2.401 3.932 4.410 3.745 2.603 3.396 1.584 1.496 2.353 3.397 3.330 2.707 3.239 2.281 3.151 3.311 3.445 3.559 3.809 3.209 3.166 3.562 3.395 3.359 3.093 3.937 3.625 3.231 4.244 3.766 4.357 3.544 + 4.886 4.081 3.634 3.762 3.645 3.893 3.905 3.528 3.456 3.679 3.214 2.001 2.325 2.995 3.180 2.082 2.145 2.461 2.915 3.579 3.453 3.462 3.278 4.023 4.159 4.373 3.195 3.220 3.734 4.248 3.582 3.882 3.950 4.114 4.951 4.215 + 4.525 4.019 3.378 4.411 5.047 4.005 3.939 2.364 3.049 3.155 2.376 1.972 2.064 3.199 3.374 2.374 2.544 2.775 3.332 3.045 3.948 3.310 3.079 4.430 3.965 4.059 3.360 3.641 3.695 4.440 4.064 3.626 4.479 3.357 4.807 4.477 + 5.397 5.143 4.987 5.085 5.102 5.121 5.709 3.819 1.733 3.388 3.179 3.097 3.034 2.863 3.234 1.799 2.277 1.925 2.963 3.192 3.206 2.952 2.962 2.971 3.277 3.664 3.135 2.516 2.236 2.961 2.826 3.017 2.914 3.712 2.925 2.046 + 2.566 5.148 5.636 4.349 3.060 4.661 4.528 3.535 3.571 3.058 1.954 3.464 3.067 2.817 3.405 3.139 2.499 1.331 1.900 3.038 3.518 3.145 2.892 2.995 2.655 3.038 4.394 4.176 2.974 3.435 3.181 3.254 2.914 3.346 3.109 2.485 + 4.862 5.175 3.882 2.312 2.362 3.515 3.297 3.440 3.630 3.154 3.015 3.647 4.308 3.495 2.870 1.268 1.523 2.653 2.482 1.898 3.243 2.280 3.388 3.226 3.221 3.811 4.027 4.431 3.390 4.019 3.637 3.192 3.270 3.192 2.722 2.198 + 3.967 3.934 3.838 3.625 3.572 4.585 5.240 4.791 3.945 3.066 2.915 2.324 2.947 3.717 2.484 2.296 2.856 2.637 3.284 2.978 3.693 3.356 3.708 3.465 3.110 4.131 3.942 3.605 3.335 3.556 3.891 3.583 3.537 2.732 3.485 3.212 + 5.338 6.219 5.484 4.442 5.060 5.090 4.892 3.786 4.312 2.942 2.957 2.245 2.563 2.849 3.175 2.684 2.316 1.865 2.393 3.198 2.157 1.671 2.468 3.102 3.162 3.762 3.683 3.252 3.496 3.496 3.249 3.323 3.453 3.456 3.301 2.809 + 4.454 4.105 3.374 4.182 3.194 4.785 3.996 3.444 2.759 3.276 2.748 3.214 2.715 2.598 1.505 1.469 0.499 0.893 1.151 2.867 2.875 1.167 1.645 2.330 2.210 2.331 2.522 2.614 3.213 2.772 2.085 2.164 2.824 3.211 3.139 2.370 + 4.100 4.941 4.264 3.855 3.348 3.960 4.701 4.179 3.065 3.070 2.564 3.042 3.436 3.050 2.161 0.946 0.800 0.491 1.974 2.413 2.612 2.476 2.175 2.085 2.320 1.529 2.069 2.758 2.675 2.810 2.730 2.671 3.419 3.076 3.463 2.753 + 5.324 3.857 3.335 1.885 2.917 4.215 3.754 3.122 2.481 3.255 3.347 3.153 1.257 1.539 1.634 1.198 1.689 1.197 2.025 3.714 3.395 2.714 2.065 1.023 2.189 2.725 2.929 2.962 2.985 3.256 3.905 3.510 3.504 3.494 3.867 3.004 + 5.053 4.443 4.651 5.262 4.997 4.061 3.024 2.826 3.124 4.113 3.998 2.325 2.418 3.044 2.814 1.250 1.895 2.236 1.589 1.693 1.200 2.053 2.850 3.201 3.142 3.369 1.120 1.845 2.926 2.638 2.979 3.629 2.944 3.399 3.352 2.791 + 3.882 4.909 4.178 4.762 4.925 4.671 4.571 3.121 2.599 3.155 4.435 3.576 3.737 3.884 4.269 2.242 1.860 1.310 1.554 0.618 0.899 1.795 2.119 2.416 2.763 3.050 1.596 2.583 3.057 2.856 2.976 3.199 3.349 3.340 2.867 2.878 + 5.153 5.432 4.144 4.809 5.075 3.892 4.058 3.759 3.278 3.876 4.009 3.002 2.605 2.151 1.522 1.705 2.498 1.793 1.642 2.180 2.187 2.170 0.909 2.027 2.986 2.768 2.029 3.675 4.445 4.080 3.986 4.652 5.302 4.998 4.341 4.707 + 4.684 3.569 4.384 5.102 4.300 3.774 4.094 3.588 1.801 2.820 2.928 2.200 1.359 0.931 2.431 2.085 1.724 1.865 3.387 3.551 2.452 2.379 2.029 2.044 2.876 2.423 3.122 3.947 4.224 4.306 5.154 5.013 5.036 5.326 5.457 5.010 + 4.466 3.722 3.520 3.472 3.038 4.064 3.607 1.953 0.891 2.047 2.176 2.687 1.587 2.359 2.656 2.536 3.304 2.978 3.526 3.168 2.247 2.621 2.484 1.462 2.881 3.287 2.774 3.370 4.528 5.425 5.410 5.800 5.277 5.714 5.769 4.638 + 3.098 4.614 4.743 4.143 4.056 4.562 3.954 1.067 0.994 2.116 2.652 2.928 1.699 2.214 2.542 2.132 2.559 3.558 3.731 3.079 2.719 2.339 3.587 4.048 4.448 4.101 3.459 3.982 4.349 5.550 6.475 5.785 5.573 5.581 5.274 4.620 + 5.175 4.025 3.413 2.527 2.251 3.877 4.295 3.305 3.308 1.303 1.808 1.404 2.366 2.997 3.236 2.226 2.538 3.521 2.903 2.849 3.685 4.207 3.380 4.478 4.685 4.509 3.920 4.312 5.745 4.758 5.995 6.005 6.319 5.433 4.989 4.271 + 5.713 5.182 4.303 3.553 2.693 2.836 4.044 3.674 2.884 2.840 3.434 2.684 2.074 3.032 3.539 3.184 3.223 4.298 3.539 3.229 4.364 4.686 4.660 5.331 5.443 4.947 6.504 5.675 5.894 5.556 5.924 6.486 6.791 6.604 6.868 6.011 + 3.441 2.767 2.814 3.552 4.263 3.247 4.194 3.172 2.519 2.655 2.456 3.398 4.072 4.310 3.798 4.116 4.816 4.788 4.533 3.653 4.969 5.502 6.094 5.327 5.043 5.225 5.796 6.416 6.600 6.207 5.799 6.269 6.952 7.458 7.146 6.430 + 3.274 4.026 3.759 3.699 3.939 4.040 3.392 2.766 3.013 3.886 4.271 3.657 2.560 3.451 3.473 4.031 4.652 3.350 2.705 3.466 4.969 4.696 4.924 4.929 5.416 4.754 5.101 5.425 6.196 6.057 5.089 5.095 5.248 5.662 5.248 4.335 + 1.082 2.926 3.194 3.391 2.847 1.965 2.090 1.455 2.611 2.684 3.921 2.377 2.018 3.037 2.571 3.162 3.167 2.574 3.220 3.652 3.493 3.957 3.898 5.147 4.773 4.672 5.169 5.101 5.222 4.414 4.984 4.335 4.586 4.495 4.136 2.986 + 3.352 1.621 2.211 2.984 4.184 3.916 5.604 5.352 4.860 4.525 4.130 3.321 2.726 2.063 2.410 2.279 3.214 2.069 2.930 4.742 4.811 4.205 3.738 4.710 5.064 4.805 5.259 5.075 5.111 4.048 4.854 4.389 4.230 4.533 3.381 2.171 + 4.721 3.876 5.050 4.440 5.033 5.083 5.799 5.037 3.359 4.644 5.203 5.243 2.806 1.284 1.367 0.825 1.053 2.039 2.405 2.623 3.484 1.749 2.719 3.571 2.601 1.463 2.677 2.052 1.930 2.333 2.806 2.453 2.980 2.610 2.374 1.741 + 3.994 4.449 4.047 3.762 2.686 3.108 3.524 2.464 2.087 2.273 3.801 3.096 2.588 2.737 1.578 0.923 1.684 2.301 2.831 1.321 2.702 2.100 3.000 2.676 2.678 2.350 3.559 3.236 4.069 4.474 3.612 4.025 4.177 2.680 2.624 2.968 + 6.837 6.616 5.929 5.987 5.267 5.629 6.366 6.030 5.417 5.155 3.461 4.193 4.392 3.505 3.301 2.353 2.088 1.804 2.186 1.703 2.519 1.202 1.974 2.605 3.197 3.609 4.638 4.036 5.112 4.675 3.934 4.093 3.955 2.703 2.734 2.192 + 8.274 8.527 6.739 5.827 6.013 5.834 6.935 6.526 6.419 6.065 5.450 5.980 5.418 4.734 3.886 2.826 3.070 1.951 2.319 2.040 1.837 2.032 1.832 3.334 3.162 3.246 4.112 4.498 4.797 4.421 2.942 3.772 4.417 3.203 3.371 2.864 + 8.753 8.905 7.034 6.724 6.766 6.568 6.823 7.442 6.618 5.427 6.306 6.245 5.594 4.988 3.126 2.881 3.115 3.396 2.763 2.556 2.965 3.719 3.414 3.707 4.458 4.597 4.223 3.964 4.516 3.816 4.214 4.070 4.260 4.560 2.954 2.126 + 8.176 8.112 8.011 7.092 6.770 6.495 6.616 7.869 7.284 7.123 7.058 6.639 6.030 6.554 5.855 5.011 3.837 3.781 3.864 3.689 3.872 4.507 4.900 3.779 5.472 5.288 5.118 6.158 5.975 5.569 5.473 4.939 5.215 4.861 4.288 3.867 + 8.892 9.393 7.956 8.472 8.369 8.517 8.287 7.549 6.725 7.358 7.068 6.765 5.520 6.415 6.524 6.168 4.749 5.224 5.124 4.335 5.753 5.491 5.880 5.690 7.568 6.981 7.399 6.619 6.504 6.028 5.999 6.203 5.742 5.632 6.637 5.034 + 9.206 8.182 8.636 7.341 8.779 8.918 8.751 7.188 7.729 7.285 7.220 7.598 6.344 6.710 7.095 7.579 6.584 6.492 6.686 5.904 6.671 6.889 6.665 7.624 7.543 7.025 7.803 7.725 6.704 6.835 6.607 6.346 6.350 6.491 7.399 5.892 + 8.544 8.675 7.681 7.446 8.154 6.768 7.444 8.174 6.826 7.204 7.657 7.533 6.882 6.960 6.029 6.292 6.071 6.132 5.932 6.128 6.551 5.055 6.049 6.407 6.138 6.895 7.308 6.838 7.382 7.110 7.004 7.043 7.251 7.197 6.777 6.036 + 8.916 8.331 7.004 6.505 7.556 6.673 6.937 7.979 7.303 7.149 7.425 7.696 7.112 7.349 6.159 6.031 5.811 6.048 6.983 6.151 6.105 4.109 4.918 5.127 6.479 7.720 7.415 5.982 6.638 7.268 6.555 6.581 6.853 6.455 6.226 5.032 + 8.582 8.568 7.878 6.702 7.301 8.334 7.497 7.406 7.773 7.135 7.090 7.326 7.348 7.542 6.653 5.896 6.049 6.532 6.319 6.523 6.856 5.811 5.404 5.706 6.903 7.393 6.837 6.450 6.647 6.429 6.386 6.304 6.539 5.750 5.257 3.974 + 9.553 8.461 8.045 9.193 8.868 7.669 7.533 7.038 7.732 6.438 7.580 7.102 6.874 7.586 6.903 6.676 5.708 6.734 5.297 5.075 6.756 6.434 5.607 7.155 7.505 7.683 7.102 6.365 6.443 6.387 5.995 6.901 6.907 6.752 6.631 4.979 + 7.776 8.302 6.721 7.784 7.871 6.440 7.373 8.132 7.335 4.865 4.836 3.174 3.725 5.330 5.176 4.367 4.894 5.910 6.306 6.388 6.351 6.191 5.148 6.938 7.490 6.601 7.110 6.482 6.832 6.990 6.615 6.701 6.095 6.641 6.651 4.461 + 5.801 5.564 3.789 4.041 5.214 8.144 9.295 8.541 7.774 6.260 5.458 4.617 6.132 6.559 5.156 4.160 6.116 7.158 7.685 7.135 6.568 7.032 6.311 8.373 8.927 8.012 8.560 7.825 7.555 8.723 8.392 9.381 8.575 8.595 8.875 7.823 + 8.787 8.804 7.880 6.874 5.873 8.693 9.064 7.704 7.821 8.380 6.758 7.184 6.655 6.726 6.918 6.738 6.493 7.381 7.659 5.799 7.413 7.688 7.698 7.944 8.294 8.033 8.139 8.122 9.112 9.836 8.858 8.997 9.318 8.456 8.887 8.087 + 7.767 8.895 7.989 7.234 9.615 9.942 8.190 8.050 7.573 7.950 6.460 6.608 6.993 6.578 6.923 7.324 5.853 7.151 6.492 7.540 7.601 7.939 7.809 7.878 8.622 8.740 8.076 8.400 8.944 9.060 9.026 8.000 8.813 8.682 8.552 7.834 + 8.585 7.733 7.016 6.911 9.009 9.058 8.005 8.389 6.668 6.519 6.366 5.979 6.752 7.898 6.971 7.883 7.667 7.199 6.317 7.342 8.175 8.044 8.132 8.445 9.262 9.315 9.366 9.998 9.449 8.997 8.328 8.423 9.114 9.021 9.204 8.219 + 7.773 7.711 6.894 6.200 5.646 8.540 8.848 7.768 7.496 7.108 5.638 6.825 7.948 6.556 7.378 8.068 6.269 7.556 7.729 7.348 7.527 7.726 8.230 9.098 9.335 9.262 9.431 9.811 9.197 9.367 8.558 8.755 8.366 8.781 9.133 7.390 + 4.430 5.857 6.542 5.939 6.087 8.814 8.812 7.325 7.660 6.984 6.956 6.687 6.933 7.339 6.920 7.506 6.752 6.504 6.615 6.179 5.761 6.563 9.360 8.521 8.589 8.837 9.320 8.783 8.130 9.202 9.289 8.539 8.070 8.459 8.278 8.290 + 6.970 6.198 6.557 7.231 8.387 8.266 8.313 7.706 7.431 6.864 6.775 6.795 6.951 7.467 6.984 7.955 7.625 7.155 7.343 7.085 6.854 8.122 8.887 8.369 8.848 10.265 10.498 9.235 8.556 8.598 8.561 9.204 8.589 8.215 8.565 7.768 + 5.714 6.172 5.908 6.508 8.446 9.890 9.094 7.696 8.136 7.148 7.599 7.380 7.605 6.443 5.875 6.716 7.552 6.502 6.717 7.837 7.762 8.382 9.175 8.476 8.979 10.268 10.533 9.484 9.693 7.888 8.372 8.343 8.822 9.050 8.310 8.553 + 4.778 3.878 4.908 5.158 6.645 7.551 7.679 8.719 7.365 5.990 6.209 7.093 7.191 6.016 6.196 6.652 6.937 6.161 6.273 5.971 7.677 8.262 9.026 8.138 9.271 10.017 10.283 8.719 9.351 7.947 7.519 7.704 8.209 7.833 8.043 7.640 + 5.277 5.825 6.623 6.225 5.653 5.596 7.434 7.128 5.832 5.617 5.329 6.666 6.729 5.795 6.788 6.671 6.891 6.717 5.904 4.440 6.341 8.046 7.857 9.024 8.611 8.526 9.371 8.065 8.293 7.795 7.246 6.626 7.702 8.519 8.665 8.226 + 5.963 4.360 4.969 5.028 5.045 6.835 6.356 6.091 5.415 5.984 6.007 6.140 6.323 6.444 6.135 6.667 6.499 5.801 6.196 6.920 7.150 8.867 8.417 8.845 8.682 8.642 9.061 8.378 7.667 6.907 6.560 7.153 7.304 7.642 8.359 7.675 + 3.843 3.099 3.760 4.184 5.562 6.470 5.876 5.907 4.368 5.625 6.328 5.913 5.980 6.554 6.501 6.867 5.092 6.637 6.492 7.202 7.075 8.211 9.533 9.855 9.398 10.134 9.764 9.428 8.715 7.829 6.982 7.469 7.829 8.179 8.575 8.395 + 1.951 2.047 2.277 3.668 4.201 5.016 5.906 4.859 3.824 3.319 2.752 4.444 5.038 6.240 6.398 6.856 6.852 6.573 8.042 7.502 7.531 8.116 7.932 9.475 7.885 8.022 9.350 9.499 8.425 7.095 6.593 7.950 8.520 8.432 7.970 8.375 + 3.165 3.183 4.344 5.162 4.329 5.928 5.818 5.718 4.668 3.226 3.115 4.571 5.378 5.967 6.409 6.297 7.124 6.105 7.553 7.330 6.637 6.985 8.282 7.605 7.468 7.687 8.666 8.321 8.039 6.775 6.845 7.663 7.935 7.675 7.108 6.630 + 3.583 3.973 3.988 4.586 5.896 6.224 4.363 3.773 4.041 2.084 1.931 4.869 5.021 6.385 6.907 6.359 6.820 6.103 4.911 6.359 6.469 5.620 6.862 6.660 7.633 7.794 7.344 6.976 7.144 6.250 6.931 6.841 6.924 6.589 6.060 5.748 + 4.594 4.539 4.461 4.197 4.978 5.145 6.665 6.701 5.806 6.111 6.036 5.728 5.983 4.732 4.647 4.183 5.534 5.371 4.745 4.960 5.530 4.944 5.466 5.270 5.679 5.920 5.914 6.086 4.813 5.147 4.379 4.884 5.319 4.048 4.305 4.365 + 4.533 4.881 4.065 5.304 4.682 5.621 6.013 5.872 5.721 5.624 5.535 5.335 5.446 3.954 4.349 4.020 2.933 2.135 3.239 2.496 2.257 2.853 4.073 3.983 5.263 4.572 4.281 5.130 4.955 4.592 4.214 4.345 4.711 4.178 3.951 3.729 + 5.166 6.016 5.411 7.605 7.985 7.871 7.961 6.437 5.601 5.488 5.525 4.233 3.364 5.202 4.418 4.451 3.813 3.214 4.601 3.890 3.505 2.755 3.165 3.361 3.209 3.417 3.204 3.952 3.798 3.704 2.952 3.743 3.428 3.607 2.736 1.913 + 7.754 7.526 7.049 8.110 10.306 9.648 9.754 9.075 8.378 7.452 7.695 7.883 7.411 7.598 7.314 7.396 8.280 7.962 6.606 5.495 5.252 4.660 4.982 4.930 5.309 6.729 6.153 4.953 6.090 5.520 3.621 3.658 3.652 3.400 3.456 1.668 + 7.723 8.295 7.421 8.275 10.894 10.629 10.716 9.669 9.171 7.883 8.393 8.444 8.391 8.192 7.979 8.616 9.839 9.460 7.250 5.939 5.630 5.323 5.399 5.839 6.756 7.858 6.959 5.812 6.842 6.572 3.950 3.783 3.664 2.998 2.698 1.512 + 8.105 8.661 7.576 8.379 10.951 10.591 10.750 9.873 9.497 7.754 8.353 8.679 8.581 8.270 8.040 9.208 10.132 9.536 7.546 5.572 5.339 5.771 5.389 6.415 7.481 8.617 7.604 6.709 7.445 6.908 4.836 5.415 5.187 3.256 3.655 3.039 + 8.278 8.849 7.642 8.445 10.997 10.508 10.622 9.732 9.323 7.588 7.981 8.573 8.486 8.034 7.785 9.404 9.887 8.950 7.169 5.793 5.531 5.037 5.322 6.509 7.575 8.636 7.382 6.814 7.344 5.944 4.156 4.537 4.214 3.009 3.020 2.678 + 8.406 8.948 7.546 8.450 11.117 10.787 10.533 9.414 8.964 6.960 7.459 8.390 8.323 7.616 7.195 9.370 9.721 8.335 6.449 5.327 5.333 4.932 5.303 6.250 7.265 8.009 6.723 6.705 7.166 4.465 3.165 4.026 4.162 2.856 2.933 2.643 + 8.761 8.840 7.819 8.597 10.999 10.459 9.577 8.852 8.262 6.590 6.729 8.253 7.937 7.116 6.612 9.146 9.344 7.459 5.736 4.892 5.242 5.282 5.162 6.011 6.568 6.984 6.196 6.197 6.624 4.215 3.501 4.245 4.641 3.332 3.685 2.628 + 8.634 8.635 7.545 8.914 10.653 9.556 7.635 8.154 7.212 5.640 6.458 7.668 7.052 7.110 6.697 8.480 8.750 6.494 6.250 5.831 4.750 4.123 4.784 5.891 6.610 6.821 5.824 5.263 6.145 3.965 3.112 4.446 4.783 3.280 3.417 2.565 + 8.426 8.417 7.744 8.402 9.380 7.866 7.081 5.077 5.832 6.242 6.429 6.158 4.963 6.032 4.859 5.892 6.270 5.649 5.359 4.030 3.279 4.272 4.436 5.022 6.425 6.018 4.231 4.143 4.203 3.553 3.076 3.123 3.142 3.018 3.811 2.916 + 8.207 7.599 7.120 7.401 7.240 5.529 6.868 5.859 3.596 3.864 4.373 4.909 4.200 4.189 4.619 4.209 4.861 5.171 4.178 4.436 3.605 3.309 3.104 3.815 5.154 5.654 3.809 4.424 4.135 3.591 3.114 3.322 3.923 2.901 3.760 3.177 + 7.434 6.347 5.129 5.707 7.095 7.599 7.863 6.401 3.817 4.329 4.948 4.256 3.411 4.318 4.238 4.222 4.748 4.471 4.779 3.731 2.310 3.555 3.450 1.869 2.797 3.573 3.630 3.663 3.851 3.412 3.254 3.917 4.135 2.684 3.904 3.921 + 7.080 6.142 4.729 5.635 6.715 6.500 7.604 5.449 4.103 2.904 3.694 3.927 2.384 2.104 2.724 3.909 4.691 4.352 3.607 3.960 3.186 3.278 2.964 2.323 3.951 3.495 3.364 3.820 3.631 3.046 2.781 3.141 3.706 2.555 3.517 3.425 + 6.390 5.673 5.342 4.725 5.387 7.279 7.835 5.663 3.624 2.304 2.909 4.230 3.070 3.045 3.357 4.256 4.391 3.223 3.191 3.528 3.486 3.935 3.600 1.955 3.465 3.066 3.472 3.311 2.419 3.487 3.077 3.350 4.046 3.028 3.343 2.897 + 5.776 4.996 4.639 4.402 4.968 4.553 6.280 5.214 4.116 2.584 3.464 4.367 4.164 3.879 4.650 4.695 4.398 4.565 3.391 3.620 3.056 2.849 2.808 3.396 3.333 2.958 3.679 3.603 3.481 3.509 3.030 3.523 3.635 2.098 2.931 2.637 + 6.109 5.495 4.947 4.234 5.597 6.428 6.720 5.686 4.891 3.925 3.986 3.289 4.153 4.402 4.049 3.550 4.251 4.183 3.240 3.298 2.713 2.613 2.472 2.385 3.190 3.680 3.349 4.324 3.700 4.064 3.302 3.390 3.354 2.401 2.636 2.824 + 7.013 6.750 5.552 5.336 6.211 4.859 5.796 5.867 4.492 4.196 4.666 4.556 4.542 4.934 4.958 4.495 4.717 4.803 3.939 2.478 3.386 3.187 2.717 2.732 3.433 4.267 3.506 3.303 3.434 3.593 3.478 3.214 2.860 2.371 3.281 3.040 + 8.301 7.704 5.527 4.704 6.309 6.337 7.042 6.686 5.839 5.513 5.264 5.831 5.585 6.379 5.270 5.184 5.591 5.194 3.705 2.213 3.709 4.049 4.205 3.295 4.060 3.257 3.574 3.236 3.559 3.724 3.805 3.881 4.093 3.201 3.291 3.529 + 8.873 8.644 7.082 5.503 5.814 6.081 7.113 7.611 7.208 6.723 6.844 7.053 6.998 6.893 5.984 5.864 6.756 6.577 4.551 3.122 3.644 4.573 4.400 3.271 4.799 4.206 3.222 3.146 3.058 3.527 3.414 3.373 3.537 2.989 3.600 2.388 + 8.658 8.486 7.347 6.427 5.329 6.093 7.025 8.374 8.083 7.783 7.450 7.336 7.639 7.873 7.141 7.101 7.764 7.271 4.507 2.781 4.204 5.466 5.283 4.326 5.206 4.704 3.025 2.269 2.677 3.746 2.684 3.153 3.491 2.649 2.776 1.670 + 8.426 8.164 7.685 7.146 5.348 6.971 7.714 8.137 7.907 7.871 7.757 7.791 7.837 8.036 7.949 7.827 8.720 8.161 6.065 5.016 4.890 4.840 4.995 4.273 5.599 5.411 2.342 2.728 3.252 3.782 2.372 3.305 3.240 2.035 2.234 1.250 + 8.342 7.660 7.384 6.518 6.127 7.177 7.957 8.346 8.181 8.141 7.597 7.490 7.885 8.014 7.483 7.055 7.780 7.492 5.899 3.884 3.429 4.759 5.443 4.087 5.471 5.453 2.319 2.683 3.583 4.180 3.422 2.893 3.374 2.346 2.269 1.489 + 8.015 6.999 6.656 5.442 5.943 6.228 8.172 8.311 7.230 7.148 6.160 7.191 6.687 6.682 6.495 6.436 7.259 6.536 5.528 5.006 4.750 4.660 4.971 3.903 5.815 5.082 2.438 2.030 3.805 4.111 2.929 3.126 3.630 2.783 2.126 1.695 + 7.556 6.410 5.273 5.588 5.637 6.600 7.845 7.495 6.740 5.695 4.583 5.998 5.343 5.194 5.495 5.077 5.432 5.753 4.918 5.184 4.772 4.816 4.569 4.592 5.624 5.199 3.778 2.494 4.073 4.296 2.759 2.970 2.270 1.542 2.045 1.857 + 7.724 7.817 6.500 3.745 5.311 6.149 6.707 6.783 6.427 4.518 2.688 4.335 4.170 4.542 4.450 3.796 4.643 4.049 4.374 2.412 3.786 4.828 4.282 4.076 6.031 5.592 2.720 2.747 3.985 4.138 2.921 2.599 1.938 1.730 1.719 1.603 + 4.005 5.794 5.350 3.214 4.264 4.984 4.538 5.095 5.304 3.561 3.628 3.496 2.343 3.634 3.373 2.921 3.602 2.469 2.032 1.375 2.526 2.785 3.051 2.642 3.476 2.956 2.684 1.904 1.581 2.089 2.287 1.874 1.883 1.412 0.530 0.774 + 6.221 6.153 5.116 1.938 4.248 5.114 4.440 5.203 3.380 3.096 4.619 3.295 3.305 4.629 4.217 2.945 3.123 2.866 2.636 2.872 2.232 3.074 2.944 3.565 3.841 3.138 2.523 2.240 2.092 1.811 1.960 1.966 1.991 1.972 1.096 1.159 + 6.868 7.165 5.874 3.738 3.160 4.028 4.579 4.783 3.485 1.585 3.399 3.161 1.421 2.519 2.849 1.853 0.912 3.965 3.603 2.342 1.485 1.788 1.937 2.622 1.633 2.218 1.303 2.056 1.496 1.311 1.200 1.321 1.258 1.686 1.905 0.295 + 5.409 5.603 4.747 3.043 3.160 3.295 3.810 3.485 3.503 1.889 2.685 2.912 1.978 3.558 3.597 3.590 2.893 4.087 3.532 2.911 2.642 0.627 1.494 2.380 1.673 1.336 2.034 2.617 1.428 1.817 1.039 1.567 1.445 1.270 0.763 0.055 + 1.484 3.819 4.862 3.867 3.693 4.278 3.561 4.823 3.878 1.699 3.354 3.408 2.289 4.040 4.041 2.416 2.755 3.158 2.862 2.610 2.198 1.687 1.954 2.323 1.619 1.677 1.623 1.957 2.533 2.158 0.978 1.205 1.149 1.023 0.649 0.797 + 3.804 3.960 4.208 3.909 4.186 3.978 3.872 4.742 2.643 2.031 2.911 0.988 1.758 2.658 2.477 1.972 2.492 2.414 2.545 2.598 2.611 1.973 1.536 1.903 2.315 1.826 1.979 2.220 1.819 2.053 1.260 1.430 0.056 0.646 0.875 0.713 + 5.138 6.068 5.933 4.059 3.760 5.373 5.175 3.513 2.744 1.578 2.213 2.209 2.835 3.236 2.800 3.012 2.944 3.001 0.586 1.264 2.489 2.502 2.486 2.613 1.709 1.455 1.184 1.768 1.658 1.235 1.171 0.668 0.820 1.521 1.113 0.292 + 4.642 5.104 5.126 2.258 2.862 5.506 5.395 3.797 3.247 3.365 3.469 2.645 2.780 2.666 4.100 3.749 3.950 3.670 2.467 2.437 1.998 2.534 1.158 2.243 2.319 1.371 0.575 0.842 0.871 1.462 0.829 0.849 0.676 0.831 0.525 0.297 + 8.042 7.581 7.091 6.738 6.797 6.334 4.820 3.589 4.502 4.611 3.114 3.459 3.599 4.215 4.598 4.678 3.722 3.257 3.495 3.694 2.240 3.242 3.589 4.902 5.449 5.246 5.184 5.372 5.631 5.131 5.783 4.820 3.214 4.189 5.077 5.352 + 8.873 9.279 8.105 7.637 8.142 7.581 6.349 5.900 5.481 6.054 4.530 5.536 5.488 5.627 8.111 9.092 8.225 8.356 8.177 6.586 5.396 6.472 7.974 7.734 7.753 7.918 7.761 8.023 8.885 8.868 8.295 7.632 6.288 6.166 7.691 7.751 + 7.101 4.800 4.440 3.480 2.775 3.109 4.215 5.151 4.482 4.055 2.992 3.615 3.825 4.026 6.792 7.541 7.112 6.553 5.857 3.786 3.853 5.504 6.337 5.180 6.215 5.414 6.381 6.525 6.945 7.070 5.625 4.663 4.505 4.982 5.118 5.134 + 4.720 3.945 3.325 1.462 1.503 2.326 3.087 2.448 2.086 2.016 0.864 2.437 2.280 2.645 2.551 2.434 2.563 2.885 1.795 1.841 2.543 1.846 2.433 2.589 2.434 2.419 2.217 2.407 2.853 3.047 2.913 1.970 2.055 1.602 2.089 1.400 + 3.539 3.776 3.620 4.178 3.924 2.916 3.247 4.287 2.326 1.054 1.835 3.487 3.881 3.752 3.884 3.159 3.094 2.885 2.810 2.165 2.296 2.759 2.979 3.303 3.758 2.939 2.889 2.769 4.006 3.926 3.954 4.092 4.493 4.212 4.501 4.131 + 4.022 3.801 3.107 3.979 3.893 3.658 3.082 2.731 1.786 1.328 3.407 3.524 2.518 3.456 3.743 3.504 3.473 3.995 4.425 3.623 4.209 4.060 3.655 3.620 4.085 3.987 3.546 3.314 4.147 3.910 3.818 3.806 4.489 4.114 4.437 3.966 + 5.141 4.497 1.682 3.133 3.651 3.995 3.970 3.264 3.497 3.021 3.919 2.815 2.572 3.731 4.552 4.900 5.049 4.203 4.198 4.612 4.701 5.513 6.457 6.872 7.508 7.536 7.395 7.181 6.598 6.141 5.660 5.789 6.346 6.809 7.061 6.675 + 5.043 4.211 4.372 4.902 4.243 4.350 5.375 5.145 4.000 4.320 5.015 4.199 3.874 4.803 6.103 5.423 4.506 4.498 4.101 3.557 4.822 5.877 7.459 7.091 8.335 8.368 8.191 7.897 7.456 6.770 6.757 6.428 6.780 6.714 6.672 5.684 + 4.304 4.400 3.845 1.695 3.215 3.016 3.585 3.762 4.032 3.243 2.516 3.178 4.641 5.440 5.608 4.981 6.631 5.756 4.570 5.204 6.787 6.155 7.276 7.259 8.584 8.948 8.638 8.809 8.484 7.909 8.556 7.544 7.858 7.124 7.660 5.820 + 5.434 5.745 4.968 3.768 4.345 3.783 3.758 4.036 3.437 2.640 3.097 3.683 4.365 4.138 4.220 5.549 5.969 4.687 4.151 4.507 5.285 6.202 6.949 7.281 6.703 6.503 6.248 6.472 6.709 6.498 6.879 6.343 6.157 5.763 6.093 5.511 + 6.224 5.838 6.268 5.872 6.792 6.449 6.914 5.562 4.511 4.190 3.987 2.377 4.369 5.236 4.908 6.355 7.132 5.778 5.144 4.297 4.911 5.340 6.462 6.470 6.181 5.492 5.351 5.217 4.935 4.243 5.991 6.369 6.613 5.377 6.430 6.050 + 7.392 6.887 5.484 4.498 5.645 6.649 7.311 5.624 4.432 5.556 4.977 3.217 3.845 3.150 3.540 3.603 4.424 4.730 3.280 4.084 4.357 4.981 4.952 4.301 5.077 5.728 5.608 5.899 6.175 4.772 5.210 6.308 6.085 5.179 6.073 6.489 + 8.077 6.249 5.872 6.855 7.117 6.721 6.178 6.149 4.180 3.957 4.335 4.259 3.043 2.656 3.421 3.917 4.354 4.818 3.202 3.745 4.550 4.606 4.266 4.738 3.873 4.370 4.517 4.421 4.368 4.511 4.516 4.856 4.304 4.960 4.905 5.254 + 3.650 5.253 5.090 4.844 5.038 4.837 4.113 3.860 3.899 3.080 2.838 3.031 4.777 3.667 3.287 3.596 5.014 4.671 5.095 3.767 3.972 4.528 3.952 4.507 3.961 5.276 4.398 4.488 4.300 3.783 3.412 3.948 3.566 2.745 3.428 4.194 + 3.858 4.548 5.304 5.238 4.765 4.196 3.874 3.771 4.157 3.938 3.337 2.799 3.874 3.797 4.479 3.273 3.469 4.689 4.523 3.332 3.018 4.558 4.963 4.851 4.004 5.468 4.124 4.314 4.197 4.722 4.305 5.119 3.962 3.740 4.519 4.335 + 4.573 4.127 5.466 5.892 5.086 4.067 3.992 4.393 4.833 5.258 4.341 2.690 4.251 4.654 3.901 3.272 3.618 3.486 2.765 2.693 3.580 3.642 3.710 4.133 3.987 4.597 3.502 4.296 3.916 3.255 3.113 2.952 3.353 3.508 3.890 3.202 + 4.774 2.836 4.121 5.287 4.706 4.103 4.827 4.589 3.940 4.102 3.484 4.552 4.149 4.410 3.923 3.231 1.716 3.588 3.678 2.106 3.056 3.934 4.080 4.373 4.030 4.588 4.543 4.438 3.304 3.657 3.921 3.263 3.900 4.238 3.791 2.918 + 5.304 4.147 3.412 3.335 3.983 3.431 3.097 3.892 2.909 2.614 1.871 3.030 2.840 3.626 3.494 2.844 3.287 3.112 3.253 2.721 2.229 2.778 3.335 3.429 2.790 3.781 3.025 2.507 3.341 3.536 3.039 2.727 2.473 2.440 2.636 2.148 + 2.982 2.678 4.334 5.098 3.886 3.836 3.831 4.134 3.682 3.143 2.712 2.224 3.061 3.976 3.898 1.870 1.689 0.914 3.023 2.379 2.201 2.702 2.062 1.717 3.149 3.334 2.564 3.031 3.382 2.189 2.950 3.030 2.103 2.409 1.884 1.587 + 3.124 1.220 1.407 2.881 4.005 4.193 2.968 1.771 2.617 2.937 2.191 2.275 2.713 3.187 3.287 1.527 3.196 3.080 3.101 3.223 3.585 2.781 2.507 3.001 4.539 4.781 4.331 4.805 4.753 4.313 3.841 3.385 3.631 2.954 2.885 2.235 + 4.202 3.430 2.389 2.855 2.734 3.143 3.034 3.370 2.869 3.789 2.649 3.431 3.132 4.619 4.038 3.515 3.438 3.408 3.308 2.682 2.813 3.500 3.852 4.222 4.804 4.466 4.820 5.165 4.117 4.499 3.894 3.434 4.203 3.745 4.334 3.578 + 4.366 4.472 4.050 2.677 3.495 3.918 3.650 4.291 4.518 2.964 4.108 5.409 4.862 4.868 4.184 3.171 3.423 4.118 3.235 2.262 1.177 2.425 4.062 3.810 3.175 4.562 4.725 4.285 4.664 4.386 3.966 4.102 4.921 4.581 4.499 3.798 + 2.340 4.132 4.052 2.937 2.912 2.535 3.926 3.280 1.775 1.227 1.821 2.949 2.675 4.204 4.554 5.310 4.832 4.982 4.719 4.448 5.204 4.949 4.538 6.490 5.871 5.900 6.083 6.961 6.596 7.482 6.775 7.406 7.233 6.523 7.043 6.608 + 3.889 3.022 2.612 2.852 2.403 3.129 4.430 3.916 2.951 1.973 2.711 2.792 2.244 2.822 3.368 3.903 4.178 3.767 3.482 3.331 4.525 3.937 4.335 5.064 5.116 5.613 5.835 5.661 5.502 6.087 5.715 5.955 6.390 5.515 5.935 5.389 + 4.756 6.219 6.882 7.575 7.997 8.342 8.202 7.519 6.496 4.961 5.527 5.519 4.541 3.839 3.494 2.771 3.109 3.424 3.189 4.200 3.530 3.224 4.964 4.452 4.298 4.631 3.886 4.819 5.925 5.937 5.356 5.168 5.879 5.858 4.968 3.775 + 5.458 4.925 5.155 6.226 5.838 7.145 6.689 5.213 4.325 4.186 3.645 1.773 3.251 4.490 3.600 3.057 4.053 4.140 3.619 4.250 3.727 5.262 5.433 5.627 5.656 4.940 5.270 5.541 4.068 4.340 4.760 5.797 5.678 5.366 5.221 4.159 + 5.552 6.375 5.092 5.818 8.297 8.470 7.679 8.650 7.025 5.762 6.500 5.871 5.396 5.668 4.976 5.740 5.197 5.623 6.189 5.531 6.014 7.250 8.789 8.552 8.467 6.892 7.184 7.296 6.696 7.647 7.841 7.545 7.003 6.860 6.732 6.734 + 5.919 5.595 5.440 6.410 8.876 8.045 6.858 9.203 8.787 5.512 6.428 6.032 5.099 4.573 5.508 5.495 5.435 5.334 5.762 5.073 5.320 6.013 8.642 8.833 8.797 8.108 8.500 8.378 7.513 8.038 7.729 6.647 7.345 7.427 6.423 6.651 + 4.953 5.368 3.968 6.839 9.017 8.110 6.281 9.030 8.431 4.586 3.599 3.664 4.155 4.318 3.451 3.609 4.128 3.068 4.640 4.797 5.221 6.759 9.005 8.453 7.937 8.401 8.824 9.209 8.039 7.156 5.645 7.223 6.777 5.244 4.813 3.917 + 4.887 4.468 3.980 6.010 8.100 7.322 6.791 9.022 7.963 5.201 6.043 4.975 4.594 3.437 3.353 3.022 3.140 2.864 4.843 4.953 5.837 7.135 8.892 7.917 7.713 7.554 8.165 8.452 7.703 6.980 6.186 7.668 6.642 4.662 3.963 2.935 + 4.214 3.796 3.173 5.663 6.286 4.008 3.993 5.601 5.492 2.936 3.207 2.456 2.623 3.110 2.774 2.468 3.581 3.855 3.743 3.886 4.644 5.942 5.990 5.257 5.292 5.721 5.599 5.192 4.967 4.778 5.295 5.568 5.617 3.614 3.277 2.587 + 3.109 3.337 2.260 4.742 5.262 5.805 4.906 4.005 4.097 4.061 3.181 2.107 1.967 1.782 1.615 1.372 2.030 2.675 2.606 2.744 2.736 3.927 4.869 4.598 4.503 4.344 3.945 4.101 4.055 2.978 4.377 4.729 5.177 3.522 3.364 2.628 + 5.882 5.336 2.659 5.662 7.634 6.637 4.956 4.705 4.618 3.098 2.366 1.956 2.399 2.364 2.180 1.568 1.031 2.126 2.234 2.097 2.385 3.667 4.594 4.160 3.682 3.879 4.245 4.113 4.517 3.927 4.009 4.308 4.140 4.179 4.168 3.860 + 5.810 6.276 4.930 5.804 7.417 6.459 3.954 4.412 4.015 3.348 4.049 3.411 2.413 2.858 2.424 1.302 1.461 1.744 2.251 2.802 2.490 3.733 3.889 3.755 3.648 3.442 3.735 4.037 4.754 3.681 3.521 3.256 3.496 2.601 1.890 1.924 + 3.240 4.528 3.760 5.408 5.337 4.806 3.061 3.459 2.795 2.662 4.661 3.693 1.866 1.451 1.910 1.289 2.235 2.419 3.102 2.844 2.187 2.413 3.960 4.342 3.805 3.372 3.931 3.871 3.424 2.176 3.103 3.847 3.507 3.638 3.161 2.213 + 4.494 3.290 3.776 5.394 6.657 5.612 5.109 5.866 4.527 3.370 4.729 4.616 4.022 3.223 3.389 1.651 2.653 4.049 2.797 2.079 3.829 3.850 3.327 4.514 5.144 4.512 4.796 4.758 3.792 3.232 3.880 4.459 4.225 3.657 4.259 3.343 + 2.974 3.070 2.061 2.949 5.471 6.089 5.128 4.071 3.478 2.687 2.281 2.777 3.192 3.041 3.024 1.108 1.837 2.710 2.282 3.472 4.635 3.751 4.159 3.892 4.067 4.064 6.697 6.320 4.217 3.885 4.941 4.309 4.292 4.274 4.769 5.026 + 3.459 3.729 3.371 4.156 7.479 9.306 8.376 5.348 4.841 3.298 3.273 3.370 2.542 3.479 3.556 3.495 3.563 4.898 6.390 7.522 6.667 5.559 5.361 5.800 6.304 6.586 7.106 6.426 5.184 4.643 4.637 3.909 4.292 3.869 4.664 4.568 + 1.904 1.862 2.520 3.852 9.443 10.731 8.886 6.234 6.291 5.238 4.730 5.287 3.886 6.173 5.238 5.431 5.112 7.673 8.084 9.822 7.758 7.591 5.599 7.491 7.735 8.417 9.270 9.131 6.591 6.589 6.118 5.348 6.294 5.679 4.993 4.554 + 3.119 4.338 4.668 4.633 9.720 10.938 8.665 6.952 8.267 7.252 5.905 6.220 4.631 7.208 6.183 6.153 5.751 8.590 9.132 10.633 7.807 7.331 5.322 7.352 8.152 9.007 9.909 10.420 7.425 6.885 7.006 7.719 8.323 6.856 4.896 4.984 + 3.283 3.564 4.926 4.190 9.609 10.656 8.272 8.417 10.388 8.793 5.370 6.829 4.749 7.036 6.088 6.884 6.281 9.152 9.129 10.591 7.884 7.664 4.658 7.438 8.105 9.124 10.138 10.679 7.736 7.065 7.475 8.403 8.973 6.777 4.880 4.543 + 4.006 4.581 4.053 3.855 8.955 9.514 5.637 8.776 11.061 9.425 6.175 7.102 4.880 6.699 5.732 7.006 6.523 9.861 9.016 9.577 7.561 7.405 4.513 7.745 8.042 9.124 10.280 10.878 7.263 6.770 7.386 9.062 9.557 6.525 4.264 5.285 + 5.792 5.572 4.699 5.390 9.486 9.902 6.979 9.843 11.643 9.705 6.613 7.140 4.702 6.522 5.360 6.703 7.019 10.396 9.212 8.932 6.956 6.561 5.346 7.507 8.437 8.830 9.702 10.256 7.367 6.816 6.248 9.431 9.630 5.448 4.658 5.104 + 3.845 3.312 4.849 5.565 9.453 9.413 6.939 10.796 11.983 9.593 7.336 7.584 6.562 7.233 5.592 6.846 7.203 9.596 8.977 8.956 5.914 5.192 5.599 6.437 7.415 8.382 9.725 9.257 7.116 5.910 6.507 8.229 8.484 5.754 4.694 4.793 + 6.572 6.976 5.572 6.968 9.881 9.565 7.575 11.298 11.480 8.691 6.434 6.073 6.455 7.807 6.071 5.567 5.627 6.922 7.681 6.853 6.285 4.626 4.955 4.719 4.863 6.861 8.568 8.195 7.360 7.366 7.060 8.054 8.527 6.904 6.802 5.927 + 5.375 6.100 5.954 7.379 8.445 9.039 8.641 10.688 9.424 6.685 6.028 5.519 6.536 7.198 5.423 5.128 7.653 8.186 8.026 6.685 6.186 5.651 4.011 4.705 5.129 5.928 8.081 7.878 5.843 5.495 5.916 7.860 8.182 5.746 4.652 4.209 + 6.701 5.596 5.291 5.966 8.171 7.976 7.660 8.777 8.242 7.101 6.462 6.522 5.507 6.075 6.375 6.619 7.138 6.995 6.527 5.958 4.825 4.727 4.392 5.067 4.145 4.490 6.186 6.405 4.052 4.170 4.080 4.641 4.777 3.539 3.325 2.927 + 5.876 6.145 4.622 5.739 6.481 5.683 6.084 7.904 7.049 5.979 7.286 6.362 4.456 4.532 4.469 5.612 5.955 6.851 5.497 6.153 4.213 4.060 3.540 3.822 3.610 4.330 5.642 5.381 3.134 3.004 4.014 4.770 4.280 2.421 3.130 2.386 + 6.427 6.713 5.217 6.473 7.859 7.233 7.189 8.013 8.198 6.554 5.489 4.794 4.663 5.204 4.568 5.003 4.822 5.313 4.351 4.710 3.931 3.586 4.180 4.714 4.630 5.007 5.263 4.518 3.268 2.376 3.999 5.004 4.830 2.628 2.425 2.661 + 4.590 5.369 5.117 7.054 8.111 6.361 5.598 5.465 6.811 5.052 4.281 4.961 5.794 5.506 4.698 5.640 5.934 3.292 4.523 5.201 4.238 4.163 4.441 4.923 3.859 4.320 3.924 4.781 3.539 2.877 3.301 4.506 4.204 2.779 2.466 2.896 + 1.960 3.059 4.191 5.998 7.555 6.155 5.300 7.273 7.340 4.621 4.492 4.492 6.002 4.704 4.571 6.168 6.303 4.864 4.975 4.817 4.279 3.746 5.249 4.777 4.003 4.044 3.566 3.772 2.916 3.213 2.839 3.623 3.362 3.415 2.892 2.570 + 4.139 2.835 4.049 5.164 6.341 5.545 6.683 7.480 5.940 4.815 5.610 5.166 5.507 4.556 5.014 5.627 5.651 4.833 4.698 3.996 3.889 3.266 4.387 5.508 4.319 4.038 4.925 4.545 4.029 3.516 4.015 4.457 3.488 2.851 2.914 3.204 + 2.527 3.007 3.573 6.212 7.157 5.694 6.942 8.094 5.914 4.915 5.323 5.070 6.021 5.387 6.470 5.614 4.688 6.365 5.306 4.299 3.262 3.911 5.467 5.499 5.071 4.722 4.802 4.699 3.910 3.906 3.866 4.129 3.792 3.144 2.984 2.310 + 4.247 3.927 4.296 6.404 7.648 5.556 6.722 8.143 6.114 5.164 5.181 4.964 5.449 4.751 5.026 5.146 5.432 6.062 5.017 5.048 4.365 3.804 4.276 5.663 4.514 4.484 4.947 5.038 4.311 3.384 3.505 4.472 4.693 4.087 3.856 3.475 + 6.525 5.645 5.451 7.213 7.804 5.512 6.452 7.247 5.261 5.511 5.420 6.175 6.691 3.505 3.983 6.368 5.722 5.300 5.027 5.019 4.919 4.386 5.074 5.440 4.221 4.401 5.391 5.320 3.769 4.094 4.593 5.094 4.889 4.376 3.818 2.882 + 6.359 5.319 5.146 7.022 8.367 6.713 5.877 6.393 4.821 5.527 3.637 7.115 7.521 5.134 4.115 6.732 6.213 5.518 5.635 4.689 4.993 4.321 5.465 5.661 4.333 4.745 6.217 5.551 4.311 4.283 3.106 5.181 4.676 3.820 3.331 3.389 + 6.423 5.081 5.696 7.709 8.655 6.492 7.428 8.525 6.549 6.028 4.992 7.682 7.658 4.901 4.936 6.819 5.732 5.780 4.843 4.453 3.748 3.913 5.081 4.610 4.305 4.111 4.468 4.444 4.536 4.211 4.479 4.488 5.021 5.091 5.437 3.954 + 5.654 6.024 5.548 8.191 8.907 6.673 8.594 8.784 6.352 6.536 5.081 7.731 7.119 3.708 4.857 6.424 4.663 5.063 4.706 3.899 2.474 3.523 3.783 4.488 4.413 3.583 4.085 4.774 4.543 3.471 4.398 4.286 3.855 3.460 3.806 2.916 + 7.330 5.667 4.067 8.141 8.929 6.983 8.951 9.194 6.443 7.007 6.898 7.424 7.762 6.118 6.460 6.799 6.460 6.948 6.660 6.803 6.968 6.905 7.163 7.530 7.391 7.591 7.493 7.307 7.158 6.972 7.546 7.970 8.231 8.252 7.972 7.281 + 4.050 2.384 3.071 6.810 7.931 7.005 8.923 8.182 7.082 7.527 7.720 8.341 6.818 5.647 5.768 5.921 4.950 5.652 5.497 5.191 5.716 5.489 6.043 6.029 6.214 6.392 6.076 6.029 6.200 5.692 6.272 6.780 6.917 6.790 6.455 5.904 + 5.484 5.169 5.306 7.684 8.065 6.868 7.131 5.641 7.403 8.050 7.541 8.206 7.291 6.340 6.253 5.997 4.830 5.481 4.791 3.236 3.506 4.101 3.193 2.352 2.876 3.320 4.170 5.534 5.924 4.889 5.122 4.382 4.278 3.172 3.162 2.017 + 5.730 5.580 5.056 6.918 7.819 7.081 6.522 8.009 7.694 7.840 7.672 7.215 6.979 5.493 6.018 6.920 4.877 4.346 4.310 4.883 2.840 3.028 3.679 3.209 3.015 3.228 3.779 4.747 5.061 4.088 4.109 3.933 4.023 3.821 2.924 1.485 + 5.884 4.883 4.433 6.791 7.298 7.041 8.031 8.544 8.011 7.927 7.535 7.877 7.315 7.026 7.417 8.762 6.463 5.429 4.966 4.327 4.106 3.399 3.664 3.019 2.942 2.872 3.586 3.864 3.837 3.403 4.623 4.221 3.679 3.137 2.362 1.622 + 5.508 6.131 5.263 6.944 6.813 7.205 8.393 8.405 7.889 8.095 8.522 8.180 8.464 7.110 7.254 10.309 9.537 7.058 5.571 5.005 4.605 3.947 3.471 3.636 2.887 3.303 5.175 5.369 5.069 3.359 5.659 4.906 4.591 2.906 2.803 1.281 + 3.684 5.311 5.483 6.320 6.339 5.589 6.806 5.939 8.384 8.655 7.698 8.494 6.236 7.916 7.805 8.972 8.961 7.900 7.093 6.164 5.702 5.169 4.494 4.282 4.554 4.783 6.256 6.505 5.683 5.668 5.353 5.177 5.319 4.085 2.930 1.596 + 4.329 3.531 2.346 5.293 4.722 6.083 8.182 7.008 8.966 9.664 8.937 10.011 8.178 6.707 7.533 7.360 7.687 8.893 9.303 7.672 6.702 6.173 6.114 6.210 6.106 6.653 8.226 8.344 6.820 7.037 6.733 6.445 5.733 5.251 3.708 2.213 + 4.185 3.410 4.050 5.633 5.268 6.737 8.956 7.890 9.377 9.872 8.764 9.528 6.764 7.585 6.863 7.342 8.044 8.596 9.661 10.021 8.997 6.788 6.735 6.949 7.087 7.696 8.960 9.043 7.635 7.291 6.546 6.968 6.345 5.617 3.417 2.402 + 4.758 4.911 3.837 4.383 5.194 6.722 8.780 7.762 9.707 10.404 8.443 9.395 7.558 7.760 6.417 7.018 7.760 8.064 9.006 10.618 10.247 7.451 8.158 7.761 7.946 8.983 8.638 9.069 8.018 7.657 8.061 8.070 7.557 6.993 3.858 3.346 + 2.638 2.564 3.027 5.131 5.503 5.603 8.102 7.006 9.972 10.411 7.384 7.953 5.908 6.726 6.439 7.273 6.159 6.713 7.469 8.885 8.846 9.011 9.291 8.097 8.820 9.809 8.747 8.594 6.517 7.870 8.379 6.967 7.306 6.616 4.635 4.003 + 4.129 4.344 4.253 5.805 5.426 6.062 8.138 6.908 8.964 9.392 6.379 7.340 5.492 6.137 4.931 6.109 6.692 5.926 6.393 8.193 8.066 8.188 9.751 8.805 9.444 9.855 8.829 7.456 5.916 7.144 8.679 6.905 7.279 6.922 4.672 3.756 + 4.752 2.285 2.638 6.068 6.438 6.658 8.275 6.793 7.618 8.115 5.400 6.620 5.634 5.690 4.814 5.223 4.129 4.469 5.855 8.390 8.189 7.560 8.430 9.952 9.595 9.129 8.958 7.817 6.955 6.697 8.820 7.044 6.845 6.150 4.425 4.611 + 3.850 3.521 3.474 5.297 4.554 4.692 6.465 6.012 5.972 5.887 4.803 5.054 4.574 5.699 3.856 3.724 3.476 4.382 4.969 7.431 7.274 7.499 7.841 9.462 8.857 9.368 8.432 6.856 6.609 6.360 7.154 5.877 6.316 6.340 5.386 4.725 + 4.431 3.174 2.323 4.724 4.127 5.055 4.855 3.237 3.974 4.754 4.333 5.204 4.270 5.564 4.883 4.618 5.203 4.863 3.183 5.582 6.293 6.206 6.085 7.611 7.865 7.282 6.148 6.429 4.666 4.237 4.257 4.758 3.893 3.859 3.987 2.617 + 3.717 4.840 5.354 4.892 5.612 5.637 5.657 4.400 4.828 4.433 4.922 5.322 2.950 4.373 3.918 4.213 5.600 5.106 4.909 5.917 5.455 5.139 4.972 5.950 6.501 6.587 6.266 5.711 6.429 5.973 6.401 6.429 5.298 5.062 5.644 5.744 + 5.325 5.398 5.147 6.647 5.834 5.603 5.910 5.377 4.634 4.117 4.924 5.270 4.376 4.304 4.609 4.796 5.723 5.773 5.116 5.782 5.255 4.652 3.755 4.812 5.504 6.058 5.860 5.124 5.960 6.639 5.988 6.821 6.304 6.647 6.727 6.120 + 5.258 6.448 7.184 8.214 8.143 8.304 8.143 6.132 6.084 5.158 5.610 5.810 4.946 4.575 5.440 7.271 7.616 6.280 6.522 7.358 6.739 6.666 7.041 7.780 6.741 7.922 8.162 9.094 8.588 8.739 8.571 8.212 8.395 8.208 7.758 7.625 + 7.102 7.291 7.248 7.877 7.745 6.984 8.016 6.422 4.718 5.679 5.884 4.657 7.038 6.724 6.816 7.848 8.102 7.343 7.547 8.469 8.524 8.543 7.892 8.977 8.312 9.429 9.701 9.884 10.090 9.710 9.280 8.634 9.592 9.646 8.752 8.211 + 7.584 6.883 6.570 7.053 6.770 6.955 7.780 6.737 7.000 6.060 6.490 5.593 5.214 7.641 7.178 7.852 7.898 7.731 7.389 7.731 7.784 7.926 6.967 8.142 7.683 7.597 7.890 7.806 9.016 9.006 8.369 7.458 7.957 8.264 8.625 7.708 + 6.004 6.840 6.844 7.568 6.817 7.853 8.004 6.683 6.653 8.215 8.365 6.038 6.437 8.558 7.915 7.981 8.624 7.552 7.320 6.860 5.694 7.571 7.490 8.080 8.596 7.822 6.760 8.243 8.105 8.166 7.413 7.233 7.409 8.159 7.980 7.700 + 5.145 4.990 6.083 5.608 5.408 6.334 6.822 6.252 6.488 7.596 7.299 6.994 6.957 6.748 6.013 6.625 7.379 5.363 5.690 5.879 5.755 5.920 7.288 7.943 8.079 7.212 6.448 7.661 7.779 7.008 6.099 5.909 5.675 5.747 4.392 3.773 + 3.132 4.141 4.749 6.395 7.044 7.377 8.261 7.743 5.843 5.700 5.331 5.362 6.745 6.561 6.571 6.046 5.375 6.345 5.667 6.543 6.922 7.167 8.075 7.008 7.649 8.379 8.381 7.961 7.237 6.050 5.788 7.040 6.385 4.407 5.072 5.009 + 6.906 7.637 7.395 6.329 6.575 9.046 9.537 8.456 7.517 7.960 7.229 6.378 6.757 7.502 7.771 8.465 8.636 8.438 7.290 9.441 9.065 8.637 8.835 8.394 9.756 10.078 9.756 9.440 8.791 8.873 8.373 8.415 8.280 7.906 6.948 6.842 + 6.398 6.326 3.875 4.552 6.646 6.228 5.661 6.648 5.820 4.377 5.698 5.919 5.994 5.842 6.000 7.047 6.543 5.349 4.716 7.850 7.412 7.168 7.904 7.316 7.422 7.835 7.323 7.131 7.799 7.440 7.708 7.431 7.465 6.544 5.555 4.771 + 5.383 5.712 4.104 5.844 6.202 5.123 6.091 6.827 4.335 2.917 4.354 4.841 4.582 4.558 4.765 5.870 5.049 3.008 4.203 4.601 5.361 5.692 6.006 6.227 6.191 5.483 5.643 4.994 4.754 4.764 4.886 4.897 4.657 3.992 4.001 3.328 + 4.700 5.020 3.670 5.792 4.546 4.631 7.257 7.442 5.605 4.697 4.237 5.260 3.852 5.238 4.544 4.444 3.614 4.146 4.990 5.464 5.975 6.742 7.883 8.725 7.734 7.828 8.103 7.921 7.603 7.903 6.470 6.790 6.099 4.771 4.657 4.054 + 4.999 5.090 4.567 5.789 5.681 6.640 8.172 6.837 4.209 4.573 5.195 4.990 5.177 4.445 5.982 5.463 4.838 3.712 5.897 6.605 5.998 6.673 7.365 7.116 7.013 8.065 7.603 7.491 7.911 7.329 6.859 6.793 6.626 5.394 4.414 3.804 + 2.798 3.815 5.827 5.713 5.165 5.899 7.569 7.371 6.140 5.503 5.466 4.968 5.171 5.570 6.170 6.961 6.334 6.001 5.207 6.302 6.280 7.151 7.790 8.143 8.421 8.629 8.122 6.929 6.908 7.274 6.828 6.558 6.500 6.516 5.587 3.567 + 3.837 4.272 6.525 8.525 7.858 5.889 6.922 5.403 4.101 4.683 5.434 4.918 5.055 5.257 6.154 6.268 5.980 4.871 5.473 6.177 5.397 6.172 7.071 9.164 9.477 7.732 7.847 7.344 6.376 6.797 6.447 6.726 6.203 6.862 6.243 3.596 + 5.296 5.062 6.808 8.777 7.628 6.641 6.662 4.507 5.133 5.350 3.996 5.352 5.839 6.319 7.596 5.633 7.041 6.400 6.608 7.334 7.531 7.386 7.000 8.450 9.122 7.983 8.825 8.146 6.878 7.348 8.385 8.165 6.682 7.261 6.850 5.672 + 5.620 4.998 7.621 8.573 6.667 6.535 4.774 4.184 5.576 5.377 4.724 4.139 4.848 4.570 6.623 6.456 5.098 4.915 6.522 7.454 7.549 7.890 7.585 7.763 8.243 8.142 8.429 7.909 7.710 7.197 7.809 7.657 7.161 7.345 7.137 6.683 + 5.678 4.981 7.639 8.692 6.858 5.957 7.115 5.219 4.819 4.464 4.734 4.411 4.829 4.763 5.864 5.548 4.066 4.779 5.066 4.288 5.072 5.241 5.516 7.525 7.747 7.381 8.059 6.768 6.265 7.270 7.318 7.620 6.779 7.299 7.079 5.570 + 6.468 5.506 7.212 7.815 5.683 6.650 6.843 4.800 4.167 4.262 4.827 2.554 2.850 3.471 4.615 4.749 3.046 3.694 3.990 2.744 4.134 5.056 4.928 7.373 8.815 7.833 7.576 6.732 6.034 6.711 7.355 6.829 6.385 7.486 6.422 4.374 + 5.077 3.606 7.254 8.067 6.253 5.301 3.880 3.800 3.813 3.722 5.400 3.513 3.108 4.552 4.212 3.375 3.106 3.610 3.250 3.639 3.542 4.120 4.817 7.405 9.159 8.109 7.010 5.037 5.406 5.598 7.279 7.151 5.514 7.305 7.073 4.530 + 6.661 5.957 7.827 8.826 6.996 5.591 4.650 3.755 4.946 4.950 5.455 3.343 3.463 3.165 3.359 2.857 2.046 2.643 3.494 3.536 2.840 4.933 5.650 6.919 9.245 7.715 6.762 5.859 4.688 5.850 6.796 6.616 6.070 7.087 6.455 4.433 + 7.003 7.634 8.409 7.950 8.532 8.597 8.225 6.888 7.612 7.739 5.811 5.550 6.293 7.101 5.643 4.579 4.620 5.362 4.991 5.902 4.697 5.151 7.056 7.600 9.495 9.114 8.044 6.614 6.684 7.327 7.898 7.133 6.824 7.054 6.619 4.771 + 6.216 6.724 7.769 8.845 9.468 10.474 9.114 8.280 7.196 8.356 7.818 7.611 7.966 7.752 7.328 5.519 6.200 5.437 4.631 4.317 5.451 5.108 6.019 6.002 7.892 7.929 7.559 7.109 7.950 7.427 7.990 7.292 6.950 7.876 7.200 6.335 + 6.479 6.315 7.877 7.751 8.627 9.870 9.432 7.503 7.235 7.507 7.262 7.980 7.491 6.897 6.627 6.901 6.533 5.502 4.536 4.663 5.436 5.102 4.911 7.160 7.174 7.622 8.066 7.353 7.385 6.619 7.082 6.878 6.968 7.339 5.637 4.846 + 4.018 3.817 6.412 6.815 5.598 6.639 7.144 6.266 5.773 5.286 4.209 5.180 5.519 4.883 4.423 4.725 4.324 2.420 2.729 3.497 3.177 3.398 4.609 4.869 5.422 5.607 5.704 6.379 5.916 5.836 5.227 5.143 4.870 4.238 4.021 3.802 + 3.967 4.063 5.613 6.096 7.276 8.181 7.819 6.155 4.656 4.006 3.281 4.108 4.086 4.623 3.933 4.192 2.734 3.532 3.610 4.082 3.049 3.814 4.914 4.604 6.133 6.001 6.218 6.654 6.023 6.671 4.890 4.870 5.730 6.298 4.920 4.247 + 4.657 3.304 3.876 3.809 5.279 6.242 6.229 6.569 6.477 4.095 3.888 4.424 4.745 4.351 4.911 4.548 2.974 4.530 4.061 4.546 4.007 3.647 4.646 4.761 7.179 7.143 6.221 6.491 6.091 5.614 5.331 5.077 5.291 4.702 3.419 3.212 + 4.101 2.305 3.250 4.998 3.892 3.663 4.083 5.791 4.932 4.895 3.581 3.795 5.744 6.353 5.847 5.624 4.842 4.525 4.939 3.830 3.902 5.023 5.546 6.038 7.425 7.721 6.612 6.108 6.465 6.777 5.981 5.298 5.735 4.976 4.109 3.287 + 2.400 1.472 2.855 5.059 5.033 5.403 5.656 5.388 4.767 3.714 4.117 3.473 3.231 4.336 4.930 5.045 4.620 5.051 5.657 4.735 3.752 5.223 5.510 6.798 6.901 7.117 7.296 6.709 7.299 7.722 7.186 6.116 5.798 5.806 4.543 3.752 + 2.932 3.097 5.099 5.922 6.837 7.973 7.698 6.935 5.277 4.119 4.922 3.596 2.180 3.423 3.299 4.046 4.238 4.780 4.934 3.763 4.038 4.318 5.144 5.637 5.717 5.206 5.853 5.143 5.272 5.647 4.068 3.503 3.702 4.807 3.942 2.448 + 1.821 2.486 4.424 3.888 3.280 5.036 4.624 3.186 3.298 2.184 3.379 3.197 1.787 2.234 2.570 2.159 2.351 2.628 2.524 2.434 2.416 2.253 2.820 3.760 4.798 3.510 4.127 3.840 3.513 3.197 2.260 2.366 2.455 2.471 1.789 0.488 + 4.810 3.487 3.185 3.874 3.457 4.211 3.627 2.699 2.375 2.323 2.104 2.430 1.480 1.838 1.502 1.213 1.841 1.959 2.194 2.276 1.767 1.684 2.651 3.133 3.306 3.329 3.026 2.285 2.067 1.917 2.183 2.567 1.571 2.004 0.641 0.552 + 4.170 4.164 3.306 3.468 3.039 3.579 3.718 3.074 3.356 3.230 2.716 2.143 2.999 2.735 2.667 0.993 1.363 1.826 2.018 1.824 2.217 2.193 2.068 2.232 1.931 3.069 3.388 2.514 1.472 1.605 2.059 1.685 1.791 1.764 0.837 0.603 + 3.042 2.895 4.442 4.604 3.035 2.849 1.961 2.647 2.624 3.052 2.999 0.962 2.479 2.228 2.778 2.643 2.711 2.713 2.605 1.092 1.974 2.476 2.179 1.624 1.106 2.196 2.654 2.749 2.798 1.902 1.939 1.600 1.353 2.477 1.717 1.462 + 2.505 3.099 4.860 4.435 1.668 2.297 1.835 2.999 1.932 2.305 3.372 2.238 1.355 3.914 3.513 2.802 3.474 3.420 1.158 1.628 2.613 2.213 1.798 1.538 2.729 2.696 2.479 2.760 2.824 1.264 1.893 2.368 2.025 2.362 1.551 0.536 + 3.825 4.033 4.143 3.045 3.751 4.918 4.897 5.193 4.360 3.879 2.958 2.766 2.614 4.275 4.318 3.995 3.955 3.305 3.117 2.691 2.566 2.779 2.672 2.436 2.683 2.820 2.730 2.954 2.818 3.544 3.752 3.032 3.023 2.829 1.872 1.132 + 3.616 3.435 4.492 5.959 5.171 7.288 9.221 8.924 7.826 6.978 6.265 6.538 5.521 6.227 7.657 7.494 8.132 8.834 7.163 6.126 5.162 4.677 3.582 4.664 4.973 5.557 5.715 4.968 4.815 7.076 7.040 6.054 4.963 4.388 2.498 1.168 + 2.124 3.332 4.791 7.152 6.407 7.754 9.924 9.073 8.482 9.010 7.976 8.437 6.714 6.577 7.883 8.209 8.897 9.795 8.371 7.899 6.779 4.554 3.941 4.889 5.770 6.558 7.257 6.247 6.346 8.436 8.312 7.449 5.834 5.717 4.148 1.705 + 2.081 3.074 5.417 7.893 7.059 7.600 9.433 7.624 9.553 9.464 7.663 7.392 7.059 7.104 9.096 7.940 8.670 10.404 9.557 8.277 7.147 5.686 3.984 5.634 6.497 8.265 8.864 7.021 7.187 9.573 9.440 8.199 6.655 5.700 4.249 2.505 + 2.226 1.808 5.705 7.930 6.995 7.869 9.092 6.886 9.056 8.696 6.865 7.269 7.322 7.370 9.837 8.779 8.873 10.337 9.709 8.995 7.272 5.950 4.441 5.763 7.587 8.348 8.777 7.734 7.739 9.429 9.188 8.331 7.014 5.638 3.711 2.483 + 3.458 3.672 5.506 8.046 7.155 7.756 9.276 7.322 9.248 9.824 8.780 8.510 7.474 7.686 9.444 8.847 8.401 8.862 9.804 9.932 6.664 5.845 5.652 5.789 7.148 8.033 8.270 8.165 8.053 8.971 9.881 8.203 7.187 5.549 3.600 1.698 + 4.161 3.898 6.311 8.291 7.285 8.113 9.651 7.667 9.417 9.536 8.425 8.588 7.624 7.902 9.701 8.783 8.363 8.892 10.345 10.922 6.905 5.785 5.011 5.727 6.312 8.269 9.677 8.054 6.619 8.992 9.733 7.865 7.199 5.621 3.620 1.836 + 1.892 1.630 5.441 8.191 7.232 8.346 9.847 8.142 8.948 9.192 8.999 8.649 7.255 7.078 9.549 8.527 8.350 7.615 11.061 11.659 8.286 6.272 5.537 5.967 6.204 7.313 9.261 9.069 6.957 8.629 9.728 8.426 7.858 6.233 4.282 2.944 + 2.723 4.338 6.416 8.106 6.893 7.582 9.028 7.823 10.966 10.559 8.324 7.020 6.959 7.358 9.532 8.209 8.167 9.484 9.994 10.853 10.588 7.296 6.550 6.918 7.769 8.625 9.451 9.163 8.193 8.164 10.342 9.384 8.981 7.713 5.387 2.950 + 2.708 3.676 5.612 7.407 6.362 6.510 8.018 9.197 11.679 10.804 9.442 8.495 7.527 7.354 8.694 7.257 6.983 8.548 8.458 10.907 11.087 7.425 6.569 6.798 7.552 9.128 9.773 9.225 7.400 7.244 8.878 8.123 7.565 6.933 4.451 3.273 + 2.252 2.100 4.984 5.554 4.196 6.898 8.772 8.692 10.684 9.293 8.892 8.783 6.322 5.378 6.826 6.515 6.078 7.461 8.697 10.047 10.381 6.364 5.630 6.246 7.071 7.947 9.302 8.473 6.885 6.705 8.542 7.644 6.636 6.007 4.228 2.411 + 2.463 2.786 4.828 4.378 4.634 6.596 8.193 8.389 8.865 8.713 6.545 6.005 5.829 4.940 6.674 5.069 4.923 6.812 8.436 8.898 9.185 7.334 4.855 4.989 6.530 7.244 7.566 6.667 5.737 5.948 7.629 6.879 5.770 4.477 3.495 2.465 + 2.303 2.742 4.399 4.872 5.688 7.241 6.188 7.639 9.835 9.126 4.996 4.364 3.358 4.377 5.973 5.060 3.915 4.803 6.301 7.028 8.741 7.654 5.059 4.315 5.566 6.455 6.751 6.059 5.001 4.694 5.442 4.791 5.736 4.378 1.337 0.748 + 3.439 4.273 4.268 3.851 4.467 7.904 9.348 8.560 9.450 8.341 5.647 4.914 4.463 4.158 5.164 4.948 4.950 6.216 6.410 7.193 8.859 7.192 5.420 5.503 5.411 6.237 5.884 6.078 6.279 5.374 5.808 4.227 4.756 3.809 2.384 0.728 + 2.851 3.488 4.780 5.674 4.854 7.912 9.422 8.055 8.845 7.690 6.329 5.962 4.097 3.527 4.467 4.184 5.304 7.030 6.604 7.001 7.705 6.475 5.037 4.958 4.764 5.186 7.256 6.916 5.351 5.723 5.774 4.224 4.130 3.536 1.533 0.217 + 3.163 2.399 1.809 5.341 5.957 7.808 8.175 6.981 7.617 6.384 4.876 5.314 4.530 3.939 5.364 4.367 4.849 6.806 6.645 6.595 7.663 6.313 5.716 5.383 5.014 5.932 8.504 8.042 5.930 6.217 5.863 5.229 4.074 3.197 2.066 0.986 + 3.729 3.205 3.289 5.158 7.045 8.079 7.484 5.814 7.408 6.361 5.087 4.295 4.072 4.693 5.542 4.702 4.143 6.592 6.639 6.370 6.937 6.355 4.643 4.986 4.874 5.921 6.416 5.811 5.245 5.422 4.696 3.554 3.281 3.168 1.566 0.468 + 4.935 4.544 3.763 3.071 6.567 7.430 7.009 6.329 7.110 5.197 4.157 4.349 4.088 4.326 4.805 3.583 4.850 5.997 5.764 6.249 5.923 4.887 3.996 3.015 3.676 5.249 6.083 5.445 4.465 4.098 4.458 3.007 3.934 3.685 2.349 1.338 + 3.898 3.254 4.822 4.749 5.703 7.308 7.504 5.661 5.666 4.923 3.261 3.146 3.615 4.538 4.515 4.463 4.666 4.744 4.373 5.824 5.949 4.612 3.386 2.976 2.437 3.839 5.317 4.837 5.003 4.504 3.729 3.590 3.735 3.087 2.214 1.971 + 4.058 3.664 3.182 4.344 4.791 4.506 5.001 4.038 5.748 5.379 4.701 3.475 3.194 3.599 3.683 4.109 3.287 5.291 4.652 5.034 5.110 3.772 3.110 3.466 3.131 3.896 4.678 4.488 3.934 4.214 3.994 4.016 3.281 2.663 1.937 1.487 + 4.954 3.962 2.884 4.813 4.859 4.699 5.828 5.413 5.532 4.342 3.779 4.235 3.851 3.612 3.945 2.934 3.965 4.666 3.866 4.949 4.906 3.877 4.225 3.096 3.151 3.403 3.591 3.305 3.207 3.700 3.733 2.874 3.416 2.885 1.685 1.127 + 1.839 1.480 2.421 2.889 3.842 4.950 5.895 4.506 4.714 4.692 3.666 3.444 2.086 4.539 4.953 3.708 3.385 4.898 4.595 4.597 4.780 3.713 4.010 3.263 2.171 2.976 3.001 3.004 3.235 3.862 4.938 3.464 3.348 2.330 2.241 0.682 + 5.138 4.893 4.716 3.753 3.288 3.468 4.289 3.000 4.535 4.739 3.345 3.057 2.564 4.614 5.116 3.840 4.091 4.567 4.950 5.034 5.598 3.682 4.164 3.645 2.816 3.531 4.594 3.462 3.203 2.980 3.181 3.059 3.657 3.340 2.493 0.972 + 3.710 4.314 5.028 4.623 3.376 3.715 5.425 4.356 5.061 4.691 2.952 2.533 2.682 4.803 4.747 3.345 3.931 4.147 4.398 4.380 4.646 3.119 3.153 3.440 3.211 3.190 3.782 3.774 3.828 4.341 3.377 3.110 2.695 1.730 1.706 -0.024 + 4.154 4.271 4.103 4.457 2.739 5.144 6.030 4.060 3.784 3.402 3.943 3.781 3.503 4.154 4.571 4.129 3.322 4.874 5.158 4.869 4.048 4.066 3.430 2.199 3.577 3.940 3.708 3.873 4.314 3.752 3.960 3.419 2.514 2.424 1.745 0.629 + 2.926 4.166 3.409 1.890 2.257 4.373 5.024 2.329 3.890 3.649 4.017 4.367 3.405 4.471 4.890 3.143 2.833 4.485 4.336 4.630 4.306 3.032 2.818 2.712 3.349 3.511 3.986 3.191 4.018 4.231 3.466 2.788 2.186 2.386 2.502 0.732 + 1.862 2.655 2.223 1.468 2.832 4.313 3.596 3.223 4.064 3.442 3.365 2.089 2.467 4.946 4.332 3.447 4.272 5.274 4.170 3.902 4.971 3.580 3.333 3.598 3.230 2.986 4.277 3.587 3.639 3.595 3.141 2.673 1.918 2.875 2.271 0.635 + 4.333 3.414 1.962 1.650 1.338 2.895 4.167 4.464 4.212 3.109 2.979 3.541 2.874 4.217 4.636 2.799 4.155 5.012 5.050 4.870 4.580 4.137 3.435 3.820 3.613 3.722 3.649 3.858 3.396 2.694 2.602 2.259 1.835 2.415 1.674 1.475 + 3.799 3.448 3.991 3.830 3.190 3.015 2.879 4.181 4.928 3.343 1.823 3.923 3.344 5.027 5.073 3.096 4.141 4.553 4.902 5.038 4.041 3.540 3.680 3.696 2.906 2.507 3.152 3.863 4.071 3.568 2.937 2.331 2.362 1.546 1.578 1.171 + 4.699 4.631 4.291 2.872 3.705 4.729 4.223 4.848 3.946 3.075 2.869 3.443 3.077 4.763 4.392 2.353 3.028 6.022 5.482 4.358 3.609 2.933 2.975 3.269 3.212 3.631 2.830 3.358 3.000 2.385 2.604 2.859 3.006 2.375 2.790 1.431 + 3.407 3.300 2.932 1.999 1.785 3.083 3.923 3.986 3.647 3.367 4.366 3.620 3.241 4.615 3.527 3.290 2.820 5.357 4.759 4.945 2.902 2.200 3.414 3.217 3.082 2.411 3.588 3.369 3.507 2.995 1.963 2.260 2.622 2.430 2.662 1.236 + 4.277 4.392 3.087 2.312 2.762 5.206 5.058 3.376 4.333 3.053 3.995 3.906 3.133 2.798 2.732 3.337 3.410 4.229 4.271 3.659 1.545 2.478 2.013 2.005 2.818 3.034 3.481 3.314 3.176 2.968 3.462 2.720 2.622 2.554 2.177 0.799 + 2.561 2.487 2.386 3.075 2.502 4.980 4.605 3.479 5.197 4.435 3.402 3.229 3.837 2.985 2.516 3.444 2.355 2.673 3.321 3.771 2.647 3.309 3.832 3.675 1.881 2.424 3.413 3.908 2.951 3.060 2.483 1.863 2.366 2.558 2.573 0.999 + 2.520 1.518 2.313 1.790 0.718 3.452 3.497 3.341 4.407 2.624 2.625 3.419 3.144 3.473 3.496 4.198 3.454 4.236 4.041 3.561 3.677 3.504 4.023 3.532 2.046 2.859 3.614 2.548 3.435 3.248 2.648 2.322 2.345 2.613 2.824 0.899 + 2.556 2.180 3.019 3.548 2.598 3.169 4.116 3.069 4.193 3.843 2.038 4.159 3.479 3.602 3.767 3.673 4.188 4.566 4.618 4.729 3.405 3.515 4.416 3.464 2.092 2.592 2.995 3.163 3.580 2.851 2.945 2.682 2.050 2.620 2.607 0.683 + 2.946 2.484 2.897 3.408 2.932 2.883 4.047 5.028 3.295 2.250 1.030 3.882 4.116 5.061 4.595 3.198 3.336 3.601 3.977 4.014 2.482 2.729 2.974 3.532 2.529 1.892 2.299 3.449 2.947 2.186 2.601 2.376 1.650 2.449 2.991 2.028 + 3.775 4.012 2.952 2.314 3.264 4.655 5.310 3.266 2.242 3.108 2.666 2.767 3.953 4.043 3.277 2.945 2.564 5.010 4.762 3.031 2.634 2.449 1.775 3.831 3.368 2.366 2.421 3.058 2.497 2.359 2.532 2.538 2.149 2.541 2.891 1.173 + 2.159 3.858 3.990 3.248 2.443 4.736 4.592 3.307 3.285 4.100 4.237 2.703 2.644 4.069 3.037 2.384 2.851 2.933 2.981 2.562 3.240 3.239 2.542 2.648 3.004 2.025 3.078 3.365 2.738 1.990 2.763 2.177 1.452 2.234 2.473 1.059 + 1.471 2.201 3.577 2.798 1.616 3.491 4.333 4.693 3.109 2.987 2.607 1.717 2.666 3.069 3.045 2.353 4.085 3.552 4.358 3.703 3.513 2.338 3.843 4.546 3.088 2.257 2.704 2.864 2.268 2.275 2.390 2.152 2.045 1.828 2.126 0.787 + 2.734 1.446 1.603 1.553 1.085 2.725 3.509 2.779 2.751 3.598 4.068 2.703 2.247 2.161 1.833 2.609 3.652 3.375 4.073 3.173 2.989 2.537 2.861 3.823 2.970 2.789 2.142 1.750 1.938 1.954 2.607 1.936 1.848 1.664 1.885 0.741 + 1.626 1.662 1.679 2.535 2.983 3.016 3.263 2.770 3.033 2.722 1.824 2.424 2.646 3.210 2.641 2.645 2.303 3.140 3.653 3.261 2.022 2.564 3.590 2.697 2.603 2.184 1.737 2.023 2.019 2.800 3.006 2.423 1.484 1.301 1.604 -0.432 + 3.481 1.693 1.666 2.084 2.330 3.627 3.951 3.168 3.295 1.619 1.576 2.903 2.282 3.171 2.672 2.383 3.216 3.028 3.075 2.534 3.299 2.697 3.604 3.352 3.328 2.808 2.204 2.437 2.105 1.910 2.142 0.948 2.181 2.281 1.510 -0.477 + 2.963 2.855 1.786 1.079 0.299 3.445 3.855 2.404 3.036 0.744 0.495 1.445 2.359 2.956 2.560 2.444 2.978 3.527 3.848 1.620 1.778 1.646 3.306 3.307 2.659 2.096 2.352 2.746 1.706 1.755 1.768 0.878 2.197 2.248 1.325 -0.364 + 2.871 3.464 2.103 2.093 2.837 3.539 4.054 2.903 2.931 2.198 -0.188 1.788 2.966 3.382 3.197 2.353 1.994 3.317 3.270 3.146 2.326 2.106 3.573 2.761 2.093 3.128 2.342 2.729 1.893 1.774 1.834 1.332 1.555 0.917 0.412 -0.086 + 2.136 3.184 1.597 1.373 2.489 3.649 3.865 3.943 2.235 2.028 3.007 1.975 2.633 2.980 2.636 2.216 1.781 2.564 2.091 3.289 2.889 2.269 2.744 1.907 2.689 2.769 2.512 3.077 2.499 1.638 1.322 1.409 1.057 1.288 0.829 0.479 + 2.576 1.409 1.687 -0.475 2.183 4.132 4.389 2.762 2.684 2.693 3.428 2.085 2.298 3.633 3.344 2.350 2.014 1.763 2.621 2.253 1.559 2.728 3.174 1.981 1.995 2.915 2.086 2.571 1.845 1.749 1.298 0.937 1.055 1.619 0.899 0.621 + 3.453 2.281 2.994 2.732 3.015 4.051 3.493 2.463 1.440 2.743 1.743 1.060 0.701 2.333 2.163 2.509 2.420 2.711 2.043 1.584 1.737 1.950 1.371 1.059 1.376 1.655 1.840 2.349 2.410 2.566 1.936 1.286 1.183 1.336 1.035 0.599 + 0.803 1.356 1.801 1.418 1.771 2.051 2.479 2.358 1.989 1.675 1.256 1.592 -0.232 1.271 1.847 2.181 1.912 1.609 2.014 2.292 1.769 1.417 1.850 2.221 1.817 1.561 2.147 1.724 2.057 1.905 1.455 0.813 1.396 0.740 0.943 -0.252 + 0.707 0.627 -0.131 0.298 0.258 2.065 2.071 1.688 1.195 1.888 2.160 1.181 1.953 1.754 1.885 2.408 2.003 3.700 3.602 2.965 2.518 2.042 1.473 1.117 0.509 1.585 0.981 0.848 1.264 0.994 0.527 0.720 0.689 0.449 0.619 -0.625 + 1.520 1.349 2.313 1.610 1.735 2.992 2.020 1.866 1.299 1.357 0.866 0.047 1.930 2.915 1.439 2.819 2.627 3.916 2.258 1.666 2.127 1.189 0.868 1.559 1.265 2.332 1.204 1.026 1.695 2.238 1.114 0.612 0.586 0.495 0.601 -1.000 + 2.441 2.384 1.805 1.755 2.139 2.578 2.869 2.892 2.225 1.759 1.522 0.081 1.222 3.066 1.954 1.398 2.227 2.876 1.831 0.860 0.864 0.611 -0.640 0.958 1.073 1.060 1.279 1.402 1.196 1.248 0.563 -0.063 0.081 0.285 0.956 -0.138 + 1.323 1.161 1.421 1.824 1.728 3.295 3.668 2.629 3.017 1.584 1.402 -0.000 1.044 2.331 2.412 2.134 2.976 3.523 2.383 1.495 1.763 1.844 1.112 1.024 -0.255 0.072 0.929 0.679 0.865 0.600 0.462 -0.357 0.036 -0.177 0.447 -0.411 + 0.962 1.098 -1.477 -1.476 0.635 1.632 2.131 2.328 1.170 1.255 2.080 1.119 1.344 3.233 2.945 0.007 1.206 0.722 0.372 0.953 0.724 1.398 1.787 1.424 0.746 0.952 1.692 1.954 2.138 1.509 1.375 1.101 1.048 0.495 0.206 -0.644 + 3.770 2.109 0.096 0.697 0.391 2.131 2.451 2.244 1.883 1.551 1.303 2.971 3.386 4.470 4.253 1.743 2.873 2.005 1.597 1.485 1.376 1.955 1.254 1.030 0.882 0.596 0.135 0.591 0.311 0.799 0.467 0.858 0.617 0.764 0.377 -0.004 + 1.715 1.131 0.506 2.358 3.070 3.601 3.578 2.486 3.463 2.277 2.761 2.828 2.795 3.490 3.315 0.720 2.158 2.274 2.222 1.735 0.561 0.567 0.367 0.856 1.541 1.807 1.411 1.299 1.183 1.683 0.885 0.744 0.732 0.981 0.273 -0.602 + 3.634 3.957 3.458 1.968 2.326 3.603 3.460 2.431 4.149 3.226 2.552 1.907 1.196 2.189 2.435 2.300 1.394 1.910 1.672 0.779 1.517 0.876 1.018 1.292 1.651 2.963 1.624 1.358 0.683 0.926 -0.006 0.900 1.349 0.790 1.232 0.281 + 0.589 2.377 1.559 1.507 1.589 3.254 3.129 3.135 2.668 1.147 0.939 1.089 2.280 1.368 1.618 1.539 1.884 3.009 2.075 0.494 0.706 0.749 1.521 -0.001 0.799 1.906 1.285 1.509 2.018 1.240 -0.202 -0.307 0.623 0.377 0.296 -0.402 + 4.808 4.168 3.351 1.906 2.784 3.432 3.464 1.718 1.204 0.214 -0.818 -0.072 0.464 2.452 2.875 2.654 2.589 2.981 3.140 2.066 1.704 1.230 2.299 2.150 1.877 2.368 1.995 2.171 1.332 0.524 0.995 0.376 0.523 0.788 -0.185 -0.668 + 2.394 1.787 1.314 0.907 0.978 1.320 1.018 0.108 0.071 0.496 -0.221 0.112 1.447 2.220 1.925 2.270 2.752 3.156 2.653 2.288 1.327 1.944 3.008 2.125 0.343 1.875 1.556 2.021 1.495 0.394 1.347 1.236 1.345 0.682 0.192 0.484 + 4.355 3.189 1.586 3.228 4.373 3.683 3.300 1.690 1.794 1.730 1.467 2.035 2.852 2.689 2.001 2.844 2.916 1.660 1.556 2.636 2.680 2.566 2.161 1.998 2.788 1.863 1.173 1.911 1.411 1.318 0.786 0.891 0.741 1.009 0.430 0.717 + 4.266 4.858 3.866 4.639 5.488 5.307 5.044 2.856 2.804 2.062 1.791 0.537 1.072 2.941 2.993 2.552 2.539 2.209 3.119 2.966 1.957 2.250 3.080 2.039 1.713 3.092 2.044 2.353 1.465 2.070 1.205 1.532 0.580 1.742 1.491 1.317 + 1.554 2.700 2.156 2.712 3.104 2.775 3.787 3.091 2.777 2.838 3.560 2.714 1.106 2.950 3.099 2.516 3.233 2.979 2.799 4.257 3.210 2.879 2.857 3.313 3.331 2.801 3.928 3.812 3.260 1.927 2.170 2.926 1.811 1.778 1.696 1.387 + 0.581 2.078 2.416 1.577 1.633 2.482 3.147 3.580 2.975 0.662 1.007 1.187 0.593 3.164 2.648 1.593 1.501 2.541 3.170 2.966 2.634 2.765 3.349 3.839 3.931 3.572 4.011 3.245 2.677 2.441 1.995 2.222 2.127 2.121 1.972 1.394 + 0.484 1.267 1.976 1.334 1.673 3.365 3.064 1.976 2.455 2.432 2.039 1.839 1.751 3.621 3.574 1.976 1.181 2.392 1.986 1.741 2.326 2.342 2.527 2.541 2.810 2.996 2.829 2.491 2.607 2.928 2.382 2.387 2.466 1.809 1.816 1.105 + 4.722 4.042 2.246 3.348 2.935 1.992 2.293 2.491 1.279 1.310 3.001 2.811 1.995 1.633 1.443 1.125 2.586 1.956 2.269 2.749 2.801 1.964 2.875 3.307 2.409 2.667 2.336 2.818 1.359 2.962 2.041 2.350 1.844 1.836 0.963 0.291 + 2.955 4.125 2.974 2.706 1.746 1.998 1.607 2.737 2.212 2.216 2.611 2.256 1.619 2.375 2.517 2.176 2.421 2.915 2.298 3.203 2.615 2.810 3.445 3.011 2.358 2.700 1.935 2.989 1.986 1.263 1.209 1.757 2.331 2.304 1.847 1.393 + 4.729 3.337 1.368 1.801 2.418 2.965 3.375 3.881 2.973 1.888 2.864 2.247 1.841 3.682 4.343 3.645 4.129 3.583 2.479 2.181 2.377 3.297 3.323 2.885 3.134 3.421 2.830 2.154 1.069 2.547 1.842 0.407 0.974 1.992 1.630 0.895 + 1.536 2.399 2.062 1.039 1.430 2.870 3.146 3.164 1.357 0.540 2.101 2.241 1.515 3.535 4.420 3.778 3.641 4.005 2.131 2.334 2.630 3.444 3.035 2.527 2.318 2.396 3.052 3.125 2.775 2.150 1.194 0.226 1.508 1.849 1.408 0.791 + 4.404 3.834 3.162 2.251 2.516 3.231 2.811 3.053 1.658 1.635 3.170 2.406 2.901 3.742 3.328 2.595 3.458 2.304 2.208 2.136 2.109 2.162 2.959 1.845 2.659 2.616 2.432 2.533 2.817 2.382 2.096 0.572 1.294 1.767 1.474 0.488 + 2.347 3.601 2.865 3.255 1.922 2.356 2.292 3.017 1.266 1.747 3.461 3.657 3.723 4.448 4.146 2.979 4.740 3.652 2.747 2.698 2.116 2.358 1.686 2.145 2.803 2.710 1.447 1.367 1.840 1.775 1.576 0.876 0.560 0.803 0.946 0.089 + 3.195 3.567 2.800 2.957 1.995 1.415 2.114 2.655 1.422 1.193 2.786 2.554 2.645 4.144 3.754 2.374 4.503 4.568 3.007 2.970 2.365 2.974 2.271 2.200 2.661 3.051 1.899 2.243 2.007 1.291 1.710 2.326 2.134 2.315 1.239 1.009 + 3.024 3.493 2.378 0.382 1.981 2.987 3.246 2.154 1.758 1.743 3.049 3.188 1.655 4.486 4.246 2.539 3.079 3.782 4.321 3.489 2.669 4.098 3.724 2.921 3.283 3.249 2.247 3.034 2.720 1.521 2.122 2.393 3.026 2.127 2.630 1.957 + 2.245 1.155 1.018 2.184 1.454 -0.261 0.584 1.496 1.561 1.648 3.600 3.251 2.409 3.869 3.924 3.503 3.394 3.359 3.364 3.704 2.588 3.146 4.248 3.697 3.431 4.190 3.564 2.579 3.161 2.579 2.600 3.579 3.591 3.163 3.613 3.240 + 1.708 1.850 0.700 0.966 0.692 0.808 0.990 3.275 2.516 0.659 1.475 2.607 3.741 4.052 3.182 4.030 4.479 3.872 3.432 2.822 3.083 3.768 4.860 4.652 4.307 4.215 4.564 3.707 4.012 4.162 3.920 5.039 4.528 3.475 4.622 4.034 + 2.484 1.578 0.615 -0.695 0.851 1.050 2.952 2.986 3.119 2.941 3.271 3.298 3.044 2.541 2.846 3.150 2.894 3.337 2.227 2.410 3.475 4.890 6.473 5.647 5.590 4.937 4.197 4.411 5.329 5.911 5.558 5.820 5.598 5.261 5.265 4.046 + 3.777 3.512 3.426 1.517 3.250 3.924 3.002 4.021 3.977 3.819 4.077 4.202 3.767 4.105 3.543 3.582 4.535 4.140 2.641 3.527 4.856 5.643 5.341 5.591 5.943 5.437 4.944 5.318 6.329 6.001 6.511 6.547 6.252 5.903 5.533 4.619 + 1.824 2.838 3.289 2.564 3.952 4.371 4.441 4.084 3.857 3.190 4.128 4.961 4.245 3.918 4.670 5.458 5.624 4.517 4.257 4.839 3.764 5.640 6.274 6.380 5.574 5.681 6.116 6.440 5.471 5.513 6.659 7.504 7.019 6.424 6.237 5.536 + 2.977 2.309 3.227 4.173 3.280 2.922 3.462 4.770 3.689 2.956 4.917 4.891 4.308 4.583 4.230 4.692 4.603 4.934 4.547 5.222 4.172 5.279 6.270 6.268 6.270 6.807 7.165 7.338 7.035 6.468 6.137 7.637 7.616 7.356 7.540 6.936 + 3.479 3.372 4.297 3.899 2.764 4.163 4.354 4.464 2.643 2.861 3.307 4.802 4.233 3.134 5.318 5.659 5.252 6.230 6.322 6.259 5.550 6.380 6.348 6.500 7.551 6.525 6.691 6.860 7.188 7.699 7.954 7.546 8.152 8.211 7.582 6.340 + 2.856 4.052 3.256 1.911 1.177 2.783 3.400 3.885 3.367 3.553 2.045 4.007 4.869 3.766 4.553 6.392 6.408 5.339 5.883 7.040 5.663 6.689 7.551 6.381 6.263 6.551 6.226 7.276 6.975 7.578 7.941 7.806 8.021 7.109 7.280 6.870 + 4.279 4.422 3.714 3.185 4.666 4.937 4.827 5.192 3.939 1.481 2.183 3.373 4.125 3.936 3.981 6.443 6.522 6.079 6.757 6.966 6.516 6.202 7.497 7.385 7.447 7.601 7.133 6.942 7.920 8.107 8.465 8.347 8.204 6.502 7.569 7.326 + 3.244 2.846 2.306 3.434 3.820 3.475 3.923 4.985 4.752 3.825 4.007 4.773 4.601 5.479 5.468 6.727 5.904 4.888 5.623 5.705 6.168 7.132 7.319 8.867 8.413 8.086 6.883 7.018 7.104 7.035 7.205 8.882 9.076 7.764 8.307 7.978 + 2.770 4.020 3.463 2.112 3.621 3.722 3.317 2.400 3.822 4.592 5.408 5.838 4.001 6.417 5.749 7.004 7.007 6.016 6.784 6.354 6.974 7.940 8.273 8.225 7.874 6.655 6.123 6.952 7.172 6.521 7.059 8.030 7.573 7.960 7.676 6.682 + 1.805 3.171 3.306 2.214 3.590 3.225 2.431 3.417 3.956 3.950 5.041 5.482 4.823 5.393 6.031 6.374 6.473 6.688 6.051 6.349 6.480 7.548 7.722 7.166 7.436 7.626 6.615 7.177 7.498 8.015 7.246 8.019 8.024 7.530 7.973 6.578 + 4.236 4.150 2.934 3.573 3.027 3.499 3.689 3.741 2.073 2.796 4.416 5.173 5.304 4.925 5.062 4.947 5.283 6.436 6.334 6.075 6.649 6.618 8.047 7.707 6.681 6.501 5.800 6.561 7.922 7.791 6.855 6.994 7.697 6.596 7.382 6.420 + 4.811 4.262 1.958 2.463 2.864 3.398 3.220 2.115 2.633 3.566 3.474 3.714 4.119 4.463 4.253 4.595 5.768 5.381 5.645 5.247 6.235 6.671 7.702 7.462 7.287 6.889 6.440 7.675 8.141 7.963 7.247 7.205 7.293 7.558 8.039 6.572 + 1.961 1.958 2.113 -0.595 1.381 3.166 2.818 2.545 2.858 4.320 3.636 3.163 2.660 3.655 3.374 3.590 5.291 4.611 6.453 5.902 5.103 6.257 7.101 6.347 6.727 6.252 6.216 6.226 6.867 5.266 6.663 7.135 7.587 7.023 7.526 6.822 + 2.168 3.139 3.062 2.302 2.578 4.554 4.108 2.669 3.013 4.238 4.699 3.518 4.103 4.992 4.859 4.780 6.555 5.181 5.263 5.717 5.443 6.369 6.735 6.321 6.920 6.557 6.550 6.609 6.930 7.100 7.181 7.637 7.764 6.840 6.719 6.195 + 2.772 3.429 3.777 2.458 2.807 4.426 4.377 3.143 4.000 3.982 4.309 4.759 4.316 5.893 6.067 5.957 5.282 3.901 5.234 5.460 5.762 6.845 7.871 7.594 7.836 7.356 6.301 6.561 5.926 6.493 6.798 8.437 7.631 6.854 6.863 6.516 + 3.005 3.500 3.590 3.312 2.409 3.870 4.840 3.248 3.426 3.656 3.032 4.374 4.379 4.905 5.058 5.650 3.952 4.572 5.321 4.219 5.069 6.046 7.391 7.513 6.512 5.741 5.962 5.766 6.483 5.386 5.712 6.881 6.579 4.786 6.778 5.693 + 5.757 5.262 4.091 2.954 3.545 5.699 5.182 2.150 3.053 4.053 4.316 4.821 4.397 5.244 5.004 4.973 4.164 3.923 4.041 4.902 4.684 4.120 5.602 5.327 4.120 3.954 5.021 4.850 4.739 4.957 5.658 6.259 6.106 5.718 5.670 4.745 + 4.490 4.348 5.037 4.688 2.608 4.924 4.792 3.107 2.483 2.179 3.724 3.417 3.381 5.131 5.904 5.856 5.828 6.573 6.634 6.242 5.199 5.603 6.149 6.047 5.625 5.878 6.099 6.455 5.876 5.395 4.750 4.926 4.606 3.458 4.325 3.623 + 3.718 3.358 3.813 2.692 3.007 4.279 4.579 3.940 2.735 2.996 3.338 2.359 2.517 5.162 5.131 4.808 5.962 6.943 6.546 6.350 4.670 5.319 5.675 6.027 5.296 5.630 6.059 6.611 5.695 5.297 4.986 5.020 5.483 3.686 3.657 3.007 + 4.095 4.202 5.030 3.638 1.156 3.753 4.702 3.732 2.999 3.561 2.490 1.197 2.382 4.499 4.574 3.284 3.672 4.844 3.915 2.618 2.868 3.618 2.536 2.900 2.698 3.047 2.730 3.147 2.232 2.436 2.524 2.749 3.068 2.276 2.725 1.757 + 4.116 5.443 5.194 3.563 2.319 2.810 2.872 2.576 2.408 2.967 2.304 1.792 1.945 3.377 3.122 1.730 2.373 3.223 2.548 1.302 1.833 2.910 2.516 1.826 2.303 1.956 2.211 2.222 2.246 2.439 2.794 1.998 2.591 1.753 1.523 1.433 + 5.110 5.357 5.827 4.938 4.620 5.402 5.958 4.521 1.832 2.690 3.593 3.037 2.171 4.870 3.834 3.237 3.602 4.147 4.087 4.397 5.067 5.273 6.447 7.127 6.540 5.515 4.480 3.829 4.809 6.114 6.118 6.509 6.981 6.146 7.289 8.860 + 5.966 4.245 4.527 4.837 3.986 4.147 4.357 4.079 2.070 1.488 3.069 1.715 1.339 4.114 4.082 2.832 3.782 4.070 4.015 3.996 4.207 4.521 6.321 7.256 6.356 5.605 5.513 3.760 5.818 6.646 5.652 6.006 6.582 5.423 6.909 8.825 + 4.780 2.582 2.739 2.084 2.738 2.350 2.894 1.030 1.609 0.640 1.509 2.726 2.819 3.859 4.368 3.605 1.731 2.132 2.983 2.357 1.110 0.939 1.533 2.167 2.675 3.535 3.110 1.909 1.929 1.077 1.863 2.292 2.365 2.327 2.104 2.068 + 2.761 1.780 1.725 3.626 3.404 3.516 3.792 1.792 1.593 1.764 1.701 2.601 1.459 4.572 4.964 3.019 2.220 3.684 2.982 3.178 2.193 1.483 2.276 3.425 3.589 2.961 2.560 3.661 3.567 3.415 3.323 4.173 4.432 4.555 4.608 3.565 + 4.621 4.124 2.980 3.426 3.021 2.866 4.033 2.765 0.584 2.050 1.110 0.817 1.688 4.715 3.664 3.187 3.576 4.098 2.907 2.618 2.473 1.532 2.165 2.259 3.810 3.121 3.678 4.355 4.622 5.197 5.290 5.494 4.691 4.626 4.357 3.287 + 3.991 4.837 5.406 4.864 3.214 4.684 4.959 4.188 2.972 2.093 2.615 2.139 2.451 3.364 3.288 2.340 2.512 3.028 2.734 2.766 2.982 3.144 1.918 1.635 3.218 3.369 2.529 1.974 2.604 2.649 2.695 3.248 3.241 3.497 3.352 1.996 + 4.563 3.747 4.018 4.654 3.031 5.151 4.900 3.822 2.971 2.131 1.778 2.405 1.795 2.919 2.321 1.462 2.254 2.774 2.578 2.615 2.857 3.062 2.490 1.914 3.262 3.646 3.588 2.860 2.503 2.649 2.969 2.420 2.118 2.322 2.369 1.239 + 5.466 6.521 5.631 5.208 5.505 5.698 5.748 5.892 5.193 4.346 3.000 3.999 4.170 4.108 3.629 3.288 3.896 3.533 3.666 3.440 4.475 3.888 4.738 3.850 4.149 5.989 5.794 5.961 5.220 4.042 4.943 5.871 5.209 3.604 2.603 3.785 + 12.092 12.191 11.524 11.722 10.723 10.520 10.718 10.750 9.164 9.228 6.970 8.322 9.268 8.213 7.364 8.141 8.582 9.111 8.029 10.000 10.136 10.182 9.489 9.115 8.288 10.813 11.997 11.593 10.010 9.473 11.079 12.226 10.870 10.171 11.063 11.911 + 13.149 14.201 14.777 14.484 14.856 13.698 12.325 12.295 10.989 10.352 10.708 9.580 9.985 10.404 10.299 10.808 11.193 11.518 11.029 12.922 14.705 13.628 12.362 11.978 11.884 12.849 14.555 13.587 12.294 12.841 14.125 15.083 13.507 11.730 12.519 13.789 + 12.900 15.086 16.334 14.912 16.171 15.724 14.415 13.913 11.842 11.538 12.382 11.698 12.114 11.790 12.118 12.220 12.379 12.793 13.189 14.856 17.136 16.179 14.540 14.254 14.132 15.057 16.487 15.641 14.555 14.911 16.661 17.679 15.822 12.415 12.134 11.929 + 13.507 15.291 16.865 15.506 17.148 17.022 14.786 14.797 13.184 13.167 12.228 12.343 13.289 12.342 12.436 12.668 13.052 13.093 14.121 15.327 18.067 17.488 15.486 15.215 15.096 15.658 17.459 16.792 15.813 16.119 18.024 18.769 17.226 13.420 11.889 12.982 + 13.480 15.270 16.931 15.730 17.540 17.507 14.651 14.786 13.414 13.560 12.087 12.183 13.295 12.532 12.495 12.632 13.169 13.154 14.089 15.569 18.315 18.295 15.332 15.238 15.000 15.998 17.741 17.381 16.143 16.449 18.260 19.065 17.700 14.351 11.787 12.450 + 13.330 15.383 16.930 15.695 17.706 17.542 14.543 14.594 13.275 13.411 11.671 11.875 13.078 12.333 12.313 12.415 13.019 13.032 14.094 15.397 18.332 18.276 15.762 15.450 15.161 16.146 17.843 17.570 16.183 16.337 18.155 18.961 17.743 15.176 12.342 12.407 + 13.136 15.478 16.890 15.632 17.584 17.208 14.392 14.393 13.257 13.234 11.435 11.563 12.840 12.264 12.203 12.286 12.882 12.796 13.936 14.993 17.877 17.555 15.627 15.250 14.890 15.778 17.450 17.246 15.743 15.856 17.579 18.606 17.611 15.367 11.956 11.798 + 13.110 15.392 16.346 15.189 16.758 15.958 14.030 13.280 12.699 12.284 10.951 11.697 11.723 11.882 11.688 11.880 12.337 12.652 13.525 14.602 17.012 16.340 14.715 14.219 14.032 15.220 16.766 16.389 14.670 14.751 16.369 17.993 16.838 14.373 11.700 11.063 + 11.791 13.336 13.266 13.882 13.959 12.634 13.219 12.880 12.005 11.908 12.398 12.378 10.913 10.744 10.829 10.426 9.802 11.227 11.588 12.482 14.083 13.296 12.506 12.116 11.780 12.495 13.787 12.383 11.197 11.666 13.219 15.258 13.982 11.636 10.752 10.386 + 10.048 12.389 12.489 9.950 8.841 8.570 7.695 8.220 7.518 7.961 6.632 6.460 6.474 6.508 5.875 5.314 5.776 6.176 7.301 8.135 7.575 7.348 7.483 7.784 7.407 7.645 7.695 7.767 6.403 6.840 8.770 10.099 9.291 7.815 6.693 6.199 + 9.501 12.189 11.798 7.998 8.188 7.468 6.831 6.290 5.683 6.174 5.485 4.722 4.615 4.216 4.336 4.000 4.452 4.628 6.784 7.323 7.999 7.164 5.871 5.083 4.744 6.302 7.201 6.480 5.110 5.304 7.330 8.673 8.258 6.423 3.949 3.251 + 10.084 12.597 12.296 8.944 7.418 7.514 7.681 7.510 5.820 5.883 3.939 3.972 3.804 4.336 3.899 3.527 4.202 3.789 5.721 7.425 7.661 7.317 5.137 4.549 5.330 6.412 7.167 6.244 5.326 4.742 7.054 7.719 7.524 4.685 3.694 3.526 + 10.074 12.405 11.593 8.383 8.177 7.542 7.020 7.875 5.876 4.807 5.628 4.657 4.082 4.262 3.909 3.619 3.417 4.799 5.984 6.861 7.634 7.297 5.069 4.397 4.927 6.398 6.193 5.810 4.985 4.947 6.547 7.128 7.026 5.827 3.123 2.077 + 9.906 12.493 12.020 8.921 9.697 9.127 7.509 6.643 5.208 5.057 6.290 4.667 6.155 6.904 7.058 7.243 7.219 6.455 6.797 7.790 8.576 7.394 6.321 6.405 7.236 8.325 8.349 7.003 5.494 5.688 6.947 8.245 8.459 7.663 7.564 7.442 + 10.290 12.645 13.464 12.514 12.218 10.733 10.834 10.107 9.459 9.866 9.762 9.276 8.686 9.984 10.364 10.020 10.137 10.086 10.063 11.520 13.384 12.554 9.114 10.584 11.483 12.820 12.591 11.313 11.628 11.004 11.700 13.345 12.583 12.457 12.957 12.529 + 10.357 13.284 13.697 11.592 12.762 11.048 12.311 11.040 9.923 9.609 9.806 9.872 9.338 9.583 9.719 9.496 10.149 10.963 10.972 12.068 14.592 14.329 11.732 11.518 12.239 13.049 13.422 12.674 13.125 12.995 13.765 14.502 13.813 14.202 14.425 13.992 + 10.785 14.125 14.887 13.419 14.662 13.257 13.034 11.683 10.990 11.319 10.791 11.329 10.586 10.669 11.162 10.533 10.866 11.770 11.598 12.812 15.405 15.156 12.953 12.317 12.228 13.576 14.790 13.502 12.734 12.410 13.689 15.624 14.010 13.674 12.877 11.864 + 12.388 14.596 15.879 14.500 16.042 15.193 13.608 13.187 12.346 11.770 10.733 11.084 11.775 11.929 11.865 12.023 12.250 12.274 12.839 13.546 16.139 17.220 15.139 13.827 13.175 14.092 15.486 14.709 12.983 12.772 14.290 15.907 14.591 12.743 13.183 12.277 + 12.898 14.889 16.284 14.897 16.505 16.029 13.689 13.750 12.743 12.635 11.103 10.991 11.861 11.889 11.717 11.837 12.403 12.395 12.772 13.651 15.725 17.180 15.699 14.030 13.237 14.072 15.689 15.027 13.133 12.935 14.227 15.605 13.881 12.108 12.279 10.987 + 12.881 14.756 16.377 15.157 16.346 16.243 13.799 14.082 12.971 13.305 11.581 11.573 11.993 12.047 12.166 11.882 12.498 12.761 12.869 13.784 16.079 16.470 15.462 14.567 13.760 14.449 16.150 15.754 13.868 13.340 13.852 15.142 13.799 11.399 12.168 9.468 + 12.686 14.532 16.180 15.004 15.748 15.782 13.286 13.533 12.531 12.953 11.464 11.445 11.199 11.709 12.118 11.946 12.081 12.619 12.820 13.409 16.143 16.526 14.352 14.001 13.175 14.120 15.332 15.061 13.208 12.733 13.257 14.524 13.490 10.356 11.240 8.662 + 12.106 14.193 15.209 13.756 14.521 14.205 11.970 11.550 11.189 11.446 11.157 10.426 10.587 10.856 11.202 11.062 11.048 11.574 11.948 12.692 15.559 15.307 12.991 12.422 11.616 12.381 13.988 13.381 11.326 10.631 11.377 13.285 12.419 10.477 9.913 8.767 + 10.342 12.194 11.216 11.051 11.091 9.561 8.855 8.656 7.907 6.913 7.068 7.203 7.623 6.680 6.600 6.529 7.532 8.194 8.291 9.390 11.779 10.966 9.187 8.167 8.153 9.082 10.568 9.372 7.748 7.615 8.545 11.142 10.409 8.325 8.246 6.711 + 9.685 11.706 11.385 9.290 7.075 6.171 6.602 6.496 5.986 6.243 4.576 3.852 4.823 4.579 3.379 2.502 3.550 4.776 5.130 6.315 8.102 8.190 4.946 5.281 5.304 6.277 6.167 5.457 5.082 4.861 5.537 6.420 6.334 5.787 5.673 5.553 + 9.530 10.970 10.117 8.700 6.063 5.320 4.851 5.363 6.917 6.632 7.064 6.130 5.807 4.805 4.748 4.113 4.579 4.051 5.328 5.714 6.817 7.286 5.787 6.544 5.643 5.556 5.756 5.800 5.853 5.998 6.104 6.558 6.653 5.985 5.537 5.131 + 9.152 10.361 10.739 8.903 7.641 6.767 6.383 6.335 7.096 6.313 6.194 6.009 4.716 4.677 3.802 3.602 4.252 4.127 4.981 5.516 6.128 6.472 5.315 4.518 4.528 4.727 6.417 5.755 4.933 6.005 6.734 6.964 6.967 6.325 6.327 6.425 + 8.048 7.936 9.380 8.747 7.208 6.596 6.376 6.048 6.895 5.416 3.783 5.667 4.847 5.039 4.508 3.761 4.575 5.490 4.553 4.220 4.325 5.798 5.339 4.075 4.398 4.919 6.465 4.693 4.771 5.789 5.463 6.219 7.052 5.526 7.255 8.197 + 8.573 9.110 10.228 8.580 8.025 7.625 4.804 4.800 5.675 3.795 4.138 5.127 3.801 4.168 4.459 4.144 4.082 4.073 3.564 4.310 5.206 6.313 5.800 5.023 4.675 5.405 6.527 5.906 5.649 5.945 6.263 6.864 6.569 6.427 8.782 9.037 + 8.575 9.662 9.631 7.400 7.918 7.204 4.161 3.203 6.023 5.871 5.452 5.300 3.394 4.331 3.713 5.515 4.485 2.313 3.452 4.903 6.187 6.389 5.409 4.804 4.795 4.974 6.688 6.809 6.294 7.187 8.051 8.233 7.530 6.117 8.075 8.297 + 9.742 10.699 10.321 8.532 8.529 7.798 8.254 8.296 8.301 8.608 8.497 7.930 7.775 7.577 7.743 8.226 8.017 7.823 7.204 6.833 7.462 8.171 8.390 7.928 8.110 8.015 9.685 10.586 10.117 10.025 9.401 11.168 11.295 10.781 10.894 9.307 + 11.459 11.129 12.032 11.094 11.089 10.884 9.730 10.078 9.748 9.630 9.233 9.263 8.631 8.487 9.062 9.186 8.998 9.042 8.858 8.922 9.956 10.774 10.150 9.309 10.012 10.479 11.836 12.158 11.356 12.066 10.953 13.414 12.992 12.370 12.769 11.739 + 9.921 12.301 13.188 11.600 12.372 11.793 11.700 10.450 9.551 9.762 10.176 9.080 8.363 9.310 8.825 8.183 8.709 8.726 9.742 11.141 13.739 13.524 11.526 11.167 10.108 10.954 13.964 13.070 11.884 12.709 12.330 14.003 13.741 13.114 14.297 13.593 + 11.513 13.624 14.913 13.805 14.339 13.281 12.936 12.647 10.839 10.417 10.862 10.412 10.758 10.274 10.698 11.055 11.520 11.796 12.231 13.103 15.345 15.800 12.854 12.553 12.381 13.103 14.263 13.995 13.142 12.216 12.997 14.312 13.339 13.818 14.404 13.161 + 12.706 14.493 15.848 14.188 15.889 15.542 14.078 13.626 12.567 11.773 12.038 12.093 12.658 12.063 11.981 12.109 12.047 12.200 13.032 13.476 16.007 16.683 15.066 14.093 13.545 14.305 15.813 15.550 14.259 14.086 15.221 16.420 14.526 13.172 13.378 11.426 + 12.994 14.919 16.295 14.994 16.876 16.469 14.289 14.175 12.726 12.372 12.041 12.073 12.878 12.098 12.216 12.378 12.609 12.978 13.864 14.440 16.578 16.800 15.698 14.781 14.410 15.501 16.929 16.027 14.724 14.518 15.847 17.126 15.069 13.234 12.794 9.861 + 13.026 15.074 16.383 15.120 17.338 16.820 14.639 14.254 13.209 12.723 12.677 12.524 13.284 12.437 12.525 12.777 12.902 13.326 14.218 14.957 17.295 17.377 16.049 15.210 14.677 16.029 17.329 16.004 14.836 14.649 15.912 17.289 15.364 12.977 12.937 10.163 + 12.909 15.061 16.402 15.309 17.533 17.027 14.772 14.393 13.249 12.983 12.919 12.676 13.436 12.470 12.688 12.865 12.928 13.398 14.146 15.034 17.504 16.987 15.905 15.109 14.850 16.091 17.662 16.021 14.638 14.328 15.432 17.066 15.447 12.789 12.848 11.458 + 13.063 14.995 16.197 15.293 17.331 16.631 13.998 14.119 12.707 12.149 12.728 12.248 12.898 12.180 12.232 12.645 12.803 13.526 14.043 15.811 17.808 16.488 14.906 14.234 14.135 15.845 16.991 14.848 13.730 13.642 14.670 16.501 15.338 12.453 12.652 10.430 + 12.856 14.785 15.625 14.705 16.399 15.083 14.150 13.667 11.118 11.040 12.903 11.615 12.007 10.918 11.352 11.610 12.039 13.084 13.656 15.939 17.068 14.895 13.339 13.000 12.985 15.339 15.603 13.735 12.909 13.092 14.323 16.055 15.084 12.631 12.496 11.650 + 12.172 13.905 14.480 13.177 14.652 13.120 13.251 12.338 11.100 12.068 13.001 11.576 10.172 9.260 10.175 9.947 10.267 11.363 12.722 14.236 13.951 12.582 12.088 11.232 11.235 13.178 12.587 11.663 12.456 13.025 13.095 14.330 14.016 12.281 11.680 10.032 + 11.952 13.695 15.141 14.375 15.076 14.197 13.048 12.862 11.302 9.807 11.836 10.540 9.997 9.730 10.345 10.792 10.880 11.111 12.875 14.696 13.392 12.661 12.003 11.420 12.243 13.890 13.451 12.166 13.135 13.805 14.224 14.000 13.998 13.800 12.396 9.506 + 12.484 14.132 15.611 14.071 15.027 14.419 13.687 13.418 9.529 8.186 11.659 11.030 11.196 10.725 10.753 11.037 11.348 11.911 13.023 15.340 14.981 13.514 12.471 12.546 13.222 14.873 14.069 12.268 12.575 13.336 14.024 14.315 13.942 13.001 12.780 10.654 + 12.832 14.291 15.898 14.594 15.089 14.922 13.960 14.129 11.160 9.938 11.613 11.263 11.686 10.735 10.831 11.475 11.574 12.364 13.369 15.452 15.391 13.753 13.312 13.232 13.558 15.386 15.059 12.136 12.476 12.338 13.464 14.308 12.824 11.105 10.193 9.613 + 13.002 14.288 16.219 15.153 15.275 15.563 14.043 14.732 11.998 10.996 12.396 12.636 12.604 11.847 11.806 12.525 12.104 12.721 13.563 15.714 16.631 14.206 13.650 13.464 13.552 15.291 15.225 13.798 13.415 13.051 13.786 14.689 13.046 10.338 9.567 9.049 + 13.238 14.068 16.391 15.857 15.417 16.177 14.081 14.984 13.153 12.065 11.887 12.898 12.511 12.690 12.318 12.645 12.641 12.976 13.654 15.404 17.400 15.742 14.040 13.313 14.123 16.223 16.334 14.422 13.388 13.583 14.927 15.478 13.484 10.032 9.855 8.860 + 13.163 13.898 16.398 15.944 14.972 16.012 13.967 14.831 13.503 12.988 11.810 12.178 12.115 12.752 12.098 12.588 12.832 13.209 13.722 15.600 17.329 16.222 14.008 13.825 13.857 16.104 16.327 14.272 13.578 13.556 14.245 15.007 13.709 10.612 9.191 7.562 + 13.071 14.016 16.306 15.796 13.956 15.069 13.405 14.348 13.032 13.270 11.799 10.985 11.166 11.945 11.520 12.120 12.582 13.196 13.718 15.823 15.826 15.127 13.510 13.682 14.197 15.724 15.694 13.439 12.822 13.311 14.130 14.080 12.763 10.699 9.125 5.943 + 11.916 13.693 15.138 14.598 13.177 12.448 12.170 12.228 11.512 12.366 11.523 10.787 10.356 10.898 10.286 11.047 11.524 11.814 13.403 15.027 13.675 12.713 12.036 12.258 13.465 13.546 12.954 11.721 11.917 11.027 10.590 11.004 10.184 8.240 6.954 4.774 + 8.275 11.087 11.944 10.695 9.912 7.531 6.351 7.537 8.165 8.401 8.156 7.377 7.426 7.232 7.213 8.165 9.133 7.941 8.436 8.560 7.716 8.575 8.487 7.989 7.192 6.594 6.793 6.629 5.522 5.275 6.290 7.046 6.094 4.209 4.415 3.324 + 8.540 9.578 11.414 10.476 7.189 7.148 5.187 5.775 5.132 5.790 4.796 3.650 3.308 4.351 5.017 6.091 6.471 5.832 6.381 7.891 6.919 6.294 5.256 5.103 5.075 4.671 5.348 4.262 3.602 4.398 4.794 5.577 4.784 3.522 3.675 3.015 + 10.274 10.127 10.796 10.508 8.355 7.730 5.477 5.375 5.723 6.225 5.869 4.542 4.221 5.584 5.755 6.511 6.500 6.001 6.242 7.192 7.389 5.801 5.117 3.961 4.742 5.912 5.731 3.585 3.269 2.909 4.439 5.397 4.621 4.284 3.586 2.898 + 9.404 10.287 10.832 8.625 7.689 7.831 4.852 4.992 4.890 5.920 5.255 3.549 3.096 4.101 4.982 5.859 5.790 4.787 5.046 6.183 6.368 6.264 5.405 4.530 4.458 4.662 4.758 3.527 3.094 3.398 4.292 5.488 5.119 3.888 3.619 3.557 + 8.677 8.991 9.655 8.012 8.319 8.162 5.592 4.222 4.225 5.691 5.281 3.565 4.691 4.675 5.056 5.185 5.605 6.132 6.637 6.220 7.221 6.832 5.892 4.732 4.954 5.458 5.670 5.716 4.181 4.634 4.553 4.907 5.240 5.338 4.686 3.126 + 8.596 9.191 8.511 7.499 5.611 6.092 5.905 5.442 6.088 6.864 6.586 6.165 5.246 5.272 5.674 6.006 5.939 6.078 6.100 6.299 6.377 6.390 6.463 6.457 6.656 6.168 5.590 5.429 5.245 5.239 4.174 5.247 5.925 5.779 4.726 3.753 + 8.204 9.007 10.221 9.896 8.067 7.675 8.051 8.119 9.201 9.980 10.328 9.664 8.128 6.953 8.472 9.031 9.388 9.626 9.282 9.255 9.008 9.262 9.706 10.106 10.228 9.566 8.603 8.075 8.427 8.380 6.765 7.224 8.284 8.038 7.352 6.165 + 7.789 8.865 9.470 7.836 7.066 6.441 5.752 6.837 6.568 7.627 8.284 7.396 4.803 5.106 6.274 5.959 6.239 7.146 6.051 6.141 6.257 6.263 6.500 7.167 7.286 6.517 5.818 5.272 5.841 5.629 4.822 5.530 5.632 5.491 5.061 4.154 + 7.936 8.785 7.298 5.904 5.746 6.826 6.019 6.605 4.741 4.372 2.930 3.192 3.833 5.022 4.771 3.854 3.526 3.624 5.037 4.663 5.566 4.786 4.846 5.246 4.104 4.728 4.985 4.185 4.432 4.549 3.913 5.250 4.582 5.229 4.264 3.473 + 6.749 6.828 5.366 5.357 6.196 6.599 5.316 5.820 3.996 5.583 6.027 4.417 3.090 4.167 4.554 4.430 4.420 4.429 4.994 5.443 5.971 5.432 5.362 5.510 3.993 4.040 4.085 4.496 5.025 4.460 4.850 5.308 4.219 3.475 3.672 2.740 + 4.752 4.794 5.815 5.830 6.109 6.530 4.755 4.631 3.748 5.027 4.699 3.525 4.106 4.811 5.007 4.955 4.511 4.716 5.120 5.076 6.188 5.599 5.680 4.873 4.299 4.406 5.007 4.541 4.198 4.692 4.229 4.413 4.290 4.292 4.656 3.453 + 4.292 4.598 6.827 6.650 4.848 5.520 5.878 4.560 4.200 5.049 4.728 3.719 3.396 4.487 4.182 3.427 4.175 4.312 4.473 5.710 6.472 4.501 5.506 6.029 5.139 4.243 4.193 4.235 4.087 4.428 4.413 4.909 4.749 4.195 4.819 3.528 + 5.088 5.463 6.752 6.312 4.595 5.102 5.071 4.490 4.939 4.452 3.087 4.206 4.052 6.346 5.930 3.878 5.303 5.123 5.145 5.506 6.939 6.327 6.111 5.535 6.401 4.882 4.228 5.253 4.289 4.379 4.496 5.180 5.004 4.336 4.350 3.450 + 6.446 6.029 5.924 5.803 5.139 6.478 6.139 5.576 4.223 4.242 5.469 4.601 4.908 5.673 5.894 3.604 5.050 6.043 5.926 6.300 6.805 6.534 5.666 5.476 6.576 5.425 4.721 4.902 4.491 4.967 4.733 5.384 4.923 4.906 4.119 3.434 + 6.232 5.724 5.743 6.785 6.152 5.790 6.311 6.225 4.781 4.644 5.025 4.511 3.780 5.998 5.549 2.783 4.080 5.590 5.760 4.953 5.846 5.642 4.801 4.746 5.620 4.479 5.904 6.135 4.920 5.079 5.110 3.873 4.249 4.628 4.272 3.344 + 7.231 6.654 5.675 5.755 4.519 5.160 6.104 6.356 5.841 4.350 3.883 4.944 4.605 6.901 5.981 3.268 4.065 5.640 4.988 5.952 5.752 5.944 6.353 4.987 4.537 4.272 5.229 6.102 5.079 4.795 5.193 5.349 4.778 4.532 3.915 3.459 + 7.653 6.917 5.378 5.627 4.877 5.871 5.750 5.974 5.908 4.890 4.277 5.259 4.642 5.412 5.071 4.294 5.610 5.473 5.839 5.873 5.755 5.333 5.985 6.207 5.510 4.861 4.203 5.927 5.576 5.055 4.694 5.778 5.124 5.345 4.788 3.419 + 5.232 6.149 6.316 5.864 6.885 6.787 5.693 4.223 4.913 4.337 5.565 6.650 5.953 6.632 6.601 5.361 5.600 5.633 5.918 6.428 6.506 6.328 5.922 5.979 5.853 5.139 5.588 5.928 5.408 5.565 5.219 5.451 5.030 5.462 5.143 4.623 + 6.112 6.784 5.425 5.813 7.187 6.980 6.934 5.541 4.993 5.784 5.101 5.375 5.540 6.207 5.839 5.835 5.114 5.864 6.244 6.136 7.182 6.652 6.192 5.874 5.771 6.064 5.922 4.883 4.957 5.251 5.207 5.580 5.000 4.857 4.620 4.458 + 5.540 6.956 6.323 5.747 5.821 6.856 6.826 6.272 5.937 5.269 5.195 6.003 6.630 5.742 6.552 6.794 6.945 7.008 6.379 6.396 6.162 6.243 7.047 5.574 6.566 5.657 5.840 5.622 5.046 5.045 4.553 5.310 5.519 5.192 4.655 3.931 + 7.581 7.919 8.143 6.879 6.618 6.863 6.614 5.296 5.059 5.344 6.071 5.964 5.663 6.533 6.370 6.263 5.633 5.822 6.799 6.743 5.740 7.532 7.308 6.481 6.786 5.905 5.531 6.168 6.088 5.793 4.764 5.242 6.044 5.832 5.385 5.223 + 7.988 6.720 6.266 5.710 5.941 7.584 6.994 6.605 6.107 5.684 5.418 4.742 4.415 6.286 5.981 5.846 5.508 6.437 6.568 6.035 5.616 6.808 7.106 6.075 6.028 5.988 5.185 5.623 5.555 5.612 6.040 6.207 6.209 5.870 4.870 4.708 + 8.739 7.884 5.787 6.864 6.600 7.150 7.452 6.239 5.744 4.698 5.063 4.504 5.593 6.554 6.586 6.782 6.590 6.054 6.384 5.819 6.289 6.931 6.233 5.491 5.598 5.361 5.646 6.475 5.871 4.889 6.191 5.886 6.475 6.299 5.522 4.685 + 8.870 9.056 7.541 6.329 6.065 7.264 7.574 6.405 4.836 3.882 5.184 5.811 5.121 7.140 7.667 6.698 6.010 6.373 6.060 6.270 7.669 7.152 6.821 7.299 6.524 5.904 7.201 6.310 5.333 5.563 6.765 5.849 6.399 6.514 6.018 5.151 + 7.344 8.773 9.272 10.554 11.381 12.212 12.056 10.172 8.702 8.361 8.157 8.278 7.590 6.975 9.379 11.475 11.952 10.308 10.577 10.158 9.891 10.142 10.050 9.995 10.273 9.684 10.051 9.975 9.561 9.293 10.456 8.936 8.310 7.807 8.810 7.564 + 7.350 8.117 8.488 9.729 11.588 13.116 13.670 11.743 9.090 7.293 7.300 7.303 6.543 6.130 9.174 11.937 13.269 11.387 10.004 9.294 8.875 9.255 8.970 9.191 9.401 8.681 10.010 9.406 8.612 8.687 10.791 8.778 7.167 6.878 8.858 8.029 + 6.491 5.953 5.962 6.369 6.622 8.841 11.200 11.653 10.624 8.116 4.233 4.330 3.829 3.616 3.929 7.228 10.409 10.082 6.588 6.280 8.908 9.421 9.410 10.158 8.807 8.779 8.822 8.018 7.845 9.060 9.238 8.353 5.983 9.077 10.385 9.175 + 7.355 5.631 6.798 7.478 6.276 6.653 9.266 8.392 9.090 8.465 6.637 7.229 5.952 6.247 6.790 9.156 10.515 9.676 9.820 8.834 8.679 9.324 9.322 8.888 7.863 7.655 8.058 8.006 7.816 7.713 8.327 7.943 6.669 7.376 8.491 6.766 + 7.068 8.800 8.523 8.128 7.835 10.585 11.749 11.893 11.507 10.757 11.922 11.055 11.467 11.728 12.227 13.216 13.712 11.915 11.493 11.455 10.590 10.257 10.520 11.846 10.823 9.700 8.158 8.679 9.138 9.721 10.079 9.164 7.886 7.067 6.269 6.448 + 10.797 11.421 11.279 11.200 12.004 12.902 13.457 13.606 14.844 16.134 16.435 16.196 15.553 14.957 15.147 15.871 16.601 15.504 13.919 12.594 12.235 12.137 12.038 12.230 11.187 8.962 9.689 9.847 10.067 10.155 12.483 12.958 11.672 8.550 7.385 7.220 + 10.867 12.547 12.175 12.062 11.794 13.252 14.008 13.970 14.916 16.982 17.084 17.491 16.462 15.033 15.027 16.117 17.540 16.979 15.004 13.831 13.235 12.892 13.173 13.645 12.643 11.154 10.833 10.421 10.011 10.228 12.362 12.846 11.684 9.697 7.569 6.038 + 10.783 12.870 12.773 11.823 12.069 13.496 13.756 14.630 15.612 17.023 16.867 17.121 15.616 14.585 14.918 15.806 16.681 17.421 16.406 15.247 14.363 13.771 13.915 15.014 15.317 14.285 12.989 11.515 10.285 11.985 13.474 13.188 11.544 9.882 8.639 6.854 + 11.138 13.328 13.284 12.496 12.994 13.652 14.397 15.509 15.921 17.381 16.620 16.947 15.581 14.956 15.282 15.779 16.013 16.894 16.559 15.522 14.850 14.011 14.310 15.225 15.338 13.828 12.645 11.702 11.507 11.152 12.838 12.837 11.312 9.449 9.288 8.010 + 11.626 13.630 13.871 12.637 13.683 13.951 15.017 16.093 16.728 17.782 17.074 16.442 15.638 15.061 14.882 15.207 15.811 16.703 17.713 17.305 16.162 15.609 15.675 16.226 16.317 14.995 13.905 13.302 12.169 12.190 13.580 13.629 12.403 11.704 11.411 8.663 + 12.003 13.631 14.404 12.651 14.434 14.500 16.241 16.323 17.192 16.712 16.276 15.254 15.025 14.517 14.279 14.103 14.470 15.365 16.654 17.205 16.822 15.559 15.263 15.298 15.410 14.591 13.113 12.714 11.732 11.424 12.061 13.193 12.691 12.345 10.899 7.684 + 12.848 13.466 14.821 13.800 15.512 15.564 17.064 16.460 16.090 15.737 14.763 14.307 14.413 13.476 13.256 13.194 13.970 14.613 15.691 16.967 17.220 16.139 15.533 15.458 15.708 14.378 13.764 13.243 11.673 11.821 12.774 13.624 13.626 13.054 9.918 6.053 + 13.064 12.769 14.764 14.048 15.897 15.635 15.782 15.844 13.318 14.057 12.532 12.664 12.150 12.362 11.854 11.592 12.896 13.452 14.479 16.366 17.066 15.061 14.773 14.779 15.405 14.242 14.118 12.772 10.816 10.456 11.646 12.916 13.150 12.227 8.531 5.257 + 13.967 12.376 14.903 14.880 14.950 16.024 14.040 12.777 12.369 12.950 11.978 11.421 11.412 12.053 10.950 11.148 11.907 12.768 13.793 15.550 15.840 14.544 13.872 13.945 15.077 15.423 14.596 12.267 10.072 9.847 10.976 12.271 12.752 11.082 7.654 5.956 + 14.376 12.286 14.772 16.133 14.746 16.173 15.861 12.973 13.674 12.171 12.076 10.825 11.806 11.350 11.569 11.133 11.998 12.491 13.484 14.773 15.667 15.032 13.245 13.434 14.291 15.696 14.629 11.283 9.468 9.640 10.648 12.126 12.013 11.019 7.970 6.229 + 14.837 13.443 14.047 16.829 16.223 14.902 16.326 14.630 13.576 13.517 11.444 12.060 11.609 12.328 11.750 11.645 12.594 12.692 13.580 14.875 16.258 16.246 15.302 14.609 15.126 16.099 15.605 12.561 11.834 11.337 11.764 13.207 13.467 12.188 8.553 7.554 + 14.885 14.115 12.647 17.160 17.261 14.205 16.229 15.820 13.259 14.547 12.438 12.567 11.702 12.558 11.878 12.053 12.241 13.000 13.464 14.835 16.374 17.562 16.262 15.227 15.987 16.616 15.595 13.382 12.786 11.966 12.357 13.499 14.068 12.967 8.630 8.012 + 14.632 14.194 12.289 16.931 17.484 14.658 15.197 15.847 12.956 14.188 13.057 11.874 12.041 11.768 12.154 11.531 11.675 13.196 12.988 13.653 15.455 17.460 16.685 15.648 15.516 16.074 15.509 13.928 13.666 12.675 12.614 13.597 14.048 12.869 8.766 8.222 + 14.928 14.736 12.202 15.388 17.059 15.626 13.532 15.502 14.097 11.951 12.802 10.831 11.642 10.609 11.425 10.791 11.977 12.223 12.858 13.245 14.897 16.538 17.220 15.716 15.443 15.878 15.592 14.482 14.277 13.156 13.107 14.150 14.675 13.936 9.427 8.437 + 14.823 14.853 11.936 14.160 16.141 14.822 11.886 14.668 13.647 12.352 13.794 11.693 11.124 10.121 11.174 10.389 11.397 10.788 11.752 12.174 13.791 14.864 16.499 15.157 14.487 15.077 14.926 13.739 13.662 12.447 12.444 13.423 13.904 12.863 9.145 8.159 + 14.891 14.832 11.755 13.290 14.931 13.441 11.099 13.936 13.488 11.468 13.577 12.239 10.460 10.204 10.370 10.095 10.705 9.797 10.488 10.767 12.462 13.980 14.933 14.034 13.710 13.285 13.192 12.495 11.820 10.864 11.022 12.298 12.977 10.181 9.211 8.557 + 15.206 15.514 13.540 11.764 13.558 12.332 9.643 11.557 11.270 9.592 12.601 11.343 8.620 9.299 10.035 10.117 10.142 9.720 9.346 9.558 10.432 12.302 11.098 11.211 11.432 9.888 8.903 8.871 8.251 7.474 8.204 10.461 11.649 9.284 8.387 7.925 + 15.425 15.736 13.405 10.646 13.670 12.986 8.867 11.706 11.233 9.878 12.709 11.377 8.144 8.107 9.819 10.044 10.583 10.018 9.591 9.092 9.591 11.287 9.770 11.206 11.569 10.250 8.401 6.924 5.542 5.685 7.212 10.306 11.305 9.315 8.755 8.066 + 15.480 15.558 12.993 11.704 14.091 13.097 9.554 12.015 11.094 10.956 12.987 11.126 9.169 8.440 10.136 9.684 10.999 10.107 10.299 9.845 10.417 11.447 9.966 11.877 11.830 11.070 7.692 6.753 6.817 7.216 7.787 11.176 13.019 9.744 9.089 9.238 + 15.416 15.225 12.332 12.653 14.429 12.854 9.952 12.099 10.563 11.986 12.870 9.868 9.772 8.193 10.089 9.539 10.778 10.325 10.529 10.361 10.763 10.961 10.837 12.235 12.496 11.317 8.590 7.634 7.304 8.156 8.648 11.995 12.864 9.546 9.381 10.151 + 15.078 14.637 11.460 13.262 14.520 12.437 11.276 12.449 9.876 12.667 12.417 8.982 9.828 9.052 9.560 10.167 10.120 10.606 9.869 9.965 10.443 11.125 12.029 12.655 13.657 12.268 11.253 10.753 10.217 10.411 10.956 12.694 13.365 10.817 10.256 10.444 + 14.719 14.050 11.715 13.206 14.138 11.897 12.793 13.241 12.376 13.437 11.500 10.163 9.675 10.447 9.914 10.600 10.280 10.963 9.582 9.024 9.329 10.894 13.587 14.410 13.623 13.643 12.938 13.343 12.044 11.739 12.328 13.924 14.056 11.263 10.570 10.403 + 13.980 12.672 11.251 13.999 13.324 11.360 13.399 12.424 12.733 13.100 10.987 11.767 9.651 10.162 10.394 10.423 11.125 10.340 9.186 8.529 9.296 11.353 13.810 14.831 13.468 13.182 13.540 14.370 13.568 12.723 13.252 14.948 14.168 10.419 9.179 9.040 + 13.705 12.077 12.067 14.155 12.935 12.125 13.088 10.873 12.764 12.057 11.597 11.659 9.309 9.277 10.589 10.113 10.288 10.269 9.020 8.397 9.116 10.936 13.254 14.313 13.501 12.482 13.240 14.687 14.078 13.178 13.694 15.026 13.855 10.903 10.453 9.495 + 13.786 11.891 12.908 14.327 12.584 12.710 12.798 10.699 12.509 10.900 11.864 10.824 9.147 9.185 10.150 10.049 9.724 10.109 8.953 8.462 9.089 11.377 12.847 13.939 13.114 12.225 12.891 14.224 14.011 13.079 13.992 15.252 13.525 10.767 10.482 9.609 + 13.772 11.539 13.564 14.415 12.171 13.148 12.523 11.281 12.146 10.469 11.435 9.334 9.227 9.825 9.859 10.142 9.762 9.587 8.663 8.657 9.817 11.272 12.569 14.307 13.128 12.171 13.195 13.956 13.700 13.111 14.185 15.645 13.315 10.965 11.070 10.200 + 13.399 11.162 13.766 14.281 11.959 13.480 12.312 11.801 12.052 10.944 11.371 9.573 9.582 9.911 9.695 9.716 9.882 9.210 9.168 9.638 10.736 12.076 14.038 15.095 13.418 13.109 13.568 13.612 12.835 12.530 14.237 15.058 13.352 10.583 11.030 10.301 + 13.282 11.851 14.282 14.297 12.410 13.973 12.443 12.231 11.869 11.493 11.188 10.378 9.993 9.928 9.976 10.062 10.203 10.356 10.637 11.292 12.193 13.877 15.417 15.228 13.540 11.674 11.663 11.099 10.187 10.550 12.442 13.064 11.541 9.525 10.673 9.871 + 12.843 12.167 14.523 14.054 12.828 14.173 12.063 12.178 11.183 11.516 10.347 10.471 9.510 9.442 10.484 10.283 10.538 11.270 11.431 12.073 12.761 13.432 13.660 14.003 12.098 8.637 8.542 8.152 8.355 8.979 11.949 12.143 10.318 8.557 10.798 9.348 + 12.560 12.667 14.651 13.749 13.297 14.030 11.837 11.790 10.558 11.212 9.167 9.593 9.079 9.507 10.730 10.403 10.714 11.394 11.990 12.072 11.826 11.807 12.268 12.945 10.926 7.980 7.403 6.572 6.862 7.368 10.351 10.061 8.371 7.597 9.821 8.030 + 12.113 13.440 14.728 13.142 13.705 13.365 12.118 11.705 11.362 11.097 10.817 10.006 10.137 9.461 9.611 9.657 10.330 11.500 12.334 12.416 11.135 10.963 11.581 12.603 10.808 8.032 7.142 7.089 7.397 7.904 9.061 8.326 7.791 7.263 7.776 5.918 + 11.671 14.012 14.755 12.870 13.956 12.918 12.809 11.422 11.533 11.074 11.390 10.346 10.087 8.963 8.651 9.756 10.336 10.992 11.633 12.179 11.562 11.100 12.048 12.424 10.875 8.848 8.115 7.246 8.777 9.931 11.367 10.434 9.107 8.617 10.571 8.843 + 11.685 14.440 14.593 13.121 13.925 13.317 13.581 11.616 11.491 11.824 10.851 10.003 9.460 9.113 9.215 9.913 10.059 10.068 10.574 11.949 12.664 12.556 12.590 13.174 12.621 9.518 8.348 7.915 8.673 9.717 11.444 10.604 9.241 8.172 9.538 7.803 + 12.330 14.742 14.379 13.416 13.426 14.357 13.897 11.532 11.649 12.044 10.692 9.910 9.125 8.793 9.538 9.491 10.215 10.064 11.054 12.436 14.436 14.802 14.001 14.293 13.870 12.317 10.145 10.191 9.919 9.965 12.079 10.799 10.441 9.386 9.403 8.282 + 13.150 14.815 13.871 12.951 12.878 14.021 13.128 11.602 11.291 11.194 10.975 10.021 8.446 8.628 8.903 8.522 9.397 9.454 9.945 11.080 13.318 13.937 12.957 13.084 13.385 13.362 11.039 10.257 10.285 10.509 12.465 12.362 12.018 8.513 9.238 8.768 + 13.920 15.186 13.965 12.780 12.245 12.527 9.997 9.906 9.556 9.575 9.530 8.228 7.642 6.531 7.594 7.538 9.128 8.999 8.564 9.070 9.794 9.797 8.185 9.054 10.500 10.787 8.878 7.468 7.351 7.312 8.705 10.751 11.293 8.239 7.470 7.882 + 14.268 15.153 13.554 12.281 12.494 12.244 10.081 9.235 8.967 9.815 8.316 7.891 8.338 6.034 6.823 7.080 8.481 8.978 8.641 9.044 10.556 9.869 6.892 7.987 9.401 11.104 9.982 7.241 8.468 8.199 6.138 9.835 10.646 8.363 8.808 9.193 + 14.394 14.887 13.349 12.561 12.832 11.912 10.320 9.036 9.008 9.788 8.979 9.574 9.109 6.625 7.071 7.524 8.427 8.593 8.384 8.733 9.748 9.489 6.857 8.129 9.532 10.262 9.864 6.967 8.099 8.465 6.762 9.771 10.386 8.461 9.446 9.564 + 14.182 14.350 13.055 12.504 12.509 11.092 10.271 8.929 9.364 9.685 9.074 9.201 7.656 6.103 7.473 7.817 7.597 7.493 7.038 7.513 9.364 9.379 7.440 8.613 10.009 10.201 9.737 7.276 7.820 8.230 7.802 10.451 10.949 9.791 9.199 8.977 + 13.271 12.934 12.307 11.761 11.058 9.155 9.769 9.490 9.984 9.624 8.915 9.020 7.412 5.202 6.792 6.964 6.848 7.836 7.522 7.738 9.015 8.956 8.311 8.883 9.416 9.462 8.919 6.998 6.648 7.681 7.615 7.631 9.471 9.561 8.713 8.240 + 11.288 10.542 11.012 9.366 8.337 7.955 7.653 7.362 8.614 8.441 8.851 7.605 6.939 6.157 7.521 7.569 7.599 7.657 7.084 7.089 7.848 8.086 7.865 8.438 8.600 8.392 8.036 7.254 6.743 6.573 6.000 6.089 6.865 7.846 7.611 6.122 + 9.718 9.983 8.713 8.510 7.203 6.494 5.932 7.293 7.441 7.980 7.711 5.908 4.829 4.746 4.676 5.399 5.916 7.244 5.861 5.037 6.725 6.708 5.999 6.579 7.335 7.048 6.770 5.835 5.288 5.005 5.258 5.404 5.901 6.057 5.749 5.457 + 6.169 7.964 8.145 6.215 4.007 5.219 5.293 5.373 7.335 8.687 8.370 6.182 5.027 4.510 3.987 4.878 5.439 6.458 6.728 5.776 5.447 5.735 5.902 6.993 7.270 6.733 6.258 5.866 4.387 4.429 4.899 5.287 5.827 6.011 5.277 4.790 + 5.266 5.508 6.676 5.936 5.346 5.751 4.193 4.647 6.135 7.998 7.957 5.864 4.151 5.426 4.083 3.944 4.664 5.065 5.387 4.850 4.448 5.178 4.788 5.903 6.033 6.242 5.876 5.108 4.257 4.781 4.888 5.714 5.267 5.430 4.599 3.841 + 7.177 7.750 7.767 8.226 8.391 8.504 8.319 8.402 8.424 8.478 8.263 8.279 7.959 8.306 8.267 8.367 8.689 9.038 9.040 9.450 9.416 9.689 9.781 9.919 9.988 9.961 11.023 12.453 12.653 11.905 10.999 10.780 9.709 9.285 8.795 7.993 + 8.187 9.416 8.936 10.350 9.875 10.652 10.008 10.165 9.928 9.912 10.146 10.036 10.076 10.466 10.909 11.150 11.659 11.745 11.725 11.250 10.451 11.690 11.816 12.048 12.111 12.932 14.932 15.506 15.677 14.308 14.447 14.661 15.484 15.447 13.734 13.702 + 9.575 8.608 9.385 9.976 9.163 9.874 9.888 8.983 9.032 9.501 8.776 9.260 8.709 9.533 10.043 10.291 11.271 11.061 11.297 11.573 11.254 13.199 12.729 13.026 13.016 15.009 17.074 16.090 17.536 17.930 17.272 17.452 17.022 17.179 17.525 16.851 + 8.997 9.787 8.415 7.464 9.169 9.528 8.407 7.515 9.858 9.769 7.388 8.458 9.269 9.752 10.118 9.690 10.480 10.336 10.055 10.203 11.604 12.987 12.776 14.402 14.725 17.889 18.296 17.647 18.942 18.874 17.737 18.073 18.047 17.779 18.607 18.157 + 9.187 10.004 9.868 9.376 9.233 10.478 8.997 6.586 9.391 8.989 9.663 9.626 9.282 10.201 10.402 9.019 9.956 11.459 10.905 9.678 13.184 14.910 13.787 14.696 16.490 18.066 17.978 18.153 19.090 18.180 18.254 18.161 17.660 17.243 18.254 18.275 + 10.007 9.552 10.456 10.003 10.062 9.940 8.639 7.889 9.949 9.688 8.263 8.201 9.543 11.023 10.469 10.502 10.442 10.304 10.322 11.901 13.130 14.407 14.571 15.041 16.206 18.156 17.889 17.301 18.617 18.602 16.949 16.840 17.155 17.677 17.344 16.889 + 11.542 9.885 10.192 9.386 9.498 8.077 8.061 8.723 9.358 9.228 7.986 8.509 9.802 10.021 9.893 9.434 10.349 11.239 10.748 12.999 14.619 15.955 13.939 14.959 15.831 16.946 17.237 16.669 17.751 17.274 16.662 16.428 17.039 16.481 17.000 16.731 + 13.170 11.763 9.999 9.680 10.146 10.058 10.303 9.115 9.312 9.149 9.178 9.930 9.943 9.292 9.601 9.552 9.565 10.645 11.110 12.715 14.337 16.092 14.040 14.734 16.472 17.825 17.415 15.946 17.998 17.701 16.838 16.517 16.438 16.936 16.921 16.607 + 11.555 9.718 8.968 10.504 10.040 9.709 9.224 9.627 8.656 9.205 9.361 9.121 9.149 9.687 8.937 8.585 8.313 9.949 11.954 12.410 14.728 14.667 12.560 14.348 16.638 18.739 17.007 15.662 16.615 16.588 15.695 15.795 14.005 15.324 14.578 14.006 + 12.064 10.366 10.201 9.953 9.421 7.347 8.786 9.531 7.842 7.171 7.769 8.441 6.909 7.421 7.365 7.868 7.347 8.949 9.207 10.667 12.153 12.727 12.428 12.921 14.478 16.191 14.464 13.713 13.495 12.638 12.289 12.520 11.580 11.218 11.055 10.406 + 13.390 13.482 13.527 13.531 14.859 15.080 15.323 15.456 14.373 13.473 13.306 13.418 12.903 11.820 11.836 12.143 12.734 12.869 13.288 14.039 14.747 14.878 13.537 13.183 13.828 13.939 12.816 12.147 11.763 10.598 9.445 10.057 10.931 11.038 10.755 9.004 + 13.282 14.341 15.143 13.426 15.908 16.491 17.726 18.255 16.730 15.476 15.593 14.974 14.923 14.645 14.254 14.331 14.708 15.024 15.731 17.014 18.157 17.600 15.990 15.852 16.240 16.127 15.094 14.061 12.923 10.888 12.240 13.352 12.964 11.833 11.702 10.217 + 12.231 14.033 14.810 13.925 15.040 15.802 18.615 18.525 18.432 17.165 16.106 15.423 14.734 14.736 14.584 14.747 14.844 15.195 16.172 17.676 19.046 18.099 16.595 16.405 16.776 16.915 15.605 14.868 14.003 12.601 15.126 15.590 14.529 13.646 12.384 11.240 + 11.273 13.943 13.982 14.193 15.142 16.231 17.382 18.665 19.510 17.295 15.544 15.954 15.736 14.948 14.805 15.143 15.454 15.399 16.678 18.180 19.553 18.615 16.555 16.514 16.072 16.613 15.554 15.012 14.097 14.089 16.005 16.096 15.259 14.516 12.250 10.016 + 11.168 13.930 13.278 14.316 14.288 14.994 15.909 18.890 19.129 18.644 16.501 15.984 15.629 15.143 14.722 15.258 15.363 15.351 16.666 18.178 19.225 18.217 16.684 16.598 16.414 15.679 14.669 14.449 13.370 14.575 16.408 17.097 16.530 15.905 13.013 10.996 + 11.468 13.507 12.820 13.771 13.367 14.620 16.095 17.561 18.528 18.748 15.665 15.044 14.675 14.829 14.778 14.717 14.718 15.552 16.263 18.017 18.852 17.563 16.855 16.271 16.159 15.186 14.466 13.944 12.758 15.119 16.128 16.994 16.484 15.746 13.130 11.591 + 10.888 12.998 12.080 13.415 13.293 14.388 15.993 16.735 18.725 18.151 15.044 15.223 14.697 14.484 14.403 14.279 14.545 15.282 15.646 17.488 18.505 17.605 16.757 16.103 16.050 14.651 13.904 13.517 12.715 14.655 15.693 16.151 16.197 15.619 12.852 11.540 + 11.382 12.984 12.412 13.535 13.455 14.808 16.548 17.001 18.262 17.042 14.340 13.891 13.957 13.876 13.453 13.375 14.103 14.056 14.922 16.046 17.650 17.272 15.847 15.461 15.371 13.925 12.839 12.458 12.019 12.953 14.088 14.780 14.928 14.784 12.840 11.260 + 11.589 13.050 12.536 13.029 13.589 14.745 16.390 16.538 16.357 14.651 13.895 11.500 11.718 11.060 10.580 10.005 11.196 10.952 12.000 13.256 14.454 15.761 14.617 14.343 14.353 13.758 12.539 11.902 11.255 9.523 12.352 13.420 13.414 13.691 12.496 10.473 + 9.039 10.432 10.452 10.366 11.916 13.809 14.400 13.218 11.843 12.004 10.712 8.278 8.681 8.871 8.644 7.380 8.828 8.465 9.026 10.518 11.432 12.362 13.156 12.893 12.872 12.597 11.081 10.820 9.891 9.443 10.707 11.019 12.143 12.376 11.485 10.178 + 7.916 8.373 7.716 5.247 7.151 8.153 9.524 10.491 11.435 10.535 8.539 7.204 6.587 7.371 7.908 6.446 6.724 6.979 8.057 8.516 9.587 9.918 10.641 10.146 8.949 8.879 8.107 7.953 6.735 7.355 9.016 8.302 8.672 8.216 7.361 7.475 + 4.548 6.485 6.067 6.335 7.046 7.860 9.817 10.919 10.927 10.134 7.641 5.092 6.320 5.538 5.944 4.443 4.321 4.207 6.871 8.790 9.594 9.164 7.913 6.894 7.466 7.639 7.659 7.144 6.976 7.616 7.929 8.336 7.392 7.514 6.222 5.433 + 5.047 6.619 5.641 4.940 6.207 7.491 8.495 9.491 9.845 8.789 5.865 5.334 5.692 5.501 4.870 4.099 5.013 4.250 6.597 8.767 9.386 9.100 7.995 7.489 7.699 6.662 6.476 5.990 6.377 6.932 7.653 7.975 7.486 7.198 6.860 5.897 + 4.473 5.780 5.762 6.193 6.087 7.204 8.469 7.559 8.058 7.851 5.099 4.818 5.151 4.516 5.303 5.426 6.458 6.954 7.366 7.939 10.045 9.661 8.194 7.736 9.343 9.803 10.790 11.226 11.326 11.359 11.405 10.692 9.541 8.536 8.318 8.059 + 5.661 4.482 6.384 6.459 5.148 6.217 8.303 8.172 9.737 8.721 5.732 5.559 5.208 5.488 6.737 7.634 7.735 8.115 8.383 8.209 9.575 8.976 8.644 7.844 9.923 10.161 11.304 11.738 11.864 11.854 11.844 11.042 9.746 8.818 9.109 8.967 + 3.973 5.144 5.087 5.057 5.873 6.956 7.607 9.010 9.894 8.549 6.362 4.324 5.405 4.623 4.594 4.971 6.103 6.899 6.753 7.232 8.097 7.308 6.551 6.340 6.995 6.883 5.691 6.217 6.639 6.298 6.598 7.761 7.608 5.535 6.148 6.093 + 4.364 4.413 5.313 3.612 4.044 5.448 7.919 8.116 9.619 9.619 7.515 5.755 5.026 4.368 5.236 4.990 6.139 6.311 6.224 7.160 7.729 7.665 5.114 6.440 6.637 6.684 5.978 4.824 6.407 6.643 8.088 8.317 6.850 6.452 6.538 5.887 + 4.518 4.949 4.432 5.351 6.307 6.820 7.560 8.428 9.551 9.240 6.016 5.897 4.844 4.618 5.130 4.591 5.777 6.196 7.147 8.477 9.272 8.508 6.038 6.216 6.244 6.028 4.977 5.616 6.140 6.272 7.923 8.075 8.127 7.067 6.408 5.024 + 7.827 7.798 7.764 8.877 9.092 9.406 9.832 8.784 9.233 9.278 10.018 9.928 9.861 9.488 9.500 9.995 10.497 11.397 11.951 12.093 11.923 11.148 10.513 10.578 11.247 12.235 13.060 13.410 12.718 13.485 14.567 14.549 13.523 12.884 13.394 12.694 + 8.810 6.895 6.662 9.110 10.047 10.460 11.155 10.492 9.788 10.861 10.795 10.721 10.815 10.887 10.465 11.185 11.307 12.120 12.650 12.661 12.474 12.145 11.605 11.441 12.016 12.687 13.460 13.804 13.288 14.203 14.761 14.735 13.803 13.252 13.494 12.467 + 5.572 6.135 5.329 4.889 7.150 8.105 7.144 6.715 8.065 8.135 8.261 7.913 7.653 7.731 7.921 7.713 7.917 8.300 8.792 8.908 8.686 8.934 8.262 7.869 8.502 9.379 10.142 10.115 10.453 11.978 12.283 11.748 12.196 11.554 10.731 10.752 + 6.582 8.436 9.271 9.064 8.386 9.860 9.691 9.518 9.159 9.386 9.679 8.862 8.510 8.802 8.332 8.603 8.897 8.540 8.613 8.455 8.639 8.655 8.044 7.938 8.647 9.425 10.211 10.529 11.377 12.919 13.735 13.694 12.897 12.342 12.151 11.583 + 9.358 10.652 11.044 12.306 12.736 12.892 11.945 10.724 10.178 10.993 10.644 9.475 9.737 9.447 9.261 9.972 9.524 8.786 9.482 9.595 10.331 11.372 10.528 10.187 9.922 10.628 11.958 12.244 12.352 12.611 12.671 13.086 12.946 12.099 12.751 12.251 + 12.363 12.513 12.988 13.954 15.119 15.658 14.187 13.000 12.349 12.192 11.256 10.426 9.935 10.188 10.014 10.153 10.225 10.394 10.792 11.890 13.840 14.923 13.371 11.717 11.506 11.928 10.959 12.345 12.591 12.224 14.552 15.694 14.807 13.679 10.818 9.151 + 12.655 12.800 13.364 14.013 15.427 16.218 16.239 14.454 12.968 12.923 12.359 12.020 11.391 10.847 10.962 10.794 11.116 11.546 11.671 13.066 15.077 15.294 13.285 11.964 12.152 12.772 11.496 11.904 12.788 12.399 13.678 14.705 13.525 13.051 11.243 9.796 + 12.781 12.881 13.581 13.537 14.286 16.823 16.719 14.856 13.715 13.848 13.274 12.130 11.152 11.127 10.439 10.816 11.190 11.179 12.026 13.086 14.623 14.472 12.982 12.054 12.660 12.337 12.577 13.248 12.804 12.365 14.174 15.068 13.730 12.205 11.248 10.191 + 12.676 12.666 13.453 13.152 13.916 16.113 16.728 16.972 14.226 13.484 13.344 12.781 12.147 12.145 11.792 11.923 12.420 12.274 13.704 14.810 16.150 14.684 13.178 12.531 12.693 11.797 13.112 13.730 12.617 12.004 13.922 15.259 14.362 13.556 10.550 7.822 + 12.492 12.467 13.307 12.867 13.469 14.562 17.047 17.031 15.130 14.811 14.244 13.079 11.877 12.511 12.325 12.367 13.236 13.045 14.650 16.112 16.893 14.575 13.137 12.785 11.797 11.989 13.405 13.698 12.113 11.607 14.004 15.396 14.484 14.007 11.422 8.236 + 12.389 12.294 13.083 12.496 13.524 14.451 16.856 16.942 15.895 14.883 14.148 12.779 12.288 12.580 12.220 12.725 13.093 13.752 15.622 16.534 15.655 14.082 13.157 12.114 11.321 12.546 13.647 13.069 11.733 11.131 14.362 15.635 14.438 13.542 10.830 9.409 + 12.488 12.555 12.933 12.519 13.599 15.065 16.575 16.916 16.325 14.948 13.744 12.461 12.574 12.643 12.299 12.926 12.962 14.499 15.523 15.127 13.282 11.923 11.230 10.939 11.067 13.501 14.305 12.666 11.464 9.744 13.464 15.391 14.400 13.204 10.806 9.513 + 12.260 12.402 11.833 11.493 12.984 13.329 14.545 16.056 14.094 13.677 13.654 12.966 11.541 11.059 11.938 11.770 13.722 14.464 13.972 13.081 12.035 10.616 10.172 11.158 11.720 13.939 13.189 11.500 10.435 10.013 11.858 14.251 13.634 11.848 11.849 10.854 + 9.775 9.720 10.231 11.181 11.462 9.794 13.045 14.242 13.749 14.267 13.092 11.935 12.014 10.820 11.273 11.569 12.981 13.887 14.323 12.527 11.167 10.160 9.725 9.569 10.873 13.151 11.353 9.949 9.471 10.331 12.375 12.684 11.835 10.323 10.734 10.287 + 8.740 9.607 8.559 6.881 9.028 8.733 8.720 9.929 9.261 10.730 9.994 9.032 7.723 7.340 8.299 8.988 9.237 9.889 11.099 10.419 8.889 9.078 8.554 9.142 10.237 10.936 10.434 11.304 12.903 13.744 15.016 14.787 14.124 16.390 16.503 14.476 + 9.314 8.760 7.533 8.333 8.413 7.751 8.008 7.645 7.576 9.063 8.346 8.631 8.119 8.595 8.258 9.201 8.895 8.590 9.535 9.291 9.576 8.530 8.162 9.489 10.528 10.996 11.442 11.882 14.255 14.564 16.306 15.735 15.083 18.373 19.025 17.276 + 8.797 7.824 7.555 6.980 7.879 8.233 7.271 8.049 8.044 8.178 7.771 9.134 8.119 7.323 6.814 8.026 7.329 6.680 8.968 8.831 8.392 6.445 7.882 8.715 9.288 11.717 11.000 11.920 13.207 14.449 15.263 15.646 16.320 18.148 18.042 17.250 + 6.563 7.387 8.228 6.946 9.044 9.414 8.639 8.504 7.504 7.415 8.080 8.280 7.665 8.212 7.068 7.646 7.125 8.336 9.536 8.547 7.951 8.352 8.815 8.499 9.001 11.161 10.843 11.526 12.405 13.995 15.259 16.292 17.015 18.378 17.792 16.407 + 7.071 7.483 8.181 7.968 8.747 8.010 7.364 8.944 8.913 8.900 7.936 6.516 6.790 7.304 7.379 7.173 6.776 7.412 8.776 8.962 9.652 8.876 9.030 8.914 9.526 10.671 10.461 10.671 12.028 13.425 14.241 15.200 16.431 17.280 16.684 16.553 + 6.397 5.738 6.469 6.491 6.566 6.944 8.371 8.820 6.453 6.145 5.993 6.787 7.582 6.974 6.285 7.442 7.326 8.023 6.965 8.068 8.397 8.312 8.281 8.782 8.514 7.929 9.384 9.929 10.818 11.304 12.818 12.568 14.044 14.911 14.923 13.628 + 2.985 4.878 5.874 7.518 9.305 8.668 9.183 8.730 6.397 6.846 7.818 6.738 6.832 6.621 7.596 6.416 5.436 6.625 7.293 7.361 7.509 7.279 5.673 7.068 6.916 8.249 7.689 8.372 8.744 9.287 10.513 10.240 11.298 11.547 12.185 10.662 + 4.881 5.000 5.681 9.043 10.146 8.473 6.665 6.488 6.050 9.189 9.149 5.631 5.087 8.456 8.851 6.258 6.342 8.759 7.675 7.059 7.490 7.296 7.196 7.476 7.707 8.205 8.296 9.581 9.227 10.235 11.296 11.587 11.502 10.047 9.993 8.897 + 3.609 6.233 8.085 9.620 9.855 8.449 7.602 7.963 7.175 9.231 8.651 6.716 7.776 7.816 7.691 8.108 8.164 8.413 7.442 8.505 8.662 8.265 8.579 8.205 9.837 9.689 10.404 11.219 13.096 13.329 12.912 14.033 12.914 11.739 11.973 11.025 + 5.953 8.489 9.305 8.336 8.985 7.746 8.593 8.746 7.685 8.667 7.452 8.063 8.107 6.824 6.383 8.071 8.416 8.127 7.895 9.527 9.470 9.937 9.972 11.628 12.730 13.536 14.093 13.621 15.750 16.444 16.030 15.421 15.287 14.547 13.824 13.092 + 7.918 9.333 10.244 10.189 11.389 10.781 10.535 11.098 11.818 11.542 11.082 10.835 10.733 10.307 10.574 10.756 10.434 10.230 10.323 11.338 11.737 12.164 12.229 13.075 14.482 14.741 16.018 15.739 17.400 17.038 17.012 16.911 16.224 15.806 15.913 14.876 + 9.126 7.676 10.529 11.445 11.619 12.137 12.546 11.664 12.130 12.086 12.456 12.165 12.014 11.397 11.788 11.911 11.147 11.430 11.445 11.962 13.121 12.862 12.819 13.030 14.461 16.397 16.275 15.976 16.885 16.383 16.848 15.635 15.985 15.130 14.834 14.226 + 12.652 13.212 12.228 13.330 14.278 14.517 12.757 12.455 12.148 11.881 10.857 9.647 10.401 10.076 10.174 9.834 10.722 11.268 12.248 12.932 11.811 11.495 11.769 11.280 14.521 14.772 14.054 13.041 12.514 12.365 13.625 12.717 11.836 12.068 11.495 11.550 + 13.199 13.328 13.776 14.441 15.434 15.980 13.979 12.841 12.757 12.676 11.242 10.978 10.943 10.585 10.965 11.192 11.764 12.185 13.987 14.548 13.469 12.355 12.446 12.249 12.596 11.686 9.408 8.507 9.697 9.694 12.065 11.717 11.574 10.160 9.247 6.493 + 13.942 13.200 13.072 13.896 15.060 15.982 13.882 12.099 12.622 12.301 10.852 10.984 10.506 10.460 10.946 10.728 11.396 12.772 14.602 15.122 13.922 12.939 13.058 11.637 9.886 10.601 8.920 9.497 10.161 11.632 13.071 13.361 12.570 10.113 7.017 5.681 + 13.313 13.191 12.698 13.351 14.699 15.051 12.269 12.066 11.216 9.483 9.964 10.156 8.977 10.010 9.919 10.709 11.204 12.295 14.257 14.489 12.765 12.084 11.738 11.694 11.875 12.178 11.007 9.349 10.341 11.628 11.858 12.120 11.224 8.566 7.587 6.811 + 11.292 11.413 11.738 11.645 12.598 12.720 10.993 8.999 8.565 7.287 6.504 7.253 6.589 6.562 7.288 7.980 8.574 9.781 12.636 12.897 10.406 10.050 10.696 10.464 10.154 9.787 8.904 7.286 8.252 9.162 9.739 9.794 8.544 7.394 6.855 6.223 + 10.124 9.616 9.203 8.296 7.837 7.778 6.298 6.909 6.083 4.530 6.603 6.287 3.920 4.459 4.058 4.226 6.222 6.932 8.551 8.167 7.029 6.019 7.120 7.473 8.788 8.300 7.107 5.531 7.459 7.108 9.288 7.766 6.393 6.492 6.746 6.344 + 10.093 10.003 10.160 9.606 7.888 5.701 4.611 4.998 4.653 5.058 5.220 4.839 3.590 3.367 4.129 5.392 4.887 6.051 6.894 7.572 7.699 6.531 7.622 8.113 9.031 8.481 6.972 7.222 6.977 8.064 8.505 7.263 6.971 7.168 8.031 7.667 + 9.935 9.307 9.362 9.786 7.502 8.270 7.243 6.826 7.571 6.923 6.633 6.219 5.806 6.119 6.368 6.471 6.642 7.817 9.361 8.349 7.590 7.630 7.726 9.401 9.511 9.672 9.537 9.097 8.922 8.667 8.641 8.083 7.810 7.602 7.422 6.306 + 12.354 11.662 11.936 12.013 13.414 14.206 13.642 11.220 11.134 11.805 11.427 9.721 10.027 11.253 11.151 10.440 12.039 12.536 14.224 15.135 14.507 13.184 12.898 13.223 13.338 13.668 13.386 13.002 12.296 13.204 13.550 13.721 13.046 12.336 9.994 8.006 + 12.909 12.274 12.642 12.539 13.914 16.177 15.234 14.688 14.674 13.342 11.421 12.385 11.640 11.611 12.045 11.938 12.840 13.135 15.075 16.414 16.164 13.868 13.302 13.762 14.268 13.263 12.169 11.163 10.442 12.805 13.013 14.151 13.517 12.990 11.911 10.338 + 12.924 12.160 12.741 12.368 14.146 15.868 16.622 15.983 14.557 13.788 11.673 12.150 11.920 11.638 12.193 12.276 12.935 13.415 14.852 16.967 16.642 14.096 13.601 13.827 14.316 13.476 12.201 10.638 9.612 11.261 12.204 14.056 13.938 13.418 11.472 10.425 + 12.942 12.268 12.900 12.806 14.326 15.902 17.218 16.633 14.885 14.231 12.698 12.487 12.357 11.942 12.363 12.591 13.180 13.584 14.594 16.420 17.100 15.131 14.251 14.185 14.716 14.079 12.662 11.366 10.376 11.539 12.512 14.229 14.034 13.240 10.835 10.637 + 13.002 12.878 12.996 12.603 14.545 16.034 17.128 15.879 14.828 14.274 12.689 12.185 12.291 11.764 12.219 12.098 12.858 12.919 14.087 15.796 17.149 15.675 14.677 14.479 15.137 14.536 12.847 11.572 11.512 13.289 13.647 13.589 13.971 13.571 11.565 11.192 + 12.996 12.976 13.107 12.308 14.690 15.690 16.745 15.247 14.082 13.706 12.395 11.652 11.842 11.264 11.415 11.124 12.238 12.723 13.275 14.626 16.495 16.318 14.999 14.419 14.352 13.397 11.477 11.675 12.164 12.649 14.491 14.431 13.079 12.196 10.370 10.297 + 12.988 12.898 13.039 11.880 14.982 15.675 16.039 14.608 13.657 13.071 11.712 11.392 11.393 10.674 11.368 11.005 12.010 12.355 13.340 14.053 15.673 15.742 14.555 14.562 14.696 13.307 12.302 11.415 11.435 12.414 13.956 14.016 13.309 12.982 10.947 9.914 + 12.894 12.596 12.965 11.438 15.169 15.869 15.205 13.753 13.206 12.670 11.282 10.893 11.191 10.477 10.994 10.643 11.609 11.859 12.683 13.411 15.126 15.756 15.060 14.904 14.141 12.574 11.675 10.602 11.072 11.774 13.642 14.313 13.095 12.963 10.444 8.367 + 12.741 12.379 12.810 11.862 15.097 15.611 14.098 13.113 12.581 12.211 10.961 10.409 10.683 10.406 10.651 10.467 11.376 11.611 12.657 13.388 15.422 15.975 15.514 15.103 13.168 11.369 10.539 9.370 10.743 11.475 13.338 14.195 12.966 13.240 10.751 8.396 + 12.763 12.723 13.117 13.634 15.401 15.328 12.785 12.309 11.976 11.556 10.311 10.207 10.248 10.126 10.732 10.938 11.627 11.721 13.661 14.677 14.362 14.715 14.907 13.479 11.703 10.882 8.909 8.881 9.259 10.279 12.783 14.421 13.617 13.895 11.765 8.781 + 12.886 13.130 13.597 14.413 15.469 15.056 12.100 11.901 12.101 11.721 10.797 11.006 10.795 10.822 11.862 12.871 12.664 11.956 11.681 11.375 10.992 12.011 12.745 12.107 10.691 10.332 8.014 7.349 8.297 9.106 11.068 12.879 11.948 11.879 9.873 8.389 + 12.762 12.937 13.017 13.995 14.577 14.445 11.603 11.553 11.925 11.236 10.813 11.725 12.273 12.789 11.602 10.366 10.091 9.547 9.773 9.779 8.033 9.485 10.845 10.069 8.910 9.552 6.813 6.813 6.665 8.141 9.533 11.831 11.156 11.386 9.032 7.826 + 12.527 12.125 12.238 13.905 13.958 13.825 11.254 11.830 11.830 10.946 11.550 11.992 11.843 11.560 10.416 9.138 7.517 8.264 8.395 8.652 6.463 8.413 10.006 9.945 8.715 9.076 6.346 6.582 7.246 7.764 9.012 11.642 11.204 11.221 9.201 7.665 + 12.515 11.856 12.652 14.038 13.972 13.947 11.369 12.040 11.960 11.490 11.567 12.200 11.997 10.461 9.604 8.711 7.943 8.294 8.094 7.917 7.510 8.810 10.533 10.296 8.312 8.389 6.325 6.663 7.855 8.269 9.558 11.763 11.298 11.345 9.077 7.259 + 12.279 11.947 12.664 14.286 14.710 14.686 12.220 12.525 12.368 12.279 12.023 13.313 12.752 10.805 9.843 8.605 8.623 8.697 8.551 8.008 8.487 9.607 11.437 10.832 8.462 8.378 7.427 7.352 8.730 9.487 10.610 12.268 11.585 11.666 8.949 7.407 + 12.213 12.382 12.939 13.979 15.107 15.798 13.812 13.183 13.189 13.054 12.410 13.479 14.077 13.079 11.231 10.151 9.354 9.062 8.870 8.701 9.002 10.417 12.072 11.223 9.212 7.964 7.263 7.503 9.013 8.752 11.596 12.219 12.091 11.672 9.117 6.901 + 12.885 13.008 13.436 13.535 14.848 16.529 15.282 13.733 14.058 13.637 12.233 13.143 14.225 13.723 13.302 11.369 10.628 10.544 10.688 10.138 9.956 11.299 13.185 12.314 9.900 8.807 8.803 9.265 10.195 9.490 12.129 12.496 12.768 12.090 9.930 7.925 + 13.045 12.823 12.862 12.206 14.926 16.597 15.540 15.785 15.146 14.292 12.524 13.552 13.906 14.780 15.108 13.377 12.001 11.173 11.220 10.570 10.652 11.490 13.166 12.730 10.999 10.259 8.583 9.763 10.138 9.450 11.998 12.126 11.626 11.579 10.277 8.343 + 12.529 12.285 12.442 12.624 14.360 15.524 16.657 16.131 15.528 14.929 13.405 13.699 13.969 14.663 16.203 14.742 14.214 12.744 12.169 11.573 11.442 11.634 13.216 13.359 11.187 10.515 9.968 10.414 10.107 10.374 12.203 11.563 10.987 11.075 10.125 9.195 + 12.434 12.209 12.962 11.960 13.808 14.834 16.909 17.536 16.763 15.054 13.386 13.929 13.816 13.972 15.403 16.438 15.689 13.271 12.585 11.700 11.614 12.448 14.104 14.231 12.285 11.055 10.803 11.083 10.237 10.422 12.384 10.971 10.787 10.748 9.839 9.827 + 12.504 12.045 12.796 12.316 13.563 14.492 15.875 17.295 17.260 14.926 13.381 13.851 13.713 13.688 14.408 16.301 17.176 14.763 13.100 12.063 12.115 13.010 14.669 15.419 13.706 11.965 11.759 12.169 10.564 11.291 12.409 10.774 11.310 10.895 9.517 9.735 + 12.030 11.912 11.847 11.988 13.440 14.233 15.084 17.335 17.084 15.662 14.965 14.665 13.972 13.957 14.216 15.200 16.490 15.403 14.123 13.249 12.915 13.053 13.915 15.390 15.044 13.232 12.522 12.373 10.750 11.704 12.473 11.459 12.081 11.310 8.935 9.276 + 12.123 12.047 12.156 12.268 13.462 14.134 15.078 17.186 16.381 15.713 14.685 14.286 13.331 13.659 13.771 14.843 15.747 16.058 14.481 13.412 12.718 12.658 12.915 14.582 15.537 14.577 13.334 13.129 12.281 13.676 13.959 13.058 13.434 11.727 8.486 8.608 + 12.152 11.891 12.183 11.800 13.233 14.190 15.073 17.068 15.910 14.641 14.151 13.979 12.923 13.266 13.273 14.358 15.592 15.661 13.616 12.859 12.287 12.226 12.412 13.632 15.101 14.315 12.576 12.156 11.984 13.027 13.496 12.689 13.202 11.688 9.026 8.439 + 11.934 11.331 11.769 11.325 13.166 14.050 15.888 17.008 15.428 14.120 13.006 13.021 12.291 12.565 12.625 14.003 15.956 15.651 12.968 11.955 11.436 11.410 11.743 12.995 15.019 14.089 11.749 11.101 11.954 13.174 13.315 12.875 13.409 11.637 8.256 7.029 + 11.673 11.104 11.246 11.855 13.413 14.637 14.679 14.835 13.472 11.496 10.724 11.087 10.517 11.263 11.821 13.764 14.847 14.164 11.503 10.936 10.493 10.794 11.371 12.894 14.776 13.454 10.964 10.182 12.094 13.684 13.692 12.973 13.843 11.741 7.943 6.194 + 11.341 10.992 10.926 11.946 12.950 13.041 12.383 11.313 10.421 10.229 10.067 9.547 9.556 9.723 10.737 12.168 12.596 10.893 9.961 9.229 9.409 9.722 9.918 11.272 12.267 10.901 9.677 8.820 10.634 12.028 12.096 11.390 12.528 10.342 7.150 7.135 + 11.547 11.401 11.647 12.073 13.317 13.257 12.997 12.221 10.249 10.368 10.846 10.130 10.000 9.965 11.215 12.333 13.146 11.888 11.249 10.463 10.016 9.385 9.581 11.233 12.744 11.386 10.280 9.921 11.478 12.632 12.609 11.899 13.241 10.848 7.959 5.921 + 11.863 11.831 11.906 11.986 13.554 14.084 14.189 13.791 12.440 10.640 11.377 11.048 10.284 10.879 11.173 12.588 13.865 14.222 11.698 10.999 10.651 10.459 10.933 12.006 14.469 13.703 11.695 10.898 12.720 13.925 13.436 12.587 13.933 11.661 8.402 6.588 + 12.168 11.595 12.112 11.930 13.791 14.772 15.573 14.397 13.457 12.382 10.808 11.372 10.830 11.302 11.573 12.529 14.607 15.397 12.771 12.007 11.213 11.230 11.508 12.132 14.748 14.546 11.672 11.029 13.182 14.279 13.761 13.507 14.690 12.392 8.729 7.157 + 12.261 11.605 11.922 12.216 13.607 14.901 16.082 15.395 13.807 12.848 11.117 11.431 10.958 11.304 11.751 12.707 14.642 15.903 14.093 12.267 11.643 11.686 12.023 12.912 14.714 14.291 12.048 11.603 13.210 14.402 13.473 14.116 14.575 12.264 9.146 8.311 + 12.214 11.838 12.165 12.598 13.834 15.205 16.077 15.121 14.043 13.136 11.543 11.497 10.801 11.112 11.581 12.796 14.646 15.951 14.780 13.019 12.441 12.428 13.189 14.944 14.418 13.105 12.654 12.830 12.240 13.838 12.605 13.368 13.357 11.337 9.317 8.317 + 12.534 12.247 12.512 12.904 14.236 15.069 15.770 14.408 13.951 12.947 11.452 11.490 11.310 11.523 12.050 13.330 15.190 16.021 15.118 13.746 14.010 14.555 14.185 12.893 11.944 10.960 11.119 10.836 10.857 12.723 11.575 12.562 12.434 10.782 9.274 8.021 + 12.425 12.411 12.581 12.773 14.394 14.836 15.524 14.008 13.699 12.996 11.625 11.884 12.011 12.057 13.259 14.506 15.569 15.414 15.531 15.020 14.357 12.471 11.510 9.437 8.661 8.590 8.867 9.373 8.326 10.011 8.577 10.205 10.568 9.477 8.068 5.776 + 12.236 12.095 12.358 12.673 14.481 14.881 15.226 13.280 12.529 12.332 11.481 11.107 11.761 11.849 13.454 14.341 15.324 14.470 14.646 14.262 12.693 10.158 9.219 8.075 7.701 7.217 8.203 8.307 6.997 8.452 7.056 9.480 9.728 8.932 7.287 4.994 + 11.911 11.701 11.847 12.403 14.635 14.986 14.746 12.803 12.339 12.064 11.333 11.122 11.453 12.001 13.859 14.472 13.944 13.660 14.582 12.816 10.166 8.358 8.634 7.475 7.675 6.658 7.259 7.166 6.125 7.164 5.434 8.648 8.915 7.691 6.709 5.255 + 11.857 11.736 11.845 12.732 14.479 14.843 14.368 12.824 12.424 12.117 11.368 11.573 11.972 13.282 14.523 13.449 12.279 12.828 13.622 11.937 8.013 7.573 7.772 6.534 6.657 6.552 6.805 7.147 5.972 6.559 5.074 7.008 7.595 6.497 5.572 4.388 + 11.668 12.208 12.277 13.086 14.634 14.936 14.545 13.446 12.944 12.785 12.436 12.532 13.378 14.280 14.552 13.401 12.144 12.304 13.279 12.692 8.967 8.524 7.897 7.318 6.288 6.757 6.937 6.886 5.584 5.891 5.580 6.358 6.959 6.819 5.744 4.736 + 11.451 12.216 12.375 12.910 13.656 15.347 14.606 13.047 12.352 12.345 12.261 12.590 13.534 14.244 13.715 12.766 11.679 11.345 12.142 12.434 10.293 8.567 7.749 7.889 6.159 6.662 6.775 6.596 6.428 6.597 5.982 7.091 7.665 7.967 6.854 4.810 + 9.981 11.168 10.637 11.259 14.049 14.827 13.869 12.225 11.434 11.533 11.610 11.490 12.628 14.143 13.138 11.807 11.090 10.199 11.288 12.500 11.060 8.409 8.295 6.812 6.331 6.320 7.111 7.855 6.576 6.439 5.944 7.704 7.602 7.945 7.629 5.988 + 10.944 11.351 11.837 12.580 14.498 15.171 14.453 13.311 12.536 12.462 12.422 12.521 13.542 14.804 14.321 12.868 12.002 10.956 11.428 12.917 13.148 9.827 9.086 8.460 7.738 6.320 7.003 7.270 6.123 6.047 6.193 8.927 8.760 9.542 9.394 7.282 + 10.967 12.003 12.400 12.488 13.749 14.327 14.810 13.556 12.093 12.067 12.600 12.367 12.537 14.076 14.425 12.869 12.120 10.938 10.844 11.520 12.733 12.119 8.938 8.721 7.491 6.834 7.379 7.617 6.764 8.431 7.957 8.553 9.170 10.187 9.978 8.422 + 9.809 11.216 10.965 11.417 13.548 15.085 13.886 12.570 11.784 11.909 11.428 11.459 12.008 13.133 14.496 13.655 11.550 10.942 10.115 10.687 12.419 12.383 9.818 8.336 7.085 6.846 7.410 8.255 6.912 7.564 7.285 7.559 8.109 9.859 9.967 7.601 + 10.543 11.513 11.432 12.200 14.165 15.761 15.325 13.519 12.863 12.466 11.843 11.856 12.227 12.861 14.568 15.120 13.295 11.786 11.084 11.375 12.772 13.799 12.056 9.328 8.058 7.715 8.727 9.135 7.246 7.187 7.181 6.831 8.604 10.386 9.822 7.169 + 11.661 12.295 12.439 12.608 13.891 15.762 15.699 13.763 13.222 12.668 11.726 11.686 11.747 12.127 13.244 14.086 14.126 12.463 11.730 11.428 12.252 13.462 13.752 11.716 9.240 8.589 10.127 10.288 8.439 8.347 8.869 7.906 8.541 9.766 9.993 7.582 + 11.966 12.128 12.455 12.652 14.343 14.890 15.607 13.625 12.967 12.162 11.240 11.644 11.319 11.764 12.334 13.649 14.536 13.298 12.788 11.549 11.219 12.106 12.721 12.621 11.442 10.504 11.104 11.244 9.451 9.045 10.000 9.323 10.036 10.365 9.956 7.351 + 12.149 11.692 12.000 12.161 14.464 15.101 15.418 13.748 12.872 11.522 11.056 11.096 10.544 11.678 11.769 13.338 14.269 14.468 12.909 12.233 11.548 11.569 12.220 13.255 13.074 11.789 11.113 11.322 10.325 11.643 12.562 11.467 11.479 11.388 9.900 7.071 + 12.411 11.574 12.138 12.290 14.264 15.450 15.437 13.481 12.801 12.383 11.853 10.765 10.821 11.335 11.992 12.904 14.104 14.678 13.563 12.083 11.399 11.417 11.917 13.289 13.963 12.514 11.496 11.925 11.593 12.979 14.049 12.503 12.790 13.109 10.783 7.397 + 12.658 12.349 11.223 12.813 13.582 13.108 14.221 12.955 10.995 12.524 11.391 10.525 10.477 10.747 11.573 11.762 13.781 14.096 13.337 10.701 10.531 10.801 11.280 12.411 14.249 13.203 11.041 10.908 11.991 12.300 13.689 12.681 12.568 12.861 10.383 8.468 + 11.204 10.788 12.028 12.284 12.483 12.463 11.804 10.897 10.716 10.268 10.670 9.461 9.111 9.215 9.367 10.078 11.134 12.016 10.762 11.298 10.363 8.836 8.205 9.337 11.593 11.449 11.636 10.537 12.080 13.767 14.933 14.429 13.633 13.216 12.416 11.572 + 9.079 8.896 10.225 10.040 10.310 10.644 9.254 7.969 8.537 6.921 7.653 7.831 7.595 7.625 7.269 8.014 9.852 10.677 10.276 10.625 9.127 8.589 8.628 8.505 10.241 10.459 10.462 10.999 13.330 12.855 14.748 16.771 16.690 15.507 14.919 13.953 + 9.491 7.847 8.714 10.105 10.547 10.389 7.623 8.226 7.426 6.893 6.315 7.565 6.442 6.262 7.051 7.268 7.660 8.355 9.800 9.334 7.452 7.783 7.373 8.747 10.422 11.014 10.612 11.953 12.817 14.141 15.412 16.891 16.714 16.965 15.551 14.724 + 8.221 8.538 8.014 8.973 10.400 9.798 8.638 8.341 7.411 7.268 7.339 6.401 6.799 7.000 8.058 7.234 7.223 8.621 9.234 8.716 7.834 7.629 8.055 8.914 9.437 10.374 10.980 12.059 13.877 15.211 14.979 16.116 17.847 17.414 16.346 14.883 + 9.890 9.289 9.339 9.332 9.538 9.806 8.527 9.028 9.529 9.624 9.355 8.197 7.829 7.632 8.411 8.465 8.909 10.060 10.800 9.193 8.227 8.119 8.679 8.155 9.524 11.762 11.147 12.829 14.315 15.335 15.704 17.007 17.339 16.047 15.425 14.405 + 10.106 9.610 6.769 8.933 10.456 10.479 9.213 9.228 8.669 7.359 7.972 8.797 8.317 7.622 7.311 8.297 9.121 10.519 10.785 9.478 8.561 8.689 7.303 9.028 10.056 11.175 11.877 14.393 15.149 15.002 16.682 16.385 15.584 14.732 13.773 12.142 + 10.929 10.008 7.196 8.607 10.012 10.486 10.244 8.112 9.312 7.806 7.639 8.069 6.884 6.969 6.050 7.276 8.380 10.196 9.960 9.746 8.543 7.518 8.219 8.348 10.190 10.732 11.989 13.773 12.793 11.631 12.151 10.855 10.238 10.070 10.022 9.099 + 11.184 10.289 9.759 10.048 9.329 11.117 10.489 9.760 10.036 9.879 9.657 9.574 8.121 6.596 7.228 7.380 8.653 10.018 8.848 8.116 6.852 7.333 8.010 7.847 7.374 9.002 8.502 7.460 6.855 8.034 7.526 7.523 8.606 8.530 8.020 7.017 + 12.274 12.624 11.855 11.084 9.860 10.618 10.122 7.685 7.145 9.028 10.089 9.344 6.397 7.051 7.382 8.320 9.136 9.848 9.792 9.099 8.430 8.769 8.706 7.401 6.744 7.362 7.800 7.571 6.599 6.766 7.288 6.990 7.459 8.988 8.708 8.300 + 13.234 13.226 11.688 11.829 11.796 10.352 9.649 9.514 8.656 10.287 9.891 9.152 8.079 7.619 8.702 10.018 9.784 9.343 9.614 8.981 8.775 8.870 9.809 8.866 7.293 7.298 7.939 8.118 6.192 6.279 7.104 7.562 7.291 9.669 9.031 7.744 + 13.825 13.445 12.086 11.495 10.993 10.907 10.582 9.267 9.751 9.864 9.841 9.212 7.586 7.180 10.404 10.126 10.617 10.297 9.622 9.408 9.189 9.166 10.823 9.644 8.194 6.595 8.580 9.933 7.355 7.819 8.279 8.687 9.124 9.940 9.825 8.453 + 14.000 13.555 13.009 11.752 11.485 12.137 10.493 9.671 10.254 9.484 9.708 9.814 8.026 8.739 9.978 10.854 10.244 11.450 10.880 11.227 10.883 11.393 12.385 11.141 9.750 7.995 7.868 9.861 8.158 6.676 7.834 8.454 9.770 9.101 9.104 8.927 + 13.716 13.093 13.341 11.298 11.505 11.630 9.210 9.051 9.432 8.990 8.327 7.884 8.339 9.350 9.464 10.228 9.741 10.600 10.092 10.041 10.392 11.383 12.367 12.145 10.193 8.409 7.420 9.094 9.139 6.905 9.736 11.056 12.103 11.025 10.057 8.710 + 13.516 12.647 13.266 11.146 11.434 12.130 9.858 9.026 9.285 8.901 8.207 9.040 9.235 9.473 9.097 9.433 9.187 10.026 9.524 9.332 9.583 10.827 12.108 11.648 9.600 8.052 6.394 8.445 8.814 6.649 9.787 10.836 11.960 11.260 9.928 9.434 + 13.407 12.612 13.010 11.406 11.914 13.258 12.311 10.643 11.379 11.179 9.144 9.712 10.272 10.482 10.825 10.509 10.899 9.987 9.750 9.616 9.638 10.417 11.999 10.782 9.845 7.628 7.396 7.574 9.195 8.925 9.536 10.371 11.560 10.449 9.930 10.532 + 13.034 12.557 13.162 11.090 13.643 14.986 14.466 13.154 12.596 12.344 10.880 11.097 11.001 11.399 11.671 12.675 12.000 10.955 10.647 10.182 10.107 11.068 12.566 12.004 9.822 7.248 7.467 7.787 9.239 9.305 10.872 11.572 11.521 10.951 10.951 8.684 + 13.376 13.283 13.462 11.857 14.234 14.944 14.371 13.814 13.144 12.397 10.780 11.376 11.338 11.796 11.774 13.490 13.139 11.728 11.123 10.364 10.082 10.733 12.281 11.762 10.032 8.007 7.286 7.778 9.107 9.858 12.606 13.025 12.360 11.802 11.584 9.355 + 13.444 13.405 13.469 12.277 14.646 14.886 13.955 13.737 13.363 12.338 10.478 11.335 10.832 11.713 11.662 13.748 13.673 12.584 11.799 10.766 10.708 11.703 13.216 12.399 10.841 8.841 7.613 6.578 9.088 10.452 12.939 13.740 11.189 10.665 11.504 9.815 + 13.459 13.289 13.477 12.429 14.846 15.253 13.225 13.558 13.492 12.416 10.968 11.704 10.713 12.075 11.963 13.860 14.057 12.989 12.383 11.575 11.380 12.237 13.749 13.051 11.097 8.951 8.266 8.394 9.733 11.167 12.660 13.600 12.031 11.486 11.626 9.685 + 13.318 12.841 13.259 12.494 14.772 15.429 13.033 13.245 13.120 11.893 11.022 11.379 10.358 11.750 11.735 13.568 13.496 13.075 11.689 11.146 10.964 11.754 13.513 13.095 10.517 9.004 8.202 7.908 8.981 10.204 12.167 13.143 12.057 11.784 11.043 9.426 + 13.205 12.504 13.023 13.029 14.912 15.465 12.811 13.049 12.696 11.967 10.915 11.347 10.418 11.530 11.698 13.508 13.762 13.368 11.731 11.362 11.202 11.893 13.531 13.020 10.474 8.518 7.516 7.807 8.517 9.282 11.529 12.523 11.902 12.000 10.440 9.096 + 13.093 12.558 13.045 13.823 14.969 15.343 12.968 12.757 12.319 11.053 10.840 11.190 10.483 11.470 11.970 13.542 14.190 13.557 12.056 11.641 11.581 12.426 13.781 13.366 10.685 8.334 8.258 8.559 8.337 9.198 11.243 12.332 11.293 11.101 10.384 9.112 + 12.684 12.543 12.876 13.878 15.102 15.317 12.923 12.830 12.077 11.376 11.425 11.575 11.175 11.714 12.460 13.913 14.477 13.847 12.108 11.431 11.068 12.155 13.876 13.530 10.841 8.666 8.504 9.197 9.391 9.572 12.383 12.703 10.241 9.919 10.570 9.671 + 13.354 13.531 13.183 13.514 14.404 14.530 12.345 12.660 11.343 11.320 11.645 10.907 11.343 11.204 12.250 13.232 13.921 12.843 12.507 11.116 11.109 11.987 13.145 12.195 10.547 9.389 8.917 7.722 8.434 10.194 12.263 12.464 11.652 10.432 9.701 8.327 + 13.921 12.588 12.917 13.634 13.265 12.998 12.672 11.465 10.925 11.811 10.733 10.588 10.682 11.026 11.442 13.154 13.143 12.730 11.593 10.429 10.852 10.810 12.731 12.118 10.343 8.630 9.048 9.073 9.045 10.165 11.535 11.958 11.362 10.194 10.559 9.663 + 13.307 11.983 10.224 11.968 12.155 12.565 12.269 10.384 11.099 11.023 10.262 10.223 9.954 10.739 11.025 12.522 12.603 11.578 10.115 9.617 10.034 10.240 11.947 11.031 9.236 7.664 8.777 7.945 8.477 9.739 11.492 11.429 11.327 10.106 9.551 8.645 + 9.261 9.597 10.502 10.830 11.545 12.172 11.785 11.067 10.987 9.893 9.334 9.370 9.044 9.671 10.421 11.743 11.837 11.349 10.336 9.822 8.805 10.702 12.058 11.254 8.900 8.280 8.223 7.516 8.719 10.601 12.496 12.076 11.661 9.832 9.504 8.544 + 10.307 9.785 9.979 10.593 10.884 11.503 11.114 11.081 11.413 10.506 10.254 9.321 8.613 9.242 10.015 10.647 11.799 12.486 11.796 10.918 10.417 11.028 12.460 11.346 9.604 7.984 7.774 7.963 8.292 10.061 12.054 11.538 10.715 8.846 9.345 8.484 + 10.757 10.295 10.560 11.827 12.001 12.113 12.561 12.271 12.555 12.167 10.974 11.482 10.474 11.195 11.167 12.031 12.642 12.991 12.686 11.747 11.228 12.190 13.080 12.316 10.952 8.790 8.898 8.211 9.906 11.613 13.028 12.355 11.605 10.033 9.288 8.174 + 10.281 9.100 10.232 11.222 12.285 12.965 13.236 13.753 12.768 12.271 12.575 11.615 10.788 11.348 11.412 12.415 13.290 14.097 14.018 12.863 12.396 13.243 14.264 13.283 11.169 8.591 8.597 8.974 9.875 11.909 13.560 12.526 12.136 10.483 9.328 8.356 + 11.104 11.242 11.309 10.124 12.588 13.943 14.875 14.895 13.999 13.444 11.904 11.784 11.553 11.286 11.761 12.353 13.508 15.121 15.529 13.493 13.263 13.843 15.277 14.489 11.926 10.530 9.230 9.216 10.769 12.540 14.060 12.708 12.530 10.648 9.462 8.787 + 10.882 11.110 11.729 10.203 12.476 14.015 15.461 16.054 15.482 14.347 11.767 11.846 12.003 11.344 11.989 11.813 12.922 14.118 15.817 15.879 14.647 14.365 15.467 15.420 13.636 11.529 9.895 9.336 11.147 12.493 13.235 12.167 10.648 9.423 10.317 10.040 + 12.574 12.781 13.092 11.953 13.042 14.174 15.513 15.701 16.304 15.400 13.176 11.840 12.365 11.578 12.429 12.057 13.013 13.832 15.818 17.005 15.773 15.140 15.710 15.843 15.038 11.756 10.259 9.846 12.921 13.933 14.045 12.941 11.786 10.404 11.299 11.540 + 12.826 12.874 13.086 11.275 12.552 13.629 14.693 15.927 16.304 14.473 12.141 12.801 12.204 12.000 12.559 12.185 13.017 13.329 14.794 16.216 16.655 15.217 15.089 15.764 15.048 13.211 11.136 10.923 12.059 13.695 14.394 12.561 10.736 9.789 8.967 9.513 + 12.818 12.488 12.979 10.866 11.038 12.710 14.040 15.944 15.849 13.740 12.467 12.977 11.885 11.540 11.997 11.513 12.218 11.996 12.987 15.209 16.368 15.706 15.205 15.791 15.936 13.799 11.874 11.140 12.014 13.329 14.008 12.955 11.144 8.613 7.055 7.556 + 12.782 12.212 12.860 10.666 11.452 12.212 13.772 15.917 15.482 13.337 12.879 13.010 10.860 11.237 11.086 11.046 11.092 10.967 11.476 13.371 15.283 15.389 14.956 15.663 15.943 13.878 11.310 10.494 11.742 13.021 13.916 13.256 11.592 9.541 7.600 7.886 + 12.908 12.353 12.796 11.014 11.344 12.602 13.821 15.589 14.943 13.155 13.071 12.992 10.809 10.772 11.005 10.961 10.730 10.588 10.861 11.953 14.192 15.543 15.079 15.415 15.723 13.886 10.795 10.134 9.367 11.839 12.862 12.615 11.663 9.590 6.971 6.009 + 13.092 12.761 12.403 11.187 10.949 12.147 13.211 14.242 13.485 11.800 13.096 12.464 10.940 10.167 10.675 10.880 10.580 10.607 9.713 9.234 11.649 14.003 14.604 14.495 14.677 12.891 9.791 9.307 9.177 10.361 11.207 11.483 11.604 9.858 8.078 7.150 + 13.113 12.413 11.404 11.119 10.751 11.401 12.590 11.891 11.316 12.100 12.324 11.312 10.795 8.998 9.959 9.841 9.965 9.944 9.693 9.878 9.188 9.639 11.978 11.987 12.115 10.661 8.385 7.680 7.961 9.035 10.359 11.289 11.784 10.709 9.082 7.640 + 12.214 10.506 9.935 10.505 9.601 10.854 11.237 12.250 12.073 10.210 11.646 11.094 10.325 9.061 9.162 9.647 9.412 9.932 10.121 9.952 10.153 10.262 10.870 10.353 9.468 8.249 6.568 6.169 6.881 6.512 8.582 10.132 10.342 10.022 9.409 7.183 + 10.741 11.345 10.524 9.622 9.178 9.424 9.928 10.565 10.167 7.869 9.687 10.129 9.847 7.378 7.469 8.411 8.333 9.365 9.892 9.147 9.919 10.394 10.492 9.451 8.813 8.113 6.716 5.679 5.921 6.255 7.128 9.762 9.961 8.874 9.108 8.666 + 7.018 9.348 10.038 9.962 8.202 8.241 8.666 8.626 7.844 8.076 7.490 7.714 6.940 5.492 5.264 6.188 6.734 8.305 8.025 7.067 8.589 9.744 9.488 9.178 9.239 7.803 6.823 5.707 6.459 7.139 6.771 10.280 10.713 9.364 10.214 10.357 + 7.952 7.502 7.870 9.398 8.175 8.137 7.820 8.938 8.353 6.797 5.871 7.033 5.968 3.882 3.753 4.768 5.063 6.999 6.798 6.781 8.088 9.415 8.602 7.503 8.327 8.009 6.807 6.762 6.476 8.140 7.866 7.391 6.777 5.427 5.164 4.641 + 5.225 7.026 7.769 9.077 8.238 7.534 7.280 7.068 6.402 5.625 7.292 6.966 6.216 5.511 4.402 3.857 3.762 5.385 6.628 6.967 8.934 9.702 8.151 7.068 8.487 8.732 7.481 6.385 6.847 8.633 8.045 6.819 5.812 4.769 4.942 3.791 + 5.416 7.858 7.946 7.855 7.020 8.233 7.355 5.661 6.275 5.878 6.628 6.323 5.256 5.054 5.898 5.110 4.764 5.756 5.632 7.258 9.022 9.573 7.174 7.087 9.431 9.239 7.346 6.512 6.817 8.810 7.868 6.820 5.795 4.451 4.579 3.750 + 6.515 8.489 8.542 9.033 8.174 8.075 7.246 6.561 6.646 5.884 5.142 5.962 5.637 5.509 5.418 5.062 5.074 6.006 6.639 7.913 8.521 9.238 7.896 7.264 8.408 8.134 7.572 6.171 6.858 9.277 9.217 7.042 5.263 4.254 4.329 3.230 + 6.308 7.539 6.980 9.929 9.457 8.702 8.102 6.770 6.204 5.678 5.442 5.038 4.535 5.940 5.210 4.194 5.503 6.608 7.173 9.336 9.452 8.297 7.215 6.584 8.769 9.122 6.879 5.920 6.337 8.809 8.287 6.840 4.737 3.998 4.365 3.958 + 6.487 7.639 7.992 10.287 9.702 7.625 7.024 5.407 5.083 6.526 6.769 5.461 4.860 4.233 5.854 6.087 5.367 4.964 6.947 8.398 9.374 8.024 6.977 6.456 9.212 8.928 5.766 5.100 5.674 8.506 8.116 6.303 5.066 4.124 3.927 3.663 + 6.537 7.791 7.259 9.691 9.852 7.402 5.743 6.088 5.853 5.582 5.582 5.466 4.278 4.486 4.999 5.477 5.678 6.267 7.127 7.747 7.952 7.801 6.561 6.334 7.253 7.488 6.640 5.254 5.142 7.179 7.402 5.429 4.554 3.978 3.819 3.931 + 5.630 6.488 7.364 9.647 8.997 8.624 6.550 6.276 6.615 5.753 5.019 4.984 5.299 5.132 5.205 5.351 5.263 6.431 7.532 7.516 7.979 7.697 6.814 6.722 7.906 7.092 5.989 5.431 6.662 7.778 7.373 5.303 4.607 3.748 3.962 4.251 + 6.486 7.982 7.964 8.719 8.178 8.549 6.899 7.111 7.202 6.019 6.393 6.473 6.296 5.374 5.293 6.116 6.441 7.031 9.228 8.730 8.707 8.253 6.250 6.535 8.544 7.875 6.140 5.556 6.159 8.201 6.949 4.830 5.199 4.171 4.602 3.436 + 6.543 8.645 7.771 6.538 7.260 7.481 6.995 7.971 6.363 6.393 7.873 7.337 5.855 6.367 7.093 5.971 6.058 9.147 9.737 8.300 7.934 8.258 7.636 7.457 8.111 8.939 9.318 8.077 8.197 8.169 7.020 6.443 6.264 5.659 5.191 4.875 + 7.131 8.582 7.806 7.736 7.795 8.618 8.540 8.923 6.692 7.140 6.967 7.699 5.436 6.496 6.262 6.887 7.220 7.974 9.572 8.846 7.684 8.058 7.552 7.482 7.818 8.816 9.382 8.086 7.866 8.085 6.997 6.324 5.747 6.188 5.278 5.165 + 7.114 8.236 8.254 9.698 9.682 9.975 8.989 8.312 6.769 7.887 8.157 7.975 6.252 6.539 5.513 7.153 6.771 8.233 8.439 8.280 8.078 7.717 6.528 6.477 7.477 7.514 7.076 6.271 8.247 8.202 6.994 5.299 4.964 6.128 5.425 4.920 + 7.458 8.074 8.709 10.624 10.710 11.062 9.167 8.277 7.724 8.785 8.507 8.089 5.547 7.226 6.429 7.647 7.839 9.965 9.311 8.983 8.602 7.349 6.354 7.607 7.593 8.479 7.480 6.714 7.623 7.180 6.379 4.658 4.312 5.908 5.101 4.867 + 6.448 7.415 9.005 10.762 11.199 11.556 8.592 7.743 8.209 8.125 8.205 8.137 5.751 6.336 6.198 6.896 9.716 10.963 10.111 8.414 8.093 7.622 7.131 6.255 6.290 7.239 7.301 7.036 7.136 6.858 6.435 4.211 4.418 4.801 3.767 3.714 + 6.268 7.124 8.729 10.166 11.818 12.079 8.432 7.227 7.765 7.239 7.546 7.172 7.034 6.707 6.791 8.575 9.728 10.319 9.354 9.774 8.287 9.493 8.445 6.160 7.293 7.943 6.840 6.237 6.502 7.144 7.587 4.836 5.190 6.279 4.649 3.504 + 6.060 6.316 7.262 8.305 12.149 12.259 8.923 8.234 8.127 8.757 8.248 6.417 7.647 7.982 7.357 9.715 9.823 9.696 8.919 8.589 8.635 8.400 7.419 7.225 7.614 7.895 6.855 5.816 6.758 6.846 7.566 6.352 5.890 5.974 4.713 4.059 + 6.238 5.614 7.007 8.471 11.944 11.872 8.528 8.066 8.062 8.956 9.315 8.720 8.723 8.096 6.922 8.324 8.153 8.646 8.232 8.262 8.178 8.322 7.870 7.148 6.816 6.800 6.321 5.954 7.350 7.502 7.192 7.080 6.139 6.365 4.504 4.657 + 6.599 7.020 8.673 9.675 10.651 10.859 7.818 7.576 7.318 7.446 9.133 8.520 8.216 7.141 6.814 7.467 7.748 7.985 7.707 7.481 8.554 8.886 8.468 7.952 7.880 7.604 6.743 7.006 6.690 7.509 8.048 8.464 8.097 6.009 5.143 4.304 + 7.348 7.733 8.994 9.671 10.269 10.726 8.577 7.489 8.348 9.510 9.513 8.615 7.013 5.333 6.305 7.175 6.862 7.229 8.280 7.439 9.440 10.320 8.955 7.976 7.914 6.716 6.861 7.207 7.236 7.949 7.278 7.566 7.831 6.803 5.195 3.829 + 7.051 7.448 8.952 9.537 10.573 9.848 9.251 7.597 8.550 9.064 9.449 10.123 8.321 6.099 6.344 6.712 7.192 8.111 7.847 7.545 9.585 9.902 8.681 7.803 7.942 7.312 6.300 6.668 7.242 7.183 6.951 7.171 7.325 6.734 5.830 4.132 + 6.751 6.952 9.265 9.875 9.541 9.345 9.400 7.775 8.660 8.542 9.445 10.262 6.987 6.385 7.467 7.585 7.207 7.756 7.337 7.396 8.360 9.570 8.214 8.718 8.444 7.890 7.212 7.758 7.298 6.885 7.173 8.025 8.037 6.838 6.169 4.338 + 6.302 6.710 9.082 9.984 10.349 9.727 8.891 6.493 7.855 8.108 9.384 10.801 9.120 6.911 6.339 7.247 7.129 6.950 6.719 7.445 9.451 10.576 8.768 8.711 8.749 8.229 7.542 7.411 6.915 7.161 6.871 7.495 7.684 6.208 5.894 4.661 + 6.017 6.445 8.412 9.585 10.674 10.070 10.017 8.204 8.487 8.241 8.265 10.410 9.865 8.200 7.196 6.458 7.091 7.169 7.746 7.001 9.647 10.296 9.074 8.690 9.045 8.288 7.265 7.693 7.374 7.637 7.287 7.097 7.351 5.701 5.473 4.627 + 6.577 6.352 7.819 8.504 8.058 9.371 10.043 8.633 9.040 9.224 7.977 8.211 9.845 9.553 8.807 7.868 7.274 7.519 7.429 8.046 9.834 9.382 8.086 8.090 8.587 7.131 7.426 7.040 7.481 6.636 6.706 7.348 7.048 5.815 5.565 4.730 + 6.590 6.579 7.440 7.735 8.614 8.191 7.755 9.059 9.885 8.531 7.418 7.308 7.993 8.447 9.776 8.713 8.118 7.706 7.994 8.544 9.316 9.347 8.987 8.472 8.556 8.218 7.444 8.093 7.359 6.605 6.522 6.866 7.160 5.387 4.743 4.488 + 6.762 6.869 6.527 7.459 8.770 8.379 8.585 7.953 9.063 8.523 7.109 8.289 7.761 8.353 10.329 9.612 8.455 6.771 8.046 8.318 9.348 9.638 9.101 7.637 8.509 7.497 6.329 7.463 7.406 6.853 7.688 5.567 6.954 6.200 5.365 4.728 + 6.018 5.668 6.323 5.711 5.977 6.808 8.520 9.786 9.745 7.959 5.488 6.680 6.531 8.068 9.771 9.658 8.335 7.237 7.723 8.730 9.671 10.178 8.344 7.395 9.032 8.458 7.653 7.622 7.415 6.423 7.565 7.025 6.600 5.285 4.308 4.058 + 3.577 5.326 6.960 6.456 6.832 6.923 6.855 8.739 8.880 6.670 4.813 6.630 6.228 5.474 6.873 9.010 7.639 7.302 7.006 8.737 9.615 9.518 7.443 7.827 8.759 7.899 6.935 6.391 6.684 6.900 7.355 7.165 7.148 5.278 4.565 4.417 + 4.990 5.107 6.291 5.160 5.870 5.409 5.954 7.560 6.820 6.996 5.461 6.625 5.750 6.093 7.679 7.832 7.569 6.883 6.777 8.688 9.943 9.856 8.257 7.858 7.673 6.930 7.120 6.420 6.726 6.857 8.308 7.434 7.224 6.549 5.241 4.863 + 5.173 5.081 6.605 6.118 4.480 4.845 5.027 7.455 7.749 5.914 4.835 4.797 4.650 5.466 5.962 7.288 6.668 7.394 6.426 7.701 8.422 8.699 8.341 7.360 7.096 6.702 6.863 7.238 6.472 7.037 8.110 7.048 8.025 7.185 6.241 6.029 + 6.026 5.559 5.293 5.767 5.624 7.350 7.332 7.599 7.895 6.638 5.576 6.685 6.255 4.563 6.340 7.979 6.351 5.449 6.810 7.744 9.559 10.480 8.006 6.711 8.732 7.366 7.271 8.975 7.759 7.182 8.702 8.148 8.021 6.784 6.072 5.384 + 5.793 5.213 5.300 4.622 5.573 6.971 6.963 7.743 9.529 7.700 6.253 6.688 6.378 5.088 6.433 8.714 8.178 7.032 7.037 7.465 9.875 10.951 8.790 6.248 8.123 8.432 7.235 7.846 7.246 8.211 8.471 8.244 8.544 6.781 6.955 5.557 + 5.387 5.421 5.461 4.972 5.253 5.207 7.834 9.182 10.064 8.394 7.067 7.234 7.085 6.033 6.409 8.930 8.802 7.607 7.093 7.317 8.103 8.946 8.683 7.159 8.098 7.944 7.667 8.173 7.590 8.801 8.740 8.513 8.088 7.197 6.402 6.147 + 4.738 4.223 4.274 4.390 4.086 5.370 7.656 9.668 10.918 9.369 7.538 8.284 7.992 6.422 6.292 8.172 7.533 7.543 7.465 6.813 8.275 8.804 7.819 6.634 7.733 7.947 7.968 8.933 7.969 7.814 8.700 8.246 7.726 7.473 6.250 5.789 + 3.711 4.695 5.543 4.487 5.229 6.872 7.625 9.438 11.129 9.615 7.108 8.579 8.515 7.214 6.916 8.302 7.713 7.194 7.777 7.231 9.325 9.110 7.670 6.355 6.745 8.622 7.230 7.943 8.445 8.368 7.106 8.296 9.230 7.415 6.421 5.690 + 3.810 5.008 6.327 5.697 5.559 6.295 7.163 9.121 10.799 9.291 8.097 8.260 8.473 7.403 6.613 6.509 7.299 8.391 9.126 8.347 8.376 8.746 6.907 7.059 7.823 7.730 7.612 7.750 8.373 8.583 8.588 8.630 9.116 7.807 6.729 6.085 + 5.154 5.646 6.460 5.637 4.575 7.069 6.985 8.519 9.995 8.827 7.976 7.554 5.653 6.468 5.208 6.280 7.883 8.593 8.803 8.856 8.662 7.535 5.904 6.798 7.721 7.809 8.105 8.699 7.720 8.086 8.613 8.321 8.525 7.418 6.831 5.766 + 6.631 6.547 6.877 6.408 4.751 6.920 7.289 7.928 8.494 7.519 7.823 6.189 6.342 5.287 5.762 5.164 8.034 8.783 7.999 8.730 10.418 9.469 6.662 5.773 7.891 7.968 7.260 7.918 8.157 8.610 8.713 8.249 8.866 7.549 6.608 5.813 + 6.993 6.917 6.942 5.913 4.339 5.194 6.302 6.814 7.908 7.128 6.397 5.181 5.775 5.795 4.986 5.308 6.858 7.409 8.793 9.595 8.658 8.337 8.402 7.111 7.247 7.655 7.236 8.135 8.200 8.259 9.629 8.687 8.827 7.694 6.628 5.942 + 6.551 6.909 6.549 6.345 5.735 5.518 7.988 9.515 9.274 7.654 6.814 6.629 6.387 6.024 3.380 4.977 6.287 7.845 8.734 8.871 8.944 7.395 6.518 6.758 7.158 7.883 7.704 7.402 7.044 8.029 9.056 8.932 8.707 7.686 6.772 6.424 + 4.835 6.164 5.651 4.569 5.531 5.702 6.819 8.800 8.615 6.606 4.775 5.938 6.073 4.566 3.598 5.358 5.829 6.922 7.364 8.854 9.481 8.432 6.570 7.520 6.340 7.375 7.848 7.236 6.870 7.753 9.028 8.733 8.370 7.196 7.530 6.469 + 3.974 3.754 3.661 2.876 4.077 4.569 4.574 5.030 6.337 5.439 5.190 4.470 5.214 2.830 3.571 4.853 5.495 6.575 6.245 8.006 8.845 8.857 7.477 7.089 7.247 7.478 6.874 7.798 7.670 7.817 8.864 7.435 8.786 7.535 6.875 6.098 + 2.452 3.571 3.613 4.119 3.794 4.014 5.711 7.024 6.095 4.721 3.970 4.190 3.784 4.194 4.304 5.496 6.057 6.843 6.758 8.686 8.433 9.030 7.666 7.592 7.598 6.581 6.375 6.801 6.458 7.340 8.578 7.559 7.717 6.974 6.116 5.846 + 3.811 3.466 3.858 3.833 3.790 3.427 5.528 7.252 5.904 2.599 3.214 2.895 3.359 4.857 5.077 5.355 6.151 6.182 7.150 8.216 9.172 9.055 6.658 7.006 6.602 6.413 6.446 6.777 7.004 7.282 8.317 8.678 7.874 7.352 6.910 7.118 + 2.599 3.411 4.006 2.802 2.765 4.506 5.446 6.360 4.688 4.125 3.918 4.799 3.502 3.933 5.319 5.533 5.571 6.336 6.583 6.468 8.017 7.466 7.321 6.789 6.357 5.828 6.445 7.914 8.119 7.995 8.455 7.835 7.630 7.754 7.733 6.764 + 1.555 2.633 2.008 2.094 2.997 4.145 6.022 7.464 6.675 4.465 3.559 4.086 3.275 4.137 4.155 4.558 5.223 5.559 6.606 6.550 8.073 6.911 6.075 5.345 6.970 6.378 5.823 7.680 8.371 7.951 8.109 8.325 8.184 7.710 7.181 6.680 + 3.880 4.275 3.327 3.452 3.819 3.607 3.604 6.657 6.419 3.659 3.680 4.560 3.688 5.089 4.874 3.846 4.595 4.023 5.490 7.190 8.325 7.344 5.707 6.553 7.279 5.835 5.798 7.276 8.111 8.517 8.075 8.415 8.199 7.938 7.474 7.866 + 2.864 3.928 3.073 2.256 1.281 3.850 4.965 5.016 5.039 3.298 2.588 3.589 3.440 4.572 4.997 3.533 2.728 4.371 5.029 5.349 6.528 6.577 6.497 6.415 6.098 6.017 6.437 7.370 7.655 7.590 8.426 8.058 8.306 7.184 7.303 6.878 + 3.502 3.801 2.052 1.776 2.494 4.299 4.806 4.054 5.591 4.254 3.150 4.117 3.587 3.772 4.067 4.385 4.317 4.756 5.275 7.841 9.260 8.337 6.797 6.713 7.517 7.056 6.485 7.298 7.369 7.561 8.690 8.148 7.855 7.626 7.468 6.780 + 3.287 4.381 3.868 2.990 0.262 4.514 5.840 5.009 5.641 4.996 4.568 4.216 2.468 3.578 4.446 4.258 4.010 5.661 6.418 8.337 9.448 8.452 6.753 6.471 7.124 5.664 6.744 7.118 7.851 8.242 8.735 7.850 8.017 7.259 7.985 7.718 + 0.521 2.868 3.944 3.401 2.696 3.609 4.237 5.121 5.580 3.510 5.096 4.972 4.030 4.631 4.470 4.060 5.118 5.163 5.679 7.334 9.283 8.163 5.887 6.880 5.712 6.073 6.112 6.748 7.300 7.797 8.639 7.552 7.720 7.218 6.772 5.886 + 2.192 2.855 2.142 1.545 2.855 4.259 4.861 5.265 4.130 4.410 4.618 3.992 4.987 4.820 3.696 4.102 4.876 5.749 5.546 7.584 8.900 7.512 5.052 6.327 6.941 6.593 5.842 6.635 7.398 8.613 7.118 7.980 8.207 6.544 6.383 5.561 + 2.469 2.462 0.979 1.804 3.879 4.835 5.440 3.279 4.392 4.302 3.972 3.952 3.687 2.986 3.534 4.788 5.161 5.019 5.575 7.861 8.868 6.640 6.408 7.072 7.550 5.895 5.824 6.969 7.907 7.325 7.426 7.277 7.078 6.866 6.259 5.847 + 3.302 3.793 3.922 4.023 5.178 6.135 5.920 4.386 6.607 6.550 4.645 2.807 3.893 4.012 4.976 4.124 5.265 4.678 6.148 7.507 9.369 7.148 6.390 6.789 5.620 5.021 6.155 6.393 6.626 6.844 8.140 6.653 6.316 6.195 6.079 4.775 + 6.620 6.848 5.388 6.431 8.316 8.981 8.781 6.674 6.575 5.636 6.417 5.356 5.653 6.024 5.842 5.058 7.801 7.891 7.595 6.979 9.038 7.777 6.548 6.753 5.474 5.946 6.261 6.840 7.385 6.710 8.031 7.570 6.365 5.954 6.261 5.786 + 6.300 7.401 6.999 5.872 9.258 9.608 10.040 9.191 8.232 7.341 7.656 7.942 7.481 6.935 7.959 7.634 10.007 9.456 7.114 6.462 8.024 6.971 6.584 6.201 5.663 6.632 6.424 7.416 6.972 6.702 8.654 8.086 6.830 6.490 7.287 6.312 + 5.350 6.420 6.162 6.247 9.344 9.619 9.435 10.412 10.695 9.433 8.936 7.968 6.940 8.125 8.780 7.833 10.054 10.072 8.693 8.845 9.161 7.957 5.702 6.601 5.718 5.316 6.108 6.601 7.528 6.446 8.363 7.360 6.504 6.594 6.530 5.436 + 5.606 6.542 5.871 6.817 9.675 10.917 10.231 10.919 11.297 9.145 8.555 6.906 5.969 7.959 8.500 8.921 9.818 9.286 8.268 8.091 8.138 8.238 7.157 6.482 7.048 6.078 6.617 6.430 8.248 7.181 7.516 6.738 5.715 5.486 6.022 5.477 + 6.806 7.809 7.692 6.842 9.182 10.591 10.750 11.294 10.491 9.905 8.276 7.453 7.863 8.484 9.187 9.082 9.819 9.034 8.221 7.948 7.837 6.718 7.394 6.122 6.686 7.049 6.168 6.822 7.819 6.780 6.796 6.465 6.234 5.055 6.122 5.599 + 7.189 7.913 7.354 6.317 8.903 10.177 10.445 10.721 10.525 9.262 8.292 7.582 8.240 8.148 9.038 9.333 10.126 9.455 8.310 8.612 9.182 8.595 8.554 7.322 7.383 7.650 7.432 7.400 7.835 7.823 7.416 7.416 7.251 6.510 6.068 5.295 + 5.807 6.979 8.097 7.075 10.433 11.762 11.433 11.124 9.586 9.018 9.217 8.179 7.422 9.403 9.009 8.569 10.647 10.271 8.049 8.277 9.070 8.042 7.366 6.903 8.478 8.596 7.537 7.375 7.663 7.104 7.171 6.481 7.078 6.729 6.052 5.292 + 4.466 7.261 8.502 8.098 11.204 12.128 11.088 11.369 10.263 8.717 9.207 7.785 6.710 8.647 9.590 9.752 9.534 10.478 9.342 9.250 9.483 7.642 6.280 6.384 8.011 7.751 7.450 7.794 7.835 7.653 7.942 7.486 6.606 5.925 6.075 5.665 + 7.013 7.732 8.383 7.765 10.680 10.969 10.841 10.736 10.261 9.103 7.211 7.455 7.203 7.367 8.274 9.617 9.586 9.781 9.240 8.926 9.633 7.951 7.194 7.808 8.000 8.403 7.418 7.902 8.271 7.426 7.987 6.744 6.548 5.596 5.781 4.705 + 7.637 7.820 8.591 8.810 10.680 11.141 10.413 9.547 9.139 8.354 7.955 7.062 6.480 7.424 8.077 9.589 10.564 9.899 8.936 8.786 8.658 9.323 8.203 7.781 8.427 8.205 7.940 7.474 7.650 7.645 7.603 6.800 6.424 5.532 5.043 4.378 + 8.472 8.699 8.647 9.489 10.599 10.557 9.991 10.418 9.269 7.378 6.560 6.375 4.886 4.894 7.203 8.280 7.943 9.360 9.548 9.400 9.100 9.665 8.704 9.063 9.454 9.584 8.968 8.576 8.164 8.697 7.956 7.022 6.271 5.387 5.090 4.545 + 8.478 8.381 7.530 7.162 9.722 9.820 9.111 10.330 8.803 6.920 6.427 5.864 5.368 7.134 7.168 7.633 7.772 8.562 8.662 8.351 8.704 8.261 7.562 7.511 8.445 9.350 9.006 9.516 8.480 8.744 8.007 6.839 5.881 5.426 4.886 3.990 + 8.352 8.154 8.134 9.183 9.769 10.307 9.772 9.735 8.514 6.678 5.814 5.147 4.183 5.209 5.400 6.681 7.675 8.403 7.225 8.311 8.419 7.820 8.002 7.140 7.373 8.094 7.108 6.735 6.417 6.159 6.003 5.661 5.196 5.202 5.191 3.818 + 7.660 7.333 5.270 5.637 6.006 7.714 6.919 6.528 6.239 5.634 5.242 4.013 3.990 3.506 5.701 7.198 7.576 7.293 6.516 6.894 7.109 6.774 6.298 5.555 6.368 6.556 6.059 6.322 5.623 5.724 6.359 5.316 4.719 4.052 4.114 3.405 + 6.697 6.556 6.089 6.228 6.828 8.129 7.922 8.527 8.345 6.616 4.576 4.911 5.467 3.375 5.677 6.678 7.275 7.493 6.389 7.485 7.076 6.423 5.997 4.857 6.042 5.487 4.836 5.216 5.100 5.137 5.624 5.211 5.118 4.440 3.901 3.404 + 3.987 5.145 6.106 6.062 6.817 7.338 6.855 6.930 6.870 4.489 4.493 5.627 4.550 4.578 3.614 6.947 8.173 7.357 6.572 5.703 6.494 5.275 4.844 6.027 6.489 5.797 4.668 4.406 5.393 5.184 6.062 5.056 4.780 4.045 3.321 2.621 + 4.879 4.103 5.660 6.292 5.792 6.056 5.990 7.657 6.830 4.790 5.277 5.391 4.376 4.833 5.450 6.693 7.100 8.377 8.031 8.024 8.342 6.865 5.734 7.030 6.895 6.021 5.028 5.738 6.107 6.405 5.305 5.197 5.517 6.883 6.316 4.425 + 3.999 4.464 6.018 6.971 8.196 8.267 6.847 7.430 6.527 4.932 5.846 5.236 4.463 5.391 5.190 4.821 6.314 8.403 8.378 9.271 8.736 7.634 6.094 5.607 6.293 5.754 5.941 5.406 6.244 7.011 6.033 5.577 5.914 7.678 8.234 6.431 + 4.211 4.316 5.349 7.834 7.765 7.758 7.450 6.625 6.498 5.128 6.410 6.472 5.673 4.851 4.564 6.452 6.947 7.534 7.528 8.110 7.419 6.173 6.420 6.279 8.555 8.261 7.623 7.925 6.684 6.438 5.888 5.935 5.938 6.959 7.486 6.266 + 6.011 5.816 3.453 8.058 9.003 7.785 6.627 5.125 6.295 4.316 4.146 4.623 4.472 3.349 5.041 5.957 6.193 7.698 7.516 8.071 7.899 8.138 6.731 6.838 7.902 8.681 9.187 9.457 7.936 6.811 6.843 6.678 6.722 6.590 5.863 4.951 + 6.713 6.950 5.081 8.762 10.482 9.910 7.032 8.227 7.893 5.390 5.053 5.681 4.994 4.034 5.450 6.257 6.947 8.063 8.194 7.773 8.566 9.298 7.456 6.418 8.456 8.883 10.432 10.861 9.377 8.288 7.601 6.736 7.104 7.517 6.007 4.223 + 7.371 7.406 5.265 6.510 8.983 8.528 7.347 8.529 7.157 5.589 4.643 4.222 4.652 4.750 4.650 5.072 5.384 7.654 8.497 8.696 9.405 9.838 6.583 7.267 8.884 9.217 10.769 10.702 9.307 8.732 7.439 7.363 7.583 7.711 5.948 4.748 + 7.840 7.439 5.518 8.069 9.109 9.071 8.374 9.217 7.254 4.472 4.395 3.396 3.388 5.007 4.243 5.374 5.524 6.423 7.117 7.751 9.749 9.446 7.002 6.351 8.723 9.140 10.226 9.878 8.794 8.405 8.178 7.793 6.947 7.282 5.183 4.242 + 6.733 6.625 4.712 8.327 8.804 8.732 9.073 9.160 6.050 4.496 4.210 4.270 3.781 4.573 5.358 5.321 5.543 6.117 8.070 8.050 9.254 9.021 8.163 7.486 8.145 8.534 10.346 10.656 9.205 9.021 8.303 7.518 7.477 7.441 6.165 3.397 + 5.110 4.826 5.851 8.683 9.433 8.450 8.912 8.928 6.950 5.810 4.343 4.049 3.728 5.025 5.753 5.750 5.898 7.556 8.253 7.807 8.825 8.766 8.366 7.855 7.775 8.472 10.407 10.647 9.602 9.307 8.620 8.256 6.742 6.434 5.878 3.899 + 2.383 4.895 5.940 9.055 9.671 7.753 9.665 10.377 7.795 6.988 6.160 4.282 4.629 5.300 4.779 5.270 5.699 6.193 7.832 8.198 10.113 9.128 8.090 7.379 8.475 8.921 9.532 9.477 8.936 9.115 8.683 7.691 7.511 7.206 6.040 3.418 + 4.487 3.711 5.629 7.121 8.011 6.986 9.175 9.564 6.094 6.504 4.956 3.738 3.805 4.386 3.748 3.985 5.934 6.736 7.019 8.178 8.983 7.315 7.400 6.454 7.664 6.945 9.194 8.302 6.632 6.782 8.160 7.282 6.517 5.235 4.872 3.868 + 5.023 5.069 7.054 8.826 8.159 6.923 7.598 8.337 6.646 5.360 5.954 5.055 4.470 5.014 4.451 5.151 5.202 7.051 7.260 7.770 7.432 6.530 5.733 4.879 5.368 5.625 7.151 7.243 5.522 5.812 7.379 7.516 6.392 5.339 4.304 3.890 + 4.508 5.301 7.759 9.064 8.247 7.870 8.154 8.040 5.651 5.334 4.350 4.017 4.710 4.357 5.069 5.684 4.977 7.353 7.135 8.129 7.983 6.449 5.139 4.708 5.912 5.466 6.319 6.129 6.091 6.234 6.143 6.871 6.213 5.433 3.362 3.057 + 4.489 6.596 7.350 9.070 9.013 7.581 6.255 6.648 5.089 4.900 3.528 3.787 4.249 5.263 4.303 4.485 5.474 6.490 7.340 8.230 7.636 6.013 5.099 5.262 6.464 5.295 6.719 6.679 6.078 6.019 6.359 6.205 4.843 4.577 4.098 2.725 + 4.178 4.235 6.580 7.071 8.258 8.227 6.392 5.730 5.290 3.818 4.312 3.362 3.470 4.848 3.454 4.792 4.994 4.784 5.520 7.751 6.928 5.405 4.979 3.347 5.371 4.907 7.229 6.369 5.237 5.078 5.386 5.377 4.641 3.247 2.816 1.996 + 5.402 5.560 5.574 6.656 8.186 7.861 7.693 4.584 5.246 5.106 4.670 3.975 2.839 4.345 4.316 4.404 5.447 6.126 6.758 6.274 6.167 4.706 4.267 3.438 5.528 5.412 5.416 5.486 4.534 5.012 4.691 4.319 4.280 4.352 3.016 1.678 + 3.088 5.177 6.784 6.456 7.564 8.485 7.277 5.731 5.074 4.688 4.721 2.128 2.577 4.714 4.395 3.937 4.820 6.144 7.095 7.104 7.120 5.685 4.870 4.943 4.957 5.210 6.164 6.320 5.152 5.582 5.967 5.075 4.933 4.461 3.615 2.137 + 3.732 5.017 5.986 7.188 8.097 7.628 6.659 5.250 4.532 4.850 3.496 3.835 2.794 3.396 3.495 3.506 3.586 4.924 5.845 6.413 5.951 4.911 4.789 5.195 5.123 5.700 6.095 5.218 5.275 5.055 4.832 4.665 5.256 5.016 2.941 1.574 + 3.800 3.804 4.429 6.559 6.237 6.365 5.695 5.601 4.951 4.237 3.766 2.848 3.249 2.617 2.843 3.143 4.609 4.898 5.448 6.292 5.024 5.102 5.649 5.060 4.183 4.265 3.990 4.120 5.018 4.750 4.165 4.672 4.644 3.596 2.897 1.565 + 3.969 3.227 3.894 6.817 6.591 4.941 5.253 4.895 4.671 4.276 2.671 3.228 2.790 2.827 3.360 2.926 2.250 4.355 5.863 6.635 6.086 4.225 4.747 4.613 3.858 4.272 4.796 4.707 4.387 4.256 3.699 4.166 4.621 4.778 2.581 1.330 + 3.330 5.393 5.442 5.569 6.095 5.126 5.008 5.175 4.377 4.199 2.237 1.061 2.010 3.090 4.069 4.586 4.791 6.676 6.591 6.526 5.334 3.868 4.222 3.791 3.789 5.380 5.183 5.178 5.834 5.722 4.650 4.771 4.865 3.964 2.485 1.996 + 3.059 3.852 4.617 5.427 5.199 5.020 5.836 5.025 3.346 2.186 2.451 3.631 3.127 4.458 4.579 3.924 4.906 7.192 7.271 7.950 6.459 4.343 3.988 3.742 5.598 6.283 4.970 4.934 5.570 5.680 4.924 4.812 4.462 4.093 2.949 1.773 + 1.159 3.774 5.794 6.690 5.463 3.222 4.714 6.024 5.347 3.858 3.812 3.623 3.558 2.551 3.809 3.714 5.133 6.061 5.540 5.880 4.575 4.585 4.136 4.044 4.439 4.828 4.313 4.899 4.912 5.092 5.092 4.802 3.198 2.561 2.660 1.333 + 3.380 4.206 5.277 5.985 5.288 4.289 5.155 5.562 5.903 5.964 4.362 3.311 4.190 3.831 4.064 4.204 6.918 6.945 4.728 5.387 5.512 4.043 3.223 4.299 4.439 5.714 4.876 5.396 5.050 5.761 4.634 4.053 4.057 2.322 1.859 1.482 + 4.260 3.089 4.650 5.862 5.120 4.071 5.938 7.737 7.699 6.499 6.191 5.465 4.569 3.381 3.701 4.808 7.609 7.521 5.604 6.064 6.274 4.772 4.515 5.658 5.176 5.118 4.439 4.429 5.034 5.431 4.398 3.480 3.584 2.170 1.932 1.076 + 4.712 3.418 2.542 6.134 6.316 3.584 5.778 6.488 7.895 7.487 5.477 5.227 3.878 5.804 6.335 6.287 9.035 8.381 5.689 6.416 5.306 4.736 3.662 3.386 5.191 5.389 4.409 4.672 5.243 6.245 5.134 3.591 3.416 2.265 1.980 1.166 + 5.279 3.843 3.158 5.666 5.407 4.644 6.301 5.284 7.497 8.404 6.131 4.520 4.269 5.767 5.713 6.006 9.654 9.355 7.742 6.969 5.678 4.713 4.836 3.820 6.640 7.738 6.199 5.461 7.013 7.990 7.132 4.460 3.962 4.725 2.640 0.928 + 5.979 5.163 3.501 4.394 5.608 5.041 7.141 7.173 6.942 7.992 5.462 5.668 5.408 4.732 6.099 6.643 10.166 10.282 8.039 6.990 5.542 5.355 4.982 4.769 6.640 8.071 6.702 5.586 7.367 8.781 8.171 5.075 4.425 5.477 3.158 0.742 + 6.282 5.845 5.300 6.042 6.202 5.367 8.614 9.179 8.143 8.543 5.827 5.022 4.752 6.780 7.036 7.373 7.947 9.486 8.141 7.483 6.596 5.278 4.929 5.775 7.370 7.030 6.286 5.893 6.245 7.671 7.306 5.778 5.599 5.748 3.034 1.094 + 6.120 5.374 4.916 7.191 6.491 5.435 8.042 8.143 7.852 7.854 4.631 3.275 4.310 4.929 4.710 4.234 7.602 8.347 7.335 6.593 5.671 4.498 4.506 5.454 6.337 5.407 5.134 4.341 4.992 5.669 5.689 5.060 4.299 3.483 1.512 0.547 + 5.726 5.561 6.502 8.525 7.869 5.841 6.947 7.244 6.810 6.494 3.815 3.502 3.124 4.489 3.847 5.173 5.426 7.344 6.614 6.577 5.327 4.393 2.876 4.587 4.383 4.600 4.397 3.122 3.791 5.491 5.398 5.049 3.386 2.047 1.627 0.530 + 2.854 2.309 6.396 7.724 6.901 6.454 7.236 6.779 6.506 7.070 3.801 3.941 3.628 3.526 3.027 4.198 4.654 6.137 4.869 4.389 3.519 4.247 2.715 3.563 3.439 4.201 3.525 2.934 2.304 4.206 4.344 3.818 3.318 2.023 1.560 0.146 + 0.867 2.024 3.627 4.259 3.769 4.742 5.053 5.079 5.385 6.149 3.873 3.239 2.892 2.720 2.601 4.093 5.323 7.044 4.874 3.598 4.245 3.888 3.355 3.825 3.722 4.118 2.409 2.584 2.071 2.829 4.224 3.525 2.733 2.494 1.325 0.889 + 3.861 3.179 4.136 4.648 3.493 3.550 5.569 4.883 3.791 5.203 3.821 2.761 3.307 3.876 3.487 3.144 5.097 6.448 4.405 3.206 3.147 2.910 3.326 4.100 4.894 3.586 2.517 2.612 2.617 2.893 3.409 3.245 3.077 3.041 2.650 1.825 + 4.263 3.467 3.997 5.477 5.244 3.240 5.092 4.027 3.865 4.692 2.092 2.058 2.572 4.081 3.691 3.396 4.817 5.102 4.826 4.497 3.232 3.197 4.302 4.262 4.296 4.620 5.098 5.572 6.018 5.829 5.909 5.250 4.232 4.793 4.884 3.575 + 2.836 3.705 3.338 5.802 5.665 2.094 4.645 4.389 3.796 4.223 2.533 1.341 2.800 4.079 3.807 2.698 3.250 3.145 4.015 3.514 3.110 3.192 3.303 3.287 4.102 3.610 3.979 3.907 4.381 3.908 4.140 4.062 3.026 3.673 4.227 3.064 + 2.658 1.919 2.365 5.437 5.465 2.908 4.192 3.147 2.050 3.024 2.245 2.292 2.502 3.634 3.247 3.126 2.953 3.251 4.357 2.362 2.798 3.538 4.138 2.627 4.501 3.937 3.289 3.597 3.448 3.302 3.647 3.609 2.388 3.207 3.485 2.608 + 3.739 2.769 3.110 4.253 4.832 3.296 4.800 4.423 2.263 2.476 2.409 2.189 1.745 3.810 3.625 2.969 3.598 4.159 4.379 3.744 3.413 4.215 3.509 3.313 4.284 4.429 4.833 4.187 3.286 3.980 4.374 3.950 3.179 2.970 3.196 2.397 + 4.837 3.957 4.511 6.507 5.878 5.289 5.365 3.018 2.881 2.704 3.176 2.860 2.516 2.441 1.355 3.961 3.600 3.692 4.782 3.803 3.774 4.726 4.215 4.165 4.558 5.025 5.661 4.262 4.130 4.797 6.063 4.439 2.568 3.249 3.784 2.795 + 3.901 2.797 3.480 6.470 6.080 4.138 3.925 2.851 2.509 2.225 3.115 2.400 2.760 2.852 2.748 3.888 5.217 5.219 4.517 4.658 5.903 5.486 4.388 4.351 4.895 5.158 4.590 3.614 3.600 4.853 5.862 4.576 2.339 3.086 3.491 2.644 + 0.752 1.925 2.398 5.998 6.008 3.855 4.657 3.978 3.393 3.842 4.986 4.332 2.879 4.241 3.844 3.255 3.254 4.874 4.913 5.008 5.992 6.388 4.641 4.868 5.089 5.979 4.814 3.518 2.968 4.127 4.572 3.049 2.885 2.841 3.408 3.095 + 1.829 2.844 3.118 5.162 5.680 3.975 3.655 2.777 4.122 4.332 4.935 4.834 4.595 4.581 3.444 3.928 5.059 5.142 5.020 4.979 6.143 6.556 5.050 5.143 5.833 6.410 5.470 5.409 3.708 3.935 4.978 3.575 1.586 2.324 3.248 3.313 + 3.392 3.194 2.216 5.400 4.965 3.089 3.382 2.730 5.540 6.120 5.329 5.306 4.725 5.879 4.404 3.987 4.236 5.374 5.660 6.200 7.533 7.416 6.069 5.632 6.477 6.542 6.033 5.818 4.657 5.382 5.429 4.704 3.159 2.791 3.092 3.339 + 3.029 2.997 5.595 7.001 5.529 1.913 3.293 4.325 5.489 5.919 5.149 4.974 4.061 5.482 4.921 5.150 4.651 5.270 5.804 6.235 7.567 8.079 7.494 6.327 6.437 6.684 7.016 6.559 4.925 5.643 5.479 5.113 2.946 2.638 2.773 3.164 + 4.279 3.936 6.322 7.331 5.621 5.021 5.254 7.166 7.605 7.304 7.225 5.250 3.898 3.322 3.656 5.434 4.899 4.434 5.762 6.551 7.920 8.411 7.504 7.242 6.839 7.336 7.128 6.509 5.577 5.451 6.080 6.105 3.625 3.023 2.954 3.207 + 4.018 3.119 6.182 6.476 4.510 6.251 6.763 8.358 8.212 7.982 6.551 5.684 5.346 6.648 5.623 6.309 5.892 6.515 6.365 6.467 8.278 8.892 7.351 7.682 6.686 7.187 7.653 7.038 6.226 6.330 6.436 6.339 4.116 3.141 2.790 2.520 + 3.083 3.798 5.588 4.732 5.478 5.425 5.680 7.545 6.599 6.153 6.718 6.243 5.168 5.723 4.513 4.966 5.490 5.833 5.500 5.613 6.718 7.558 7.405 7.170 7.214 6.147 6.622 6.119 5.624 5.528 6.306 5.032 3.633 1.704 1.836 1.771 + 1.715 4.007 6.083 6.097 4.600 4.874 5.598 7.901 7.656 7.431 7.192 6.019 5.322 5.622 4.447 4.132 4.540 5.682 5.601 6.160 6.963 7.453 7.600 7.856 7.624 7.539 7.904 7.006 6.490 6.626 6.693 5.339 4.529 3.276 2.813 1.865 + 3.781 3.105 5.483 5.605 3.910 4.752 5.593 7.887 7.418 7.934 7.648 6.449 5.229 6.084 4.881 4.039 3.654 5.348 5.827 5.188 7.149 7.575 7.878 8.565 8.100 7.816 7.269 6.955 5.970 5.337 6.485 5.916 5.321 3.412 2.873 3.121 + 4.848 3.597 6.147 6.954 5.309 6.209 5.693 8.402 8.494 8.169 7.107 7.339 6.664 4.946 3.666 2.836 4.425 4.883 3.535 5.822 6.384 7.294 8.083 7.650 7.409 7.752 7.938 7.580 6.160 5.917 7.148 6.603 5.371 3.887 2.810 2.285 + 5.059 3.651 6.336 7.115 5.091 5.901 4.862 7.515 7.507 7.695 7.799 7.298 6.573 4.921 4.385 2.693 2.065 3.673 3.549 3.996 5.132 5.497 5.355 6.370 6.240 6.744 7.866 7.036 6.064 5.681 6.763 6.591 5.362 4.299 2.723 1.941 + 4.828 4.576 5.397 6.009 4.517 6.006 5.448 7.145 7.019 5.712 6.021 4.442 4.284 3.908 3.892 2.599 3.332 3.187 3.705 3.449 4.248 5.503 5.232 7.217 6.574 7.002 6.747 6.087 5.668 5.224 6.164 6.031 4.724 4.067 3.217 2.310 + 2.046 1.634 3.362 5.181 4.004 4.906 4.262 6.056 6.978 6.287 4.685 4.461 4.032 4.260 3.792 2.075 3.182 4.048 3.866 3.901 3.131 4.862 4.915 7.281 7.130 6.665 5.700 5.790 4.898 4.373 4.931 5.055 4.333 4.193 3.670 3.102 + 3.042 2.861 4.055 4.605 3.175 4.461 4.375 4.488 5.742 5.066 4.585 4.560 4.335 4.519 3.604 3.460 3.667 3.399 3.608 3.212 3.760 5.150 4.340 4.914 5.299 4.469 3.812 4.624 3.597 3.114 4.355 4.331 2.986 2.783 2.489 2.099 + 2.983 1.889 4.131 4.693 3.287 3.161 3.706 4.524 3.917 4.382 4.915 3.606 2.635 2.700 2.054 3.480 3.614 3.970 5.172 5.323 6.144 5.157 5.046 6.298 6.068 4.386 4.391 4.787 3.512 2.261 3.130 3.843 2.733 2.166 1.843 1.935 + 5.427 4.168 3.960 4.364 2.669 2.878 3.612 2.183 2.985 4.264 4.646 4.901 4.896 4.419 4.898 4.850 5.718 4.898 7.484 7.124 6.575 6.846 6.172 6.844 6.615 5.436 5.462 5.337 4.534 4.795 4.845 5.106 4.960 4.866 4.690 4.243 + 3.810 2.600 3.219 3.344 3.198 3.454 3.385 3.950 4.168 4.428 5.121 5.894 4.114 4.793 5.542 5.115 5.053 5.834 8.123 7.760 7.303 6.091 6.366 6.849 6.977 7.276 7.837 7.533 7.787 6.777 7.793 8.267 7.402 7.135 8.025 7.439 + 1.732 2.879 2.671 4.229 4.797 5.077 3.634 3.393 3.719 4.412 4.596 5.647 4.902 5.225 5.393 6.484 7.336 6.572 7.763 7.416 7.786 7.335 7.587 7.882 9.480 9.364 9.537 9.038 8.510 7.486 9.724 9.915 8.575 7.717 9.052 8.779 + 1.501 3.322 4.382 4.910 4.440 4.711 4.143 4.664 4.988 4.158 5.749 4.737 4.096 5.853 5.989 5.005 6.226 7.263 7.693 7.982 9.535 9.575 8.611 8.768 9.951 9.587 10.248 9.788 9.784 8.673 9.695 10.495 9.575 9.003 8.984 8.841 + 2.910 4.072 4.567 3.965 4.175 5.052 5.571 5.965 6.025 5.602 6.801 5.822 6.424 5.614 5.338 5.232 8.426 8.323 8.354 7.967 9.095 8.853 8.585 7.659 8.630 9.134 10.475 11.004 10.245 9.244 10.360 10.606 9.363 9.409 9.736 9.884 + 5.699 6.005 5.797 4.930 4.661 5.882 6.071 5.745 5.953 5.265 5.508 5.464 5.749 6.008 6.260 7.314 7.608 8.107 9.236 9.770 8.236 10.334 10.211 9.006 9.739 9.660 11.007 10.660 10.048 9.678 9.424 10.819 10.104 10.335 10.126 9.994 + 4.785 5.030 5.562 5.872 6.465 6.449 5.449 6.128 5.523 5.378 6.970 7.583 6.864 5.524 5.830 7.257 7.401 8.263 10.642 10.563 9.062 9.442 9.350 9.894 9.701 10.297 11.303 9.880 8.730 9.238 10.277 10.657 10.469 9.441 9.705 9.458 + 6.504 6.842 6.438 4.908 6.953 7.100 6.407 5.903 6.310 6.534 7.296 7.819 7.847 8.026 7.879 6.927 8.653 9.816 10.880 10.553 8.932 9.380 8.495 8.687 8.803 9.092 10.086 9.271 8.492 8.373 10.392 10.559 9.975 8.153 7.349 7.568 + 8.855 8.289 7.390 6.973 6.477 7.826 6.468 7.077 7.360 7.188 6.733 7.682 7.835 7.633 7.496 7.494 7.853 9.760 9.470 8.790 7.516 8.412 7.436 7.335 6.853 7.826 8.432 6.749 5.819 6.092 7.584 8.225 8.159 5.818 6.630 6.786 + 12.393 12.384 11.392 11.335 12.601 12.560 12.547 13.127 11.801 10.075 10.238 8.280 8.426 7.256 8.061 7.912 8.755 10.376 10.745 9.547 7.693 7.928 8.139 8.185 7.893 9.073 9.177 7.864 6.185 7.275 9.222 9.869 9.804 8.565 7.201 7.362 + 13.262 12.950 12.709 12.372 13.401 14.719 15.359 15.691 13.952 12.271 11.619 11.363 9.835 10.619 10.423 11.196 11.774 13.351 12.783 11.057 9.902 9.448 10.055 10.178 8.989 11.098 11.244 9.716 8.890 9.340 11.982 12.324 11.910 10.860 8.522 8.049 + 12.579 12.665 12.754 12.647 13.647 14.919 16.044 16.854 15.559 13.531 12.474 12.077 11.362 11.678 11.985 12.441 13.553 15.208 14.194 12.417 11.315 10.784 10.840 10.068 9.212 11.126 11.218 10.400 10.293 10.553 13.627 13.794 13.392 12.231 8.497 6.824 + 12.578 12.314 11.960 12.428 12.941 13.718 15.239 16.383 14.637 13.961 12.378 9.948 8.639 8.198 9.883 10.913 12.493 14.700 13.433 11.999 11.002 10.533 10.121 8.494 7.847 9.395 9.296 9.482 9.756 9.548 10.919 11.107 9.382 8.472 6.782 5.486 + 12.665 12.060 12.189 12.423 12.611 13.292 15.092 15.106 15.146 12.847 11.900 10.673 9.213 8.842 10.181 10.712 12.445 14.396 12.768 11.585 11.211 11.112 10.816 9.321 9.659 10.293 9.454 8.364 9.456 10.505 11.341 11.636 10.065 8.382 6.633 5.567 + 12.579 11.672 11.880 11.892 12.164 12.848 14.069 15.410 14.913 13.778 12.113 9.900 9.435 10.294 10.916 11.692 13.453 14.187 12.180 11.288 10.898 10.895 10.753 8.831 8.687 9.859 9.458 8.759 9.426 9.870 10.718 11.040 10.217 9.718 7.382 5.855 + 12.675 11.621 11.821 11.729 11.854 12.617 14.294 15.517 15.334 14.053 12.227 10.798 10.185 10.835 11.418 12.117 14.043 14.582 12.363 11.460 10.914 10.920 11.141 9.524 8.457 9.433 9.669 8.987 9.602 10.112 11.253 11.459 10.714 10.409 7.204 6.551 + 12.728 11.926 11.985 11.921 11.937 12.994 14.221 15.930 16.041 14.710 13.388 11.461 11.562 11.382 12.043 12.986 14.712 14.805 12.765 11.900 11.125 11.289 11.713 10.339 9.517 10.002 10.172 9.286 10.135 10.810 12.157 12.179 11.088 10.567 7.551 6.834 + 12.816 12.334 12.233 12.126 12.342 13.241 14.465 16.228 16.238 15.287 14.085 12.038 12.275 12.012 12.771 13.912 15.286 14.952 13.119 12.301 11.670 11.851 12.036 11.763 11.524 10.513 10.117 9.886 10.078 10.499 12.651 12.746 12.820 12.009 8.041 6.994 + 12.880 12.394 12.220 11.997 12.449 13.256 14.202 16.151 16.167 15.226 14.451 12.198 12.331 12.108 13.149 14.532 15.904 14.810 13.168 12.230 11.687 11.584 12.113 12.801 12.271 10.862 10.690 11.160 10.958 10.698 12.539 12.873 12.829 12.113 8.598 8.493 + 12.881 12.328 12.235 11.867 12.573 13.233 14.003 16.136 16.286 15.078 14.619 12.436 12.351 12.432 13.570 14.717 15.590 14.687 12.967 12.180 11.611 11.689 12.777 13.702 12.800 10.482 10.936 11.285 10.359 9.508 12.143 12.656 12.373 11.703 8.765 8.096 + 12.786 11.891 11.940 11.564 12.396 12.968 13.253 16.192 16.204 14.931 14.355 11.889 12.301 12.324 13.350 14.436 15.470 13.935 12.096 11.617 11.173 11.651 12.525 13.139 12.067 10.028 10.591 10.833 9.815 8.136 12.208 12.524 12.081 11.517 8.511 8.455 + 12.715 11.627 11.912 11.443 12.097 12.943 13.278 16.004 16.096 14.716 14.137 11.706 12.201 12.291 13.387 14.529 14.824 13.338 11.746 11.408 11.005 11.404 12.341 12.931 11.891 9.781 10.289 11.368 9.465 8.060 12.170 12.496 12.067 11.723 8.325 9.114 + 12.716 11.922 11.979 11.660 12.051 13.065 13.758 16.062 16.155 14.788 14.164 11.956 12.342 12.407 13.612 15.129 14.665 12.919 11.726 11.306 10.822 11.162 12.267 13.223 12.286 9.782 10.379 11.706 9.886 8.427 11.427 11.802 11.943 11.514 8.336 9.212 + 12.752 12.251 12.123 11.792 12.268 13.176 14.021 16.030 15.930 14.733 14.166 11.974 12.439 12.511 14.103 15.245 14.243 12.763 11.989 11.386 10.895 11.341 12.379 13.011 11.979 9.647 10.139 11.742 10.279 8.551 11.208 11.742 11.461 11.044 7.550 7.112 + 12.987 12.486 12.262 11.862 12.311 13.221 14.191 15.909 15.751 14.553 14.062 11.876 12.534 12.720 14.205 14.417 13.815 12.327 11.579 10.821 11.010 11.431 12.192 13.101 12.614 9.660 10.761 11.826 10.079 8.560 11.048 11.927 11.608 11.173 7.738 7.201 + 12.987 12.426 12.180 11.520 12.101 12.916 14.284 15.592 15.542 14.338 13.913 12.145 12.999 13.398 14.208 13.750 12.217 11.445 10.869 10.624 10.733 11.207 12.163 13.124 12.553 10.227 10.168 11.100 10.211 6.956 9.866 11.161 11.084 10.629 8.206 6.479 + 13.022 11.961 11.727 11.171 11.918 12.640 14.292 15.146 15.128 14.255 13.591 12.331 12.933 13.577 14.203 12.493 11.160 10.619 9.893 9.947 10.091 10.503 11.193 12.478 12.806 11.186 9.138 10.684 10.126 7.058 9.156 10.770 10.688 10.264 9.221 7.703 + 12.764 11.713 10.800 11.469 10.953 12.756 14.246 14.701 14.272 14.038 13.062 13.795 13.156 13.985 12.397 11.127 10.189 9.776 9.703 10.184 10.218 10.508 10.834 11.834 12.775 11.360 8.416 10.315 9.830 6.776 8.166 10.637 10.253 9.804 9.710 9.215 + 12.172 11.718 11.673 10.153 10.613 12.032 12.606 13.515 13.952 13.461 13.598 13.657 13.634 12.774 9.086 6.351 7.937 9.268 9.106 9.725 9.750 9.895 9.983 10.065 11.187 10.796 7.663 10.168 9.765 5.729 5.994 8.458 8.444 8.391 9.895 10.463 + 11.399 11.409 11.432 10.260 9.665 10.490 10.747 11.281 11.477 11.689 11.824 11.311 10.793 8.787 7.242 6.108 5.897 7.696 8.073 7.482 7.244 7.495 7.442 8.498 9.195 9.904 9.066 7.711 7.892 5.803 6.910 8.303 8.680 8.953 10.482 10.767 + 8.893 7.925 8.018 7.904 7.297 7.478 7.235 8.487 9.205 9.000 6.802 7.120 8.178 6.916 6.181 7.342 6.641 7.267 8.009 7.748 7.945 7.807 8.410 8.788 9.422 9.898 9.278 6.480 7.130 7.021 6.959 8.539 9.526 8.702 9.401 9.003 + 8.270 7.787 7.843 6.783 5.166 6.252 6.322 7.229 7.276 7.859 8.013 7.965 7.678 7.041 5.699 7.146 6.998 6.917 7.606 7.658 6.559 6.207 7.401 7.750 7.689 8.437 8.358 7.081 8.013 7.036 6.257 8.412 9.259 8.545 7.607 8.222 + 9.884 8.522 8.253 6.220 4.435 5.966 6.860 7.834 7.046 7.473 8.229 7.411 7.510 6.718 5.878 7.129 6.715 7.846 7.586 7.229 5.673 6.172 7.446 7.215 7.021 7.015 8.639 7.497 7.719 7.453 8.006 8.696 9.011 8.960 7.458 6.773 + 9.950 9.133 8.215 5.624 6.811 7.998 8.466 7.352 6.491 5.246 6.469 6.134 6.005 6.530 5.997 5.709 6.581 7.397 7.546 7.432 5.651 6.754 7.835 7.932 6.869 8.099 7.155 7.152 7.587 8.087 7.984 8.388 9.992 9.404 8.114 7.374 + 10.441 8.278 7.446 7.513 6.531 7.551 8.020 7.544 7.663 5.975 6.593 5.427 5.995 6.789 6.637 5.467 6.054 6.059 7.107 7.310 6.856 7.793 8.768 8.101 8.260 8.414 8.708 8.118 7.911 8.234 8.238 9.570 10.437 10.639 9.533 8.933 + 10.388 7.588 8.483 8.033 6.764 7.322 5.160 6.314 7.544 5.930 6.503 6.796 6.546 6.583 6.376 6.615 6.710 6.434 6.949 6.573 6.917 8.782 9.308 8.488 8.460 8.111 8.209 7.509 8.111 7.741 8.031 10.009 10.747 10.545 10.338 10.230 + 9.278 8.286 7.885 7.370 7.140 5.943 7.298 7.571 6.748 7.239 6.657 6.727 6.795 6.232 5.674 6.749 7.316 6.725 7.156 7.292 6.101 7.665 9.636 8.993 8.073 8.151 7.556 7.501 7.619 7.256 8.100 9.924 10.636 9.484 9.176 9.357 + 9.994 8.468 5.949 6.600 7.227 6.827 6.444 7.218 6.815 5.536 5.365 6.314 6.270 5.835 6.295 5.494 6.061 6.508 7.147 6.610 6.522 7.691 7.298 9.221 8.990 8.887 8.393 8.080 7.396 7.918 8.593 9.576 9.933 9.331 9.243 7.997 + 9.687 9.077 8.338 8.438 7.344 7.695 7.579 7.606 8.020 7.190 7.777 7.941 5.780 6.030 6.066 6.754 6.409 7.184 7.052 6.378 6.256 7.888 8.422 8.521 8.552 8.166 7.610 7.220 8.175 8.296 8.505 9.545 10.209 9.417 9.141 8.549 + 8.779 9.738 9.006 7.477 6.794 6.759 8.662 9.703 9.650 9.126 9.322 9.019 8.546 7.298 5.926 8.739 8.679 6.702 7.113 6.990 5.787 7.155 8.278 7.882 8.285 7.956 8.327 6.791 7.660 7.699 8.250 8.454 9.368 8.737 8.943 8.495 + 8.731 8.946 7.839 7.548 7.055 6.759 9.655 10.577 9.448 9.302 10.011 8.786 8.449 8.461 8.370 9.097 8.534 7.528 6.853 6.911 6.029 7.212 8.088 8.456 7.997 6.550 7.299 7.007 7.087 6.595 7.394 7.874 8.450 8.283 8.707 8.548 + 7.971 7.048 7.205 6.688 7.300 7.467 9.787 10.843 11.355 10.589 10.463 10.612 9.523 9.789 9.842 10.783 10.107 8.280 7.816 7.561 5.808 6.087 7.341 8.297 7.854 6.752 7.167 6.340 7.133 6.900 6.867 7.280 7.426 7.117 6.694 6.215 + 9.118 8.374 6.003 7.737 7.757 8.519 10.371 11.663 12.434 11.042 10.112 10.512 8.544 8.867 9.075 11.373 11.024 9.300 8.202 7.696 6.158 7.581 7.193 7.869 7.199 7.295 7.360 6.595 6.756 6.324 5.843 7.547 7.717 6.433 6.009 5.994 + 7.020 7.264 6.857 7.411 7.568 8.540 10.672 11.076 12.137 10.862 10.942 10.497 9.335 8.450 8.927 10.819 10.926 9.969 7.767 6.942 6.788 6.995 6.139 6.660 7.698 8.009 6.806 6.238 5.952 6.372 5.782 7.140 6.767 6.543 6.780 5.687 + 8.228 8.217 6.863 7.064 6.680 7.431 10.924 11.023 11.274 10.755 10.837 9.943 9.448 8.726 9.192 8.682 9.275 9.739 8.167 7.051 6.283 5.563 5.595 6.653 8.176 7.726 7.198 6.339 5.566 5.978 5.978 7.069 7.292 6.186 5.598 5.246 + 6.948 8.101 7.251 7.034 6.358 6.955 11.146 11.280 10.489 9.948 10.143 9.653 9.149 8.360 9.017 8.930 9.136 9.232 7.147 7.368 6.562 5.365 6.652 6.398 8.619 8.626 6.567 5.894 5.425 5.899 6.228 6.315 6.240 5.595 5.784 4.905 + 7.813 8.191 6.969 7.296 7.025 8.305 11.174 11.220 10.841 9.611 9.156 8.897 8.732 8.405 8.620 8.771 10.280 9.359 7.290 6.136 5.791 7.084 6.583 5.769 8.495 8.566 6.943 6.487 4.649 6.628 6.797 6.616 6.611 5.349 5.474 4.873 + 6.201 7.444 6.965 7.570 7.939 8.488 10.548 11.340 11.901 10.345 9.343 7.672 7.097 8.027 7.931 9.600 9.757 8.843 8.083 6.379 5.610 7.034 6.735 6.436 8.132 7.739 6.448 5.290 4.777 6.829 6.958 7.243 5.886 4.668 4.930 4.900 + 6.556 6.975 6.338 6.284 7.440 8.178 8.880 10.433 11.614 9.890 9.140 7.969 6.578 7.250 8.266 9.266 8.349 8.167 7.484 6.079 5.365 5.739 5.603 6.218 7.887 8.161 6.448 6.079 4.796 5.980 6.467 7.116 5.520 4.517 5.678 4.971 + 5.164 4.651 6.017 6.017 6.611 7.001 8.991 8.676 10.185 9.430 8.097 7.674 5.744 6.255 7.309 9.468 9.329 8.277 7.061 5.844 4.553 4.819 6.502 6.065 6.989 6.381 6.643 5.964 5.336 5.901 6.169 6.052 5.406 5.066 5.362 5.326 + 6.022 6.380 5.255 4.951 5.461 6.666 6.814 7.091 9.212 8.978 8.490 8.117 7.446 6.405 6.510 9.330 8.025 7.452 5.600 5.208 4.328 5.147 5.752 6.279 6.454 6.104 5.853 5.557 4.776 4.892 5.390 5.444 5.655 5.681 5.472 4.639 + 6.250 6.894 5.131 3.580 6.621 7.761 8.083 7.827 9.894 8.677 7.531 7.877 7.464 7.102 6.025 9.569 9.429 8.036 5.549 4.737 4.272 5.334 5.567 6.222 6.661 6.264 5.396 4.839 5.169 5.296 4.815 5.591 5.759 5.346 5.391 4.670 + 7.262 7.384 5.999 5.127 5.847 8.087 9.031 7.940 8.879 9.253 8.900 7.898 6.953 7.577 8.061 9.233 7.927 7.426 6.316 4.310 4.745 6.328 5.861 5.802 5.602 5.263 5.975 5.217 5.026 5.858 4.627 5.872 5.778 5.168 5.921 4.776 + 7.683 5.821 3.135 4.755 5.459 7.744 7.984 7.501 7.675 8.299 8.085 7.630 6.042 6.370 8.389 9.161 7.574 6.144 5.820 6.346 5.952 5.621 5.502 5.421 5.990 5.739 5.719 5.398 4.098 5.025 4.956 5.822 6.060 6.288 6.079 4.448 + 5.816 6.620 6.242 6.151 6.419 7.497 6.928 7.286 7.838 8.004 6.187 7.584 7.179 6.305 8.211 8.825 7.534 6.314 5.603 6.045 5.641 5.417 5.431 5.067 5.790 6.343 5.124 5.817 4.384 4.504 4.926 5.893 6.344 5.614 5.528 4.684 + 6.683 6.479 6.450 7.074 6.553 7.589 8.300 8.852 8.024 7.778 6.330 7.167 7.339 6.352 6.832 8.454 7.929 6.216 4.998 5.307 5.687 5.925 6.466 6.110 5.821 5.630 5.635 5.693 4.946 5.200 5.142 6.268 6.062 5.657 4.842 4.633 + 7.316 7.234 5.195 7.104 8.469 9.563 8.394 8.113 8.061 7.252 6.945 6.481 6.665 6.066 6.290 8.402 7.898 6.950 5.668 4.754 5.662 6.495 6.185 7.039 7.536 6.493 5.882 6.582 6.484 5.840 6.969 8.381 8.331 7.312 6.043 5.084 + 6.762 6.771 5.381 5.850 9.664 10.545 8.221 7.592 5.881 5.022 6.201 5.261 5.184 4.422 5.837 8.120 7.312 6.118 6.312 6.124 5.634 6.559 8.408 10.281 10.344 9.115 8.913 9.408 8.894 7.228 8.980 10.906 10.506 9.145 7.315 5.185 + 6.032 6.768 4.577 3.849 10.578 12.460 11.163 8.253 8.637 6.835 5.935 6.225 5.766 5.298 5.973 7.543 6.708 5.960 6.583 5.313 5.769 6.106 8.983 10.455 11.086 10.000 9.559 9.921 9.891 7.300 9.407 10.798 10.580 9.702 7.499 5.004 + 6.943 7.671 6.326 4.869 11.236 13.462 12.316 7.580 7.521 6.586 6.541 6.519 7.376 6.885 5.987 7.093 6.855 5.591 6.496 5.433 5.199 7.750 9.180 10.240 11.298 10.484 9.905 10.291 10.105 7.944 10.072 11.301 11.413 10.474 7.786 5.728 + 6.695 8.535 7.432 6.137 11.413 13.732 12.354 9.140 8.471 8.212 7.637 6.325 6.242 7.310 7.044 7.552 6.745 5.851 6.845 6.301 6.335 8.690 9.713 10.986 11.943 11.066 10.659 10.725 10.398 8.643 9.986 11.522 11.264 9.707 7.820 5.517 + 8.195 9.257 7.688 6.009 11.991 14.106 12.701 9.340 9.319 7.212 7.026 6.537 7.129 6.826 6.184 8.319 7.863 6.447 7.486 6.438 6.670 9.661 10.858 11.771 12.820 11.463 11.478 11.478 10.911 10.016 11.140 11.878 11.912 10.962 8.099 5.191 + 6.553 8.950 7.771 4.539 12.068 14.002 12.176 10.200 9.940 7.448 7.464 6.309 6.599 6.514 6.691 7.098 7.544 7.274 7.459 6.941 6.833 9.525 10.948 11.692 12.631 10.768 10.788 11.082 10.910 10.044 11.273 12.353 12.427 11.528 8.871 5.997 + 6.888 8.789 8.365 6.845 12.649 14.189 12.144 10.574 10.256 8.319 7.852 7.059 6.585 6.621 6.502 7.295 7.279 7.018 7.277 6.259 6.872 9.183 10.761 11.291 12.209 10.279 10.547 10.777 10.237 9.606 10.634 12.528 12.470 11.320 9.364 6.018 Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/regression/chan3.mfc and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/regression/chan3.mfc differ diff -Nru sphinxbase-0.8/test/regression/chan3-smoothspec.cepview sphinxbase-0.8+5prealpha/test/regression/chan3-smoothspec.cepview --- sphinxbase-0.8/test/regression/chan3-smoothspec.cepview 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/chan3-smoothspec.cepview 2015-03-26 16:52:50.000000000 +0000 @@ -1,2190 +1,2178 @@ - 5.442 5.122 4.669 4.293 4.054 3.863 3.640 3.458 3.513 3.934 4.608 5.221 5.480 5.344 5.050 4.911 5.076 5.464 5.892 6.269 6.658 7.158 7.753 8.294 8.631 8.774 8.891 9.160 9.589 9.998 10.167 10.023 9.687 9.361 9.167 9.097 - 3.675 4.033 4.542 4.922 4.991 4.750 4.350 3.986 3.809 3.892 4.223 4.701 5.150 5.391 5.348 5.130 4.994 5.176 5.717 6.415 6.979 7.252 7.333 7.487 7.921 8.616 9.354 9.904 10.191 10.300 10.344 10.323 10.141 9.744 9.247 8.896 - 3.935 4.420 5.042 5.403 5.373 5.151 5.038 5.149 5.348 5.426 5.331 5.201 5.196 5.307 5.374 5.287 5.152 5.233 5.704 6.445 7.115 7.440 7.456 7.474 7.793 8.429 9.127 9.615 9.847 9.997 10.210 10.394 10.280 9.712 8.885 8.273 - 4.063 4.221 4.519 4.886 5.182 5.271 5.120 4.855 4.684 4.747 5.018 5.347 5.594 5.747 5.891 6.086 6.274 6.328 6.200 6.031 6.088 6.568 7.429 8.397 9.162 9.582 9.749 9.860 10.027 10.188 10.187 9.921 9.436 8.888 8.444 8.204 - 4.270 4.237 4.276 4.470 4.762 4.987 5.024 4.920 4.836 4.879 4.988 5.008 4.884 4.772 4.922 5.421 6.061 6.475 6.463 6.211 6.176 6.716 7.767 8.864 9.495 9.489 9.118 8.842 8.937 9.310 9.632 9.627 9.269 8.742 8.279 8.023 - 2.996 3.751 4.778 5.463 5.491 5.032 4.556 4.447 4.718 5.047 5.090 4.786 4.415 4.361 4.792 5.513 6.130 6.374 6.329 6.361 6.827 7.770 8.865 9.638 9.799 9.433 8.918 8.659 8.820 9.264 9.688 9.839 9.655 9.255 8.841 8.588 - 3.556 3.927 4.456 4.845 4.894 4.622 4.252 4.070 4.237 4.691 5.186 5.466 5.429 5.186 4.970 4.972 5.223 5.615 6.027 6.441 6.950 7.639 8.451 9.155 9.470 9.270 8.719 8.203 8.103 8.540 9.279 9.864 9.911 9.362 8.539 7.943 - 3.544 4.215 5.071 5.513 5.278 4.594 3.941 3.660 3.727 3.865 3.859 3.757 3.813 4.224 4.931 5.653 6.110 6.242 6.233 6.348 6.726 7.302 7.882 8.286 8.450 8.426 8.322 8.251 8.293 8.469 8.720 8.923 8.955 8.780 8.497 8.285 - 3.823 4.208 4.737 5.114 5.209 5.114 5.008 4.969 4.902 4.661 4.247 3.876 3.858 4.350 5.211 6.072 6.583 6.655 6.495 6.435 6.686 7.203 7.747 8.087 8.158 8.091 8.093 8.288 8.639 8.981 9.135 9.006 8.628 8.134 7.688 7.427 - 4.078 3.944 3.829 3.899 4.181 4.528 4.728 4.668 4.401 4.099 3.935 4.011 4.354 4.947 5.720 6.529 7.168 7.465 7.407 7.181 7.068 7.244 7.650 8.038 8.175 8.031 7.796 7.730 7.956 8.372 8.746 8.881 8.742 8.439 8.134 7.951 - 2.140 2.924 4.055 4.938 5.191 4.842 4.250 3.825 3.784 4.077 4.509 4.919 5.262 5.569 5.850 6.052 6.111 6.037 5.952 6.016 6.317 6.798 7.288 7.619 7.733 7.707 7.688 7.786 8.011 8.280 8.484 8.553 8.493 8.359 8.224 8.143 - 5.319 4.917 4.379 4.054 4.146 4.586 5.101 5.394 5.324 4.956 4.498 4.176 4.129 4.370 4.799 5.260 5.619 5.819 5.915 6.023 6.236 6.546 6.844 7.008 7.011 6.957 7.006 7.250 7.631 7.982 8.152 8.113 7.961 7.825 7.766 7.761 - 8.902 8.445 7.686 6.862 6.170 5.681 5.329 5.000 4.650 4.360 4.277 4.469 4.837 5.149 5.207 5.004 4.741 4.673 4.913 5.364 5.823 6.169 6.451 6.811 7.300 7.787 8.049 7.969 7.658 7.382 7.351 7.557 7.800 7.886 7.792 7.668 - 7.922 7.524 6.768 5.815 4.987 4.612 4.781 5.232 5.512 5.327 4.782 4.286 4.201 4.536 4.956 5.101 4.911 4.660 4.687 5.079 5.606 5.945 5.980 5.882 5.914 6.171 6.498 6.660 6.581 6.404 6.334 6.434 6.573 6.580 6.435 6.283 - 6.541 6.242 5.688 5.029 4.536 4.456 4.815 5.331 5.588 5.356 4.781 4.281 4.206 4.571 5.063 5.333 5.273 5.059 4.940 5.008 5.161 5.276 5.369 5.578 5.972 6.413 6.647 6.545 6.266 6.146 6.388 6.852 7.153 7.012 6.523 6.094 - 5.167 4.957 4.762 4.784 4.968 5.029 4.731 4.153 3.666 3.626 4.056 4.618 4.907 4.800 4.530 4.444 4.671 5.020 5.193 5.090 4.923 5.015 5.479 6.098 6.490 6.435 6.049 5.678 5.611 5.879 6.273 6.545 6.583 6.443 6.262 6.146 - 6.214 6.046 5.701 5.231 4.786 4.545 4.565 4.699 4.688 4.385 3.914 3.618 3.794 4.438 5.209 5.654 5.538 5.009 4.486 4.352 4.702 5.304 5.789 5.887 5.574 5.038 4.547 4.316 4.424 4.804 5.275 5.617 5.671 5.428 5.047 4.768 - 4.294 4.591 5.002 5.302 5.383 5.291 5.126 4.914 4.574 4.039 3.394 2.896 2.826 3.268 4.017 4.688 4.975 4.848 4.553 4.410 4.564 4.893 5.118 5.025 4.634 4.178 3.933 4.037 4.409 4.821 5.051 5.004 4.732 4.373 4.063 3.890 - 4.621 4.159 3.626 3.476 3.862 4.511 4.940 4.828 4.239 3.548 3.159 3.258 3.747 4.370 4.876 5.118 5.064 4.777 4.402 4.118 4.053 4.188 4.349 4.322 4.029 3.611 3.332 3.373 3.674 3.985 4.056 3.831 3.462 3.158 3.016 2.987 - 3.222 3.249 3.488 4.061 4.799 5.271 5.102 4.304 3.328 2.761 2.916 3.631 4.431 4.891 4.898 4.644 4.399 4.296 4.292 4.283 4.219 4.123 4.031 3.939 3.838 3.753 3.748 3.844 3.964 3.961 3.743 3.366 3.007 2.823 2.826 2.891 - 3.731 4.211 4.857 5.289 5.333 5.109 4.872 4.776 4.769 4.702 4.515 4.318 4.285 4.469 4.723 4.812 4.600 4.171 3.757 3.564 3.632 3.848 4.060 4.187 4.233 4.236 4.206 4.138 4.036 3.932 3.840 3.728 3.533 3.233 2.900 2.676 - 4.708 5.397 6.136 6.223 5.506 4.508 3.941 4.094 4.633 4.968 4.799 4.346 4.071 4.205 4.546 4.694 4.463 4.049 3.813 3.916 4.176 4.275 4.092 3.811 3.711 3.866 4.063 4.025 3.707 3.351 3.262 3.511 3.886 4.102 4.076 3.967 - 4.843 5.253 5.859 6.334 6.408 6.006 5.281 4.509 3.917 3.565 3.378 3.277 3.296 3.539 4.030 4.588 4.890 4.709 4.122 3.504 3.254 3.483 3.929 4.179 4.023 3.624 3.355 3.450 3.786 3.994 3.797 3.267 2.757 2.582 2.749 2.973 - 5.579 5.423 5.397 5.740 6.321 6.652 6.272 5.162 3.820 2.913 2.803 3.340 4.052 4.528 4.663 4.589 4.448 4.258 3.983 3.673 3.495 3.587 3.887 4.152 4.149 3.866 3.514 3.331 3.364 3.463 3.461 3.370 3.378 3.637 4.078 4.423 - 7.745 7.672 7.551 7.430 7.357 7.341 7.320 7.197 6.918 6.547 6.234 6.100 6.129 6.161 6.032 5.713 5.345 5.113 5.088 5.193 5.326 5.522 5.967 6.820 7.987 9.091 9.692 9.612 9.089 8.586 8.439 8.609 8.769 8.638 8.246 7.902 - 11.109 11.194 11.279 11.271 11.142 10.913 10.595 10.155 9.582 8.960 8.449 8.157 8.016 7.827 7.466 7.064 6.955 7.380 8.207 8.958 9.178 8.852 8.482 8.693 9.684 11.003 11.880 11.838 11.078 10.279 10.010 10.275 10.582 10.460 9.917 9.417 - 12.168 12.691 13.374 13.774 13.675 13.177 12.522 11.858 11.168 10.394 9.581 8.879 8.411 8.164 8.066 8.134 8.535 9.411 10.637 11.755 12.244 11.917 11.104 10.427 10.318 10.709 11.151 11.248 10.999 10.734 10.725 10.873 10.788 10.193 9.263 8.556 - 12.247 12.862 13.797 14.625 15.008 14.818 14.133 13.145 12.083 11.155 10.492 10.097 9.847 9.597 9.350 9.322 9.812 10.926 12.376 13.582 14.042 13.699 12.994 12.526 12.594 13.003 13.307 13.242 12.963 12.859 13.115 13.464 13.383 12.589 11.377 10.469 - 12.817 13.420 14.363 15.260 15.777 15.751 15.205 14.304 13.303 12.467 11.962 11.755 11.622 11.329 10.876 10.588 10.914 12.040 13.634 14.984 15.483 15.083 14.322 13.874 14.004 14.398 14.523 14.185 13.750 13.783 14.446 15.211 15.231 14.091 12.277 10.911 - 13.250 13.784 14.695 15.701 16.463 16.692 16.266 15.306 14.151 13.195 12.664 12.487 12.371 12.068 11.631 11.440 11.917 13.144 14.691 15.850 16.128 15.595 14.809 14.342 14.334 14.442 14.248 13.734 13.357 13.620 14.501 15.297 15.100 13.574 11.367 9.756 - 13.564 13.922 14.665 15.718 16.789 17.432 17.282 16.327 14.958 13.749 13.082 12.914 12.877 12.640 12.235 12.070 12.581 13.818 15.311 16.374 16.596 16.133 15.527 15.229 15.220 15.091 14.517 13.671 13.173 13.553 14.670 15.645 15.450 13.754 11.308 9.532 - 13.745 13.920 14.455 15.462 16.719 17.676 17.789 16.923 15.482 14.141 13.375 13.162 13.100 12.831 12.404 12.260 12.837 14.146 15.678 16.751 17.002 16.619 16.110 15.826 15.666 15.236 14.334 13.289 12.806 13.374 14.726 15.863 15.709 13.962 11.437 9.608 - 13.949 13.938 14.254 15.171 16.499 17.588 17.787 16.956 15.572 14.350 13.693 13.466 13.255 12.842 12.442 12.507 13.290 14.583 15.855 16.647 16.857 16.681 16.325 15.785 14.927 13.760 12.615 12.015 12.292 13.275 14.297 14.565 13.650 11.761 9.671 8.313 - 14.093 13.980 14.168 15.023 16.395 17.608 17.956 17.258 15.970 14.778 14.066 13.720 13.425 13.086 12.968 13.413 14.442 15.660 16.549 16.870 16.778 16.566 16.309 15.799 14.822 13.514 12.389 11.990 12.438 13.290 13.840 13.595 12.564 11.168 9.932 9.231 - 14.099 14.090 14.391 15.274 16.586 17.751 18.156 17.604 16.424 15.181 14.269 13.751 13.523 13.562 13.971 14.779 15.757 16.486 16.674 16.401 16.042 15.891 15.856 15.530 14.608 13.278 12.187 11.981 12.776 14.009 14.801 14.525 13.159 11.228 9.451 8.414 - 13.875 14.124 14.702 15.624 16.695 17.539 17.789 17.311 16.284 15.089 14.126 13.673 13.825 14.482 15.360 16.045 16.172 15.661 14.836 14.266 14.358 15.003 15.579 15.383 14.196 12.530 11.322 11.279 12.368 13.835 14.718 14.452 13.141 11.373 9.818 8.940 - 13.601 14.007 14.793 15.838 16.864 17.492 17.426 16.639 15.443 14.362 13.874 14.161 15.007 15.899 16.284 15.845 14.690 13.321 12.399 12.382 13.242 14.428 15.156 14.863 13.569 11.895 10.695 10.549 11.420 12.694 13.556 13.447 12.322 10.611 8.965 7.975 - 13.479 13.811 14.549 15.644 16.759 17.365 17.081 15.997 14.681 13.840 13.862 14.588 15.447 15.834 15.442 14.373 13.021 11.872 11.333 11.590 12.510 13.623 14.283 13.996 12.748 11.089 9.849 9.635 10.447 11.697 12.587 12.594 11.714 10.366 9.105 8.366 - 13.180 13.713 14.664 15.783 16.709 17.070 16.678 15.671 14.512 13.777 13.834 14.601 15.563 16.050 15.632 14.377 12.813 11.626 11.285 11.808 12.798 13.677 13.962 13.454 12.290 10.876 9.746 9.366 9.916 11.139 12.370 12.823 12.010 10.086 7.850 6.361 - 13.038 13.796 14.977 16.106 16.811 16.934 16.500 15.653 14.636 13.799 13.518 13.968 14.919 15.760 15.831 14.879 13.288 11.868 11.335 11.854 12.972 13.950 14.224 13.655 12.491 11.158 10.097 9.671 10.083 11.218 12.541 13.233 12.634 10.739 8.356 6.711 - 13.315 14.083 15.219 16.200 16.696 16.676 16.265 15.573 14.674 13.748 13.149 13.247 14.098 15.263 15.991 15.716 14.492 13.000 12.098 12.242 13.198 14.244 14.656 14.127 12.869 11.416 10.339 10.026 10.571 11.726 12.930 13.498 12.954 11.366 9.421 8.096 - 13.290 14.089 15.272 16.281 16.751 16.654 16.179 15.518 14.746 13.909 13.175 12.847 13.178 14.113 15.212 15.877 15.745 14.957 14.084 13.732 14.102 14.838 15.256 14.814 13.488 11.806 10.541 10.255 10.987 12.250 13.303 13.535 12.755 11.260 9.676 8.673 - 13.586 14.162 15.097 16.036 16.616 16.628 16.096 15.246 14.357 13.613 13.065 12.710 12.606 12.870 13.556 14.512 15.399 15.889 15.908 15.688 15.567 15.668 15.742 15.343 14.223 12.623 11.214 10.689 11.296 12.651 13.954 14.460 13.877 12.485 10.942 9.952 - 13.625 14.048 14.825 15.763 16.519 16.739 16.270 15.286 14.196 13.378 12.946 12.753 12.602 12.468 12.534 13.008 13.911 15.024 16.038 16.761 17.170 17.293 17.057 16.303 14.976 13.336 11.945 11.389 11.895 13.137 14.379 14.876 14.288 12.844 11.212 10.151 - 13.588 13.953 14.667 15.600 16.443 16.809 16.469 15.526 14.382 13.475 12.999 12.830 12.698 12.462 12.246 12.332 12.932 14.015 15.338 16.597 17.566 18.103 18.092 17.433 16.149 14.514 13.060 12.356 12.684 13.815 15.070 15.668 15.159 13.692 11.948 10.784 - 13.505 13.772 14.378 15.291 16.239 16.774 16.553 15.609 14.360 13.339 12.828 12.708 12.630 12.357 11.981 11.857 12.304 13.357 14.737 16.050 17.017 17.543 17.626 17.243 16.359 15.073 13.734 12.862 12.858 13.693 14.823 15.452 15.002 13.507 11.644 10.372 - 13.471 13.666 14.170 15.022 16.004 16.677 16.635 15.817 14.577 13.462 12.841 12.675 12.625 12.385 11.969 11.722 12.030 13.002 14.355 15.609 16.411 16.714 16.695 16.514 16.153 15.498 14.572 13.672 13.247 13.546 14.349 15.017 14.906 13.850 12.346 11.262 - 13.633 13.669 13.983 14.767 15.874 16.798 16.998 16.307 15.077 13.934 13.316 13.191 13.157 12.852 12.307 11.948 12.248 13.320 14.786 16.038 16.651 16.629 16.299 15.970 15.684 15.261 14.570 13.769 13.247 13.306 13.841 14.329 14.183 13.218 11.853 10.868 - 13.493 13.520 13.784 14.482 15.541 16.560 17.016 16.628 15.573 14.383 13.579 13.304 13.272 13.070 12.580 12.138 12.292 13.305 14.863 16.222 16.736 16.315 15.450 14.774 14.554 14.548 14.341 13.817 13.321 13.317 13.863 14.414 14.198 12.892 11.014 9.642 - 13.404 13.383 13.568 14.191 15.230 16.320 16.940 16.757 15.871 14.761 13.937 13.581 13.462 13.212 12.730 12.352 12.595 13.672 15.200 16.394 16.635 15.943 14.938 14.315 14.275 14.419 14.209 13.551 12.941 13.002 13.806 14.636 14.484 12.924 10.605 8.896 - 13.388 13.314 13.448 14.076 15.168 16.307 16.940 16.768 15.950 14.966 14.253 13.903 13.694 13.379 12.999 12.894 13.413 14.542 15.805 16.547 16.401 15.558 14.606 14.082 14.081 14.260 14.204 13.826 13.430 13.385 13.702 13.916 13.427 12.046 10.267 9.016 - 13.232 13.147 13.301 14.008 15.210 16.422 17.050 16.824 15.975 15.019 14.358 14.022 13.780 13.473 13.241 13.420 14.204 15.365 16.331 16.570 15.984 14.979 14.153 13.848 13.937 14.003 13.738 13.224 12.844 12.910 13.315 13.542 13.042 11.699 10.021 8.859 - 13.010 12.931 13.129 13.929 15.226 16.455 16.991 16.619 15.668 14.709 14.095 13.778 13.515 13.239 13.192 13.690 14.728 15.838 16.372 15.990 14.941 13.879 13.353 13.412 13.620 13.478 12.864 12.141 11.851 12.246 13.054 13.640 13.450 12.420 11.043 10.078 - 12.475 12.474 12.792 13.690 14.988 16.095 16.440 15.915 14.929 14.034 13.488 13.173 12.894 12.721 12.975 13.841 15.014 15.764 15.479 14.210 12.726 11.974 12.357 13.428 14.251 14.124 13.086 11.828 11.141 11.352 12.174 12.991 13.315 13.058 12.507 12.086 - 12.238 12.448 12.937 13.730 14.678 15.472 15.788 15.477 14.659 13.653 12.816 12.402 12.502 13.056 13.876 14.654 15.032 14.732 13.742 12.401 11.290 10.933 11.487 12.633 13.755 14.313 14.155 13.567 13.034 12.899 13.149 13.465 13.488 13.091 12.472 12.015 - 13.086 13.366 13.848 14.454 15.150 15.859 16.351 16.291 15.493 14.190 13.016 12.625 13.206 14.318 15.204 15.343 14.757 13.846 12.956 12.115 11.211 10.359 10.016 10.634 12.146 13.833 14.797 14.683 13.986 13.594 13.939 14.537 14.385 12.919 10.670 8.981 - 13.475 13.561 13.820 14.382 15.296 16.378 17.179 17.199 16.273 14.826 13.689 13.546 14.394 15.513 16.001 15.454 14.213 12.978 12.174 11.673 11.112 10.458 10.177 10.802 12.283 13.833 14.527 14.139 13.426 13.453 14.530 15.738 15.600 13.409 10.060 7.563 - 13.385 13.341 13.480 14.083 15.226 16.586 17.530 17.485 16.410 14.941 14.025 14.222 15.227 16.069 15.863 14.534 12.851 11.743 11.497 11.585 11.277 10.451 9.797 10.159 11.636 13.346 14.160 13.775 13.071 13.315 14.867 16.601 16.719 14.343 10.516 7.623 - 13.099 13.111 13.368 14.125 15.366 16.681 17.437 17.211 16.161 15.015 14.582 15.106 16.001 16.249 15.217 13.217 11.310 10.453 10.720 11.282 11.190 10.271 9.294 9.255 10.408 11.985 12.894 12.767 12.346 12.757 14.310 15.963 16.059 13.809 10.209 7.494 - 12.990 13.028 13.359 14.207 15.459 16.616 17.098 16.693 15.766 15.024 14.979 15.512 15.925 15.474 13.982 12.027 10.520 10.003 10.258 10.541 10.270 9.541 9.026 9.330 10.401 11.549 12.089 12.020 12.074 13.011 14.760 16.219 16.019 13.700 10.306 7.828 - 12.752 12.973 13.500 14.370 15.432 16.336 16.713 16.445 15.796 15.256 15.169 15.413 15.433 14.668 13.050 11.150 9.793 9.415 9.717 9.940 9.567 8.836 8.558 9.368 11.053 12.620 13.109 12.462 11.636 11.778 13.121 14.619 14.721 12.719 9.515 7.104 - 12.376 12.814 13.590 14.517 15.355 15.880 15.988 15.754 15.407 15.172 15.077 14.875 14.197 12.872 11.158 9.661 8.917 8.962 9.259 9.130 8.369 7.505 7.431 8.621 10.619 12.286 12.685 11.884 10.946 11.035 12.358 13.858 14.016 12.144 9.113 6.826 - 11.944 12.636 13.688 14.647 15.197 15.302 15.149 14.981 14.934 14.958 14.845 14.327 13.234 11.649 9.959 8.698 8.215 8.392 8.668 8.447 7.626 6.780 6.768 8.008 10.014 11.665 12.066 11.314 10.475 10.686 12.115 13.672 13.821 11.890 8.781 6.442 - 11.571 12.551 13.927 14.962 15.271 15.011 14.646 14.542 14.708 14.861 14.662 13.917 12.645 11.047 9.462 8.285 7.791 7.924 8.246 8.207 7.601 6.835 6.689 7.665 9.464 11.097 11.650 11.089 10.347 10.544 11.931 13.524 13.827 12.120 9.222 7.007 - 11.313 12.491 14.070 15.124 15.273 14.864 14.543 14.642 14.946 14.968 14.399 13.309 11.981 10.638 9.379 8.315 7.647 7.514 7.749 7.899 7.597 6.992 6.748 7.487 9.136 10.828 11.571 11.152 10.405 10.510 11.858 13.532 13.978 12.364 9.466 7.213 - 11.035 12.282 13.926 14.977 15.088 14.715 14.572 14.921 15.358 15.237 14.279 12.790 11.335 10.248 9.471 8.794 8.167 7.733 7.570 7.507 7.291 6.951 6.918 7.672 9.196 10.806 11.647 11.468 10.917 10.998 12.092 13.464 13.791 12.351 9.803 7.827 - 11.293 12.281 13.661 14.705 15.090 15.044 15.027 15.267 15.552 15.446 14.667 13.314 11.764 10.407 9.453 8.923 8.727 8.706 8.639 8.327 7.777 7.312 7.431 8.417 9.998 11.437 12.059 11.823 11.398 11.604 12.632 13.762 13.893 12.506 10.238 8.520 - 11.897 12.340 13.140 14.122 15.061 15.754 16.116 16.203 16.135 15.964 15.603 14.890 13.759 12.366 11.053 10.137 9.695 9.514 9.277 8.851 8.432 8.414 9.062 10.251 11.499 12.299 12.505 12.453 12.700 13.541 14.699 15.441 15.089 13.566 11.561 10.157 - 12.282 12.208 12.415 13.240 14.596 15.959 16.760 16.844 16.567 16.428 16.582 16.662 16.110 14.706 12.843 11.273 10.543 10.591 10.848 10.756 10.237 9.738 9.820 10.662 11.897 12.921 13.388 13.468 13.656 14.287 15.181 15.705 15.252 13.752 11.841 10.516 - 12.522 12.204 12.083 12.705 14.109 15.733 16.832 17.061 16.705 16.363 16.379 16.536 16.269 15.212 13.570 11.999 11.089 10.898 10.961 10.735 10.104 9.491 9.495 10.363 11.755 13.010 13.675 13.843 14.016 14.602 15.471 15.973 15.431 13.736 11.577 10.077 - 12.615 12.261 12.012 12.402 13.582 15.164 16.491 17.107 17.053 16.747 16.578 16.558 16.331 15.529 14.148 12.616 11.489 11.015 10.962 10.856 10.423 9.859 9.671 10.231 11.432 12.751 13.679 14.132 14.469 15.075 15.886 16.302 15.636 13.753 11.374 9.719 - 12.690 12.375 12.106 12.348 13.322 14.811 16.271 17.170 17.338 17.034 16.704 16.581 16.491 16.025 14.939 13.438 12.073 11.310 11.160 11.191 10.945 10.379 9.932 10.128 11.089 12.403 13.485 14.104 14.542 15.228 16.154 16.675 15.970 13.821 11.041 9.084 - 12.866 12.587 12.313 12.446 13.239 14.601 16.088 17.153 17.495 17.255 16.874 16.709 16.719 16.496 15.657 14.234 12.718 11.689 11.343 11.362 11.251 10.822 10.393 10.477 11.275 12.458 13.458 13.997 14.321 14.876 15.719 16.260 15.674 13.693 11.060 9.188 - 12.820 12.682 12.524 12.584 13.130 14.260 15.723 16.982 17.548 17.345 16.784 16.416 16.443 16.530 16.105 14.911 13.293 11.949 11.359 11.409 11.562 11.400 11.019 10.910 11.452 12.527 13.632 14.358 14.746 15.137 15.679 15.998 15.457 13.804 11.617 10.057 - 12.923 12.759 12.558 12.575 13.099 14.233 15.705 16.935 17.399 17.043 16.358 15.992 16.192 16.565 16.405 15.323 13.630 12.111 11.389 11.436 11.681 11.576 11.103 10.755 11.036 11.974 13.108 13.915 14.249 14.347 14.443 14.409 13.849 12.561 10.926 9.768 - 12.956 12.810 12.607 12.569 12.989 14.013 15.410 16.598 17.015 16.578 15.803 15.416 15.732 16.346 16.455 15.553 13.899 12.336 11.596 11.725 12.116 12.100 11.557 10.979 10.982 11.736 12.832 13.676 13.975 13.877 13.666 13.386 12.811 11.779 10.529 9.653 - 12.805 12.624 12.355 12.239 12.607 13.629 15.037 16.171 16.409 15.708 14.718 14.297 14.775 15.617 15.851 14.910 13.156 11.601 11.058 11.473 12.043 11.989 11.259 10.529 10.540 11.405 12.545 13.249 13.299 13.043 12.906 12.873 12.506 11.463 10.009 8.935 - 12.627 12.574 12.436 12.323 12.564 13.439 14.787 15.932 16.143 15.296 14.097 13.563 14.135 15.243 15.762 14.996 13.300 11.761 11.224 11.580 11.974 11.712 10.967 10.596 11.241 12.615 13.701 13.683 12.715 11.759 11.644 12.253 12.652 12.032 10.571 9.340 - 12.521 12.599 12.607 12.532 12.672 13.391 14.643 15.773 15.956 14.937 13.394 12.477 12.859 14.138 15.171 15.053 13.858 12.490 11.808 11.891 12.125 11.966 11.564 11.592 12.451 13.702 14.350 13.781 12.405 11.344 11.381 12.180 12.565 11.641 9.725 8.160 - 12.531 12.528 12.486 12.474 12.728 13.455 14.519 15.364 15.364 14.353 12.855 11.748 11.605 12.282 13.120 13.549 13.528 13.427 13.519 13.652 13.447 12.803 12.156 12.123 12.857 13.756 13.915 12.960 11.470 10.522 10.715 11.568 11.896 10.899 8.960 7.406 - 12.422 12.467 12.475 12.455 12.606 13.137 13.956 14.575 14.431 13.383 11.915 10.792 10.469 10.788 11.254 11.589 11.987 12.780 13.884 14.646 14.372 13.070 11.634 11.170 11.998 13.273 13.677 12.606 10.773 9.597 9.893 11.055 11.552 10.335 7.883 5.905 - 12.567 12.602 12.553 12.394 12.326 12.602 13.193 13.661 13.468 12.467 11.089 9.998 9.522 9.435 9.331 9.195 9.533 10.824 12.811 14.407 14.487 12.927 10.895 9.989 10.891 12.737 13.840 13.156 11.198 9.534 9.337 10.314 11.018 10.261 8.286 6.599 - 12.285 12.506 12.656 12.480 12.062 11.770 11.874 12.233 12.364 11.878 10.841 9.728 9.014 8.808 8.883 9.033 9.353 10.107 11.309 12.478 12.892 12.193 10.775 9.560 9.296 9.979 10.908 11.315 10.992 10.379 10.069 10.245 10.575 10.617 10.291 9.939 - 12.223 12.535 12.811 12.698 12.189 11.626 11.358 11.384 11.345 10.874 9.975 9.053 8.557 8.578 8.791 8.808 8.599 8.558 9.124 10.286 11.440 11.775 10.897 9.180 7.548 6.861 7.370 8.632 9.882 10.544 10.512 10.071 9.610 9.361 9.323 9.365 - 11.881 12.285 12.661 12.541 11.851 10.976 10.409 10.308 10.371 10.135 9.410 8.457 7.756 7.595 7.857 8.192 8.371 8.491 8.826 9.478 10.173 10.399 9.795 8.466 6.963 5.953 5.836 6.562 7.725 8.815 9.443 9.440 8.862 7.945 7.031 6.465 - 11.507 11.785 12.066 12.015 11.502 10.696 9.930 9.442 9.204 8.961 8.444 7.585 6.581 5.778 5.456 5.679 6.274 6.943 7.417 7.571 7.441 7.169 6.891 6.667 6.470 6.250 6.031 5.937 6.122 6.629 7.296 7.798 7.845 7.386 6.685 6.172 - 10.955 11.116 11.228 11.033 10.435 9.606 8.891 8.568 8.633 8.770 8.565 7.815 6.713 5.746 5.370 5.681 6.346 6.839 6.822 6.371 5.889 5.770 6.098 6.588 6.816 6.539 5.869 5.187 4.890 5.162 5.914 6.893 7.839 8.589 9.083 9.323 - 10.806 10.780 10.606 10.173 9.508 8.810 8.323 8.185 8.338 8.585 8.713 8.600 8.252 7.775 7.333 7.096 7.173 7.541 8.022 8.363 8.391 8.148 7.870 7.812 8.040 8.370 8.520 8.359 8.042 7.910 8.231 8.998 9.942 10.741 11.229 11.430 - 11.171 10.961 10.614 10.241 9.933 9.725 9.598 9.515 9.463 9.456 9.488 9.493 9.365 9.063 8.694 8.501 8.699 9.285 9.981 10.403 10.348 9.972 9.681 9.806 10.311 10.807 10.874 10.435 9.846 9.616 9.973 10.660 11.141 11.053 10.515 10.026 - 11.259 11.154 11.025 10.941 10.875 10.720 10.395 9.939 9.484 9.129 8.840 8.490 8.030 7.618 7.570 8.128 9.206 10.364 11.052 10.985 10.353 9.694 9.518 9.947 10.646 11.085 10.935 10.303 9.633 9.386 9.718 10.408 11.053 11.368 11.357 11.245 - 11.538 11.721 12.071 12.506 12.847 12.890 12.531 11.854 11.077 10.396 9.868 9.426 9.036 8.815 8.991 9.690 10.732 11.652 11.969 11.538 10.694 10.050 10.066 10.720 11.514 11.846 11.455 10.620 9.952 9.945 10.619 11.512 12.033 11.894 11.304 10.794 - 11.081 11.501 12.282 13.216 13.921 14.007 13.342 12.188 11.044 10.289 9.946 9.766 9.564 9.481 9.874 10.931 12.345 13.406 13.490 12.554 11.223 10.353 10.415 11.182 11.952 12.109 11.567 10.779 10.343 10.560 11.259 11.977 12.307 12.147 11.716 11.372 - 11.107 11.556 12.328 13.165 13.727 13.744 13.179 12.269 11.373 10.734 10.350 10.081 9.870 9.868 10.304 11.200 12.199 12.724 12.382 11.301 10.099 9.478 9.738 10.585 11.378 11.603 11.213 10.601 10.263 10.437 10.980 11.522 11.745 11.581 11.212 10.925 - 11.060 11.407 12.030 12.730 13.191 13.124 12.467 11.460 10.486 9.799 9.382 9.069 8.807 8.783 9.255 10.225 11.282 11.823 11.502 10.529 9.546 9.154 9.493 10.208 10.800 11.028 11.021 11.046 11.205 11.369 11.377 11.269 11.280 11.602 12.147 12.573 - 12.479 12.062 11.411 10.750 10.198 9.759 9.418 9.222 9.229 9.383 9.476 9.293 8.837 8.411 8.424 9.053 10.045 10.870 11.104 10.754 10.233 10.016 10.284 10.830 11.302 11.521 11.599 11.780 12.190 12.732 13.213 13.537 13.776 14.049 14.364 14.590 - 10.951 11.072 11.052 10.625 9.813 8.971 8.538 8.685 9.170 9.513 9.358 8.737 8.034 7.700 7.942 8.615 9.366 9.887 10.092 10.114 10.167 10.391 10.781 11.219 11.558 11.718 11.730 11.734 11.905 12.355 13.050 13.817 14.440 14.787 14.886 14.874 - 12.365 12.059 11.392 10.390 9.271 8.382 7.985 8.072 8.386 8.627 8.670 8.607 8.605 8.743 8.982 9.260 9.580 9.978 10.419 10.757 10.849 10.724 10.619 10.795 11.286 11.834 12.101 12.011 11.876 12.163 13.079 14.333 15.331 15.647 15.369 14.999 - 11.515 11.335 11.021 10.630 10.191 9.708 9.185 8.674 8.273 8.074 8.100 8.278 8.495 8.694 8.937 9.358 10.037 10.873 11.593 11.901 11.678 11.095 10.516 10.276 10.476 10.955 11.448 11.811 12.110 12.536 13.211 14.063 14.872 15.433 15.700 15.776 - 11.604 11.452 11.154 10.732 10.234 9.743 9.350 9.128 9.089 9.173 9.270 9.284 9.198 9.102 9.151 9.478 10.095 10.866 11.555 11.953 11.982 11.730 11.390 11.147 11.090 11.206 11.437 11.760 12.201 12.802 13.555 14.370 15.113 15.673 16.013 16.163 - 13.487 12.840 11.921 11.175 10.784 10.584 10.298 9.840 9.412 9.295 9.552 9.918 10.021 9.728 9.306 9.243 9.839 10.933 11.988 12.471 12.242 11.629 11.157 11.162 11.578 12.054 12.273 12.201 12.100 12.305 12.968 13.962 14.983 15.764 16.209 16.385 - 10.397 10.477 10.529 10.398 9.985 9.332 8.639 8.185 8.177 8.615 9.263 9.764 9.863 9.577 9.203 9.143 9.632 10.577 11.593 12.250 12.340 11.998 11.588 11.449 11.683 12.131 12.537 12.761 12.878 13.100 13.598 14.369 15.244 16.009 16.529 16.777 - 11.758 11.164 10.342 9.721 9.451 9.341 9.100 8.650 8.213 8.100 8.411 8.945 9.383 9.580 9.685 9.969 10.561 11.305 11.904 12.170 12.177 12.165 12.306 12.565 12.765 12.787 12.705 12.739 13.073 13.714 14.495 15.208 15.730 16.052 16.228 16.305 - 10.572 10.011 9.280 8.839 8.843 9.050 9.069 8.721 8.200 7.889 8.018 8.462 8.855 8.917 8.705 8.590 8.977 10.006 11.440 12.816 13.709 13.935 13.589 12.943 12.304 11.894 11.790 11.930 12.175 12.415 12.650 12.998 13.582 14.392 15.221 15.753 - 8.056 7.731 7.174 6.552 6.041 5.724 5.532 5.308 4.964 4.611 4.492 4.764 5.304 5.769 5.908 5.853 6.101 7.110 8.837 10.616 11.558 11.190 9.812 8.284 7.396 7.345 7.719 7.952 7.832 7.621 7.750 8.397 9.350 10.222 10.765 10.985 - 5.202 5.103 4.827 4.354 3.833 3.511 3.529 3.785 4.010 4.017 3.881 3.862 4.143 4.626 4.998 5.020 4.766 4.578 4.762 5.299 5.848 6.023 5.711 5.135 4.636 4.396 4.351 4.353 4.385 4.597 5.136 5.948 6.772 7.336 7.566 7.599 - 2.932 3.263 3.876 4.619 5.232 5.445 5.160 4.555 4.001 3.815 4.046 4.442 4.655 4.507 4.126 3.830 3.884 4.309 4.888 5.342 5.509 5.412 5.175 4.907 4.644 4.378 4.133 3.985 4.033 4.336 4.881 5.591 6.357 7.065 7.611 7.909 - 7.329 7.613 8.119 8.739 9.352 9.850 10.152 10.206 9.985 9.492 8.783 7.981 7.261 6.797 6.689 6.916 7.357 7.871 8.383 8.912 9.523 10.230 10.938 11.463 11.636 11.409 10.895 10.305 9.836 9.571 9.457 9.372 9.212 8.961 8.692 8.517 - 9.156 9.207 9.524 10.289 11.395 12.449 13.035 13.029 12.664 12.311 12.162 12.114 11.923 11.487 10.964 10.649 10.714 11.087 11.550 11.967 12.401 13.005 13.806 14.583 14.989 14.800 14.109 13.277 12.702 12.566 12.763 13.018 13.093 12.929 12.645 12.434 - 11.437 11.657 12.129 12.824 13.574 14.083 14.081 13.501 12.551 11.609 10.992 10.775 10.784 10.780 10.676 10.626 10.902 11.651 12.744 13.828 14.552 14.791 14.691 14.510 14.402 14.320 14.111 13.701 13.199 12.825 12.728 12.865 13.043 13.086 12.981 12.860 - 12.122 12.326 12.798 13.586 14.618 15.627 16.212 16.048 15.129 13.837 12.736 12.206 12.206 12.381 12.452 12.511 12.945 14.010 15.451 16.566 16.737 15.970 14.942 14.455 14.756 15.326 15.373 14.589 13.474 12.902 13.288 14.139 14.432 13.528 11.813 10.454 - 12.147 12.155 12.368 13.021 14.170 15.544 16.623 16.912 16.266 15.015 13.766 13.006 12.819 12.951 13.141 13.407 13.993 15.017 16.184 16.886 16.693 15.772 14.832 14.552 14.981 15.479 15.305 14.345 13.301 13.094 13.973 15.150 15.369 13.984 11.622 9.810 - 12.040 11.967 12.037 12.535 13.596 15.055 16.460 17.282 17.197 16.272 14.929 13.709 12.999 12.905 13.306 14.005 14.825 15.594 16.120 16.233 15.914 15.371 14.934 14.815 14.921 14.931 14.590 13.997 13.575 13.715 14.358 14.921 14.698 13.445 11.683 10.410 - 11.996 12.039 12.207 12.642 13.475 14.690 16.025 17.018 17.232 16.528 15.201 13.842 13.017 12.983 13.616 14.561 15.456 16.064 16.283 16.119 15.678 15.162 14.799 14.702 14.768 14.749 14.486 14.111 13.987 14.387 15.152 15.665 15.257 13.769 11.803 10.415 - 12.134 12.341 12.686 13.133 13.761 14.679 15.844 16.936 17.473 17.119 15.966 14.548 13.549 13.404 14.068 15.107 15.993 16.402 16.323 15.958 15.557 15.272 15.121 15.008 14.809 14.471 14.094 13.923 14.191 14.898 15.674 15.903 15.104 13.323 11.238 9.837 - 11.928 12.192 12.613 13.120 13.787 14.735 15.904 16.930 17.304 16.744 15.468 14.115 13.347 13.444 14.199 15.134 15.843 16.164 16.130 15.833 15.375 14.905 14.614 14.608 14.783 14.862 14.656 14.321 14.305 14.936 15.973 16.574 15.842 13.590 10.699 8.677 - 11.939 12.122 12.464 12.982 13.760 14.843 16.072 17.043 17.300 16.649 15.352 14.007 13.200 13.188 13.821 14.733 15.570 16.112 16.241 15.925 15.254 14.502 14.026 14.033 14.379 14.652 14.531 14.130 13.957 14.450 15.440 16.078 15.406 13.183 10.279 8.234 - 11.663 11.630 11.759 12.306 13.399 14.879 16.311 17.169 17.107 16.165 14.745 13.408 12.593 12.475 12.979 13.890 14.931 15.786 16.140 15.809 14.903 13.856 13.201 13.210 13.679 14.077 13.999 13.541 13.245 13.598 14.490 15.141 14.640 12.730 10.176 8.362 - 12.067 11.629 11.320 11.782 13.164 14.931 16.218 16.426 15.591 14.277 13.102 12.345 11.908 11.620 11.529 11.889 12.849 14.146 15.131 15.181 14.178 12.656 11.469 11.199 11.773 12.568 12.920 12.614 11.977 11.535 11.526 11.702 11.575 10.875 9.843 9.077 - 11.545 11.072 10.598 10.621 11.213 11.969 12.404 12.375 12.128 11.938 11.754 11.235 10.180 8.908 8.158 8.527 9.918 11.532 12.438 12.269 11.461 10.841 10.951 11.676 12.446 12.762 12.572 12.195 11.957 11.909 11.855 11.601 11.148 10.662 10.307 10.138 - 13.539 12.870 11.960 11.323 11.161 11.260 11.221 10.815 10.135 9.451 8.946 8.599 8.307 8.106 8.210 8.822 9.883 11.008 11.727 11.841 11.588 11.479 11.921 12.928 14.125 15.029 15.360 15.164 14.700 14.229 13.869 13.598 13.350 13.099 12.878 12.746 - 14.276 13.813 13.025 12.115 11.261 10.567 10.076 9.793 9.685 9.662 9.584 9.338 8.935 8.556 8.467 8.841 9.606 10.472 11.119 11.442 11.645 12.105 13.071 14.435 15.752 16.507 16.461 15.806 15.034 14.600 14.635 14.900 15.015 14.771 14.284 13.897 - 13.652 13.219 12.482 11.645 10.914 10.412 10.151 10.044 9.966 9.820 9.581 9.293 9.045 8.923 8.984 9.233 9.624 10.089 10.577 11.100 11.742 12.603 13.702 14.902 15.933 16.526 16.577 16.240 15.835 15.643 15.720 15.874 15.828 15.458 14.910 14.507 - 11.035 10.799 10.329 9.707 9.148 8.924 9.184 9.802 10.413 10.626 10.280 9.557 8.859 8.562 8.804 9.450 10.224 10.893 11.390 11.822 12.383 13.229 14.371 15.634 16.704 17.278 17.240 16.751 16.179 15.868 15.920 16.138 16.197 15.918 15.418 15.029 - 11.111 10.667 10.027 9.510 9.302 9.364 9.507 9.549 9.422 9.156 8.807 8.421 8.062 7.871 8.037 8.690 9.779 11.053 12.197 13.027 13.593 14.123 14.828 15.733 16.654 17.328 17.595 17.490 17.190 16.883 16.644 16.426 16.143 15.770 15.389 15.144 - 10.912 10.084 8.933 8.119 8.032 8.599 9.412 10.038 10.245 10.029 9.517 8.879 8.319 8.068 8.302 9.021 10.006 10.948 11.670 12.245 12.904 13.795 14.824 15.719 16.269 16.500 16.627 16.816 17.012 16.984 16.579 15.906 15.293 15.019 15.085 15.242 - 13.935 13.129 11.986 11.055 10.549 10.273 9.922 9.429 9.001 8.847 8.920 8.950 8.770 8.562 8.745 9.570 10.825 11.955 12.543 12.682 12.901 13.664 14.930 16.162 16.791 16.693 16.253 15.972 16.018 16.135 15.974 15.483 14.965 14.771 14.942 15.184 - 14.357 13.426 12.129 11.133 10.713 10.642 10.530 10.222 9.877 9.685 9.577 9.267 8.605 7.872 7.653 8.351 9.787 11.286 12.211 12.479 12.578 13.084 14.105 15.172 15.660 15.335 14.541 13.879 13.707 13.912 14.116 14.072 13.843 13.660 13.645 13.709 - 14.613 13.462 11.828 10.530 9.943 9.837 9.720 9.333 8.831 8.531 8.530 8.597 8.444 8.086 7.908 8.337 9.431 10.769 11.767 12.136 12.080 12.064 12.399 12.998 13.513 13.676 13.510 13.254 13.109 13.082 13.041 12.906 12.735 12.652 12.691 12.765 - 14.540 13.583 12.368 11.748 12.093 13.068 13.965 14.259 13.912 13.243 12.575 12.020 11.553 11.221 11.198 11.607 12.309 12.919 13.085 12.792 12.390 12.298 12.638 13.130 13.335 13.029 12.371 11.739 11.401 11.325 11.262 10.996 10.515 9.977 9.556 9.339 - 13.690 13.413 13.075 12.972 13.286 13.944 14.638 14.995 14.814 14.178 13.383 12.723 12.331 12.182 12.234 12.515 13.051 13.701 14.101 13.879 13.000 11.923 11.339 11.636 12.508 13.123 12.769 11.478 10.077 9.535 10.140 11.198 11.568 10.618 8.811 7.386 - 13.259 12.873 12.422 12.323 12.794 13.684 14.549 14.924 14.600 13.730 12.702 11.898 11.512 11.546 11.909 12.497 13.172 13.696 13.777 13.258 12.330 11.521 11.387 12.074 13.116 13.705 13.280 11.996 10.654 10.093 10.517 11.300 11.482 10.565 8.966 7.733 - 12.825 12.604 12.307 12.164 12.364 12.911 13.559 13.911 13.647 12.758 11.592 10.664 10.357 10.723 11.499 12.301 12.816 12.888 12.511 11.826 11.129 10.815 11.181 12.161 13.230 13.648 12.963 11.400 9.791 9.011 9.322 10.168 10.609 10.086 8.883 7.897 - 12.770 12.614 12.378 12.176 12.099 12.157 12.256 12.238 11.963 11.395 10.636 9.893 9.390 9.278 9.569 10.116 10.662 10.942 10.828 10.438 10.131 10.313 11.151 12.371 13.341 13.438 12.501 11.012 9.837 9.649 10.445 11.528 12.010 11.474 10.290 9.341 - 12.650 12.652 12.541 12.247 11.892 11.713 11.823 12.043 12.002 11.443 10.476 9.535 9.069 9.228 9.805 10.439 10.864 11.019 10.972 10.837 10.764 10.958 11.578 12.529 13.340 13.380 12.354 10.693 9.426 9.478 10.911 12.745 13.628 12.870 11.033 9.529 - 12.542 12.124 11.581 11.309 11.538 12.150 12.721 12.772 12.092 10.912 9.800 9.332 9.753 10.862 12.161 13.156 13.578 13.431 12.884 12.167 11.518 11.157 11.204 11.566 11.912 11.856 11.258 10.415 9.919 10.215 11.182 12.120 12.213 11.164 9.504 8.266 - 12.439 12.251 12.033 12.032 12.439 13.231 14.092 14.541 14.214 13.150 11.836 10.941 10.911 11.709 12.877 13.862 14.337 14.304 13.964 13.513 13.062 12.669 12.389 12.244 12.147 11.932 11.504 11.009 10.792 11.126 11.898 12.565 12.495 11.479 9.979 8.882 - 12.019 11.923 11.808 11.857 12.309 13.253 14.425 15.230 15.088 13.890 12.182 10.869 10.624 11.461 12.795 13.902 14.392 14.322 13.961 13.497 12.982 12.473 12.135 12.119 12.337 12.431 12.072 11.342 10.789 10.996 11.976 12.980 12.992 11.575 9.365 7.715 - 12.090 11.850 11.586 11.639 12.292 13.536 14.955 15.874 15.744 14.539 12.842 11.523 11.211 11.927 13.153 14.227 14.749 14.707 14.314 13.781 13.238 12.805 12.624 12.771 13.099 13.264 12.978 12.308 11.700 11.624 12.115 12.619 12.381 11.092 9.256 7.919 - 12.084 12.000 12.007 12.342 13.127 14.226 15.238 15.685 15.292 14.200 12.928 12.087 12.031 12.678 13.605 14.340 14.610 14.414 13.925 13.361 12.922 12.761 12.940 13.328 13.591 13.346 12.459 11.245 10.338 10.258 10.976 11.851 12.068 11.266 9.864 8.789 - 10.339 10.925 11.789 12.577 13.150 13.587 13.948 14.081 13.706 12.744 11.558 10.817 11.020 12.075 13.299 13.881 13.451 12.307 11.149 10.553 10.633 11.070 11.431 11.453 11.107 10.499 9.768 9.084 8.658 8.663 9.083 9.644 9.958 9.801 9.312 8.895 - 9.762 10.384 11.293 12.092 12.611 12.909 13.047 12.896 12.241 11.108 9.961 9.490 10.086 11.444 12.681 12.942 12.026 10.517 9.340 9.086 9.656 10.440 10.821 10.569 9.861 9.022 8.285 7.746 7.459 7.469 7.743 8.087 8.216 7.970 7.473 7.076 - 8.934 9.042 9.010 8.646 8.095 7.762 7.922 8.382 8.580 8.067 6.961 5.936 5.708 6.435 7.562 8.243 7.987 7.001 5.966 5.483 5.654 6.106 6.369 6.232 5.820 5.395 5.133 5.054 5.107 5.248 5.433 5.560 5.490 5.163 4.700 4.362 - 8.499 8.526 8.370 7.903 7.329 7.082 7.411 8.053 8.365 7.853 6.651 5.494 5.162 5.848 6.982 7.683 7.427 6.410 5.318 4.761 4.856 5.266 5.575 5.629 5.557 5.539 5.595 5.583 5.374 4.998 4.609 4.335 4.180 4.065 3.945 3.856 - 8.044 8.126 8.279 8.485 8.719 8.919 8.968 8.713 8.037 6.972 5.751 4.747 4.297 4.507 5.159 5.820 6.082 5.797 5.156 4.542 4.286 4.462 4.880 5.245 5.361 5.228 4.988 4.778 4.634 4.496 4.302 4.069 3.880 3.807 3.841 3.897 - 7.599 7.716 7.870 7.979 8.038 8.099 8.161 8.094 7.682 6.804 5.592 4.434 3.769 3.816 4.417 5.131 5.510 5.365 4.867 4.396 4.287 4.625 5.209 5.695 5.804 5.479 4.908 4.408 4.247 4.488 4.957 5.341 5.382 5.035 4.505 4.119 - 6.792 7.807 9.183 10.110 10.209 9.726 9.225 9.070 9.159 9.093 8.590 7.758 7.003 6.699 6.913 7.402 7.840 8.042 8.015 7.869 7.710 7.596 7.568 7.637 7.750 7.797 7.703 7.545 7.559 7.964 8.733 9.519 9.862 9.551 8.826 8.240 - 10.889 10.159 9.147 8.441 8.393 8.934 9.671 10.168 10.176 9.714 8.993 8.304 7.924 8.022 8.567 9.298 9.827 9.865 9.429 8.850 8.539 8.672 9.052 9.278 9.079 8.541 8.018 7.835 8.019 8.321 8.466 8.401 8.307 8.386 8.643 8.874 - 11.266 10.975 10.759 11.028 11.863 12.936 13.749 13.983 13.664 13.048 12.394 11.853 11.519 11.512 11.926 12.685 13.467 13.868 13.696 13.155 12.705 12.698 13.087 13.467 13.428 12.904 12.214 11.769 11.729 11.892 11.910 11.597 11.049 10.517 10.175 10.035 - 11.647 11.269 11.006 11.422 12.662 14.309 15.665 16.207 15.857 14.906 13.753 12.727 12.066 11.965 12.508 13.527 14.565 15.088 14.854 14.128 13.514 13.499 14.060 14.687 14.794 14.202 13.269 12.587 12.518 12.933 13.358 13.348 12.781 11.876 11.006 10.489 - 11.711 11.436 11.284 11.708 12.813 14.253 15.472 16.067 15.964 15.338 14.415 13.395 12.514 12.091 12.394 13.391 14.638 15.483 15.509 14.852 14.114 13.900 14.346 15.029 15.321 14.893 13.954 13.055 12.640 12.741 13.005 13.007 12.550 11.756 10.947 10.448 - 11.450 11.326 11.327 11.753 12.710 14.005 15.243 16.034 16.168 15.660 14.704 13.606 12.719 12.372 12.738 13.707 14.872 15.709 15.869 15.408 14.751 14.410 14.617 15.167 15.574 15.435 14.731 13.837 13.243 13.188 13.483 13.643 13.241 12.229 11.001 10.165 - 11.047 10.977 11.045 11.504 12.450 13.724 14.974 15.833 16.073 15.673 14.796 13.725 12.809 12.383 12.650 13.548 14.707 15.591 15.784 15.271 14.470 13.977 14.138 14.781 15.318 15.189 14.317 13.221 12.662 13.041 14.018 14.667 14.118 12.225 9.783 8.082 - 10.656 10.862 11.234 11.755 12.473 13.450 14.631 15.758 16.431 16.320 15.396 14.018 12.794 12.282 12.714 13.866 15.177 16.025 16.059 15.385 14.514 14.050 14.298 15.025 15.587 15.391 14.382 13.183 12.691 13.387 14.841 15.879 15.367 13.084 10.033 7.880 - 11.174 11.389 11.753 12.212 12.799 13.606 14.653 15.758 16.541 16.613 15.840 14.515 13.269 12.744 13.221 14.434 15.710 16.373 16.148 15.325 14.543 14.350 14.817 15.482 15.673 15.014 13.740 12.599 12.350 13.197 14.560 15.376 14.788 12.757 10.185 8.412 - 11.012 11.305 11.766 12.265 12.792 13.464 14.383 15.456 16.346 16.634 16.108 14.989 13.870 13.394 13.839 14.921 15.957 16.318 15.845 14.948 14.300 14.344 14.959 15.539 15.441 14.476 13.093 12.116 12.185 13.283 14.685 15.364 14.630 12.588 10.137 8.489 - 10.056 10.521 11.186 11.760 12.195 12.728 13.647 14.954 16.232 16.858 16.451 15.207 13.860 13.231 13.690 14.892 16.007 16.290 15.587 14.426 13.619 13.672 14.417 15.133 15.073 14.017 12.476 11.369 11.414 12.607 14.173 15.006 14.352 12.303 9.794 8.095 - 10.286 10.685 11.247 11.737 12.162 12.785 13.856 15.280 16.545 17.006 16.360 14.942 13.583 13.095 13.725 14.989 15.999 16.071 15.184 13.974 13.269 13.500 14.399 15.188 15.129 14.065 12.563 11.571 11.785 13.152 14.823 15.633 14.806 12.475 9.672 7.785 - 10.741 11.161 11.744 12.228 12.607 13.149 14.129 15.483 16.715 17.186 16.588 15.255 14.008 13.635 14.335 15.574 16.448 16.319 15.261 13.996 13.366 13.726 14.695 15.439 15.271 14.157 12.759 11.999 12.434 13.849 15.346 15.861 14.795 12.401 9.688 7.908 - 10.457 10.917 11.558 12.084 12.467 12.979 13.919 15.254 16.514 17.063 16.579 15.363 14.203 13.844 14.461 15.526 16.186 15.895 14.812 13.683 13.279 13.822 14.817 15.414 15.039 13.819 12.512 11.996 12.671 14.181 15.611 16.026 15.005 12.872 10.533 9.025 - 9.915 10.463 11.196 11.738 12.076 12.586 13.656 15.225 16.668 17.192 16.456 14.920 13.591 13.328 14.206 15.458 16.030 15.371 13.836 12.425 12.045 12.850 14.145 14.901 14.498 13.165 11.813 11.407 12.315 14.062 15.607 15.957 14.716 12.294 9.698 8.041 - 10.580 11.033 11.662 12.190 12.616 13.226 14.276 15.647 16.792 17.085 16.333 15.012 14.000 13.961 14.848 15.910 16.232 15.414 13.876 12.571 12.305 13.161 14.447 15.191 14.827 13.582 12.321 11.963 12.868 14.591 16.132 16.510 15.309 12.912 10.316 8.650 - 10.776 11.230 11.887 12.498 13.062 13.805 14.875 16.060 16.833 16.740 15.823 14.686 14.109 14.466 15.428 16.187 16.044 14.922 13.416 12.369 12.296 13.062 14.014 14.437 14.013 13.009 12.099 11.957 12.853 14.449 15.934 16.418 15.426 13.212 10.701 9.050 - 10.334 10.786 11.459 12.129 12.806 13.685 14.855 16.038 16.682 16.369 15.229 13.957 13.365 13.784 14.797 15.527 15.269 13.999 12.373 11.250 11.115 11.798 12.657 13.045 12.720 11.958 11.343 11.398 12.278 13.659 14.878 15.260 14.468 12.730 10.773 9.491 - 9.928 10.323 10.961 11.712 12.604 13.747 15.082 16.234 16.674 16.126 14.880 13.692 13.289 13.841 14.814 15.355 14.893 13.534 11.952 10.917 10.804 11.424 12.224 12.661 12.498 11.888 11.267 11.119 11.725 12.965 14.292 14.960 14.441 12.802 10.772 9.385 - 10.406 10.581 11.053 11.961 13.311 14.866 16.182 16.794 16.496 15.497 14.356 13.670 13.728 14.344 14.989 15.117 14.478 13.222 11.785 10.663 10.208 10.510 11.362 12.314 12.838 12.598 11.699 10.714 10.376 11.063 12.446 13.598 13.593 12.193 10.110 8.592 - 10.166 10.470 11.154 12.262 13.675 15.051 15.931 15.985 15.231 14.089 13.165 12.908 13.345 14.093 14.622 14.574 13.910 12.834 11.635 10.586 9.958 9.995 10.774 12.012 13.058 13.234 12.347 10.978 10.190 10.770 12.541 14.350 14.842 13.491 11.093 9.256 - 9.474 9.340 9.529 10.519 12.300 14.227 15.378 15.173 13.783 12.031 10.866 10.788 11.620 12.726 13.444 13.416 12.640 11.334 9.807 8.438 7.668 7.864 9.049 10.711 11.953 12.011 10.823 9.196 8.345 9.054 11.046 13.092 13.840 12.789 10.695 9.059 - 9.383 10.096 11.319 12.717 13.911 14.577 14.532 13.810 12.696 11.652 11.130 11.339 12.110 12.981 13.452 13.255 12.439 11.272 10.060 9.061 8.499 8.572 9.340 10.546 11.591 11.820 11.004 9.624 8.664 8.936 10.433 12.242 13.165 12.618 11.105 9.847 - 6.396 7.280 8.660 10.017 10.989 11.474 11.506 11.108 10.294 9.200 8.172 7.635 7.812 8.531 9.290 9.554 9.057 7.890 6.401 5.030 4.209 4.272 5.298 6.918 8.332 8.678 7.644 5.852 4.580 4.897 6.798 9.077 10.147 9.248 7.079 5.311 - 8.559 8.279 7.863 7.566 7.659 8.257 9.183 9.979 10.134 9.406 8.022 6.582 5.707 5.662 6.216 6.821 6.984 6.555 5.772 5.058 4.746 4.909 5.367 5.819 6.015 5.863 5.472 5.082 4.939 5.140 5.555 5.879 5.825 5.330 4.632 4.131 - 9.157 8.580 7.848 7.501 7.827 8.674 9.565 9.992 9.695 8.748 7.479 6.307 5.584 5.471 5.862 6.409 6.669 6.362 5.569 4.717 4.310 4.575 5.284 5.912 6.019 5.565 4.931 4.609 4.837 5.441 5.978 6.051 5.554 4.691 3.828 3.302 - 5.962 5.724 5.488 5.596 6.284 7.492 8.828 9.725 9.736 8.806 7.345 6.019 5.383 5.561 6.194 6.681 6.563 5.806 4.790 4.049 3.929 4.395 5.079 5.535 5.507 5.057 4.498 4.182 4.294 4.744 5.231 5.415 5.111 4.396 3.579 3.042 - 4.618 5.082 5.675 6.061 6.237 6.523 7.188 8.083 8.651 8.359 7.189 5.739 4.812 4.822 5.497 6.134 6.157 5.534 4.732 4.279 4.353 4.696 4.891 4.722 4.316 3.997 4.010 4.355 4.819 5.143 5.165 4.864 4.325 3.696 3.144 2.821 - 6.569 5.853 4.892 4.344 4.654 5.783 7.221 8.277 8.464 7.752 6.551 5.451 4.877 4.877 5.149 5.273 4.992 4.366 3.715 3.401 3.595 4.174 4.810 5.172 5.124 4.777 4.400 4.232 4.347 4.621 4.825 4.763 4.383 3.794 3.210 2.850 - 5.188 5.367 5.763 6.370 7.059 7.624 7.916 7.952 7.886 7.856 7.832 7.625 7.068 6.216 5.382 4.958 5.148 5.817 6.598 7.159 7.416 7.537 7.740 8.065 8.315 8.222 7.677 6.858 6.123 5.764 5.809 6.015 6.064 5.801 5.349 5.003 - 3.945 4.373 5.122 5.995 6.762 7.247 7.417 7.391 7.354 7.414 7.511 7.453 7.072 6.384 5.615 5.072 4.937 5.159 5.512 5.788 5.955 6.156 6.544 7.093 7.556 7.619 7.138 6.282 5.441 4.974 4.969 5.202 5.327 5.144 4.744 4.419 - 4.920 4.465 3.997 4.057 4.856 6.083 7.093 7.339 6.737 5.700 4.831 4.507 4.668 4.925 4.897 4.487 3.912 3.493 3.411 3.615 3.928 4.223 4.493 4.772 5.012 5.071 4.839 4.379 3.939 3.770 3.906 4.099 4.002 3.463 2.687 2.120 - 5.344 4.574 3.641 3.293 3.854 5.010 6.072 6.475 6.125 5.356 4.626 4.225 4.190 4.411 4.745 5.055 5.191 5.029 4.586 4.081 3.840 4.062 4.641 5.197 5.339 4.946 4.239 3.605 3.304 3.313 3.407 3.360 3.112 2.757 2.440 2.262 - 4.662 4.154 3.642 3.727 4.612 5.900 6.852 6.908 6.093 4.984 4.290 4.353 4.942 5.488 5.532 5.048 4.396 3.985 3.952 4.110 4.183 4.084 3.981 4.098 4.457 4.799 4.790 4.320 3.624 3.112 3.033 3.284 3.514 3.445 3.105 2.796 - 3.993 3.453 2.900 2.934 3.709 4.795 5.524 5.510 4.927 4.320 4.160 4.511 5.056 5.387 5.296 4.851 4.268 3.753 3.442 3.412 3.686 4.179 4.673 4.906 4.740 4.283 3.823 3.612 3.680 3.829 3.829 3.615 3.320 3.127 3.097 3.140 - 4.884 4.276 3.543 3.275 3.715 4.586 5.323 5.506 5.148 4.636 4.392 4.554 4.918 5.151 5.067 4.750 4.436 4.299 4.324 4.363 4.293 4.123 3.961 3.896 3.902 3.873 3.727 3.499 3.319 3.293 3.398 3.473 3.344 2.965 2.480 2.141 - 5.331 4.601 3.752 3.517 4.158 5.246 5.978 5.771 4.685 3.353 2.526 2.573 3.307 4.196 4.754 4.815 4.536 4.200 4.012 4.019 4.158 4.333 4.461 4.479 4.347 4.075 3.744 3.480 3.376 3.425 3.509 3.468 3.202 2.745 2.258 1.945 - 3.077 3.027 3.116 3.541 4.289 5.081 5.513 5.331 4.614 3.746 3.190 3.206 3.722 4.399 4.857 4.883 4.520 3.998 3.581 3.438 3.583 3.901 4.221 4.382 4.301 3.999 3.597 3.263 3.125 3.200 3.370 3.446 3.286 2.888 2.413 2.092 - 3.296 3.265 3.429 3.959 4.710 5.255 5.228 4.658 3.994 3.747 4.071 4.646 4.959 4.740 4.165 3.675 3.578 3.817 4.067 4.065 3.851 3.701 3.850 4.256 4.623 4.648 4.265 3.687 3.219 3.032 3.059 3.089 2.943 2.600 2.196 1.927 - 4.068 4.223 4.428 4.583 4.680 4.761 4.804 4.678 4.268 3.660 3.181 3.189 3.772 4.616 5.214 5.241 4.786 4.230 3.897 3.803 3.727 3.516 3.285 3.307 3.698 4.219 4.445 4.144 3.523 3.054 3.042 3.320 3.392 2.904 2.017 1.314 - 4.695 4.513 4.326 4.353 4.683 5.170 5.507 5.419 4.871 4.127 3.590 3.539 3.929 4.430 4.666 4.482 4.038 3.654 3.561 3.742 3.989 4.099 4.026 3.864 3.718 3.588 3.404 3.140 2.894 2.807 2.916 3.066 3.014 2.638 2.078 1.662 - 3.926 4.124 4.433 4.743 4.979 5.114 5.122 4.941 4.511 3.862 3.176 2.740 2.780 3.290 3.997 4.503 4.535 4.127 3.589 3.290 3.410 3.826 4.224 4.331 4.094 3.686 3.348 3.203 3.191 3.148 2.963 2.667 2.393 2.256 2.260 2.309 - 6.647 6.013 5.261 4.962 5.241 5.682 5.719 5.148 4.295 3.720 3.724 4.116 4.420 4.304 3.840 3.380 3.209 3.315 3.464 3.466 3.366 3.366 3.591 3.944 4.178 4.122 3.820 3.473 3.248 3.156 3.085 2.938 2.728 2.540 2.436 2.403 - 5.555 5.458 5.347 5.325 5.420 5.534 5.477 5.112 4.503 3.940 3.780 4.177 4.915 5.506 5.505 4.837 3.854 3.071 2.795 2.932 3.125 3.091 2.858 2.697 2.841 3.248 3.634 3.723 3.483 3.124 2.883 2.806 2.736 2.508 2.148 1.865 - 4.519 5.043 5.795 6.354 6.431 6.036 5.460 5.067 5.039 5.258 5.415 5.278 4.884 4.508 4.414 4.607 4.799 4.655 4.092 3.396 3.020 3.226 3.877 4.534 4.788 4.542 4.027 3.573 3.353 3.324 3.371 3.474 3.727 4.189 4.746 5.135 - 7.489 8.183 9.059 9.448 9.001 7.947 6.951 6.635 7.099 7.819 8.033 7.335 6.033 4.941 4.747 5.450 6.341 6.564 5.814 4.603 3.855 4.162 5.321 6.507 6.922 6.377 5.342 4.499 4.225 4.429 4.810 5.216 5.734 6.477 7.319 7.900 - 7.424 7.770 7.983 7.580 6.573 5.518 5.048 5.334 5.951 6.260 5.942 5.209 4.544 4.253 4.265 4.320 4.292 4.325 4.635 5.230 5.848 6.175 6.125 5.877 5.666 5.535 5.344 4.998 4.647 4.600 5.011 5.655 6.047 5.855 5.222 4.671 - 6.297 6.761 7.206 7.128 6.483 5.721 5.366 5.534 5.866 5.905 5.529 5.024 4.752 4.777 4.841 4.686 4.375 4.260 4.609 5.293 5.866 5.984 5.732 5.526 5.669 6.015 6.095 5.617 4.820 4.326 4.572 5.377 6.067 6.079 5.475 4.877 - 2.804 3.391 4.186 4.751 4.947 5.002 5.246 5.769 6.324 6.554 6.320 5.822 5.419 5.309 5.375 5.319 4.951 4.361 3.857 3.727 4.057 4.705 5.418 5.952 6.127 5.854 5.189 4.374 3.785 3.735 4.246 4.989 5.488 5.463 5.042 4.647 - 4.421 4.829 5.414 5.859 5.961 5.766 5.552 5.636 6.130 6.824 7.295 7.195 6.507 5.579 4.885 4.697 4.906 5.154 5.144 4.899 4.728 4.947 5.568 6.233 6.450 5.953 4.923 3.880 3.348 3.516 4.146 4.751 4.919 4.565 3.947 3.486 - 3.547 4.260 5.252 5.951 6.024 5.609 5.215 5.352 6.138 7.186 7.847 7.668 6.724 5.559 4.798 4.711 5.076 5.426 5.461 5.267 5.190 5.474 6.009 6.407 6.326 5.752 5.011 4.491 4.356 4.466 4.562 4.499 4.338 4.228 4.233 4.283 - 3.272 4.079 5.308 6.364 6.749 6.368 5.632 5.217 5.577 6.569 7.501 7.645 6.832 5.631 4.929 5.221 6.217 7.085 7.147 6.433 5.619 5.419 5.974 6.755 7.033 6.494 5.464 4.587 4.298 4.534 4.891 5.012 4.837 4.544 4.320 4.222 - 3.435 3.707 4.242 4.924 5.493 5.677 5.423 4.995 4.808 5.088 5.666 6.102 6.075 5.673 5.333 5.459 6.055 6.706 6.944 6.652 6.172 6.001 6.360 7.004 7.427 7.273 6.599 5.794 5.260 5.131 5.252 5.360 5.294 5.072 4.818 4.657 - 4.789 4.648 4.659 5.040 5.603 5.831 5.335 4.270 3.288 3.022 3.575 4.462 5.061 5.144 5.009 5.115 5.606 6.184 6.437 6.284 6.094 6.339 7.132 8.085 8.617 8.438 7.763 7.090 6.776 6.805 6.903 6.851 6.662 6.495 6.450 6.476 - 1.774 2.878 4.547 5.972 6.499 5.996 4.942 4.131 4.145 4.949 5.921 6.327 5.892 5.024 4.489 4.799 5.809 6.850 7.290 7.040 6.587 6.553 7.148 8.003 8.480 8.190 7.278 6.277 5.682 5.629 5.876 6.062 5.975 5.647 5.263 5.016 - 4.234 5.005 5.982 6.491 6.294 5.777 5.625 6.237 7.354 8.206 8.073 6.834 5.088 3.754 3.448 4.106 5.099 5.724 5.692 5.257 4.937 5.081 5.609 6.112 6.183 5.714 4.945 4.266 3.939 3.960 4.116 4.169 4.004 3.671 3.318 3.096 - 3.535 4.331 5.285 5.687 5.390 4.936 5.066 6.045 7.391 8.227 7.957 6.703 5.173 4.119 3.851 4.135 4.484 4.543 4.279 3.912 3.726 3.913 4.488 5.263 5.888 5.992 5.414 4.378 3.433 3.121 3.577 4.401 4.936 4.780 4.106 3.509 - 3.756 4.297 4.807 4.712 4.033 3.420 3.578 4.622 5.938 6.683 6.452 5.534 4.570 3.996 3.782 3.639 3.411 3.227 3.308 3.669 4.088 4.342 4.453 4.621 4.931 5.149 4.899 4.088 3.143 2.742 3.239 4.286 5.073 5.003 4.220 3.483 - 4.337 4.755 5.167 5.144 4.672 4.164 4.039 4.310 4.574 4.426 3.876 3.351 3.290 3.720 4.236 4.406 4.175 3.898 3.956 4.375 4.810 4.911 4.676 4.425 4.436 4.623 4.621 4.196 3.574 3.295 3.714 4.615 5.346 5.386 4.814 4.241 - 4.631 4.616 4.663 4.846 5.135 5.373 5.358 4.995 4.403 3.868 3.666 3.853 4.210 4.395 4.196 3.705 3.243 3.121 3.403 3.893 4.330 4.615 4.856 5.195 5.595 5.802 5.564 4.904 4.184 3.874 4.181 4.873 5.455 5.567 5.263 4.931 - 4.262 4.632 5.159 5.560 5.650 5.431 5.030 4.598 4.235 3.985 3.873 3.900 4.021 4.134 4.138 4.005 3.817 3.707 3.756 3.940 4.170 4.397 4.644 4.952 5.273 5.450 5.322 4.892 4.384 4.116 4.276 4.780 5.342 5.699 5.791 5.759 - 5.382 5.284 5.112 4.916 4.750 4.643 4.572 4.478 4.323 4.140 4.015 4.012 4.093 4.132 4.015 3.752 3.495 3.431 3.645 4.053 4.486 4.818 5.037 5.183 5.242 5.118 4.736 4.186 3.737 3.678 4.088 4.738 5.242 5.345 5.111 4.855 - 3.473 3.634 3.911 4.259 4.657 5.073 5.407 5.498 5.233 4.672 4.062 3.692 3.678 3.883 4.032 3.950 3.710 3.553 3.674 4.053 4.490 4.795 4.934 4.996 5.042 4.999 4.741 4.275 3.831 3.719 4.064 4.659 5.094 5.089 4.725 4.376 - 5.244 5.004 4.723 4.637 4.827 5.147 5.324 5.166 4.709 4.193 3.885 3.892 4.096 4.259 4.207 3.945 3.628 3.429 3.416 3.543 3.731 3.950 4.220 4.531 4.783 4.818 4.550 4.072 3.639 3.509 3.757 4.214 4.593 4.700 4.569 4.409 - 4.844 4.860 4.820 4.708 4.657 4.853 5.308 5.745 5.752 5.127 4.104 3.235 2.984 3.369 3.964 4.253 4.044 3.585 3.316 3.499 4.033 4.589 4.890 4.878 4.659 4.351 4.011 3.700 3.553 3.721 4.209 4.775 5.061 4.867 4.345 3.908 - 4.466 4.086 3.697 3.738 4.358 5.285 6.022 6.198 5.794 5.104 4.489 4.148 4.050 4.047 4.015 3.921 3.800 3.704 3.683 3.791 4.065 4.472 4.868 5.041 4.841 4.292 3.613 3.091 2.915 3.075 3.400 3.689 3.823 3.805 3.717 3.646 - 5.934 5.734 5.427 5.175 5.140 5.395 5.860 6.316 6.522 6.354 5.872 5.257 4.680 4.205 3.807 3.465 3.236 3.222 3.469 3.900 4.344 4.657 4.808 4.862 4.876 4.823 4.617 4.220 3.724 3.315 3.136 3.183 3.317 3.388 3.354 3.293 - 5.223 5.600 5.975 5.947 5.481 4.974 4.936 5.554 6.516 7.234 7.268 6.606 5.596 4.652 3.990 3.588 3.332 3.171 3.137 3.266 3.523 3.827 4.108 4.334 4.472 4.459 4.233 3.830 3.413 3.173 3.159 3.200 3.029 2.513 1.818 1.317 - 5.043 4.971 4.808 4.588 4.461 4.658 5.336 6.396 7.443 7.955 7.592 6.450 5.050 4.032 3.762 4.109 4.576 4.689 4.350 3.877 3.724 4.094 4.771 5.288 5.290 4.788 4.118 3.647 3.507 3.542 3.495 3.236 2.841 2.484 2.273 2.195 - 4.641 4.460 4.124 3.738 3.522 3.741 4.533 5.743 6.900 7.425 6.971 5.685 4.180 3.189 3.123 3.812 4.647 5.017 4.726 4.105 3.723 3.940 4.634 5.307 5.462 4.960 4.089 3.328 3.003 3.102 3.351 3.444 3.241 2.817 2.369 2.090 - 4.313 4.407 4.540 4.613 4.535 4.301 4.041 3.961 4.192 4.652 5.054 5.094 4.679 4.016 3.457 3.239 3.316 3.446 3.430 3.298 3.265 3.498 3.932 4.286 4.292 3.922 3.404 3.029 2.920 2.957 2.923 2.696 2.335 1.996 1.785 1.701 - 5.390 5.175 4.985 5.072 5.443 5.826 5.878 5.462 4.758 4.117 3.809 3.876 4.174 4.532 4.860 5.124 5.280 5.261 5.055 4.781 4.643 4.770 5.076 5.282 5.111 4.501 3.657 2.911 2.494 2.413 2.507 2.595 2.604 2.559 2.514 2.494 - 4.583 4.088 3.524 3.398 3.897 4.743 5.411 5.517 5.062 4.370 3.813 3.566 3.571 3.684 3.822 3.991 4.199 4.395 4.497 4.502 4.530 4.731 5.127 5.532 5.644 5.270 4.498 3.669 3.160 3.134 3.421 3.646 3.485 2.886 2.113 1.577 - 4.568 4.331 4.095 4.117 4.425 4.773 4.833 4.469 3.857 3.351 3.223 3.468 3.836 4.032 3.920 3.588 3.257 3.131 3.300 3.724 4.261 4.717 4.894 4.674 4.094 3.360 2.771 2.555 2.736 3.123 3.429 3.444 3.133 2.631 2.145 1.853 - 3.971 4.439 5.156 5.839 6.317 6.585 6.727 6.790 6.755 6.604 6.409 6.313 6.420 6.686 6.943 7.028 6.926 6.776 6.732 6.810 6.847 6.623 6.033 5.170 4.257 3.504 3.010 2.759 2.692 2.748 2.851 2.898 2.787 2.496 2.128 1.871 - 4.595 4.487 4.425 4.579 4.969 5.421 5.687 5.617 5.275 4.884 4.675 4.740 5.005 5.309 5.519 5.595 5.573 5.514 5.459 5.415 5.367 5.286 5.125 4.839 4.417 3.907 3.413 3.045 2.859 2.819 2.818 2.743 2.540 2.243 1.947 1.763 - 4.812 5.030 5.238 5.189 4.841 4.370 3.985 3.733 3.503 3.204 2.924 2.879 3.195 3.741 4.197 4.316 4.134 3.919 3.908 4.081 4.196 4.046 3.674 3.348 3.293 3.468 3.604 3.468 3.096 2.757 2.683 2.825 2.896 2.655 2.167 1.767 - 4.449 4.704 5.099 5.456 5.612 5.492 5.139 4.698 4.352 4.236 4.372 4.646 4.865 4.859 4.586 4.157 3.774 3.606 3.690 3.921 4.133 4.207 4.117 3.911 3.647 3.357 3.067 2.836 2.745 2.835 3.035 3.165 3.051 2.654 2.136 1.772 - 4.716 5.128 5.875 6.768 7.523 7.861 7.674 7.133 6.633 6.559 7.021 7.747 8.227 8.028 7.081 5.749 4.611 4.135 4.422 5.193 5.980 6.381 6.232 5.614 4.756 3.919 3.323 3.105 3.285 3.728 4.164 4.278 3.876 3.025 2.058 1.419 - 5.398 4.764 4.047 3.872 4.396 5.179 5.569 5.259 4.530 4.001 4.102 4.743 5.412 5.603 5.179 4.419 3.747 3.432 3.480 3.735 4.048 4.336 4.548 4.616 4.492 4.205 3.881 3.646 3.531 3.447 3.281 3.011 2.730 2.553 2.510 2.530 - 5.604 5.347 5.024 4.878 5.022 5.341 5.541 5.347 4.698 3.815 3.076 2.778 2.956 3.380 3.735 3.834 3.713 3.550 3.487 3.524 3.556 3.497 3.374 3.296 3.342 3.476 3.586 3.588 3.504 3.426 3.399 3.352 3.152 2.744 2.246 1.899 - 3.940 3.744 3.551 3.588 3.910 4.342 4.615 4.564 4.245 3.871 3.658 3.691 3.902 4.150 4.303 4.278 4.057 3.687 3.295 3.055 3.103 3.432 3.867 4.151 4.120 3.811 3.436 3.223 3.246 3.396 3.475 3.354 3.044 2.668 2.355 2.185 - 5.433 4.699 3.827 3.496 3.900 4.613 4.993 4.730 4.072 3.560 3.549 3.960 4.425 4.633 4.531 4.252 3.908 3.509 3.082 2.784 2.839 3.303 3.905 4.180 3.843 3.056 2.348 2.195 2.643 3.280 3.590 3.356 2.773 2.213 1.899 1.802 - 5.709 4.956 3.983 3.449 3.637 4.265 4.737 4.612 3.923 3.113 2.682 2.825 3.342 3.827 3.961 3.698 3.232 2.847 2.753 3.010 3.531 4.120 4.548 4.644 4.376 3.884 3.407 3.146 3.140 3.252 3.276 3.073 2.651 2.140 1.700 1.451 - 4.562 4.582 4.610 4.640 4.677 4.705 4.650 4.387 3.825 3.023 2.225 1.755 1.820 2.359 3.054 3.519 3.546 3.220 2.845 2.716 2.932 3.356 3.739 3.902 3.832 3.657 3.523 3.492 3.517 3.496 3.354 3.085 2.748 2.424 2.178 2.049 - 5.244 5.149 5.038 5.009 5.093 5.199 5.134 4.722 3.960 3.089 2.495 2.477 3.027 3.804 4.333 4.311 3.804 3.182 2.854 2.998 3.478 3.984 4.257 4.231 4.010 3.741 3.508 3.324 3.174 3.054 2.953 2.829 2.622 2.318 1.989 1.770 - 4.160 4.011 3.881 4.001 4.485 5.188 5.709 5.605 4.718 3.371 2.254 1.997 2.732 3.967 4.911 5.021 4.356 3.484 3.020 3.182 3.698 4.092 4.079 3.734 3.337 3.101 3.023 2.969 2.857 2.735 2.693 2.722 2.701 2.520 2.220 1.986 - 4.490 4.224 3.906 3.788 3.956 4.243 4.350 4.064 3.426 2.722 2.307 2.383 2.887 3.541 4.019 4.121 3.852 3.385 2.954 2.732 2.770 3.002 3.299 3.548 3.688 3.716 3.653 3.506 3.268 2.935 2.545 2.181 1.932 1.837 1.857 1.902 - 4.415 4.411 4.398 4.366 4.295 4.168 3.991 3.788 3.589 3.415 3.287 3.240 3.325 3.563 3.887 4.131 4.114 3.779 3.271 2.884 2.864 3.228 3.721 3.985 3.801 3.245 2.619 2.229 2.187 2.363 2.526 2.519 2.346 2.116 1.934 1.843 - 3.043 3.121 3.375 3.850 4.410 4.777 4.732 4.313 3.801 3.521 3.596 3.883 4.121 4.153 4.024 3.887 3.841 3.850 3.827 3.754 3.717 3.802 3.957 3.994 3.726 3.151 2.499 2.084 2.082 2.407 2.776 2.905 2.681 2.203 1.693 1.374 - 4.299 3.790 3.196 3.016 3.419 4.124 4.639 4.640 4.170 3.534 3.030 2.765 2.678 2.696 2.811 3.042 3.337 3.566 3.636 3.594 3.594 3.748 3.992 4.126 3.991 3.635 3.279 3.125 3.169 3.213 3.048 2.653 2.206 1.919 1.849 1.883 - 5.971 5.127 4.049 3.447 3.563 4.021 4.213 3.845 3.157 2.666 2.696 3.123 3.546 3.664 3.507 3.333 3.340 3.498 3.629 3.632 3.581 3.612 3.740 3.809 3.648 3.261 2.855 2.656 2.693 2.778 2.688 2.386 2.044 1.874 1.914 2.018 - 6.437 5.708 4.993 5.060 5.930 6.789 6.680 5.357 3.543 2.351 2.399 3.368 4.353 4.643 4.228 3.658 3.464 3.710 4.045 4.126 3.947 3.790 3.878 4.125 4.220 3.942 3.384 2.865 2.646 2.722 2.866 2.859 2.661 2.391 2.182 2.083 - 9.348 9.541 9.819 10.035 10.085 9.938 9.598 9.080 8.407 7.661 6.989 6.539 6.363 6.368 6.367 6.214 5.907 5.574 5.357 5.299 5.320 5.294 5.152 4.921 4.676 4.475 4.340 4.284 4.337 4.515 4.762 4.932 4.871 4.540 4.082 3.754 - 11.062 11.276 11.565 11.756 11.753 11.548 11.149 10.527 9.669 8.674 7.785 7.269 7.214 7.434 7.586 7.430 7.006 6.588 6.438 6.589 6.827 6.886 6.662 6.270 5.908 5.686 5.580 5.529 5.542 5.681 5.946 6.181 6.160 5.780 5.201 4.770 - 9.891 10.184 10.601 10.929 11.052 10.970 10.700 10.198 9.393 8.317 7.200 6.386 6.102 6.283 6.594 6.677 6.429 6.081 6.015 6.462 7.312 8.163 8.570 8.288 7.375 6.118 4.884 3.977 3.555 3.588 3.874 4.111 4.050 3.637 3.063 2.653 - 9.522 9.505 9.515 9.597 9.730 9.791 9.579 8.927 7.835 6.537 5.419 4.816 4.799 5.125 5.390 5.299 4.871 4.418 4.320 4.746 5.529 6.269 6.587 6.343 5.686 4.927 4.346 4.060 4.013 4.061 4.074 3.986 3.805 3.583 3.386 3.271 - 7.658 7.679 7.756 7.906 8.054 8.024 7.606 6.703 5.447 4.199 3.379 3.231 3.655 4.259 4.594 4.437 3.910 3.365 3.131 3.304 3.734 4.177 4.479 4.641 4.759 4.900 5.057 5.182 5.247 5.247 5.164 4.931 4.480 3.835 3.168 2.739 - 4.110 4.228 4.585 5.236 5.988 6.453 6.309 5.562 4.564 3.767 3.424 3.464 3.634 3.723 3.686 3.571 3.400 3.134 2.771 2.436 2.325 2.548 3.003 3.436 3.645 3.643 3.613 3.706 3.871 3.898 3.632 3.155 2.741 2.622 2.782 2.979 - 4.841 5.240 5.860 6.448 6.818 6.928 6.866 6.750 6.635 6.491 6.250 5.889 5.465 5.086 4.838 4.735 4.723 4.747 4.802 4.942 5.220 5.621 6.036 6.307 6.318 6.061 5.643 5.218 4.907 4.739 4.662 4.594 4.478 4.314 4.149 4.046 - 8.195 8.446 8.646 8.517 8.137 7.935 8.317 9.259 10.249 10.645 10.167 9.100 8.065 7.540 7.561 7.797 7.895 7.776 7.646 7.769 8.229 8.874 9.449 9.760 9.739 9.419 8.885 8.277 7.769 7.510 7.512 7.609 7.557 7.227 6.732 6.363 - 6.443 6.691 6.778 6.331 5.464 4.794 4.952 6.009 7.345 8.077 7.719 6.514 5.209 4.465 4.424 4.730 4.918 4.810 4.589 4.571 4.921 5.543 6.198 6.670 6.852 6.720 6.304 5.699 5.094 4.719 4.715 5.029 5.445 5.744 5.851 5.851 - 2.814 3.398 4.137 4.526 4.381 3.947 3.656 3.751 4.124 4.453 4.500 4.273 3.958 3.725 3.618 3.602 3.679 3.915 4.346 4.887 5.367 5.676 5.864 6.082 6.391 6.650 6.618 6.189 5.557 5.116 5.167 5.682 6.337 6.787 6.926 6.901 - 3.946 4.013 4.145 4.340 4.592 4.884 5.171 5.376 5.414 5.226 4.827 4.333 3.927 3.798 4.043 4.616 5.332 5.947 6.280 6.299 6.134 5.991 6.028 6.259 6.555 6.740 6.715 6.529 6.343 6.316 6.498 6.798 7.062 7.185 7.173 7.123 - 3.116 3.000 2.924 3.097 3.646 4.525 5.519 6.343 6.755 6.645 6.067 5.222 4.404 3.934 4.050 4.793 5.946 7.077 7.738 7.698 7.097 6.378 6.018 6.223 6.804 7.316 7.388 6.984 6.420 6.116 6.280 6.776 7.256 7.448 7.351 7.193 - 3.937 4.227 4.545 4.638 4.534 4.571 5.109 6.172 7.331 7.942 7.589 6.382 4.920 3.935 3.879 4.720 6.015 7.191 7.823 7.801 7.328 6.772 6.473 6.554 6.872 7.120 7.050 6.662 6.218 6.048 6.297 6.809 7.251 7.377 7.217 7.020 - 2.520 3.264 4.172 4.621 4.522 4.370 4.733 5.669 6.614 6.857 6.164 4.985 4.080 3.926 4.423 5.101 5.566 5.761 5.857 5.973 6.064 6.051 5.995 6.069 6.328 6.549 6.377 5.682 4.788 4.279 4.522 5.323 6.064 6.230 5.842 5.405 - 4.860 4.554 4.149 3.917 4.019 4.419 4.946 5.425 5.775 5.995 6.094 6.021 5.707 5.144 4.462 3.887 3.630 3.753 4.143 4.588 4.904 5.029 5.015 4.950 4.888 4.828 4.754 4.681 4.653 4.707 4.825 4.928 4.933 4.811 4.626 4.490 - 5.489 5.867 6.299 6.409 6.079 5.525 5.094 4.967 5.031 5.020 4.779 4.399 4.120 4.094 4.245 4.339 4.211 3.916 3.692 3.746 4.078 4.474 4.675 4.565 4.248 3.943 3.831 3.943 4.178 4.387 4.463 4.374 4.152 3.869 3.610 3.456 - 5.352 5.500 5.626 5.552 5.262 4.911 4.675 4.594 4.555 4.437 4.253 4.137 4.202 4.391 4.513 4.412 4.138 3.918 3.960 4.252 4.552 4.583 4.262 3.763 3.369 3.251 3.370 3.559 3.688 3.736 3.746 3.716 3.584 3.308 2.961 2.715 - 4.566 4.577 4.539 4.413 4.248 4.156 4.202 4.334 4.428 4.407 4.318 4.269 4.303 4.328 4.199 3.880 3.523 3.359 3.489 3.778 3.952 3.829 3.478 3.146 3.035 3.133 3.261 3.276 3.221 3.266 3.492 3.749 3.747 3.329 2.662 2.155 - 4.091 4.504 5.047 5.367 5.287 4.900 4.451 4.134 3.968 3.860 3.750 3.693 3.793 4.069 4.376 4.493 4.293 3.870 3.491 3.410 3.691 4.164 4.548 4.637 4.414 4.024 3.657 3.428 3.331 3.289 3.219 3.083 2.897 2.705 2.550 2.466 - 4.372 4.568 4.870 5.128 5.188 4.983 4.593 4.220 4.074 4.228 4.561 4.827 4.819 4.500 4.012 3.566 3.316 3.295 3.450 3.704 3.988 4.231 4.352 4.294 4.077 3.812 3.632 3.590 3.607 3.538 3.298 2.940 2.621 2.472 2.490 2.557 - 5.565 5.160 4.606 4.222 4.167 4.352 4.559 4.620 4.529 4.384 4.257 4.114 3.874 3.516 3.145 2.923 2.948 3.176 3.461 3.678 3.805 3.917 4.089 4.320 4.532 4.640 4.626 4.542 4.461 4.415 4.383 4.324 4.220 4.089 3.971 3.902 - 6.098 6.229 6.324 6.234 5.996 5.823 5.899 6.185 6.425 6.365 5.968 5.449 5.086 4.997 5.087 5.194 5.259 5.365 5.601 5.931 6.208 6.343 6.434 6.711 7.300 8.031 8.493 8.320 7.489 6.386 5.568 5.423 5.966 6.889 7.779 8.306 - 4.781 4.966 5.223 5.412 5.463 5.395 5.261 5.092 4.909 4.754 4.696 4.757 4.851 4.804 4.501 4.022 3.633 3.588 3.916 4.375 4.655 4.660 4.621 4.897 5.630 6.554 7.142 7.004 6.197 5.200 4.584 4.633 5.221 5.986 6.601 6.918 - 6.525 6.852 7.212 7.278 6.974 6.546 6.351 6.546 6.948 7.168 6.912 6.196 5.324 4.658 4.390 4.471 4.705 4.915 5.023 5.046 5.034 5.039 5.115 5.313 5.634 5.990 6.210 6.132 5.708 5.058 4.415 3.999 3.903 4.069 4.332 4.517 - 5.936 6.012 6.048 5.903 5.529 5.042 4.668 4.605 4.864 5.236 5.413 5.200 4.664 4.090 3.787 3.871 4.204 4.524 4.653 4.598 4.499 4.470 4.516 4.574 4.622 4.712 4.889 5.064 5.026 4.607 3.891 3.242 3.089 3.585 4.443 5.095 - 3.922 4.731 5.786 6.383 6.181 5.419 4.683 4.444 4.738 5.200 5.402 5.174 4.685 4.251 4.074 4.126 4.244 4.300 4.302 4.336 4.454 4.618 4.749 4.824 4.900 5.039 5.209 5.257 5.014 4.446 3.736 3.206 3.121 3.508 4.115 4.559 - 7.123 7.300 7.443 7.314 6.876 6.368 6.155 6.451 7.117 7.707 7.745 7.059 5.915 4.855 4.350 4.511 5.048 5.512 5.601 5.322 4.911 4.617 4.537 4.609 4.734 4.875 5.046 5.221 5.289 5.121 4.704 4.200 3.859 3.827 4.031 4.235 - 6.363 6.917 7.450 7.328 6.429 5.282 4.639 4.873 5.684 6.365 6.365 5.681 4.790 4.232 4.222 4.580 4.959 5.133 5.094 4.962 4.835 4.749 4.720 4.786 4.968 5.205 5.362 5.330 5.125 4.886 4.751 4.731 4.713 4.583 4.357 4.175 - 6.679 6.289 5.660 5.078 4.861 5.187 5.937 6.711 7.064 6.810 6.148 5.501 5.184 5.183 5.227 5.078 4.769 4.566 4.710 5.183 5.711 6.003 5.975 5.773 5.586 5.466 5.342 5.178 5.097 5.281 5.748 6.225 6.308 5.802 4.948 4.295 - 5.131 5.360 5.635 5.737 5.586 5.308 5.150 5.294 5.719 6.200 6.459 6.338 5.897 5.353 4.938 4.762 4.786 4.896 5.009 5.130 5.319 5.607 5.939 6.186 6.227 6.044 5.748 5.529 5.542 5.817 6.232 6.587 6.724 6.615 6.375 6.189 - 6.162 6.030 5.871 5.776 5.729 5.638 5.486 5.400 5.560 5.986 6.445 6.592 6.267 5.673 5.249 5.316 5.797 6.269 6.319 5.896 5.364 5.189 5.556 6.219 6.713 6.736 6.357 5.923 5.763 5.955 6.322 6.620 6.719 6.647 6.517 6.428 - 5.397 5.523 5.625 5.554 5.321 5.118 5.182 5.599 6.218 6.750 6.967 6.847 6.556 6.295 6.151 6.062 5.920 5.698 5.498 5.473 5.704 6.126 6.558 6.814 6.815 6.611 6.337 6.124 6.045 6.097 6.239 6.416 6.590 6.736 6.842 6.897 - 3.634 3.165 2.642 2.581 3.223 4.388 5.637 6.575 7.040 7.078 6.814 6.370 5.882 5.527 5.457 5.671 5.970 6.090 5.927 5.657 5.606 5.963 6.577 7.049 7.045 6.570 5.963 5.619 5.695 6.031 6.350 6.505 6.566 6.676 6.872 7.036 - 2.732 2.844 3.070 3.393 3.767 4.133 4.457 4.736 4.964 5.102 5.096 4.942 4.737 4.646 4.773 5.057 5.294 5.293 5.063 4.842 4.927 5.428 6.147 6.700 6.795 6.439 5.912 5.545 5.488 5.651 5.842 5.950 6.007 6.100 6.246 6.365 - 2.813 3.095 3.662 4.401 5.036 5.271 5.047 4.647 4.486 4.753 5.218 5.432 5.155 4.610 4.299 4.535 5.124 5.515 5.313 4.669 4.179 4.369 5.216 6.152 6.539 6.194 5.485 4.972 4.928 5.183 5.386 5.381 5.319 5.434 5.751 6.034 - 4.207 3.926 3.690 3.820 4.305 4.809 5.010 4.925 4.884 5.173 5.694 5.997 5.689 4.834 3.951 3.605 3.938 4.573 4.962 4.856 4.471 4.224 4.326 4.613 4.749 4.573 4.248 4.083 4.225 4.537 4.754 4.746 4.616 4.557 4.637 4.747 - 3.067 3.889 4.948 5.562 5.498 5.101 4.921 5.198 5.670 5.852 5.512 4.884 4.451 4.506 4.903 5.205 5.075 4.543 3.941 3.601 3.600 3.766 3.879 3.856 3.761 3.678 3.620 3.554 3.490 3.500 3.635 3.833 3.936 3.828 3.564 3.343 - 4.797 4.257 3.541 3.096 3.114 3.417 3.638 3.526 3.129 2.719 2.562 2.738 3.129 3.557 3.905 4.140 4.256 4.236 4.083 3.877 3.758 3.830 4.050 4.235 4.181 3.830 3.327 2.924 2.800 2.942 3.172 3.278 3.153 2.842 2.495 2.272 - 3.778 3.761 3.763 3.825 3.957 4.105 4.168 4.048 3.727 3.299 2.930 2.762 2.822 3.004 3.152 3.172 3.107 3.097 3.261 3.591 3.940 4.116 4.010 3.670 3.268 2.993 2.945 3.094 3.322 3.493 3.512 3.351 3.047 2.680 2.353 2.161 - 4.119 4.279 4.414 4.339 4.047 3.724 3.580 3.658 3.814 3.869 3.789 3.704 3.764 3.970 4.148 4.109 3.823 3.459 3.243 3.282 3.501 3.743 3.907 3.993 4.026 3.973 3.764 3.397 3.010 2.809 2.899 3.166 3.357 3.285 3.001 2.748 - 3.791 4.096 4.463 4.598 4.373 3.903 3.435 3.164 3.133 3.271 3.497 3.774 4.075 4.339 4.470 4.427 4.273 4.148 4.143 4.222 4.250 4.132 3.922 3.798 3.921 4.295 4.761 5.126 5.313 5.394 5.492 5.653 5.817 5.896 5.874 5.823 - 4.590 4.044 3.407 3.215 3.647 4.394 4.922 4.895 4.397 3.807 3.471 3.471 3.647 3.804 3.888 3.975 4.145 4.375 4.568 4.656 4.655 4.619 4.565 4.462 4.300 4.163 4.191 4.460 4.881 5.250 5.403 5.357 5.281 5.335 5.523 5.692 - 1.850 2.253 2.824 3.268 3.430 3.365 3.238 3.170 3.171 3.201 3.276 3.477 3.857 4.343 4.735 4.849 4.672 4.386 4.235 4.334 4.574 4.710 4.544 4.074 3.479 2.997 2.785 2.853 3.100 3.376 3.535 3.468 3.138 2.614 2.069 1.721 - 3.606 3.611 3.609 3.586 3.535 3.460 3.377 3.306 3.276 3.322 3.484 3.788 4.208 4.651 4.964 5.009 4.750 4.300 3.875 3.672 3.737 3.935 4.041 3.905 3.564 3.219 3.080 3.206 3.461 3.616 3.518 3.197 2.819 2.552 2.445 2.432 - 5.259 4.738 4.081 3.734 3.829 4.085 4.051 3.509 2.681 2.080 2.128 2.846 3.841 4.596 4.811 4.546 4.107 3.789 3.698 3.752 3.818 3.832 3.821 3.834 3.869 3.869 3.775 3.586 3.356 3.151 2.993 2.853 2.685 2.476 2.269 2.137 - 3.815 3.770 3.786 3.958 4.247 4.493 4.544 4.393 4.170 4.024 3.979 3.941 3.811 3.617 3.503 3.596 3.860 4.106 4.135 3.910 3.591 3.402 3.458 3.688 3.923 4.036 4.015 3.918 3.779 3.576 3.284 2.946 2.674 2.558 2.585 2.650 - 5.799 5.191 4.441 4.094 4.327 4.816 5.018 4.618 3.780 3.002 2.735 3.067 3.716 4.276 4.486 4.338 3.989 3.604 3.285 3.084 3.036 3.148 3.365 3.582 3.707 3.737 3.750 3.820 3.928 3.963 3.812 3.468 3.046 2.691 2.482 2.400 - 5.991 5.421 4.689 4.279 4.365 4.685 4.784 4.393 3.652 2.992 2.798 3.135 3.732 4.221 4.390 4.286 4.097 3.979 3.954 3.956 3.924 3.857 3.782 3.703 3.591 3.427 3.254 3.158 3.206 3.367 3.515 3.494 3.227 2.767 2.284 1.976 - 5.096 4.759 4.387 4.316 4.609 4.977 4.993 4.456 3.587 2.909 2.875 3.531 4.476 5.138 5.167 4.648 3.994 3.626 3.687 3.998 4.244 4.230 3.983 3.677 3.456 3.337 3.250 3.158 3.110 3.177 3.342 3.451 3.319 2.887 2.319 1.917 - 4.516 3.948 3.328 3.261 3.943 4.987 5.714 5.673 4.974 4.173 3.835 4.111 4.669 4.992 4.790 4.189 3.589 3.334 3.470 3.769 3.956 3.924 3.774 3.668 3.667 3.681 3.577 3.324 3.032 2.857 2.855 2.922 2.882 2.639 2.280 2.013 - 3.573 3.132 2.626 2.515 2.982 3.786 4.428 4.514 4.018 3.284 2.772 2.757 3.196 3.823 4.354 4.641 4.682 4.531 4.222 3.790 3.324 2.984 2.917 3.130 3.448 3.610 3.450 3.033 2.616 2.465 2.656 3.023 3.291 3.289 3.072 2.867 - 4.180 4.174 4.233 4.436 4.775 5.114 5.234 4.969 4.339 3.590 3.064 2.996 3.347 3.833 4.125 4.070 3.779 3.502 3.408 3.459 3.473 3.316 3.042 2.857 2.940 3.284 3.684 3.898 3.818 3.525 3.191 2.938 2.773 2.639 2.511 2.422 - 2.807 3.218 3.900 4.636 5.215 5.469 5.292 4.660 3.700 2.718 2.110 2.167 2.863 3.825 4.532 4.647 4.226 3.663 3.387 3.563 4.005 4.351 4.348 4.014 3.571 3.252 3.140 3.159 3.184 3.150 3.064 2.959 2.847 2.721 2.595 2.512 - 2.510 3.014 3.726 4.293 4.558 4.598 4.542 4.400 4.077 3.573 3.106 3.004 3.421 4.162 4.800 5.010 4.807 4.477 4.271 4.179 4.003 3.644 3.283 3.243 3.640 4.191 4.395 3.969 3.127 2.415 2.239 2.504 2.718 2.465 1.812 1.252 - 4.825 4.710 4.387 3.837 3.256 2.952 3.076 3.439 3.634 3.394 2.857 2.482 2.669 3.411 4.289 4.811 4.788 4.411 4.018 3.780 3.632 3.453 3.276 3.284 3.591 4.046 4.303 4.114 3.564 3.006 2.738 2.732 2.676 2.304 1.688 1.204 - 5.905 5.570 5.127 4.864 4.919 5.159 5.267 4.971 4.256 3.417 2.872 2.884 3.372 3.972 4.303 4.226 3.923 3.718 3.803 4.100 4.343 4.315 4.030 3.705 3.568 3.668 3.847 3.887 3.690 3.333 2.986 2.766 2.672 2.630 2.587 2.550 - 4.297 4.625 5.109 5.533 5.778 5.817 5.626 5.125 4.276 3.241 2.419 2.235 2.828 3.884 4.813 5.144 4.835 4.246 3.806 3.679 3.704 3.631 3.393 3.160 3.145 3.363 3.598 3.607 3.347 3.014 2.846 2.905 3.034 3.037 2.883 2.723 - 4.846 4.996 5.207 5.357 5.367 5.243 5.059 4.907 4.837 4.837 4.862 4.869 4.862 4.896 5.056 5.407 5.943 6.554 7.049 7.225 6.970 6.340 5.552 4.904 4.636 4.821 5.341 5.960 6.436 6.627 6.517 6.192 5.777 5.382 5.087 4.930 - 5.889 5.912 6.033 6.296 6.624 6.858 6.902 6.824 6.791 6.892 7.007 6.896 6.440 5.835 5.537 5.954 7.120 8.612 9.781 10.139 9.614 8.540 7.419 6.663 6.461 6.787 7.473 8.262 8.875 9.089 8.846 8.290 7.688 7.263 7.077 7.039 - 3.477 3.491 3.619 3.922 4.294 4.490 4.316 3.823 3.310 3.120 3.384 3.923 4.400 4.602 4.610 4.733 5.242 6.127 7.049 7.545 7.311 6.394 5.182 4.195 3.833 4.199 5.067 6.002 6.568 6.523 5.917 5.038 4.241 3.750 3.570 3.552 - 1.728 1.928 2.275 2.685 3.058 3.273 3.212 2.840 2.298 1.910 2.010 2.681 3.617 4.281 4.301 3.789 3.304 3.418 4.229 5.239 5.722 5.306 4.270 3.314 2.992 3.302 3.769 3.912 3.654 3.319 3.259 3.484 3.669 3.500 3.017 2.594 - 3.350 3.351 3.327 3.261 3.169 3.091 3.056 3.064 3.107 3.215 3.451 3.852 4.354 4.782 4.952 4.800 4.454 4.156 4.096 4.282 4.547 4.683 4.589 4.325 4.038 3.848 3.793 3.851 3.991 4.184 4.370 4.447 4.311 3.955 3.512 3.206 - 4.428 4.133 3.777 3.680 4.031 4.737 5.455 5.826 5.747 5.480 5.457 5.919 6.659 7.150 6.965 6.187 5.408 5.302 6.075 7.271 8.113 8.097 7.369 6.560 6.251 6.531 7.006 7.215 7.027 6.693 6.525 6.568 6.573 6.292 5.771 5.349 - 2.877 3.222 3.700 4.118 4.504 5.050 5.856 6.753 7.413 7.660 7.640 7.660 7.854 8.034 7.932 7.589 7.472 8.101 9.492 10.960 11.563 10.863 9.334 8.011 7.666 8.212 8.868 8.899 8.256 7.521 7.269 7.475 7.560 7.004 5.933 5.064 - 5.684 5.668 5.665 5.777 6.151 6.844 7.689 8.335 8.523 8.349 8.248 8.641 9.516 10.383 10.681 10.312 9.801 9.868 10.759 11.965 12.603 12.163 10.955 9.837 9.469 9.780 10.110 9.885 9.173 8.579 8.621 9.188 9.623 9.364 8.506 7.748 - 7.932 7.993 8.006 7.900 7.772 7.853 8.314 9.110 9.998 10.721 11.183 11.446 11.599 11.653 11.578 11.446 11.462 11.827 12.510 13.185 13.443 13.111 12.400 11.728 11.351 11.159 10.828 10.186 9.441 9.043 9.269 9.942 10.552 10.679 10.350 9.984 - 10.422 10.704 11.134 11.555 11.902 12.223 12.592 13.023 13.454 13.809 14.052 14.176 14.166 13.997 13.703 13.422 13.336 13.520 13.830 13.985 13.791 13.330 12.894 12.691 12.596 12.206 11.218 9.819 8.684 8.508 9.426 10.811 11.698 11.519 10.551 9.686 - 12.183 12.317 12.542 12.815 13.152 13.616 14.253 15.014 15.738 16.215 16.303 16.018 15.539 15.126 14.996 15.209 15.641 16.040 16.159 15.888 15.314 14.650 14.082 13.630 13.143 12.442 11.517 10.615 10.099 10.172 10.665 11.085 10.937 10.086 8.908 8.065 - 12.554 12.543 12.518 12.508 12.602 12.954 13.708 14.866 16.192 17.251 17.632 17.227 16.363 15.644 15.574 16.215 17.147 17.788 17.811 17.350 16.825 16.548 16.458 16.195 15.448 14.271 13.079 12.338 12.207 12.427 12.527 12.157 11.299 10.220 9.275 8.737 - 11.909 11.931 11.988 12.107 12.333 12.760 13.515 14.651 16.013 17.198 17.738 17.430 16.551 15.755 15.639 16.313 17.310 17.950 17.863 17.242 16.612 16.332 16.277 15.985 15.124 13.846 12.693 12.142 12.201 12.407 12.236 11.517 10.525 9.688 9.230 9.080 - 12.514 12.436 12.357 12.378 12.575 13.017 13.781 14.896 16.216 17.363 17.881 17.556 16.664 15.870 15.791 16.523 17.548 18.136 17.923 17.182 16.540 16.401 16.580 16.494 15.726 14.449 13.313 12.894 13.192 13.627 13.521 12.624 11.250 9.958 9.114 8.749 - 12.505 12.606 12.738 12.844 12.990 13.365 14.167 15.397 16.761 17.766 18.018 17.520 16.723 16.252 16.470 17.202 17.867 17.923 17.297 16.436 15.933 16.025 16.397 16.445 15.795 14.637 13.591 13.218 13.575 14.167 14.313 13.615 12.178 10.478 9.049 8.256 - 13.057 13.257 13.443 13.451 13.425 13.754 14.728 16.194 17.570 18.245 18.048 17.389 16.930 17.067 17.624 18.033 17.802 16.918 15.844 15.162 15.151 15.615 16.054 16.014 15.362 14.335 13.383 12.911 13.061 13.611 14.048 13.799 12.556 10.514 8.366 6.989 - 13.588 13.674 13.799 13.970 14.319 15.005 16.014 17.058 17.714 17.745 17.308 16.862 16.797 17.105 17.365 17.084 16.122 14.837 13.851 13.610 14.082 14.808 15.219 14.975 14.116 12.969 11.952 11.390 11.388 11.783 12.171 12.064 11.147 9.525 7.756 6.600 - 14.418 13.706 12.894 12.696 13.347 14.439 15.291 15.510 15.256 15.016 15.119 15.453 15.599 15.234 14.421 13.539 12.949 12.735 12.734 12.793 12.951 13.362 14.022 14.594 14.553 13.582 11.894 10.194 9.250 9.368 10.170 10.827 10.618 9.417 7.793 6.649 - 14.067 13.920 13.634 13.190 12.546 11.735 10.973 10.634 11.028 12.120 13.427 14.258 14.163 13.261 12.163 11.524 11.569 11.979 12.233 12.110 11.912 12.181 13.138 14.322 14.799 13.838 11.549 8.966 7.426 7.669 9.297 11.010 11.483 10.283 8.169 6.564 - 14.145 13.835 13.375 12.908 12.426 11.843 11.221 10.877 11.189 12.212 13.480 14.239 13.991 12.908 11.726 11.175 11.419 11.981 12.226 11.968 11.650 11.927 12.992 14.265 14.732 13.717 11.453 9.015 7.618 7.812 9.142 10.493 10.849 9.943 8.387 7.221 - 13.936 13.722 13.415 13.066 12.542 11.689 10.651 9.975 10.263 11.612 13.350 14.415 14.141 12.797 11.390 10.854 11.317 12.088 12.347 11.926 11.452 11.730 12.918 14.259 14.624 13.433 11.166 9.056 8.212 8.869 10.299 11.375 11.325 10.162 8.576 7.477 - 13.851 13.674 13.436 13.157 12.635 11.650 10.351 9.392 9.529 10.951 12.939 14.265 14.094 12.641 10.999 10.256 10.649 11.491 11.895 11.626 11.288 11.683 12.940 14.248 14.441 12.977 10.458 8.248 7.512 8.418 10.089 11.267 11.132 9.750 7.925 6.675 - 13.791 13.674 13.465 13.121 12.498 11.539 10.498 9.937 10.358 11.716 13.277 14.055 13.532 12.069 10.637 10.052 10.379 11.004 11.283 11.162 11.177 11.845 13.028 13.887 13.526 11.779 9.452 7.788 7.592 8.684 10.082 10.706 10.052 8.402 6.561 5.380 - 14.151 13.432 12.762 12.937 13.993 15.139 15.458 14.736 13.646 13.125 13.547 14.429 14.906 14.494 13.438 12.397 11.833 11.713 11.736 11.759 11.931 12.405 12.972 13.084 12.321 10.856 9.458 8.933 9.497 10.599 11.363 11.235 10.301 9.083 8.095 7.583 - 13.551 13.131 12.765 13.011 14.053 15.517 16.715 17.114 16.686 15.894 15.351 15.420 16.014 16.695 16.968 16.561 15.556 14.332 13.370 13.026 13.348 14.030 14.554 14.460 13.624 12.355 11.236 10.784 11.129 11.927 12.550 12.444 11.431 9.798 8.148 7.122 - 12.237 12.494 12.896 13.379 14.046 15.049 16.329 17.465 17.886 17.323 16.124 15.120 15.055 16.013 17.319 18.008 17.525 16.112 14.612 13.847 14.068 14.855 15.470 15.377 14.536 13.350 12.363 11.951 12.149 12.664 13.009 12.722 11.598 9.841 8.033 6.885 - 12.956 12.875 12.854 13.110 13.825 15.003 16.379 17.469 17.784 17.130 15.810 14.538 14.078 14.764 16.249 17.665 18.153 17.420 15.931 14.594 14.141 14.633 15.458 15.800 15.222 13.945 12.638 11.905 11.879 12.203 12.347 11.999 11.216 10.301 9.561 9.168 - 13.638 13.092 12.564 12.718 13.778 15.344 16.685 17.233 16.881 15.931 14.817 13.902 13.450 13.650 14.540 15.856 17.006 17.332 16.562 15.088 13.779 13.385 13.978 14.865 15.079 14.093 12.211 10.352 9.418 9.708 10.789 11.849 12.237 11.827 11.008 10.385 - 13.051 12.787 12.589 12.806 13.477 14.272 14.747 14.673 14.137 13.377 12.547 11.668 10.792 10.178 10.213 11.107 12.616 14.084 14.843 14.669 13.920 13.240 13.065 13.327 13.573 13.367 12.638 11.708 11.011 10.776 10.903 11.091 11.078 10.808 10.427 10.158 - 11.708 10.885 9.842 9.336 9.727 10.740 11.700 12.005 11.495 10.460 9.368 8.580 8.233 8.326 8.808 9.580 10.431 11.041 11.131 10.672 9.956 9.444 9.461 9.979 10.645 11.049 11.006 10.661 10.327 10.222 10.291 10.264 9.878 9.106 8.216 7.620 - 8.322 8.447 8.546 8.515 8.478 8.735 9.484 10.541 11.353 11.348 10.383 8.930 7.814 7.664 8.482 9.647 10.359 10.185 9.330 8.434 8.106 8.508 9.300 9.919 9.962 9.400 8.514 7.652 7.025 6.652 6.458 6.383 6.426 6.582 6.791 6.941 - 7.375 7.489 7.435 7.045 6.627 6.833 8.077 10.014 11.621 11.901 10.665 8.735 7.372 7.367 8.529 9.916 10.592 10.272 9.397 8.684 8.586 9.068 9.778 10.354 10.612 10.523 10.129 9.511 8.829 8.293 8.066 8.140 8.347 8.489 8.498 8.450 - 7.246 6.998 6.636 6.403 6.567 7.286 8.474 9.752 10.586 10.556 9.633 8.251 7.112 6.781 7.348 8.361 9.114 9.103 8.349 7.366 6.807 7.030 7.873 8.792 9.230 8.957 8.164 7.284 6.704 6.566 6.758 7.061 7.297 7.407 7.423 7.409 - 7.107 7.554 8.180 8.673 8.927 9.094 9.406 9.933 10.503 10.844 10.815 10.520 10.207 10.076 10.148 10.314 10.467 10.593 10.743 10.948 11.188 11.455 11.816 12.397 13.256 14.263 15.109 15.468 15.194 14.409 13.409 12.490 11.811 11.382 11.141 11.033 - 6.122 6.758 7.710 8.567 9.095 9.341 9.516 9.774 10.090 10.318 10.347 10.202 10.008 9.873 9.811 9.775 9.753 9.820 10.089 10.611 11.325 12.111 12.883 13.636 14.397 15.132 15.702 15.927 15.711 15.120 14.359 13.666 13.195 12.969 12.911 12.917 - 7.312 7.308 7.321 7.363 7.429 7.510 7.622 7.787 7.990 8.135 8.101 7.866 7.591 7.568 8.020 8.911 9.945 10.778 11.294 11.692 12.309 13.304 14.488 15.444 15.849 15.722 15.386 15.195 15.265 15.442 15.495 15.346 15.123 15.005 15.044 15.128 - 7.998 7.997 8.250 8.958 9.970 10.822 11.102 10.804 10.343 10.186 10.460 10.885 11.093 11.008 10.938 11.280 12.132 13.186 13.985 14.308 14.323 14.377 14.658 15.041 15.250 15.150 14.887 14.735 14.840 15.100 15.285 15.265 15.106 14.973 14.949 14.982 - 11.341 11.387 11.471 11.522 11.390 10.941 10.198 9.399 8.859 8.750 8.982 9.307 9.563 9.828 10.339 11.239 12.390 13.445 14.102 14.326 14.330 14.342 14.402 14.373 14.144 13.810 13.627 13.775 14.163 14.472 14.414 13.975 13.412 13.024 12.908 12.934 - 14.284 14.704 15.002 14.547 13.157 11.275 9.656 8.847 8.875 9.351 9.852 10.227 10.612 11.202 12.022 12.895 13.579 13.932 13.943 13.678 13.216 12.654 12.137 11.826 11.801 11.976 12.147 12.138 11.946 11.737 11.698 11.884 12.182 12.427 12.539 12.559 - 14.453 14.415 14.195 13.716 13.135 12.744 12.662 12.657 12.324 11.504 10.543 10.091 10.577 11.810 13.084 13.726 13.594 13.113 12.821 12.882 12.992 12.742 12.056 11.278 10.844 10.875 11.097 11.145 10.928 10.698 10.764 11.151 11.563 11.678 11.468 11.215 - 17.038 16.669 15.951 14.993 14.028 13.313 12.944 12.764 12.482 11.932 11.263 10.861 11.047 11.791 12.682 13.211 13.125 12.592 12.036 11.799 11.902 12.085 12.044 11.674 11.110 10.594 10.283 10.176 10.168 10.161 10.122 10.073 10.034 10.010 9.992 9.981 - 16.986 16.570 15.847 14.997 14.210 13.587 13.086 12.570 11.938 11.260 10.764 10.686 11.072 11.715 12.280 12.525 12.432 12.160 11.869 11.607 11.338 11.063 10.883 10.901 11.079 11.201 11.024 10.508 9.891 9.513 9.525 9.732 9.748 9.336 8.644 8.110 - 17.500 16.798 15.754 14.824 14.249 13.943 13.659 13.234 12.710 12.245 11.937 11.745 11.577 11.432 11.419 11.630 11.986 12.229 12.102 11.568 10.866 10.357 10.257 10.497 10.797 10.896 10.725 10.409 10.120 9.928 9.765 9.513 9.119 8.639 8.204 7.946 - 15.508 15.596 15.525 15.044 14.146 13.096 12.225 11.681 11.379 11.164 10.992 10.949 11.093 11.311 11.364 11.096 10.602 10.161 9.998 10.081 10.162 10.031 9.712 9.433 9.388 9.533 9.632 9.496 9.185 8.937 8.909 8.973 8.814 8.234 7.408 6.797 - 14.223 13.870 13.293 12.627 11.898 11.042 10.069 9.189 8.776 9.112 10.128 11.342 12.108 12.021 11.184 10.140 9.508 9.573 10.133 10.682 10.792 10.387 9.745 9.254 9.129 9.292 9.489 9.505 9.298 8.985 8.702 8.491 8.298 8.066 7.815 7.645 - 14.205 13.488 12.479 11.659 11.170 10.749 10.073 9.169 8.519 8.709 9.907 11.624 12.968 13.242 12.407 11.083 10.088 9.897 10.388 11.033 11.319 11.070 10.478 9.884 9.518 9.392 9.368 9.299 9.123 8.868 8.592 8.337 8.116 7.931 7.793 7.717 - 10.845 10.535 10.187 10.038 9.993 9.677 8.822 7.642 6.820 7.054 8.516 10.660 12.550 13.434 13.142 12.062 10.789 9.774 9.193 9.020 9.144 9.409 9.617 9.591 9.292 8.882 8.616 8.625 8.778 8.777 8.417 7.784 7.193 6.925 6.990 7.145 - 10.398 10.398 10.510 10.791 11.074 11.011 10.322 9.080 7.767 7.022 7.234 8.271 9.557 10.430 10.536 9.988 9.200 8.572 8.256 8.156 8.106 8.045 8.036 8.155 8.357 8.475 8.335 7.908 7.343 6.861 6.595 6.509 6.452 6.306 6.083 5.913 - 7.112 7.319 7.665 8.038 8.310 8.338 7.995 7.232 6.190 5.231 4.823 5.270 6.470 7.889 8.832 8.856 8.039 6.902 6.056 5.812 6.048 6.379 6.480 6.285 5.962 5.717 5.631 5.639 5.638 5.587 5.520 5.487 5.493 5.508 5.508 5.498 - 6.143 6.405 6.729 6.865 6.688 6.266 5.775 5.357 5.052 4.850 4.792 4.997 5.549 6.350 7.082 7.368 7.038 6.301 5.646 5.521 5.999 6.710 7.087 6.778 5.893 4.926 4.387 4.451 4.874 5.228 5.249 5.021 4.850 4.969 5.326 5.635 - 4.691 4.899 5.267 5.657 5.851 5.665 5.113 4.447 4.010 3.993 4.316 4.735 5.081 5.402 5.859 6.495 7.112 7.410 7.268 6.894 6.670 6.824 7.227 7.511 7.411 7.002 6.604 6.452 6.449 6.259 5.658 4.794 4.101 3.923 4.204 4.535 - 5.750 5.230 4.770 4.964 5.832 6.766 7.052 6.489 5.527 4.834 4.734 5.038 5.361 5.566 5.869 6.529 7.483 8.335 8.709 8.596 8.340 8.266 8.355 8.311 7.946 7.455 7.250 7.497 7.826 7.596 6.509 5.000 3.968 4.025 4.940 5.803 - 5.873 5.138 4.357 4.319 5.241 6.600 7.572 7.681 7.104 6.419 6.099 6.206 6.495 6.747 6.964 7.281 7.748 8.244 8.613 8.832 9.014 9.240 9.429 9.414 9.170 8.912 8.918 9.198 9.373 8.947 7.786 6.356 5.438 5.506 6.311 7.058 - 6.374 5.866 5.293 5.166 5.649 6.474 7.225 7.695 7.993 8.318 8.682 8.875 8.712 8.302 8.046 8.331 9.195 10.275 11.068 11.294 11.024 10.533 10.048 9.652 9.368 9.265 9.404 9.679 9.762 9.308 8.285 7.113 6.423 6.564 7.296 7.947 - 8.907 8.636 8.358 8.383 8.824 9.514 10.148 10.497 10.536 10.382 10.156 9.900 9.635 9.460 9.561 10.090 10.996 11.982 12.647 12.722 12.226 11.433 10.675 10.156 9.885 9.765 9.713 9.719 9.796 9.907 9.930 9.726 9.236 8.547 7.872 7.455 - 7.268 7.340 7.457 7.593 7.754 7.993 8.393 9.020 9.862 10.784 11.553 11.931 11.813 11.333 10.844 10.747 11.252 12.216 13.189 13.669 13.414 12.592 11.655 11.038 10.884 11.011 11.123 11.067 10.931 10.903 11.036 11.141 10.936 10.307 9.475 8.883 - 8.361 8.050 7.649 7.451 7.640 8.211 9.033 9.981 11.006 12.076 13.049 13.641 13.583 12.872 11.922 11.411 11.859 13.225 14.843 15.802 15.545 14.246 12.678 11.655 11.482 11.811 12.004 11.685 11.009 10.475 10.452 10.860 11.265 11.290 10.947 10.600 - 8.685 8.312 7.967 8.110 8.870 9.929 10.784 11.165 11.254 11.498 12.186 13.136 13.802 13.738 13.027 12.315 12.354 13.403 14.971 16.135 16.201 15.202 13.834 12.899 12.694 12.862 12.767 12.087 11.085 10.377 10.387 11.000 11.683 11.957 11.776 11.502 - 8.392 8.822 9.358 9.630 9.542 9.348 9.447 10.068 11.108 12.233 13.104 13.564 13.649 13.507 13.323 13.288 13.558 14.167 14.944 15.554 15.686 15.282 14.577 13.922 13.493 13.174 12.715 12.032 11.350 11.040 11.276 11.830 12.220 12.112 11.605 11.149 - 9.564 9.699 9.871 9.956 9.892 9.744 9.706 10.009 10.783 11.947 13.189 14.100 14.394 14.105 13.609 13.405 13.791 14.631 15.418 15.622 15.072 14.099 13.288 13.034 13.236 13.405 13.090 12.290 11.484 11.242 11.729 12.529 12.960 12.627 11.760 11.038 - 11.267 11.479 11.821 12.176 12.459 12.674 12.916 13.307 13.888 14.548 15.044 15.146 14.808 14.256 13.886 14.023 14.677 15.499 15.983 15.800 15.027 14.090 13.445 13.243 13.237 13.011 12.370 11.554 11.085 11.342 12.198 13.035 13.160 12.336 11.002 10.006 - 12.025 12.225 12.520 12.811 13.120 13.579 14.300 15.243 16.202 16.913 17.212 17.103 16.726 16.281 15.966 15.935 16.243 16.772 17.235 17.293 16.772 15.807 14.763 13.974 13.489 13.076 12.486 11.758 11.255 11.355 12.045 12.811 12.966 12.205 10.909 9.920 - 12.034 12.338 12.700 12.892 12.972 13.271 14.107 15.451 16.868 17.795 17.934 17.443 16.796 16.446 16.567 17.040 17.617 18.089 18.335 18.283 17.894 17.191 16.292 15.365 14.535 13.832 13.253 12.861 12.789 13.096 13.583 13.797 13.297 12.019 10.441 9.353 - 11.773 12.111 12.595 13.005 13.301 13.674 14.405 15.594 16.990 18.074 18.377 17.821 16.825 16.063 16.031 16.726 17.679 18.300 18.291 17.789 17.172 16.705 16.331 15.778 14.872 13.760 12.856 12.534 12.833 13.400 13.726 13.464 12.616 11.479 10.452 9.858 - 12.288 12.679 13.191 13.543 13.724 14.030 14.804 16.080 17.450 18.295 18.214 17.342 16.285 15.726 15.982 16.830 17.710 18.137 17.995 17.538 17.113 16.862 16.620 16.088 15.118 13.903 12.907 12.586 13.078 14.072 14.935 15.044 14.124 12.420 10.598 9.432 - 12.271 12.851 13.550 13.917 13.988 14.276 15.256 16.825 18.251 18.727 18.042 16.795 15.946 16.088 17.027 18.015 18.368 17.962 17.220 16.677 16.542 16.591 16.411 15.742 14.639 13.417 12.472 12.130 12.518 13.479 14.541 15.060 14.549 13.034 11.156 9.869 - 12.311 13.077 13.987 14.452 14.532 14.885 16.040 17.726 18.951 18.840 17.469 15.909 15.381 16.261 17.795 18.760 18.465 17.226 15.981 15.462 15.676 16.061 16.040 15.423 14.378 13.164 12.000 11.148 10.970 11.712 13.114 14.314 14.314 12.760 10.384 8.625 - 12.862 13.434 14.221 14.868 15.370 16.027 17.044 18.184 18.867 18.670 17.766 16.862 16.638 17.171 17.860 17.920 17.038 15.609 14.415 14.018 14.401 15.067 15.437 15.170 14.251 12.897 11.497 10.566 10.602 11.761 13.571 15.007 15.063 13.486 11.095 9.342 - 13.335 13.596 14.194 15.172 16.403 17.555 18.225 18.182 17.564 16.842 16.541 16.871 17.551 17.978 17.641 16.482 14.934 13.614 12.927 12.881 13.205 13.610 13.930 14.055 13.823 13.075 11.889 10.749 10.371 11.195 12.918 14.521 14.892 13.653 11.532 9.925 - 13.078 13.531 14.457 15.758 17.106 18.010 18.080 17.328 16.245 15.525 15.602 16.317 17.004 16.962 15.969 14.441 13.100 12.421 12.325 12.354 12.165 11.863 11.858 12.365 13.049 13.220 12.468 11.188 10.434 11.101 13.069 15.095 15.643 14.090 11.328 9.208 - 12.630 13.484 14.941 16.522 17.646 17.862 17.130 15.904 14.928 14.782 15.481 16.434 16.821 16.160 14.634 12.940 11.770 11.337 11.308 11.200 10.854 10.578 10.817 11.630 12.494 12.660 11.823 10.518 9.842 10.617 12.657 14.752 15.488 14.313 12.020 10.233 - 12.463 13.471 15.039 16.494 17.267 17.152 16.378 15.459 14.908 14.956 15.436 15.887 15.835 15.086 13.844 12.562 11.630 11.122 10.813 10.449 10.044 9.902 10.323 11.209 11.977 11.929 10.870 9.426 8.728 9.587 11.782 14.065 14.990 13.976 11.797 10.067 - 12.446 13.588 15.213 16.445 16.740 16.161 15.231 14.527 14.338 14.586 14.975 15.197 15.059 14.508 13.618 12.559 11.533 10.692 10.078 9.666 9.468 9.578 10.054 10.728 11.146 10.820 9.666 8.267 7.621 8.449 10.553 12.792 13.809 13.025 11.120 9.573 - 12.054 13.431 15.255 16.371 16.216 15.116 13.893 13.198 13.139 13.433 13.799 14.164 14.533 14.748 14.480 13.506 11.989 10.460 9.474 9.244 9.568 10.056 10.411 10.473 10.108 9.167 7.683 6.125 5.329 5.985 8.015 10.419 11.868 11.662 10.286 9.050 - 11.819 13.269 15.151 16.207 15.849 14.489 13.082 12.327 12.227 12.309 12.206 12.031 12.201 12.924 13.866 14.335 13.837 12.515 11.094 10.364 10.625 11.496 12.208 12.102 10.998 9.234 7.437 6.215 5.922 6.558 7.793 9.110 10.041 10.383 10.281 10.087 - 12.017 13.266 14.882 15.769 15.413 14.192 12.968 12.366 12.315 12.240 11.665 10.706 10.015 10.227 11.400 12.907 13.891 13.900 13.201 12.533 12.506 13.125 13.780 13.705 12.534 10.569 8.588 7.372 7.266 8.056 9.163 9.999 10.254 9.978 9.477 9.111 - 11.946 12.925 14.191 14.882 14.582 13.551 12.436 11.727 11.446 11.266 10.900 10.383 10.015 10.045 10.436 10.915 11.249 11.477 11.881 12.708 13.890 15.007 15.510 15.052 13.692 11.861 10.142 9.024 8.725 9.146 9.936 10.656 10.968 10.800 10.364 10.012 - 11.767 13.019 14.487 14.953 13.981 12.192 10.665 10.042 10.117 10.201 9.840 9.201 8.821 9.031 9.629 10.101 10.135 9.918 9.955 10.614 11.832 13.195 14.261 14.799 14.774 14.225 13.242 12.078 11.178 10.972 11.526 12.382 12.831 12.459 11.511 10.721 - 11.936 12.924 14.065 14.377 13.520 12.017 10.756 10.250 10.290 10.255 9.732 8.880 8.232 8.173 8.596 9.039 9.134 8.950 8.917 9.437 10.536 11.843 12.861 13.280 13.100 12.544 11.912 11.482 11.457 11.892 12.605 13.206 13.293 12.743 11.855 11.191 - 12.596 13.559 14.578 14.626 13.429 11.660 10.322 9.894 10.020 9.946 9.284 8.347 7.809 8.036 8.740 9.264 9.212 8.811 8.698 9.343 10.636 11.982 12.772 12.804 12.326 11.769 11.448 11.480 11.857 12.514 13.289 13.887 13.991 13.500 12.687 12.073 - 13.158 13.884 14.646 14.654 13.687 12.248 11.110 10.666 10.671 10.554 9.984 9.155 8.561 8.521 8.889 9.236 9.269 9.117 9.202 9.855 11.015 12.267 13.147 13.440 13.257 12.904 12.704 12.890 13.550 14.576 15.617 16.161 15.800 14.549 12.955 11.851 - 13.658 14.059 14.437 14.318 13.594 12.591 11.751 11.239 10.837 10.215 9.311 8.447 8.070 8.362 9.083 9.769 10.127 10.246 10.484 11.134 12.171 13.277 14.078 14.374 14.226 13.878 13.642 13.799 14.503 15.659 16.864 17.517 17.149 15.778 14.023 12.807 - 13.660 14.156 14.644 14.553 13.723 12.516 11.483 10.899 10.596 10.212 9.585 8.924 8.596 8.754 9.171 9.449 9.398 9.246 9.469 10.396 11.910 13.495 14.567 14.832 14.427 13.802 13.472 13.786 14.797 16.225 17.527 18.096 17.562 16.060 14.255 13.037 - 14.084 14.470 14.834 14.693 13.885 12.679 11.552 10.817 10.439 10.160 9.788 9.372 9.121 9.163 9.389 9.547 9.500 9.396 9.607 10.439 11.856 13.442 14.618 14.992 14.592 13.858 13.408 13.711 14.843 16.423 17.766 18.200 17.413 15.656 13.679 12.386 - 14.149 14.471 14.771 14.640 13.927 12.855 11.841 11.180 10.856 10.616 10.227 9.682 9.187 8.969 9.075 9.348 9.592 9.773 10.071 10.734 11.834 13.142 14.213 14.661 14.417 13.817 13.427 13.726 14.809 16.302 17.515 17.799 16.887 15.073 13.100 11.829 - 13.986 14.368 14.764 14.736 14.120 13.135 12.181 11.514 11.075 10.611 9.960 9.238 8.754 8.738 9.128 9.609 9.880 9.928 10.059 10.651 11.820 13.258 14.400 14.788 14.390 13.646 13.199 13.504 14.551 15.868 16.778 16.760 15.704 13.969 12.216 11.127 - 13.719 14.187 14.753 14.951 14.534 13.613 12.522 11.552 10.791 10.166 9.621 9.228 9.130 9.371 9.788 10.101 10.133 9.991 10.033 10.620 11.827 13.331 14.567 15.063 14.736 13.961 13.365 13.474 14.404 15.770 16.864 17.018 15.960 13.995 11.893 10.549 - 13.208 13.894 14.764 15.183 14.806 13.759 12.459 11.282 10.378 9.721 9.283 9.110 9.243 9.581 9.892 9.977 9.862 9.811 10.141 10.984 12.190 13.418 14.339 14.763 14.676 14.210 13.636 13.324 13.598 14.500 15.623 16.227 15.681 13.947 11.757 10.243 - 12.931 13.730 14.781 15.365 15.059 13.941 12.447 11.038 9.960 9.247 8.856 8.768 8.953 9.295 9.606 9.751 9.779 9.916 10.401 11.305 12.480 13.656 14.589 15.140 15.260 14.972 14.408 13.846 13.631 13.958 14.659 15.216 15.085 14.113 12.737 11.743 - 12.523 13.565 14.885 15.529 15.028 13.629 11.985 10.649 9.817 9.454 9.513 9.968 10.646 11.136 11.012 10.234 9.320 9.046 9.849 11.460 13.101 14.104 14.395 14.413 14.599 14.959 15.133 14.875 14.412 14.276 14.745 15.460 15.653 14.848 13.384 12.233 - 12.311 13.437 14.807 15.381 14.768 13.425 12.148 11.381 10.980 10.567 10.045 9.706 9.868 10.440 10.936 10.934 10.538 10.343 10.905 12.207 13.641 14.525 14.655 14.392 14.226 14.295 14.332 14.071 13.643 13.512 14.002 14.886 15.503 15.345 14.553 13.834 - 11.530 12.531 13.790 14.435 14.119 13.185 12.239 11.601 11.158 10.667 10.122 9.775 9.808 10.072 10.222 10.133 10.135 10.743 12.094 13.668 14.634 14.578 13.902 13.491 13.890 14.780 15.253 14.685 13.372 12.320 12.366 13.434 14.630 15.074 14.671 14.110 - 11.024 12.296 13.912 14.761 14.393 13.239 12.100 11.441 11.146 10.845 10.413 10.080 10.098 10.389 10.589 10.479 10.321 10.671 11.813 13.357 14.465 14.553 13.814 13.056 12.968 13.509 13.999 13.819 13.048 12.421 12.633 13.682 14.872 15.459 15.316 14.963 - 10.810 12.063 13.743 14.791 14.625 13.451 11.986 10.903 10.453 10.475 10.667 10.813 10.821 10.664 10.373 10.116 10.190 10.842 12.009 13.251 14.005 14.000 13.481 13.007 12.989 13.372 13.747 13.787 13.583 13.566 14.070 14.983 15.811 16.114 15.898 15.583 - 11.597 12.744 14.213 15.001 14.670 13.576 12.455 11.807 11.603 11.513 11.307 11.035 10.850 10.761 10.631 10.428 10.407 10.955 12.170 13.624 14.586 14.597 13.871 13.130 12.999 13.487 14.035 14.079 13.596 13.122 13.252 14.095 15.202 15.995 16.262 16.237 - 11.492 12.847 14.576 15.497 15.104 13.828 12.536 11.786 11.520 11.359 11.099 10.887 10.946 11.223 11.404 11.285 11.090 11.340 12.330 13.738 14.792 14.898 14.162 13.296 12.990 13.337 13.839 13.969 13.723 13.597 14.045 14.961 15.719 15.766 15.164 14.555 - 12.614 13.667 14.940 15.456 14.851 13.567 12.372 11.702 11.428 11.181 10.822 10.560 10.638 10.975 11.193 11.041 10.742 10.884 11.867 13.462 14.902 15.492 15.173 14.524 14.212 14.415 14.759 14.785 14.453 14.180 14.387 15.028 15.599 15.617 15.112 14.605 - 12.573 13.797 15.306 15.977 15.357 13.920 12.569 11.878 11.745 11.686 11.389 10.984 10.806 10.975 11.251 11.320 11.197 11.290 12.027 13.385 14.799 15.562 15.378 14.578 13.826 13.600 13.894 14.364 14.692 14.819 14.860 14.870 14.753 14.404 13.905 13.529 - 13.303 14.313 15.520 15.959 15.261 13.882 12.643 12.043 11.933 11.796 11.293 10.570 10.057 10.015 10.295 10.530 10.549 10.603 11.149 12.407 14.083 15.520 16.149 15.870 15.064 14.293 13.945 14.090 14.555 15.093 15.477 15.530 15.160 14.435 13.618 13.076 - 13.724 14.550 15.500 15.742 14.968 13.582 12.319 11.643 11.465 11.357 11.007 10.480 10.075 9.992 10.146 10.313 10.416 10.650 11.309 12.488 13.945 15.239 16.015 16.179 15.870 15.317 14.758 14.433 14.552 15.147 15.906 16.219 15.527 13.785 11.655 10.193 - 13.871 14.530 15.270 15.401 14.652 13.347 12.096 11.315 10.975 10.757 10.415 9.995 9.736 9.800 10.109 10.444 10.687 10.958 11.513 12.502 13.804 15.078 15.952 16.213 15.873 15.141 14.355 13.902 14.073 14.867 15.872 16.395 15.861 14.247 12.227 10.835 - 14.107 14.506 14.919 14.882 14.223 13.175 12.164 11.479 11.101 10.808 10.431 10.013 9.747 9.776 10.060 10.433 10.776 11.144 11.721 12.645 13.852 15.057 15.880 16.030 15.452 14.376 13.264 12.646 12.877 13.903 15.201 15.991 15.676 14.252 12.393 11.099 - 14.265 14.493 14.678 14.505 13.870 12.960 12.092 11.470 11.077 10.750 10.377 9.996 9.751 9.753 9.997 10.400 10.900 11.520 12.316 13.286 14.301 15.137 15.555 15.393 14.639 13.485 12.329 11.680 11.926 13.059 14.551 15.554 15.376 13.966 12.030 10.660 - 14.258 14.315 14.316 14.112 13.615 12.871 12.040 11.305 10.770 10.410 10.128 9.861 9.659 9.665 10.001 10.660 11.486 12.284 12.946 13.509 14.055 14.562 14.818 14.535 13.584 12.197 10.952 10.491 11.142 12.667 14.332 15.284 15.015 13.657 11.927 10.747 - 14.177 14.073 13.934 13.774 13.465 12.831 11.853 10.782 9.988 9.682 9.742 9.854 9.833 9.811 10.107 10.872 11.869 12.631 12.865 12.731 12.690 13.038 13.550 13.599 12.702 11.035 9.444 8.907 9.847 11.809 13.755 14.706 14.293 12.867 11.219 10.155 - 13.993 13.825 13.642 13.523 13.294 12.662 11.546 10.280 9.412 9.256 9.617 9.992 10.065 10.014 10.302 11.138 12.151 12.653 12.286 11.444 10.996 11.508 12.650 13.375 12.775 10.904 8.849 7.956 8.844 10.978 13.100 14.098 13.647 12.222 10.662 9.691 - 13.722 13.709 13.670 13.525 13.111 12.318 11.242 10.206 9.555 9.391 9.510 9.630 9.703 9.977 10.715 11.797 12.655 12.678 11.783 10.615 10.116 10.744 12.021 12.831 12.291 10.500 8.539 7.703 8.580 10.662 12.746 13.744 13.302 11.854 10.232 9.207 - 13.574 13.668 13.732 13.579 13.080 12.252 11.285 10.433 9.861 9.553 9.390 9.322 9.471 10.035 11.029 12.113 12.716 12.443 11.440 10.385 10.033 10.629 11.658 12.190 11.580 10.001 8.387 7.810 8.747 10.767 12.823 13.902 13.586 12.196 10.533 9.441 - 13.493 13.708 13.927 13.864 13.343 12.429 11.395 10.553 10.059 9.837 9.708 9.604 9.675 10.165 11.130 12.253 12.964 12.841 11.982 11.016 10.680 11.240 12.229 12.735 12.079 10.375 8.550 7.762 8.636 10.833 13.233 14.596 14.262 12.485 10.253 8.748 - 13.590 13.834 14.105 14.102 13.638 12.764 11.752 10.922 10.436 10.209 10.033 9.803 9.662 9.910 10.719 11.886 12.872 13.153 12.627 11.748 11.222 11.463 12.231 12.757 12.315 10.819 8.995 7.966 8.511 10.513 12.962 14.533 14.366 12.567 10.155 8.483 - 13.704 13.938 14.220 14.276 13.897 13.088 12.087 11.235 10.744 10.560 10.427 10.147 9.808 9.768 10.352 11.514 12.763 13.464 13.327 12.651 12.118 12.237 12.899 13.412 13.036 11.605 9.762 8.587 8.868 10.534 12.651 13.968 13.676 11.882 9.550 7.947 - 13.560 13.917 14.338 14.433 13.971 13.038 11.979 11.170 10.779 10.677 10.575 10.277 9.867 9.672 10.019 10.961 12.188 13.198 13.631 13.502 13.157 12.982 13.070 13.127 12.700 11.582 10.076 8.894 8.712 9.683 11.250 12.438 12.446 11.180 9.347 8.033 - 13.590 13.854 14.149 14.164 13.704 12.830 11.827 11.027 10.594 10.428 10.272 9.943 9.515 9.299 9.622 10.549 11.796 12.890 13.491 13.605 13.533 13.570 13.715 13.633 12.925 11.517 9.850 8.698 8.689 9.865 11.579 12.844 12.914 11.746 10.039 8.819 - 13.576 13.736 13.909 13.875 13.464 12.683 11.743 10.955 10.530 10.429 10.397 10.185 9.776 9.434 9.502 10.115 11.075 11.998 12.625 12.999 13.363 13.834 14.183 13.940 12.785 10.923 9.108 8.241 8.795 10.479 12.372 13.440 13.114 11.586 9.678 8.391 - 13.232 13.532 13.801 13.663 13.017 12.108 11.313 10.835 10.590 10.347 9.970 9.541 9.255 9.249 9.500 9.904 10.392 10.976 11.684 12.470 13.199 13.698 13.805 13.374 12.299 10.638 8.787 7.476 7.462 8.986 11.403 13.375 13.650 11.938 9.231 7.231 - 12.835 13.133 13.422 13.324 12.673 11.647 10.644 10.012 9.831 9.900 9.918 9.713 9.346 9.049 9.046 9.417 10.073 10.852 11.630 12.355 12.997 13.458 13.536 13.015 11.833 10.224 8.721 7.940 8.260 9.551 11.169 12.252 12.192 11.007 9.363 8.204 - 12.940 13.210 13.501 13.452 12.826 11.705 10.511 9.762 9.702 10.086 10.333 9.995 9.162 8.442 8.489 9.446 10.798 11.781 12.013 11.785 11.735 12.205 12.859 12.945 11.985 10.280 8.780 8.382 9.260 10.769 11.963 12.260 11.739 10.900 10.208 9.860 - 13.039 13.748 14.508 14.532 13.529 11.959 10.682 10.298 10.682 11.113 10.885 9.928 8.909 8.710 9.697 11.366 12.689 12.895 12.059 11.021 10.679 11.249 12.092 12.249 11.258 9.558 8.182 7.980 9.013 10.562 11.701 11.923 11.358 10.512 9.829 9.487 - 14.213 14.218 14.088 13.660 12.913 12.037 11.341 11.027 11.007 10.940 10.523 9.822 9.325 9.597 10.752 12.215 13.044 12.642 11.297 10.030 9.816 10.766 11.972 12.202 10.900 8.680 6.894 6.615 7.871 9.721 11.039 11.327 10.893 10.386 10.179 10.191 - 15.143 14.464 13.545 12.912 12.771 12.899 12.875 12.442 11.680 10.894 10.383 10.288 10.595 11.182 11.823 12.185 11.941 11.023 9.801 8.951 8.994 9.835 10.722 10.757 9.613 7.861 6.607 6.691 8.085 9.956 11.321 11.717 11.384 10.884 10.592 10.516 - 13.506 13.786 14.217 14.570 14.602 14.184 13.406 12.543 11.890 11.588 11.579 11.728 11.955 12.234 12.470 12.407 11.774 10.577 9.273 8.555 8.830 9.794 10.536 10.189 8.649 6.752 5.705 6.200 7.901 9.753 10.800 10.859 10.488 10.362 10.665 11.033 - 14.450 14.060 13.666 13.654 14.016 14.338 14.170 13.457 12.607 12.156 12.334 12.923 13.470 13.627 13.311 12.607 11.628 10.511 9.519 9.024 9.266 10.043 10.704 10.553 9.412 7.848 6.790 6.824 7.750 8.782 9.232 9.058 8.797 8.993 9.647 10.236 - 14.238 13.844 13.521 13.721 14.403 15.027 15.039 14.380 13.542 13.111 13.259 13.634 13.723 13.306 12.565 11.809 11.158 10.518 9.858 9.398 9.463 10.087 10.815 10.986 10.294 9.098 8.150 7.937 8.267 8.509 8.267 7.853 8.034 9.275 11.153 12.562 - 14.291 13.686 13.170 13.438 14.476 15.539 15.830 15.229 14.371 14.015 14.325 14.759 14.623 13.735 12.542 11.632 11.164 10.811 10.233 9.540 9.227 9.629 10.467 11.013 10.744 9.855 9.095 9.038 9.528 9.843 9.461 8.657 8.314 9.072 10.630 11.894 - 14.287 13.643 13.049 13.224 14.218 15.355 15.863 15.569 15.002 14.817 15.128 15.384 14.917 13.604 12.010 10.882 10.504 10.528 10.403 9.957 9.548 9.655 10.357 11.218 11.685 11.583 11.208 10.951 10.869 10.656 10.050 9.222 8.714 8.939 9.733 10.431 - 13.944 13.302 12.643 12.658 13.502 14.681 15.521 15.732 15.557 15.405 15.373 15.135 14.309 12.909 11.425 10.439 10.154 10.268 10.307 10.075 9.789 9.811 10.267 10.939 11.496 11.787 11.884 11.858 11.594 10.894 9.814 8.838 8.623 9.456 10.895 11.999 - 13.561 13.148 12.677 12.596 13.121 14.098 15.123 15.822 16.037 15.831 15.341 14.639 13.730 12.645 11.531 10.618 10.087 9.952 10.041 10.110 10.006 9.762 9.584 9.714 10.265 11.099 11.836 12.009 11.329 9.899 8.259 7.148 7.106 8.120 9.587 10.635 - 13.604 13.161 12.659 12.579 13.148 14.188 15.258 15.971 16.217 16.143 15.943 15.653 15.133 14.238 13.014 11.737 10.754 10.252 10.137 10.129 9.997 9.736 9.567 9.753 10.371 11.218 11.908 12.092 11.657 10.769 9.766 8.978 8.575 8.530 8.676 8.813 - 13.686 13.207 12.607 12.384 12.848 13.917 15.151 16.035 16.310 16.123 15.864 15.814 15.888 15.692 14.872 13.454 11.888 10.737 10.266 10.287 10.382 10.298 10.168 10.341 10.993 11.890 12.511 12.457 11.758 10.831 10.125 9.782 9.606 9.337 8.939 8.624 - 13.535 13.261 12.842 12.554 12.740 13.584 14.880 16.074 16.620 16.404 15.846 15.531 15.673 15.894 15.557 14.378 12.732 11.373 10.792 10.824 10.870 10.522 9.975 9.818 10.405 11.415 12.063 11.795 10.792 9.816 9.506 9.806 10.051 9.651 8.687 7.869 - 13.382 13.275 12.985 12.603 12.525 13.183 14.562 16.018 16.691 16.242 15.205 14.568 14.892 15.785 16.224 15.483 13.783 12.085 11.214 11.187 11.352 11.175 10.832 10.982 11.961 13.221 13.682 12.715 10.823 9.296 9.102 10.033 10.909 10.700 9.478 8.340 - 13.142 13.162 13.009 12.656 12.479 13.002 14.315 15.781 16.445 15.863 14.582 13.738 14.075 15.268 16.190 15.907 14.470 12.797 11.794 11.587 11.597 11.304 10.879 10.981 11.938 13.176 13.568 12.464 10.394 8.708 8.407 9.244 9.970 9.514 8.010 6.678 - 13.028 12.971 12.760 12.464 12.462 13.166 14.530 15.856 16.251 15.396 13.934 13.021 13.372 14.648 15.747 15.753 14.668 13.281 12.359 11.972 11.611 10.913 10.187 10.150 11.107 12.433 12.985 12.120 10.363 9.002 8.935 9.820 10.383 9.620 7.793 6.258 - 13.131 12.847 12.397 11.993 11.853 12.062 12.461 12.716 12.551 11.982 11.343 11.045 11.259 11.795 12.276 12.435 12.261 11.877 11.333 10.560 9.577 8.699 8.456 9.173 10.567 11.791 11.998 11.013 9.523 8.547 8.601 9.271 9.581 8.874 7.429 6.262 - 13.528 13.347 13.069 12.829 12.740 12.809 12.902 12.810 12.399 11.725 11.020 10.541 10.403 10.531 10.758 10.956 11.071 11.046 10.775 10.191 9.433 8.907 9.064 10.016 11.305 12.103 11.792 10.479 8.981 8.234 8.549 9.351 9.642 8.845 7.323 6.120 - 13.518 13.264 12.930 12.733 12.762 12.912 12.957 12.720 12.196 11.550 10.997 10.670 10.577 10.648 10.827 11.075 11.325 11.437 11.261 10.788 10.251 10.047 10.462 11.390 12.303 12.549 11.821 10.421 9.101 8.536 8.835 9.455 9.626 8.962 7.780 6.865 - 13.673 13.286 12.748 12.444 12.726 13.653 14.855 15.672 15.565 14.527 13.153 12.261 12.343 13.256 14.400 15.201 15.485 15.450 15.353 15.253 15.041 14.670 14.270 13.987 13.733 13.189 12.152 10.912 10.223 10.721 12.244 13.703 13.775 11.956 9.115 7.001 - 13.339 13.150 12.879 12.758 13.071 13.951 15.164 16.133 16.275 15.439 14.084 13.011 12.817 13.507 14.557 15.350 15.585 15.366 14.957 14.521 14.076 13.648 13.355 13.285 13.299 13.045 12.283 11.237 10.574 10.881 12.041 13.101 12.893 10.993 8.223 6.198 - 13.376 13.087 12.704 12.549 12.922 13.898 15.193 16.247 16.525 15.864 14.602 13.387 12.777 12.934 13.605 14.351 14.825 14.883 14.542 13.906 13.154 12.554 12.364 12.641 13.112 13.295 12.874 12.006 11.274 11.215 11.790 12.285 11.814 10.072 7.726 6.051 - 13.540 13.104 12.576 12.430 12.968 14.113 15.418 16.305 16.391 15.682 14.548 13.483 12.853 12.775 13.159 13.822 14.543 15.064 15.126 14.586 13.587 12.566 12.033 12.214 12.839 13.307 13.140 12.372 11.532 11.183 11.386 11.574 10.986 9.346 7.224 5.726 - 13.730 13.181 12.574 12.522 13.297 14.617 15.824 16.302 15.847 14.724 13.453 12.499 12.085 12.200 12.704 13.400 14.050 14.381 14.184 13.457 12.481 11.712 11.511 11.898 12.519 12.884 12.707 12.096 11.435 11.053 10.932 10.708 9.969 8.637 7.123 6.107 - 13.384 13.228 13.118 13.309 13.898 14.713 15.379 15.516 14.961 13.867 12.642 11.745 11.475 11.854 12.632 13.422 13.865 13.779 13.222 12.457 11.824 11.564 11.689 11.969 12.066 11.759 11.100 10.405 10.035 10.122 10.428 10.467 9.834 8.524 7.010 5.997 - 13.214 13.525 13.719 13.389 12.591 11.827 11.567 11.764 11.850 11.265 10.026 8.807 8.418 9.120 10.389 11.318 11.325 10.551 9.660 9.254 9.425 9.775 9.828 9.407 8.714 8.093 7.766 7.756 7.968 8.294 8.613 8.753 8.545 7.959 7.214 6.691 - 13.193 13.448 13.630 13.359 12.542 11.490 10.701 10.476 10.659 10.753 10.330 9.434 8.607 8.484 9.261 10.469 11.292 11.195 10.347 9.480 9.271 9.762 10.318 10.186 9.170 7.846 7.110 7.444 8.511 9.437 9.516 8.737 7.708 7.081 7.021 7.189 - 13.285 13.292 13.214 12.930 12.395 11.722 11.149 10.868 10.831 10.724 10.207 9.261 8.329 8.051 8.730 9.991 10.986 11.050 10.280 9.484 9.491 10.376 11.304 11.198 9.691 7.540 6.097 6.258 7.771 9.469 10.219 9.752 8.707 7.935 7.768 7.901 - 13.264 13.217 13.061 12.721 12.179 11.545 11.023 10.770 10.725 10.594 10.068 9.140 8.242 7.983 8.653 9.895 10.891 10.987 10.251 9.456 9.429 10.296 11.293 11.362 10.059 8.007 6.472 6.394 7.680 9.330 10.248 10.040 9.143 8.298 7.901 7.837 - 13.365 13.174 12.878 12.536 12.112 11.555 10.954 10.521 10.378 10.341 10.007 9.159 8.117 7.613 8.191 9.612 10.895 11.071 10.054 8.805 8.555 9.685 11.293 11.884 10.652 8.236 6.256 6.009 7.453 9.336 10.303 9.972 9.056 8.528 8.702 9.093 - 13.529 13.277 12.888 12.468 12.018 11.484 10.896 10.404 10.134 10.013 9.793 9.311 8.754 8.590 9.156 10.235 11.092 11.043 10.090 9.042 8.884 9.903 11.335 11.904 10.873 8.700 6.739 6.203 7.270 9.033 10.297 10.469 9.837 9.098 8.700 8.609 - 14.271 13.583 12.790 12.544 13.002 13.721 14.078 13.794 13.086 12.372 11.871 11.502 11.148 10.935 11.191 12.078 13.292 14.189 14.278 13.644 12.877 12.551 12.714 12.878 12.506 11.562 10.592 10.271 10.822 11.817 12.526 12.465 11.691 10.643 9.774 9.314 - 13.722 12.998 12.287 12.411 13.548 15.052 15.954 15.710 14.541 13.167 12.198 11.762 11.604 11.474 11.389 11.541 12.025 12.692 13.281 13.665 13.930 14.193 14.389 14.270 13.656 12.715 11.940 11.810 12.403 13.298 13.861 13.676 12.782 11.573 10.514 9.919 - 13.618 13.061 12.508 12.618 13.598 15.006 16.052 16.149 15.278 13.927 12.700 11.943 11.636 11.564 11.556 11.589 11.717 11.968 12.323 12.774 13.356 14.080 14.815 15.273 15.166 14.456 13.474 12.777 12.800 13.521 14.409 14.715 13.942 12.198 10.189 8.858 - 13.355 13.001 12.682 12.879 13.779 15.090 16.171 16.431 15.688 14.279 12.831 11.873 11.555 11.655 11.821 11.853 11.812 11.914 12.331 13.064 13.957 14.800 15.405 15.626 15.369 14.665 13.754 13.075 13.051 13.767 14.789 15.318 14.684 12.856 10.589 9.033 - 13.245 13.015 12.848 13.119 13.983 15.201 16.210 16.447 15.707 14.293 12.839 11.903 11.643 11.803 11.988 12.003 11.958 12.099 12.538 13.159 13.757 14.238 14.656 15.043 15.246 15.014 14.312 13.556 13.442 14.377 15.962 17.040 16.444 13.931 10.576 8.204 - 13.211 12.975 12.841 13.206 14.172 15.392 16.247 16.233 15.294 13.855 12.546 11.807 11.662 11.799 11.861 11.712 11.480 11.399 11.613 12.104 12.768 13.513 14.259 14.862 15.099 14.809 14.120 13.515 13.577 14.527 15.902 16.710 16.062 13.868 11.060 9.111 - 13.219 13.019 12.937 13.336 14.281 15.405 16.102 15.914 14.840 13.343 12.050 11.362 11.261 11.411 11.466 11.318 11.121 11.109 11.404 11.957 12.645 13.382 14.115 14.737 15.053 14.903 14.381 13.908 14.013 14.901 16.150 16.850 16.186 14.084 11.425 9.584 - 13.178 13.101 13.184 13.669 14.529 15.402 15.790 15.387 14.293 12.942 11.823 11.195 11.000 10.992 10.955 10.837 10.720 10.713 10.879 11.250 11.861 12.735 13.784 14.751 15.295 15.212 14.656 14.120 14.147 14.911 15.999 16.593 16.011 14.223 11.988 10.453 - 13.037 13.097 13.359 13.919 14.633 15.127 15.028 14.238 13.022 11.834 11.023 10.651 10.542 10.487 10.401 10.325 10.316 10.361 10.428 10.572 10.969 11.777 12.937 14.092 14.768 14.697 14.070 13.467 13.475 14.251 15.336 15.913 15.342 13.634 11.528 10.091 - 12.074 12.564 13.316 13.996 14.330 14.212 13.704 12.954 12.109 11.271 10.514 9.903 9.494 9.298 9.252 9.242 9.170 9.041 9.005 9.299 10.107 11.404 12.890 14.082 14.555 14.206 13.369 12.668 12.651 13.421 14.506 15.110 14.614 13.021 11.032 9.668 - 11.268 11.036 10.843 10.938 11.269 11.486 11.243 10.509 9.584 8.818 8.315 7.913 7.433 6.929 6.666 6.842 7.339 7.805 7.989 8.034 8.385 9.377 10.848 12.172 12.713 12.332 11.520 11.022 11.279 12.119 12.922 13.089 12.426 11.211 9.976 9.217 - 9.987 10.150 10.121 9.580 8.629 7.783 7.540 7.917 8.396 8.344 7.540 6.363 5.464 5.244 5.580 6.002 6.127 5.953 5.780 5.906 6.388 7.058 7.725 8.311 8.813 9.178 9.280 9.038 8.563 8.144 8.055 8.346 8.820 9.212 9.395 9.432 - 8.609 8.924 9.270 9.339 9.054 8.564 8.018 7.371 6.472 5.334 4.288 3.801 4.074 4.808 5.396 5.411 4.948 4.505 4.513 4.952 5.424 5.590 5.539 5.703 6.401 7.452 8.254 8.295 7.614 6.800 6.513 6.971 7.840 8.598 8.973 9.061 - 6.003 6.521 7.331 8.119 8.647 8.816 8.616 8.046 7.116 5.926 4.734 3.901 3.697 4.118 4.843 5.411 5.487 5.060 4.421 3.967 3.957 4.375 4.971 5.419 5.505 5.240 4.858 4.686 4.957 5.644 6.426 6.839 6.548 5.584 4.383 3.562 - 6.139 6.452 6.982 7.593 8.150 8.503 8.464 7.865 6.718 5.330 4.218 3.811 4.144 4.808 5.235 5.123 4.636 4.226 4.237 4.628 5.060 5.232 5.134 4.992 4.996 5.105 5.139 5.045 5.033 5.382 6.084 6.685 6.573 5.509 3.947 2.799 - 5.593 5.897 6.440 7.101 7.709 8.077 8.056 7.619 6.910 6.209 5.786 5.736 5.910 6.033 5.923 5.641 5.437 5.522 5.863 6.208 6.316 6.201 6.151 6.474 7.193 7.969 8.349 8.136 7.553 7.042 6.876 6.921 6.782 6.198 5.333 4.685 - 8.196 8.210 8.122 7.906 7.771 8.045 8.848 9.878 10.576 10.561 9.975 9.393 9.362 9.968 10.799 11.328 11.351 11.097 10.945 11.073 11.361 11.614 11.831 12.215 12.908 13.744 14.300 14.232 13.589 12.785 12.256 12.103 12.075 11.867 11.453 11.104 - 6.444 7.385 8.720 9.775 10.224 10.257 10.323 10.700 11.276 11.691 11.699 11.391 11.115 11.174 11.590 12.115 12.462 12.529 12.442 12.418 12.601 12.999 13.548 14.181 14.842 15.443 15.847 15.933 15.678 15.185 14.623 14.122 13.720 13.399 13.152 13.009 - 11.344 11.771 12.433 13.030 13.288 13.081 12.486 11.727 11.054 10.621 10.440 10.423 10.467 10.500 10.477 10.356 10.109 9.777 9.510 9.520 9.946 10.734 11.637 12.362 12.769 12.971 13.232 13.753 14.503 15.218 15.577 15.408 14.786 13.966 13.241 12.826 - 12.477 12.855 13.565 14.433 15.126 15.271 14.680 13.512 12.206 11.204 10.673 10.441 10.191 9.744 9.207 8.869 8.962 9.485 10.227 10.926 11.424 11.695 11.774 11.699 11.524 11.378 11.465 11.956 12.839 13.855 14.592 14.697 14.076 12.957 11.793 11.062 - 12.667 12.985 13.597 14.409 15.219 15.716 15.590 14.723 13.333 11.927 11.018 10.778 10.905 10.860 10.330 9.552 9.180 9.761 11.229 12.859 13.764 13.544 12.558 11.596 11.247 11.512 11.954 12.202 12.294 12.534 13.038 13.447 13.161 11.917 10.175 8.910 - 12.056 12.455 13.134 13.928 14.674 15.194 15.266 14.709 13.567 12.219 11.218 10.906 11.127 11.336 11.097 10.525 10.262 10.899 12.362 13.827 14.332 13.582 12.226 11.325 11.458 12.266 12.859 12.683 12.042 11.753 12.268 13.112 13.233 11.991 9.872 8.233 - 11.177 11.666 12.553 13.653 14.694 15.338 15.288 14.453 13.084 11.720 10.900 10.802 11.111 11.276 11.002 10.552 10.558 11.436 12.912 14.123 14.270 13.304 12.008 11.384 11.824 12.819 13.454 13.258 12.604 12.301 12.730 13.370 13.200 11.663 9.324 7.574 - 11.401 11.840 12.548 13.276 13.795 13.950 13.661 12.953 12.002 11.117 10.605 10.563 10.788 10.939 10.864 10.788 11.148 12.148 13.442 14.287 14.114 13.051 11.904 11.532 12.138 13.097 13.521 13.059 12.216 11.850 12.309 12.992 12.813 11.203 8.765 6.947 - 9.453 9.057 8.753 9.036 9.885 10.681 10.672 9.594 7.911 6.471 5.865 6.025 6.392 6.478 6.316 6.406 7.205 8.624 9.985 10.498 9.878 8.590 7.523 7.350 8.083 9.144 9.863 9.975 9.724 9.543 9.609 9.671 9.301 8.320 7.056 6.162 - 10.924 9.964 8.743 8.084 8.281 8.898 9.170 8.637 7.477 6.293 5.595 5.452 5.568 5.662 5.749 6.081 6.823 7.814 8.627 8.887 8.555 7.944 7.470 7.376 7.637 8.077 8.543 8.973 9.331 9.518 9.378 8.795 7.810 6.642 5.610 5.007 - 8.248 7.756 7.157 6.916 7.214 7.801 8.180 7.988 7.267 6.432 5.966 6.074 6.582 7.116 7.412 7.494 7.577 7.821 8.151 8.312 8.106 7.591 7.051 6.768 6.783 6.877 6.785 6.445 6.064 5.911 6.038 6.177 5.945 5.184 4.164 3.434 - 4.519 5.496 7.015 8.446 9.306 9.484 9.245 9.014 9.096 9.527 10.115 10.625 10.948 11.146 11.345 11.600 11.835 11.912 11.744 11.367 10.900 10.447 10.033 9.622 9.195 8.795 8.496 8.318 8.185 7.969 7.590 7.090 6.605 6.263 6.099 6.052 - 5.168 5.942 7.068 7.984 8.342 8.200 7.917 7.853 8.107 8.490 8.726 8.719 8.635 8.754 9.209 9.850 10.354 10.486 10.286 10.010 9.886 9.908 9.859 9.560 9.100 8.822 9.043 9.744 10.514 10.839 10.502 9.767 9.169 9.088 9.450 9.826 - 6.553 6.777 7.188 7.701 8.193 8.559 8.763 8.853 8.905 8.944 8.916 8.756 8.482 8.219 8.125 8.254 8.506 8.701 8.729 8.644 8.608 8.731 8.963 9.133 9.116 8.964 8.890 9.098 9.606 10.212 10.623 10.647 10.302 9.770 9.279 8.994 - 8.608 8.323 7.967 7.806 7.960 8.333 8.721 8.981 9.127 9.261 9.442 9.601 9.614 9.445 9.240 9.248 9.628 10.297 10.955 11.289 11.198 10.868 10.624 10.683 11.002 11.336 11.452 11.318 11.113 11.051 11.181 11.330 11.246 10.824 10.229 9.797 - 9.560 9.737 9.909 9.885 9.656 9.445 9.549 10.100 10.929 11.655 11.931 11.682 11.159 10.776 10.848 11.411 12.221 12.930 13.289 13.267 13.029 12.797 12.714 12.779 12.884 12.914 12.830 12.691 12.595 12.592 12.627 12.573 12.321 11.874 11.381 11.057 - 12.448 12.154 11.640 11.050 10.568 10.366 10.520 10.956 11.457 11.764 11.735 11.454 11.196 11.260 11.751 12.485 13.098 13.294 13.049 12.618 12.341 12.383 12.638 12.839 12.794 12.538 12.285 12.233 12.393 12.591 12.619 12.400 12.033 11.683 11.459 11.366 - 13.972 14.116 14.242 14.144 13.729 13.098 12.500 12.151 12.078 12.087 11.928 11.530 11.111 11.053 11.599 12.615 13.623 14.108 13.874 13.172 12.494 12.211 12.328 12.561 12.613 12.426 12.176 12.063 12.115 12.175 12.081 11.845 11.642 11.640 11.825 12.008 - 14.825 15.765 16.802 16.985 16.058 14.631 13.585 13.286 13.331 13.019 12.082 10.993 10.560 11.209 12.599 13.899 14.445 14.190 13.611 13.217 13.158 13.241 13.244 13.166 13.189 13.415 13.714 13.826 13.607 13.164 12.738 12.487 12.366 12.239 12.055 11.906 - 14.776 15.089 15.298 14.951 13.975 12.767 11.886 11.603 11.716 11.771 11.491 11.027 10.833 11.263 12.261 13.373 14.072 14.112 13.650 13.069 12.691 12.603 12.692 12.805 12.884 12.962 13.092 13.267 13.412 13.432 13.262 12.895 12.379 11.812 11.321 11.035 - 13.285 13.877 14.594 14.842 14.326 13.231 12.054 11.225 10.839 10.690 10.554 10.442 10.604 11.261 12.333 13.401 13.974 13.857 13.294 12.759 12.566 12.627 12.567 12.113 11.392 10.877 10.985 11.682 12.444 12.630 11.994 10.888 9.992 9.772 10.137 10.559 - 12.139 12.506 13.154 13.922 14.609 15.026 15.050 14.684 14.070 13.456 13.102 13.169 13.639 14.325 14.948 15.275 15.205 14.786 14.147 13.409 12.630 11.829 11.045 10.383 9.985 9.948 10.235 10.662 10.975 10.974 10.617 10.026 9.401 8.911 8.617 8.492 - 14.044 13.962 14.016 14.401 15.031 15.527 15.478 14.774 13.725 12.863 12.593 12.961 13.687 14.411 14.901 15.095 14.985 14.519 13.632 12.374 10.987 9.834 9.195 9.104 9.344 9.603 9.659 9.477 9.149 8.780 8.398 7.966 7.454 6.898 6.408 6.117 - 14.766 14.698 14.596 14.491 14.357 14.122 13.724 13.177 12.598 12.162 12.012 12.188 12.603 13.081 13.424 13.475 13.152 12.466 11.499 10.384 9.259 8.251 7.468 6.999 6.895 7.135 7.582 7.996 8.127 7.842 7.221 6.523 6.036 5.902 6.031 6.191 - 14.552 13.680 12.424 11.426 11.066 11.244 11.512 11.431 10.880 10.098 9.462 9.196 9.236 9.326 9.240 8.941 8.552 8.197 7.871 7.455 6.853 6.119 5.455 5.075 5.042 5.229 5.423 5.483 5.426 5.367 5.382 5.426 5.378 5.165 4.856 4.628 - 10.827 10.053 8.983 8.205 7.977 8.062 7.969 7.374 6.403 5.536 5.250 5.672 6.505 7.261 7.571 7.373 6.847 6.232 5.663 5.162 4.723 4.382 4.205 4.223 4.377 4.547 4.628 4.596 4.503 4.412 4.341 4.248 4.082 3.837 3.579 3.411 - 8.464 7.956 7.280 6.859 6.882 7.171 7.326 7.043 6.356 5.624 5.273 5.490 6.095 6.674 6.875 6.614 6.083 5.560 5.195 4.954 4.714 4.429 4.182 4.106 4.241 4.469 4.596 4.499 4.223 3.931 3.765 3.739 3.749 3.688 3.553 3.437 - 6.698 5.993 5.273 5.309 6.257 7.496 8.118 7.644 6.361 5.053 4.394 4.529 5.124 5.738 6.127 6.274 6.213 5.926 5.415 4.826 4.429 4.406 4.669 4.896 4.813 4.439 4.075 4.021 4.288 4.587 4.590 4.230 3.743 3.429 3.383 3.454 - 5.957 5.790 5.656 5.767 6.130 6.504 6.565 6.152 5.394 4.635 4.205 4.239 4.638 5.174 5.629 5.877 5.884 5.677 5.322 4.912 4.541 4.262 4.075 3.943 3.852 3.836 3.942 4.159 4.389 4.496 4.414 4.204 4.014 3.961 4.038 4.130 - 5.912 6.005 6.182 6.406 6.597 6.641 6.444 5.995 5.402 4.865 4.588 4.683 5.102 5.664 6.127 6.301 6.112 5.621 4.998 4.450 4.158 4.197 4.495 4.840 4.980 4.761 4.249 3.714 3.482 3.711 4.261 4.758 4.835 4.389 3.676 3.147 - 7.351 7.060 6.797 6.866 7.217 7.462 7.227 6.514 5.722 5.304 5.392 5.741 6.012 6.110 6.234 6.624 7.276 7.930 8.319 8.415 8.413 8.474 8.536 8.403 8.041 7.736 7.905 8.674 9.664 10.221 9.955 9.094 8.315 8.169 8.620 9.111 - 14.532 14.689 14.955 15.197 15.221 14.885 14.242 13.560 13.153 13.129 13.284 13.250 12.793 12.002 11.215 10.749 10.682 10.868 11.130 11.425 11.799 12.227 12.529 12.497 12.132 11.726 11.657 12.046 12.603 12.836 12.468 11.702 11.068 10.971 11.353 11.756 - 18.701 18.400 17.989 17.655 17.387 17.002 16.361 15.566 14.931 14.710 14.849 14.983 14.709 13.906 12.833 11.929 11.508 11.597 12.018 12.591 13.235 13.909 14.491 14.769 14.573 13.929 13.070 12.271 11.672 11.232 10.853 10.524 10.346 10.404 10.633 10.836 - 16.487 16.092 15.564 15.190 15.039 14.926 14.625 14.086 13.466 12.941 12.509 11.990 11.229 10.308 9.527 9.171 9.282 9.642 9.996 10.297 10.715 11.420 12.328 13.078 13.275 12.794 11.884 10.977 10.387 10.143 10.065 9.971 9.818 9.676 9.602 9.586 - 12.660 12.964 13.336 13.439 13.028 12.100 10.894 9.774 9.038 8.777 8.850 8.991 8.964 8.683 8.238 7.822 7.625 7.767 8.274 9.102 10.153 11.276 12.260 12.865 12.913 12.390 11.494 10.582 10.010 9.956 10.336 10.868 11.248 11.329 11.186 11.028 - 11.383 12.119 13.163 13.926 14.004 13.389 12.413 11.500 10.909 10.636 10.503 10.328 10.054 9.744 9.500 9.378 9.382 9.498 9.745 10.161 10.756 11.461 12.138 12.636 12.869 12.847 12.657 12.403 12.153 11.921 11.686 11.428 11.153 10.892 10.688 10.575 - 13.260 13.672 14.272 14.709 14.677 14.067 13.032 11.900 11.000 10.477 10.256 10.142 9.984 9.776 9.624 9.639 9.863 10.292 10.935 11.815 12.883 13.922 14.582 14.564 13.857 12.815 11.980 11.760 12.170 12.842 13.276 13.151 12.480 11.543 10.693 10.202 - 13.239 13.791 14.541 14.994 14.796 13.921 12.662 11.443 10.590 10.203 10.164 10.268 10.347 10.336 10.255 10.164 10.134 10.247 10.608 11.305 12.334 13.529 14.565 15.076 14.854 14.003 12.953 12.260 12.305 13.042 13.986 14.463 14.011 12.688 11.080 9.991 - 13.138 13.686 14.414 14.802 14.488 13.476 12.119 10.899 10.154 9.924 9.994 10.091 10.057 9.893 9.682 9.490 9.367 9.418 9.849 10.863 12.454 14.253 15.612 15.936 15.070 13.456 11.919 11.202 11.549 12.601 13.651 14.069 13.629 12.565 11.394 10.647 - 12.060 12.778 13.750 14.313 13.990 12.770 11.118 9.700 9.003 9.076 9.557 9.957 9.984 9.693 9.375 9.323 9.662 10.354 11.315 12.475 13.717 14.764 15.191 14.638 13.110 11.119 9.502 8.979 9.734 11.293 12.790 13.439 12.936 11.565 10.007 8.998 - 13.995 13.899 13.641 13.144 12.395 11.479 10.554 9.775 9.219 8.871 8.661 8.528 8.460 8.482 8.615 8.863 9.235 9.780 10.556 11.542 12.531 13.127 12.902 11.669 9.683 7.626 6.318 6.302 7.546 9.434 11.074 11.730 11.162 9.699 8.057 6.996 - 12.773 11.950 10.703 9.564 8.859 8.564 8.424 8.196 7.826 7.429 7.155 7.072 7.144 7.285 7.404 7.420 7.285 7.027 6.784 6.757 7.046 7.520 7.832 7.645 6.913 5.983 5.403 5.557 6.394 7.467 8.246 8.450 8.158 7.666 7.248 7.030 - 10.945 10.627 10.086 9.436 8.730 8.001 7.348 6.958 6.976 7.326 7.664 7.585 6.970 6.175 5.859 6.520 8.083 9.882 11.079 11.234 10.585 9.832 9.599 9.997 10.598 10.826 10.430 9.678 9.152 9.315 10.191 11.375 12.333 12.759 12.730 12.574 - 9.771 9.559 9.200 8.744 8.187 7.518 6.834 6.374 6.380 6.875 7.549 7.915 7.673 7.000 6.498 6.791 8.037 9.760 11.138 11.574 11.114 10.394 10.155 10.693 11.658 12.343 12.232 11.390 10.397 9.924 10.261 11.157 12.066 12.560 12.606 12.487 - 8.393 8.218 7.950 7.641 7.246 6.700 6.085 5.689 5.829 6.552 7.490 8.060 7.908 7.225 6.650 6.800 7.780 9.093 10.013 10.130 9.630 9.103 9.067 9.594 10.318 10.759 10.678 10.198 9.647 9.313 9.289 9.503 9.817 10.123 10.358 10.485 - 13.892 13.199 12.267 11.626 11.459 11.512 11.389 10.944 10.420 10.208 10.476 11.004 11.386 11.382 11.111 10.915 11.040 11.440 11.846 12.040 12.034 12.029 12.200 12.530 12.840 12.968 12.910 12.805 12.790 12.882 12.981 12.976 12.840 12.638 12.458 12.358 - 17.330 16.334 15.174 14.754 15.247 15.989 16.148 15.513 14.649 14.299 14.628 15.047 14.783 13.632 12.184 11.304 11.374 12.001 12.428 12.221 11.594 11.110 11.101 11.397 11.571 11.413 11.126 11.071 11.356 11.705 11.743 11.380 10.903 10.677 10.788 10.986 - 16.578 16.356 16.167 16.217 16.397 16.336 15.771 14.844 14.036 13.744 13.910 14.062 13.736 12.904 11.995 11.503 11.543 11.788 11.795 11.430 10.957 10.751 10.934 11.286 11.503 11.515 11.525 11.746 12.120 12.320 12.063 11.405 10.727 10.407 10.489 10.682 - 17.446 16.924 16.213 15.679 15.417 15.228 14.885 14.410 14.059 14.035 14.225 14.233 13.719 12.715 11.626 10.898 10.654 10.639 10.495 10.102 9.660 9.472 9.662 10.100 10.584 11.037 11.518 12.026 12.361 12.227 11.531 10.568 9.867 9.785 10.208 10.641 - 14.948 14.880 14.936 15.240 15.626 15.725 15.329 14.646 14.172 14.240 14.671 14.864 14.281 12.903 11.243 9.928 9.229 8.956 8.765 8.527 8.418 8.671 9.289 10.040 10.700 11.267 11.879 12.523 12.878 12.538 11.465 10.196 9.547 9.966 11.113 12.072 - 15.245 14.538 13.829 13.839 14.595 15.391 15.462 14.714 13.804 13.503 13.937 14.443 14.172 12.858 11.046 9.591 8.926 8.776 8.543 7.932 7.214 6.921 7.316 8.179 9.075 9.762 10.319 10.879 11.335 11.375 10.862 10.130 9.825 10.356 11.465 12.361 - 12.650 12.711 12.887 13.200 13.552 13.743 13.613 13.193 12.731 12.530 12.689 12.964 12.894 12.129 10.737 9.218 8.180 7.912 8.177 8.423 8.246 7.730 7.381 7.691 8.701 9.939 10.791 10.998 10.837 10.851 11.346 12.113 12.619 12.492 11.876 11.323 - 12.449 11.974 11.297 10.735 10.406 10.192 9.929 9.623 9.460 9.596 9.920 10.049 9.600 8.523 7.201 6.198 5.855 6.060 6.378 6.432 6.208 6.037 6.276 6.973 7.806 8.341 8.387 8.159 8.101 8.512 9.281 9.941 10.010 9.361 8.355 7.615 - 10.420 10.064 9.531 9.051 8.743 8.558 8.342 7.971 7.439 6.834 6.260 5.766 5.358 5.047 4.872 4.870 5.002 5.149 5.182 5.080 4.981 5.100 5.563 6.275 6.942 7.254 7.101 6.656 6.267 6.217 6.528 6.961 7.201 7.092 6.749 6.460 - 9.420 8.934 8.303 7.911 7.857 7.875 7.588 6.863 5.957 5.329 5.261 5.624 5.982 5.947 5.487 4.930 4.668 4.826 5.168 5.326 5.132 4.787 4.695 5.119 5.937 6.697 6.952 6.582 5.876 5.313 5.217 5.570 6.081 6.453 6.586 6.584 - 9.164 8.895 8.433 7.950 7.679 7.805 8.316 8.946 9.294 9.076 8.339 7.466 6.952 7.091 7.804 8.711 9.395 9.655 9.577 9.414 9.387 9.563 9.884 10.263 10.671 11.129 11.638 12.119 12.433 12.450 12.132 11.557 10.880 10.258 9.804 9.569 - 10.424 10.221 9.830 9.374 9.114 9.317 10.019 10.896 11.417 11.207 10.351 9.376 8.900 9.206 10.075 10.982 11.484 11.490 11.235 11.038 11.068 11.296 11.617 11.982 12.418 12.953 13.534 14.048 14.384 14.501 14.406 14.116 13.647 13.058 12.491 12.137 - 9.228 10.132 11.386 12.292 12.486 12.082 11.435 10.793 10.180 9.556 9.024 8.807 9.010 9.433 9.670 9.445 8.872 8.369 8.293 8.638 9.082 9.328 9.406 9.622 10.218 11.096 11.887 12.311 12.447 12.635 13.083 13.585 13.658 13.015 11.924 11.082 - 14.094 13.913 13.696 13.590 13.575 13.421 12.840 11.761 10.506 9.688 9.825 10.928 12.383 13.280 13.004 11.658 9.990 8.861 8.667 9.151 9.726 10.004 10.069 10.291 10.888 11.664 12.178 12.162 11.788 11.506 11.612 11.944 12.029 11.538 10.650 9.950 - 13.785 13.217 12.488 12.074 12.108 12.243 11.915 10.827 9.285 8.076 7.946 9.030 10.682 11.856 11.787 10.476 8.643 7.173 6.524 6.507 6.597 6.440 6.152 6.158 6.759 7.826 8.879 9.459 9.470 9.186 8.965 8.946 8.994 8.913 8.676 8.463 - 10.280 10.417 10.431 10.025 9.130 7.980 6.962 6.354 6.188 6.312 6.565 6.889 7.272 7.610 7.666 7.204 6.219 5.048 4.221 4.133 4.760 5.662 6.278 6.307 5.883 5.435 5.331 5.604 5.962 6.045 5.735 5.247 4.943 5.038 5.424 5.761 - 11.274 10.921 10.315 9.563 8.704 7.742 6.768 6.023 5.801 6.218 7.056 7.820 8.019 7.466 6.385 5.236 4.410 4.033 3.974 4.029 4.091 4.175 4.329 4.539 4.728 4.831 4.860 4.896 5.013 5.218 5.454 5.657 5.802 5.899 5.966 6.005 - 10.854 10.518 9.973 9.357 8.715 8.019 7.287 6.665 6.361 6.466 6.843 7.192 7.263 7.010 6.572 6.104 5.643 5.139 4.603 4.192 4.107 4.394 4.837 5.099 4.995 4.659 4.426 4.537 4.921 5.262 5.297 5.058 4.830 4.875 5.179 5.465 - 11.305 10.626 9.673 8.915 8.509 8.230 7.759 7.039 6.385 6.210 6.632 7.309 7.659 7.290 6.288 5.136 4.356 4.177 4.462 4.898 5.252 5.474 5.626 5.745 5.796 5.729 5.553 5.349 5.200 5.125 5.074 4.988 4.854 4.706 4.590 4.530 - 10.408 9.830 8.825 7.677 6.726 6.210 6.119 6.206 6.164 5.870 5.463 5.197 5.178 5.248 5.132 4.714 4.192 3.935 4.160 4.732 5.263 5.435 5.253 4.993 4.916 5.019 5.072 4.878 4.509 4.257 4.361 4.765 5.151 5.229 5.004 4.753 - 9.782 9.121 8.079 7.052 6.327 5.968 5.848 5.790 5.683 5.512 5.306 5.094 4.893 4.739 4.687 4.761 4.905 4.979 4.850 4.498 4.064 3.772 3.768 4.014 4.299 4.396 4.227 3.927 3.747 3.865 4.259 4.713 4.978 4.939 4.699 4.486 - 9.777 9.199 8.128 6.763 5.404 4.364 3.824 3.744 3.911 4.099 4.218 4.344 4.593 4.964 5.295 5.364 5.082 4.587 4.173 4.083 4.333 4.699 4.872 4.668 4.141 3.538 3.136 3.081 3.334 3.724 4.063 4.234 4.224 4.099 3.949 3.853 - 13.999 13.979 13.937 13.827 13.543 12.966 12.079 11.028 10.079 9.478 9.309 9.453 9.686 9.819 9.790 9.656 9.518 9.451 9.472 9.546 9.599 9.546 9.339 9.026 8.770 8.778 9.160 9.815 10.453 10.770 10.656 10.273 9.932 9.856 10.019 10.203 - 17.232 17.300 17.352 17.244 16.835 16.083 15.112 14.175 13.505 13.156 12.969 12.696 12.204 11.575 11.032 10.754 10.742 10.845 10.898 10.833 10.670 10.428 10.092 9.687 9.369 9.394 9.928 10.846 11.720 12.083 11.773 11.078 10.529 10.489 10.877 11.264 - 17.017 16.473 15.658 14.921 14.452 14.177 13.854 13.275 12.427 11.488 10.706 10.244 10.107 10.169 10.250 10.208 9.989 9.633 9.249 8.940 8.745 8.616 8.479 8.336 8.308 8.576 9.220 10.092 10.847 11.150 10.904 10.331 9.817 9.631 9.753 9.931 - 13.890 13.559 12.992 12.360 11.839 11.530 11.386 11.219 10.813 10.082 9.159 8.348 7.928 7.963 8.244 8.428 8.274 7.819 7.341 7.153 7.367 7.818 8.191 8.268 8.090 7.923 8.052 8.562 9.275 9.874 10.115 9.968 9.596 9.215 8.958 8.845 - 9.567 10.610 12.040 13.053 13.280 12.960 12.608 12.510 12.497 12.170 11.306 10.077 8.893 8.067 7.608 7.308 6.973 6.568 6.171 5.848 5.622 5.534 5.693 6.178 6.890 7.535 7.844 7.851 7.938 8.536 9.682 10.858 11.325 10.732 9.477 8.474 - 10.393 11.348 12.646 13.546 13.722 13.427 13.154 13.147 13.197 12.868 11.919 10.534 9.180 8.257 7.857 7.783 7.754 7.581 7.207 6.684 6.164 5.904 6.179 7.084 8.361 9.485 10.017 9.973 9.858 10.247 11.244 12.282 12.533 11.611 9.994 8.751 - 9.769 10.941 12.514 13.549 13.630 13.100 12.675 12.804 13.331 13.680 13.357 12.310 10.882 9.492 8.354 7.465 6.776 6.325 6.185 6.339 6.641 6.950 7.273 7.768 8.568 9.595 10.567 11.205 11.450 11.477 11.512 11.611 11.645 11.474 11.140 10.868 - 9.948 11.253 13.021 14.187 14.203 13.366 12.500 12.294 12.816 13.540 13.797 13.263 12.132 10.911 10.052 9.709 9.731 9.830 9.762 9.451 9.012 8.712 8.851 9.600 10.856 12.233 13.230 13.501 13.046 12.183 11.337 10.788 10.569 10.547 10.577 10.595 - 12.232 12.815 13.670 14.343 14.478 13.999 13.142 12.306 11.837 11.852 12.211 12.650 12.951 13.051 13.008 12.876 12.605 12.059 11.164 10.064 9.142 8.861 9.484 10.870 12.486 13.664 13.937 13.273 12.048 10.808 9.968 9.649 9.707 9.903 10.066 10.144 - 13.139 13.570 14.230 14.796 14.969 14.611 13.804 12.805 11.907 11.308 11.053 11.088 11.354 11.834 12.499 13.232 13.805 13.983 13.683 13.072 12.501 12.304 12.598 13.214 13.809 14.062 13.826 13.157 12.228 11.230 10.311 9.565 9.040 8.735 8.602 8.563 - 13.096 13.581 14.336 14.998 15.201 14.749 13.743 12.535 11.523 10.915 10.631 10.445 10.221 10.066 10.240 10.906 11.938 12.978 13.682 13.973 14.061 14.228 14.564 14.883 14.892 14.450 13.700 12.963 12.489 12.278 12.100 11.683 10.911 9.911 8.973 8.409 - 12.693 13.477 14.470 14.965 14.628 13.668 12.565 11.668 10.998 10.398 9.800 9.326 9.148 9.289 9.590 9.884 10.169 10.599 11.307 12.250 13.239 14.104 14.781 15.216 15.229 14.559 13.160 11.480 10.353 10.451 11.680 13.072 13.413 12.174 10.010 8.350 - 12.891 13.474 14.145 14.314 13.752 12.710 11.649 10.846 10.247 9.645 8.989 8.484 8.400 8.798 9.438 9.975 10.234 10.333 10.545 11.054 11.829 12.683 13.405 13.832 13.847 13.390 12.572 11.759 11.459 11.984 13.112 14.097 14.119 12.916 11.081 9.728 - 12.934 13.374 13.839 13.841 13.209 12.182 11.166 10.392 9.803 9.231 8.650 8.246 8.226 8.574 9.015 9.247 9.212 9.173 9.495 10.347 11.557 12.749 13.592 13.964 13.922 13.590 13.093 12.585 12.255 12.220 12.373 12.359 11.797 10.607 9.184 8.210 - 13.147 13.301 13.480 13.475 13.096 12.275 11.124 9.904 8.916 8.356 8.238 8.412 8.671 8.855 8.905 8.850 8.778 8.815 9.111 9.798 10.896 12.221 13.400 14.009 13.812 12.932 11.832 11.080 11.031 11.614 12.376 12.742 12.359 11.304 10.051 9.214 - 13.040 13.152 13.249 13.148 12.724 11.986 11.075 10.188 9.480 8.993 8.678 8.460 8.311 8.262 8.362 8.614 8.976 9.416 9.967 10.731 11.767 12.971 14.028 14.535 14.244 13.272 12.117 11.424 11.608 12.585 13.768 14.385 13.936 12.504 10.753 9.569 - 12.482 12.648 12.766 12.598 12.075 11.336 10.578 9.885 9.214 8.524 7.917 7.612 7.765 8.292 8.893 9.278 9.415 9.582 10.170 11.368 12.988 14.527 15.427 15.338 14.278 12.627 11.004 10.052 10.158 11.223 12.605 13.386 12.877 11.091 8.829 7.271 - 11.118 11.586 11.941 11.549 10.302 8.753 7.679 7.478 7.905 8.340 8.315 7.831 7.240 6.881 6.824 6.938 7.151 7.593 8.471 9.801 11.264 12.338 12.586 11.890 10.484 8.829 7.458 6.840 7.229 8.490 10.010 10.892 10.425 8.596 6.230 4.585 - 11.316 10.837 9.996 8.964 7.904 6.960 6.281 6.002 6.163 6.619 7.057 7.146 6.742 5.983 5.182 4.617 4.366 4.347 4.470 4.757 5.281 6.005 6.672 6.916 6.525 5.643 4.727 4.258 4.422 4.999 5.535 5.643 5.221 4.460 3.695 3.229 - 10.245 9.838 9.111 8.235 7.439 6.923 6.746 6.780 6.783 6.560 6.099 5.573 5.199 5.049 4.995 4.816 4.426 4.004 3.924 4.493 5.682 7.064 8.021 8.100 7.276 5.963 4.750 4.070 3.994 4.272 4.547 4.573 4.322 3.924 3.554 3.340 - 9.661 9.060 8.176 7.395 6.884 6.522 6.074 5.447 4.794 4.375 4.328 4.553 4.797 4.858 4.711 4.474 4.291 4.246 4.380 4.740 5.353 6.126 6.780 6.942 6.379 5.215 3.930 3.106 3.081 3.740 4.599 5.102 4.941 4.203 3.287 2.671 - 6.508 6.571 6.667 6.720 6.605 6.209 5.530 4.725 4.061 3.772 3.911 4.319 4.722 4.900 4.808 4.568 4.364 4.330 4.495 4.819 5.234 5.659 5.977 6.039 5.722 5.038 4.190 3.513 3.298 3.598 4.172 4.598 4.538 3.951 3.137 2.561 - 5.681 5.330 4.888 4.663 4.754 4.955 4.914 4.428 3.649 3.020 2.977 3.612 4.573 5.288 5.350 4.790 4.034 3.588 3.699 4.233 4.842 5.226 5.296 5.115 4.749 4.197 3.481 2.766 2.355 2.478 3.059 3.679 3.834 3.317 2.411 1.718 - 7.814 7.583 7.215 6.833 6.512 6.250 6.005 5.767 5.595 5.586 5.787 6.133 6.467 6.643 6.632 6.557 6.597 6.855 7.269 7.651 7.829 7.773 7.617 7.548 7.661 7.904 8.127 8.221 8.190 8.129 8.121 8.160 8.166 8.073 7.910 7.780 - 16.145 16.190 16.090 15.709 15.188 14.875 15.001 15.407 15.615 15.202 14.172 12.965 12.117 11.867 12.048 12.322 12.488 12.576 12.678 12.743 12.587 12.115 11.507 11.131 11.229 11.676 12.062 12.046 11.655 11.248 11.165 11.413 11.675 11.633 11.288 10.958 - 18.063 17.829 17.381 16.809 16.284 15.973 15.907 15.916 15.729 15.171 14.300 13.372 12.661 12.301 12.256 12.420 12.706 13.035 13.274 13.241 12.829 12.154 11.553 11.371 11.692 12.232 12.541 12.349 11.770 11.197 10.956 11.048 11.192 11.110 10.798 10.513 - 17.745 17.228 16.329 15.290 14.394 13.835 13.614 13.535 13.339 12.873 12.167 11.374 10.633 10.005 9.519 9.256 9.329 9.755 10.335 10.719 10.652 10.207 9.781 9.797 10.347 11.091 11.524 11.401 10.941 10.625 10.761 11.200 11.480 11.255 10.634 10.105 - 16.414 15.305 13.583 11.946 10.889 10.469 10.370 10.203 9.791 9.257 8.848 8.689 8.667 8.552 8.244 7.904 7.844 8.253 8.992 9.669 9.933 9.761 9.482 9.496 9.941 10.572 10.968 10.891 10.480 10.119 10.106 10.414 10.744 10.817 10.624 10.406 - 12.015 11.456 10.525 9.507 8.666 8.141 7.923 7.905 7.971 8.045 8.091 8.074 7.948 7.688 7.354 7.098 7.088 7.386 7.878 8.330 8.551 8.535 8.463 8.564 8.929 9.446 9.902 10.152 10.225 10.264 10.366 10.484 10.471 10.240 9.877 9.602 - 9.955 9.545 8.960 8.473 8.191 8.015 7.782 7.442 7.078 6.784 6.543 6.252 5.892 5.644 5.805 6.532 7.648 8.692 9.224 9.135 8.713 8.407 8.492 8.907 9.362 9.610 9.624 9.565 9.607 9.798 10.059 10.300 10.490 10.654 10.802 10.898 - 11.151 10.720 10.096 9.551 9.175 8.869 8.525 8.192 8.050 8.190 8.453 8.514 8.166 7.567 7.167 7.368 8.180 9.183 9.840 9.898 9.544 9.211 9.215 9.537 9.915 10.108 10.090 10.022 10.062 10.224 10.398 10.476 10.451 10.393 10.363 10.362 - 12.629 12.251 11.674 11.107 10.642 10.251 9.907 9.694 9.747 10.077 10.446 10.479 9.956 9.061 8.330 8.308 9.132 10.398 11.409 11.647 11.112 10.282 9.758 9.855 10.447 11.119 11.483 11.417 11.076 10.733 10.592 10.692 10.943 11.219 11.428 11.535 - 10.315 10.278 10.175 10.000 9.806 9.672 9.620 9.571 9.397 9.028 8.523 8.036 7.713 7.630 7.800 8.211 8.816 9.470 9.921 9.928 9.477 8.881 8.628 9.024 9.907 10.719 10.917 10.432 9.758 9.561 10.122 11.074 11.694 11.512 10.721 10.019 - 9.745 9.962 10.379 10.951 11.586 12.138 12.424 12.293 11.708 10.792 9.794 8.987 8.559 8.563 8.934 9.544 10.232 10.815 11.133 11.131 10.939 10.831 11.053 11.606 12.173 12.311 11.796 10.852 10.049 9.887 10.379 10.996 11.046 10.231 8.926 7.948 - 12.278 11.991 11.720 11.847 12.540 13.600 14.563 14.985 14.702 13.896 12.922 12.075 11.472 11.130 11.113 11.547 12.460 13.583 14.374 14.339 13.433 12.194 11.403 11.497 12.200 12.740 12.506 11.614 10.858 11.024 12.117 13.207 13.090 11.302 8.631 6.665 - 13.058 12.499 11.830 11.671 12.401 13.868 15.411 16.233 15.898 14.603 13.017 11.809 11.239 11.136 11.235 11.520 12.197 13.332 14.521 15.015 14.293 12.591 10.872 10.145 10.692 11.862 12.668 12.655 12.251 12.270 12.999 13.756 13.399 11.396 8.504 6.383 - 13.341 12.896 12.276 11.931 12.259 13.317 14.663 15.540 15.363 14.163 12.589 11.433 11.035 11.113 11.148 10.960 10.898 11.438 12.570 13.626 13.784 12.846 11.519 10.895 11.524 12.939 14.075 14.212 13.576 13.005 13.032 13.257 12.682 10.734 8.015 6.025 - 13.401 13.157 12.753 12.436 12.570 13.366 14.582 15.529 15.517 14.424 12.855 11.698 11.410 11.691 11.860 11.577 11.203 11.427 12.497 13.821 14.390 13.669 12.130 10.891 10.779 11.673 12.731 13.260 13.341 13.591 14.312 14.923 14.341 12.054 8.869 6.553 - 13.588 13.334 12.916 12.570 12.623 13.268 14.297 15.102 15.054 14.004 12.467 11.271 10.927 11.255 11.611 11.511 11.085 10.936 11.549 12.784 13.950 14.369 13.930 13.126 12.594 12.609 12.988 13.425 13.829 14.304 14.809 14.921 14.075 12.132 9.745 8.089 - 13.544 13.233 12.757 12.388 12.431 13.012 13.904 14.568 14.477 13.511 12.095 10.931 10.494 10.699 11.024 10.978 10.528 10.105 10.215 10.997 12.108 13.014 13.399 13.349 13.199 13.225 13.476 13.838 14.197 14.487 14.604 14.335 13.469 12.046 10.492 9.467 - 13.408 12.794 12.002 11.588 11.833 12.573 13.334 13.661 13.366 12.574 11.580 10.681 10.075 9.829 9.875 10.037 10.096 9.938 9.675 9.623 10.101 11.165 12.501 13.583 14.017 13.805 13.319 13.015 13.098 13.402 13.551 13.249 12.475 11.468 10.565 10.043 - 13.176 12.626 11.930 11.564 11.707 12.150 12.516 12.569 12.321 11.902 11.376 10.722 9.984 9.372 9.165 9.457 10.023 10.458 10.520 10.341 10.294 10.628 11.205 11.605 11.519 11.059 10.682 10.789 11.372 12.024 12.311 12.142 11.805 11.658 11.791 11.984 - 13.515 12.961 12.259 11.870 11.938 12.226 12.387 12.274 11.988 11.669 11.293 10.716 9.933 9.219 8.970 9.346 10.076 10.657 10.796 10.651 10.640 10.957 11.303 11.119 10.153 8.808 7.925 8.122 9.287 10.669 11.498 11.570 11.296 11.220 11.496 11.817 - 13.455 12.996 12.411 12.080 12.122 12.346 12.478 12.399 12.177 11.893 11.496 10.878 10.088 9.420 9.224 9.582 10.186 10.582 10.582 10.442 10.586 11.111 11.565 11.268 9.952 8.138 6.867 6.953 8.369 10.280 11.676 12.069 11.689 11.117 10.757 10.642 - 13.325 12.928 12.435 12.162 12.158 12.204 12.081 11.796 11.541 11.422 11.285 10.855 10.075 9.268 8.917 9.225 9.897 10.387 10.409 10.211 10.305 10.885 11.497 11.345 10.017 7.985 6.390 6.225 7.605 9.703 11.399 12.053 11.803 11.226 10.792 10.615 - 12.802 12.434 11.979 11.722 11.700 11.715 11.598 11.401 11.303 11.333 11.231 10.659 9.589 8.443 7.796 7.873 8.342 8.645 8.573 8.511 9.061 10.341 11.666 11.984 10.763 8.546 6.639 6.143 7.158 8.804 10.020 10.379 10.255 10.272 10.641 11.035 - 12.203 11.892 11.546 11.421 11.489 11.483 11.212 10.783 10.481 10.405 10.273 9.658 8.455 7.118 6.363 6.578 7.486 8.413 8.912 9.149 9.646 10.623 11.598 11.702 10.471 8.385 6.610 6.126 6.986 8.366 9.326 9.568 9.532 9.809 10.489 11.090 - 12.418 11.835 11.097 10.697 10.798 11.161 11.417 11.369 11.053 10.543 9.806 8.795 7.688 6.948 7.028 7.956 9.211 10.094 10.312 10.210 10.413 11.155 11.954 11.980 10.832 9.002 7.567 7.327 8.168 9.195 9.526 9.013 8.259 7.967 8.271 8.690 - 11.245 11.167 11.170 11.380 11.714 11.916 11.767 11.265 10.590 9.917 9.295 8.733 8.374 8.523 9.395 10.805 12.141 12.730 12.364 11.489 10.859 10.904 11.360 11.515 10.852 9.538 8.306 7.850 8.266 9.030 9.497 9.443 9.156 9.062 9.280 9.545 - 10.455 10.409 10.455 10.705 11.102 11.437 11.521 11.331 10.971 10.521 9.949 9.216 8.469 8.098 8.499 9.713 11.269 12.421 12.649 12.015 11.089 10.484 10.405 10.569 10.534 10.111 9.512 9.120 9.153 9.515 9.949 10.295 10.593 10.953 11.361 11.651 - 9.094 9.010 8.999 9.186 9.499 9.711 9.658 9.406 9.172 9.071 8.961 8.577 7.853 7.108 6.876 7.479 8.711 9.948 10.601 10.540 10.122 9.836 9.890 10.107 10.185 10.033 9.845 9.888 10.216 10.635 10.929 11.099 11.367 11.912 12.627 13.147 - 8.325 8.057 7.873 8.090 8.616 8.971 8.721 7.902 7.016 6.604 6.782 7.189 7.377 7.268 7.220 7.650 8.588 9.585 10.093 9.934 9.447 9.168 9.369 9.873 10.286 10.394 10.332 10.400 10.745 11.235 11.629 11.844 12.025 12.349 12.801 13.143 - 7.500 7.570 7.687 7.817 7.927 8.001 8.041 8.069 8.118 8.214 8.358 8.517 8.648 8.736 8.826 9.002 9.317 9.727 10.081 10.209 10.044 9.690 9.368 9.268 9.424 9.708 9.955 10.123 10.327 10.739 11.419 12.232 12.930 13.328 13.434 13.410 - 6.472 6.779 7.143 7.304 7.232 7.150 7.302 7.709 8.133 8.296 8.143 7.905 7.896 8.252 8.824 9.332 9.598 9.665 9.698 9.800 9.933 9.991 9.950 9.906 9.980 10.198 10.479 10.745 11.035 11.475 12.136 12.913 13.563 13.892 13.916 13.834 - 7.525 7.227 6.853 6.682 6.854 7.296 7.805 8.202 8.437 8.563 8.652 8.744 8.857 9.029 9.316 9.731 10.199 10.577 10.750 10.723 10.615 10.564 10.623 10.733 10.804 10.811 10.831 10.983 11.328 11.836 12.420 13.009 13.574 14.099 14.532 14.784 - 9.769 9.568 9.310 9.167 9.206 9.342 9.412 9.297 9.002 8.635 8.326 8.163 8.192 8.449 8.970 9.736 10.617 11.373 11.759 11.676 11.255 10.797 10.597 10.771 11.203 11.647 11.908 11.971 11.989 12.152 12.548 13.104 13.653 14.052 14.260 14.333 - 10.296 10.691 11.318 11.958 12.447 12.717 12.734 12.450 11.831 10.944 10.017 9.365 9.229 9.620 10.317 11.001 11.433 11.552 11.449 11.282 11.203 11.309 11.621 12.037 12.350 12.343 11.959 11.411 11.107 11.386 12.251 13.316 14.048 14.154 13.784 13.402 - 12.135 11.956 11.996 12.647 13.853 15.064 15.620 15.254 14.266 13.236 12.546 12.154 11.777 11.289 10.916 11.021 11.693 12.531 12.890 12.410 11.377 10.565 10.661 11.694 12.969 13.550 12.955 11.516 10.133 9.627 10.168 11.212 11.948 11.910 11.286 10.705 - 13.063 12.538 12.084 12.371 13.551 15.088 16.155 16.239 15.459 14.380 13.521 13.022 12.720 12.478 12.409 12.745 13.495 14.258 14.435 13.722 12.434 11.366 11.214 12.018 13.078 13.452 12.652 11.029 9.515 8.950 9.479 10.485 11.087 10.808 9.909 9.146 - 13.027 12.540 12.062 12.172 13.064 14.389 15.530 16.039 15.879 15.322 14.656 14.006 13.400 12.945 12.871 13.357 14.283 15.189 15.540 15.105 14.149 13.248 12.874 13.063 13.433 13.510 13.095 12.387 11.791 11.586 11.724 11.890 11.758 11.240 10.553 10.070 - 12.816 12.333 11.851 11.952 12.857 14.255 15.536 16.210 16.176 15.659 14.942 14.169 13.374 12.679 12.375 12.770 13.882 15.280 16.272 16.343 15.521 14.372 13.586 13.485 13.816 14.004 13.651 12.864 12.168 12.047 12.519 13.077 13.076 12.258 10.997 10.062 - 12.396 12.096 11.780 11.835 12.504 13.705 15.052 16.051 16.360 15.940 15.012 13.890 12.842 12.066 11.742 12.025 12.917 14.124 15.092 15.304 14.656 13.599 12.845 12.822 13.320 13.659 13.291 12.344 11.583 11.768 12.918 14.138 14.248 12.759 10.377 8.591 - 12.283 12.149 12.042 12.203 12.826 13.916 15.226 16.338 16.854 16.600 15.704 14.524 13.476 12.888 12.932 13.596 14.661 15.702 16.201 15.797 14.550 13.003 11.900 11.718 12.331 13.121 13.465 13.226 12.827 12.824 13.327 13.814 13.525 12.152 10.224 8.826 - 12.231 12.072 11.948 12.123 12.769 13.843 15.093 16.164 16.742 16.673 16.008 14.989 13.969 13.308 13.246 13.805 14.750 15.672 16.157 15.983 15.219 14.173 13.207 12.552 12.232 12.131 12.146 12.272 12.563 12.996 13.374 13.387 12.807 11.700 10.463 9.648 - 12.126 11.952 11.788 11.890 12.433 13.413 14.639 15.803 16.583 16.739 16.205 15.151 13.972 13.162 13.091 13.793 14.912 15.885 16.258 15.945 15.253 14.642 14.394 14.440 14.456 14.159 13.562 12.984 12.808 13.158 13.747 14.032 13.577 12.379 10.930 9.948 - 11.802 11.696 11.623 11.791 12.369 13.381 14.660 15.876 16.643 16.687 15.983 14.815 13.684 13.096 13.307 14.175 15.214 15.853 15.752 14.993 14.003 13.265 13.002 13.049 13.024 12.659 12.050 11.629 11.832 12.709 13.771 14.225 13.479 11.592 9.344 7.829 - 11.711 11.676 11.673 11.832 12.313 13.220 14.493 15.849 16.851 17.098 16.459 15.193 13.871 13.105 13.232 14.132 15.301 16.148 16.318 15.871 15.190 14.695 14.557 14.606 14.494 13.989 13.192 12.502 12.330 12.780 13.503 13.881 13.423 12.125 10.532 9.446 - 11.687 11.701 11.754 11.930 12.376 13.221 14.447 15.792 16.798 17.034 16.364 15.086 13.817 13.169 13.396 14.260 15.197 15.676 15.520 14.967 14.451 14.268 14.368 14.420 14.096 13.353 12.503 12.018 12.196 12.918 13.672 13.836 13.058 11.492 9.756 8.625 - 12.013 12.009 12.056 12.257 12.726 13.542 14.666 15.882 16.825 17.116 16.588 15.457 14.277 13.667 13.931 14.847 15.799 16.194 15.866 15.164 14.654 14.653 14.970 15.069 14.521 13.395 12.261 11.800 12.310 13.466 14.508 14.695 13.740 11.954 10.068 8.876 - 11.889 11.772 11.712 11.925 12.522 13.454 14.563 15.644 16.464 16.777 16.415 15.453 14.306 13.576 13.696 14.592 15.676 16.240 15.964 15.143 14.416 14.226 14.459 14.576 14.126 13.185 12.340 12.216 12.952 14.053 14.728 14.419 13.126 11.337 9.708 8.762 - 11.737 11.652 11.615 11.803 12.324 13.176 14.261 15.402 16.349 16.801 16.539 15.612 14.436 13.639 13.688 14.547 15.650 16.274 16.044 15.184 14.302 13.881 13.896 13.881 13.382 12.397 11.440 11.143 11.750 12.888 13.791 13.787 12.701 10.914 9.131 8.038 - 11.350 11.421 11.552 11.758 12.125 12.793 13.860 15.222 16.499 17.157 16.832 15.646 14.255 13.490 13.797 14.890 15.920 16.094 15.272 14.059 13.302 13.386 13.918 14.073 13.312 11.875 10.623 10.372 11.266 12.674 13.671 13.669 12.725 11.360 10.160 9.492 - 11.439 11.554 11.745 11.988 12.347 12.972 13.996 15.345 16.639 17.305 16.945 15.702 14.310 13.686 14.290 15.730 16.987 17.144 16.085 14.573 13.632 13.708 14.313 14.464 13.544 11.867 10.467 10.280 11.407 13.043 14.080 13.869 12.557 10.820 9.355 8.561 - 11.621 11.760 11.974 12.217 12.553 13.151 14.141 15.424 16.596 17.125 16.719 15.627 14.597 14.418 15.340 16.802 17.768 17.460 15.952 14.142 13.077 13.153 13.831 14.101 13.326 11.779 10.437 10.211 11.243 12.809 13.853 13.704 12.421 10.622 9.024 8.121 - 11.456 11.668 11.945 12.184 12.492 13.140 14.291 15.734 16.906 17.237 16.597 15.465 14.657 14.768 15.738 16.884 17.377 16.830 15.550 14.294 13.710 13.888 14.345 14.416 13.752 12.555 11.405 10.838 10.993 11.554 11.989 11.888 11.175 10.096 9.057 8.431 - 11.144 11.355 11.642 11.909 12.259 12.949 14.124 15.571 16.728 17.030 16.356 15.201 14.402 14.547 15.520 16.547 16.736 15.738 14.017 12.520 11.981 12.394 13.054 13.120 12.265 10.914 9.907 9.862 10.745 11.921 12.620 12.430 11.475 10.220 9.149 8.558 - 11.016 11.212 11.468 11.708 12.088 12.894 14.232 15.769 16.836 16.883 15.952 14.737 14.137 14.598 15.747 16.638 16.431 15.011 13.069 11.608 11.241 11.796 12.504 12.582 11.788 10.550 9.640 9.638 10.565 11.894 12.885 12.992 12.121 10.628 9.122 8.192 - 11.461 11.605 11.820 12.112 12.647 13.628 15.012 16.363 17.053 16.728 15.657 14.628 14.401 15.124 16.186 16.644 15.927 14.253 12.475 11.467 11.532 12.258 12.870 12.787 11.979 10.925 10.256 10.369 11.215 12.354 13.180 13.207 12.291 10.710 9.062 8.019 - 11.784 11.804 11.890 12.164 12.802 13.881 15.208 16.311 16.696 16.212 15.242 14.500 14.527 15.273 16.102 16.242 15.362 13.811 12.360 11.632 11.678 11.996 11.946 11.235 10.113 9.174 8.945 9.571 10.748 11.929 12.595 12.477 11.628 10.369 9.157 8.421 - 11.415 11.452 11.564 11.870 12.549 13.669 14.991 15.989 16.163 15.462 14.420 13.835 14.158 15.106 15.823 15.525 14.109 12.236 10.839 10.445 10.853 11.382 11.421 10.846 10.002 9.370 9.237 9.594 10.249 10.970 11.533 11.717 11.370 10.543 9.557 8.887 - 11.065 11.104 11.252 11.668 12.525 13.823 15.222 16.122 16.034 15.015 13.752 13.147 13.641 14.829 15.700 15.388 13.824 11.805 10.396 10.172 10.872 11.687 11.904 11.365 10.458 9.729 9.508 9.791 10.370 10.997 11.449 11.519 11.070 10.161 9.117 8.417 - 11.232 11.271 11.474 12.021 13.009 14.302 15.490 16.057 15.708 14.644 13.529 13.096 13.635 14.738 15.540 15.309 13.973 12.180 10.854 10.577 11.232 12.160 12.644 12.372 11.558 10.719 10.313 10.496 11.098 11.759 12.103 11.882 11.058 9.840 8.631 7.879 - 10.182 10.516 11.204 12.242 13.531 14.822 15.744 15.958 15.374 14.284 13.277 12.915 13.380 14.327 15.076 15.050 14.135 12.741 11.508 10.900 10.953 11.334 11.623 11.575 11.219 10.754 10.382 10.208 10.228 10.375 10.562 10.699 10.719 10.611 10.439 10.311 - 9.227 9.093 9.226 10.061 11.637 13.427 14.610 14.586 13.390 11.696 10.429 10.220 11.063 12.356 13.288 13.297 12.337 10.844 9.448 8.623 8.481 8.784 9.147 9.274 9.101 8.773 8.489 8.359 8.355 8.387 8.417 8.510 8.771 9.219 9.723 10.062 - 8.956 9.310 10.063 11.191 12.480 13.531 13.929 13.482 12.378 11.127 10.316 10.297 11.020 12.067 12.892 13.086 12.546 11.470 10.206 9.079 8.276 7.831 7.672 7.694 7.797 7.902 7.953 7.929 7.864 7.841 7.972 8.337 8.937 9.663 10.323 10.717 - 6.075 5.945 6.019 6.703 8.123 9.911 11.307 11.556 10.387 8.258 6.171 5.139 5.606 7.189 8.922 9.833 9.484 8.160 6.609 5.556 5.326 5.753 6.389 6.805 6.786 6.372 5.761 5.201 4.890 4.934 5.315 5.909 6.536 7.046 7.368 7.514 - 5.861 5.896 6.008 6.306 6.931 7.909 8.993 9.686 9.512 8.391 6.809 5.591 5.385 6.226 7.520 8.452 8.523 7.823 6.864 6.178 5.979 6.122 6.306 6.299 6.038 5.591 5.082 4.661 4.480 4.626 5.034 5.465 5.633 5.411 4.946 4.576 - 6.616 6.156 5.624 5.548 6.238 7.556 8.949 9.749 9.559 8.491 7.104 6.085 5.854 6.345 7.092 7.539 7.375 6.682 5.836 5.239 5.087 5.286 5.554 5.616 5.351 4.838 4.287 3.913 3.829 3.999 4.258 4.406 4.310 3.983 3.576 3.299 - 4.799 4.525 4.295 4.529 5.448 6.878 8.305 9.130 9.003 8.019 6.666 5.562 5.129 5.393 6.024 6.558 6.664 6.300 5.676 5.089 4.733 4.622 4.623 4.589 4.452 4.257 4.104 4.064 4.130 4.227 4.259 4.172 3.972 3.719 3.493 3.361 - 5.209 4.850 4.402 4.282 4.825 6.043 7.532 8.620 8.743 7.806 6.278 4.924 4.339 4.612 5.345 5.979 6.163 5.886 5.359 4.786 4.252 3.776 3.408 3.229 3.264 3.412 3.512 3.495 3.462 3.586 3.907 4.220 4.213 3.739 3.000 2.446 - 2.922 3.366 4.086 4.916 5.822 6.830 7.812 8.385 8.111 6.880 5.135 3.674 3.139 3.575 4.444 5.054 5.066 4.656 4.253 4.135 4.246 4.338 4.255 4.052 3.874 3.772 3.662 3.479 3.312 3.342 3.622 3.924 3.871 3.273 2.361 1.679 - 5.768 5.173 4.406 4.036 4.412 5.436 6.628 7.414 7.458 6.824 5.886 5.085 4.695 4.739 5.051 5.410 5.640 5.637 5.364 4.858 4.244 3.710 3.421 3.410 3.539 3.590 3.428 3.120 2.893 2.942 3.250 3.558 3.550 3.109 2.439 1.944 - 5.529 5.467 5.367 5.357 5.655 6.379 7.312 7.908 7.643 6.479 5.022 4.146 4.341 5.334 6.303 6.528 5.918 4.980 4.307 4.090 4.068 3.918 3.621 3.452 3.607 3.918 3.969 3.542 2.907 2.625 3.003 3.727 4.070 3.545 2.394 1.453 - 4.497 4.438 4.267 4.042 4.026 4.494 5.391 6.226 6.394 5.718 4.688 4.130 4.518 5.554 6.411 6.426 5.636 4.678 4.170 4.189 4.324 4.194 3.873 3.785 4.165 4.695 4.731 3.944 2.749 2.020 2.322 3.356 4.178 4.043 3.079 2.180 - 5.602 5.991 6.620 7.312 7.978 8.610 9.164 9.496 9.444 9.002 8.415 8.056 8.157 8.630 9.135 9.358 9.247 9.008 8.879 8.899 8.896 8.683 8.279 7.922 7.866 8.157 8.597 8.921 9.022 9.010 9.064 9.249 9.460 9.552 9.497 9.407 - 7.363 7.553 7.844 8.168 8.553 9.057 9.608 9.948 9.794 9.108 8.224 7.666 7.769 8.420 9.161 9.551 9.493 9.239 9.092 9.107 9.066 8.750 8.204 7.757 7.736 8.177 8.786 9.196 9.270 9.187 9.230 9.520 9.924 10.223 10.321 10.306 - 5.040 5.327 5.760 6.163 6.438 6.599 6.703 6.754 6.686 6.455 6.140 5.958 6.131 6.705 7.463 8.046 8.192 7.931 7.568 7.456 7.723 8.180 8.482 8.416 8.085 7.834 7.982 8.568 9.322 9.891 10.118 10.158 10.320 10.784 11.423 11.889 - 5.959 5.812 5.651 5.607 5.678 5.753 5.758 5.777 6.004 6.559 7.336 8.050 8.459 8.555 8.569 8.758 9.186 9.686 10.024 10.106 10.031 9.972 10.001 10.050 10.020 9.920 9.885 10.052 10.424 10.880 11.298 11.689 12.167 12.800 13.472 13.917 - 7.799 7.006 6.030 5.600 6.008 6.936 7.772 8.123 8.053 7.923 8.016 8.330 8.683 8.964 9.256 9.707 10.310 10.853 11.092 10.988 10.757 10.672 10.822 11.045 11.115 10.976 10.808 10.855 11.194 11.681 12.103 12.386 12.632 12.970 13.379 13.673 - 6.834 6.881 7.111 7.610 8.250 8.717 8.754 8.386 7.929 7.752 7.998 8.506 8.987 9.285 9.484 9.777 10.241 10.739 11.031 10.994 10.726 10.471 10.418 10.580 10.834 11.054 11.215 11.372 11.575 11.818 12.074 12.360 12.727 13.192 13.664 13.971 - 8.121 8.241 8.351 8.301 8.052 7.730 7.544 7.649 8.033 8.534 8.949 9.168 9.235 9.296 9.491 9.855 10.304 10.693 10.911 10.943 10.867 10.799 10.819 10.932 11.076 11.170 11.184 11.160 11.201 11.408 11.824 12.404 13.041 13.610 14.024 14.237 - 8.559 8.435 8.278 8.218 8.339 8.626 8.975 9.259 9.410 9.449 9.449 9.459 9.467 9.437 9.392 9.437 9.695 10.183 10.735 11.084 11.045 10.661 10.193 9.928 9.980 10.233 10.490 10.678 10.925 11.429 12.233 13.119 13.740 13.886 13.661 13.404 - 8.791 8.129 7.339 7.048 7.495 8.384 9.185 9.561 9.555 9.412 9.283 9.129 8.883 8.667 8.780 9.424 10.437 11.318 11.584 11.157 10.435 9.978 10.077 10.563 11.017 11.150 11.029 10.965 11.212 11.766 12.406 12.907 13.198 13.350 13.447 13.507 - 7.389 7.276 7.176 7.258 7.625 8.240 8.943 9.523 9.826 9.813 9.554 9.196 8.906 8.844 9.115 9.712 10.471 11.098 11.303 10.997 10.396 9.935 9.983 10.571 11.325 11.723 11.495 10.874 10.463 10.791 11.886 13.212 14.041 13.992 13.318 12.700 - 8.964 9.460 10.313 11.282 12.098 12.549 12.553 12.155 11.464 10.588 9.625 8.722 8.109 8.038 8.611 9.630 10.610 11.022 10.626 9.663 8.733 8.421 8.918 9.904 10.779 11.070 10.737 10.164 9.869 10.156 10.930 11.808 12.385 12.494 12.278 12.048 - 11.283 11.220 11.438 12.243 13.506 14.635 14.959 14.235 12.824 11.422 10.577 10.400 10.646 11.029 11.429 11.837 12.141 12.053 11.301 9.939 8.469 7.603 7.806 8.966 10.451 11.507 11.716 11.186 10.397 9.844 9.759 10.065 10.514 10.888 11.102 11.182 - 11.541 11.508 11.743 12.537 13.815 15.068 15.640 15.172 13.861 12.329 11.232 10.901 11.253 11.972 12.737 13.315 13.490 13.016 11.739 9.836 7.936 6.903 7.329 9.079 11.266 12.761 12.917 11.984 10.895 10.554 11.159 12.081 12.394 11.638 10.216 9.105 - 11.936 11.902 12.109 12.826 14.007 15.223 15.905 15.718 14.757 13.456 12.303 11.603 11.433 11.742 12.417 13.241 13.836 13.744 12.708 10.960 9.250 8.481 9.128 10.858 12.680 13.560 13.115 11.865 10.849 10.865 11.888 13.104 13.526 12.748 11.260 10.104 - 11.565 11.577 11.803 12.458 13.531 14.714 15.541 15.655 15.008 13.868 12.665 11.786 11.461 11.738 12.502 13.478 14.251 14.382 13.630 12.170 10.613 9.737 10.025 11.319 12.861 13.753 13.540 12.513 11.487 11.206 11.814 12.768 13.282 12.940 12.017 11.249 - 11.279 11.080 11.065 11.652 12.907 14.417 15.545 15.835 15.258 14.147 12.947 11.988 11.458 11.459 12.025 13.015 14.030 14.514 14.083 12.837 11.405 10.602 10.898 12.091 13.421 14.085 13.758 12.778 11.863 11.593 12.035 12.751 13.170 13.005 12.444 11.967 - 11.453 11.226 11.154 11.669 12.862 14.358 15.537 15.922 15.429 14.337 13.066 11.986 11.352 11.324 11.933 12.981 14.001 14.420 13.899 12.623 11.272 10.627 11.062 12.273 13.482 13.959 13.509 12.559 11.819 11.765 12.325 12.974 13.141 12.629 11.745 11.077 - 11.621 11.513 11.558 12.044 13.025 14.238 15.261 15.749 15.572 14.811 13.681 12.495 11.644 11.491 12.160 13.347 14.377 14.571 13.709 12.244 11.042 10.813 11.628 12.904 13.848 14.006 13.509 12.874 12.556 12.640 12.867 12.899 12.581 12.017 11.446 11.098 - 11.381 11.280 11.318 11.767 12.685 13.846 14.869 15.433 15.403 14.828 13.891 12.884 12.186 12.154 12.908 14.146 15.201 15.403 14.529 13.012 11.702 11.313 11.957 13.109 14.014 14.204 13.747 13.079 12.616 12.475 12.481 12.392 12.102 11.687 11.307 11.087 - 11.104 10.833 10.663 11.031 12.076 13.509 14.791 15.456 15.330 14.549 13.431 12.362 11.720 11.784 12.579 13.755 14.649 14.619 13.466 11.637 9.996 9.298 9.721 10.799 11.800 12.231 12.103 11.788 11.646 11.744 11.858 11.705 11.176 10.405 9.666 9.222 - 11.227 11.055 11.004 11.416 12.399 13.724 14.961 15.717 15.797 15.229 14.224 13.132 12.395 12.390 13.198 14.443 15.407 15.442 14.420 12.873 11.661 11.392 12.024 12.953 13.509 13.434 12.976 12.586 12.501 12.593 12.563 12.248 11.751 11.306 11.059 10.980 - 11.589 11.484 11.515 11.947 12.836 13.972 15.015 15.685 15.833 15.429 14.547 13.436 12.551 12.389 13.148 14.449 15.447 15.357 14.039 12.184 10.859 10.756 11.715 12.898 13.472 13.211 12.542 12.079 12.069 12.264 12.247 11.869 11.357 11.052 11.058 11.180 - 11.461 11.485 11.631 12.028 12.742 13.708 14.720 15.481 15.711 15.276 14.306 13.204 12.502 12.582 13.409 14.488 15.103 14.759 13.506 11.929 10.773 10.471 10.901 11.546 11.897 11.802 11.481 11.266 11.295 11.420 11.366 10.973 10.316 9.618 9.084 8.810 - 11.233 11.131 11.149 11.552 12.426 13.596 14.714 15.433 15.534 14.991 13.989 12.913 12.265 12.435 13.426 14.719 15.482 15.065 13.470 11.415 9.897 9.540 10.213 11.200 11.767 11.663 11.188 10.818 10.768 10.861 10.768 10.339 9.727 9.212 8.945 8.870 - 11.395 11.256 11.232 11.624 12.538 13.785 14.975 15.716 15.778 15.164 14.115 13.060 12.497 12.772 13.833 15.147 15.924 15.587 14.183 12.406 11.161 10.968 11.645 12.510 12.917 12.693 12.144 11.684 11.460 11.292 10.936 10.384 9.889 9.710 9.850 10.050 - 11.669 11.571 11.589 11.976 12.813 13.924 14.969 15.618 15.690 15.198 14.340 13.463 12.969 13.140 13.942 14.952 15.534 15.229 14.084 12.661 11.674 11.507 11.984 12.568 12.803 12.633 12.346 12.221 12.246 12.143 11.679 10.931 10.250 9.953 10.045 10.237 - 11.623 11.568 11.602 11.907 12.573 13.518 14.503 15.230 15.463 15.136 14.398 13.590 13.107 13.202 13.820 14.576 14.947 14.589 13.581 12.402 11.652 11.667 12.322 13.139 13.614 13.520 12.980 12.293 11.695 11.240 10.854 10.473 10.119 9.861 9.729 9.689 - 11.394 11.157 10.929 11.033 11.647 12.687 13.851 14.770 15.169 14.972 14.330 13.577 13.108 13.188 13.786 14.530 14.894 14.529 13.515 12.354 11.650 11.717 12.390 13.179 13.624 13.563 13.130 12.531 11.847 11.046 10.155 9.388 9.045 9.259 9.821 10.284 - 11.091 11.089 11.060 11.066 11.307 12.006 13.161 14.416 15.210 15.151 14.341 13.351 12.847 13.126 13.930 14.658 14.798 14.256 13.350 12.544 12.153 12.229 12.638 13.197 13.727 14.048 13.971 13.382 12.343 11.132 10.131 9.642 9.738 10.245 10.848 11.240 - 11.808 11.475 10.962 10.581 10.709 11.556 12.930 14.230 14.775 14.281 13.103 12.024 11.717 12.291 13.272 14.005 14.123 13.717 13.127 12.618 12.235 11.937 11.783 11.930 12.431 13.049 13.329 12.921 11.875 10.649 9.797 9.595 9.921 10.424 10.817 11.004 - 10.844 11.102 11.307 11.233 11.076 11.319 12.197 13.324 13.919 13.487 12.343 11.425 11.522 12.601 13.834 14.318 13.813 12.835 12.095 11.837 11.734 11.385 10.852 10.666 11.259 12.398 13.227 12.927 11.432 9.525 8.245 8.124 8.908 9.917 10.631 10.938 - 10.006 10.616 11.191 11.134 10.562 10.236 10.795 12.045 13.045 12.962 11.885 10.813 10.771 11.890 13.280 13.823 13.128 11.786 10.732 10.387 10.387 10.116 9.449 8.922 9.174 10.212 11.263 11.383 10.273 8.551 7.250 7.030 7.778 8.873 9.743 10.171 - 10.082 10.331 10.402 9.973 9.294 9.057 9.718 10.962 11.873 11.741 10.739 9.816 9.860 10.886 12.011 12.248 11.364 10.031 9.151 9.039 9.230 9.058 8.400 7.836 8.056 9.115 10.258 10.514 9.520 7.829 6.461 6.132 6.821 7.959 8.944 9.468 - 9.232 9.434 9.496 9.117 8.417 7.893 7.980 8.628 9.328 9.561 9.257 8.826 8.745 9.107 9.564 9.692 9.394 8.946 8.657 8.528 8.279 7.723 7.076 6.853 7.387 8.431 9.255 9.207 8.249 6.998 6.229 6.299 6.966 7.705 8.164 8.329 - 8.254 8.123 7.641 6.707 5.641 5.087 5.540 6.891 8.445 9.415 9.504 9.069 8.751 8.920 9.404 9.711 9.497 8.833 8.087 7.566 7.295 7.102 6.879 6.723 6.825 7.228 7.732 8.038 7.999 7.732 7.492 7.441 7.542 7.649 7.673 7.647 - 7.188 7.075 6.692 6.002 5.315 5.151 5.807 7.014 8.053 8.288 7.672 6.781 6.351 6.696 7.518 8.211 8.358 7.976 7.363 6.768 6.233 5.722 5.330 5.295 5.768 6.591 7.332 7.615 7.420 7.088 7.006 7.269 7.640 7.811 7.713 7.547 - 4.346 4.366 4.460 4.702 5.131 5.710 6.322 6.811 7.057 7.040 6.862 6.690 6.662 6.802 7.001 7.084 6.936 6.580 6.171 5.896 5.844 5.946 6.033 5.959 5.717 5.448 5.342 5.510 5.909 6.377 6.747 6.936 6.969 6.929 6.886 6.865 - 4.372 4.540 4.845 5.231 5.639 6.028 6.375 6.655 6.806 6.735 6.390 5.840 5.300 5.021 5.114 5.441 5.687 5.591 5.163 4.705 4.589 4.964 5.618 6.129 6.180 5.795 5.308 5.098 5.321 5.824 6.308 6.551 6.536 6.390 6.250 6.177 - 4.331 4.539 4.891 5.314 5.767 6.209 6.527 6.545 6.145 5.416 4.686 4.347 4.590 5.268 5.998 6.439 6.499 6.331 6.141 6.009 5.881 5.708 5.546 5.505 5.602 5.687 5.560 5.190 4.799 4.708 5.033 5.540 5.795 5.534 4.912 4.399 - 5.761 5.468 5.142 5.106 5.499 6.160 6.723 6.846 6.411 5.581 4.700 4.122 4.067 4.558 5.423 6.366 7.068 7.313 7.093 6.603 6.135 5.902 5.905 5.955 5.829 5.454 4.995 4.750 4.958 5.616 6.466 7.137 7.365 7.134 6.679 6.333 - 4.812 4.588 4.314 4.207 4.380 4.768 5.178 5.406 5.331 4.951 4.392 3.889 3.741 4.200 5.301 6.756 8.014 8.528 8.082 6.948 5.746 5.062 5.095 5.569 5.975 5.952 5.532 5.080 5.003 5.454 6.229 6.922 7.198 6.992 6.532 6.173 - 5.089 4.668 4.143 3.891 4.052 4.452 4.779 4.842 4.683 4.474 4.346 4.325 4.414 4.690 5.265 6.128 7.031 7.575 7.483 6.825 5.990 5.409 5.238 5.280 5.197 4.829 4.350 4.125 4.412 5.153 6.005 6.580 6.679 6.374 5.923 5.611 - 4.546 4.158 3.641 3.330 3.415 3.825 4.299 4.563 4.492 4.161 3.777 3.569 3.677 4.094 4.661 5.136 5.307 5.126 4.756 4.478 4.501 4.801 5.113 5.128 4.721 4.065 3.503 3.305 3.481 3.807 4.019 4.012 3.872 3.754 3.731 3.756 - 5.325 5.095 4.871 4.892 5.177 5.503 5.629 5.509 5.309 5.213 5.234 5.239 5.140 5.062 5.260 5.859 6.665 7.252 7.294 6.831 6.235 5.900 5.931 6.115 6.178 6.061 5.962 6.101 6.467 6.807 6.847 6.556 6.165 5.946 5.968 6.072 - 7.658 7.813 8.112 8.492 8.824 8.974 8.911 8.742 8.629 8.652 8.743 8.782 8.757 8.832 9.229 10.001 10.912 11.551 11.612 11.116 10.383 9.798 9.555 9.588 9.726 9.872 10.063 10.358 10.703 10.928 10.887 10.600 10.249 10.029 9.992 10.034 - 5.766 6.104 6.583 6.931 6.966 6.708 6.356 6.141 6.155 6.289 6.333 6.176 5.943 5.944 6.449 7.456 8.629 9.482 9.671 9.203 8.396 7.656 7.243 7.182 7.349 7.618 7.930 8.257 8.537 8.668 8.588 8.342 8.065 7.888 7.841 7.858 - 5.260 6.149 7.341 8.028 7.699 6.480 5.073 4.303 4.569 5.576 6.562 6.865 6.421 5.807 5.777 6.665 8.103 9.302 9.638 9.099 8.234 7.686 7.718 8.092 8.362 8.284 7.984 7.785 7.889 8.212 8.487 8.511 8.285 7.968 7.716 7.592 - 5.819 6.021 6.295 6.489 6.551 6.545 6.568 6.656 6.761 6.820 6.830 6.855 6.970 7.210 7.579 8.071 8.667 9.271 9.676 9.652 9.125 8.312 7.650 7.518 7.955 8.616 9.028 8.960 8.588 8.316 8.401 8.725 8.907 8.670 8.114 7.652 - 4.677 5.094 5.788 6.521 7.050 7.214 7.011 6.606 6.259 6.197 6.491 7.028 7.589 7.997 8.236 8.441 8.771 9.256 9.741 9.987 9.854 9.420 8.937 8.653 8.637 8.759 8.822 8.747 8.634 8.653 8.867 9.145 9.260 9.084 8.716 8.420 - 5.530 6.119 6.833 7.122 6.798 6.172 5.780 5.944 6.528 7.082 7.240 7.024 6.825 7.080 7.930 9.116 10.166 10.711 10.697 10.349 9.989 9.819 9.837 9.890 9.805 9.516 9.114 8.807 8.794 9.136 9.680 10.128 10.205 9.853 9.286 8.865 - 6.414 5.972 5.519 5.517 6.028 6.661 6.951 6.793 6.549 6.697 7.375 8.228 8.725 8.641 8.286 8.241 8.854 9.927 10.866 11.155 10.751 10.072 9.632 9.642 9.909 10.078 9.971 9.725 9.640 9.890 10.352 10.684 10.585 10.019 9.263 8.735 - 4.643 5.125 5.978 6.961 7.733 7.997 7.687 7.063 6.589 6.645 7.260 8.085 8.654 8.744 8.559 8.574 9.153 10.229 11.318 11.851 11.594 10.810 10.051 9.747 9.918 10.225 10.305 10.087 9.832 9.866 10.244 10.659 10.669 10.085 9.169 8.485 - 5.230 5.537 6.113 6.841 7.508 7.881 7.839 7.481 7.097 6.984 7.246 7.715 8.093 8.200 8.152 8.286 8.887 9.911 10.959 11.530 11.384 10.725 10.052 9.779 9.940 10.211 10.225 9.908 9.552 9.546 10.009 10.647 10.971 10.706 10.038 9.486 - 4.830 5.583 6.653 7.469 7.694 7.392 6.904 6.567 6.511 6.650 6.816 6.907 6.939 7.032 7.351 8.041 9.123 10.407 11.497 11.971 11.661 10.823 10.021 9.754 10.089 10.615 10.791 10.399 9.732 9.336 9.523 10.085 10.475 10.292 9.653 9.092 - 6.630 6.702 6.903 7.265 7.712 8.072 8.197 8.088 7.919 7.911 8.148 8.487 8.668 8.544 8.262 8.208 8.725 9.812 11.045 11.819 11.757 10.979 10.026 9.480 9.573 10.077 10.536 10.645 10.448 10.240 10.263 10.495 10.692 10.642 10.372 10.122 - 7.022 6.653 6.313 6.405 6.925 7.454 7.566 7.262 6.995 7.249 8.059 8.927 9.254 8.895 8.337 8.321 9.218 10.698 11.967 12.367 11.844 10.925 10.271 10.207 10.582 10.998 11.162 11.057 10.856 10.727 10.705 10.720 10.697 10.624 10.537 10.481 - 7.405 6.708 6.000 6.022 6.875 7.930 8.397 8.037 7.362 7.144 7.707 8.657 9.274 9.206 8.797 8.767 9.545 10.851 11.915 12.108 11.440 10.507 9.981 10.106 10.592 10.952 10.922 10.621 10.375 10.405 10.673 10.956 11.053 10.922 10.680 10.500 - 7.098 6.762 6.438 6.547 7.234 8.210 8.927 8.961 8.327 7.480 7.008 7.217 7.957 8.785 9.342 9.614 9.867 10.335 10.948 11.364 11.278 10.730 10.117 9.863 10.065 10.406 10.465 10.126 9.709 9.695 10.249 11.015 11.367 10.944 9.997 9.227 - 6.812 6.587 6.321 6.279 6.634 7.338 8.119 8.640 8.718 8.454 8.158 8.112 8.368 8.756 9.073 9.290 9.557 10.010 10.564 10.935 10.885 10.477 10.070 10.014 10.316 10.605 10.472 9.895 9.334 9.360 10.114 11.086 11.471 10.840 9.551 8.523 - 5.843 5.850 6.089 6.790 7.922 9.135 9.948 10.071 9.588 8.880 8.350 8.175 8.268 8.461 8.703 9.104 9.770 10.613 11.310 11.512 11.121 10.413 9.863 9.801 10.178 10.628 10.788 10.606 10.368 10.418 10.812 11.220 11.174 10.480 9.436 8.665 - 6.152 6.791 7.788 8.745 9.365 9.578 9.513 9.355 9.203 9.026 8.736 8.306 7.855 7.622 7.847 8.611 9.741 10.850 11.521 11.533 11.006 10.339 9.966 10.074 10.493 10.834 10.801 10.426 10.047 10.027 10.448 11.019 11.298 11.050 10.450 9.959 - 5.443 6.106 7.121 8.078 8.723 9.070 9.293 9.522 9.697 9.620 9.141 8.334 7.523 7.136 7.476 8.540 10.000 11.340 12.101 12.107 11.554 10.893 10.566 10.737 11.196 11.523 11.404 10.872 10.284 10.039 10.254 10.664 10.835 10.524 9.891 9.386 - 4.671 4.880 5.522 6.718 8.197 9.383 9.823 9.560 9.072 8.826 8.865 8.834 8.421 7.786 7.513 8.116 9.523 11.047 11.894 11.771 11.071 10.498 10.472 10.860 11.200 11.182 10.911 10.744 10.917 11.312 11.590 11.499 11.069 10.538 10.132 9.935 - 5.799 6.067 6.556 7.170 7.791 8.322 8.734 9.064 9.345 9.540 9.543 9.275 8.813 8.408 8.369 8.850 9.724 10.637 11.217 11.303 11.006 10.592 10.292 10.174 10.178 10.235 10.352 10.592 10.979 11.426 11.757 11.805 11.524 11.019 10.496 10.170 - 7.171 6.989 6.801 6.843 7.256 8.000 8.877 9.627 10.027 9.962 9.469 8.745 8.112 7.909 8.318 9.237 10.291 11.021 11.142 10.707 10.057 9.584 9.484 9.683 9.949 10.112 10.186 10.325 10.661 11.157 11.610 11.776 11.531 10.962 10.322 9.905 - 5.701 6.039 6.658 7.444 8.236 8.872 9.256 9.386 9.328 9.155 8.889 8.533 8.143 7.899 8.054 8.784 10.001 11.314 12.185 12.242 11.519 10.463 9.676 9.545 10.027 10.724 11.190 11.238 11.019 10.843 10.904 11.133 11.288 11.191 10.896 10.641 - 5.888 6.331 7.022 7.731 8.345 8.883 9.370 9.728 9.822 9.601 9.200 8.858 8.749 8.881 9.173 9.603 10.243 11.101 11.947 12.351 11.983 10.950 9.826 9.278 9.557 10.303 10.858 10.826 10.402 10.154 10.474 11.182 11.686 11.527 10.825 10.194 - 9.306 8.800 8.173 7.914 8.262 9.073 9.960 10.578 10.798 10.687 10.364 9.917 9.437 9.106 9.167 9.762 10.754 11.729 12.224 12.036 11.365 10.667 10.331 10.416 10.673 10.793 10.695 10.588 10.786 11.400 12.189 12.674 12.466 11.558 10.381 9.565 - 8.372 8.160 7.875 7.732 7.905 8.442 9.218 9.985 10.468 10.489 10.052 9.348 8.691 8.395 8.645 9.422 10.498 11.531 12.209 12.387 12.138 11.690 11.282 11.034 10.913 10.826 10.746 10.769 11.038 11.584 12.220 12.599 12.426 11.694 10.740 10.075 - 4.452 5.459 6.983 8.394 9.323 9.787 9.987 10.030 9.853 9.376 8.700 8.097 7.828 7.965 8.423 9.119 10.072 11.273 12.490 13.254 13.149 12.189 10.914 10.045 9.943 10.369 10.755 10.765 10.608 10.802 11.590 12.590 13.042 12.486 11.241 10.226 - 6.221 6.045 6.050 6.610 7.742 9.018 9.855 9.937 9.417 8.748 8.302 8.127 8.035 7.901 7.888 8.342 9.444 10.936 12.188 12.610 12.087 11.078 10.291 10.169 10.608 11.114 11.253 11.028 10.851 11.149 11.948 12.777 13.022 12.426 11.338 10.499 - 6.610 6.260 6.075 6.614 7.943 9.497 10.464 10.378 9.434 8.295 7.573 7.436 7.629 7.841 8.049 8.515 9.467 10.771 11.916 12.365 11.968 11.093 10.356 10.163 10.438 10.760 10.758 10.443 10.180 10.347 10.969 11.644 11.842 11.338 10.423 9.718 - 7.357 7.126 7.126 7.821 9.165 10.519 11.095 10.566 9.333 8.218 7.839 8.183 8.718 8.920 8.746 8.656 9.165 10.337 11.660 12.406 12.189 11.245 10.226 9.687 9.710 9.942 9.992 9.815 9.735 10.100 10.886 11.614 11.688 10.890 9.623 8.679 - 6.976 6.311 5.843 6.487 8.315 10.360 11.328 10.618 8.796 7.143 6.658 7.361 8.432 9.011 8.932 8.788 9.304 10.615 12.083 12.800 12.327 11.043 9.821 9.340 9.597 10.028 10.056 9.608 9.146 9.221 9.946 10.857 11.267 10.831 9.851 9.060 - 5.785 5.732 6.079 7.215 8.927 10.396 10.768 9.837 8.232 6.936 6.550 6.919 7.421 7.612 7.640 8.051 9.198 10.798 12.060 12.289 11.448 10.197 9.384 9.406 9.967 10.399 10.255 9.673 9.234 9.457 10.352 11.393 11.918 11.631 10.825 10.159 - 6.930 6.754 6.897 7.817 9.375 10.787 11.177 10.261 8.579 7.073 6.391 6.490 6.858 7.074 7.207 7.682 8.796 10.334 11.657 12.173 11.775 10.892 10.119 9.774 9.744 9.712 9.506 9.279 9.352 9.903 10.762 11.494 11.699 11.292 10.574 10.034 - 7.146 6.876 6.928 7.837 9.428 10.814 11.104 10.164 8.740 7.814 7.787 8.235 8.427 8.080 7.649 7.870 9.017 10.576 11.638 11.658 10.873 10.042 9.769 10.035 10.320 10.162 9.604 9.148 9.297 10.113 11.166 11.862 11.858 11.242 10.424 9.869 - 6.493 6.588 7.113 8.283 9.766 10.767 10.628 9.413 7.910 7.027 7.076 7.591 7.831 7.496 7.022 7.174 8.331 10.091 11.549 11.981 11.360 10.279 9.426 9.081 9.050 9.000 8.851 8.844 9.277 10.177 11.203 11.862 11.837 11.195 10.329 9.733 - 6.642 6.785 7.266 8.172 9.216 9.836 9.620 8.696 7.677 7.195 7.406 7.921 8.216 8.138 8.045 8.449 9.491 10.748 11.541 11.472 10.727 9.879 9.403 9.333 9.339 9.119 8.725 8.534 8.903 9.818 10.844 11.395 11.118 10.122 8.910 8.099 - 9.361 8.469 7.502 7.389 8.369 9.764 10.521 10.053 8.678 7.331 6.820 7.265 8.150 8.862 9.203 9.444 9.936 10.672 11.240 11.172 10.390 9.317 8.567 8.483 8.909 9.377 9.525 9.385 9.313 9.629 10.293 10.895 10.961 10.341 9.364 8.640 - 9.817 9.300 8.723 8.581 8.955 9.427 9.445 8.809 7.850 7.150 7.068 7.482 7.976 8.254 8.402 8.762 9.526 10.468 11.050 10.851 9.943 8.874 8.284 8.438 9.067 9.629 9.752 9.509 9.308 9.523 10.156 10.825 11.057 10.666 9.914 9.330 - 7.229 7.039 7.131 7.909 9.174 10.142 10.057 8.852 7.259 6.240 6.237 6.904 7.512 7.647 7.557 7.854 8.877 10.314 11.408 11.553 10.746 9.535 8.560 8.115 8.076 8.169 8.273 8.482 8.926 9.568 10.189 10.547 10.556 10.316 10.018 9.827 - 6.942 6.929 7.134 7.744 8.609 9.256 9.213 8.393 7.192 6.213 5.838 6.008 6.381 6.696 7.007 7.577 8.548 9.692 10.504 10.573 9.912 8.979 8.333 8.230 8.469 8.614 8.396 7.959 7.747 8.128 9.062 10.090 10.651 10.498 9.878 9.345 - 8.201 8.038 7.983 8.257 8.729 8.958 8.583 7.701 6.849 6.572 6.949 7.516 7.693 7.332 6.910 7.143 8.355 10.122 11.520 11.789 10.885 9.473 8.413 8.142 8.446 8.754 8.657 8.231 7.928 8.162 8.949 9.887 10.459 10.420 9.960 9.543 - 8.850 8.194 7.442 7.215 7.647 8.275 8.472 8.010 7.255 6.820 7.002 7.522 7.823 7.629 7.268 7.418 8.479 10.127 11.456 11.642 10.583 9.002 7.909 7.856 8.576 9.268 9.279 8.623 7.921 7.849 8.558 9.535 10.018 9.612 8.619 7.806 - 9.864 9.207 8.284 7.610 7.477 7.778 8.111 8.091 7.634 6.991 6.537 6.476 6.726 7.053 7.333 7.675 8.285 9.179 10.034 10.364 9.902 8.882 7.925 7.600 7.989 8.643 8.975 8.761 8.314 8.175 8.590 9.245 9.517 9.032 8.034 7.233 - 7.815 7.460 7.190 7.415 8.031 8.450 8.120 7.078 5.982 5.575 6.058 6.950 7.547 7.567 7.375 7.598 8.496 9.671 10.378 10.157 9.205 8.199 7.739 7.911 8.320 8.506 8.329 8.021 7.913 8.121 8.468 8.662 8.533 8.136 7.679 7.386 - 7.723 7.688 7.763 8.020 8.275 8.176 7.516 6.499 5.662 5.472 5.939 6.586 6.852 6.584 6.193 6.331 7.322 8.843 10.112 10.442 9.723 8.470 7.423 7.037 7.242 7.606 7.717 7.473 7.083 6.836 6.863 7.064 7.228 7.216 7.061 6.916 - 7.437 6.623 5.777 5.708 6.453 7.224 7.142 6.081 4.830 4.391 5.076 6.233 6.850 6.491 5.704 5.535 6.593 8.488 10.123 10.544 9.631 8.074 6.762 6.148 6.089 6.183 6.193 6.194 6.377 6.791 7.274 7.609 7.699 7.612 7.481 7.398 - 11.575 11.654 11.853 12.181 12.544 12.767 12.708 12.353 11.818 11.253 10.723 10.194 9.616 9.032 8.586 8.425 8.572 8.891 9.180 9.310 9.293 9.223 9.146 8.990 8.624 7.993 7.217 6.559 6.268 6.416 6.853 7.294 7.496 7.395 7.122 6.903 - 13.510 13.560 13.718 14.022 14.407 14.697 14.701 14.330 13.645 12.812 11.995 11.275 10.659 10.138 9.738 9.512 9.482 9.606 9.791 9.957 10.082 10.182 10.254 10.224 9.973 9.421 8.620 7.764 7.105 6.812 6.883 7.160 7.433 7.566 7.562 7.515 - 9.332 9.392 9.851 10.947 12.407 13.516 13.650 12.794 11.543 10.571 10.056 9.597 8.697 7.333 6.072 5.597 6.088 7.034 7.650 7.513 6.869 6.337 6.338 6.745 7.057 6.876 6.248 5.576 5.252 5.359 5.681 5.958 6.085 6.122 6.153 6.186 - 11.323 10.853 10.224 9.858 10.021 10.647 11.366 11.719 11.421 10.502 9.246 7.995 6.966 6.204 5.680 5.404 5.435 5.787 6.322 6.768 6.878 6.609 6.172 5.883 5.934 6.264 6.624 6.788 6.711 6.528 6.397 6.357 6.318 6.180 5.959 5.786 - 10.674 10.374 10.014 9.871 10.021 10.267 10.290 9.905 9.208 8.485 7.970 7.645 7.264 6.590 5.646 4.765 4.371 4.661 5.433 6.202 6.538 6.345 5.897 5.596 5.665 6.013 6.351 6.450 6.311 6.121 6.055 6.127 6.196 6.129 5.937 5.768 - 8.707 8.241 7.646 7.350 7.569 8.136 8.612 8.570 7.874 6.750 5.620 4.830 4.477 4.431 4.512 4.640 4.855 5.197 5.590 5.854 5.838 5.567 5.251 5.130 5.291 5.598 5.809 5.775 5.557 5.361 5.353 5.527 5.725 5.793 5.716 5.615 - 7.804 7.766 7.650 7.431 7.144 6.865 6.645 6.462 6.252 5.991 5.735 5.571 5.525 5.519 5.436 5.243 5.041 4.984 5.131 5.359 5.445 5.248 4.830 4.418 4.224 4.293 4.500 4.690 4.808 4.906 5.028 5.114 5.030 4.708 4.259 3.933 - 7.208 7.507 7.601 7.037 5.951 5.040 4.943 5.633 6.403 6.491 5.747 4.752 4.265 4.556 5.228 5.652 5.572 5.273 5.212 5.505 5.815 5.723 5.190 4.622 4.472 4.788 5.173 5.191 4.808 4.408 4.367 4.637 4.769 4.372 3.552 2.879 - 8.134 8.098 7.911 7.504 6.984 6.573 6.390 6.314 6.086 5.580 4.975 4.632 4.764 5.217 5.587 5.568 5.230 4.947 5.044 5.494 5.943 6.038 5.726 5.259 4.917 4.757 4.624 4.411 4.243 4.376 4.879 5.439 5.542 4.919 3.853 3.033 - 6.678 6.601 6.422 6.158 5.907 5.784 5.809 5.869 5.824 5.653 5.488 5.471 5.576 5.589 5.321 4.847 4.522 4.700 5.386 6.151 6.445 6.045 5.260 4.663 4.605 4.930 5.167 5.008 4.614 4.445 4.778 5.377 5.658 5.223 4.278 3.505 - 6.590 6.228 5.816 5.705 5.977 6.369 6.487 6.144 5.507 4.961 4.781 4.921 5.074 4.959 4.577 4.224 4.240 4.730 5.458 6.025 6.154 5.868 5.429 5.108 4.991 4.971 4.904 4.768 4.683 4.776 5.022 5.210 5.098 4.614 3.959 3.491 - 5.643 5.598 5.612 5.770 6.021 6.189 6.120 5.830 5.517 5.401 5.532 5.736 5.753 5.469 5.035 4.770 4.913 5.428 6.009 6.287 6.086 5.523 4.911 4.534 4.482 4.635 4.788 4.804 4.676 4.497 4.355 4.279 4.235 4.184 4.118 4.069 - 7.997 7.487 6.954 6.917 7.441 8.072 8.250 7.791 7.008 6.375 6.089 5.948 5.645 5.145 4.765 4.868 5.475 6.191 6.520 6.277 5.715 5.254 5.102 5.116 5.014 4.696 4.347 4.232 4.411 4.669 4.729 4.529 4.269 4.194 4.346 4.528 - 6.475 6.855 7.430 7.955 8.276 8.378 8.315 8.100 7.681 7.008 6.141 5.279 4.673 4.484 4.703 5.161 5.640 5.967 6.067 5.962 5.739 5.513 5.379 5.360 5.377 5.299 5.039 4.648 4.302 4.178 4.307 4.526 4.592 4.381 3.992 3.688 - 7.636 7.463 7.322 7.422 7.760 8.090 8.107 7.695 7.022 6.400 6.036 5.897 5.789 5.584 5.362 5.347 5.682 6.247 6.704 6.738 6.302 5.659 5.178 5.048 5.149 5.180 4.942 4.519 4.222 4.315 4.767 5.235 5.307 4.829 4.053 3.470 - 11.775 11.378 10.973 10.967 11.384 11.824 11.799 11.166 10.237 9.502 9.233 9.315 9.434 9.407 9.307 9.302 9.383 9.303 8.789 7.845 6.823 6.172 6.084 6.342 6.519 6.354 5.964 5.728 5.954 6.613 7.352 7.748 7.590 6.983 6.262 5.789 - 11.791 11.530 11.099 10.637 10.274 10.057 9.914 9.694 9.264 8.620 7.921 7.412 7.275 7.507 7.901 8.159 8.058 7.570 6.871 6.240 5.911 5.964 6.296 6.676 6.866 6.740 6.356 5.925 5.691 5.777 6.096 6.397 6.432 6.125 5.645 5.289 - 5.209 6.021 7.138 7.952 8.195 8.053 7.877 7.804 7.645 7.142 6.303 5.496 5.165 5.453 6.060 6.485 6.423 5.986 5.559 5.456 5.693 6.035 6.246 6.275 6.241 6.267 6.358 6.431 6.434 6.404 6.400 6.410 6.337 6.107 5.781 5.538 - 5.417 6.291 7.564 8.608 9.043 8.912 8.533 8.196 7.953 7.669 7.233 6.725 6.377 6.382 6.719 7.159 7.435 7.430 7.236 7.056 7.040 7.195 7.417 7.587 7.658 7.661 7.656 7.688 7.757 7.834 7.872 7.830 7.689 7.472 7.247 7.103 - 7.679 8.034 8.563 9.015 9.203 9.093 8.792 8.445 8.133 7.844 7.530 7.199 6.946 6.897 7.097 7.452 7.773 7.902 7.826 7.679 7.629 7.750 7.974 8.169 8.266 8.316 8.430 8.659 8.924 9.066 8.971 8.666 8.298 8.022 7.894 7.863 - 7.869 7.585 7.344 7.517 8.179 9.010 9.499 9.306 8.488 7.451 6.669 6.406 6.622 7.080 7.524 7.802 7.877 7.782 7.595 7.425 7.390 7.547 7.835 8.078 8.097 7.836 7.432 7.138 7.156 7.495 7.957 8.258 8.205 7.813 7.296 6.938 - 6.927 7.215 7.878 8.903 9.995 10.645 10.428 9.343 7.885 6.755 6.411 6.780 7.363 7.637 7.439 7.038 6.858 7.097 7.568 7.866 7.733 7.282 6.906 6.957 7.447 8.045 8.340 8.168 7.726 7.388 7.403 7.708 8.022 8.102 7.946 7.765 - 9.568 9.880 10.441 11.089 11.570 11.624 11.120 10.163 9.051 8.117 7.555 7.344 7.330 7.363 7.391 7.448 7.567 7.725 7.858 7.925 7.956 8.023 8.175 8.397 8.624 8.806 8.937 9.050 9.167 9.262 9.280 9.182 8.978 8.728 8.509 8.384 - 8.901 9.327 9.879 10.193 10.107 9.734 9.304 8.952 8.646 8.296 7.914 7.637 7.599 7.797 8.077 8.270 8.325 8.303 8.263 8.172 7.960 7.670 7.520 7.778 8.516 9.486 10.250 10.494 10.246 9.826 9.557 9.508 9.491 9.302 8.949 8.660 - 10.545 10.626 10.697 10.643 10.416 10.069 9.714 9.420 9.149 8.787 8.266 7.687 7.316 7.424 8.067 8.976 9.674 9.766 9.200 8.311 7.603 7.423 7.768 8.349 8.838 9.084 9.158 9.208 9.302 9.385 9.365 9.236 9.091 9.036 9.084 9.153 - 10.117 10.284 10.576 10.858 10.896 10.496 9.689 8.778 8.161 8.030 8.220 8.370 8.266 8.053 8.114 8.684 9.556 10.160 9.984 8.998 7.705 6.793 6.652 7.153 7.822 8.231 8.265 8.087 7.911 7.819 7.755 7.658 7.552 7.508 7.544 7.599 - 8.712 9.184 9.814 10.169 9.964 9.239 8.319 7.595 7.276 7.283 7.367 7.348 7.273 7.368 7.796 8.443 8.924 8.837 8.086 6.999 6.140 5.924 6.333 6.940 7.229 6.955 6.291 5.667 5.451 5.705 6.185 6.536 6.529 6.181 5.706 5.378 - 9.916 10.428 10.837 10.462 9.181 7.578 6.503 6.413 7.053 7.722 7.862 7.464 6.974 6.843 7.126 7.470 7.457 6.966 6.254 5.722 5.594 5.784 6.015 6.052 5.849 5.519 5.214 5.027 4.981 5.051 5.191 5.330 5.394 5.348 5.229 5.130 - 7.889 7.664 7.183 6.461 5.619 4.867 4.398 4.267 4.365 4.503 4.550 4.509 4.485 4.582 4.818 5.111 5.346 5.448 5.419 5.316 5.212 5.160 5.177 5.237 5.280 5.238 5.079 4.843 4.632 4.556 4.656 4.872 5.083 5.196 5.203 5.173 - 5.146 5.552 5.965 5.920 5.270 4.307 3.527 3.255 3.436 3.755 3.942 3.979 4.058 4.335 4.755 5.085 5.141 4.966 4.801 4.863 5.133 5.360 5.275 4.848 4.353 4.179 4.532 5.257 5.933 6.162 5.833 5.175 4.570 4.278 4.290 4.395 - 5.634 5.672 5.668 5.521 5.180 4.714 4.299 4.120 4.249 4.579 4.880 4.967 4.824 4.612 4.527 4.640 4.855 5.010 5.038 5.020 5.084 5.258 5.414 5.385 5.144 4.863 4.790 5.023 5.397 5.604 5.439 4.970 4.482 4.234 4.253 4.359 - 4.905 4.952 4.965 4.847 4.557 4.159 3.799 3.622 3.685 3.919 4.181 4.344 4.377 4.350 4.361 4.461 4.622 4.772 4.868 4.918 4.950 4.953 4.860 4.602 4.189 3.752 3.486 3.533 3.882 4.369 4.766 4.911 4.779 4.473 4.151 3.951 - 7.412 7.055 6.533 6.078 5.795 5.617 5.408 5.119 4.827 4.658 4.648 4.696 4.662 4.495 4.300 4.246 4.418 4.736 5.013 5.107 5.027 4.904 4.866 4.923 4.962 4.860 4.600 4.291 4.080 4.031 4.061 3.999 3.713 3.213 2.668 2.313 - 5.488 5.556 5.601 5.495 5.149 4.597 4.010 3.619 3.575 3.829 4.143 4.243 4.016 3.609 3.328 3.411 3.838 4.334 4.576 4.445 4.124 3.958 4.181 4.716 5.223 5.339 4.953 4.292 3.748 3.594 3.783 3.988 3.855 3.279 2.497 1.942 - 6.546 5.991 5.260 4.764 4.592 4.465 4.065 3.397 2.848 2.856 3.487 4.319 4.755 4.513 3.864 3.396 3.517 4.118 4.679 4.721 4.215 3.594 3.383 3.758 4.412 4.819 4.662 4.076 3.519 3.392 3.724 4.161 4.258 3.830 3.103 2.552 - 7.270 6.122 4.547 3.441 3.237 3.668 4.089 4.037 3.548 3.020 2.804 2.922 3.136 3.243 3.283 3.456 3.854 4.302 4.475 4.200 3.651 3.241 3.300 3.805 4.398 4.665 4.449 3.944 3.516 3.423 3.647 3.944 4.054 3.884 3.557 3.304 - 5.814 5.629 5.273 4.804 4.332 3.988 3.859 3.924 4.059 4.113 4.006 3.783 3.582 3.534 3.675 3.921 4.124 4.170 4.052 3.867 3.750 3.779 3.919 4.042 4.010 3.780 3.456 3.240 3.309 3.676 4.148 4.420 4.257 3.664 2.912 2.394 - 5.442 5.017 4.465 4.150 4.231 4.565 4.853 4.889 4.705 4.506 4.476 4.636 4.862 5.019 5.073 5.078 5.072 4.999 4.752 4.297 3.758 3.368 3.307 3.562 3.921 4.124 4.046 3.770 3.506 3.414 3.481 3.535 3.387 2.993 2.498 2.155 - 4.807 4.616 4.365 4.218 4.246 4.372 4.426 4.291 4.023 3.840 3.965 4.441 5.053 5.454 5.411 4.980 4.470 4.211 4.309 4.579 4.724 4.582 4.250 3.983 3.958 4.135 4.309 4.315 4.163 4.002 3.936 3.901 3.718 3.283 2.717 2.311 - 4.630 4.701 4.796 4.868 4.912 4.959 5.023 5.078 5.081 5.031 4.981 4.991 5.057 5.115 5.120 5.128 5.270 5.618 6.050 6.273 6.021 5.280 4.345 3.628 3.367 3.470 3.637 3.635 3.482 3.387 3.495 3.718 3.788 3.525 3.030 2.637 - 6.306 5.956 5.547 5.397 5.575 5.863 5.985 5.865 5.673 5.616 5.698 5.713 5.462 5.014 4.709 4.895 5.603 6.472 6.995 6.879 6.234 5.434 4.815 4.460 4.244 4.034 3.851 3.823 4.029 4.375 4.642 4.641 4.344 3.879 3.442 3.185 - 5.836 5.432 4.955 4.802 5.115 5.666 6.028 5.899 5.331 4.677 4.327 4.435 4.856 5.316 5.655 5.929 6.302 6.828 7.332 7.501 7.116 6.243 5.209 4.393 3.993 3.948 4.051 4.145 4.218 4.338 4.509 4.600 4.431 3.952 3.337 2.905 - 5.578 4.950 4.307 4.316 5.082 6.039 6.441 6.005 5.133 4.531 4.596 5.113 5.526 5.488 5.187 5.146 5.714 6.707 7.530 7.651 7.005 6.006 5.182 4.788 4.699 4.624 4.403 4.121 3.984 4.100 4.379 4.614 4.638 4.440 4.152 3.949 - 5.917 5.685 5.403 5.310 5.538 6.023 6.547 6.879 6.907 6.677 6.311 5.906 5.502 5.146 4.963 5.150 5.827 6.872 7.888 8.381 8.073 7.095 5.929 5.092 4.816 4.948 5.143 5.167 5.059 5.031 5.204 5.458 5.518 5.219 4.687 4.272 - 6.834 6.628 6.363 6.210 6.226 6.310 6.312 6.164 5.940 5.778 5.747 5.780 5.754 5.637 5.582 5.843 6.565 7.609 8.570 8.992 8.654 7.712 6.589 5.710 5.262 5.153 5.159 5.134 5.097 5.153 5.344 5.563 5.629 5.450 5.118 4.859 - 6.736 6.374 5.923 5.715 5.878 6.249 6.517 6.475 6.171 5.836 5.662 5.646 5.632 5.523 5.458 5.754 6.632 7.943 9.146 9.613 9.060 7.767 6.407 5.596 5.491 5.765 5.927 5.740 5.374 5.202 5.423 5.860 6.112 5.910 5.374 4.923 - 5.677 5.441 5.199 5.211 5.544 6.020 6.368 6.441 6.306 6.147 6.079 6.069 6.012 5.894 5.864 6.137 6.807 7.720 8.528 8.880 8.616 7.833 6.814 5.884 5.295 5.153 5.413 5.902 6.374 6.612 6.526 6.187 5.774 5.454 5.289 5.237 - 4.987 5.148 5.503 6.010 6.479 6.661 6.447 5.993 5.616 5.529 5.637 5.623 5.256 4.682 4.396 4.888 6.227 7.923 9.205 9.506 8.801 7.563 6.405 5.701 5.452 5.426 5.418 5.385 5.412 5.565 5.803 5.994 6.025 5.881 5.659 5.499 - 5.140 4.708 4.289 4.392 5.143 6.138 6.725 6.501 5.625 4.698 4.315 4.637 5.329 5.892 6.107 6.216 6.681 7.730 9.070 10.024 9.994 8.905 7.275 5.866 5.191 5.247 5.631 5.916 5.947 5.860 5.862 6.003 6.150 6.147 5.991 5.835 - 4.894 4.355 3.768 3.704 4.334 5.272 5.875 5.742 5.003 4.197 3.842 4.080 4.646 5.164 5.480 5.757 6.277 7.137 8.108 8.766 8.785 8.159 7.199 6.330 5.840 5.760 5.915 6.079 6.112 6.015 5.880 5.816 5.879 6.047 6.241 6.368 - 5.050 4.926 4.795 4.786 4.928 5.106 5.136 4.919 4.537 4.222 4.204 4.545 5.093 5.609 5.959 6.226 6.632 7.319 8.165 8.806 8.855 8.188 7.063 5.983 5.393 5.426 5.872 6.363 6.621 6.600 6.445 6.335 6.361 6.499 6.660 6.762 - 6.039 5.338 4.478 4.105 4.462 5.218 5.762 5.717 5.221 4.775 4.787 5.223 5.673 5.762 5.552 5.549 6.285 7.805 9.496 10.432 10.015 8.407 6.446 5.095 4.833 5.436 6.244 6.680 6.609 6.302 6.117 6.186 6.375 6.475 6.419 6.321 - 5.546 4.992 4.352 4.169 4.614 5.354 5.848 5.800 5.389 5.084 5.222 5.714 6.146 6.175 5.871 5.714 6.211 7.453 8.967 9.985 9.950 8.882 7.347 6.094 5.602 5.853 6.440 6.879 6.900 6.550 6.077 5.743 5.672 5.825 6.058 6.220 - 5.976 5.630 5.161 4.851 4.840 5.038 5.215 5.198 5.014 4.860 4.922 5.203 5.517 5.667 5.665 5.785 6.367 7.494 8.829 9.750 9.748 8.781 7.320 6.041 5.396 5.379 5.646 5.845 5.883 5.916 6.124 6.503 6.857 6.994 6.909 6.777 - 5.989 5.565 4.832 4.044 3.552 3.651 4.370 5.392 6.209 6.439 6.072 5.463 5.079 5.201 5.803 6.661 7.558 8.373 9.022 9.362 9.202 8.463 7.333 6.247 5.661 5.770 6.393 7.105 7.511 7.464 7.084 6.609 6.232 6.015 5.925 5.899 - 6.293 5.756 4.988 4.437 4.446 5.059 5.998 6.820 7.171 6.973 6.434 5.880 5.558 5.546 5.805 6.297 7.023 7.942 8.858 9.428 9.336 8.524 7.299 6.187 5.636 5.759 6.312 6.892 7.203 7.190 6.978 6.720 6.493 6.299 6.136 6.036 - 5.358 5.169 4.923 4.768 4.753 4.804 4.830 4.824 4.873 5.055 5.337 5.594 5.732 5.823 6.086 6.717 7.682 8.664 9.227 9.090 8.321 7.303 6.494 6.174 6.315 6.668 6.947 6.991 6.809 6.521 6.255 6.088 6.029 6.045 6.090 6.124 - 7.651 7.280 6.647 5.943 5.374 5.077 5.058 5.207 5.383 5.514 5.621 5.758 5.932 6.099 6.240 6.445 6.889 7.672 8.652 9.431 9.568 8.884 7.627 6.361 5.630 5.642 6.186 6.827 7.198 7.187 6.916 6.575 6.290 6.087 5.951 5.879 - 5.934 5.867 5.787 5.765 5.831 5.949 6.031 5.998 5.839 5.625 5.463 5.433 5.553 5.809 6.208 6.793 7.589 8.496 9.252 9.524 9.104 8.077 6.829 5.858 5.496 5.745 6.304 6.792 6.973 6.852 6.603 6.408 6.348 6.397 6.478 6.533 - 5.922 5.653 5.397 5.450 5.831 6.266 6.441 6.283 5.991 5.804 5.741 5.594 5.187 4.651 4.421 4.926 6.209 7.817 9.069 9.474 9.004 8.018 6.986 6.231 5.865 5.855 6.101 6.440 6.662 6.595 6.251 5.872 5.790 6.160 6.801 7.293 - 6.431 6.438 6.460 6.483 6.454 6.299 5.986 5.580 5.226 5.052 5.056 5.082 4.943 4.618 4.364 4.603 5.613 7.234 8.850 9.703 9.383 8.119 6.652 5.744 5.693 6.191 6.625 6.567 6.060 5.505 5.281 5.434 5.700 5.785 5.636 5.452 - 6.127 6.182 6.311 6.485 6.580 6.434 6.001 5.439 5.041 5.020 5.315 5.618 5.616 5.292 5.011 5.288 6.388 8.049 9.567 10.212 9.688 8.325 6.852 5.940 5.821 6.236 6.699 6.857 6.674 6.357 6.128 6.043 5.998 5.876 5.676 5.517 - 5.981 5.981 5.892 5.682 5.491 5.551 5.961 6.525 6.837 6.586 5.807 4.883 4.284 4.285 4.870 5.859 7.059 8.285 9.283 9.712 9.319 8.182 6.788 5.783 5.553 5.971 6.533 6.775 6.615 6.335 6.245 6.371 6.451 6.234 5.763 5.370 - 6.158 5.992 5.897 6.110 6.612 7.107 7.264 6.986 6.466 5.999 5.723 5.558 5.368 5.182 5.237 5.776 6.799 7.981 8.849 9.078 8.660 7.853 6.987 6.308 5.939 5.919 6.203 6.637 6.964 6.949 6.551 5.995 5.632 5.674 6.021 6.340 - 10.763 10.024 9.021 8.347 8.272 8.547 8.600 7.975 6.678 5.179 4.101 3.807 4.228 4.992 5.745 6.390 7.056 7.872 8.730 9.277 9.132 8.189 6.754 5.408 4.689 4.796 5.504 6.338 6.852 6.858 6.463 5.943 5.553 5.398 5.422 5.487 - 10.915 9.775 8.225 7.168 7.019 7.450 7.718 7.270 6.144 4.868 4.028 3.875 4.265 4.897 5.582 6.307 7.088 7.815 8.263 8.251 7.795 7.117 6.487 6.073 5.888 5.869 5.965 6.158 6.413 6.634 6.694 6.517 6.135 5.671 5.271 5.044 - 6.977 6.810 6.560 6.355 6.287 6.351 6.437 6.405 6.186 5.841 5.500 5.250 5.065 4.886 4.766 4.943 5.702 7.087 8.710 9.874 9.987 8.982 7.416 6.121 5.657 5.983 6.563 6.826 6.571 6.034 5.606 5.491 5.598 5.705 5.696 5.636 - 6.246 6.051 5.855 5.854 6.063 6.305 6.393 6.321 6.269 6.399 6.647 6.715 6.324 5.513 4.726 4.560 5.353 6.902 8.548 9.555 9.521 8.571 7.218 6.045 5.419 5.375 5.697 6.083 6.299 6.265 6.059 5.848 5.790 5.930 6.177 6.365 - 4.317 4.838 5.590 6.182 6.360 6.154 5.834 5.704 5.891 6.262 6.519 6.411 5.914 5.274 4.871 5.008 5.737 6.822 7.858 8.462 8.444 7.875 7.027 6.238 5.764 5.686 5.907 6.229 6.456 6.484 6.329 6.096 5.901 5.807 5.801 5.824 - 4.171 4.494 5.034 5.606 6.004 6.092 5.870 5.491 5.181 5.109 5.286 5.560 5.727 5.689 5.545 5.553 5.974 6.886 8.075 9.097 9.472 8.937 7.611 5.979 4.672 4.164 4.533 5.432 6.299 6.682 6.477 5.938 5.464 5.311 5.444 5.620 - 4.530 4.532 4.713 5.215 5.936 6.536 6.683 6.330 5.771 5.406 5.424 5.664 5.796 5.656 5.442 5.584 6.381 7.698 8.978 9.579 9.180 7.981 6.545 5.446 4.959 4.996 5.280 5.566 5.771 5.921 6.044 6.094 5.992 5.720 5.378 5.140 - 4.896 4.843 4.966 5.450 6.172 6.715 6.693 6.093 5.326 4.912 5.059 5.515 5.810 5.711 5.449 5.543 6.332 7.620 8.746 9.034 8.282 6.909 5.659 5.097 5.279 5.803 6.162 6.104 5.739 5.373 5.236 5.326 5.464 5.487 5.379 5.264 - 4.605 4.732 5.002 5.414 5.916 6.387 6.671 6.655 6.341 5.863 5.411 5.126 5.035 5.089 5.260 5.598 6.182 6.983 7.772 8.196 7.989 7.186 6.142 5.333 5.056 5.264 5.648 5.888 5.867 5.689 5.525 5.439 5.362 5.202 4.971 4.795 - 5.434 5.075 4.734 4.828 5.437 6.220 6.697 6.624 6.153 5.642 5.326 5.149 4.909 4.543 4.279 4.477 5.299 6.504 7.544 7.914 7.482 6.541 5.601 5.066 5.047 5.385 5.811 6.101 6.146 5.944 5.566 5.123 4.732 4.468 4.339 4.299 - 4.113 4.285 4.730 5.447 6.173 6.513 6.276 5.705 5.322 5.487 6.054 6.467 6.248 5.451 4.662 4.527 5.209 6.245 6.924 6.852 6.215 5.561 5.323 5.511 5.807 5.914 5.805 5.679 5.712 5.869 5.952 5.794 5.407 4.949 4.588 4.402 - 6.481 5.983 5.345 5.040 5.336 6.120 6.968 7.423 7.276 6.662 5.934 5.419 5.247 5.358 5.630 6.007 6.488 7.023 7.439 7.504 7.095 6.345 5.600 5.213 5.303 5.696 6.072 6.218 6.155 6.056 6.039 6.038 5.866 5.425 4.845 4.429 - 6.415 6.432 6.353 6.095 5.740 5.507 5.576 5.907 6.250 6.324 6.033 5.526 5.078 4.903 5.059 5.481 6.060 6.671 7.141 7.266 6.924 6.207 5.440 5.008 5.092 5.545 6.005 6.180 6.053 5.837 5.734 5.732 5.637 5.294 4.786 4.403 - 5.310 5.295 5.308 5.433 5.755 6.259 6.757 6.944 6.588 5.730 4.710 3.965 3.755 4.035 4.580 5.211 5.914 6.711 7.462 7.825 7.492 6.500 5.324 4.594 4.641 5.253 5.866 6.030 5.741 5.371 5.262 5.395 5.435 5.090 4.448 3.932 - 6.061 5.912 5.753 5.685 5.623 5.343 4.729 3.957 3.425 3.442 3.947 4.526 4.751 4.550 4.293 4.499 5.387 6.659 7.683 7.926 7.311 6.230 5.253 4.768 4.816 5.178 5.580 5.844 5.913 5.802 5.555 5.232 4.910 4.660 4.512 4.450 - 6.473 6.088 5.615 5.375 5.420 5.491 5.287 4.767 4.230 4.063 4.392 4.949 5.291 5.183 4.815 4.657 5.056 5.929 6.788 7.102 6.684 5.818 5.025 4.692 4.831 5.152 5.329 5.252 5.051 4.927 4.941 4.962 4.787 4.343 3.778 3.382 - 6.918 6.819 6.480 5.836 5.082 4.605 4.678 5.213 5.796 6.006 5.734 5.213 4.784 4.624 4.688 4.870 5.154 5.578 6.070 6.365 6.183 5.513 4.711 4.263 4.372 4.772 4.962 4.674 4.135 3.856 4.120 4.658 4.845 4.276 3.186 2.318 - 5.291 5.307 5.270 5.138 4.975 4.926 5.091 5.407 5.666 5.649 5.293 4.740 4.249 4.037 4.181 4.609 5.160 5.641 5.867 5.718 5.212 4.548 4.036 3.928 4.243 4.743 5.093 5.095 4.811 4.463 4.214 4.018 3.690 3.122 2.445 1.975 - 6.209 6.114 6.006 6.000 6.175 6.501 6.827 6.927 6.626 5.900 4.920 3.987 3.404 3.348 3.809 4.610 5.480 6.148 6.425 6.271 5.807 5.269 4.888 4.767 4.824 4.865 4.739 4.463 4.210 4.157 4.321 4.514 4.482 4.118 3.573 3.172 - 5.219 4.709 4.278 4.517 5.419 6.338 6.559 5.933 4.987 4.419 4.468 4.761 4.758 4.337 3.943 4.151 5.080 6.212 6.816 6.554 5.741 5.024 4.809 4.978 5.104 4.923 4.573 4.424 4.677 5.160 5.493 5.426 5.027 4.567 4.258 4.133 - 6.227 6.438 6.744 6.961 6.918 6.568 6.033 5.543 5.287 5.277 5.347 5.305 5.113 4.924 4.942 5.210 5.539 5.647 5.409 4.986 4.713 4.821 5.246 5.682 5.844 5.704 5.497 5.502 5.798 6.202 6.432 6.328 5.956 5.517 5.183 5.018 - 4.192 4.115 4.224 4.765 5.671 6.540 6.924 6.676 6.056 5.503 5.274 5.276 5.222 4.948 4.606 4.540 4.960 5.721 6.387 6.557 6.168 5.536 5.117 5.183 5.664 6.250 6.643 6.748 6.681 6.627 6.683 6.809 6.894 6.867 6.756 6.659 - 5.961 5.617 5.315 5.476 6.146 6.911 7.193 6.708 5.697 4.746 4.362 4.619 5.168 5.537 5.485 5.131 4.799 4.742 4.979 5.330 5.590 5.675 5.651 5.649 5.769 6.030 6.383 6.746 7.026 7.147 7.069 6.806 6.429 6.040 5.730 5.562 - 7.843 7.241 6.462 6.034 6.196 6.718 7.080 6.887 6.183 5.440 5.184 5.583 6.301 6.776 6.685 6.215 5.909 6.185 6.963 7.701 7.837 7.267 6.438 5.980 6.191 6.825 7.351 7.445 7.257 7.217 7.576 8.118 8.329 7.880 6.980 6.258 - 8.869 8.708 8.380 7.945 7.568 7.433 7.588 7.865 7.993 7.818 7.443 7.145 7.137 7.386 7.658 7.740 7.622 7.474 7.452 7.528 7.529 7.328 7.000 6.772 6.810 7.065 7.332 7.468 7.547 7.769 8.218 8.698 8.855 8.494 7.804 7.258 - 7.136 7.009 6.963 7.189 7.624 7.951 7.839 7.243 6.466 5.939 5.890 6.180 6.459 6.476 6.284 6.159 6.317 6.687 6.964 6.881 6.470 6.060 6.008 6.384 6.895 7.116 6.856 6.345 6.076 6.416 7.285 8.173 8.500 8.049 7.145 6.439 - 6.332 6.382 6.518 6.757 7.032 7.181 7.016 6.450 5.597 4.748 4.215 4.135 4.383 4.679 4.805 4.772 4.792 5.065 5.578 6.083 6.295 6.138 5.823 5.682 5.902 6.385 6.858 7.119 7.196 7.267 7.438 7.597 7.501 7.026 6.341 5.838 - 5.990 6.185 6.428 6.532 6.397 6.066 5.667 5.326 5.094 4.958 4.873 4.797 4.695 4.549 4.388 4.307 4.425 4.799 5.340 5.827 6.036 5.898 5.558 5.280 5.259 5.508 5.880 6.222 6.485 6.717 6.957 7.143 7.146 6.906 6.530 6.249 - 5.085 5.242 5.614 6.202 6.850 7.294 7.332 6.985 6.488 6.108 5.942 5.873 5.716 5.428 5.168 5.163 5.489 5.970 6.293 6.258 5.934 5.608 5.547 5.797 6.160 6.374 6.339 6.195 6.200 6.508 7.029 7.475 7.568 7.242 6.705 6.306 - 5.410 5.519 5.739 6.073 6.501 6.946 7.257 7.269 6.911 6.299 5.698 5.367 5.386 5.619 5.833 5.898 5.863 5.877 6.011 6.176 6.215 6.074 5.882 5.849 6.062 6.392 6.599 6.560 6.396 6.361 6.599 6.980 7.200 7.052 6.628 6.268 - 7.000 7.281 7.556 7.525 7.152 6.681 6.389 6.330 6.338 6.239 6.049 5.931 5.963 6.006 5.829 5.396 4.985 4.970 5.444 6.056 6.276 5.870 5.158 4.755 5.042 5.822 6.528 6.762 6.677 6.792 7.442 8.368 8.898 8.561 7.581 6.744 - 6.688 6.868 7.045 7.006 6.683 6.210 5.818 5.671 5.775 6.015 6.254 6.414 6.476 6.442 6.331 6.191 6.105 6.146 6.321 6.551 6.739 6.843 6.910 6.996 7.080 7.061 6.870 6.597 6.487 6.766 7.426 8.161 8.558 8.412 7.900 7.463 - 7.202 7.147 7.141 7.285 7.563 7.843 7.988 7.964 7.847 7.734 7.651 7.567 7.473 7.433 7.523 7.722 7.876 7.801 7.463 7.053 6.861 7.050 7.507 7.931 8.068 7.899 7.617 7.429 7.374 7.342 7.239 7.136 7.226 7.620 8.186 8.604 - 5.543 5.488 5.626 6.207 7.221 8.354 9.204 9.549 9.442 9.089 8.655 8.194 7.737 7.386 7.277 7.419 7.596 7.482 6.910 6.061 5.378 5.241 5.670 6.305 6.693 6.629 6.275 5.976 5.959 6.175 6.391 6.415 6.234 5.978 5.778 5.681 - 5.755 6.186 6.919 7.747 8.474 9.010 9.392 9.700 9.910 9.845 9.302 8.294 7.206 6.642 7.016 8.178 9.404 9.825 9.034 7.387 5.772 4.992 5.245 6.065 6.748 6.882 6.571 6.232 6.198 6.470 6.784 6.874 6.676 6.320 5.991 5.806 - 4.961 5.442 6.410 7.759 9.204 10.369 10.997 11.074 10.745 10.125 9.221 8.086 7.023 6.568 7.139 8.598 10.160 10.827 10.103 8.401 6.797 6.259 6.964 8.225 9.065 8.943 8.070 7.119 6.643 6.706 6.969 7.057 6.850 6.484 6.159 5.986 - 5.257 5.427 6.000 7.187 8.898 10.660 11.834 11.966 11.046 9.505 7.986 7.056 6.990 7.701 8.805 9.787 10.215 9.947 9.208 8.470 8.169 8.428 8.989 9.416 9.409 9.002 8.485 8.142 8.032 7.986 7.812 7.485 7.164 7.023 7.079 7.184 - 5.226 5.831 6.972 8.439 9.851 10.777 10.950 10.420 9.501 8.565 7.850 7.434 7.339 7.617 8.278 9.149 9.837 9.931 9.321 8.356 7.662 7.705 8.430 9.286 9.618 9.146 8.147 7.220 6.847 7.080 7.566 7.845 7.657 7.071 6.384 5.936 - 6.371 6.598 7.291 8.547 9.998 10.937 10.847 9.836 8.554 7.636 7.210 6.934 6.512 6.131 6.349 7.487 9.121 10.242 10.029 8.583 6.937 6.274 6.990 8.388 9.264 8.870 7.468 6.055 5.562 6.182 7.340 8.200 8.255 7.572 6.634 5.994 - 6.614 6.649 6.965 7.737 8.777 9.593 9.771 9.312 8.592 7.983 7.523 6.971 6.202 5.498 5.404 6.217 7.591 8.691 8.821 8.004 6.982 6.610 7.142 8.033 8.416 7.825 6.573 5.470 5.184 5.766 6.687 7.288 7.222 6.603 5.833 5.327 - 7.222 7.266 7.379 7.558 7.743 7.856 7.879 7.863 7.845 7.745 7.390 6.688 5.808 5.170 5.182 5.907 6.938 7.648 7.636 7.021 6.334 6.089 6.382 6.851 7.000 6.624 5.957 5.464 5.462 5.898 6.431 6.705 6.589 6.197 5.765 5.496 - 7.591 6.781 5.700 5.041 5.177 5.958 6.879 7.442 7.416 6.870 6.038 5.209 4.677 4.694 5.347 6.423 7.429 7.851 7.503 6.693 6.021 5.938 6.405 6.937 7.004 6.454 5.619 5.033 5.019 5.479 6.035 6.334 6.277 5.999 5.707 5.536 - 6.754 6.701 6.568 6.376 6.248 6.353 6.765 7.327 7.686 7.500 6.702 5.609 4.772 4.632 5.221 6.134 6.796 6.848 6.373 5.812 5.624 5.954 6.542 6.928 6.789 6.156 5.373 4.848 4.786 5.099 5.506 5.736 5.679 5.405 5.082 4.874 - 6.302 6.371 6.472 6.587 6.757 7.045 7.444 7.800 7.860 7.437 6.574 5.584 4.893 4.782 5.203 5.811 6.199 6.165 5.833 5.544 5.598 6.041 6.637 7.042 7.032 6.637 6.088 5.651 5.469 5.502 5.606 5.639 5.552 5.380 5.206 5.099 - 6.483 6.172 5.903 6.030 6.546 7.062 7.149 6.723 6.108 5.719 5.690 5.794 5.715 5.405 5.145 5.263 5.774 6.314 6.453 6.105 5.646 5.608 6.209 7.129 7.736 7.579 6.724 5.690 5.060 5.077 5.543 6.027 6.187 5.963 5.553 5.249 - 2.932 3.941 5.450 6.769 7.439 7.448 7.128 6.843 6.725 6.631 6.327 5.721 4.975 4.425 4.364 4.852 5.656 6.368 6.639 6.401 5.938 5.726 6.123 7.082 8.115 8.577 8.105 6.898 5.620 4.948 5.106 5.726 6.158 5.989 5.356 4.802 - 6.127 5.926 5.574 5.188 4.933 4.953 5.272 5.740 6.091 6.091 5.699 5.108 4.640 4.552 4.876 5.404 5.817 5.884 5.598 5.190 4.991 5.251 5.988 6.964 7.795 8.147 7.908 7.245 6.501 5.996 5.855 5.973 6.126 6.148 6.035 5.917 - 5.519 5.091 4.775 5.147 6.266 7.548 8.192 7.797 6.649 5.473 4.864 4.892 5.169 5.246 4.997 4.647 4.515 4.722 5.138 5.567 5.946 6.374 6.944 7.573 7.998 7.972 7.465 6.715 6.078 5.805 5.911 6.218 6.501 6.636 6.636 6.594 - 6.672 6.343 6.180 6.696 7.892 9.158 9.702 9.146 7.801 6.394 5.521 5.270 5.298 5.229 4.989 4.798 4.890 5.260 5.684 5.969 6.172 6.559 7.335 8.386 9.283 9.565 9.068 8.053 7.030 6.423 6.337 6.557 6.756 6.739 6.543 6.362 - 5.218 5.563 6.388 7.708 9.188 10.226 10.336 9.518 8.283 7.277 6.805 6.665 6.414 5.810 5.055 4.608 4.775 5.437 6.164 6.608 6.804 7.118 7.871 8.989 9.977 10.268 9.658 8.487 7.414 6.964 7.189 7.684 7.920 7.641 7.029 6.538 - 3.671 3.905 4.699 6.274 8.323 10.021 10.539 9.660 7.976 6.472 5.837 6.032 6.446 6.469 5.991 5.423 5.299 5.814 6.708 7.541 8.086 8.476 9.006 9.780 10.550 10.887 10.536 9.645 8.683 8.104 8.030 8.198 8.202 7.826 7.214 6.750 - 5.058 5.361 6.222 7.761 9.591 10.874 10.858 9.463 7.423 5.813 5.318 5.803 6.514 6.715 6.232 5.507 5.179 5.570 6.511 7.574 8.456 9.167 9.886 10.669 11.303 11.444 10.920 9.916 8.886 8.250 8.111 8.228 8.229 7.913 7.395 7.000 - 6.198 6.369 7.047 8.424 10.097 11.137 10.726 8.845 6.403 4.652 4.316 5.142 6.196 6.624 6.265 5.637 5.420 5.896 6.831 7.792 8.564 9.267 10.120 11.098 11.848 11.939 11.225 10.007 8.853 8.215 8.154 8.356 8.407 8.105 7.585 7.188 - 5.370 5.982 7.193 8.813 10.350 11.128 10.663 9.020 6.867 5.125 4.436 4.822 5.765 6.625 7.057 7.146 7.194 7.410 7.766 8.125 8.467 8.961 9.786 10.866 11.778 11.989 11.263 9.907 8.629 8.067 8.341 8.975 9.277 8.874 7.997 7.290 - 4.808 5.706 7.302 9.170 10.696 11.270 10.581 8.849 6.777 5.218 4.700 5.148 5.985 6.556 6.578 6.266 6.089 6.352 6.972 7.607 8.023 8.323 8.838 9.745 10.787 11.384 11.084 9.990 8.763 8.147 8.381 9.003 9.225 8.595 7.400 6.458 - 5.448 6.055 7.205 8.686 10.084 10.869 10.641 9.401 7.627 6.064 5.303 5.432 6.004 6.369 6.140 5.458 4.851 4.825 5.499 6.567 7.595 8.361 8.954 9.561 10.166 10.479 10.177 9.247 8.098 7.305 7.176 7.519 7.823 7.696 7.194 6.745 - 9.209 9.583 10.158 10.663 10.844 10.539 9.728 8.541 7.247 6.184 5.607 5.543 5.746 5.843 5.596 5.091 4.688 4.750 5.361 6.278 7.146 7.784 8.273 8.778 9.275 9.484 9.104 8.149 7.057 6.412 6.503 7.081 7.562 7.512 7.005 6.527 - 11.504 11.513 11.457 11.262 10.911 10.422 9.781 8.932 7.872 6.754 5.864 5.430 5.436 5.609 5.645 5.476 5.319 5.460 5.951 6.535 6.885 6.934 6.955 7.280 7.911 8.422 8.300 7.448 6.372 5.819 6.146 6.982 7.518 7.199 6.223 5.383 - 10.189 10.184 10.086 9.800 9.297 8.619 7.822 6.945 6.047 5.261 4.764 4.659 4.839 5.017 4.926 4.544 4.152 4.128 4.653 5.567 6.501 7.167 7.529 7.731 7.863 7.842 7.523 6.946 6.423 6.332 6.770 7.395 7.653 7.232 6.362 5.664 - 7.001 7.814 8.893 9.523 9.288 8.290 7.006 5.955 5.422 5.400 5.685 5.997 6.068 5.729 5.015 4.227 3.812 4.096 5.029 6.182 7.041 7.374 7.363 7.375 7.581 7.784 7.632 7.020 6.280 5.944 6.264 6.942 7.344 7.043 6.215 5.513 - 8.745 8.909 8.997 8.737 8.062 7.176 6.412 6.003 5.959 6.115 6.273 6.306 6.165 5.853 5.418 4.978 4.708 4.757 5.130 5.673 6.173 6.523 6.778 7.053 7.347 7.491 7.282 6.709 6.036 5.638 5.707 6.085 6.389 6.333 5.971 5.637 - 7.938 8.286 8.760 9.071 9.051 8.728 8.263 7.810 7.430 7.109 6.832 6.625 6.527 6.527 6.553 6.525 6.420 6.301 6.259 6.347 6.544 6.787 7.026 7.246 7.436 7.561 7.573 7.458 7.271 7.112 7.049 7.068 7.085 7.030 6.913 6.816 - 12.756 13.096 13.508 13.650 13.343 12.676 11.914 11.294 10.876 10.556 10.195 9.743 9.264 8.853 8.535 8.253 7.929 7.557 7.227 7.067 7.140 7.388 7.649 7.756 7.628 7.320 6.988 6.811 6.892 7.193 7.553 7.763 7.682 7.326 6.870 6.557 - 11.512 11.917 12.274 12.087 11.251 10.134 9.246 8.818 8.680 8.502 8.135 7.701 7.396 7.226 6.989 6.523 5.937 5.579 5.724 6.291 6.877 7.092 6.890 6.581 6.514 6.749 7.025 7.043 6.779 6.500 6.489 6.750 7.002 6.963 6.642 6.333 - 8.398 8.866 9.429 9.668 9.473 9.100 8.905 9.006 9.193 9.140 8.703 8.022 7.354 6.847 6.467 6.127 5.842 5.727 5.833 6.041 6.135 6.033 5.904 6.033 6.529 7.161 7.520 7.382 6.938 6.642 6.812 7.332 7.752 7.702 7.242 6.808 - 8.074 8.081 8.030 7.856 7.569 7.277 7.121 7.176 7.388 7.593 7.613 7.375 6.961 6.564 6.375 6.470 6.760 7.050 7.159 7.033 6.780 6.596 6.637 6.909 7.263 7.502 7.517 7.369 7.239 7.286 7.520 7.785 7.882 7.721 7.406 7.159 - 9.422 9.255 9.115 9.196 9.485 9.709 9.525 8.800 7.753 6.836 6.402 6.451 6.655 6.658 6.408 6.214 6.458 7.195 8.009 8.299 7.785 6.813 6.138 6.338 7.318 8.343 8.617 7.926 6.815 6.130 6.307 7.014 7.459 7.096 6.114 5.281 - 8.992 9.320 9.962 10.765 11.364 11.335 10.500 9.137 7.857 7.190 7.196 7.436 7.362 6.808 6.161 6.040 6.736 7.890 8.707 8.571 7.571 6.477 6.179 6.998 8.416 9.454 9.403 8.333 7.015 6.305 6.497 7.153 7.497 7.075 6.114 5.330 - 10.183 9.999 10.006 10.513 11.321 11.783 11.330 10.006 8.489 7.547 7.431 7.732 7.849 7.585 7.329 7.627 8.571 9.586 9.854 9.012 7.515 6.318 6.147 6.962 8.040 8.571 8.265 7.493 6.909 6.907 7.350 7.731 7.591 6.852 5.869 5.184 - 8.986 9.390 10.148 11.037 11.622 11.474 10.520 9.195 8.187 7.919 8.220 8.496 8.281 7.680 7.286 7.617 8.578 9.456 9.471 8.444 6.976 6.003 6.078 6.987 7.982 8.391 8.094 7.505 7.158 7.271 7.644 7.884 7.731 7.217 6.605 6.203 - 10.200 10.607 11.219 11.710 11.765 11.243 10.269 9.187 8.374 8.024 8.045 8.159 8.133 7.969 7.890 8.111 8.599 9.012 8.916 8.125 6.910 5.869 5.550 6.067 7.015 7.745 7.817 7.280 6.597 6.270 6.458 6.889 7.104 6.843 6.256 5.779 - 8.660 8.977 9.496 10.004 10.256 10.086 9.512 8.746 8.071 7.656 7.450 7.247 6.891 6.451 6.210 6.445 7.160 7.996 8.432 8.136 7.228 6.223 5.692 5.873 6.519 7.091 7.153 6.667 5.976 5.517 5.482 5.705 5.833 5.638 5.206 4.852 - 8.750 8.838 8.986 9.145 9.239 9.187 8.930 8.466 7.864 7.243 6.725 6.380 6.215 6.201 6.310 6.528 6.809 7.050 7.109 6.904 6.507 6.142 6.046 6.287 6.676 6.889 6.713 6.236 5.799 5.730 6.060 6.467 6.511 5.997 5.165 4.538 - 8.087 8.741 9.543 9.886 9.525 8.722 7.987 7.643 7.617 7.581 7.304 6.854 6.520 6.521 6.799 7.072 7.067 6.729 6.237 5.841 5.684 5.745 5.908 6.052 6.095 5.995 5.755 5.453 5.230 5.213 5.402 5.623 5.642 5.348 4.872 4.512 - 9.859 9.774 9.562 9.173 8.614 7.976 7.429 7.143 7.184 7.459 7.752 7.852 7.685 7.357 7.066 6.948 6.978 6.998 6.856 6.537 6.186 5.996 6.052 6.252 6.381 6.264 5.892 5.428 5.088 4.992 5.089 5.211 5.190 4.980 4.681 4.467 - 9.224 10.091 11.088 11.340 10.525 9.101 7.908 7.497 7.752 8.066 7.875 7.078 6.052 5.310 5.137 5.464 6.006 6.469 6.675 6.572 6.219 5.780 5.485 5.503 5.799 6.106 6.105 5.685 5.065 4.645 4.683 5.073 5.444 5.484 5.207 4.920 - 11.324 11.432 11.419 11.033 10.225 9.224 8.384 7.936 7.836 7.816 7.589 7.050 6.322 5.658 5.271 5.220 5.413 5.678 5.862 5.901 5.836 5.771 5.799 5.923 6.033 5.966 5.626 5.083 4.554 4.273 4.327 4.593 4.834 4.879 4.746 4.602 - 8.677 8.517 8.393 8.518 8.901 9.288 9.319 8.797 7.868 6.940 6.411 6.383 6.619 6.752 6.605 6.326 6.243 6.541 7.062 7.408 7.282 6.766 6.283 6.248 6.705 7.263 7.407 6.919 6.065 5.363 5.152 5.325 5.460 5.221 4.671 4.210 - 9.275 8.869 8.584 8.971 10.037 11.121 11.355 10.360 8.608 7.111 6.676 7.293 8.175 8.412 7.721 6.667 6.174 6.735 7.978 8.969 8.992 8.150 7.271 7.193 8.046 9.133 9.524 8.844 7.575 6.621 6.527 7.031 7.337 6.863 5.784 4.889 - 8.560 7.824 7.135 7.390 8.811 10.689 11.883 11.674 10.302 8.729 7.862 7.856 8.089 7.809 6.880 5.961 5.953 7.157 8.922 10.101 9.979 8.889 7.946 8.115 9.380 10.734 11.030 9.958 8.313 7.308 7.521 8.393 8.728 7.769 5.914 4.437 - 7.537 7.394 7.564 8.506 10.155 11.788 12.453 11.665 9.815 7.946 7.016 7.209 7.857 8.054 7.461 6.625 6.517 7.648 9.540 11.035 11.225 10.219 9.064 8.853 9.783 10.974 11.237 10.132 8.373 7.220 7.376 8.371 8.988 8.364 6.783 5.453 - 7.819 7.279 7.031 7.939 9.998 12.149 13.018 11.982 9.686 7.555 6.711 7.156 7.903 7.906 6.996 6.037 6.175 7.823 10.240 12.062 12.344 11.249 9.852 9.232 9.635 10.383 10.550 9.793 8.630 7.937 8.142 8.835 9.125 8.450 7.102 6.023 - 6.758 6.793 7.264 8.543 10.477 12.276 12.950 12.006 9.882 7.726 6.617 6.813 7.613 7.984 7.459 6.555 6.341 7.480 9.560 11.336 11.708 10.641 9.217 8.738 9.637 11.124 11.885 11.209 9.585 8.231 8.010 8.700 9.264 8.850 7.595 6.500 - 7.692 7.260 7.019 7.664 9.299 11.224 12.376 12.092 10.603 8.864 7.825 7.737 8.050 7.971 7.226 6.349 6.240 7.350 9.197 10.666 10.887 9.941 8.810 8.561 9.460 10.763 11.361 10.725 9.335 8.235 8.113 8.730 9.194 8.802 7.699 6.751 - 7.472 7.446 7.542 7.987 8.913 10.163 11.236 11.529 10.769 9.307 7.948 7.366 7.580 7.958 7.826 7.133 6.566 6.931 8.344 9.995 10.763 10.181 8.865 7.994 8.264 9.287 9.973 9.555 8.307 7.284 7.330 8.287 9.158 9.062 8.066 7.113 - 8.431 7.901 7.431 7.707 8.906 10.475 11.480 11.267 9.932 8.237 7.032 6.648 6.744 6.706 6.254 5.724 5.775 6.768 8.354 9.670 9.986 9.288 8.283 7.810 8.164 8.889 9.218 8.767 7.863 7.240 7.373 8.058 8.609 8.488 7.789 7.145 - 9.800 9.554 9.322 9.432 10.009 10.820 11.355 11.160 10.192 8.913 7.996 7.834 8.235 8.582 8.371 7.663 7.051 7.136 7.956 8.902 9.215 8.656 7.733 7.260 7.634 8.474 8.962 8.585 7.599 6.786 6.736 7.313 7.801 7.592 6.769 6.027 - 8.845 8.916 9.220 9.876 10.744 11.400 11.373 10.504 9.118 7.857 7.246 7.318 7.607 7.549 6.974 6.280 6.115 6.798 7.982 8.860 8.796 7.857 6.776 6.368 6.862 7.730 8.155 7.737 6.825 6.191 6.333 7.047 7.621 7.498 6.774 6.108 - 9.255 9.579 10.017 10.279 10.160 9.647 8.909 8.202 7.748 7.633 7.760 7.887 7.741 7.207 6.445 5.846 5.796 6.384 7.290 7.971 8.047 7.579 7.019 6.824 7.080 7.441 7.458 7.010 6.444 6.287 6.757 7.530 7.978 7.709 6.916 6.240 - 8.840 9.026 9.378 9.816 10.182 10.277 9.966 9.269 8.377 7.546 6.950 6.579 6.286 5.931 5.527 5.256 5.331 5.819 6.551 7.213 7.550 7.529 7.334 7.200 7.234 7.349 7.373 7.216 6.956 6.762 6.740 6.836 6.885 6.771 6.532 6.336 - 8.863 8.534 8.300 8.593 9.403 10.192 10.283 9.415 7.982 6.752 6.268 6.439 6.658 6.357 5.538 4.807 4.874 5.924 7.384 8.315 8.126 7.029 5.881 5.515 6.119 7.141 7.782 7.640 6.989 6.482 6.563 7.107 7.580 7.546 7.057 6.589 - 10.682 10.086 9.308 8.845 8.892 9.201 9.311 8.937 8.203 7.515 7.199 7.205 7.156 6.701 5.871 5.126 5.013 5.710 6.827 7.660 7.711 7.055 6.270 5.980 6.378 7.116 7.631 7.617 7.245 6.965 7.085 7.506 7.834 7.755 7.332 6.945 - 11.384 11.307 11.118 10.782 10.304 9.734 9.147 8.625 8.257 8.123 8.246 8.535 8.790 8.818 8.581 8.270 8.178 8.465 8.992 9.397 9.378 8.957 8.471 8.281 8.442 8.632 8.434 7.729 6.851 6.343 6.507 7.141 7.706 7.780 7.405 7.014 - 11.949 11.944 11.800 11.373 10.655 9.813 9.109 8.761 8.843 9.261 9.800 10.191 10.212 9.803 9.143 8.598 8.508 8.937 9.571 9.910 9.647 8.931 8.282 8.174 8.622 9.136 9.108 8.340 7.240 6.517 6.611 7.346 8.102 8.349 8.072 7.713 - 10.081 9.725 9.378 9.407 9.802 10.157 10.031 9.357 8.508 7.966 7.893 8.004 7.847 7.228 6.380 5.751 5.616 5.884 6.239 6.457 6.572 6.765 7.099 7.398 7.397 7.012 6.462 6.132 6.273 6.826 7.483 7.929 8.035 7.889 7.668 7.523 - 10.348 10.469 10.507 10.243 9.647 8.925 8.362 8.124 8.167 8.312 8.379 8.265 7.928 7.360 6.619 5.876 5.391 5.373 5.810 6.445 6.940 7.121 7.088 7.082 7.233 7.430 7.440 7.178 6.845 6.795 7.216 7.932 8.523 8.667 8.413 8.119 - 9.328 9.046 8.708 8.564 8.652 8.761 8.615 8.123 7.481 7.017 6.911 7.043 7.098 6.846 6.366 5.993 6.043 6.527 7.122 7.426 7.287 6.935 6.782 7.055 7.585 7.933 7.762 7.153 6.578 6.534 7.134 7.995 8.526 8.389 7.772 7.229 - 9.117 8.961 8.697 8.403 8.137 7.919 7.731 7.544 7.357 7.198 7.105 7.078 7.060 6.971 6.772 6.509 6.303 6.265 6.408 6.628 6.763 6.711 6.495 6.257 6.155 6.268 6.556 6.911 7.232 7.485 7.696 7.904 8.122 8.329 8.491 8.579 - 8.183 8.486 8.925 9.236 9.187 8.699 7.908 7.096 6.533 6.323 6.365 6.464 6.490 6.469 6.518 6.709 6.974 7.155 7.142 6.979 6.825 6.818 6.952 7.090 7.093 6.940 6.746 6.655 6.730 6.931 7.197 7.525 7.960 8.509 9.059 9.413 - 7.442 7.707 7.996 8.034 7.748 7.318 7.012 6.956 7.040 7.025 6.744 6.229 5.670 5.282 5.199 5.453 6.009 6.773 7.572 8.179 8.399 8.202 7.759 7.336 7.110 7.062 7.037 6.929 6.800 6.828 7.122 7.586 7.977 8.098 7.973 7.811 - 10.865 11.146 11.401 11.311 10.862 10.365 10.174 10.357 10.627 10.593 10.083 9.257 8.450 7.911 7.702 7.804 8.237 9.047 10.134 11.158 11.684 11.502 10.834 10.207 10.049 10.342 10.628 10.395 9.506 8.326 7.462 7.340 7.956 8.952 9.881 10.417 - 12.662 12.876 12.967 12.594 11.765 10.886 10.460 10.680 11.282 11.752 11.711 11.146 10.352 9.681 9.345 9.387 9.766 10.397 11.117 11.664 11.777 11.391 10.735 10.215 10.105 10.321 10.453 10.090 9.154 7.995 7.166 7.063 7.701 8.754 9.766 10.369 - 13.087 13.453 13.731 13.433 12.492 11.371 10.715 10.856 11.565 12.248 12.389 11.877 10.996 10.161 9.653 9.547 9.795 10.317 10.990 11.598 11.858 11.565 10.739 9.631 8.567 7.751 7.199 6.827 6.606 6.592 6.838 7.279 7.729 8.012 8.091 8.070 - 13.479 13.893 14.204 13.860 12.798 11.560 10.882 11.114 11.965 12.741 12.862 12.231 11.193 10.223 9.635 9.525 9.871 10.616 11.608 12.518 12.903 12.440 11.168 9.508 8.031 7.131 6.860 7.023 7.383 7.802 8.202 8.482 8.508 8.232 7.788 7.454 - 14.320 14.173 13.925 13.662 13.474 13.418 13.488 13.608 13.675 13.597 13.333 12.890 12.321 11.718 11.221 10.997 11.170 11.729 12.467 13.037 13.110 12.554 11.516 10.345 9.403 8.888 8.783 8.924 9.127 9.277 9.330 9.273 9.109 8.865 8.611 8.447 - 15.083 14.987 14.930 15.069 15.435 15.891 16.218 16.255 16.001 15.579 15.125 14.682 14.212 13.689 13.192 12.902 12.973 13.380 13.869 14.071 13.712 12.777 11.528 10.348 9.535 9.174 9.152 9.279 9.410 9.490 9.518 9.498 9.416 9.271 9.106 8.994 - 15.264 14.664 14.234 14.747 16.186 17.696 18.330 17.890 17.063 16.721 17.069 17.444 16.964 15.416 13.541 12.450 12.682 13.759 14.592 14.355 13.055 11.365 9.980 9.111 8.520 7.954 7.462 7.319 7.664 8.278 8.715 8.655 8.124 7.419 6.845 6.547 - 16.186 15.704 15.417 15.974 17.286 18.536 18.913 18.370 17.655 17.558 18.109 18.501 17.848 16.081 14.124 13.170 13.674 14.971 15.813 15.346 13.670 11.585 9.856 8.705 7.918 7.323 7.086 7.525 8.665 10.024 10.867 10.708 9.621 8.124 6.811 6.077 - 16.574 15.958 15.500 15.958 17.282 18.619 19.102 18.660 18.037 17.998 18.522 18.787 18.000 16.250 14.548 13.969 14.678 15.753 15.962 14.776 12.710 10.748 9.465 8.687 7.924 7.066 6.578 7.020 8.372 9.877 10.580 10.055 8.669 7.189 6.177 5.732 - 16.761 16.058 15.489 15.891 17.238 18.633 19.141 18.651 17.919 17.766 18.240 18.584 18.042 16.684 15.409 15.102 15.746 16.373 15.920 14.166 11.890 10.127 9.271 8.883 8.331 7.560 7.193 7.851 9.400 10.895 11.322 10.424 8.857 7.560 6.978 6.885 - 16.800 16.164 15.656 16.051 17.347 18.723 19.263 18.774 17.914 17.531 17.865 18.372 18.311 17.502 16.499 16.029 16.251 16.565 16.151 14.719 12.760 11.083 10.119 9.647 9.165 8.499 8.013 8.232 9.261 10.571 11.363 11.172 10.151 8.866 7.845 7.322 - 16.704 16.142 15.712 16.129 17.409 18.794 19.388 18.917 17.927 17.264 17.334 17.835 18.143 17.937 17.455 17.157 17.181 17.143 16.485 15.014 13.104 11.378 10.175 9.337 8.493 7.542 6.848 6.928 7.942 9.427 10.546 10.628 9.571 7.843 6.165 5.159 - 16.505 16.074 15.764 16.156 17.293 18.569 19.194 18.819 17.796 16.868 16.579 16.910 17.416 17.671 17.596 17.400 17.245 17.000 16.324 15.002 13.204 11.403 10.044 9.235 8.754 8.325 7.920 7.790 8.214 9.170 10.226 10.756 10.337 9.053 7.494 6.444 - 16.150 15.942 15.879 16.320 17.258 18.240 18.671 18.260 17.242 16.206 15.687 15.846 16.459 17.155 17.676 17.945 17.951 17.610 16.782 15.410 13.656 11.865 10.390 9.404 8.853 8.588 8.516 8.664 9.081 9.690 10.230 10.363 9.887 8.901 7.797 7.073 - 15.710 15.724 15.891 16.325 16.944 17.450 17.502 16.957 15.991 15.009 14.421 14.438 15.016 15.944 16.963 17.826 18.297 18.149 17.235 15.588 13.481 11.358 9.659 8.645 8.325 8.509 8.948 9.436 9.837 10.047 9.961 9.497 8.666 7.622 6.650 6.062 - 14.577 14.789 15.184 15.664 16.046 16.120 15.765 15.036 14.151 13.383 12.936 12.904 13.297 14.091 15.213 16.473 17.523 17.935 17.386 15.844 13.621 11.258 9.309 8.132 7.811 8.185 8.941 9.728 10.242 10.319 9.971 9.375 8.774 8.347 8.138 8.073 - 13.558 13.835 14.186 14.356 14.212 13.824 13.387 13.052 12.807 12.516 12.073 11.570 11.313 11.664 12.781 14.439 16.059 16.951 16.648 15.133 12.852 10.500 8.711 7.812 7.756 8.232 8.860 9.361 9.614 9.622 9.428 9.070 8.582 8.035 7.548 7.257 - 13.249 13.297 13.314 13.165 12.720 11.958 11.029 10.217 9.774 9.738 9.887 9.906 9.683 9.483 9.825 11.090 13.122 15.155 16.182 15.558 13.436 10.719 8.533 7.583 7.810 8.563 9.111 9.120 8.761 8.430 8.354 8.406 8.265 7.744 7.004 6.461 - 13.270 13.109 12.948 12.910 12.902 12.645 11.934 10.866 9.822 9.177 8.995 8.998 8.870 8.626 8.711 9.668 11.618 13.975 15.682 15.841 14.291 11.731 9.278 7.803 7.496 7.922 8.459 8.740 8.791 8.827 8.942 8.974 8.663 7.922 7.001 6.361 - 13.618 13.652 13.784 14.000 14.097 13.763 12.844 11.551 10.409 9.932 10.241 10.969 11.531 11.591 11.343 11.380 12.226 13.883 15.732 16.875 16.682 15.159 12.928 10.856 9.603 9.364 9.903 10.783 11.599 12.095 12.159 11.785 11.049 10.123 9.265 8.747 - 14.602 14.900 15.422 16.003 16.390 16.314 15.632 14.457 13.154 12.171 11.786 11.931 12.264 12.460 12.508 12.773 13.709 15.413 17.382 18.698 18.569 16.865 14.244 11.778 10.339 10.187 10.984 12.157 13.257 14.060 14.437 14.220 13.275 11.721 10.048 8.955 - 15.260 14.993 14.796 15.051 15.832 16.768 17.257 16.878 15.703 14.261 13.170 12.728 12.775 12.945 13.071 13.381 14.284 15.902 17.758 18.947 18.702 16.958 14.449 12.256 11.140 11.166 11.847 12.624 13.232 13.683 13.963 13.832 12.965 11.339 9.469 8.206 - 15.231 14.934 14.675 14.844 15.553 16.484 17.070 16.876 15.903 14.585 13.477 12.887 12.749 12.820 13.017 13.553 14.708 16.420 18.072 18.757 17.880 15.637 12.965 10.959 10.185 10.422 10.989 11.361 11.501 11.685 12.021 12.169 11.586 10.077 8.152 6.797 - 14.481 13.689 12.846 12.772 13.650 14.856 15.492 15.101 13.952 12.695 11.768 11.133 10.544 10.030 10.033 11.033 12.969 15.059 16.229 15.873 14.290 12.453 11.287 11.042 11.247 11.219 10.658 9.852 9.364 9.510 10.073 10.454 10.123 9.022 7.629 6.672 - 14.320 13.796 13.228 13.100 13.421 13.716 13.497 12.728 11.833 11.241 10.961 10.639 10.062 9.564 9.843 11.280 13.359 14.837 14.631 12.728 10.323 8.987 9.495 11.255 12.769 12.770 11.123 8.836 7.260 7.130 8.155 9.358 9.822 9.276 8.179 7.336 - 14.019 13.692 13.307 13.141 13.223 13.311 13.134 12.639 11.999 11.411 10.911 10.424 10.008 9.978 10.701 12.177 13.784 14.549 13.813 11.819 9.679 8.672 9.341 11.079 12.538 12.570 11.012 8.757 7.102 6.856 7.857 9.185 9.848 9.454 8.406 7.553 - 13.981 13.623 13.127 12.780 12.734 12.905 13.040 12.897 12.405 11.708 11.058 10.677 10.666 11.014 11.637 12.384 13.007 13.186 12.685 11.569 10.309 9.592 9.885 11.028 12.205 12.423 11.205 9.003 6.960 6.146 6.814 8.235 9.262 9.195 8.275 7.418 - 14.081 13.558 12.880 12.505 12.632 13.051 13.310 13.056 12.318 11.478 10.981 11.010 11.378 11.726 11.822 11.716 11.602 11.569 11.478 11.137 10.589 10.215 10.464 11.390 12.424 12.672 11.585 9.486 7.461 6.618 7.254 8.616 9.479 9.106 7.818 6.705 - 14.279 13.786 13.145 12.791 12.921 13.353 13.664 13.521 12.939 12.269 11.920 12.038 12.410 12.671 12.617 12.361 12.172 12.168 12.173 11.895 11.281 10.695 10.668 11.390 12.393 12.790 11.956 10.122 8.327 7.690 8.535 10.110 11.151 10.884 9.630 8.516 - 14.925 14.167 13.256 12.895 13.310 14.088 14.551 14.330 13.646 13.068 13.003 13.363 13.702 13.663 13.313 13.048 13.175 13.560 13.696 13.159 12.037 10.945 10.552 11.011 11.768 11.963 11.114 9.534 8.142 7.770 8.526 9.699 10.303 9.831 8.641 7.663 - 14.958 14.345 13.609 13.321 13.677 14.362 14.844 14.817 14.406 13.981 13.786 13.728 13.518 13.006 12.383 12.047 12.246 12.826 13.321 13.308 12.745 11.993 11.509 11.482 11.684 11.667 11.123 10.118 9.039 8.308 8.103 8.280 8.526 8.606 8.502 8.374 - 14.324 13.581 12.694 12.353 12.779 13.585 14.161 14.184 13.804 13.388 13.109 12.822 12.304 11.592 11.042 11.027 11.562 12.256 12.639 12.582 12.401 12.533 13.095 13.717 13.831 13.143 11.884 10.635 9.891 9.741 9.893 9.961 9.749 9.321 8.880 8.612 - 14.155 13.347 12.396 12.080 12.661 13.713 14.516 14.623 14.122 13.413 12.797 12.270 11.699 11.112 10.777 10.958 11.614 12.365 12.788 12.771 12.583 12.584 12.854 13.098 12.913 12.163 11.115 10.217 9.742 9.616 9.566 9.401 9.150 8.964 8.921 8.952 - 13.991 13.305 12.455 12.103 12.589 13.719 14.927 15.658 15.649 14.980 13.925 12.784 11.806 11.181 11.007 11.233 11.655 12.013 12.164 12.167 12.204 12.376 12.569 12.517 12.018 11.103 10.009 8.988 8.136 7.400 6.742 6.266 6.166 6.514 7.113 7.570 - 13.741 13.214 12.560 12.314 12.796 13.912 15.222 16.195 16.485 16.051 15.104 13.952 12.871 12.052 11.596 11.513 11.719 12.052 12.338 12.479 12.492 12.456 12.393 12.185 11.607 10.489 8.881 7.107 5.634 4.823 4.738 5.130 5.616 5.913 5.972 5.930 - 13.514 12.973 12.271 11.940 12.348 13.487 14.971 16.242 16.842 16.602 15.661 14.348 13.033 12.002 11.417 11.302 11.550 11.965 12.328 12.504 12.503 12.439 12.386 12.245 11.746 10.626 8.883 6.894 5.270 4.505 4.661 5.333 5.924 6.053 5.774 5.465 - 13.622 12.988 12.184 11.800 12.154 13.118 14.273 15.207 15.709 15.748 15.349 14.539 13.428 12.288 11.492 11.299 11.664 12.247 12.664 12.756 12.661 12.625 12.711 12.677 12.141 10.887 9.080 7.198 5.758 5.035 4.963 5.255 5.607 5.845 5.945 5.966 - 13.755 13.169 12.434 12.097 12.429 13.292 14.311 15.163 15.715 15.943 15.782 15.123 13.980 12.644 11.610 11.281 11.680 12.422 13.000 13.152 13.002 12.863 12.888 12.888 12.456 11.316 9.568 7.663 6.120 5.224 4.918 4.922 4.950 4.867 4.706 4.580 - 13.680 13.147 12.480 12.178 12.488 13.277 14.193 14.932 15.382 15.548 15.408 14.876 13.936 12.790 11.831 11.432 11.689 12.359 13.035 13.418 13.451 13.239 12.856 12.236 11.255 9.901 8.366 6.968 5.958 5.397 5.166 5.097 5.078 5.079 5.097 5.116 - 13.906 13.011 11.949 11.585 12.255 13.573 14.821 15.534 15.765 15.848 15.976 15.992 15.590 14.653 13.410 12.274 11.570 11.402 11.726 12.454 13.406 14.206 14.325 13.410 11.656 9.850 8.918 9.258 10.415 11.416 11.517 10.751 9.804 9.369 9.558 9.903 - 13.692 13.036 12.205 11.836 12.298 13.470 14.848 15.880 16.288 16.163 15.817 15.522 15.329 15.072 14.531 13.638 12.591 11.789 11.612 12.165 13.139 13.922 13.932 12.985 11.454 10.071 9.480 9.837 10.732 11.493 11.645 11.185 10.487 9.962 9.759 9.748 - 11.426 11.338 11.505 12.255 13.524 14.830 15.617 15.680 15.280 14.885 14.774 14.868 14.883 14.619 14.094 13.451 12.787 12.105 11.440 10.943 10.796 10.991 11.228 11.090 10.409 9.479 8.893 9.094 9.997 11.031 11.551 11.286 10.464 9.552 8.902 8.601 - 12.016 11.365 10.679 10.629 11.335 12.248 12.628 12.170 11.233 10.499 10.392 10.782 11.184 11.215 10.874 10.433 10.119 9.932 9.737 9.490 9.303 9.278 9.310 9.100 8.427 7.424 6.564 6.331 6.844 7.756 8.520 8.776 8.543 8.098 7.717 7.523 - 10.585 10.440 10.235 10.085 10.072 10.188 10.339 10.403 10.301 10.048 9.746 9.524 9.466 9.582 9.818 10.093 10.339 10.503 10.551 10.466 10.260 9.977 9.674 9.379 9.072 8.714 8.309 7.946 7.782 7.942 8.427 9.090 9.710 10.125 10.314 10.362 - 8.742 8.645 8.747 9.320 10.283 11.186 11.558 11.293 10.733 10.384 10.507 10.956 11.371 11.528 11.515 11.593 11.903 12.314 12.545 12.423 12.029 11.589 11.250 10.951 10.526 9.923 9.312 8.991 9.151 9.732 10.469 11.081 11.429 11.546 11.545 11.521 - 7.565 7.506 7.550 7.852 8.376 8.900 9.185 9.149 8.904 8.613 8.366 8.164 8.034 8.089 8.439 9.032 9.591 9.786 9.504 8.986 8.664 8.820 9.368 9.935 10.194 10.132 10.026 10.159 10.561 11.020 11.331 11.522 11.825 12.413 13.163 13.702 - 6.936 7.374 7.989 8.442 8.543 8.338 8.023 7.766 7.598 7.449 7.269 7.121 7.149 7.461 8.039 8.734 9.363 9.801 10.024 10.078 10.025 9.930 9.860 9.896 10.104 10.499 11.034 11.627 12.212 12.770 13.314 13.857 14.375 14.820 15.143 15.310 - 9.286 8.707 7.939 7.481 7.589 8.113 8.636 8.787 8.500 8.017 7.687 7.707 8.026 8.445 8.798 9.066 9.325 9.624 9.904 10.046 9.998 9.851 9.782 9.916 10.222 10.554 10.796 10.999 11.362 12.077 13.139 14.305 15.237 15.726 15.823 15.767 - 7.699 7.304 6.773 6.417 6.373 6.565 6.858 7.216 7.694 8.277 8.761 8.857 8.452 7.799 7.399 7.644 8.491 9.477 10.061 10.041 9.679 9.457 9.677 10.235 10.756 10.939 10.807 10.678 10.899 11.592 12.596 13.610 14.395 14.873 15.102 15.182 - 3.885 4.492 5.311 5.902 6.146 6.302 6.701 7.390 8.047 8.254 7.852 7.070 6.330 5.948 5.987 6.342 6.906 7.602 8.294 8.734 8.683 8.142 7.444 7.057 7.235 7.824 8.435 8.823 9.133 9.748 10.874 12.258 13.331 13.676 13.392 13.008 - 6.776 6.758 6.619 6.314 5.991 5.918 6.240 6.781 7.122 6.902 6.129 5.195 4.590 4.539 4.869 5.200 5.282 5.183 5.186 5.511 6.119 6.750 7.141 7.206 7.062 6.901 6.862 6.996 7.313 7.815 8.470 9.178 9.783 10.167 10.325 10.356 - 7.458 6.874 6.081 5.577 5.663 6.248 6.930 7.260 7.022 6.348 5.594 5.110 5.034 5.256 5.540 5.694 5.679 5.590 5.558 5.646 5.816 5.974 6.050 6.038 5.990 5.966 5.988 6.036 6.079 6.121 6.214 6.427 6.795 7.270 7.723 8.001 - 6.855 6.501 6.110 6.024 6.303 6.661 6.712 6.301 5.633 5.097 4.958 5.180 5.526 5.799 5.997 6.245 6.602 6.942 7.045 6.805 6.363 6.016 5.978 6.206 6.433 6.403 6.089 5.739 5.692 6.128 6.932 7.776 8.333 8.477 8.333 8.161 - 6.023 6.720 7.662 8.304 8.411 8.170 7.959 8.012 8.285 8.592 8.813 8.960 9.071 9.112 9.026 8.881 8.913 9.341 10.110 10.838 11.079 10.710 10.060 9.643 9.700 9.999 10.101 9.855 9.623 9.982 11.125 12.558 13.404 13.134 12.054 11.109 - 7.541 7.967 8.729 9.631 10.394 10.761 10.647 10.209 9.773 9.623 9.812 10.135 10.307 10.199 9.957 9.893 10.233 10.926 11.660 12.080 12.037 11.670 11.278 11.083 11.099 11.186 11.245 11.348 11.697 12.423 13.412 14.309 14.739 14.576 14.055 13.620 - 10.426 9.498 8.498 8.368 9.299 10.600 11.333 11.118 10.353 9.713 9.489 9.407 9.079 8.555 8.381 9.065 10.487 11.871 12.375 11.797 10.713 9.969 9.986 10.529 11.076 11.370 11.595 12.050 12.719 13.226 13.222 12.801 12.475 12.690 13.378 13.986 - 13.392 13.081 12.880 13.185 13.928 14.585 14.646 14.067 13.283 12.769 12.617 12.534 12.260 11.927 11.967 12.637 13.642 14.291 14.073 13.125 12.133 11.725 11.935 12.237 12.094 11.492 10.923 10.866 11.272 11.590 11.307 10.458 9.615 9.343 9.670 10.091 - 13.370 13.109 12.957 13.276 14.037 14.773 14.955 14.419 13.488 12.683 12.312 12.297 12.379 12.431 12.582 13.006 13.636 14.106 14.022 13.327 12.413 11.835 11.874 12.295 12.530 12.110 11.008 9.629 8.492 7.884 7.734 7.756 7.688 7.452 7.146 6.935 - 12.668 12.461 12.266 12.334 12.723 13.216 13.460 13.213 12.517 11.681 11.084 10.953 11.257 11.777 12.258 12.537 12.581 12.442 12.199 11.935 11.728 11.637 11.652 11.660 11.479 10.948 10.050 8.953 7.942 7.266 7.011 7.066 7.220 7.307 7.290 7.241 - 12.316 12.502 12.583 12.288 11.657 11.016 10.642 10.474 10.192 9.581 8.828 8.416 8.688 9.494 10.283 10.565 10.329 10.018 10.092 10.603 11.173 11.373 11.115 10.668 10.316 10.028 9.512 8.580 7.466 6.711 6.699 7.282 7.876 7.966 7.549 7.105 - 12.674 12.678 12.545 12.191 11.740 11.413 11.250 10.981 10.260 9.072 7.912 7.476 8.089 9.382 10.546 10.975 10.726 10.388 10.495 11.045 11.557 11.584 11.144 10.642 10.394 10.255 9.764 8.688 7.389 6.599 6.767 7.590 8.223 8.010 7.081 6.243 - 12.360 12.483 12.539 12.362 11.985 11.590 11.266 10.859 10.121 9.043 8.022 7.645 8.216 9.450 10.641 11.196 11.078 10.767 10.785 11.231 11.726 11.798 11.317 10.574 9.953 9.562 9.163 8.479 7.541 6.705 6.342 6.490 6.820 6.955 6.803 6.594 - 12.210 12.472 12.678 12.514 11.985 11.389 10.984 10.703 10.234 9.410 8.504 8.088 8.544 9.663 10.751 11.176 10.892 10.446 10.466 11.085 11.822 12.007 11.359 10.197 9.126 8.520 8.269 7.987 7.429 6.709 6.157 5.991 6.139 6.359 6.476 6.496 - 12.792 12.578 12.403 12.528 12.969 13.456 13.642 13.357 12.692 11.894 11.200 10.782 10.779 11.297 12.301 13.499 14.400 14.603 14.096 13.282 12.660 12.399 12.197 11.579 10.389 9.013 8.107 8.038 8.551 8.980 8.824 8.169 7.577 7.546 8.039 8.537 - 13.458 12.803 12.209 12.426 13.516 14.761 15.281 14.766 13.665 12.695 12.207 11.998 11.724 11.410 11.522 12.482 14.131 15.696 16.351 15.865 14.745 13.755 13.257 12.996 12.469 11.486 10.374 9.641 9.475 9.563 9.400 8.754 7.839 7.065 6.660 6.545 - 13.501 12.763 12.075 12.290 13.541 15.080 15.883 15.464 14.201 12.921 12.190 11.941 11.740 11.365 11.097 11.463 12.678 14.344 15.685 16.116 15.637 14.730 13.901 13.302 12.732 11.969 11.054 10.280 9.917 9.961 10.124 10.059 9.612 8.895 8.182 7.747 - 13.398 12.863 12.387 12.636 13.745 15.149 15.983 15.726 14.557 13.167 12.204 11.838 11.767 11.618 11.349 11.297 11.860 13.089 14.572 15.685 16.009 15.562 14.701 13.803 13.023 12.294 11.542 10.856 10.466 10.523 10.901 11.213 11.059 10.336 9.355 8.658 - 13.285 12.999 12.820 13.184 14.156 15.294 15.919 15.592 14.435 13.041 12.051 11.721 11.815 11.889 11.718 11.499 11.671 12.504 13.816 15.046 15.649 15.452 14.719 13.875 13.158 12.505 11.747 10.900 10.244 10.098 10.483 11.006 11.115 10.541 9.556 8.801 - 13.121 13.064 13.143 13.544 14.220 14.830 14.931 14.298 13.122 11.919 11.176 11.018 11.144 11.112 10.740 10.303 10.323 11.125 12.517 13.877 14.592 14.491 13.915 13.375 13.114 12.957 12.575 11.892 11.233 11.048 11.454 12.038 12.137 11.406 10.168 9.219 - 11.661 11.702 11.964 12.593 13.473 14.188 14.258 13.483 12.129 10.792 9.997 9.843 9.964 9.850 9.300 8.613 8.380 9.007 10.365 11.845 12.785 12.924 12.520 12.073 11.894 11.904 11.810 11.451 10.987 10.744 10.867 11.127 11.089 10.506 9.592 8.902 - 10.819 11.043 11.551 12.290 12.969 13.166 12.637 11.554 10.432 9.771 9.710 9.968 10.133 10.009 9.745 9.641 9.857 10.294 10.730 11.050 11.326 11.682 12.095 12.363 12.270 11.788 11.123 10.541 10.162 9.903 9.622 9.295 9.047 9.010 9.162 9.325 - 8.340 8.356 8.495 8.829 9.261 9.554 9.510 9.141 8.661 8.312 8.178 8.156 8.100 7.987 7.937 8.082 8.415 8.788 9.056 9.224 9.439 9.820 10.296 10.606 10.488 9.888 9.011 8.174 7.590 7.277 7.130 7.067 7.089 7.226 7.435 7.594 - 5.722 6.171 6.815 7.368 7.720 7.945 8.102 8.067 7.598 6.598 5.319 4.275 3.902 4.254 4.995 5.688 6.123 6.387 6.665 6.985 7.176 7.064 6.680 6.267 6.067 6.103 6.192 6.153 6.014 5.980 6.201 6.571 6.783 6.613 6.150 5.757 - 6.934 6.593 6.309 6.510 7.250 8.120 8.561 8.291 7.499 6.655 6.138 6.004 6.062 6.138 6.247 6.528 7.037 7.636 8.087 8.274 8.306 8.413 8.700 9.018 9.066 8.649 7.878 7.124 6.775 6.969 7.524 8.073 8.314 8.179 7.840 7.572 - 8.445 8.433 8.594 9.078 9.779 10.349 10.450 10.038 9.423 9.039 9.123 9.580 10.118 10.518 10.800 11.130 11.611 12.151 12.548 12.694 12.702 12.804 13.131 13.553 13.751 13.465 12.722 11.848 11.264 11.205 11.583 12.073 12.343 12.264 11.965 11.713 - 9.154 9.336 9.849 10.749 11.774 12.416 12.267 11.367 10.232 9.504 9.506 10.063 10.716 11.126 11.305 11.499 11.877 12.324 12.547 12.382 11.998 11.798 12.077 12.746 13.356 13.434 12.849 11.928 11.222 11.116 11.570 12.174 12.464 12.244 11.708 11.275 - 12.075 12.485 13.190 13.971 14.534 14.614 14.087 13.057 11.821 10.732 10.013 9.658 9.489 9.317 9.109 9.020 9.265 9.939 10.915 11.903 12.619 12.930 12.874 12.566 12.097 11.520 10.924 10.490 10.423 10.782 11.354 11.710 11.463 10.565 9.400 8.588 - 13.289 13.401 13.812 14.642 15.692 16.449 16.415 15.479 14.035 12.722 11.981 11.786 11.754 11.532 11.120 10.865 11.140 11.997 13.074 13.844 13.983 13.546 12.850 12.180 11.614 11.102 10.692 10.647 11.268 12.547 13.943 14.574 13.754 11.539 8.854 7.031 - 13.257 13.036 13.074 13.830 15.209 16.506 16.913 16.146 14.670 13.311 12.617 12.506 12.483 12.189 11.774 11.753 12.505 13.868 15.191 15.790 15.417 14.357 13.122 12.040 11.109 10.201 9.371 8.954 9.313 10.457 11.853 12.655 12.226 10.596 8.528 7.106 - 12.636 12.385 12.380 13.119 14.550 15.986 16.578 15.960 14.516 13.053 12.175 11.894 11.777 11.473 11.098 11.148 12.001 13.481 14.872 15.412 14.839 13.556 12.278 11.480 11.096 10.718 10.071 9.342 9.051 9.565 10.681 11.646 11.670 10.526 8.800 7.537 - 11.212 11.116 11.438 12.593 14.300 15.636 15.749 14.578 12.905 11.680 11.251 11.196 10.900 10.272 9.890 10.421 11.867 13.401 13.979 13.208 11.685 10.485 10.260 10.730 11.008 10.426 9.149 8.046 7.976 9.091 10.707 11.798 11.685 10.441 8.789 7.654 - 11.807 11.754 11.750 11.855 11.969 11.875 11.420 10.678 9.908 9.350 9.046 8.850 8.617 8.373 8.295 8.515 8.944 9.306 9.362 9.114 8.791 8.630 8.644 8.611 8.296 7.694 7.069 6.757 6.900 7.344 7.785 7.999 7.972 7.837 7.724 7.674 - 10.904 10.618 10.298 10.201 10.341 10.459 10.250 9.640 8.853 8.220 7.911 7.826 7.724 7.466 7.142 6.977 7.146 7.639 8.299 8.932 9.388 9.565 9.389 8.863 8.148 7.566 7.451 7.923 8.763 9.526 9.826 9.572 8.989 8.405 8.027 7.869 - 9.080 8.950 8.970 9.427 10.316 11.283 11.874 11.884 11.509 11.171 11.164 11.418 11.584 11.360 10.790 10.290 10.365 11.237 12.658 14.034 14.764 14.561 13.562 12.202 10.970 10.207 10.019 10.311 10.868 11.436 11.787 11.781 11.404 10.787 10.160 9.769 - 11.665 11.711 11.865 12.162 12.530 12.805 12.832 12.596 12.238 11.946 11.799 11.705 11.499 11.131 10.788 10.813 11.468 12.698 14.091 15.088 15.295 14.694 13.612 12.482 11.605 11.059 10.794 10.777 11.030 11.538 12.126 12.466 12.268 11.506 10.517 9.826 - 14.331 13.546 12.438 11.571 11.215 11.239 11.347 11.396 11.486 11.764 12.184 12.494 12.481 12.236 12.137 12.540 13.439 14.405 14.884 14.593 13.686 12.577 11.606 10.861 10.267 9.805 9.611 9.844 10.472 11.198 11.624 11.508 10.905 10.095 9.392 8.999 - 12.690 11.938 10.841 9.922 9.485 9.504 9.795 10.245 10.889 11.765 12.748 13.550 13.923 13.875 13.668 13.605 13.776 14.009 14.046 13.780 13.330 12.904 12.613 12.418 12.241 12.105 12.128 12.378 12.745 12.983 12.915 12.594 12.271 12.175 12.313 12.484 - 12.230 11.431 10.421 9.854 9.901 10.190 10.264 10.083 10.079 10.702 11.937 13.239 13.976 13.923 13.372 12.804 12.472 12.321 12.227 12.243 12.510 12.962 13.184 12.705 11.506 10.218 9.725 10.422 11.812 12.858 12.827 11.900 10.976 10.849 11.509 12.207 - 14.881 14.663 14.285 13.773 13.080 12.185 11.264 10.703 10.869 11.778 12.979 13.808 13.848 13.222 12.456 12.043 12.078 12.287 12.359 12.257 12.189 12.305 12.452 12.277 11.588 10.630 9.961 10.007 10.691 11.470 11.774 11.440 10.775 10.227 10.007 9.995 - 14.952 14.274 13.211 12.146 11.321 10.786 10.516 10.523 10.831 11.372 11.953 12.397 12.693 12.989 13.376 13.699 13.637 13.057 12.286 11.963 12.487 13.540 14.193 13.637 11.959 10.242 9.786 11.038 13.148 14.588 14.337 12.662 10.812 9.932 10.163 10.697 - 11.937 11.170 10.181 9.616 9.733 10.292 10.864 11.235 11.516 11.927 12.518 13.132 13.583 13.822 13.891 13.761 13.329 12.628 12.030 12.097 13.069 14.456 15.211 14.539 12.685 10.950 10.751 12.432 14.847 16.183 15.383 12.985 10.645 9.743 10.307 11.164 - 11.880 11.824 11.551 10.944 10.146 9.547 9.521 10.129 11.053 11.832 12.218 12.339 12.521 12.925 13.327 13.286 12.570 11.481 10.740 10.964 12.124 13.461 13.983 13.213 11.606 10.269 10.173 11.435 13.230 14.383 14.198 12.880 11.272 10.170 9.791 9.801 - 12.143 12.690 13.177 12.941 11.882 10.606 9.976 10.439 11.718 13.069 13.864 13.983 13.741 13.471 13.216 12.771 12.014 11.157 10.649 10.804 11.492 12.169 12.251 11.539 10.364 9.370 9.101 9.692 10.829 11.953 12.540 12.319 11.342 9.940 8.599 7.785 - 14.066 13.972 13.751 13.428 13.154 13.136 13.459 13.976 14.374 14.406 14.087 13.664 13.395 13.303 13.147 12.640 11.745 10.768 10.172 10.236 10.830 11.482 11.685 11.218 10.265 9.275 8.694 8.732 9.288 10.031 10.551 10.536 9.898 8.821 7.706 7.001 - 13.514 13.203 12.937 13.127 13.888 14.946 15.860 16.354 16.496 16.558 16.728 16.918 16.830 16.211 15.069 13.691 12.458 11.621 11.202 11.032 10.883 10.570 10.010 9.249 8.462 7.901 7.788 8.169 8.852 9.472 9.683 9.335 8.537 7.574 6.753 6.290 - 13.014 12.947 12.946 13.217 13.918 15.004 16.173 17.000 17.221 16.945 16.593 16.542 16.778 16.860 16.302 15.061 13.701 13.014 13.367 14.305 14.788 13.915 11.596 8.657 6.304 5.380 5.932 7.345 8.810 9.750 9.936 9.377 8.211 6.699 5.255 4.365 - 12.855 12.618 12.443 12.719 13.636 14.996 16.290 16.998 16.952 16.460 16.090 16.225 16.741 17.066 16.645 15.420 13.963 13.076 13.174 13.903 14.340 13.628 11.600 8.918 6.659 5.657 6.067 7.391 8.852 9.806 9.948 9.291 8.053 6.569 5.242 4.457 - 12.738 12.384 12.110 12.439 13.564 15.150 16.529 17.147 16.939 16.350 15.992 16.180 16.706 17.017 16.662 15.657 14.496 13.771 13.712 13.980 13.884 12.874 10.943 8.669 6.882 6.189 6.674 7.916 9.264 10.150 10.282 9.663 8.512 7.168 5.999 5.322 - 12.904 12.514 12.245 12.673 13.922 15.523 16.747 17.133 16.789 16.238 15.989 16.193 16.612 16.877 16.774 16.344 15.785 15.281 14.876 14.455 13.798 12.677 11.011 9.015 7.223 6.288 6.600 7.974 9.653 10.715 10.614 9.483 7.966 6.732 6.067 5.845 - 13.156 12.608 12.194 12.639 14.038 15.733 16.849 16.991 16.483 15.991 15.939 16.241 16.545 16.646 16.645 16.723 16.824 16.624 15.825 14.464 12.887 11.420 10.084 8.679 7.165 5.932 5.597 6.462 8.113 9.585 10.009 9.207 7.733 6.373 5.569 5.273 - 12.606 12.128 11.785 12.248 13.628 15.331 16.501 16.671 16.060 15.333 15.056 15.335 15.883 16.352 16.593 16.634 16.480 16.011 15.076 13.685 12.057 10.465 9.048 7.779 6.642 5.806 5.589 6.181 7.390 8.635 9.264 8.933 7.782 6.298 5.013 4.292 - 12.130 11.684 11.383 11.888 13.329 15.146 16.481 16.795 16.209 15.333 14.789 14.831 15.314 15.935 16.461 16.764 16.726 16.199 15.088 13.490 11.690 10.003 8.598 7.473 6.606 6.105 6.173 6.904 8.079 9.198 9.751 9.513 8.658 7.596 6.716 6.241 - 12.391 11.919 11.648 12.288 13.901 15.776 16.971 17.026 16.242 15.336 14.862 14.912 15.273 15.771 16.393 17.080 17.511 17.185 15.814 13.635 11.323 9.514 8.373 7.614 6.925 6.373 6.365 7.195 8.616 9.878 10.249 9.541 8.207 6.929 6.127 5.804 - 12.373 11.985 11.797 12.430 13.928 15.653 16.759 16.822 16.092 15.213 14.713 14.742 15.171 15.853 16.692 17.504 17.893 17.402 15.873 13.665 11.465 9.820 8.781 8.019 7.276 6.707 6.753 7.637 8.996 10.024 10.059 9.088 7.726 6.688 6.253 6.198 - 12.084 11.682 11.472 12.083 13.574 15.313 16.453 16.555 15.840 14.924 14.333 14.241 14.577 15.244 16.165 17.127 17.671 17.286 15.804 13.618 11.462 9.888 8.901 8.097 7.171 6.307 6.050 6.749 8.112 9.308 9.566 8.743 7.371 6.176 5.529 5.327 - 11.770 11.330 11.103 11.778 13.407 15.288 16.483 16.516 15.647 14.566 13.855 13.706 14.044 14.783 15.865 17.068 17.868 17.654 16.181 13.846 11.465 9.695 8.602 7.775 6.866 6.013 5.735 6.361 7.579 8.560 8.585 7.618 6.292 5.345 5.035 5.073 - 11.823 11.562 11.570 12.378 13.960 15.655 16.646 16.563 15.697 14.684 14.027 13.871 14.147 14.821 15.908 17.237 18.285 18.371 17.130 14.860 12.377 10.455 9.333 8.689 8.091 7.457 7.096 7.312 7.992 8.602 8.612 7.946 7.021 6.359 6.150 6.186 - 11.831 11.628 11.722 12.589 14.144 15.708 16.519 16.311 15.448 14.537 13.956 13.725 13.768 14.190 15.195 16.699 18.093 18.503 17.422 15.148 12.608 10.678 9.591 8.950 8.285 7.592 7.315 7.818 8.879 9.751 9.750 8.830 7.596 6.755 6.538 6.630 - 11.525 11.349 11.445 12.254 13.713 15.210 16.020 15.842 14.966 13.978 13.308 13.046 13.111 13.517 14.395 15.728 17.118 17.870 17.421 15.736 13.347 10.983 9.135 7.912 7.240 7.108 7.582 8.568 9.637 10.174 9.793 8.657 7.368 6.512 6.243 6.275 - 11.285 11.132 11.309 12.262 13.867 15.399 16.060 15.594 14.439 13.327 12.720 12.607 12.761 13.134 13.925 15.258 16.815 17.852 17.657 16.072 13.618 11.131 9.229 8.068 7.513 7.451 7.897 8.801 9.833 10.441 10.215 9.213 7.936 6.943 6.464 6.342 - 11.762 11.650 11.909 12.949 14.553 15.919 16.278 15.525 14.283 13.339 13.021 13.085 13.165 13.277 13.830 15.120 16.831 18.079 18.020 16.487 14.084 11.691 9.861 8.651 7.935 7.771 8.364 9.668 11.093 11.749 11.101 9.443 7.719 6.776 6.732 7.014 - 11.829 11.871 12.277 13.281 14.632 15.664 15.799 15.037 13.943 13.168 12.938 12.994 13.006 13.018 13.446 14.624 16.323 17.748 18.047 16.903 14.711 12.246 10.158 8.743 8.073 8.205 9.154 10.646 12.003 12.425 11.530 9.699 7.840 6.734 6.497 6.639 - 11.616 11.703 12.151 13.131 14.373 15.235 15.191 14.280 13.094 12.298 12.111 12.234 12.260 12.172 12.418 13.469 15.274 17.108 17.987 17.326 15.308 12.719 10.441 9.021 8.574 8.934 9.811 10.823 11.507 11.464 10.597 9.247 8.009 7.339 7.251 7.386 - 10.976 11.322 12.098 13.255 14.441 15.113 14.901 13.915 12.700 11.842 11.564 11.643 11.729 11.748 12.021 12.963 14.624 16.482 17.667 17.483 15.831 13.260 10.656 8.814 8.138 8.566 9.664 10.811 11.420 11.176 10.186 8.930 7.986 7.674 7.871 8.153 - 11.201 11.782 12.729 13.684 14.283 14.301 13.748 12.867 12.010 11.450 11.248 11.255 11.282 11.302 11.536 12.309 13.741 15.510 16.888 17.097 15.791 13.335 10.656 8.755 8.172 8.756 9.861 10.790 11.161 10.983 10.464 9.779 8.990 8.137 7.355 6.873 - 10.321 10.419 10.554 10.640 10.596 10.362 9.909 9.271 8.587 8.079 7.931 8.143 8.513 8.807 9.021 9.470 10.550 12.302 14.157 15.145 14.526 12.369 9.604 7.446 6.612 6.944 7.687 8.172 8.279 8.328 8.567 8.792 8.489 7.383 5.840 4.713 - 9.841 9.942 9.958 9.691 9.119 8.443 7.939 7.762 7.862 8.062 8.209 8.271 8.323 8.472 8.804 9.376 10.215 11.261 12.311 13.053 13.209 12.718 11.800 10.837 10.137 9.780 9.648 9.598 9.602 9.715 9.931 10.090 9.961 9.453 8.757 8.256 - 10.930 10.406 9.685 9.131 8.833 8.577 8.111 7.445 6.888 6.771 7.125 7.620 7.842 7.674 7.427 7.606 8.492 9.891 11.243 11.984 11.870 11.056 9.916 8.820 8.004 7.569 7.523 7.784 8.184 8.524 8.685 8.704 8.730 8.885 9.144 9.346 - 10.749 10.046 9.160 8.669 8.713 8.897 8.687 7.909 6.912 6.253 6.215 6.597 6.948 7.008 6.937 7.148 7.900 9.038 10.080 10.549 10.268 9.402 8.289 7.265 6.587 6.431 6.860 7.739 8.722 9.393 9.520 9.209 8.815 8.654 8.768 8.938 - 9.862 9.818 9.754 9.693 9.639 9.567 9.445 9.265 9.066 8.921 8.888 8.973 9.125 9.292 9.477 9.751 10.190 10.793 11.432 11.908 12.067 11.903 11.556 11.210 10.974 10.832 10.710 10.574 10.473 10.474 10.566 10.622 10.481 10.094 9.599 9.251 - 9.194 9.710 10.496 11.223 11.680 11.881 11.999 12.212 12.562 12.937 13.145 13.047 12.638 12.066 11.574 11.401 11.661 12.275 12.988 13.496 13.617 13.393 13.048 12.814 12.763 12.769 12.650 12.349 12.009 11.861 12.026 12.398 12.721 12.802 12.661 12.496 - 10.261 10.481 10.880 11.367 11.815 12.108 12.206 12.152 12.021 11.831 11.517 10.996 10.290 9.600 9.233 9.432 10.204 11.290 12.292 12.890 12.982 12.704 12.316 12.053 12.020 12.170 12.339 12.335 12.039 11.497 10.935 10.664 10.904 11.622 12.503 13.103 - 11.726 11.622 11.356 10.883 10.262 9.684 9.407 9.615 10.289 11.173 11.872 12.051 11.631 10.862 10.230 10.204 10.985 12.362 13.796 14.687 14.684 13.874 12.718 11.794 11.469 11.716 12.159 12.329 11.958 11.144 10.294 9.881 10.168 11.052 12.110 12.816 - 11.144 10.676 10.051 9.649 9.643 9.925 10.268 10.552 10.828 11.185 11.563 11.735 11.506 10.949 10.455 10.514 11.371 12.822 14.318 15.283 15.422 14.825 13.838 12.831 12.034 11.495 11.128 10.803 10.410 9.932 9.466 9.196 9.274 9.699 10.267 10.666 - 11.876 11.009 9.892 9.267 9.442 10.124 10.756 11.007 10.987 11.033 11.316 11.665 11.769 11.529 11.212 11.249 11.865 12.880 13.845 14.384 14.416 14.116 13.688 13.208 12.647 12.014 11.424 11.018 10.817 10.696 10.504 10.212 9.940 9.830 9.890 9.989 - 12.584 11.540 10.055 8.975 8.882 9.764 11.059 12.058 12.363 12.097 11.714 11.584 11.711 11.807 11.665 11.450 11.623 12.519 13.934 15.136 15.352 14.356 12.683 11.250 10.699 10.966 11.443 11.527 11.096 10.508 10.193 10.241 10.366 10.242 9.849 9.495 - 10.101 9.740 9.291 9.109 9.381 9.989 10.600 10.920 10.918 10.828 10.915 11.205 11.432 11.307 10.866 10.573 10.990 12.242 13.756 14.574 14.076 12.538 11.002 10.506 11.273 12.530 13.147 12.563 11.226 10.164 10.091 10.807 11.443 11.273 10.384 9.565 - 10.383 10.400 10.286 9.901 9.289 8.702 8.448 8.676 9.261 9.872 10.174 10.020 9.534 9.056 8.988 9.595 10.844 12.356 13.539 13.893 13.310 12.184 11.188 10.846 11.183 11.734 11.919 11.495 10.728 10.147 10.090 10.433 10.727 10.612 10.141 9.717 - 12.282 12.489 12.352 11.348 9.582 7.861 7.114 7.668 8.989 10.094 10.288 9.613 8.709 8.281 8.637 9.612 10.812 11.877 12.571 12.740 12.322 11.436 10.439 9.775 9.696 10.064 10.460 10.530 10.265 9.958 9.890 10.038 10.104 9.829 9.281 8.834 - 9.552 9.236 8.770 8.375 8.186 8.193 8.297 8.427 8.598 8.875 9.265 9.665 9.914 9.944 9.881 9.996 10.513 11.401 12.345 12.918 12.866 12.278 11.512 10.940 10.703 10.680 10.654 10.537 10.433 10.492 10.702 10.821 10.547 9.794 8.833 8.160 - 9.959 9.680 9.126 8.380 7.658 7.238 7.304 7.813 8.523 9.146 9.520 9.669 9.731 9.859 10.159 10.693 11.458 12.332 13.044 13.265 12.822 11.873 10.876 10.318 10.379 10.812 11.152 11.084 10.671 10.253 10.114 10.233 10.324 10.138 9.715 9.360 - 10.670 9.690 8.414 7.640 7.645 8.049 8.243 7.983 7.574 7.519 7.982 8.612 8.889 8.664 8.369 8.665 9.834 11.461 12.691 12.875 12.040 10.825 9.956 9.727 9.876 9.931 9.653 9.225 9.048 9.371 10.063 10.707 10.910 10.574 9.958 9.491 - 10.423 9.189 7.638 6.849 7.196 8.122 8.708 8.494 7.824 7.449 7.785 8.528 8.970 8.687 7.975 7.620 8.213 9.617 11.047 11.677 11.252 10.213 9.283 8.913 9.023 9.218 9.197 9.005 8.931 9.201 9.737 10.201 10.254 9.818 9.145 8.652 - 10.637 9.913 8.794 7.699 6.879 6.368 6.151 6.303 6.931 7.946 8.928 9.322 8.860 7.877 7.185 7.517 8.965 10.848 12.158 12.250 11.250 9.894 8.958 8.731 8.925 9.030 8.772 8.310 8.052 8.282 8.915 9.560 9.812 9.543 8.982 8.543 - 9.821 9.674 9.474 9.302 9.149 8.945 8.679 8.467 8.453 8.631 8.767 8.563 7.955 7.294 7.182 8.035 9.699 11.447 12.420 12.198 11.079 9.846 9.198 9.286 9.679 9.766 9.266 8.433 7.843 7.938 8.692 9.633 10.195 10.118 9.609 9.158 - 10.938 10.920 10.910 10.954 11.081 11.254 11.357 11.230 10.768 9.989 9.025 8.052 7.230 6.705 6.651 7.220 8.382 9.774 10.770 10.820 9.883 8.571 7.794 8.101 9.225 10.241 10.282 9.265 7.988 7.503 8.226 9.571 10.417 10.049 8.774 7.667 - 7.175 7.356 7.604 7.813 7.980 8.151 8.285 8.187 7.642 6.632 5.433 4.465 4.007 4.048 4.385 4.846 5.396 6.008 6.486 6.506 5.906 4.978 4.384 4.675 5.766 6.901 7.206 6.434 5.218 4.580 5.053 6.212 7.021 6.744 5.601 4.584 - 9.234 8.969 8.581 8.243 8.032 7.906 7.768 7.568 7.325 7.070 6.768 6.339 5.746 5.093 4.600 4.473 4.741 5.222 5.628 5.755 5.599 5.316 5.081 4.962 4.912 4.859 4.798 4.805 4.955 5.226 5.477 5.519 5.246 4.713 4.129 3.750 - 8.484 7.622 6.586 6.164 6.585 7.385 7.860 7.672 7.057 6.498 6.227 6.061 5.688 5.078 4.573 4.547 4.997 5.477 5.477 4.889 4.120 3.736 3.973 4.565 5.024 5.092 4.934 4.927 5.266 5.782 6.122 6.072 5.725 5.345 5.117 5.042 - 6.494 6.209 5.716 5.152 4.685 4.455 4.516 4.798 5.117 5.266 5.141 4.820 4.528 4.479 4.706 5.010 5.104 4.839 4.351 3.973 3.981 4.361 4.810 4.976 4.748 4.359 4.198 4.490 5.109 5.678 5.860 5.603 5.135 4.748 4.572 4.541 - 5.835 5.495 5.052 4.808 4.917 5.286 5.654 5.768 5.533 5.039 4.493 4.099 3.982 4.158 4.534 4.948 5.231 5.289 5.156 4.967 4.858 4.864 4.894 4.824 4.623 4.404 4.338 4.507 4.818 5.063 5.076 4.861 4.572 4.375 4.323 4.341 - 5.379 5.097 4.761 4.645 4.846 5.197 5.382 5.165 4.569 3.870 3.414 3.405 3.796 4.353 4.819 5.060 5.094 5.021 4.918 4.794 4.619 4.388 4.153 4.006 4.020 4.204 4.500 4.815 5.061 5.181 5.147 4.960 4.651 4.286 3.958 3.763 - 7.071 7.251 7.663 8.321 9.121 9.869 10.389 10.626 10.641 10.522 10.307 10.009 9.696 9.533 9.681 10.150 10.726 11.091 11.040 10.641 10.167 9.886 9.853 9.903 9.813 9.482 8.973 8.404 7.823 7.204 6.563 6.034 5.814 5.987 6.401 6.738 - 11.312 10.769 10.207 10.237 11.057 12.307 13.377 13.853 13.737 13.302 12.792 12.293 11.837 11.579 11.769 12.522 13.596 14.460 14.639 14.072 13.168 12.494 12.367 12.672 13.025 13.089 12.767 12.149 11.358 10.483 9.654 9.111 9.111 9.705 10.589 11.238 - 12.355 11.729 10.928 10.505 10.707 11.343 12.013 12.443 12.648 12.798 12.965 13.043 12.898 12.609 12.507 12.924 13.864 14.884 15.353 14.909 13.754 12.539 11.919 12.105 12.751 13.235 13.105 12.363 11.416 10.766 10.690 11.128 11.793 12.390 12.770 12.935 - 12.964 13.078 13.237 13.314 13.172 12.769 12.239 11.864 11.907 12.404 13.088 13.538 13.474 12.978 12.457 12.366 12.876 13.758 14.547 14.862 14.638 14.111 13.610 13.321 13.218 13.161 13.051 12.921 12.880 13.013 13.299 13.630 13.887 14.012 14.030 14.011 - 14.770 14.959 15.073 14.852 14.311 13.758 13.534 13.716 14.064 14.232 14.060 13.662 13.285 13.094 13.099 13.260 13.604 14.190 14.955 15.626 15.843 15.433 14.570 13.673 13.089 12.860 12.773 12.642 12.529 12.680 13.240 14.028 14.630 14.736 14.421 14.081 - 15.445 14.705 13.622 12.708 12.252 12.162 12.119 11.882 11.502 11.269 11.450 12.041 12.750 13.225 13.330 13.236 13.250 13.533 13.959 14.228 14.148 13.800 13.457 13.311 13.273 13.051 12.460 11.680 11.209 11.493 12.523 13.763 14.494 14.348 13.593 12.927 - 13.264 12.670 11.810 11.125 10.872 10.974 11.106 10.973 10.571 10.232 10.383 11.217 12.505 13.726 14.419 14.485 14.204 13.969 13.977 14.117 14.148 13.960 13.669 13.466 13.380 13.217 12.757 12.034 11.406 11.305 11.856 12.707 13.267 13.168 12.571 12.031 - 12.007 11.190 10.068 9.328 9.375 10.096 10.972 11.463 11.375 10.969 10.750 11.105 12.062 13.303 14.402 15.082 15.323 15.283 15.135 14.961 14.756 14.496 14.176 13.790 13.307 12.695 12.004 11.416 11.178 11.430 12.060 12.715 13.011 12.797 12.271 11.843 - 9.366 8.516 7.436 6.979 7.685 9.422 11.435 12.791 12.943 12.054 10.869 10.229 10.571 11.725 13.129 14.240 14.844 15.050 15.068 14.994 14.785 14.392 13.892 13.446 13.156 12.957 12.686 12.264 11.809 11.565 11.686 12.077 12.462 12.602 12.493 12.338 - 9.880 8.958 7.739 7.091 7.595 9.174 11.119 12.515 12.787 12.035 10.919 10.216 10.341 11.189 12.335 13.405 14.278 15.002 15.563 15.768 15.392 14.446 13.292 12.451 12.240 12.530 12.862 12.813 12.323 11.715 11.407 11.586 12.114 12.685 13.079 13.253 - 9.667 8.255 6.507 5.782 6.735 8.878 10.986 11.981 11.623 10.539 9.649 9.525 10.139 11.099 12.070 12.992 13.941 14.862 15.471 15.434 14.690 13.580 12.664 12.349 12.613 13.053 13.200 12.859 12.222 11.693 11.586 11.933 12.513 13.052 13.394 13.538 - 9.069 8.613 8.034 7.808 8.261 9.337 10.578 11.365 11.294 10.452 9.389 8.791 9.077 10.185 11.683 13.071 14.036 14.494 14.479 14.039 13.268 12.393 11.764 11.655 12.047 12.572 12.761 12.393 11.685 11.127 11.103 11.600 12.260 12.700 12.804 12.750 - 10.161 9.658 8.958 8.521 8.709 9.546 10.656 11.428 11.382 10.495 9.269 8.457 8.616 9.778 11.464 13.004 13.930 14.170 13.955 13.579 13.213 12.884 12.577 12.310 12.123 12.002 11.872 11.657 11.375 11.159 11.168 11.472 11.997 12.576 13.041 13.292 - 9.411 8.783 7.936 7.461 7.782 8.893 10.327 11.394 11.572 10.824 9.655 8.845 9.000 10.199 11.949 13.486 14.230 14.098 13.488 12.951 12.807 12.970 13.089 12.868 12.317 11.724 11.419 11.500 11.779 11.961 11.900 11.722 11.698 11.988 12.479 12.858 - 7.837 7.317 6.648 6.390 6.980 8.434 10.236 11.577 11.819 10.933 9.561 8.628 8.754 9.893 11.438 12.701 13.362 13.568 13.653 13.793 13.886 13.732 13.285 12.726 12.295 12.066 11.908 11.657 11.319 11.101 11.227 11.722 12.380 12.925 13.223 13.322 - 9.501 8.495 7.177 6.470 6.912 8.318 9.924 10.897 10.847 10.023 9.102 8.746 9.231 10.348 11.594 12.506 12.912 12.970 12.998 13.217 13.590 13.848 13.707 13.093 12.233 11.516 11.219 11.316 11.512 11.502 11.238 10.987 11.113 11.756 12.658 13.311 - 7.298 6.343 5.212 4.881 5.815 7.655 9.510 10.583 10.643 10.061 9.459 9.301 9.707 10.524 11.499 12.407 13.100 13.516 13.692 13.736 13.746 13.699 13.452 12.870 12.009 11.157 10.669 10.701 11.087 11.480 11.652 11.691 11.895 12.455 13.226 13.790 - 7.869 7.037 6.012 5.627 6.334 7.903 9.593 10.630 10.682 10.002 9.212 8.901 9.320 10.320 11.513 12.518 13.137 13.394 13.449 13.456 13.462 13.383 13.081 12.493 11.711 10.963 10.491 10.404 10.628 10.978 11.308 11.596 11.918 12.323 12.747 13.026 - 7.381 6.510 5.429 5.007 5.737 7.416 9.291 10.542 10.771 10.188 9.427 9.138 9.631 10.746 11.989 12.844 13.058 12.769 12.393 12.333 12.693 13.191 13.354 12.868 11.843 10.770 10.193 10.336 10.964 11.598 11.888 11.857 11.803 11.992 12.399 12.737 - 5.444 5.568 5.909 6.605 7.715 9.086 10.308 10.875 10.511 9.443 8.373 8.085 8.924 10.546 12.142 13.008 13.019 12.649 12.538 12.965 13.646 13.995 13.619 12.623 11.512 10.804 10.684 10.952 11.259 11.394 11.407 11.501 11.834 12.386 12.968 13.339 - 5.359 5.731 6.274 6.837 7.499 8.433 9.574 10.473 10.601 9.878 8.904 8.576 9.366 10.900 12.269 12.821 12.723 12.756 13.523 14.803 15.681 15.341 13.814 11.978 10.840 10.737 11.181 11.430 11.188 10.807 10.830 11.405 12.144 12.533 12.442 12.204 - 4.948 5.279 5.860 6.614 7.522 8.557 9.571 10.267 10.372 9.881 9.151 8.723 8.967 9.858 11.043 12.155 13.056 13.824 14.517 14.988 14.951 14.256 13.102 11.949 11.203 10.934 10.898 10.824 10.679 10.676 11.020 11.656 12.278 12.590 12.562 12.426 - 6.112 6.237 6.483 6.871 7.440 8.200 9.065 9.840 10.309 10.377 10.152 9.892 9.870 10.231 10.955 11.913 12.931 13.818 14.368 14.405 13.885 12.980 12.031 11.371 11.112 11.091 11.021 10.749 10.385 10.214 10.441 11.011 11.647 12.076 12.223 12.220 - 6.514 6.708 7.022 7.375 7.751 8.220 8.872 9.703 10.544 11.109 11.168 10.729 10.110 9.793 10.156 11.236 12.689 13.990 14.722 14.776 14.332 13.680 13.025 12.418 11.825 11.238 10.719 10.352 10.179 10.180 10.317 10.584 10.997 11.523 12.040 12.366 - 5.046 5.167 5.496 6.129 7.079 8.217 9.312 10.128 10.530 10.546 10.339 10.129 10.097 10.322 10.780 11.374 11.994 12.551 12.983 13.252 13.323 13.181 12.851 12.410 11.970 11.625 11.397 11.231 11.042 10.802 10.590 10.559 10.827 11.366 11.978 12.383 - 5.460 5.968 6.612 7.019 7.179 7.453 8.196 9.346 10.386 10.747 10.300 9.513 9.120 9.587 10.796 12.187 13.181 13.533 13.373 12.985 12.591 12.276 12.057 11.933 11.860 11.717 11.371 10.823 10.290 10.088 10.388 11.053 11.715 12.060 12.055 11.933 - 4.746 5.595 6.814 7.813 8.317 8.502 8.752 9.282 9.958 10.439 10.502 10.233 9.949 9.950 10.321 10.943 11.631 12.260 12.766 13.076 13.097 12.791 12.257 11.702 11.313 11.122 11.014 10.860 10.662 10.549 10.645 10.928 11.232 11.390 11.374 11.302 - 4.876 5.684 6.925 8.097 8.869 9.224 9.362 9.484 9.642 9.760 9.760 9.669 9.611 9.729 10.107 10.746 11.581 12.489 13.285 13.754 13.748 13.283 12.565 11.875 11.402 11.132 10.909 10.604 10.249 10.022 10.094 10.477 11.013 11.490 11.788 11.912 - 5.232 5.863 6.916 8.065 9.002 9.560 9.753 9.730 9.662 9.642 9.657 9.643 9.598 9.633 9.935 10.633 11.671 12.771 13.558 13.755 13.347 12.582 11.820 11.318 11.099 10.999 10.829 10.535 10.232 10.099 10.227 10.543 10.867 11.053 11.082 11.048 - 4.713 5.509 6.764 7.999 8.854 9.252 9.366 9.442 9.617 9.850 10.007 10.008 9.934 9.992 10.378 11.129 12.065 12.872 13.266 13.146 12.641 12.019 11.533 11.287 11.198 11.090 10.826 10.410 9.978 9.709 9.705 9.932 10.264 10.562 10.753 10.837 - 6.055 6.451 7.081 7.745 8.328 8.822 9.240 9.541 9.659 9.610 9.537 9.622 9.941 10.386 10.772 11.020 11.239 11.610 12.174 12.734 12.986 12.776 12.240 11.683 11.308 11.047 10.666 10.052 9.391 9.061 9.311 10.017 10.765 11.176 11.194 11.070 - 6.121 6.653 7.464 8.233 8.784 9.149 9.461 9.784 10.061 10.184 10.127 9.983 9.903 9.987 10.250 10.664 11.197 11.796 12.341 12.647 12.577 12.167 11.638 11.241 11.057 10.927 10.603 10.006 9.353 9.017 9.235 9.900 10.642 11.114 11.236 11.194 - 6.018 6.389 7.072 7.930 8.767 9.393 9.718 9.805 9.815 9.893 10.065 10.237 10.296 10.238 10.198 10.365 10.836 11.529 12.210 12.623 12.620 12.229 11.615 10.987 10.509 10.237 10.121 10.048 9.922 9.737 9.601 9.690 10.120 10.842 11.614 12.115 - 5.258 5.801 6.731 7.805 8.788 9.526 9.968 10.145 10.135 10.035 9.940 9.929 10.040 10.269 10.583 10.941 11.317 11.692 12.029 12.264 12.320 12.158 11.806 11.359 10.921 10.552 10.235 9.920 9.591 9.314 9.227 9.458 10.037 10.839 11.615 12.092 - 6.631 6.680 6.916 7.495 8.431 9.526 10.444 10.887 10.770 10.260 9.686 9.355 9.406 9.784 10.324 10.874 11.363 11.787 12.142 12.374 12.397 12.155 11.681 11.093 10.541 10.126 9.870 9.733 9.669 9.667 9.757 9.972 10.308 10.703 11.056 11.265 - 5.042 5.180 5.585 6.372 7.485 8.663 9.580 10.045 10.107 9.986 9.882 9.844 9.791 9.675 9.609 9.829 10.492 11.475 12.369 12.719 12.344 11.485 10.656 10.282 10.411 10.722 10.809 10.518 10.061 9.814 9.997 10.487 10.934 11.061 10.884 10.670 - 6.674 6.735 6.946 7.395 8.081 8.871 9.571 10.026 10.193 10.127 9.912 9.606 9.258 8.977 8.949 9.368 10.278 11.460 12.476 12.885 12.509 11.562 10.538 9.910 9.852 10.165 10.454 10.420 10.053 9.610 9.410 9.624 10.187 10.881 11.470 11.797 - 10.025 9.968 9.919 9.957 10.109 10.321 10.486 10.519 10.428 10.303 10.235 10.228 10.197 10.061 9.876 9.842 10.166 10.854 11.620 12.032 11.824 11.112 10.343 9.973 10.123 10.499 10.653 10.360 9.811 9.447 9.591 10.188 10.872 11.283 11.346 11.264 - 12.455 12.105 11.656 11.376 11.316 11.289 11.092 10.744 10.491 10.560 10.898 11.158 10.989 10.391 9.799 9.785 10.595 11.895 12.957 13.162 12.425 11.235 10.277 9.960 10.181 10.494 10.495 10.125 9.665 9.478 9.717 10.227 10.694 10.893 10.837 10.719 - 8.475 8.253 7.998 7.955 8.258 8.844 9.511 10.050 10.367 10.488 10.482 10.378 10.172 9.907 9.744 9.917 10.563 11.559 12.508 12.938 12.600 11.655 10.595 9.928 9.866 10.204 10.513 10.455 10.015 9.474 9.183 9.320 9.807 10.411 10.909 11.176 - 5.387 5.690 6.262 7.051 7.994 8.990 9.873 10.446 10.566 10.252 9.705 9.215 9.009 9.151 9.562 10.120 10.731 11.323 11.789 11.978 11.783 11.257 10.642 10.230 10.167 10.346 10.489 10.368 9.987 9.566 9.367 9.496 9.851 10.235 10.503 10.625 - 6.427 6.460 6.567 6.841 7.396 8.260 9.279 10.132 10.502 10.292 9.705 9.109 8.793 8.825 9.103 9.535 10.114 10.836 11.542 11.910 11.671 10.874 9.937 9.378 9.415 9.795 10.008 9.737 9.141 8.711 8.843 9.496 10.239 10.640 10.621 10.460 - 6.529 6.156 5.704 5.595 6.128 7.291 8.727 9.915 10.440 10.219 9.535 8.863 8.603 8.891 9.578 10.375 11.030 11.422 11.548 11.453 11.183 10.793 10.361 9.981 9.717 9.567 9.477 9.407 9.372 9.435 9.641 9.965 10.311 10.582 10.734 10.792 - 6.633 6.142 5.541 5.376 6.035 7.509 9.357 10.923 11.670 11.453 10.569 9.574 8.965 8.952 9.410 10.028 10.519 10.758 10.777 10.672 10.518 10.346 10.175 10.042 9.990 10.025 10.089 10.092 9.973 9.757 9.551 9.481 9.612 9.908 10.240 10.457 - 6.792 6.322 5.788 5.769 6.663 8.405 10.432 11.959 12.414 11.762 10.506 9.350 8.779 8.842 9.272 9.772 10.228 10.664 11.058 11.243 11.023 10.405 9.690 9.295 9.426 9.890 10.238 10.128 9.607 9.063 8.901 9.227 9.805 10.298 10.539 10.595 - 5.874 5.522 5.201 5.442 6.572 8.437 10.394 11.628 11.635 10.548 9.071 8.031 7.874 8.456 9.273 9.911 10.318 10.706 11.209 11.657 11.690 11.119 10.169 9.366 9.132 9.450 9.891 9.981 9.594 9.021 8.704 8.873 9.411 10.007 10.424 10.611 - 6.496 5.997 5.440 5.434 6.371 8.141 10.141 11.591 11.971 11.308 10.122 9.080 8.604 8.712 9.155 9.691 10.242 10.821 11.351 11.598 11.325 10.534 9.558 8.876 8.770 9.122 9.524 9.616 9.359 9.031 8.955 9.224 9.658 9.994 10.120 10.120 - 10.990 10.157 8.955 8.076 8.075 9.035 10.481 11.633 11.881 11.166 9.996 9.071 8.810 9.144 9.699 10.179 10.571 11.010 11.481 11.689 11.290 10.270 9.096 8.433 8.627 9.410 10.106 10.176 9.636 8.994 8.776 9.081 9.561 9.792 9.672 9.463 - 11.077 9.866 8.281 7.413 7.849 9.301 10.840 11.555 11.142 10.011 8.913 8.396 8.518 8.976 9.459 9.898 10.414 11.052 11.600 11.689 11.111 10.063 9.082 8.688 9.003 9.669 10.127 10.037 9.508 8.961 8.770 8.990 9.368 9.608 9.621 9.543 - 7.053 6.887 6.695 6.693 7.066 7.865 8.955 10.053 10.843 11.119 10.882 10.335 9.787 9.512 9.642 10.123 10.753 11.269 11.445 11.181 10.546 9.758 9.099 8.788 8.883 9.253 9.657 9.870 9.808 9.551 9.282 9.175 9.300 9.600 9.933 10.148 - 7.055 6.826 6.463 6.173 6.248 6.918 8.172 9.670 10.867 11.309 10.904 9.981 9.100 8.734 9.038 9.823 10.703 11.300 11.386 10.946 10.166 9.363 8.873 8.884 9.333 9.917 10.266 10.172 9.713 9.181 8.873 8.898 9.148 9.428 9.610 9.681 - 6.884 7.187 7.561 7.780 7.862 8.082 8.704 9.680 10.584 10.886 10.354 9.275 8.301 8.033 8.638 9.788 10.908 11.548 11.590 11.209 10.671 10.158 9.735 9.427 9.275 9.318 9.524 9.757 9.843 9.686 9.359 9.060 8.985 9.189 9.538 9.800 - 5.025 5.808 6.795 7.328 7.243 6.997 7.252 8.259 9.585 10.424 10.241 9.220 8.156 7.870 8.630 10.001 11.203 11.672 11.382 10.744 10.218 9.986 9.915 9.766 9.441 9.059 8.831 8.869 9.108 9.369 9.507 9.501 9.438 9.412 9.447 9.492 - 7.449 8.201 8.920 8.799 7.814 6.812 6.774 7.934 9.536 10.466 10.173 9.091 8.215 8.273 9.196 10.314 10.982 11.051 10.816 10.604 10.461 10.214 9.768 9.271 8.976 8.971 9.084 9.081 8.928 8.833 9.012 9.423 9.765 9.758 9.432 9.111 - 12.718 12.370 11.839 11.328 10.938 10.630 10.303 9.914 9.514 9.200 9.027 8.991 9.071 9.275 9.618 10.058 10.465 10.682 10.637 10.411 10.173 10.049 10.018 9.954 9.763 9.491 9.291 9.288 9.458 9.647 9.709 9.632 9.537 9.548 9.671 9.791 - 11.775 11.332 10.625 9.931 9.493 9.415 9.615 9.880 9.980 9.798 9.394 8.980 8.800 8.991 9.504 10.126 10.600 10.766 10.632 10.337 10.047 9.851 9.731 9.621 9.484 9.350 9.288 9.335 9.460 9.591 9.671 9.705 9.746 9.833 9.953 10.042 - 8.340 8.293 8.284 8.426 8.767 9.229 9.620 9.746 9.556 9.202 8.960 9.050 9.479 10.058 10.554 10.867 11.073 11.288 11.502 11.552 11.267 10.670 10.024 9.664 9.733 10.071 10.350 10.355 10.150 9.989 10.052 10.262 10.353 10.130 9.677 9.309 - 8.175 8.032 8.010 8.378 9.129 9.941 10.414 10.380 10.019 9.683 9.609 9.773 9.978 10.084 10.131 10.261 10.532 10.824 10.927 10.741 10.381 10.098 10.071 10.267 10.482 10.511 10.308 10.002 9.774 9.727 9.831 9.985 10.104 10.158 10.168 10.164 - 9.718 9.645 9.613 9.731 9.981 10.207 10.239 10.040 9.755 9.603 9.707 10.004 10.299 10.428 10.378 10.276 10.269 10.394 10.558 10.628 10.551 10.394 10.286 10.309 10.434 10.560 10.602 10.563 10.524 10.574 10.733 10.937 11.085 11.121 11.069 11.009 - 8.509 9.330 10.475 11.316 11.520 11.206 10.746 10.437 10.313 10.245 10.159 10.135 10.308 10.696 11.136 11.414 11.439 11.296 11.128 10.990 10.821 10.567 10.309 10.233 10.468 10.934 11.369 11.536 11.405 11.166 11.036 11.071 11.137 11.078 10.884 10.708 - 8.304 8.797 9.550 10.236 10.624 10.686 10.569 10.464 10.469 10.551 10.605 10.570 10.494 10.506 10.717 11.123 11.580 11.879 11.864 11.532 11.042 10.626 10.466 10.597 10.899 11.178 11.280 11.174 10.952 10.755 10.685 10.753 10.895 11.032 11.120 11.156 - 9.237 9.308 9.387 9.422 9.448 9.587 9.945 10.481 10.980 11.152 10.851 10.214 9.637 9.538 10.074 11.001 11.799 11.988 11.441 10.463 9.599 9.294 9.636 10.347 10.998 11.286 11.178 10.868 10.601 10.514 10.588 10.710 10.776 10.751 10.676 10.615 - 8.267 8.802 9.448 9.742 9.591 9.336 9.410 9.931 10.581 10.902 10.700 10.221 9.932 10.135 10.754 11.430 11.819 11.785 11.404 10.822 10.176 9.619 9.346 9.505 10.044 10.656 10.949 10.745 10.245 9.887 9.991 10.490 11.007 11.191 11.021 10.789 - 7.735 8.098 8.695 9.326 9.817 10.085 10.159 10.141 10.143 10.216 10.325 10.380 10.317 10.180 10.133 10.367 10.946 11.694 12.243 12.247 11.629 10.669 9.847 9.531 9.735 10.139 10.362 10.265 10.046 10.040 10.413 10.998 11.433 11.464 11.166 10.869 - 9.422 9.446 9.525 9.650 9.732 9.667 9.461 9.284 9.362 9.781 10.377 10.849 11.009 10.948 10.967 11.297 11.868 12.329 12.322 11.783 11.006 10.438 10.356 10.705 11.191 11.517 11.563 11.386 11.104 10.798 10.519 10.330 10.315 10.501 10.796 11.018 - 5.965 7.086 8.711 10.019 10.511 10.286 9.890 9.877 10.419 11.228 11.817 11.876 11.480 11.006 10.837 11.099 11.598 11.983 11.987 11.589 10.999 10.512 10.333 10.487 10.841 11.202 11.413 11.421 11.270 11.066 10.917 10.891 10.997 11.184 11.376 11.496 - 6.416 6.683 7.116 7.604 8.117 8.703 9.403 10.155 10.797 11.157 11.176 10.942 10.639 10.447 10.473 10.733 11.151 11.572 11.793 11.650 11.145 10.498 10.058 10.080 10.533 11.095 11.381 11.232 10.828 10.541 10.629 11.037 11.468 11.649 11.558 11.406 - 7.381 7.735 8.343 9.033 9.625 10.008 10.197 10.300 10.424 10.563 10.592 10.382 9.958 9.564 9.537 10.064 10.992 11.866 12.193 11.768 10.822 9.882 9.435 9.625 10.200 10.708 10.816 10.499 10.015 9.690 9.699 9.983 10.342 10.592 10.686 10.693 - 8.768 8.362 7.956 8.021 8.714 9.751 10.632 11.002 10.851 10.421 9.977 9.656 9.495 9.551 9.911 10.575 11.323 11.765 11.593 10.832 9.883 9.271 9.297 9.844 10.491 10.834 10.744 10.395 10.088 10.024 10.215 10.539 10.861 11.105 11.258 11.331 - 8.815 8.801 8.851 9.055 9.457 10.025 10.665 11.245 11.598 11.561 11.054 10.191 9.309 8.833 9.013 9.730 10.522 10.887 10.629 10.001 9.506 9.519 10.012 10.608 10.892 10.723 10.297 9.940 9.852 10.003 10.244 10.486 10.761 11.121 11.517 11.788 - 10.235 10.229 10.112 9.859 9.659 9.806 10.399 11.148 11.518 11.149 10.194 9.253 8.938 9.417 10.315 11.033 11.199 10.870 10.364 9.946 9.664 9.448 9.304 9.364 9.721 10.252 10.641 10.619 10.211 9.741 9.576 9.843 10.360 10.830 11.084 11.160 - 7.325 7.332 7.385 7.594 8.125 9.060 10.235 11.223 11.545 11.004 9.867 8.729 8.155 8.355 9.129 10.073 10.838 11.242 11.220 10.769 9.988 9.154 8.676 8.852 9.603 10.445 10.799 10.434 9.668 9.132 9.270 9.996 10.799 11.196 11.121 10.908 - 5.798 6.200 6.822 7.485 8.178 9.014 10.009 10.913 11.303 10.899 9.841 8.659 7.956 8.042 8.802 9.851 10.795 11.385 11.507 11.139 10.379 9.517 8.974 9.065 9.726 10.478 10.739 10.277 9.422 8.825 8.950 9.713 10.585 11.055 11.035 10.849 - 6.685 7.111 7.710 8.227 8.639 9.140 9.871 10.678 11.152 10.953 10.128 9.134 8.532 8.618 9.274 10.135 10.853 11.253 11.283 10.939 10.278 9.518 9.028 9.125 9.785 10.573 10.910 10.517 9.663 8.975 8.945 9.557 10.346 10.819 10.855 10.720 - 7.584 7.440 7.247 7.186 7.474 8.233 9.365 10.527 11.280 11.336 10.726 9.788 8.971 8.620 8.848 9.549 10.471 11.289 11.691 11.492 10.761 9.865 9.305 9.414 10.112 10.931 11.331 11.100 10.497 10.031 10.040 10.435 10.809 10.821 10.490 10.160 - 9.956 9.367 8.345 7.248 6.590 6.818 8.002 9.695 11.128 11.658 11.159 10.063 9.049 8.617 8.864 9.542 10.287 10.799 10.907 10.567 9.902 9.225 8.943 9.317 10.220 11.144 11.512 11.099 10.220 9.492 9.355 9.749 10.217 10.331 10.062 9.752 - 9.133 8.853 8.358 7.824 7.545 7.809 8.696 9.943 11.023 11.420 10.940 9.835 8.673 8.026 8.180 9.019 10.119 10.974 11.234 10.858 10.133 9.521 9.412 9.881 10.620 11.116 10.990 10.265 9.365 8.819 8.882 9.372 9.842 9.949 9.710 9.440 - 8.366 8.063 7.631 7.357 7.522 8.246 9.386 10.554 11.291 11.296 10.589 9.486 8.436 7.807 7.762 8.250 9.077 9.984 10.719 11.106 11.111 10.871 10.623 10.554 10.668 10.781 10.675 10.286 9.782 9.441 9.432 9.688 9.963 10.050 9.937 9.796 - 8.737 8.228 7.438 6.790 6.750 7.565 9.025 10.485 11.209 10.838 9.644 8.339 7.589 7.608 8.126 8.711 9.115 9.369 9.585 9.752 9.734 9.473 9.144 9.061 9.381 9.921 10.271 10.147 9.653 9.187 9.083 9.302 9.491 9.330 8.857 8.444 - 13.237 13.372 13.438 13.251 12.865 12.555 12.576 12.909 13.260 13.299 12.929 12.346 11.859 11.654 11.718 11.951 12.294 12.730 13.174 13.429 13.293 12.761 12.081 11.576 11.369 11.277 11.021 10.548 10.155 10.235 10.849 11.545 11.652 10.842 9.490 8.460 - 15.612 15.119 14.425 13.936 13.922 14.348 14.902 15.204 15.057 14.558 13.985 13.558 13.294 13.066 12.815 12.683 12.914 13.587 14.428 14.939 14.761 13.983 13.088 12.560 12.478 12.483 12.165 11.522 11.041 11.271 12.238 13.265 13.426 12.313 10.469 9.070 - 14.667 13.620 12.363 11.907 12.653 14.092 15.224 15.320 14.424 13.214 12.406 12.215 12.311 12.255 11.969 11.820 12.245 13.271 14.391 14.917 14.525 13.516 12.559 12.135 12.169 12.163 11.711 10.938 10.444 10.775 11.869 12.975 13.169 12.096 10.320 8.980 - 11.634 11.055 10.337 10.033 10.410 11.266 12.090 12.412 12.075 11.257 10.286 9.426 8.818 8.542 8.687 9.303 10.274 11.259 11.816 11.660 10.873 9.860 9.087 8.766 8.751 8.720 8.502 8.255 8.340 8.980 9.982 10.780 10.809 9.938 8.629 7.674 - 8.222 8.062 7.891 7.944 8.419 9.339 10.471 11.392 11.682 11.160 10.000 8.649 7.610 7.217 7.530 8.366 9.399 10.271 10.697 10.564 10.001 9.350 8.987 9.076 9.437 9.665 9.443 8.825 8.237 8.153 8.697 9.508 10.002 9.833 9.185 8.620 - 6.030 6.161 6.508 7.163 8.126 9.252 10.277 10.928 11.034 10.594 9.769 8.825 8.058 7.729 7.994 8.822 9.951 10.937 11.340 10.964 10.012 9.005 8.469 8.597 9.112 9.473 9.293 8.639 8.001 7.908 8.511 9.451 10.133 10.186 9.744 9.305 - 8.212 7.611 7.010 7.082 7.998 9.295 10.284 10.605 10.419 10.128 9.934 9.689 9.165 8.440 7.968 8.233 9.272 10.542 11.281 11.070 10.138 9.144 8.664 8.800 9.209 9.457 9.367 9.077 8.846 8.826 8.991 9.239 9.503 9.770 10.014 10.168 - 7.443 6.927 6.492 6.765 7.817 9.096 9.945 10.173 10.147 10.317 10.668 10.685 9.877 8.398 7.113 6.989 8.292 10.297 11.785 11.929 10.848 9.425 8.577 8.615 9.160 9.575 9.502 9.052 8.609 8.482 8.733 9.225 9.788 10.307 10.709 10.933 - 6.944 6.655 6.480 6.839 7.766 8.860 9.639 9.943 10.009 10.160 10.416 10.435 9.857 8.742 7.666 7.346 8.082 9.495 10.775 11.245 10.796 9.867 9.055 8.697 8.739 8.915 9.029 9.080 9.184 9.418 9.744 10.061 10.291 10.424 10.489 10.517 - 5.540 5.781 6.289 7.013 7.774 8.356 8.699 8.965 9.384 9.973 10.411 10.260 9.373 8.155 7.378 7.645 8.915 10.469 11.397 11.211 10.145 8.920 8.204 8.196 8.612 9.018 9.172 9.144 9.155 9.361 9.741 10.168 10.523 10.765 10.906 10.971 - 3.813 4.267 5.070 6.003 6.794 7.288 7.589 8.012 8.779 9.710 10.221 9.738 8.248 6.512 5.649 6.361 8.365 10.528 11.628 11.190 9.752 8.398 7.953 8.466 9.321 9.804 9.632 9.057 8.573 8.519 8.904 9.508 10.089 10.518 10.781 10.902 - 5.147 5.486 5.969 6.323 6.375 6.211 6.175 6.653 7.743 9.074 9.952 9.822 8.717 7.331 6.607 7.098 8.574 10.184 11.045 10.809 9.817 8.763 8.192 8.209 8.575 8.993 9.316 9.539 9.670 9.669 9.522 9.334 9.297 9.530 9.939 10.258 - 5.129 5.628 6.268 6.606 6.465 6.113 6.104 6.860 8.273 9.663 10.181 9.423 7.795 6.325 6.001 7.097 9.003 10.665 11.313 10.920 10.077 9.457 9.319 9.449 9.483 9.275 8.978 8.818 8.837 8.879 8.816 8.750 8.953 9.581 10.442 11.069 - 5.859 5.858 5.845 5.804 5.743 5.765 6.069 6.838 8.018 9.207 9.809 9.439 8.281 7.084 6.707 7.522 9.132 10.648 11.311 10.982 10.136 9.414 9.138 9.185 9.249 9.180 9.084 9.130 9.312 9.443 9.382 9.242 9.325 9.827 10.589 11.163 - 5.527 6.101 6.751 6.925 6.527 6.044 6.166 7.205 8.769 9.989 10.124 9.091 7.538 6.414 6.363 7.362 8.820 10.006 10.481 10.271 9.732 9.258 9.060 9.116 9.267 9.358 9.325 9.205 9.089 9.066 9.178 9.412 9.713 10.008 10.237 10.361 - 3.030 4.376 6.047 6.841 6.358 5.302 4.869 5.752 7.579 9.217 9.660 8.767 7.303 6.324 6.444 7.520 8.897 9.919 10.288 10.086 9.576 9.004 8.542 8.302 8.330 8.570 8.854 8.991 8.903 8.690 8.566 8.704 9.124 9.693 10.211 10.513 - 2.873 3.722 4.750 5.214 4.964 4.587 4.891 6.165 7.875 9.031 8.957 7.807 6.450 5.836 6.360 7.679 9.057 9.888 10.008 9.637 9.110 8.657 8.362 8.239 8.287 8.461 8.639 8.664 8.457 8.111 7.872 7.989 8.559 9.444 10.332 10.885 - 3.817 4.317 4.870 5.041 4.874 4.906 5.667 7.120 8.560 9.102 8.381 6.877 5.598 5.388 6.394 8.058 9.563 10.340 10.293 9.680 8.868 8.167 7.787 7.831 8.245 8.786 9.120 9.020 8.547 8.029 7.846 8.173 8.889 9.699 10.333 10.663 - 3.353 4.178 5.107 5.375 4.902 4.418 4.823 6.363 8.314 9.486 9.124 7.486 5.658 4.790 5.357 6.977 8.789 10.036 10.417 10.068 9.334 8.567 8.041 7.905 8.141 8.533 8.769 8.632 8.179 7.721 7.610 7.998 8.748 9.565 10.190 10.511 - 4.510 4.773 5.136 5.442 5.714 6.165 7.000 8.157 9.217 9.609 9.001 7.607 6.161 5.524 6.159 7.832 9.729 10.938 10.970 9.989 8.636 7.605 7.246 7.464 7.882 8.137 8.079 7.796 7.492 7.365 7.533 8.027 8.792 9.684 10.485 10.962 - 4.992 4.837 4.653 4.613 4.864 5.487 6.473 7.680 8.776 9.288 8.839 7.477 5.834 4.880 5.340 7.151 9.397 10.863 10.833 9.543 7.965 7.075 7.193 7.883 8.414 8.361 7.858 7.365 7.240 7.501 7.938 8.381 8.830 9.353 9.900 10.268 - 5.302 4.991 4.566 4.334 4.572 5.382 6.615 7.891 8.743 8.832 8.143 7.042 6.137 5.985 6.781 8.236 9.714 10.573 10.502 9.655 8.507 7.553 7.057 6.983 7.127 7.301 7.438 7.567 7.731 7.931 8.145 8.367 8.616 8.898 9.169 9.341 - 2.520 2.609 2.654 2.625 2.768 3.467 4.859 6.552 7.784 7.959 7.128 6.000 5.452 5.925 7.180 8.569 9.526 9.872 9.735 9.283 8.569 7.635 6.692 6.112 6.186 6.856 7.697 8.215 8.201 7.865 7.623 7.765 8.268 8.886 9.376 9.626 - 2.852 3.318 3.950 4.441 4.757 5.131 5.767 6.545 7.053 6.931 6.229 5.440 5.157 5.656 6.737 7.932 8.859 9.388 9.561 9.396 8.848 7.952 6.966 6.299 6.236 6.694 7.263 7.521 7.368 7.081 7.058 7.491 8.239 8.990 9.507 9.744 - 4.437 4.639 4.783 4.632 4.260 4.035 4.307 5.071 5.930 6.405 6.309 5.881 5.568 5.691 6.267 7.100 7.982 8.780 9.363 9.524 9.061 8.003 6.736 5.848 5.757 6.397 7.256 7.750 7.645 7.193 6.899 7.127 7.878 8.856 9.703 10.175 - 6.269 5.789 5.245 5.137 5.655 6.531 7.247 7.412 7.011 6.356 5.832 5.651 5.803 6.181 6.718 7.391 8.133 8.758 9.014 8.751 8.056 7.230 6.625 6.440 6.625 6.949 7.164 7.146 6.950 6.757 6.780 7.157 7.887 8.817 9.681 10.202 - 7.005 6.841 6.788 7.081 7.595 7.889 7.589 6.772 5.975 5.779 6.335 7.235 7.863 7.902 7.564 7.355 7.613 8.216 8.718 8.749 8.321 7.785 7.521 7.640 7.945 8.142 8.079 7.827 7.570 7.464 7.564 7.858 8.308 8.847 9.353 9.665 - 6.320 6.169 6.236 6.840 7.822 8.559 8.444 7.430 6.142 5.428 5.722 6.746 7.786 8.283 8.226 8.051 8.174 8.604 8.962 8.842 8.194 7.382 6.902 7.021 7.616 8.314 8.765 8.833 8.611 8.293 8.058 8.010 8.171 8.483 8.823 9.045 - 6.081 6.174 6.438 6.885 7.333 7.472 7.100 6.336 5.607 5.382 5.858 6.837 7.884 8.636 8.994 9.095 9.113 9.090 8.939 8.582 8.073 7.605 7.379 7.481 7.837 8.264 8.568 8.612 8.354 7.869 7.344 7.023 7.089 7.539 8.148 8.577 - 6.259 6.138 6.154 6.517 7.102 7.467 7.221 6.412 5.573 5.344 5.980 7.137 8.134 8.463 8.135 7.609 7.389 7.637 8.099 8.345 8.117 7.483 6.747 6.229 6.086 6.286 6.683 7.102 7.403 7.512 7.448 7.320 7.263 7.352 7.539 7.690 - 7.521 6.729 5.897 5.834 6.663 7.688 8.007 7.293 6.072 5.240 5.297 5.969 6.531 6.505 6.074 5.871 6.364 7.402 8.322 8.491 7.786 6.640 5.655 5.176 5.142 5.292 5.443 5.606 5.876 6.276 6.709 7.049 7.243 7.329 7.368 7.389 - 8.330 7.854 7.135 6.484 6.110 6.027 6.123 6.266 6.381 6.428 6.353 6.109 5.738 5.421 5.425 5.905 6.745 7.545 7.845 7.420 6.443 5.392 4.735 4.645 4.932 5.240 5.338 5.287 5.356 5.773 6.508 7.267 7.699 7.651 7.288 6.965 - 7.664 6.566 5.257 4.744 5.295 6.278 6.774 6.398 5.566 5.027 5.158 5.691 6.084 6.115 6.080 6.420 7.169 7.811 7.723 6.776 5.529 4.804 5.016 5.871 6.661 6.873 6.548 6.136 6.032 6.258 6.538 6.620 6.497 6.336 6.268 6.273 - 7.150 7.101 7.078 7.147 7.267 7.294 7.078 6.591 5.979 5.479 5.286 5.442 5.851 6.360 6.856 7.280 7.585 7.696 7.524 7.051 6.389 5.760 5.395 5.404 5.720 6.152 6.507 6.689 6.715 6.657 6.553 6.384 6.114 5.749 5.382 5.148 - 9.786 8.991 7.959 7.353 7.415 7.812 7.961 7.536 6.708 5.965 5.685 5.866 6.210 6.434 6.498 6.569 6.776 7.037 7.119 6.865 6.363 5.898 5.738 5.944 6.358 6.755 7.002 7.097 7.104 7.060 6.966 6.831 6.701 6.630 6.628 6.651 - 9.485 8.939 8.213 7.734 7.650 7.740 7.649 7.209 6.576 6.076 5.922 6.079 6.356 6.616 6.874 7.197 7.531 7.660 7.363 6.642 5.792 5.226 5.189 5.591 6.096 6.391 6.403 6.299 6.304 6.497 6.750 6.842 6.633 6.162 5.632 5.287 - 9.021 8.400 7.619 7.221 7.396 7.859 8.125 7.915 7.358 6.826 6.591 6.628 6.707 6.661 6.542 6.537 6.725 6.941 6.881 6.372 5.556 4.825 4.553 4.848 5.510 6.198 6.656 6.825 6.789 6.653 6.461 6.205 5.886 5.544 5.255 5.089 - 10.103 9.938 9.680 9.388 9.020 8.463 7.650 6.682 5.825 5.370 5.451 5.971 6.667 7.266 7.607 7.656 7.453 7.059 6.549 6.027 5.619 5.423 5.456 5.656 5.944 6.281 6.676 7.126 7.560 7.842 7.850 7.555 7.053 6.509 6.074 5.840 - 8.237 8.128 8.085 8.249 8.523 8.585 8.145 7.233 6.259 5.758 6.025 6.896 7.868 8.428 8.357 7.795 7.071 6.465 6.072 5.841 5.685 5.561 5.479 5.461 5.534 5.721 6.046 6.496 6.981 7.346 7.436 7.184 6.656 6.019 5.468 5.153 - 6.687 6.629 6.791 7.365 8.123 8.492 8.028 6.865 5.693 5.249 5.742 6.712 7.436 7.504 7.077 6.632 6.481 6.524 6.422 5.988 5.392 5.004 5.041 5.390 5.747 5.929 6.038 6.322 6.885 7.534 7.905 7.742 7.080 6.199 5.429 4.997 - 6.811 6.340 5.667 5.168 5.091 5.406 5.829 6.003 5.726 5.088 4.423 4.112 4.349 5.018 5.757 6.167 6.046 5.494 4.829 4.381 4.293 4.460 4.645 4.662 4.516 4.382 4.454 4.791 5.258 5.619 5.690 5.448 5.022 4.594 4.285 4.135 - 4.832 4.827 4.911 5.158 5.501 5.725 5.604 5.089 4.395 3.891 3.864 4.312 4.939 5.366 5.398 5.148 4.923 4.968 5.264 5.561 5.593 5.308 4.905 4.666 4.722 4.958 5.129 5.079 4.860 4.653 4.577 4.562 4.418 4.035 3.519 3.145 - 4.066 4.084 4.402 5.206 6.244 6.908 6.726 5.795 4.735 4.190 4.318 4.748 5.004 4.973 4.952 5.268 5.869 6.330 6.262 5.721 5.186 5.103 5.456 5.765 5.553 4.807 4.001 3.650 3.836 4.152 4.114 3.615 2.996 2.686 2.779 2.988 - 5.277 4.706 3.989 3.646 3.904 4.543 5.083 5.150 4.731 4.149 3.820 3.979 4.561 5.258 5.701 5.638 5.064 4.248 3.632 3.615 4.303 5.392 6.305 6.537 5.981 4.994 4.132 3.751 3.784 3.870 3.700 3.281 2.893 2.802 3.002 3.232 - 5.691 5.120 4.425 4.157 4.540 5.290 5.824 5.703 4.976 4.152 3.826 4.237 5.102 5.839 6.004 5.597 5.003 4.653 4.701 4.973 5.204 5.325 5.520 6.010 6.765 7.435 7.590 7.065 6.122 5.259 4.835 4.820 4.884 4.722 4.337 4.007 - 5.884 5.193 4.394 4.199 4.887 6.081 7.022 7.124 6.378 5.311 4.555 4.393 4.628 4.846 4.816 4.665 4.708 5.103 5.660 6.004 5.930 5.642 5.621 6.215 7.304 8.335 8.732 8.342 7.550 6.947 6.846 7.045 7.039 6.503 5.614 4.929 - 5.448 5.235 4.955 4.837 5.076 5.677 6.383 6.784 6.569 5.764 4.744 3.986 3.743 3.908 4.167 4.307 4.384 4.609 5.080 5.638 6.007 6.077 6.057 6.308 6.992 7.878 8.493 8.509 8.021 7.451 7.168 7.182 7.181 6.878 6.320 5.871 - 7.149 6.292 5.154 4.468 4.614 5.368 6.101 6.242 5.654 4.680 3.862 3.575 3.833 4.367 4.849 5.080 5.048 4.859 4.653 4.567 4.721 5.195 5.968 6.885 7.686 8.127 8.102 7.706 7.170 6.733 6.521 6.512 6.595 6.664 6.683 6.674 - 5.480 4.846 4.159 4.080 4.787 5.829 6.511 6.445 5.811 5.131 4.808 4.846 4.967 4.940 4.795 4.739 4.903 5.197 5.428 5.535 5.684 6.122 6.906 7.792 8.390 8.447 8.029 7.434 6.963 6.730 6.672 6.682 6.719 6.797 6.911 6.999 - 5.469 5.349 5.208 5.170 5.295 5.532 5.772 5.942 6.068 6.251 6.551 6.880 7.018 6.764 6.125 5.383 4.964 5.168 5.962 7.000 7.856 8.300 8.398 8.385 8.425 8.474 8.363 7.990 7.460 7.019 6.856 6.949 7.098 7.113 6.973 6.827 - 5.177 5.395 5.674 5.821 5.748 5.552 5.457 5.666 6.223 6.962 7.578 7.780 7.447 6.696 5.849 5.284 5.261 5.794 6.650 7.482 8.017 8.190 8.138 8.069 8.100 8.181 8.163 7.937 7.532 7.100 6.809 6.728 6.808 6.937 7.035 7.079 - 7.027 6.459 5.746 5.361 5.442 5.745 5.953 6.022 6.193 6.676 7.325 7.672 7.330 6.411 5.532 5.369 6.115 7.319 8.239 8.421 8.007 7.544 7.499 7.900 8.384 8.549 8.273 7.750 7.267 6.966 6.783 6.583 6.303 5.990 5.735 5.598 - 5.628 5.728 5.841 5.911 6.019 6.332 6.926 7.660 8.229 8.377 8.083 7.557 7.074 6.809 6.805 7.062 7.589 8.348 9.139 9.626 9.541 8.933 8.201 7.832 8.021 8.498 8.751 8.447 7.708 6.986 6.647 6.659 6.657 6.321 5.708 5.216 - 6.096 5.780 5.348 5.087 5.211 5.738 6.496 7.234 7.777 8.105 8.291 8.388 8.370 8.206 7.990 7.973 8.404 9.276 10.205 10.621 10.171 9.034 7.863 7.344 7.697 8.511 9.066 8.870 8.004 6.987 6.326 6.134 6.133 5.988 5.642 5.338 - 5.357 4.720 4.100 4.224 5.249 6.614 7.521 7.600 7.193 7.006 7.475 8.405 9.193 9.399 9.158 9.036 9.493 10.419 11.176 11.103 10.071 8.611 7.530 7.327 7.869 8.558 8.808 8.447 7.752 7.141 6.824 6.672 6.393 5.829 5.123 4.627 - 5.891 5.478 5.064 5.129 5.835 6.885 7.758 8.103 7.976 7.736 7.732 8.038 8.481 8.883 9.271 9.841 10.686 11.569 11.972 11.464 10.099 8.498 7.503 7.615 8.637 9.803 10.306 9.828 8.689 7.535 6.830 6.567 6.392 5.995 5.404 4.951 - 5.721 5.366 5.117 5.453 6.395 7.443 7.993 7.857 7.412 7.261 7.705 8.521 9.222 9.547 9.702 10.134 11.028 12.011 12.361 11.582 9.870 8.068 7.127 7.478 8.765 10.131 10.787 10.462 9.444 8.259 7.295 6.618 6.070 5.511 4.969 4.619 - 6.368 5.848 5.318 5.358 6.120 7.201 7.989 8.172 7.963 7.874 8.256 9.023 9.789 10.261 10.511 10.863 11.505 12.200 12.381 11.598 9.954 8.152 7.087 7.261 8.463 9.916 10.783 10.648 9.675 8.385 7.272 6.545 6.124 5.834 5.589 5.429 - 4.884 5.121 5.609 6.306 7.071 7.700 8.051 8.155 8.213 8.453 8.960 9.621 10.222 10.638 10.923 11.236 11.633 11.933 11.781 10.924 9.478 7.966 7.063 7.188 8.227 9.588 10.558 10.711 10.093 9.106 8.185 7.550 7.163 6.885 6.643 6.485 - 6.084 5.557 5.009 5.025 5.792 6.966 7.985 8.523 8.695 8.870 9.297 9.905 10.439 10.753 10.957 11.269 11.724 12.038 11.790 10.783 9.271 7.860 7.148 7.376 8.330 9.514 10.432 10.786 10.526 9.793 8.842 7.961 7.382 7.182 7.253 7.375 - 6.280 5.853 5.415 5.448 6.103 7.083 7.902 8.273 8.307 8.374 8.771 9.491 10.278 10.863 11.171 11.303 11.358 11.283 10.896 10.069 8.900 7.736 7.006 7.007 7.758 8.994 10.273 11.134 11.261 10.607 9.428 8.179 7.300 6.980 7.084 7.272 - 6.263 5.909 5.488 5.382 5.812 6.673 7.585 8.152 8.250 8.135 8.255 8.899 9.944 10.918 11.347 11.106 10.480 9.896 9.547 9.253 8.691 7.791 6.922 6.689 7.454 8.999 10.607 11.507 11.354 10.370 9.110 8.058 7.394 7.037 6.844 6.748 - 6.572 6.251 5.839 5.663 5.934 6.611 7.413 8.007 8.237 8.239 8.328 8.744 9.443 10.119 10.442 10.315 9.922 9.535 9.249 8.909 8.305 7.463 6.758 6.689 7.485 8.872 10.195 10.834 10.582 9.711 8.708 7.929 7.445 7.137 6.905 6.761 - 7.338 6.996 6.584 6.447 6.747 7.351 7.940 8.246 8.234 8.098 8.082 8.293 8.636 8.929 9.063 9.071 9.042 8.979 8.751 8.216 7.414 6.650 6.351 6.776 7.793 8.921 9.625 9.651 9.153 8.524 8.078 7.846 7.635 7.274 6.804 6.460 - 6.773 6.547 6.294 6.260 6.557 7.105 7.709 8.206 8.539 8.732 8.808 8.761 8.602 8.413 8.328 8.442 8.719 8.999 9.111 9.004 8.780 8.605 8.572 8.637 8.673 8.585 8.390 8.178 8.025 7.914 7.750 7.441 6.974 6.435 5.963 5.689 - 7.032 7.016 7.072 7.283 7.644 8.055 8.402 8.629 8.731 8.697 8.495 8.136 7.765 7.634 7.944 8.645 9.408 9.818 9.669 9.120 8.567 8.328 8.414 8.559 8.487 8.147 7.736 7.487 7.446 7.443 7.269 6.880 6.431 6.123 6.024 6.035 - 7.043 7.149 7.356 7.644 7.980 8.323 8.626 8.835 8.885 8.722 8.353 7.891 7.549 7.540 7.939 8.596 9.190 9.417 9.177 8.636 8.102 7.809 7.764 7.783 7.661 7.346 6.969 6.721 6.689 6.787 6.821 6.634 6.203 5.648 5.146 4.853 - 7.517 7.592 7.552 7.238 6.748 6.423 6.581 7.231 8.032 8.533 8.506 8.084 7.615 7.380 7.418 7.581 7.711 7.764 7.783 7.786 7.727 7.559 7.316 7.109 7.021 7.000 6.891 6.580 6.114 5.682 5.451 5.421 5.432 5.327 5.105 4.918 - 11.855 11.445 10.857 10.400 10.264 10.406 10.593 10.569 10.211 9.597 8.941 8.462 8.268 8.324 8.495 8.629 8.634 8.502 8.286 8.050 7.826 7.602 7.351 7.071 6.807 6.628 6.572 6.601 6.608 6.476 6.162 5.724 5.285 4.956 4.771 4.700 - 12.464 11.637 10.510 9.746 9.674 10.101 10.512 10.475 9.909 9.065 8.284 7.779 7.584 7.643 7.884 8.224 8.534 8.659 8.512 8.151 7.743 7.425 7.190 6.923 6.544 6.136 5.904 6.002 6.368 6.743 6.856 6.616 6.160 5.715 5.428 5.308 - 8.379 8.525 8.558 8.198 7.411 6.481 5.825 5.686 5.971 6.339 6.474 6.313 6.074 6.076 6.505 7.299 8.206 8.947 9.356 9.421 9.235 8.914 8.539 8.137 7.707 7.253 6.818 6.479 6.311 6.317 6.388 6.336 6.012 5.421 4.760 4.322 - 7.564 7.651 7.820 8.036 8.208 8.210 7.943 7.420 6.799 6.313 6.134 6.254 6.499 6.669 6.719 6.817 7.205 7.969 8.905 9.615 9.782 9.406 8.801 8.340 8.159 8.073 7.770 7.115 6.292 5.653 5.410 5.450 5.438 5.129 4.598 4.181 - 8.762 8.104 7.407 7.362 8.112 9.093 9.487 8.878 7.574 6.338 5.769 5.884 6.217 6.311 6.152 6.160 6.773 8.009 9.380 10.240 10.255 9.615 8.830 8.317 8.123 7.980 7.615 7.011 6.412 6.089 6.078 6.131 5.919 5.314 4.523 3.964 - 10.032 8.833 7.532 7.343 8.509 10.075 10.713 9.842 8.081 6.651 6.319 6.817 7.221 6.882 6.051 5.651 6.432 8.282 10.274 11.369 11.155 10.035 8.796 8.002 7.698 7.577 7.350 6.970 6.564 6.246 5.996 5.718 5.356 4.953 4.608 4.413 - 6.503 5.917 5.544 6.195 7.850 9.546 10.121 9.160 7.311 5.726 5.132 5.359 5.690 5.637 5.428 5.773 7.159 9.333 11.410 12.486 12.224 10.964 9.380 8.030 7.145 6.710 6.624 6.755 6.914 6.874 6.499 5.875 5.272 4.939 4.904 4.984 - 7.422 6.872 6.461 6.894 8.188 9.580 10.140 9.532 8.226 7.035 6.418 6.215 5.999 5.651 5.559 6.253 7.832 9.752 11.167 11.532 10.921 9.836 8.747 7.813 6.981 6.266 5.863 5.955 6.439 6.909 6.937 6.415 5.624 4.965 4.638 4.556 - 6.825 6.234 5.883 6.610 8.402 10.290 11.119 10.485 8.994 7.661 7.040 6.890 6.626 6.055 5.654 6.114 7.614 9.521 10.818 10.857 9.787 8.318 7.117 6.391 5.973 5.703 5.641 5.933 6.512 7.019 7.063 6.563 5.823 5.252 5.029 5.019 - 2.873 3.841 5.554 7.563 9.282 10.206 10.161 9.412 8.487 7.830 7.531 7.342 6.974 6.410 5.972 6.088 6.930 8.238 9.448 10.029 9.771 8.843 7.640 6.554 5.839 5.570 5.676 5.978 6.239 6.259 5.979 5.516 5.089 4.866 4.851 4.909 - 5.847 5.592 5.689 6.680 8.365 9.820 10.136 9.201 7.795 6.909 6.907 7.300 7.315 6.675 5.888 5.763 6.668 8.191 9.492 9.965 9.608 8.830 7.993 7.173 6.325 5.578 5.259 5.584 6.335 6.923 6.841 6.085 5.154 4.595 4.549 4.706 - 6.416 6.761 7.466 8.433 9.358 9.814 9.506 8.498 7.212 6.169 5.658 5.605 5.710 5.758 5.807 6.130 6.944 8.182 9.464 10.319 10.454 9.911 8.998 8.093 7.461 7.174 7.152 7.249 7.329 7.307 7.163 6.933 6.684 6.478 6.346 6.287 - 7.555 7.870 8.487 9.267 9.878 9.922 9.210 7.955 6.693 5.942 5.850 6.128 6.329 6.238 6.065 6.268 7.163 8.621 10.105 11.000 10.985 10.204 9.123 8.241 7.835 7.892 8.192 8.470 8.533 8.324 7.922 7.483 7.163 7.035 7.058 7.117 - 7.721 7.869 8.365 9.286 10.303 10.794 10.320 9.030 7.593 6.693 6.499 6.615 6.522 6.119 5.838 6.241 7.466 9.035 10.195 10.480 10.019 9.340 8.908 8.809 8.807 8.661 8.345 8.006 7.755 7.553 7.288 6.951 6.678 6.617 6.758 6.918 - 7.510 7.452 7.583 8.121 8.956 9.640 9.701 9.007 7.889 6.893 6.393 6.375 6.546 6.655 6.708 6.918 7.465 8.288 9.108 9.635 9.772 9.646 9.464 9.346 9.263 9.109 8.812 8.388 7.905 7.433 7.018 6.697 6.504 6.446 6.483 6.534 - 6.061 6.043 6.348 7.271 8.648 9.838 10.147 9.340 7.825 6.358 5.531 5.458 5.851 6.357 6.813 7.255 7.747 8.263 8.725 9.107 9.458 9.796 10.010 9.904 9.383 8.597 7.870 7.461 7.356 7.302 7.047 6.574 6.105 5.879 5.923 6.046 - 7.444 7.034 6.656 6.810 7.611 8.660 9.331 9.220 8.398 7.295 6.354 5.772 5.492 5.392 5.449 5.725 6.237 6.875 7.462 7.895 8.218 8.552 8.946 9.305 9.459 9.305 8.885 8.339 7.795 7.300 6.856 6.486 6.251 6.195 6.273 6.365 - 6.723 6.809 7.047 7.520 8.222 8.966 9.392 9.157 8.204 6.901 5.866 5.551 5.905 6.414 6.540 6.202 5.858 6.106 7.109 8.392 9.204 9.151 8.542 8.117 8.387 9.172 9.754 9.497 8.399 7.080 6.255 6.177 6.535 6.833 6.846 6.731 - 6.024 6.157 6.413 6.820 7.438 8.231 8.950 9.200 8.728 7.696 6.640 6.081 6.086 6.223 5.992 5.369 4.933 5.384 6.851 8.652 9.771 9.687 8.814 8.133 8.328 9.194 9.866 9.631 8.583 7.509 7.147 7.516 7.955 7.808 7.069 6.380 - 5.785 6.081 6.686 7.582 8.646 9.611 10.112 9.867 8.884 7.529 6.340 5.696 5.584 5.684 5.709 5.705 6.006 6.871 8.121 9.158 9.410 8.828 7.971 7.563 7.875 8.505 8.756 8.294 7.482 7.060 7.455 8.348 8.931 8.623 7.620 6.748 - 5.870 6.046 6.493 7.273 8.263 9.119 9.421 8.929 7.783 6.459 5.490 5.121 5.187 5.309 5.262 5.196 5.499 6.397 7.642 8.603 8.724 7.986 6.964 6.394 6.610 7.310 7.856 7.844 7.425 7.115 7.283 7.786 8.104 7.840 7.118 6.501 - 6.551 7.093 7.875 8.500 8.720 8.526 8.052 7.450 6.838 6.327 6.016 5.908 5.847 5.617 5.177 4.818 5.019 6.028 7.513 8.658 8.720 7.636 6.159 5.326 5.673 6.837 7.886 8.097 7.507 6.777 6.532 6.804 7.071 6.826 6.107 5.475 - 6.243 6.492 6.945 7.506 8.030 8.330 8.236 7.699 6.866 6.057 5.584 5.541 5.716 5.753 5.459 5.000 4.792 5.139 5.915 6.597 6.664 6.038 5.195 4.810 5.216 6.143 6.944 7.131 6.738 6.223 6.020 6.160 6.302 6.110 5.611 5.179 - 5.456 5.754 6.290 6.917 7.403 7.515 7.163 6.494 5.823 5.442 5.414 5.533 5.493 5.154 4.688 4.469 4.778 5.541 6.333 6.657 6.305 5.525 4.848 4.703 5.125 5.754 6.138 6.075 5.730 5.451 5.454 5.650 5.751 5.551 5.127 4.780 - 4.855 5.641 6.862 7.981 8.514 8.249 7.327 6.147 5.151 4.600 4.476 4.547 4.563 4.434 4.286 4.345 4.747 5.406 6.042 6.361 6.252 5.859 5.483 5.371 5.551 5.837 5.973 5.823 5.456 5.080 4.886 4.929 5.123 5.333 5.471 5.528 - 5.002 5.754 6.792 7.525 7.624 7.154 6.405 5.618 4.888 4.256 3.829 3.748 4.025 4.452 4.740 4.784 4.777 5.034 5.651 6.333 6.605 6.232 5.478 4.917 4.967 5.527 6.083 6.167 5.759 5.271 5.143 5.443 5.839 5.954 5.734 5.469 - 5.197 5.936 7.046 7.988 8.327 7.935 7.007 5.931 5.080 4.655 4.633 4.825 5.009 5.063 5.026 5.051 5.274 5.682 6.081 6.221 5.982 5.492 5.055 4.943 5.186 5.557 5.752 5.634 5.335 5.132 5.203 5.482 5.725 5.733 5.530 5.328 - 4.826 5.573 6.656 7.562 8.026 8.120 8.043 7.860 7.444 6.674 5.662 4.760 4.324 4.449 4.914 5.391 5.693 5.844 5.937 5.968 5.831 5.495 5.136 5.054 5.422 6.092 6.674 6.843 6.597 6.235 6.073 6.167 6.304 6.242 5.970 5.717 - 6.300 6.426 6.630 6.894 7.258 7.751 8.249 8.461 8.095 7.121 5.890 4.953 4.695 5.073 5.674 6.052 6.059 5.903 5.901 6.182 6.602 6.923 7.057 7.141 7.371 7.776 8.155 8.239 7.926 7.363 6.823 6.487 6.350 6.291 6.226 6.167 - 6.151 6.488 7.023 7.586 8.070 8.418 8.516 8.194 7.361 6.194 5.147 4.691 4.969 5.666 6.241 6.353 6.114 5.946 6.168 6.704 7.174 7.283 7.120 7.080 7.478 8.210 8.805 8.817 8.212 7.389 6.833 6.731 6.889 6.985 6.894 6.754 - 5.886 6.298 6.910 7.462 7.815 7.979 7.994 7.817 7.360 6.653 5.939 5.585 5.816 6.523 7.296 7.702 7.562 7.030 6.419 5.963 5.715 5.630 5.699 5.984 6.500 7.113 7.572 7.686 7.484 7.197 7.068 7.160 7.340 7.428 7.375 7.286 - 4.953 5.521 6.471 7.511 8.358 8.823 8.838 8.434 7.711 6.822 5.968 5.371 5.215 5.553 6.257 7.035 7.552 7.584 7.128 6.411 5.775 5.511 5.723 6.297 6.983 7.535 7.827 7.884 7.827 7.773 7.765 7.762 7.698 7.550 7.367 7.239 - 5.697 5.922 6.502 7.441 8.422 8.903 8.516 7.399 6.152 5.424 5.459 5.996 6.566 6.896 7.051 7.228 7.461 7.539 7.241 6.621 6.057 5.972 6.482 7.298 7.956 8.183 8.061 7.870 7.810 7.842 7.792 7.565 7.243 6.991 6.892 6.889 - 5.923 6.323 7.106 8.129 9.064 9.490 9.152 8.159 6.975 6.145 5.972 6.370 6.982 7.448 7.609 7.518 7.299 7.024 6.702 6.368 6.137 6.158 6.491 7.040 7.587 7.931 7.996 7.844 7.601 7.363 7.164 6.999 6.864 6.766 6.711 6.690 - 5.161 5.888 6.964 7.850 8.142 7.763 6.953 6.089 5.478 5.241 5.324 5.590 5.907 6.191 6.393 6.478 6.419 6.210 5.889 5.543 5.300 5.277 5.528 5.996 6.518 6.896 6.990 6.798 6.450 6.121 5.920 5.842 5.797 5.707 5.573 5.470 - 5.491 5.868 6.523 7.267 7.859 8.078 7.810 7.101 6.148 5.215 4.512 4.123 4.023 4.152 4.488 5.036 5.740 6.416 6.789 6.647 6.018 5.215 4.670 4.669 5.152 5.761 6.089 5.961 5.520 5.075 4.832 4.747 4.605 4.254 3.769 3.413 - 4.964 5.466 6.285 7.142 7.782 8.065 7.985 7.627 7.102 6.497 5.868 5.263 4.768 4.538 4.750 5.488 6.609 7.704 8.255 7.932 6.855 5.590 4.831 4.957 5.764 6.621 6.932 6.572 5.938 5.587 5.743 6.101 6.097 5.421 4.336 3.515 - 3.465 4.505 5.981 7.154 7.676 7.747 7.799 8.050 8.321 8.243 7.624 6.630 5.676 5.169 5.331 6.172 7.494 8.878 9.718 9.474 8.061 6.090 4.628 4.512 5.711 7.283 8.063 7.572 6.365 5.519 5.660 6.407 6.724 5.896 4.243 2.912 - 3.415 4.196 5.384 6.490 7.225 7.625 7.921 8.285 8.672 8.851 8.588 7.828 6.777 5.862 5.571 6.216 7.695 9.406 10.455 10.147 8.482 6.284 4.765 4.735 6.039 7.658 8.469 8.068 7.016 6.299 6.453 7.114 7.373 6.627 5.172 4.009 - 1.908 3.429 5.556 7.117 7.489 6.954 6.364 6.446 7.285 8.338 8.899 8.620 7.731 6.861 6.641 7.346 8.735 10.151 10.832 10.311 8.723 6.796 5.465 5.301 6.133 7.180 7.642 7.302 6.652 6.420 6.876 7.544 7.582 6.544 4.859 3.580 - 2.366 3.699 5.539 6.863 7.195 6.866 6.636 7.030 7.957 8.850 9.161 8.760 7.983 7.374 7.366 8.083 9.296 10.478 10.986 10.363 8.685 6.658 5.298 5.281 6.433 7.806 8.376 7.840 6.838 6.367 6.869 7.789 8.027 6.935 4.978 3.450 - 3.860 4.699 5.898 6.829 7.131 6.918 6.654 6.790 7.440 8.311 8.909 8.885 8.291 7.581 7.361 8.000 9.341 10.711 11.266 10.515 8.690 6.676 5.495 5.645 6.782 7.982 8.423 7.974 7.223 6.920 7.302 7.855 7.746 6.574 4.804 3.489 - 4.355 4.752 5.410 6.094 6.575 6.750 6.738 6.818 7.240 8.002 8.794 9.189 8.980 8.401 8.022 8.342 9.362 10.488 10.885 10.062 8.272 6.406 5.442 5.806 7.123 8.506 9.166 8.898 8.102 7.375 7.022 6.865 6.485 5.654 4.591 3.836 - 4.005 4.647 5.523 6.117 6.174 5.863 5.631 5.880 6.700 7.823 8.796 9.238 9.055 8.501 8.067 8.208 9.038 10.155 10.800 10.319 8.663 6.566 5.158 5.228 6.657 8.467 9.501 9.224 8.033 6.834 6.272 6.244 6.109 5.365 4.173 3.253 - 4.454 4.800 5.242 5.469 5.336 4.984 4.762 5.025 5.918 7.274 8.654 9.540 9.619 9.002 8.249 8.065 8.808 10.134 11.097 10.766 8.951 6.490 4.769 4.759 6.289 8.160 9.048 8.508 7.243 6.435 6.690 7.516 7.781 6.770 4.889 3.404 - 5.192 5.231 5.340 5.541 5.808 6.079 6.310 6.551 6.937 7.577 8.412 9.163 9.493 9.286 8.826 8.658 9.169 10.180 10.948 10.656 9.087 6.923 5.358 5.250 6.474 8.003 8.708 8.228 7.197 6.628 6.985 7.752 7.885 6.772 4.864 3.390 - 2.995 3.896 5.204 6.269 6.698 6.548 6.212 6.122 6.505 7.319 8.316 9.166 9.596 9.537 9.209 9.044 9.383 10.141 10.732 10.427 8.971 6.932 5.431 5.342 6.581 8.119 8.764 8.115 6.865 6.164 6.580 7.565 7.926 6.911 4.956 3.401 - 3.954 4.382 5.064 5.760 6.301 6.635 6.804 6.904 7.067 7.445 8.115 8.967 9.698 9.999 9.821 9.482 9.441 9.858 10.356 10.251 9.147 7.402 5.988 5.772 6.792 8.159 8.752 8.128 6.874 6.063 6.272 7.047 7.302 6.328 4.504 3.059 - 3.289 4.019 5.072 5.968 6.498 6.803 7.141 7.614 8.118 8.520 8.824 9.137 9.490 9.753 9.776 9.611 9.519 9.703 9.991 9.868 8.929 7.367 6.003 5.708 6.662 8.128 9.006 8.735 7.737 6.987 7.074 7.620 7.619 6.413 4.411 2.867 - 1.126 2.274 3.977 5.511 6.525 7.147 7.674 8.199 8.565 8.636 8.532 8.552 8.850 9.252 9.437 9.314 9.157 9.310 9.727 9.881 9.232 7.849 6.545 6.275 7.265 8.708 9.379 8.696 7.253 6.285 6.519 7.454 7.779 6.604 4.372 2.595 - 3.310 3.667 4.273 5.032 5.937 6.976 7.976 8.606 8.623 8.148 7.659 7.627 8.095 8.635 8.768 8.470 8.243 8.611 9.515 10.220 9.931 8.572 6.989 6.280 6.819 7.889 8.314 7.558 6.258 5.642 6.326 7.617 8.033 6.650 4.057 2.006 - 3.083 3.524 4.279 5.199 6.186 7.153 7.930 8.293 8.142 7.681 7.351 7.513 8.131 8.794 9.089 9.010 8.969 9.355 10.045 10.388 9.761 8.216 6.588 5.866 6.344 7.353 7.842 7.345 6.413 6.073 6.789 7.885 8.052 6.537 3.964 1.983 - 4.618 4.655 4.781 5.076 5.599 6.320 7.093 7.728 8.118 8.320 8.491 8.730 8.980 9.106 9.086 9.098 9.363 9.848 10.137 9.689 8.335 6.592 5.414 5.500 6.688 8.013 8.441 7.708 6.539 5.996 6.514 7.458 7.639 6.383 4.214 2.539 - 5.401 5.396 5.342 5.276 5.388 5.893 6.802 7.828 8.568 8.816 8.721 8.606 8.654 8.759 8.718 8.538 8.487 8.792 9.263 9.298 8.382 6.662 5.032 4.509 5.401 6.986 8.061 7.914 6.884 5.991 5.970 6.598 6.929 6.230 4.738 3.512 - 5.450 5.342 5.208 5.182 5.381 5.834 6.434 6.988 7.327 7.408 7.320 7.190 7.093 7.045 7.068 7.237 7.598 8.032 8.211 7.780 6.660 5.237 4.188 4.036 4.745 5.724 6.270 6.107 5.575 5.284 5.550 6.086 6.256 5.665 4.564 3.694 - 5.089 4.982 4.948 5.193 5.757 6.468 7.063 7.380 7.456 7.451 7.483 7.523 7.454 7.237 7.010 7.003 7.312 7.730 7.828 7.254 6.059 4.746 3.975 4.110 4.948 5.854 6.216 5.871 5.176 4.687 4.697 5.032 5.237 4.998 4.419 3.936 - 4.623 4.861 5.086 5.104 5.055 5.334 6.195 7.409 8.356 8.491 7.797 6.803 6.166 6.182 6.649 7.138 7.374 7.363 7.209 6.908 6.362 5.606 4.943 4.774 5.222 5.942 6.353 6.129 5.503 5.058 5.171 5.632 5.812 5.265 4.192 3.328 - 5.714 5.516 5.128 4.675 4.456 4.799 5.786 7.082 8.078 8.266 7.599 6.524 5.686 5.513 6.007 6.820 7.507 7.746 7.410 6.556 5.416 4.375 3.854 4.078 4.884 5.757 6.138 5.824 5.109 4.540 4.464 4.750 4.936 4.665 4.030 3.499 - 6.273 5.604 4.714 4.222 4.528 5.545 6.735 7.439 7.299 6.476 5.520 4.981 5.046 5.490 5.925 6.128 6.158 6.191 6.254 6.157 5.687 4.890 4.135 3.859 4.199 4.844 5.278 5.200 4.757 4.375 4.338 4.511 4.466 3.916 3.030 2.351 - 6.137 5.733 5.148 4.690 4.559 4.749 5.081 5.365 5.544 5.724 6.076 6.674 7.404 8.012 8.260 8.074 7.576 6.993 6.516 6.221 6.085 6.080 6.221 6.538 6.999 7.463 7.725 7.632 7.188 6.562 5.993 5.666 5.626 5.790 6.013 6.162 - 7.565 6.931 6.168 5.885 6.314 7.147 7.799 7.884 7.510 7.179 7.392 8.283 9.536 10.613 11.092 10.862 10.113 9.175 8.357 7.877 7.842 8.247 8.969 9.790 10.463 10.804 10.750 10.355 9.743 9.073 8.507 8.193 8.212 8.521 8.943 9.240 - 6.494 6.774 7.263 7.818 8.256 8.434 8.338 8.109 7.964 8.060 8.408 8.902 9.426 9.928 10.399 10.784 10.935 10.699 10.074 9.309 8.817 8.929 9.671 10.718 11.575 11.866 11.516 10.740 9.877 9.196 8.810 8.694 8.765 8.927 9.097 9.203 - 8.185 7.488 6.686 6.472 7.074 8.100 8.890 9.053 8.735 8.423 8.519 9.054 9.764 10.364 10.746 10.947 10.979 10.766 10.264 9.624 9.188 9.268 9.893 10.759 11.428 11.623 11.365 10.863 10.310 9.775 9.273 8.879 8.733 8.907 9.283 9.585 - 9.087 8.543 7.879 7.612 7.954 8.659 9.222 9.262 8.805 8.245 8.058 8.482 9.389 10.393 11.078 11.198 10.741 9.898 8.974 8.294 8.103 8.477 9.269 10.166 10.823 11.028 10.783 10.273 9.739 9.357 9.186 9.192 9.305 9.455 9.590 9.668 - 8.363 8.344 8.442 8.782 9.323 9.829 10.030 9.827 9.385 9.035 9.049 9.470 10.100 10.657 10.949 10.939 10.694 10.289 9.774 9.225 8.806 8.733 9.140 9.941 10.812 11.356 11.336 10.826 10.158 9.690 9.574 9.690 9.776 9.654 9.370 9.134 - 9.176 8.748 8.314 8.346 8.948 9.759 10.240 10.099 9.482 8.818 8.489 8.611 9.083 9.747 10.494 11.203 11.660 11.618 11.001 10.061 9.300 9.155 9.686 10.535 11.187 11.334 11.045 10.637 10.385 10.336 10.345 10.260 10.055 9.816 9.640 9.557 - 9.874 9.160 8.247 7.770 8.009 8.730 9.423 9.713 9.597 9.351 9.255 9.403 9.721 10.117 10.559 11.013 11.349 11.365 10.951 10.250 9.625 9.436 9.788 10.470 11.112 11.445 11.412 11.117 10.675 10.156 9.636 9.264 9.218 9.548 10.080 10.478 - 10.507 9.974 9.309 9.007 9.288 9.962 10.610 10.894 10.753 10.367 9.976 9.734 9.700 9.884 10.259 10.713 11.027 10.972 10.489 9.777 9.203 9.059 9.360 9.857 10.242 10.359 10.255 10.058 9.822 9.511 9.114 8.750 8.620 8.829 9.254 9.592 - 10.033 9.656 9.257 9.206 9.533 9.888 9.860 9.353 8.670 8.251 8.318 8.748 9.243 9.610 9.842 9.986 9.970 9.623 8.898 8.046 7.518 7.634 8.292 9.017 9.319 9.066 8.558 8.237 8.317 8.646 8.900 8.881 8.656 8.432 8.335 8.331 - 8.495 7.904 7.190 6.933 7.387 8.293 9.083 9.292 8.876 8.199 7.759 7.845 8.401 9.118 9.661 9.844 9.661 9.217 8.656 8.120 7.741 7.617 7.759 8.073 8.395 8.585 8.613 8.563 8.553 8.631 8.728 8.705 8.458 8.011 7.522 7.203 - 9.408 8.555 7.437 6.802 7.035 7.919 8.842 9.246 8.978 8.307 7.668 7.351 7.391 7.638 7.922 8.138 8.245 8.227 8.090 7.890 7.731 7.699 7.799 7.937 8.004 7.969 7.903 7.914 8.042 8.221 8.326 8.277 8.091 7.856 7.662 7.558 - 8.225 7.842 7.240 6.668 6.351 6.398 6.763 7.263 7.648 7.712 7.399 6.859 6.384 6.250 6.532 7.038 7.431 7.461 7.143 6.732 6.518 6.591 6.792 6.880 6.769 6.618 6.692 7.102 7.678 8.072 8.032 7.597 7.050 6.682 6.576 6.603 - 7.169 6.516 5.745 5.469 5.860 6.524 6.858 6.558 5.832 5.172 4.931 5.079 5.332 5.451 5.432 5.411 5.453 5.462 5.306 5.013 4.801 4.901 5.327 5.844 6.162 6.181 6.049 5.993 6.090 6.209 6.170 5.943 5.684 5.578 5.658 5.776 - 4.965 4.605 4.321 4.546 5.267 5.997 6.204 5.766 5.043 4.511 4.336 4.308 4.164 3.940 3.971 4.509 5.361 5.944 5.757 4.848 3.834 3.427 3.871 4.795 5.577 5.874 5.845 5.892 6.232 6.687 6.880 6.597 5.960 5.294 4.842 4.646 - 5.464 4.712 3.803 3.432 3.831 4.614 5.137 5.040 4.495 3.996 3.904 4.179 4.491 4.571 4.443 4.353 4.502 4.859 5.216 5.408 5.448 5.474 5.571 5.680 5.683 5.562 5.461 5.560 5.893 6.279 6.447 6.233 5.692 5.041 4.504 4.214 - 5.832 5.805 5.734 5.601 5.417 5.219 5.045 4.903 4.764 4.596 4.400 4.235 4.189 4.323 4.607 4.929 5.145 5.171 5.032 4.847 4.751 4.811 4.995 5.202 5.341 5.390 5.405 5.460 5.587 5.734 5.794 5.665 5.320 4.838 4.370 4.083 - 6.453 6.163 5.795 5.595 5.637 5.778 5.781 5.513 5.027 4.496 4.082 3.861 3.861 4.110 4.620 5.304 5.930 6.196 5.930 5.233 4.454 3.978 3.996 4.411 4.956 5.396 5.656 5.792 5.879 5.926 5.894 5.766 5.593 5.451 5.379 5.361 - 6.122 5.946 5.518 4.844 4.146 3.784 3.985 4.625 5.282 5.538 5.300 4.854 4.623 4.838 5.383 5.932 6.205 6.133 5.821 5.409 4.994 4.658 4.525 4.713 5.224 5.869 6.364 6.535 6.449 6.334 6.355 6.449 6.383 6.003 5.428 4.994 - 6.605 6.253 5.712 5.215 4.933 4.902 5.028 5.169 5.223 5.166 5.031 4.865 4.698 4.552 4.462 4.476 4.628 4.902 5.213 5.445 5.512 5.404 5.199 5.015 4.949 5.045 5.285 5.616 5.969 6.269 6.438 6.412 6.177 5.794 5.399 5.149 - 4.999 4.903 4.902 5.197 5.796 6.466 6.882 6.844 6.389 5.730 5.090 4.589 4.245 4.060 4.071 4.304 4.704 5.116 5.370 5.396 5.276 5.167 5.179 5.292 5.407 5.454 5.472 5.577 5.849 6.239 6.573 6.654 6.393 5.870 5.302 4.938 - 5.961 6.405 6.945 7.175 6.957 6.504 6.163 6.119 6.274 6.377 6.268 5.983 5.672 5.429 5.229 5.013 4.803 4.700 4.770 4.937 5.024 4.927 4.737 4.683 4.925 5.394 5.838 6.041 6.002 5.912 5.942 6.064 6.073 5.812 5.361 5.008 - 11.352 10.575 9.381 8.259 7.531 7.232 7.201 7.282 7.433 7.668 7.927 8.032 7.794 7.184 6.404 5.771 5.503 5.578 5.780 5.887 5.843 5.765 5.812 6.018 6.261 6.374 6.298 6.146 6.114 6.313 6.668 6.953 6.953 6.625 6.145 5.798 - 9.149 8.855 8.281 7.557 6.971 6.808 7.098 7.512 7.576 7.053 6.157 5.385 5.100 5.234 5.393 5.253 4.861 4.565 4.636 4.985 5.244 5.141 4.794 4.606 4.874 5.489 6.038 6.214 6.118 6.144 6.533 7.064 7.197 6.592 5.501 4.645 - 5.168 5.233 5.367 5.610 6.028 6.640 7.326 7.826 7.884 7.441 6.707 6.019 5.594 5.376 5.123 4.671 4.128 3.824 4.037 4.732 5.547 6.040 6.007 5.607 5.217 5.149 5.458 5.967 6.440 6.725 6.785 6.635 6.303 5.841 5.376 5.079 - 6.857 6.594 6.299 6.233 6.468 6.843 7.117 7.157 6.997 6.733 6.398 5.955 5.412 4.914 4.674 4.795 5.145 5.432 5.446 5.237 5.076 5.203 5.603 6.014 6.156 5.993 5.766 5.790 6.177 6.739 7.135 7.124 6.717 6.127 5.603 5.308 - 7.745 7.446 6.993 6.591 6.393 6.421 6.562 6.651 6.580 6.353 6.063 5.805 5.604 5.412 5.172 4.887 4.639 4.517 4.545 4.656 4.748 4.771 4.766 4.825 5.004 5.278 5.565 5.808 6.012 6.213 6.407 6.511 6.424 6.123 5.728 5.450 - 8.020 8.104 8.056 7.698 7.122 6.657 6.569 6.798 6.982 6.773 6.143 5.409 4.938 4.845 4.938 4.961 4.857 4.797 4.956 5.286 5.536 5.501 5.253 5.100 5.295 5.793 6.279 6.466 6.359 6.222 6.284 6.485 6.517 6.148 5.495 4.980 - 10.211 9.800 9.159 8.556 8.208 8.163 8.274 8.259 7.845 6.925 5.650 4.406 3.647 3.648 4.330 5.268 5.921 5.948 5.412 4.721 4.343 4.494 5.027 5.580 5.868 5.870 5.793 5.860 6.110 6.390 6.500 6.363 6.076 5.800 5.636 5.577 - 7.652 7.835 8.142 8.444 8.567 8.360 7.794 6.988 6.151 5.472 5.057 4.930 5.088 5.492 6.009 6.386 6.340 5.759 4.855 4.102 3.939 4.449 5.274 5.860 5.857 5.370 4.850 4.723 5.075 5.620 5.973 5.946 5.646 5.317 5.122 5.058 - 6.951 7.280 7.783 8.252 8.546 8.650 8.653 8.656 8.704 8.775 8.817 8.793 8.709 8.610 8.558 8.603 8.747 8.921 9.001 8.864 8.475 7.922 7.377 6.992 6.796 6.702 6.596 6.459 6.392 6.521 6.864 7.276 7.538 7.526 7.313 7.114 - 8.943 9.007 9.104 9.190 9.239 9.247 9.232 9.222 9.239 9.295 9.376 9.442 9.444 9.367 9.266 9.245 9.385 9.648 9.860 9.798 9.345 8.601 7.840 7.334 7.175 7.232 7.275 7.176 7.003 6.943 7.123 7.485 7.832 7.993 7.959 7.873 - 7.499 7.789 8.085 8.066 7.650 7.046 6.556 6.300 6.125 5.773 5.155 4.468 4.057 4.120 4.531 4.928 4.987 4.673 4.247 4.055 4.261 4.746 5.220 5.446 5.390 5.208 5.114 5.232 5.535 5.893 6.157 6.232 6.111 5.865 5.604 5.440 - 7.364 7.651 7.908 7.797 7.261 6.564 6.036 5.789 5.674 5.493 5.233 5.070 5.147 5.378 5.489 5.273 4.805 4.390 4.279 4.439 4.609 4.582 4.422 4.396 4.678 5.134 5.434 5.377 5.121 5.055 5.409 5.987 6.298 6.005 5.268 4.650 - 8.436 8.332 7.965 7.242 6.339 5.647 5.478 5.801 6.252 6.433 6.222 5.819 5.518 5.418 5.367 5.159 4.763 4.362 4.167 4.210 4.333 4.371 4.338 4.395 4.649 5.002 5.225 5.198 5.076 5.169 5.629 6.252 6.604 6.401 5.794 5.276 - 7.094 6.917 6.638 6.390 6.310 6.456 6.740 6.955 6.892 6.486 5.882 5.337 5.048 5.020 5.086 5.058 4.882 4.664 4.573 4.700 4.988 5.296 5.500 5.559 5.508 5.401 5.288 5.227 5.284 5.499 5.822 6.102 6.170 5.969 5.616 5.348 - 6.871 6.993 7.146 7.202 7.075 6.784 6.460 6.275 6.341 6.632 6.992 7.229 7.238 7.052 6.813 6.656 6.627 6.669 6.695 6.665 6.613 6.597 6.630 6.661 6.620 6.500 6.392 6.430 6.702 7.162 7.638 7.925 7.900 7.597 7.194 6.916 - 6.099 6.010 5.945 6.011 6.172 6.250 6.059 5.570 4.966 4.521 4.402 4.562 4.791 4.897 4.851 4.774 4.806 4.959 5.103 5.086 4.888 4.654 4.578 4.733 4.994 5.125 4.975 4.611 4.280 4.224 4.485 4.871 5.100 5.018 4.718 4.460 - 7.140 6.706 6.010 5.308 4.810 4.588 4.569 4.607 4.595 4.511 4.406 4.331 4.285 4.233 4.162 4.125 4.207 4.442 4.755 4.992 5.026 4.860 4.626 4.483 4.487 4.560 4.581 4.510 4.433 4.472 4.649 4.823 4.790 4.464 3.979 3.622 - 6.504 6.459 6.376 6.260 6.111 5.936 5.750 5.575 5.416 5.249 5.031 4.751 4.458 4.251 4.209 4.327 4.505 4.610 4.574 4.438 4.305 4.253 4.272 4.282 4.224 4.122 4.069 4.143 4.335 4.544 4.651 4.609 4.460 4.294 4.175 4.120 - 6.395 6.264 6.058 5.833 5.594 5.316 5.005 4.742 4.631 4.705 4.865 4.944 4.838 4.602 4.404 4.389 4.554 4.758 4.853 4.809 4.720 4.694 4.730 4.713 4.532 4.210 3.923 3.870 4.119 4.537 4.880 4.949 4.709 4.283 3.862 3.608 - 4.483 4.830 5.425 6.095 6.622 6.828 6.644 6.159 5.594 5.190 5.086 5.236 5.448 5.502 5.293 4.890 4.473 4.209 4.154 4.242 4.369 4.481 4.597 4.749 4.921 5.039 5.043 4.953 4.875 4.915 5.069 5.205 5.152 4.848 4.420 4.110 - 3.749 4.421 5.334 5.973 6.121 5.946 5.747 5.643 5.498 5.128 4.562 4.068 3.916 4.127 4.451 4.606 4.534 4.417 4.455 4.634 4.740 4.590 4.251 3.999 4.054 4.364 4.644 4.666 4.484 4.375 4.535 4.838 4.923 4.540 3.833 3.273 - 6.578 5.916 5.101 4.725 4.982 5.540 5.855 5.651 5.132 4.767 4.862 5.294 5.636 5.535 5.003 4.380 4.031 4.059 4.277 4.419 4.396 4.340 4.446 4.758 5.111 5.263 5.095 4.707 4.333 4.166 4.239 4.428 4.568 4.575 4.480 4.390 - 5.428 5.474 5.593 5.769 5.888 5.804 5.475 5.049 4.787 4.857 5.170 5.417 5.298 4.772 4.108 3.693 3.740 4.135 4.550 4.717 4.624 4.499 4.582 4.903 5.251 5.350 5.090 4.630 4.276 4.248 4.513 4.812 4.857 4.548 4.050 3.679 - 5.870 5.622 5.363 5.361 5.691 6.180 6.551 6.635 6.451 6.126 5.764 5.389 5.010 4.690 4.523 4.536 4.627 4.640 4.511 4.351 4.358 4.620 5.014 5.291 5.299 5.120 4.991 5.075 5.294 5.399 5.215 4.821 4.499 4.480 4.731 4.983 - 4.287 4.782 5.554 6.303 6.816 7.033 6.997 6.769 6.393 5.946 5.573 5.437 5.608 5.994 6.384 6.595 6.601 6.525 6.517 6.623 6.772 6.870 6.903 6.949 7.087 7.310 7.530 7.667 7.735 7.822 7.978 8.141 8.172 7.989 7.672 7.427 - 5.119 5.591 6.306 6.938 7.240 7.162 6.840 6.486 6.253 6.163 6.127 6.033 5.828 5.548 5.277 5.091 5.011 5.010 5.040 5.077 5.133 5.237 5.407 5.627 5.850 6.027 6.136 6.198 6.251 6.327 6.422 6.503 6.528 6.486 6.408 6.348 - 6.297 6.125 6.074 6.402 7.006 7.443 7.300 6.574 5.702 5.198 5.223 5.467 5.456 4.984 4.286 3.815 3.852 4.294 4.788 5.055 5.080 5.042 5.088 5.204 5.278 5.252 5.182 5.136 5.074 4.862 4.436 3.927 3.608 3.662 4.000 4.307 - 5.915 6.309 6.850 7.195 7.119 6.642 6.002 5.490 5.278 5.325 5.442 5.436 5.229 4.891 4.562 4.346 4.255 4.235 4.234 4.246 4.300 4.410 4.538 4.611 4.575 4.442 4.287 4.201 4.224 4.331 4.457 4.542 4.568 4.550 4.521 4.501 - 6.218 6.126 5.966 5.765 5.549 5.346 5.200 5.166 5.263 5.440 5.579 5.563 5.367 5.087 4.876 4.831 4.912 4.981 4.914 4.718 4.536 4.545 4.813 5.239 5.618 5.768 5.646 5.347 5.027 4.804 4.702 4.678 4.671 4.648 4.611 4.584 - 4.899 5.391 5.995 6.289 6.159 5.844 5.644 5.607 5.514 5.157 4.624 4.274 4.405 4.931 5.400 5.362 4.761 3.995 3.583 3.756 4.310 4.841 5.090 5.093 5.034 5.003 4.927 4.725 4.481 4.419 4.676 5.109 5.369 5.205 4.716 4.295 - 3.550 4.212 5.088 5.638 5.631 5.249 4.845 4.610 4.472 4.263 3.968 3.759 3.807 4.068 4.292 4.256 3.988 3.749 3.787 4.095 4.429 4.550 4.455 4.354 4.420 4.573 4.535 4.121 3.467 2.966 2.941 3.361 3.868 4.101 4.002 3.817 - 3.911 4.150 4.380 4.368 4.158 4.034 4.228 4.650 4.941 4.803 4.299 3.818 3.722 4.015 4.350 4.366 4.038 3.710 3.758 4.241 4.835 5.131 4.982 4.595 4.294 4.218 4.245 4.192 4.052 3.999 4.164 4.427 4.472 4.085 3.409 2.881 - 4.510 4.249 4.018 4.107 4.495 4.845 4.796 4.307 3.711 3.435 3.636 4.081 4.368 4.285 3.971 3.761 3.878 4.245 4.598 4.735 4.684 4.625 4.680 4.783 4.753 4.488 4.087 3.775 3.717 3.888 4.105 4.182 4.057 3.806 3.557 3.410 - 3.896 4.446 5.118 5.412 5.161 4.645 4.326 4.452 4.875 5.203 5.144 4.726 4.230 3.932 3.909 4.040 4.186 4.323 4.525 4.838 5.178 5.377 5.307 4.980 4.528 4.103 3.804 3.665 3.693 3.861 4.081 4.189 4.024 3.561 2.975 2.567 - 4.635 5.042 5.538 5.737 5.467 4.875 4.273 3.893 3.760 3.753 3.764 3.782 3.842 3.924 3.932 3.794 3.573 3.459 3.627 4.071 4.580 4.880 4.834 4.532 4.198 4.010 3.991 4.034 4.021 3.915 3.749 3.563 3.359 3.131 2.908 2.763 - 4.966 5.041 5.044 4.810 4.306 3.707 3.305 3.322 3.739 4.282 4.588 4.445 3.938 3.390 3.141 3.328 3.818 4.339 4.680 4.812 4.839 4.853 4.836 4.696 4.385 3.979 3.635 3.462 3.434 3.419 3.311 3.128 2.993 3.006 3.146 3.279 - 5.493 5.335 4.901 4.156 3.320 2.795 2.870 3.472 4.202 4.643 4.661 4.442 4.249 4.165 4.059 3.807 3.500 3.426 3.799 4.525 5.223 5.516 5.329 4.904 4.551 4.371 4.209 3.881 3.408 3.031 2.979 3.237 3.542 3.626 3.460 3.264 - 4.780 4.714 4.622 4.577 4.644 4.830 5.052 5.170 5.095 4.868 4.650 4.594 4.709 4.837 4.787 4.506 4.140 3.919 3.968 4.201 4.408 4.440 4.329 4.221 4.210 4.232 4.136 3.861 3.528 3.352 3.423 3.593 3.574 3.202 2.612 2.163 - 5.108 5.097 5.038 4.898 4.684 4.457 4.294 4.243 4.291 4.377 4.432 4.420 4.350 4.260 4.192 4.164 4.165 4.164 4.130 4.057 3.982 3.967 4.063 4.261 4.475 4.579 4.477 4.169 3.755 3.379 3.137 3.033 2.998 2.957 2.893 2.840 - 4.237 4.735 5.299 5.448 5.061 4.467 4.129 4.254 4.648 4.940 4.920 4.673 4.428 4.308 4.247 4.127 3.969 3.934 4.144 4.503 4.746 4.668 4.327 3.997 3.906 4.033 4.157 4.123 4.038 4.183 4.711 5.423 5.883 5.792 5.275 4.807 - 5.804 5.718 5.497 5.156 4.845 4.760 4.948 5.217 5.274 4.999 4.585 4.384 4.582 4.994 5.202 4.932 4.317 3.808 3.774 4.184 4.626 4.679 4.265 3.699 3.388 3.489 3.834 4.156 4.359 4.565 4.905 5.303 5.495 5.287 4.790 4.376 - 5.769 5.448 5.009 4.726 4.768 5.095 5.490 5.700 5.604 5.271 4.895 4.653 4.592 4.627 4.639 4.576 4.483 4.444 4.489 4.571 4.614 4.588 4.544 4.555 4.636 4.719 4.704 4.554 4.333 4.151 4.056 3.985 3.817 3.496 3.107 2.837 - 4.559 5.072 5.622 5.681 5.135 4.381 3.987 4.212 4.831 5.365 5.494 5.271 4.972 4.796 4.691 4.486 4.136 3.825 3.809 4.159 4.656 4.969 4.927 4.651 4.423 4.426 4.597 4.716 4.618 4.330 4.012 3.801 3.706 3.649 3.580 3.521 - 5.608 5.624 5.498 5.138 4.719 4.586 4.932 5.563 5.999 5.874 5.256 4.586 4.278 4.351 4.441 4.188 3.613 3.128 3.156 3.724 4.416 4.725 4.496 4.026 3.773 3.943 4.336 4.571 4.446 4.079 3.743 3.585 3.517 3.368 3.109 2.892 - 3.755 4.028 4.414 4.734 4.937 5.111 5.347 5.586 5.623 5.266 4.529 3.680 3.094 3.007 3.383 3.960 4.447 4.692 4.720 4.648 4.574 4.533 4.513 4.500 4.479 4.429 4.323 4.162 3.993 3.890 3.895 3.971 4.028 3.997 3.891 3.798 - 5.635 5.972 6.192 5.891 5.198 4.716 4.943 5.743 6.399 6.237 5.242 4.072 3.470 3.627 4.087 4.264 4.025 3.778 3.997 4.690 5.344 5.422 4.897 4.288 4.166 4.602 5.118 5.166 4.671 4.085 3.933 4.295 4.749 4.818 4.447 4.046 - 5.774 6.118 6.539 6.722 6.551 6.184 5.898 5.862 6.025 6.197 6.226 6.090 5.862 5.586 5.243 4.816 4.393 4.160 4.279 4.719 5.237 5.520 5.408 5.004 4.590 4.411 4.508 4.712 4.795 4.644 4.324 4.013 3.862 3.906 4.059 4.183 - 4.077 4.433 4.991 5.546 5.973 6.262 6.456 6.571 6.576 6.440 6.178 5.838 5.451 5.012 4.524 4.077 3.830 3.912 4.296 4.778 5.121 5.229 5.210 5.248 5.406 5.540 5.430 5.009 4.473 4.148 4.217 4.558 4.837 4.796 4.479 4.183 - 4.550 5.204 6.006 6.376 6.140 5.639 5.389 5.620 6.100 6.380 6.197 5.671 5.136 4.809 4.624 4.366 3.950 3.549 3.455 3.811 4.482 5.166 5.624 5.809 5.804 5.670 5.400 4.997 4.578 4.338 4.379 4.588 4.697 4.514 4.111 3.779 - 5.729 5.630 5.548 5.612 5.850 6.145 6.304 6.200 5.875 5.521 5.344 5.419 5.628 5.751 5.628 5.277 4.874 4.625 4.624 4.805 5.022 5.161 5.199 5.170 5.090 4.928 4.651 4.296 3.981 3.814 3.792 3.771 3.569 3.122 2.573 2.191 - 5.309 5.655 6.112 6.366 6.239 5.811 5.357 5.147 5.239 5.431 5.413 5.018 4.376 3.841 3.727 4.060 4.537 4.750 4.496 3.936 3.477 3.462 3.923 4.559 4.971 4.936 4.535 4.043 3.715 3.620 3.648 3.638 3.499 3.258 3.014 2.863 - 5.591 5.570 5.577 5.661 5.825 6.007 6.118 6.095 5.951 5.757 5.602 5.528 5.517 5.507 5.432 5.263 5.016 4.745 4.521 4.414 4.464 4.658 4.915 5.096 5.070 4.781 4.296 3.788 3.446 3.361 3.478 3.624 3.627 3.432 3.135 2.916 - 5.938 6.058 6.194 6.197 5.972 5.566 5.181 5.066 5.354 5.929 6.446 6.534 6.038 5.151 4.299 3.871 3.963 4.341 4.632 4.608 4.337 4.098 4.135 4.447 4.787 4.857 4.536 3.980 3.497 3.326 3.461 3.678 3.703 3.429 2.990 2.661 - 5.127 5.268 5.494 5.717 5.859 5.899 5.880 5.878 5.928 5.978 5.916 5.654 5.218 4.756 4.442 4.348 4.393 4.416 4.318 4.152 4.084 4.243 4.591 4.927 5.023 4.794 4.355 3.946 3.755 3.802 3.937 3.960 3.755 3.356 2.922 2.643 - 5.600 5.813 6.107 6.315 6.360 6.314 6.340 6.548 6.888 7.151 7.105 6.672 6.003 5.391 5.070 5.053 5.142 5.097 4.827 4.465 4.253 4.339 4.658 4.986 5.109 4.969 4.670 4.362 4.113 3.889 3.631 3.348 3.120 3.024 3.050 3.107 - 6.306 6.641 7.037 7.174 6.944 6.510 6.137 5.964 5.930 5.890 5.784 5.682 5.667 5.703 5.635 5.330 4.832 4.356 4.140 4.274 4.668 5.150 5.587 5.902 6.002 5.764 5.127 4.238 3.449 3.118 3.322 3.752 3.921 3.555 2.829 2.251 - 6.342 6.325 6.332 6.386 6.444 6.411 6.222 5.905 5.574 5.334 5.189 5.036 4.763 4.357 3.939 3.677 3.660 3.839 4.082 4.304 4.532 4.852 5.279 5.665 5.766 5.421 4.717 3.987 3.617 3.775 4.275 4.676 4.576 3.897 2.962 2.297 - 6.189 6.304 6.573 6.951 7.246 7.221 6.815 6.254 5.901 5.935 6.167 6.173 5.681 4.844 4.147 3.996 4.355 4.760 4.728 4.196 3.600 3.520 4.180 5.237 6.031 6.078 5.404 4.471 3.801 3.612 3.737 3.830 3.641 3.173 2.631 2.276 - 6.104 5.673 5.319 5.512 6.166 6.668 6.466 5.639 4.861 4.777 5.365 5.917 5.677 4.558 3.268 2.721 3.269 4.450 5.434 5.732 5.521 5.338 5.506 5.851 5.940 5.554 4.896 4.363 4.142 4.061 3.817 3.329 2.834 2.627 2.751 2.951 - 7.301 7.114 6.914 6.895 7.085 7.283 7.192 6.650 5.791 4.992 4.629 4.814 5.311 5.713 5.741 5.432 5.086 4.998 5.224 5.553 5.709 5.591 5.336 5.165 5.150 5.140 4.910 4.402 3.821 3.486 3.559 3.888 4.129 4.033 3.664 3.337 - 7.096 7.320 7.597 7.760 7.797 7.779 7.667 7.245 6.332 5.089 4.075 3.885 4.644 5.809 6.541 6.364 5.530 4.767 4.629 5.037 5.436 5.387 5.009 4.835 5.227 5.944 6.311 5.858 4.801 3.898 3.772 4.356 4.973 4.982 4.382 3.779 - 6.735 6.743 6.844 7.137 7.626 8.133 8.331 7.936 6.951 5.767 4.973 4.962 5.624 6.395 6.664 6.236 5.462 4.927 4.973 5.452 5.919 6.061 5.949 5.892 6.052 6.237 6.077 5.441 4.654 4.268 4.563 5.245 5.659 5.354 4.501 3.776 - 6.669 6.724 6.856 7.104 7.482 7.898 8.128 7.909 7.154 6.102 5.242 4.999 5.406 6.044 6.341 6.005 5.238 4.560 4.386 4.737 5.294 5.722 5.926 6.023 6.100 6.055 5.705 5.064 4.459 4.316 4.757 5.408 5.642 5.105 4.061 3.234 - 6.792 7.150 7.644 8.022 8.195 8.232 8.181 7.946 7.362 6.440 5.497 5.002 5.201 5.869 6.410 6.292 5.446 4.323 3.552 3.510 4.125 5.016 5.797 6.262 6.361 6.101 5.534 4.834 4.308 4.238 4.624 5.102 5.162 4.559 3.564 2.809 - 6.875 7.125 7.500 7.858 8.127 8.290 8.285 7.978 7.276 6.299 5.415 5.037 5.306 5.936 6.381 6.216 5.445 4.481 3.837 3.787 4.255 4.966 5.660 6.178 6.417 6.282 5.763 5.061 4.568 4.617 5.172 5.753 5.745 4.893 3.578 2.598 - 7.084 7.523 8.122 8.562 8.711 8.639 8.420 7.985 7.203 6.134 5.160 4.777 5.186 6.030 6.591 6.306 5.218 3.959 3.278 3.512 4.409 5.397 6.024 6.183 6.014 5.678 5.253 4.832 4.608 4.784 5.332 5.889 5.950 5.284 4.199 3.377 - 6.207 6.909 7.834 8.432 8.499 8.239 7.949 7.688 7.280 6.626 5.956 5.705 6.095 6.837 7.289 6.982 6.029 5.036 4.602 4.856 5.446 5.940 6.205 6.390 6.592 6.619 6.156 5.197 4.247 3.995 4.678 5.744 6.215 5.504 3.983 2.753 - 7.342 7.765 8.334 8.689 8.609 8.102 7.331 6.504 5.820 5.482 5.642 6.281 7.101 7.619 7.465 6.676 5.721 5.174 5.282 5.797 6.207 6.187 5.845 5.560 5.575 5.752 5.731 5.331 4.791 4.579 4.929 5.553 5.836 5.384 4.413 3.623 - 7.433 7.530 7.784 8.195 8.591 8.656 8.129 7.024 5.706 4.718 4.468 4.973 5.836 6.494 6.548 5.982 5.132 4.455 4.261 4.570 5.152 5.691 5.955 5.878 5.551 5.152 4.863 4.806 4.995 5.320 5.581 5.572 5.187 4.505 3.775 3.305 - 9.286 9.657 9.876 9.409 8.263 7.048 6.489 6.823 7.617 8.147 7.985 7.285 6.541 6.113 5.960 5.785 5.411 4.981 4.809 5.046 5.515 5.856 5.838 5.527 5.177 4.977 4.917 4.880 4.822 4.829 4.991 5.248 5.395 5.269 4.929 4.640 - 10.092 10.556 10.916 10.554 9.376 7.925 6.936 6.739 7.037 7.215 6.878 6.142 5.448 5.132 5.154 5.202 5.036 4.703 4.459 4.501 4.793 5.133 5.356 5.456 5.516 5.563 5.534 5.378 5.173 5.097 5.246 5.493 5.564 5.278 4.750 4.333 - 8.108 7.749 7.373 7.336 7.659 7.995 7.939 7.393 6.643 6.099 5.941 6.004 5.980 5.719 5.342 5.069 4.979 4.940 4.788 4.536 4.404 4.607 5.117 5.642 5.858 5.682 5.320 5.071 5.062 5.160 5.145 4.933 4.643 4.462 4.453 4.513 - 6.389 6.564 6.917 7.364 7.673 7.557 6.892 5.857 4.873 4.331 4.339 4.677 4.999 5.101 5.031 4.983 5.081 5.274 5.416 5.436 5.414 5.491 5.711 5.942 5.980 5.726 5.294 4.938 4.864 5.071 5.363 5.489 5.312 4.884 4.400 4.086 - 5.457 5.724 6.290 7.068 7.738 7.873 7.252 6.083 4.924 4.309 4.387 4.874 5.324 5.491 5.453 5.443 5.580 5.774 5.873 5.870 5.947 6.283 6.831 7.293 7.341 6.891 6.181 5.586 5.339 5.395 5.540 5.600 5.565 5.526 5.543 5.583 - 8.271 8.040 7.807 7.836 8.189 8.653 8.879 8.624 7.921 7.054 6.366 6.067 6.144 6.418 6.671 6.746 6.605 6.321 6.064 6.036 6.390 7.121 8.020 8.739 8.961 8.586 7.806 7.001 6.525 6.506 6.790 7.059 7.047 6.699 6.199 5.842 - 11.718 11.212 10.544 10.177 10.379 11.022 11.639 11.704 10.981 9.688 8.379 7.609 7.601 8.137 8.731 8.954 8.670 8.061 7.455 7.120 7.156 7.522 8.098 8.734 9.261 9.528 9.475 9.198 8.914 8.815 8.899 8.950 8.695 8.047 7.229 6.656 - 10.408 10.198 9.832 9.407 9.030 8.754 8.536 8.256 7.810 7.219 6.641 6.276 6.218 6.380 6.555 6.565 6.389 6.157 6.062 6.248 6.763 7.565 8.522 9.400 9.888 9.727 8.890 7.693 6.677 6.295 6.603 7.206 7.539 7.291 6.637 6.093 - 11.803 11.710 11.488 11.121 10.666 10.238 9.924 9.730 9.587 9.430 9.262 9.131 9.058 8.992 8.837 8.544 8.164 7.819 7.623 7.628 7.834 8.232 8.786 9.372 9.752 9.668 9.045 8.133 7.413 7.290 7.766 8.399 8.599 8.090 7.148 6.415 - 13.331 13.037 12.530 11.934 11.351 10.828 10.374 9.997 9.744 9.680 9.822 10.075 10.247 10.148 9.710 9.041 8.357 7.841 7.559 7.481 7.590 7.939 8.578 9.416 10.146 10.382 9.926 8.973 8.035 7.612 7.825 8.323 8.558 8.222 7.495 6.908 - 10.257 9.794 9.052 8.298 7.742 7.446 7.335 7.282 7.212 7.126 7.049 6.960 6.777 6.429 5.939 5.444 5.104 4.998 5.088 5.316 5.717 6.424 7.501 8.735 9.616 9.606 8.553 6.926 5.603 5.318 6.137 7.388 8.140 7.894 6.940 6.115 - 7.083 7.027 7.139 7.605 8.315 8.867 8.865 8.253 7.373 6.697 6.465 6.538 6.574 6.351 5.926 5.525 5.289 5.153 4.979 4.803 4.916 5.659 7.068 8.698 9.807 9.824 8.741 7.151 5.876 5.462 5.883 6.635 7.126 7.070 6.630 6.236 - 6.590 6.562 6.714 7.229 8.014 8.665 8.724 8.022 6.848 5.773 5.260 5.356 5.709 5.876 5.669 5.254 4.943 4.893 4.996 5.065 5.120 5.465 6.426 7.939 9.391 9.924 9.064 7.156 5.242 4.379 4.910 6.246 7.339 7.491 6.842 6.169 - 6.649 7.222 8.119 8.959 9.396 9.253 8.573 7.572 6.538 5.718 5.238 5.079 5.116 5.194 5.210 5.136 4.998 4.837 4.704 4.705 5.016 5.809 7.092 8.569 9.689 9.917 9.092 7.604 6.213 5.587 5.867 6.601 7.091 6.925 6.267 5.691 - 5.202 6.365 8.047 9.392 9.860 9.462 8.583 7.611 6.710 5.868 5.114 4.625 4.607 5.085 5.799 6.344 6.426 6.052 5.518 5.229 5.505 6.445 7.885 9.417 10.498 10.668 9.821 8.344 6.972 6.363 6.671 7.444 7.959 7.776 7.066 6.444 - 3.853 5.619 8.106 9.956 10.387 9.563 8.259 7.175 6.510 6.061 5.613 5.209 5.048 5.199 5.453 5.484 5.145 4.621 4.298 4.496 5.302 6.598 8.153 9.657 10.701 10.861 9.943 8.247 6.539 5.634 5.848 6.756 7.516 7.529 6.894 6.273 - 5.286 6.491 8.103 9.155 9.230 8.657 8.080 7.849 7.773 7.425 6.634 5.671 4.991 4.799 4.886 4.872 4.590 4.240 4.200 4.715 5.759 7.136 8.640 10.048 11.018 11.113 10.092 8.257 6.465 5.651 6.152 7.410 8.371 8.313 7.416 6.568 - 3.945 4.842 6.198 7.468 8.354 8.879 9.154 9.133 8.616 7.523 6.116 4.916 4.337 4.369 4.600 4.584 4.222 3.831 3.865 4.571 5.863 7.456 9.061 10.419 11.223 11.134 10.012 8.191 6.472 5.691 6.139 7.309 8.258 8.331 7.655 6.977 - 4.308 4.781 5.588 6.530 7.438 8.191 8.683 8.794 8.442 7.673 6.701 5.829 5.285 5.099 5.106 5.086 4.921 4.668 4.525 4.730 5.460 6.747 8.407 10.023 11.036 10.990 9.821 7.991 6.315 5.512 5.781 6.695 7.534 7.797 7.527 7.180 - 3.838 4.497 5.611 6.862 7.938 8.629 8.847 8.607 8.001 7.181 6.345 5.687 5.329 5.266 5.358 5.406 5.269 4.964 4.694 4.770 5.456 6.801 8.542 10.151 11.042 10.852 9.651 7.945 6.438 5.668 5.736 6.312 6.886 7.113 7.003 6.822 - 4.605 5.385 6.606 7.786 8.549 8.786 8.622 8.254 7.794 7.221 6.470 5.556 4.650 4.013 3.851 4.170 4.752 5.278 5.540 5.601 5.778 6.424 7.624 9.029 9.979 9.892 8.673 6.861 5.350 4.848 5.442 6.566 7.420 7.533 7.055 6.565 - 4.530 5.267 6.352 7.256 7.636 7.484 7.044 6.586 6.231 5.942 5.635 5.280 4.923 4.625 4.397 4.197 3.981 3.757 3.617 3.725 4.266 5.345 6.862 8.439 9.506 9.566 8.526 6.840 5.326 4.692 5.102 6.082 6.884 7.026 6.606 6.158 - 7.112 7.199 7.247 7.163 7.018 7.006 7.226 7.517 7.523 6.972 5.925 4.787 4.032 3.883 4.187 4.574 4.748 4.670 4.539 4.618 5.081 5.940 7.043 8.086 8.681 8.508 7.538 6.161 5.050 4.763 5.351 6.284 6.809 6.518 5.655 4.928 - 8.345 8.005 7.502 7.079 6.889 6.898 6.926 6.775 6.384 5.868 5.429 5.201 5.149 5.117 4.978 4.755 4.610 4.706 5.063 5.546 5.986 6.320 6.620 6.970 7.315 7.452 7.183 6.524 5.760 5.275 5.281 5.667 6.101 6.297 6.225 6.087 - 8.084 7.857 7.488 7.106 6.817 6.652 6.546 6.383 6.077 5.638 5.178 4.841 4.720 4.797 4.967 5.116 5.195 5.234 5.313 5.499 5.809 6.200 6.582 6.842 6.874 6.630 6.170 5.666 5.340 5.342 5.653 6.086 6.402 6.469 6.341 6.199 - 6.188 6.204 6.274 6.432 6.655 6.831 6.806 6.479 5.891 5.237 4.769 4.634 4.772 4.956 4.958 4.728 4.442 4.369 4.663 5.237 5.815 6.128 6.092 5.842 5.601 5.518 5.579 5.665 5.668 5.575 5.451 5.365 5.338 5.343 5.351 5.352 - 7.454 7.407 7.359 7.342 7.312 7.176 6.877 6.468 6.075 5.799 5.626 5.451 5.195 4.901 4.710 4.731 4.930 5.140 5.208 5.149 5.153 5.434 6.025 6.703 7.111 7.003 6.413 5.631 5.017 4.773 4.851 5.026 5.073 4.912 4.637 4.429 - 9.338 9.011 8.523 8.079 7.773 7.536 7.217 6.725 6.114 5.545 5.176 5.057 5.122 5.261 5.390 5.475 5.504 5.458 5.337 5.194 5.142 5.291 5.649 6.071 6.333 6.277 5.948 5.586 5.475 5.729 6.189 6.504 6.365 5.737 4.907 4.327 - 7.813 7.310 6.637 6.198 6.159 6.359 6.487 6.360 6.050 5.781 5.715 5.825 5.955 5.980 5.895 5.763 5.610 5.384 5.054 4.716 4.596 4.891 5.585 6.407 6.979 7.067 6.719 6.213 5.846 5.753 5.866 6.017 6.071 6.002 5.876 5.784 - 6.775 7.137 7.558 7.700 7.480 7.110 6.875 6.853 6.864 6.667 6.211 5.694 5.381 5.362 5.486 5.514 5.339 5.065 4.900 4.989 5.353 5.943 6.703 7.530 8.202 8.397 7.904 6.850 5.733 5.134 5.302 5.956 6.505 6.515 6.058 5.610 - 6.277 6.745 7.368 7.764 7.761 7.462 7.081 6.718 6.311 5.767 5.144 4.657 4.508 4.696 4.997 5.145 5.041 4.820 4.724 4.930 5.470 6.276 7.241 8.207 8.919 9.065 8.473 7.308 6.084 5.382 5.462 6.079 6.676 6.825 6.541 6.214 - 5.872 6.280 6.928 7.592 8.108 8.388 8.349 7.896 7.002 5.843 4.799 4.262 4.363 4.851 5.251 5.205 4.726 4.163 3.936 4.263 5.088 6.210 7.422 8.531 9.291 9.424 8.795 7.619 6.454 5.891 6.135 6.829 7.326 7.191 6.557 5.988 - 6.809 7.003 7.313 7.682 8.126 8.643 9.054 9.003 8.211 6.793 5.316 4.457 4.498 5.083 5.503 5.280 4.578 4.061 4.336 5.458 6.927 8.125 8.788 9.073 9.244 9.321 9.076 8.353 7.362 6.599 6.443 6.808 7.212 7.212 6.801 6.391 - 5.463 5.935 6.614 7.186 7.511 7.648 7.700 7.655 7.415 6.960 6.444 6.091 5.969 5.910 5.680 5.265 4.970 5.191 6.040 7.190 8.107 8.494 8.508 8.556 8.835 9.094 8.860 7.947 6.739 5.953 6.040 6.786 7.481 7.537 6.993 6.438 - 6.137 6.255 6.220 5.859 5.397 5.320 5.874 6.738 7.239 6.964 6.166 5.535 5.535 5.953 6.130 5.670 4.921 4.708 5.553 7.128 8.492 8.917 8.510 8.028 8.074 8.480 8.504 7.650 6.291 5.428 5.766 7.004 8.040 7.964 6.894 5.868 - 6.289 6.631 6.893 6.719 6.251 6.025 6.396 7.093 7.410 6.878 5.771 4.902 4.871 5.511 6.071 5.986 5.462 5.287 6.022 7.387 8.467 8.560 7.842 7.185 7.283 7.959 8.339 7.748 6.447 5.452 5.599 6.729 7.814 7.915 7.054 6.164 - 6.417 6.732 7.112 7.315 7.336 7.358 7.472 7.501 7.153 6.376 5.521 5.095 5.300 5.820 6.105 5.923 5.618 5.800 6.730 7.984 8.784 8.692 8.020 7.533 7.705 8.243 8.359 7.557 6.187 5.201 5.316 6.356 7.404 7.628 7.020 6.339 - 6.533 6.376 6.148 6.026 6.202 6.726 7.385 7.787 7.650 7.057 6.423 6.141 6.224 6.308 6.046 5.541 5.350 5.983 7.338 8.641 9.045 8.368 7.303 6.825 7.301 8.132 8.285 7.281 5.716 4.791 5.257 6.708 7.917 7.912 6.834 5.782 - 4.148 4.638 5.267 5.689 5.892 6.179 6.794 7.621 8.252 8.358 7.982 7.443 6.989 6.589 6.114 5.685 5.738 6.630 8.131 9.381 9.495 8.353 6.806 6.015 6.442 7.416 7.731 6.777 5.164 4.224 4.798 6.426 7.713 7.568 6.195 4.902 - 12.088 12.101 12.135 12.189 12.234 12.203 12.018 11.652 11.186 10.777 10.559 10.520 10.488 10.263 9.815 9.349 9.163 9.372 9.753 9.877 9.453 8.610 7.829 7.567 7.857 8.254 8.206 7.532 6.606 6.051 6.208 6.837 7.320 7.203 6.585 6.022 - 14.309 13.583 12.697 12.287 12.514 12.946 12.971 12.343 11.388 10.688 10.558 10.788 10.873 10.490 9.793 9.257 9.239 9.658 10.074 10.078 9.629 9.056 8.739 8.779 8.934 8.857 8.398 7.727 7.182 6.999 7.144 7.374 7.426 7.212 6.856 6.590 - 11.508 10.966 10.118 9.327 8.892 8.885 9.118 9.284 9.192 8.890 8.573 8.340 8.059 7.495 6.633 5.864 5.778 6.670 8.159 9.338 9.418 8.356 6.935 6.150 6.410 7.216 7.621 7.073 5.888 4.961 4.953 5.717 6.457 6.477 5.807 5.137 - 9.091 8.158 6.822 5.813 5.623 6.237 7.211 8.005 8.320 8.192 7.820 7.319 6.652 5.803 5.001 4.716 5.327 6.714 8.165 8.781 8.143 6.697 5.484 5.365 6.340 7.539 7.927 7.151 5.831 5.025 5.332 6.400 7.254 7.162 6.264 5.420 - 6.460 6.566 6.559 6.281 5.876 5.727 6.105 6.889 7.635 7.922 7.656 7.046 6.338 5.640 5.018 4.708 5.100 6.378 8.129 9.413 9.378 7.993 6.198 5.237 5.674 6.932 7.807 7.518 6.367 5.418 5.488 6.390 7.129 6.858 5.704 4.659 - 5.033 5.551 6.174 6.485 6.459 6.451 6.791 7.420 7.932 7.974 7.575 7.068 6.710 6.441 6.051 5.586 5.475 6.159 7.532 8.806 9.059 8.047 6.514 5.622 5.954 6.993 7.592 7.046 5.757 4.869 5.172 6.323 7.122 6.634 5.097 3.758 - 7.097 7.202 7.248 7.117 6.917 6.920 7.290 7.884 8.329 8.320 7.852 7.170 6.523 6.007 5.645 5.574 6.048 7.160 8.532 9.385 9.055 7.589 5.851 4.936 5.333 6.521 7.410 7.240 6.190 5.150 4.892 5.392 5.927 5.806 5.042 4.322 - 8.226 8.574 9.117 9.659 10.073 10.341 10.494 10.541 10.455 10.224 9.897 9.563 9.278 9.026 8.756 8.457 8.192 8.045 8.033 8.082 8.106 8.101 8.144 8.286 8.438 8.398 8.035 7.473 7.084 7.220 7.908 8.753 9.201 8.962 8.257 7.665 - 10.652 10.012 9.213 8.844 9.152 9.888 10.537 10.716 10.403 9.856 9.336 8.920 8.535 8.131 7.781 7.616 7.669 7.812 7.882 7.858 7.916 8.274 8.953 9.673 10.016 9.736 8.973 8.191 7.872 8.190 8.903 9.528 9.664 9.242 8.552 8.045 - 10.997 10.836 10.621 10.474 10.431 10.435 10.410 10.330 10.205 10.014 9.678 9.141 8.489 7.968 7.840 8.162 8.696 9.058 9.023 8.726 8.577 8.928 9.754 10.624 11.002 10.666 9.892 9.284 9.346 10.131 11.202 11.922 11.858 11.042 9.940 9.175 - 11.403 10.419 9.044 8.040 7.823 8.223 8.692 8.726 8.192 7.321 6.451 5.781 5.325 5.041 4.965 5.195 5.746 6.447 7.012 7.231 7.138 6.972 6.971 7.166 7.353 7.284 6.902 6.432 6.227 6.493 7.103 7.659 7.762 7.303 6.555 5.998 - 8.573 8.750 8.794 8.443 7.827 7.404 7.541 8.118 8.575 8.375 7.469 6.330 5.531 5.282 5.336 5.336 5.209 5.222 5.649 6.401 7.027 7.095 6.594 5.958 5.677 5.881 6.263 6.417 6.236 5.978 5.962 6.220 6.459 6.375 5.980 5.615 - 7.320 7.564 7.841 7.900 7.649 7.203 6.773 6.497 6.371 6.302 6.209 6.058 5.839 5.545 5.211 4.963 4.987 5.384 6.034 6.609 6.784 6.490 5.977 5.616 5.595 5.773 5.841 5.629 5.292 5.166 5.441 5.945 6.268 6.120 5.609 5.163 - 7.642 7.920 8.169 8.081 7.657 7.218 7.101 7.350 7.679 7.750 7.465 7.005 6.591 6.259 5.872 5.365 4.934 4.921 5.482 6.349 6.971 6.942 6.350 5.704 5.498 5.795 6.203 6.249 5.810 5.198 4.854 4.967 5.352 5.680 5.786 5.762 - 8.892 8.976 9.039 8.953 8.670 8.235 7.731 7.224 6.764 6.414 6.239 6.236 6.274 6.141 5.711 5.093 4.607 4.567 5.021 5.694 6.184 6.273 6.079 5.910 5.969 6.172 6.250 6.044 5.682 5.477 5.625 5.993 6.219 6.038 5.543 5.121 - 6.655 7.573 8.685 9.146 8.663 7.646 6.761 6.354 6.266 6.153 5.919 5.787 5.969 6.323 6.397 5.871 4.940 4.229 4.274 5.032 5.908 6.270 5.988 5.487 5.300 5.571 5.977 6.116 5.937 5.767 5.915 6.290 6.436 5.994 5.114 4.401 - 5.701 6.283 7.117 7.773 7.988 7.782 7.354 6.899 6.500 6.164 5.900 5.736 5.660 5.575 5.362 5.008 4.675 4.606 4.927 5.518 6.077 6.336 6.248 5.975 5.716 5.538 5.364 5.118 4.861 4.759 4.925 5.273 5.568 5.618 5.445 5.258 - 5.561 5.842 6.256 6.606 6.765 6.733 6.592 6.403 6.154 5.779 5.255 4.668 4.192 3.988 4.090 4.384 4.688 4.884 4.991 5.126 5.390 5.762 6.092 6.203 6.019 5.625 5.218 4.978 4.963 5.094 5.221 5.225 5.078 4.840 4.609 4.471 - 5.129 5.854 6.728 7.092 6.760 6.129 5.787 5.977 6.397 6.514 6.048 5.210 4.484 4.204 4.311 4.496 4.544 4.535 4.722 5.235 5.906 6.393 6.450 6.106 5.594 5.139 4.820 4.609 4.495 4.527 4.731 4.999 5.123 4.967 4.612 4.319 - 6.766 6.794 6.957 7.328 7.808 8.128 8.027 7.467 6.708 6.152 6.060 6.362 6.698 6.685 6.191 5.432 4.804 4.604 4.840 5.266 5.589 5.672 5.580 5.461 5.396 5.346 5.241 5.095 5.032 5.172 5.498 5.812 5.866 5.564 5.065 4.688 - 5.759 6.276 6.961 7.372 7.282 6.805 6.266 5.970 6.043 6.425 6.944 7.380 7.503 7.148 6.333 5.340 4.615 4.499 4.971 5.636 6.009 5.880 5.450 5.110 5.073 5.176 5.076 4.619 4.049 3.814 4.141 4.776 5.161 4.917 4.197 3.581 - 7.901 7.577 7.091 6.696 6.609 6.888 7.386 7.816 7.922 7.636 7.126 6.672 6.469 6.492 6.527 6.347 5.898 5.356 5.009 5.056 5.477 6.044 6.460 6.515 6.178 5.585 4.959 4.511 4.366 4.508 4.793 5.007 4.983 4.696 4.293 4.005 - 10.998 10.543 9.703 8.679 7.802 7.386 7.509 7.916 8.183 8.031 7.546 7.086 6.956 7.113 7.191 6.822 5.980 5.049 4.544 4.713 5.360 6.009 6.262 6.045 5.584 5.170 4.945 4.869 4.840 4.813 4.819 4.891 5.004 5.095 5.131 5.131 - 9.421 8.608 7.566 6.977 7.078 7.525 7.757 7.506 6.995 6.679 6.796 7.159 7.348 7.105 6.544 6.016 5.774 5.782 5.816 5.728 5.585 5.566 5.733 5.925 5.899 5.565 5.097 4.793 4.828 5.128 5.450 5.594 5.534 5.382 5.256 5.198 - 6.172 6.486 6.830 6.912 6.706 6.466 6.468 6.739 7.030 7.057 6.765 6.353 6.051 5.895 5.718 5.383 4.982 4.795 5.018 5.536 5.971 5.996 5.618 5.160 4.970 5.117 5.365 5.436 5.283 5.121 5.182 5.464 5.721 5.710 5.441 5.177 - 5.832 6.160 6.523 6.591 6.280 5.827 5.600 5.800 6.311 6.799 6.964 6.723 6.207 5.624 5.117 4.749 4.559 4.598 4.889 5.349 5.783 5.986 5.879 5.565 5.253 5.104 5.134 5.229 5.262 5.182 5.031 4.885 4.790 4.742 4.720 4.710 - 6.052 6.425 6.800 6.763 6.234 5.559 5.251 5.560 6.265 6.822 6.779 6.117 5.242 4.678 4.686 5.117 5.579 5.756 5.620 5.390 5.304 5.418 5.580 5.584 5.353 5.000 4.732 4.686 4.840 5.045 5.147 5.092 4.932 4.766 4.656 4.609 - 5.502 5.895 6.439 6.801 6.765 6.367 5.866 5.576 5.666 6.051 6.459 6.621 6.438 6.042 5.679 5.539 5.637 5.832 5.953 5.923 5.794 5.666 5.595 5.543 5.433 5.238 5.028 4.932 5.041 5.321 5.623 5.763 5.634 5.275 4.852 4.572 - 6.002 6.118 6.256 6.316 6.282 6.241 6.297 6.464 6.634 6.639 6.388 5.947 5.510 5.273 5.308 5.530 5.766 5.874 5.826 5.699 5.600 5.586 5.637 5.689 5.690 5.638 5.576 5.554 5.597 5.681 5.753 5.758 5.673 5.521 5.358 5.255 - 4.802 4.998 5.263 5.471 5.626 5.840 6.187 6.588 6.861 6.888 6.733 6.586 6.572 6.636 6.614 6.428 6.190 6.102 6.234 6.411 6.358 5.970 5.446 5.142 5.247 5.598 5.827 5.707 5.385 5.259 5.606 6.306 6.925 7.099 6.849 6.545 - 6.372 6.198 5.989 5.904 5.983 6.130 6.208 6.165 6.066 6.009 6.011 5.970 5.766 5.386 4.968 4.713 4.736 4.972 5.242 5.388 5.385 5.334 5.352 5.461 5.579 5.604 5.516 5.401 5.392 5.557 5.849 6.134 6.284 6.263 6.136 6.027 - 6.322 5.938 5.402 5.023 4.989 5.285 5.737 6.152 6.407 6.459 6.305 5.955 5.467 4.965 4.616 4.532 4.692 4.945 5.114 5.116 5.000 4.894 4.890 4.985 5.110 5.202 5.261 5.326 5.427 5.547 5.643 5.690 5.701 5.710 5.732 5.753 - 5.283 5.879 6.579 6.802 6.355 5.568 5.012 5.050 5.593 6.239 6.622 6.651 6.479 6.278 6.079 5.805 5.424 5.042 4.832 4.881 5.101 5.313 5.393 5.349 5.268 5.210 5.165 5.116 5.106 5.219 5.473 5.744 5.832 5.628 5.238 4.931 - 6.663 6.182 5.458 4.847 4.649 4.942 5.528 6.043 6.171 5.844 5.288 4.863 4.821 5.132 5.519 5.658 5.414 4.923 4.488 4.370 4.627 5.102 5.543 5.753 5.682 5.423 5.141 4.996 5.075 5.356 5.709 5.950 5.938 5.667 5.283 5.009 - 5.516 5.782 6.026 5.948 5.525 5.038 4.811 4.914 5.104 5.063 4.695 4.210 3.922 3.959 4.165 4.264 4.140 3.935 3.914 4.208 4.695 5.108 5.258 5.160 4.968 4.817 4.738 4.699 4.698 4.777 4.934 5.053 4.953 4.558 4.009 3.611 - 6.343 6.138 5.941 5.969 6.235 6.524 6.585 6.349 5.961 5.619 5.390 5.181 4.893 4.574 4.408 4.528 4.846 5.085 5.008 4.639 4.268 4.215 4.564 5.094 5.474 5.530 5.369 5.245 5.325 5.552 5.719 5.656 5.356 4.954 4.612 4.425 - 5.904 5.681 5.459 5.492 5.841 6.309 6.586 6.489 6.096 5.675 5.477 5.553 5.738 5.789 5.567 5.122 4.651 4.364 4.374 4.649 5.049 5.397 5.555 5.480 5.241 4.981 4.838 4.865 5.002 5.125 5.138 5.031 4.880 4.767 4.726 4.725 - 2.912 3.766 4.923 5.719 5.873 5.630 5.452 5.590 5.902 6.066 5.931 5.661 5.554 5.725 5.982 6.012 5.678 5.153 4.766 4.710 4.904 5.104 5.133 5.016 4.892 4.849 4.854 4.836 4.805 4.856 5.029 5.206 5.163 4.779 4.197 3.762 - 2.956 3.859 5.049 5.787 5.775 5.323 5.006 5.149 5.574 5.822 5.596 5.031 4.558 4.513 4.866 5.283 5.442 5.292 5.052 4.976 5.124 5.342 5.427 5.302 5.052 4.821 4.691 4.653 4.659 4.679 4.690 4.640 4.464 4.142 3.767 3.511 - 5.037 5.367 5.741 5.825 5.512 5.002 4.634 4.616 4.881 5.187 5.327 5.294 5.235 5.283 5.425 5.518 5.438 5.210 5.004 4.999 5.239 5.593 5.853 5.874 5.651 5.299 4.958 4.718 4.588 4.518 4.441 4.299 4.073 3.789 3.519 3.353 - 4.046 4.694 5.620 6.312 6.422 5.953 5.213 4.599 4.357 4.469 4.727 4.902 4.885 4.727 4.567 4.528 4.652 4.895 5.170 5.390 5.494 5.464 5.323 5.137 4.990 4.943 4.997 5.079 5.078 4.911 4.573 4.146 3.746 3.462 3.311 3.256 - 6.831 5.809 4.429 3.524 3.509 4.163 4.893 5.217 5.054 4.639 4.239 3.961 3.783 3.703 3.781 4.046 4.385 4.592 4.559 4.408 4.404 4.692 5.117 5.322 5.059 4.429 3.820 3.578 3.718 3.931 3.888 3.537 3.125 2.940 3.033 3.194 - 6.513 6.028 5.255 4.480 3.948 3.783 3.982 4.450 5.025 5.495 5.650 5.379 4.760 4.056 3.585 3.537 3.865 4.342 4.731 4.927 4.981 4.986 4.964 4.851 4.586 4.211 3.866 3.683 3.680 3.739 3.706 3.511 3.209 2.917 2.719 2.631 - 4.890 5.368 5.793 5.584 4.648 3.512 2.935 3.312 4.373 5.409 5.802 5.441 4.717 4.150 4.009 4.208 4.493 4.707 4.885 5.140 5.485 5.781 5.838 5.573 5.066 4.501 4.044 3.763 3.642 3.624 3.643 3.632 3.540 3.358 3.143 2.996 - 5.386 5.420 5.326 4.969 4.434 4.011 3.981 4.373 4.925 5.283 5.278 5.028 4.805 4.777 4.880 4.908 4.731 4.440 4.275 4.428 4.867 5.353 5.612 5.505 5.093 4.557 4.073 3.737 3.566 3.532 3.579 3.634 3.626 3.525 3.373 3.259 - 4.004 4.402 4.934 5.272 5.252 4.954 4.605 4.398 4.395 4.561 4.822 5.094 5.253 5.146 4.696 4.024 3.449 3.309 3.716 4.443 5.065 5.264 5.038 4.660 4.418 4.388 4.423 4.344 4.128 3.911 3.819 3.807 3.683 3.315 2.795 2.411 - 4.734 5.394 6.254 6.711 6.424 5.533 4.540 3.970 4.058 4.643 5.312 5.669 5.536 5.006 4.355 3.878 3.754 3.986 4.418 4.839 5.093 5.146 5.069 4.945 4.785 4.532 4.142 3.674 3.295 3.163 3.283 3.475 3.489 3.207 2.751 2.406 - 5.036 5.496 5.983 6.025 5.523 4.817 4.356 4.304 4.457 4.508 4.370 4.237 4.324 4.595 4.765 4.598 4.180 3.885 4.032 4.570 5.091 5.192 4.824 4.318 4.056 4.123 4.269 4.191 3.858 3.524 3.451 3.614 3.710 3.467 2.944 2.509 - 3.832 4.354 5.026 5.378 5.163 4.495 3.707 3.111 2.842 2.877 3.144 3.567 4.029 4.346 4.337 3.985 3.515 3.296 3.579 4.305 5.126 5.647 5.688 5.360 4.916 4.538 4.242 3.961 3.684 3.500 3.500 3.663 3.846 3.906 3.829 3.729 - 4.860 4.748 4.567 4.383 4.271 4.280 4.410 4.601 4.747 4.744 4.548 4.213 3.868 3.652 3.632 3.767 3.949 4.092 4.198 4.347 4.612 4.972 5.295 5.420 5.271 4.926 4.571 4.380 4.407 4.567 4.708 4.717 4.578 4.357 4.150 4.029 - 5.859 5.854 5.713 5.362 4.946 4.769 5.037 5.628 6.125 6.126 5.555 4.729 4.115 3.984 4.258 4.635 4.851 4.851 4.747 4.672 4.671 4.726 4.819 4.940 5.037 4.995 4.728 4.311 3.998 4.049 4.482 4.984 5.113 4.653 3.838 3.208 - 6.884 6.636 6.233 5.844 5.650 5.727 5.974 6.148 6.038 5.646 5.201 4.973 5.035 5.179 5.093 4.652 4.063 3.722 3.886 4.456 5.053 5.326 5.220 4.972 4.862 4.957 5.086 5.040 4.786 4.483 4.304 4.243 4.124 3.798 3.330 2.979 - 8.097 7.947 7.715 7.492 7.335 7.231 7.108 6.891 6.568 6.200 5.880 5.648 5.459 5.213 4.853 4.437 4.124 4.072 4.337 4.835 5.406 5.919 6.318 6.595 6.728 6.672 6.417 6.054 5.763 5.689 5.817 5.949 5.838 5.395 4.790 4.355 - 7.685 7.338 6.878 6.602 6.654 6.915 7.088 6.910 6.336 5.571 4.929 4.621 4.639 4.797 4.886 4.826 4.701 4.668 4.839 5.218 5.729 6.285 6.817 7.255 7.502 7.452 7.075 6.479 5.883 5.492 5.359 5.349 5.252 4.954 4.543 4.243 - 7.939 7.467 6.891 6.637 6.829 7.181 7.234 6.731 5.825 4.964 4.547 4.643 4.986 5.210 5.137 4.871 4.672 4.741 5.099 5.627 6.203 6.781 7.360 7.892 8.245 8.274 7.935 7.350 6.747 6.312 6.071 5.894 5.614 5.172 4.680 4.352 - 6.586 6.921 7.370 7.690 7.809 7.825 7.816 7.694 7.272 6.503 5.629 5.053 5.020 5.385 5.714 5.654 5.246 4.893 5.012 5.683 6.589 7.297 7.593 7.577 7.476 7.392 7.245 6.941 6.549 6.279 6.258 6.355 6.255 5.761 5.021 4.466 - 10.225 9.840 9.118 8.232 7.513 7.283 7.605 8.158 8.417 8.024 7.063 5.997 5.306 5.136 5.260 5.341 5.255 5.180 5.386 5.960 6.722 7.385 7.797 8.003 8.111 8.123 7.918 7.425 6.770 6.239 6.053 6.175 6.339 6.298 6.045 5.804 - 11.661 11.266 10.771 10.486 10.440 10.354 9.910 9.075 8.178 7.656 7.676 7.980 8.071 7.609 6.671 5.679 5.077 5.020 5.330 5.699 5.954 6.145 6.429 6.870 7.344 7.625 7.551 7.141 6.573 6.066 5.763 5.684 5.760 5.898 6.024 6.095 - 10.902 10.688 10.419 10.257 10.213 10.120 9.796 9.219 8.582 8.149 8.035 8.107 8.086 7.777 7.231 6.699 6.424 6.448 6.606 6.696 6.675 6.705 6.990 7.550 8.148 8.432 8.212 7.627 7.060 6.854 7.040 7.312 7.267 6.737 5.944 5.360 - 10.593 10.469 10.410 10.550 10.760 10.700 10.137 9.206 8.359 8.000 8.142 8.414 8.404 8.043 7.653 7.621 8.006 8.448 8.485 7.985 7.300 6.983 7.314 8.051 8.611 8.529 7.813 6.912 6.361 6.395 6.829 7.249 7.318 6.987 6.476 6.109 - 11.832 11.905 12.052 12.186 12.093 11.555 10.556 9.383 8.480 8.141 8.294 8.586 8.688 8.554 8.404 8.447 8.631 8.664 8.310 7.666 7.149 7.164 7.741 8.459 8.750 8.343 7.466 6.677 6.443 6.822 7.462 7.881 7.789 7.239 6.545 6.078 - 7.690 7.944 8.391 8.881 9.193 9.135 8.668 7.962 7.295 6.861 6.641 6.459 6.172 5.838 5.698 5.970 6.634 7.394 7.865 7.847 7.456 7.027 6.856 7.000 7.278 7.446 7.392 7.201 7.057 7.085 7.255 7.423 7.450 7.299 7.061 6.887 - 8.226 8.077 7.918 7.901 8.062 8.280 8.375 8.245 7.937 7.595 7.350 7.244 7.241 7.301 7.415 7.588 7.794 7.963 8.048 8.088 8.207 8.518 8.996 9.441 9.583 9.275 8.628 7.983 7.708 7.968 8.614 9.278 9.609 9.491 9.103 8.781 - 8.217 7.987 7.736 7.690 7.890 8.150 8.218 7.975 7.509 7.014 6.623 6.346 6.145 6.038 6.112 6.413 6.843 7.185 7.271 7.133 7.002 7.122 7.533 8.021 8.276 8.140 7.730 7.353 7.275 7.544 7.984 8.339 8.447 8.314 8.079 7.908 - 7.925 7.893 7.995 8.299 8.549 8.294 7.300 5.867 4.698 4.381 4.908 5.690 6.049 5.788 5.322 5.267 5.873 6.798 7.414 7.356 6.808 6.310 6.284 6.706 7.204 7.436 7.380 7.308 7.493 7.952 8.432 8.634 8.432 7.943 7.417 7.089 - 9.790 9.160 8.351 7.875 7.882 8.069 8.003 7.517 6.847 6.378 6.297 6.456 6.563 6.484 6.341 6.352 6.584 6.889 7.079 7.133 7.214 7.474 7.850 8.093 8.010 7.693 7.487 7.696 8.313 9.004 9.386 9.333 9.036 8.790 8.731 8.772 - 8.772 8.929 8.999 8.735 8.144 7.511 7.172 7.227 7.449 7.480 7.128 6.520 5.980 5.767 5.887 6.138 6.306 6.331 6.309 6.359 6.499 6.641 6.693 6.655 6.622 6.703 6.948 7.329 7.779 8.221 8.570 8.732 8.638 8.311 7.897 7.611 - 6.731 7.325 8.085 8.490 8.324 7.780 7.234 6.917 6.778 6.623 6.354 6.061 5.889 5.865 5.864 5.768 5.623 5.629 5.935 6.461 6.924 7.067 6.879 6.600 6.506 6.684 7.011 7.321 7.586 7.898 8.288 8.589 8.526 7.976 7.164 6.565 - 6.903 7.237 7.653 7.811 7.505 6.791 5.951 5.321 5.103 5.276 5.626 5.892 5.897 5.638 5.263 4.979 4.933 5.135 5.471 5.790 6.007 6.145 6.287 6.477 6.658 6.722 6.623 6.462 6.440 6.703 7.190 7.630 7.720 7.358 6.751 6.294 - 5.739 5.847 6.020 6.182 6.249 6.156 5.894 5.520 5.134 4.835 4.673 4.628 4.637 4.655 4.691 4.802 5.034 5.360 5.666 5.816 5.746 5.516 5.284 5.206 5.339 5.620 5.928 6.177 6.361 6.523 6.679 6.782 6.757 6.581 6.332 6.151 - 9.270 8.871 8.161 7.274 6.341 5.477 4.797 4.419 4.427 4.798 5.370 5.890 6.148 6.100 5.887 5.730 5.763 5.929 6.030 5.879 5.463 4.973 4.680 4.761 5.180 5.728 6.170 6.391 6.438 6.444 6.501 6.597 6.648 6.594 6.462 6.352 - 7.125 7.209 7.149 6.716 5.936 5.112 4.607 4.568 4.832 5.088 5.134 5.004 4.888 4.926 5.101 5.281 5.360 5.343 5.302 5.285 5.276 5.251 5.231 5.282 5.425 5.597 5.692 5.685 5.687 5.851 6.209 6.586 6.708 6.436 5.918 5.512 - 4.577 5.488 6.440 6.472 5.397 3.973 3.248 3.669 4.745 5.518 5.399 4.621 3.952 3.983 4.656 5.395 5.667 5.417 5.031 4.919 5.163 5.518 5.711 5.693 5.626 5.665 5.797 5.891 5.878 5.837 5.892 6.051 6.169 6.099 5.862 5.649 - 5.979 6.840 7.951 8.589 8.470 7.892 7.377 7.183 7.142 6.924 6.430 5.926 5.777 6.084 6.573 6.842 6.719 6.374 6.106 6.034 6.004 5.798 5.406 5.074 5.069 5.412 5.839 6.049 5.979 5.834 5.852 6.047 6.189 6.058 5.686 5.362 - 9.770 9.687 9.629 9.699 9.881 9.995 9.801 9.167 8.183 7.138 6.354 6.002 6.019 6.186 6.282 6.220 6.041 5.828 5.607 5.340 5.007 4.676 4.487 4.543 4.809 5.111 5.261 5.203 5.059 5.019 5.179 5.454 5.649 5.630 5.439 5.262 - 7.877 7.160 6.269 5.827 6.012 6.425 6.460 5.823 4.776 3.897 3.616 3.907 4.394 4.696 4.711 4.597 4.535 4.541 4.486 4.278 3.995 3.829 3.914 4.202 4.525 4.744 4.861 4.979 5.171 5.416 5.633 5.783 5.909 6.074 6.270 6.412 - 4.383 4.155 3.988 4.204 4.866 5.670 6.134 5.954 5.237 4.450 4.088 4.328 4.912 5.356 5.320 4.845 4.291 4.033 4.177 4.510 4.714 4.644 4.436 4.356 4.559 4.943 5.252 5.302 5.138 4.979 5.010 5.226 5.447 5.501 5.383 5.247 - 5.441 5.049 4.599 4.486 4.847 5.451 5.883 5.862 5.437 4.908 4.582 4.543 4.642 4.664 4.524 4.319 4.215 4.286 4.455 4.569 4.543 4.433 4.389 4.531 4.853 5.223 5.475 5.512 5.355 5.115 4.922 4.864 4.954 5.139 5.334 5.457 - 5.255 4.554 3.689 3.315 3.702 4.533 5.161 5.096 4.364 3.455 2.942 3.081 3.674 4.277 4.543 4.437 4.189 4.068 4.176 4.415 4.603 4.630 4.516 4.362 4.251 4.204 4.192 4.193 4.220 4.298 4.431 4.579 4.683 4.711 4.681 4.644 - 5.414 5.063 4.606 4.345 4.403 4.654 4.846 4.807 4.558 4.262 4.068 4.004 3.993 3.958 3.898 3.872 3.931 4.065 4.224 4.375 4.526 4.699 4.871 4.973 4.942 4.782 4.583 4.450 4.435 4.510 4.614 4.715 4.827 4.973 5.133 5.242 - 4.715 4.726 4.786 4.899 4.982 4.896 4.572 4.088 3.646 3.430 3.481 3.690 3.902 4.042 4.138 4.249 4.382 4.487 4.527 4.545 4.629 4.818 5.039 5.149 5.067 4.855 4.676 4.654 4.766 4.872 4.858 4.751 4.693 4.801 5.038 5.235 - 5.854 5.687 5.560 5.651 5.879 5.925 5.516 4.713 3.923 3.595 3.854 4.391 4.712 4.541 4.024 3.581 3.543 3.895 4.324 4.514 4.406 4.205 4.161 4.323 4.497 4.433 4.058 3.553 3.222 3.253 3.576 3.920 4.012 3.772 3.354 3.039 - 4.241 4.573 4.963 5.117 4.971 4.708 4.525 4.435 4.292 4.022 3.777 3.818 4.226 4.734 4.904 4.524 3.841 3.388 3.523 4.113 4.642 4.687 4.290 3.902 3.944 4.406 4.864 4.887 4.437 3.890 3.658 3.800 4.002 3.918 3.531 3.169 - 5.760 4.901 3.762 3.045 3.054 3.538 3.986 4.104 4.020 4.088 4.489 5.023 5.275 4.987 4.299 3.638 3.376 3.552 3.905 4.130 4.141 4.094 4.197 4.504 4.871 5.093 5.076 4.889 4.673 4.511 4.374 4.179 3.879 3.513 3.178 2.980 - 4.397 4.034 3.677 3.739 4.307 5.049 5.471 5.304 4.706 4.113 3.894 4.095 4.464 4.702 4.699 4.580 4.545 4.681 4.911 5.092 5.149 5.123 5.103 5.126 5.148 5.097 4.949 4.749 4.570 4.444 4.351 4.246 4.104 3.941 3.798 3.715 - 6.130 5.889 5.566 5.352 5.322 5.373 5.315 5.028 4.567 4.133 3.935 4.041 4.344 4.646 4.795 4.768 4.638 4.492 4.360 4.230 4.111 4.075 4.207 4.517 4.887 5.116 5.062 4.751 4.371 4.134 4.121 4.223 4.245 4.069 3.762 3.523 - 4.518 4.262 3.991 3.958 4.192 4.465 4.501 4.236 3.898 3.806 4.080 4.508 4.696 4.394 3.713 3.058 2.825 3.111 3.658 4.068 4.104 3.838 3.551 3.490 3.686 3.955 4.068 3.929 3.629 3.355 3.240 3.283 3.382 3.433 3.413 3.374 - 4.848 4.483 4.059 3.922 4.164 4.544 4.707 4.500 4.112 3.913 4.128 4.621 4.980 4.839 4.175 3.350 2.853 2.953 3.530 4.181 4.519 4.414 4.029 3.648 3.461 3.467 3.543 3.577 3.561 3.562 3.635 3.753 3.836 3.821 3.728 3.642 - 4.869 4.199 3.325 2.820 2.939 3.472 3.972 4.134 4.007 3.873 3.934 4.113 4.139 3.835 3.327 2.989 3.144 3.783 4.544 4.969 4.829 4.273 3.696 3.442 3.587 3.947 4.264 4.405 4.418 4.441 4.545 4.675 4.707 4.574 4.341 4.160 - 4.782 5.045 5.328 5.328 4.923 4.279 3.751 3.632 3.946 4.432 4.745 4.712 4.449 4.234 4.258 4.449 4.544 4.339 3.910 3.592 3.712 4.301 5.019 5.387 5.143 4.442 3.737 3.442 3.650 4.119 4.502 4.606 4.486 4.317 4.223 4.201 - 4.474 4.660 4.963 5.243 5.328 5.106 4.626 4.109 3.846 4.005 4.521 5.120 5.491 5.462 5.066 4.470 3.858 3.364 3.080 3.075 3.377 3.909 4.475 4.836 4.856 4.600 4.292 4.157 4.270 4.523 4.733 4.780 4.678 4.524 4.406 4.350 - 5.692 5.716 5.680 5.495 5.168 4.816 4.598 4.596 4.747 4.883 4.844 4.586 4.212 3.899 3.784 3.887 4.111 4.314 4.396 4.344 4.221 4.120 4.100 4.170 4.301 4.453 4.613 4.795 5.022 5.288 5.545 5.721 5.758 5.662 5.503 5.385 - 5.016 5.147 5.320 5.406 5.302 4.995 4.568 4.157 3.874 3.747 3.712 3.671 3.574 3.466 3.464 3.668 4.075 4.551 4.896 4.961 4.739 4.376 4.076 3.990 4.139 4.430 4.738 4.989 5.186 5.374 5.570 5.740 5.825 5.799 5.702 5.619 - 5.095 4.783 4.434 4.309 4.386 4.377 4.030 3.420 2.928 2.907 3.363 3.940 4.249 4.205 4.075 4.182 4.572 4.960 5.010 4.660 4.188 3.952 4.067 4.328 4.450 4.369 4.306 4.545 5.136 5.821 6.246 6.254 5.984 5.702 5.567 5.547 - 4.870 5.057 5.395 5.715 5.711 5.142 4.104 3.090 2.679 3.065 3.863 4.406 4.310 3.805 3.506 3.827 4.573 5.115 4.986 4.339 3.830 4.013 4.818 5.606 5.749 5.206 4.560 4.484 5.149 6.101 6.681 6.587 6.049 5.533 5.301 5.277 - 6.403 5.463 4.293 3.731 4.079 4.897 5.417 5.184 4.387 3.639 3.444 3.818 4.370 4.680 4.629 4.411 4.276 4.307 4.412 4.493 4.578 4.770 5.089 5.391 5.479 5.301 5.036 4.977 5.291 5.871 6.402 6.582 6.314 5.740 5.136 4.760 - 6.773 6.252 5.449 4.716 4.338 4.389 4.711 5.025 5.108 4.919 4.600 4.361 4.331 4.485 4.687 4.805 4.800 4.733 4.696 4.753 4.911 5.149 5.443 5.759 6.036 6.195 6.193 6.081 5.995 6.070 6.331 6.658 6.868 6.855 6.679 6.515 - 4.560 4.607 4.741 4.971 5.217 5.322 5.164 4.764 4.309 4.049 4.138 4.532 5.023 5.372 5.453 5.313 5.114 5.018 5.097 5.312 5.563 5.758 5.856 5.879 5.887 5.938 6.058 6.231 6.409 6.546 6.634 6.703 6.797 6.932 7.080 7.179 - 5.099 5.636 6.220 6.305 5.771 5.013 4.578 4.689 5.077 5.270 5.031 4.562 4.286 4.431 4.823 5.060 4.890 4.452 4.147 4.282 4.812 5.391 5.680 5.612 5.403 5.334 5.513 5.818 6.033 6.031 5.841 5.584 5.363 5.215 5.129 5.089 - 3.448 4.312 5.297 5.558 4.867 3.781 3.139 3.351 4.100 4.686 4.655 4.148 3.696 3.705 4.115 4.524 4.596 4.359 4.128 4.180 4.511 4.893 5.118 5.182 5.227 5.353 5.502 5.548 5.455 5.335 5.324 5.423 5.486 5.368 5.096 4.865 - 4.587 4.402 4.216 4.276 4.713 5.423 6.096 6.384 6.130 5.464 4.717 4.191 3.967 3.909 3.841 3.737 3.747 4.028 4.548 5.061 5.293 5.191 4.975 4.954 5.245 5.656 5.862 5.710 5.366 5.164 5.287 5.569 5.631 5.233 4.531 3.982 - 5.775 5.745 5.776 5.912 6.050 6.007 5.728 5.382 5.232 5.358 5.504 5.258 4.424 3.272 2.394 2.269 2.885 3.757 4.318 4.355 4.095 3.930 4.034 4.235 4.235 3.936 3.549 3.404 3.641 4.091 4.426 4.442 4.185 3.862 3.638 3.545 - 5.867 5.727 5.525 5.321 5.082 4.732 4.291 3.931 3.868 4.144 4.532 4.674 4.370 3.762 3.238 3.122 3.422 3.855 4.108 4.100 4.002 4.029 4.219 4.420 4.488 4.462 4.547 4.891 5.398 5.759 5.713 5.270 4.707 4.331 4.233 4.272 - 7.561 7.042 6.366 5.978 6.063 6.425 6.663 6.493 5.958 5.360 5.000 4.946 5.010 4.938 4.632 4.216 3.911 3.840 3.934 4.006 3.934 3.769 3.700 3.897 4.372 4.966 5.456 5.701 5.700 5.547 5.328 5.060 4.717 4.302 3.899 3.645 - 8.977 8.202 7.117 6.320 6.135 6.438 6.819 6.929 6.717 6.387 6.160 6.063 5.922 5.554 4.956 4.331 3.936 3.872 4.019 4.148 4.111 3.951 3.854 3.984 4.356 4.821 5.181 5.314 5.237 5.057 4.889 4.780 4.718 4.667 4.615 4.578 - 9.248 8.518 7.536 6.878 6.782 7.024 7.189 7.046 6.715 6.470 6.424 6.391 6.079 5.394 4.584 4.057 4.043 4.413 4.798 4.914 4.781 4.666 4.804 5.175 5.523 5.581 5.315 4.950 4.786 4.954 5.319 5.587 5.520 5.104 4.552 4.169 - 8.487 8.254 7.821 7.305 6.907 6.813 7.041 7.392 7.580 7.454 7.112 6.793 6.637 6.544 6.270 5.690 4.968 4.458 4.419 4.785 5.228 5.434 5.369 5.271 5.403 5.795 6.224 6.422 6.321 6.088 5.929 5.890 5.828 5.594 5.223 4.934 - 9.033 8.909 8.716 8.531 8.396 8.292 8.141 7.871 7.483 7.065 6.750 6.611 6.606 6.595 6.444 6.130 5.754 5.469 5.369 5.446 5.637 5.903 6.255 6.698 7.151 7.450 7.443 7.123 6.664 6.311 6.206 6.290 6.373 6.300 6.090 5.908 - 8.821 8.652 8.443 8.341 8.387 8.475 8.440 8.189 7.773 7.353 7.082 7.013 7.082 7.172 7.193 7.117 6.968 6.792 6.641 6.569 6.625 6.826 7.133 7.455 7.683 7.748 7.648 7.436 7.185 6.952 6.774 6.668 6.642 6.685 6.760 6.815 - 8.702 8.432 8.035 7.698 7.526 7.497 7.513 7.505 7.472 7.457 7.460 7.414 7.228 6.886 6.489 6.202 6.130 6.234 6.352 6.331 6.152 5.956 5.938 6.190 6.626 7.039 7.255 7.257 7.174 7.164 7.270 7.388 7.355 7.103 6.735 6.466 - 9.071 8.349 7.411 6.857 6.913 7.319 7.620 7.595 7.401 7.351 7.546 7.745 7.598 7.015 6.309 5.949 6.146 6.635 6.879 6.526 5.723 5.027 4.967 5.637 6.625 7.344 7.458 7.093 6.674 6.564 6.793 7.074 7.055 6.611 5.952 5.471 - 8.917 8.376 7.685 7.308 7.413 7.768 7.973 7.815 7.435 7.172 7.230 7.487 7.600 7.322 6.745 6.232 6.115 6.405 6.778 6.851 6.514 6.031 5.820 6.101 6.708 7.216 7.287 6.936 6.501 6.347 6.545 6.804 6.713 6.098 5.206 4.555 - 8.975 8.984 8.935 8.756 8.439 8.050 7.680 7.393 7.209 7.128 7.150 7.249 7.346 7.325 7.105 6.713 6.287 5.985 5.881 5.936 6.077 6.288 6.614 7.058 7.483 7.651 7.401 6.835 6.303 6.170 6.510 7.020 7.232 6.896 6.199 5.642 - 8.231 7.865 7.399 7.176 7.356 7.780 8.065 7.854 7.072 5.989 5.048 4.582 4.632 4.970 5.317 5.544 5.709 5.930 6.218 6.451 6.504 6.400 6.324 6.466 6.830 7.201 7.320 7.115 6.780 6.613 6.737 6.970 6.974 6.557 5.883 5.369 - 7.668 6.219 4.672 4.538 6.168 8.455 9.788 9.369 7.760 6.248 5.705 5.978 6.276 6.063 5.566 5.453 6.075 7.069 7.695 7.550 6.958 6.650 7.072 7.987 8.722 8.794 8.321 7.856 7.861 8.331 8.877 9.116 8.974 8.653 8.382 8.253 - 9.639 8.821 7.763 7.172 7.358 8.047 8.655 8.753 8.337 7.727 7.252 7.020 6.937 6.887 6.859 6.901 7.011 7.107 7.114 7.081 7.156 7.438 7.846 8.167 8.250 8.163 8.153 8.422 8.923 9.381 9.520 9.291 8.897 8.598 8.501 8.517 - 8.316 8.301 8.375 8.621 8.970 9.198 9.076 8.555 7.822 7.182 6.856 6.847 6.974 7.034 6.946 6.788 6.704 6.790 7.031 7.344 7.641 7.883 8.072 8.222 8.344 8.447 8.547 8.659 8.775 8.861 8.873 8.792 8.638 8.460 8.312 8.230 - 8.346 8.053 7.760 7.795 8.216 8.721 8.850 8.338 7.349 6.389 5.971 6.265 6.998 7.667 7.896 7.665 7.268 7.049 7.156 7.481 7.818 8.059 8.272 8.595 9.060 9.522 9.761 9.659 9.305 8.932 8.736 8.751 8.849 8.888 8.830 8.755 - 8.669 7.807 6.789 6.442 7.037 8.085 8.760 8.562 7.681 6.779 6.432 6.716 7.246 7.571 7.536 7.325 7.216 7.310 7.496 7.626 7.697 7.858 8.243 8.810 9.352 9.656 9.660 9.472 9.256 9.099 8.984 8.849 8.669 8.477 8.324 8.244 - 6.149 6.162 6.364 6.901 7.678 8.357 8.597 8.303 7.698 7.141 6.874 6.904 7.079 7.245 7.325 7.286 7.086 6.718 6.299 6.091 6.355 7.125 8.123 8.905 9.179 9.010 8.734 8.669 8.853 9.053 9.018 8.720 8.375 8.221 8.299 8.433 - 6.934 7.049 7.306 7.703 8.145 8.453 8.452 8.096 7.523 6.990 6.730 6.817 7.134 7.469 7.653 7.645 7.520 7.386 7.306 7.308 7.426 7.725 8.250 8.942 9.600 9.967 9.895 9.464 8.950 8.640 8.635 8.789 8.836 8.623 8.235 7.931 - 6.033 6.267 6.791 7.588 8.464 9.085 9.179 8.741 8.056 7.501 7.284 7.315 7.326 7.119 6.746 6.462 6.508 6.904 7.438 7.849 8.043 8.163 8.446 8.997 9.667 10.144 10.172 9.746 9.114 8.605 8.412 8.496 8.664 8.739 8.690 8.613 - 5.301 5.256 5.396 5.949 6.885 7.851 8.387 8.245 7.577 6.825 6.410 6.460 6.763 6.971 6.881 6.561 6.269 6.233 6.504 6.960 7.455 7.936 8.445 9.014 9.557 9.887 9.838 9.404 8.769 8.202 7.888 7.835 7.910 7.967 7.951 7.911 - 6.528 6.560 6.620 6.707 6.826 6.964 7.067 7.051 6.865 6.556 6.283 6.234 6.489 6.931 7.289 7.303 6.909 6.314 5.880 5.912 6.474 7.363 8.246 8.849 9.082 9.021 8.798 8.505 8.171 7.821 7.537 7.448 7.650 8.109 8.642 8.998 - 6.300 6.143 5.998 6.063 6.388 6.814 7.074 6.989 6.613 6.205 6.046 6.230 6.595 6.848 6.791 6.471 6.153 6.118 6.473 7.090 7.732 8.228 8.565 8.823 9.038 9.132 8.976 8.531 7.932 7.429 7.230 7.371 7.709 8.049 8.271 8.366 - 4.483 4.696 5.160 5.847 6.569 7.032 7.030 6.617 6.099 5.839 5.997 6.432 6.826 6.925 6.718 6.410 6.252 6.372 6.734 7.229 7.783 8.386 9.034 9.655 10.101 10.222 9.963 9.405 8.728 8.132 7.771 7.715 7.937 8.331 8.736 8.991 - 2.875 3.069 3.566 4.431 5.513 6.425 6.742 6.294 5.338 4.455 4.201 4.751 5.789 6.744 7.194 7.140 6.944 6.994 7.389 7.891 8.180 8.164 8.063 8.195 8.652 9.179 9.372 9.027 8.336 7.751 7.622 7.940 8.380 8.609 8.556 8.420 - 4.157 4.405 4.903 5.606 6.369 6.939 7.050 6.591 5.732 4.900 4.555 4.903 5.746 6.606 7.062 7.032 6.797 6.731 6.983 7.380 7.629 7.616 7.529 7.668 8.128 8.667 8.890 8.607 8.020 7.567 7.541 7.835 8.047 7.862 7.350 6.910 - 4.483 4.744 5.261 5.943 6.546 6.741 6.297 5.294 4.158 3.471 3.636 4.615 5.943 7.003 7.397 7.153 6.630 6.237 6.165 6.344 6.599 6.844 7.132 7.533 7.980 8.261 8.183 7.765 7.275 7.033 7.154 7.439 7.537 7.242 6.686 6.247 - 5.669 5.475 5.323 5.475 5.983 6.635 7.125 7.281 7.161 6.945 6.748 6.537 6.216 5.786 5.403 5.266 5.435 5.764 6.002 6.007 5.861 5.804 6.027 6.512 7.037 7.343 7.308 7.014 6.659 6.405 6.288 6.235 6.150 5.996 5.817 5.695 - 5.732 5.682 5.699 5.896 6.254 6.616 6.807 6.770 6.595 6.417 6.292 6.156 5.912 5.533 5.096 4.707 4.408 4.171 3.965 3.848 3.942 4.327 4.937 5.562 5.982 6.111 6.036 5.926 5.890 5.911 5.894 5.775 5.574 5.370 5.226 5.160 - 5.882 6.401 7.222 8.022 8.514 8.556 8.165 7.480 6.698 6.016 5.577 5.424 5.484 5.606 5.655 5.583 5.441 5.303 5.182 5.018 4.752 4.419 4.153 4.095 4.265 4.529 4.701 4.692 4.583 4.528 4.597 4.682 4.583 4.205 3.678 3.294 - 7.632 7.720 8.046 8.693 9.483 10.017 9.967 9.343 8.503 7.874 7.646 7.694 7.770 7.764 7.768 7.892 8.061 8.000 7.480 6.573 5.680 5.264 5.510 6.193 6.864 7.169 7.054 6.698 6.295 5.903 5.458 4.919 4.346 3.866 3.560 3.426 - 7.840 7.907 8.262 9.048 10.051 10.762 10.756 10.050 9.094 8.406 8.187 8.259 8.355 8.414 8.594 8.984 9.353 9.250 8.405 7.072 5.937 5.637 6.277 7.364 8.207 8.425 8.125 7.661 7.242 6.779 6.068 5.088 4.082 3.359 3.029 2.954 - 8.232 8.188 8.391 9.068 10.049 10.801 10.846 10.159 9.189 8.476 8.242 8.318 8.438 8.553 8.817 9.289 9.676 9.475 8.433 6.890 5.657 5.435 6.288 7.595 8.544 8.724 8.321 7.810 7.478 7.217 6.744 5.956 5.061 4.384 4.066 3.993 - 8.388 8.328 8.494 9.115 10.032 10.732 10.739 10.019 9.005 8.248 7.997 8.105 8.292 8.452 8.693 9.071 9.354 9.113 8.112 6.647 5.454 5.211 6.029 7.370 8.448 8.777 8.415 7.753 7.109 6.515 5.834 5.021 4.235 3.701 3.486 3.459 - 8.389 8.377 8.598 9.236 10.118 10.744 10.656 9.820 8.671 7.787 7.478 7.644 7.980 8.281 8.541 8.790 8.883 8.532 7.588 6.302 5.279 5.089 5.842 7.088 8.120 8.446 8.041 7.234 6.382 5.641 4.980 4.354 3.818 3.472 3.336 3.320 - 8.464 8.574 8.880 9.404 9.965 10.229 9.935 9.117 8.110 7.336 7.039 7.181 7.551 7.946 8.260 8.426 8.333 7.854 6.996 6.012 5.330 5.291 5.904 6.809 7.503 7.654 7.268 6.608 5.959 5.451 5.045 4.655 4.252 3.884 3.617 3.482 - 8.285 8.499 8.901 9.374 9.680 9.565 8.944 8.009 7.142 6.679 6.698 7.016 7.375 7.641 7.839 8.009 8.059 7.782 7.060 6.063 5.233 5.023 5.565 6.544 7.384 7.617 7.159 6.309 5.503 5.010 4.811 4.683 4.408 3.939 3.418 3.076 - 8.142 8.477 8.938 9.196 8.983 8.271 7.334 6.602 6.370 6.576 6.847 6.811 6.427 6.031 6.025 6.473 6.975 6.970 6.234 5.136 4.396 4.531 5.439 6.476 6.954 6.631 5.814 5.015 4.529 4.279 4.026 3.671 3.349 3.252 3.392 3.566 - 8.402 8.107 7.754 7.578 7.566 7.471 7.060 6.374 5.728 5.445 5.574 5.858 5.986 5.878 5.734 5.796 6.066 6.254 6.035 5.372 4.608 4.226 4.469 5.154 5.812 6.038 5.746 5.158 4.583 4.193 3.972 3.822 3.680 3.552 3.467 3.431 - 7.672 7.155 6.688 6.854 7.669 8.513 8.640 7.814 6.498 5.450 5.113 5.333 5.619 5.640 5.475 5.427 5.626 5.846 5.715 5.094 4.240 3.611 3.481 3.755 4.106 4.289 4.311 4.320 4.390 4.420 4.274 3.966 3.692 3.645 3.822 4.015 - 7.575 7.119 6.680 6.748 7.337 7.930 7.906 7.065 5.782 4.672 4.103 3.993 4.026 4.027 4.110 4.466 5.054 5.527 5.502 4.918 4.125 3.620 3.652 4.057 4.448 4.556 4.407 4.200 4.064 3.949 3.736 3.429 3.194 3.192 3.399 3.606 - 7.251 6.654 6.076 6.170 6.992 7.891 8.014 7.018 5.356 3.930 3.404 3.763 4.442 4.846 4.791 4.530 4.413 4.541 4.725 4.718 4.470 4.157 3.992 4.022 4.109 4.087 3.923 3.735 3.661 3.725 3.826 3.831 3.690 3.454 3.225 3.091 - 6.899 6.344 5.707 5.515 5.880 6.405 6.525 5.994 5.081 4.336 4.150 4.490 5.008 5.360 5.449 5.388 5.294 5.149 4.854 4.397 3.934 3.684 3.735 3.970 4.172 4.213 4.136 4.070 4.070 4.057 3.904 3.576 3.177 2.860 2.697 2.651 - 7.180 6.566 5.897 5.794 6.380 7.165 7.450 6.905 5.815 4.819 4.390 4.523 4.846 5.004 4.928 4.789 4.740 4.724 4.549 4.114 3.556 3.159 3.124 3.420 3.842 4.189 4.397 4.501 4.514 4.382 4.047 3.559 3.082 2.778 2.683 2.692 - 7.848 7.344 6.690 6.293 6.294 6.477 6.499 6.191 5.691 5.292 5.185 5.327 5.530 5.644 5.657 5.617 5.513 5.250 4.760 4.137 3.618 3.424 3.582 3.908 4.162 4.233 4.184 4.134 4.106 4.006 3.744 3.361 3.030 2.903 2.975 3.088 - 8.820 7.832 6.586 5.957 6.284 7.158 7.819 7.782 7.170 6.513 6.263 6.461 6.798 6.940 6.774 6.395 5.928 5.413 4.864 4.386 4.159 4.275 4.592 4.794 4.647 4.216 3.829 3.791 4.117 4.515 4.652 4.435 4.060 3.805 3.769 3.831 - 9.561 8.603 7.291 6.396 6.318 6.886 7.578 7.960 7.940 7.713 7.504 7.392 7.327 7.268 7.231 7.218 7.126 6.790 6.153 5.395 4.850 4.750 5.012 5.279 5.201 4.721 4.112 3.741 3.772 4.053 4.284 4.264 4.022 3.732 3.533 3.451 - 9.297 8.576 7.489 6.564 6.221 6.570 7.362 8.150 8.539 8.409 7.962 7.578 7.558 7.917 8.362 8.470 7.977 6.965 5.845 5.108 5.023 5.466 6.001 6.159 5.727 4.865 3.977 3.446 3.407 3.705 4.029 4.117 3.884 3.435 2.970 2.683 - 9.038 8.453 7.621 6.996 6.863 7.200 7.747 8.204 8.395 8.317 8.092 7.884 7.843 8.038 8.395 8.685 8.611 8.000 6.967 5.903 5.254 5.213 5.577 5.881 5.739 5.109 4.310 3.755 3.651 3.868 4.079 4.007 3.599 3.010 2.469 2.156 - 8.786 8.143 7.307 6.834 6.981 7.570 8.191 8.526 8.524 8.326 8.082 7.872 7.741 7.750 7.915 8.090 7.971 7.316 6.208 5.113 4.595 4.877 5.615 6.137 5.953 5.140 4.255 3.864 4.088 4.546 4.720 4.376 3.700 3.063 2.694 2.568 - 8.438 7.567 6.481 5.970 6.353 7.282 8.080 8.275 7.900 7.340 6.958 6.842 6.867 6.907 6.956 7.039 7.069 6.862 6.325 5.626 5.124 5.086 5.419 5.716 5.574 4.947 4.188 3.767 3.886 4.338 4.694 4.644 4.190 3.572 3.052 2.774 - 8.216 7.241 6.102 5.732 6.404 7.537 8.223 7.977 7.067 6.187 5.841 5.994 6.254 6.317 6.213 6.169 6.277 6.368 6.210 5.796 5.401 5.329 5.590 5.872 5.825 5.393 4.865 4.582 4.604 4.658 4.420 3.843 3.203 2.830 2.802 2.909 - 8.901 7.603 5.966 5.141 5.580 6.744 7.611 7.503 6.545 5.438 4.840 4.911 5.346 5.738 5.889 5.823 5.607 5.256 4.809 4.452 4.451 4.910 5.596 6.051 5.943 5.358 4.728 4.453 4.552 4.670 4.431 3.794 3.087 2.681 2.661 2.786 - 5.865 5.740 5.536 5.354 5.318 5.494 5.802 6.021 5.927 5.468 4.842 4.377 4.299 4.553 4.847 4.873 4.540 4.034 3.664 3.640 3.938 4.360 4.683 4.781 4.650 4.351 3.966 3.591 3.329 3.241 3.279 3.277 3.052 2.553 1.945 1.524 - 7.516 6.534 5.269 4.555 4.719 5.381 5.842 5.685 5.079 4.564 4.543 4.961 5.404 5.493 5.185 4.739 4.441 4.365 4.391 4.395 4.407 4.551 4.862 5.179 5.241 4.909 4.301 3.709 3.382 3.350 3.439 3.429 3.217 2.859 2.504 2.290 - 8.239 7.196 5.771 4.773 4.565 4.877 5.125 4.939 4.408 3.903 3.684 3.683 3.648 3.451 3.247 3.309 3.726 4.266 4.549 4.371 3.884 3.458 3.363 3.559 3.766 3.725 3.415 3.031 2.796 2.775 2.857 2.883 2.779 2.587 2.400 2.291 - 6.485 5.857 4.962 4.262 4.015 4.128 4.286 4.221 3.907 3.545 3.376 3.496 3.819 4.180 4.478 4.711 4.902 5.006 4.911 4.532 3.937 3.349 3.022 3.064 3.358 3.644 3.707 3.518 3.230 3.029 2.971 2.939 2.756 2.351 1.849 1.499 - 3.121 3.599 4.295 4.862 5.080 4.955 4.649 4.332 4.091 3.935 3.866 3.904 4.056 4.261 4.405 4.398 4.253 4.078 3.981 3.972 3.956 3.827 3.578 3.326 3.222 3.321 3.535 3.689 3.649 3.403 3.045 2.693 2.415 2.223 2.101 2.040 - 4.568 4.536 4.542 4.650 4.824 4.921 4.782 4.348 3.720 3.106 2.699 2.576 2.681 2.891 3.109 3.303 3.486 3.669 3.823 3.899 3.862 3.727 3.561 3.450 3.453 3.568 3.722 3.799 3.699 3.391 2.941 2.487 2.164 2.031 2.044 2.094 - 6.451 6.172 5.797 5.537 5.444 5.362 5.046 4.375 3.487 2.720 2.405 2.651 3.267 3.879 4.148 3.965 3.487 3.025 2.853 3.057 3.505 3.936 4.120 3.978 3.614 3.231 3.000 2.963 3.025 3.042 2.929 2.714 2.498 2.372 2.347 2.365 - 5.853 5.292 4.596 4.264 4.470 4.945 5.220 5.009 4.398 3.732 3.328 3.290 3.521 3.878 4.262 4.594 4.763 4.652 4.259 3.765 3.441 3.436 3.635 3.735 3.505 2.991 2.487 2.287 2.438 2.716 2.833 2.678 2.378 2.142 2.066 2.081 - 8.452 8.288 8.014 7.668 7.232 6.661 5.971 5.284 4.764 4.500 4.447 4.496 4.588 4.757 5.036 5.336 5.448 5.204 4.673 4.181 4.091 4.512 5.201 5.752 5.934 5.851 5.799 5.941 6.127 6.034 5.520 4.824 4.421 4.612 5.236 5.774 - 9.118 8.997 8.778 8.484 8.119 7.693 7.255 6.873 6.581 6.347 6.137 6.022 6.204 6.866 7.934 8.972 9.392 8.879 7.695 6.567 6.183 6.681 7.570 8.155 8.130 7.796 7.731 8.198 8.854 9.043 8.416 7.307 6.496 6.539 7.282 7.987 - 7.649 6.827 5.595 4.568 4.231 4.676 5.540 6.210 6.196 5.449 4.431 3.850 4.210 5.458 6.972 7.931 7.832 6.804 5.510 4.691 4.691 5.286 5.926 6.193 6.088 5.961 6.142 6.608 6.972 6.809 6.044 5.063 4.445 4.511 5.074 5.585 - 6.414 5.447 4.161 3.340 3.327 3.825 4.224 4.127 3.629 3.153 3.052 3.341 3.758 4.037 4.109 4.073 4.024 3.961 3.839 3.688 3.628 3.745 3.972 4.120 4.060 3.865 3.763 3.913 4.230 4.429 4.278 3.812 3.311 3.053 3.081 3.201 - 5.156 5.032 4.955 5.068 5.293 5.353 5.015 4.334 3.663 3.409 3.725 4.402 5.040 5.332 5.235 4.913 4.553 4.246 4.007 3.870 3.909 4.159 4.522 4.795 4.815 4.603 4.362 4.316 4.529 4.866 5.121 5.187 5.116 5.036 5.019 5.040 - 5.002 4.986 5.009 5.083 5.109 4.929 4.483 3.922 3.539 3.566 3.981 4.521 4.876 4.927 4.809 4.767 4.931 5.218 5.423 5.414 5.240 5.070 5.035 5.118 5.189 5.137 4.971 4.798 4.725 4.773 4.874 4.948 4.961 4.934 4.904 4.888 - 5.705 5.237 4.611 4.229 4.320 4.789 5.297 5.502 5.284 4.818 4.438 4.418 4.801 5.395 5.905 6.107 5.966 5.620 5.292 5.183 5.394 5.907 6.603 7.300 7.805 7.981 7.799 7.356 6.838 6.436 6.269 6.340 6.561 6.815 7.015 7.119 - 5.752 5.788 5.800 5.765 5.751 5.864 6.106 6.312 6.267 5.919 5.490 5.336 5.653 6.270 6.736 6.654 5.996 5.137 4.596 4.683 5.347 6.284 7.187 7.889 8.346 8.531 8.406 7.994 7.452 7.016 6.840 6.867 6.882 6.710 6.385 6.121 - 5.743 5.171 4.395 3.910 4.015 4.613 5.283 5.569 5.306 4.741 4.360 4.537 5.263 6.154 6.732 6.755 6.359 5.916 5.750 5.940 6.352 6.823 7.297 7.810 8.355 8.804 8.979 8.819 8.464 8.159 8.044 8.025 7.869 7.431 6.834 6.398 - 7.018 6.696 6.225 5.825 5.626 5.591 5.576 5.446 5.180 4.881 4.714 4.807 5.173 5.685 6.121 6.260 6.019 5.531 5.109 5.080 5.561 6.359 7.067 7.330 7.088 6.608 6.278 6.316 6.620 6.880 6.843 6.508 6.096 5.843 5.808 5.863 - 6.934 6.897 6.918 7.078 7.334 7.499 7.350 6.789 5.929 5.069 4.543 4.568 5.141 6.040 6.900 7.364 7.238 6.602 5.796 5.262 5.297 5.875 6.645 7.151 7.110 6.586 5.921 5.497 5.493 5.812 6.201 6.440 6.462 6.338 6.186 6.092 - 8.204 7.489 6.573 6.080 6.267 6.856 7.283 7.142 6.463 5.629 5.045 4.855 4.921 5.013 5.019 4.985 5.003 5.087 5.158 5.150 5.095 5.114 5.307 5.664 6.068 6.382 6.530 6.524 6.413 6.249 6.080 5.965 5.963 6.089 6.281 6.423 - 7.712 7.512 7.287 7.209 7.269 7.273 7.005 6.432 5.741 5.188 4.913 4.862 4.891 4.913 4.949 5.052 5.200 5.292 5.249 5.112 5.023 5.098 5.309 5.505 5.553 5.459 5.359 5.368 5.466 5.513 5.403 5.188 5.047 5.121 5.368 5.584 - 5.188 5.410 5.763 6.082 6.177 5.941 5.440 4.905 4.598 4.638 4.923 5.215 5.337 5.300 5.270 5.387 5.627 5.807 5.754 5.461 5.108 4.923 5.009 5.283 5.571 5.743 5.773 5.698 5.536 5.274 4.925 4.585 4.396 4.437 4.637 4.814 - 5.292 5.661 6.131 6.371 6.225 5.811 5.405 5.218 5.253 5.341 5.316 5.162 5.018 5.031 5.212 5.410 5.435 5.227 4.918 4.744 4.861 5.233 5.651 5.893 5.872 5.678 5.485 5.419 5.469 5.529 5.499 5.359 5.176 5.034 4.968 4.952 - 5.254 5.866 6.541 6.682 6.178 5.478 5.155 5.380 5.794 5.891 5.506 4.961 4.725 4.958 5.352 5.444 5.059 4.473 4.144 4.295 4.741 5.100 5.165 5.053 5.027 5.182 5.343 5.256 4.872 4.427 4.227 4.372 4.683 4.893 4.901 4.826 - 5.139 5.291 5.549 5.824 6.004 5.997 5.786 5.450 5.145 5.011 5.090 5.282 5.402 5.302 4.970 4.544 4.222 4.130 4.253 4.475 4.685 4.862 5.061 5.314 5.559 5.658 5.511 5.167 4.818 4.675 4.802 5.066 5.238 5.174 4.933 4.723 - 6.802 6.199 5.445 5.058 5.191 5.539 5.639 5.280 4.670 4.218 4.175 4.460 4.788 4.942 4.927 4.874 4.851 4.791 4.601 4.316 4.113 4.143 4.365 4.556 4.513 4.247 3.977 3.927 4.103 4.293 4.269 4.004 3.689 3.545 3.612 3.732 - 4.174 4.605 5.204 5.649 5.792 5.701 5.523 5.328 5.095 4.827 4.631 4.636 4.823 4.964 4.785 4.228 3.562 3.194 3.322 3.747 4.043 3.930 3.526 3.229 3.340 3.779 4.158 4.156 3.813 3.476 3.446 3.678 3.821 3.577 3.018 2.551 - 3.680 3.760 4.024 4.518 5.092 5.448 5.366 4.916 4.429 4.251 4.460 4.816 4.980 4.810 4.474 4.293 4.439 4.787 5.020 4.909 4.520 4.160 4.139 4.530 5.136 5.646 5.857 5.767 5.518 5.251 5.011 4.758 4.445 4.082 3.749 3.547 - 5.606 5.158 4.584 4.280 4.424 4.862 5.256 5.354 5.168 4.926 4.874 5.079 5.410 5.654 5.676 5.487 5.196 4.921 4.735 4.672 4.753 4.985 5.338 5.724 6.029 6.164 6.112 5.922 5.672 5.427 5.228 5.099 5.054 5.086 5.159 5.217 - 6.502 5.978 5.344 5.058 5.235 5.576 5.688 5.459 5.150 5.119 5.464 5.918 6.103 5.870 5.416 5.068 4.967 4.952 4.765 4.351 3.960 3.941 4.417 5.158 5.751 5.925 5.730 5.443 5.305 5.346 5.428 5.412 5.288 5.146 5.062 5.037 - 5.198 5.126 5.078 5.146 5.312 5.426 5.301 4.865 4.248 3.734 3.602 3.961 4.679 5.467 6.030 6.222 6.088 5.808 5.584 5.534 5.665 5.902 6.153 6.360 6.520 6.668 6.838 7.034 7.229 7.370 7.417 7.359 7.219 7.047 6.897 6.811 - 5.520 5.136 4.683 4.542 4.869 5.466 5.927 5.926 5.445 4.768 4.275 4.194 4.488 4.928 5.266 5.377 5.285 5.102 4.938 4.862 4.909 5.086 5.372 5.706 5.995 6.161 6.187 6.128 6.077 6.096 6.171 6.225 6.179 6.018 5.807 5.660 - 5.738 6.221 7.065 8.011 8.711 8.870 8.424 7.604 6.801 6.310 6.142 6.058 5.803 5.323 4.799 4.482 4.473 4.662 4.847 4.916 4.916 4.964 5.098 5.238 5.276 5.210 5.169 5.307 5.648 6.041 6.265 6.184 5.834 5.379 4.991 4.778 - 5.798 5.837 6.014 6.395 6.876 7.184 7.036 6.351 5.356 4.468 4.050 4.188 4.665 5.130 5.337 5.269 5.095 4.997 5.047 5.203 5.400 5.629 5.911 6.210 6.390 6.289 5.867 5.311 4.945 5.015 5.479 6.004 6.189 5.866 5.241 4.752 - 6.378 6.227 6.272 6.824 7.781 8.627 8.834 8.292 7.386 6.651 6.349 6.341 6.328 6.179 6.011 5.997 6.129 6.239 6.231 6.269 6.651 7.473 8.413 8.909 8.626 7.777 6.998 6.828 7.282 7.867 8.042 7.677 7.111 6.781 6.816 6.978 - 6.177 6.310 6.638 7.189 7.861 8.434 8.686 8.517 7.996 7.290 6.581 6.013 5.688 5.655 5.863 6.135 6.237 6.045 5.689 5.518 5.867 6.784 7.942 8.833 9.115 8.830 8.333 7.987 7.904 7.918 7.797 7.478 7.103 6.867 6.827 6.872 - 5.279 5.591 6.176 6.963 7.822 8.539 8.825 8.442 7.391 6.018 4.883 4.433 4.688 5.219 5.468 5.180 4.596 4.253 4.547 5.441 6.532 7.408 7.946 8.302 8.650 8.944 8.964 8.566 7.888 7.264 6.925 6.775 6.481 5.818 4.936 4.295 - 5.137 5.344 5.782 6.447 7.245 7.970 8.368 8.267 7.684 6.843 6.046 5.493 5.170 4.903 4.545 4.138 3.915 4.127 4.837 5.849 6.833 7.542 7.932 8.116 8.204 8.209 8.083 7.838 7.592 7.466 7.428 7.247 6.655 5.610 4.426 3.631 - 4.527 4.989 5.585 5.951 5.982 5.863 5.807 5.809 5.660 5.206 4.585 4.153 4.178 4.571 4.953 5.001 4.749 4.548 4.732 5.303 5.936 6.293 6.313 6.217 6.230 6.334 6.320 6.066 5.738 5.659 5.946 6.291 6.156 5.266 3.948 2.971 - 3.937 4.404 5.132 5.830 6.277 6.405 6.275 5.979 5.576 5.089 4.553 4.047 3.678 3.516 3.552 3.703 3.869 3.998 4.110 4.283 4.586 5.028 5.521 5.904 6.018 5.802 5.362 4.946 4.810 5.044 5.486 5.793 5.655 5.028 4.195 3.609 - 5.805 5.767 5.876 6.272 6.830 7.174 6.948 6.123 5.051 4.225 3.924 4.049 4.252 4.233 3.950 3.595 3.396 3.456 3.723 4.096 4.509 4.929 5.300 5.529 5.551 5.410 5.248 5.198 5.280 5.387 5.393 5.269 5.104 5.012 5.022 5.067 - 6.137 6.407 6.789 7.050 6.993 6.572 5.923 5.303 4.939 4.901 5.057 5.163 5.021 4.602 4.054 3.601 3.412 3.520 3.841 4.238 4.592 4.835 4.945 4.947 4.899 4.884 4.958 5.114 5.260 5.269 5.055 4.632 4.106 3.615 3.260 3.081 - 4.426 5.132 6.054 6.559 6.305 5.468 4.587 4.168 4.337 4.778 5.003 4.722 4.050 3.400 3.171 3.461 4.016 4.442 4.498 4.257 4.019 4.070 4.460 4.969 5.273 5.179 4.750 4.260 3.995 4.071 4.371 4.638 4.654 4.379 3.969 3.673 - 4.713 5.028 5.613 6.317 6.866 6.988 6.617 5.982 5.473 5.347 5.525 5.668 5.475 4.951 4.401 4.166 4.324 4.637 4.780 4.644 4.434 4.476 4.910 5.546 6.006 6.018 5.621 5.108 4.792 4.789 4.984 5.167 5.193 5.062 4.873 4.744 - 4.624 4.415 4.387 4.908 5.889 6.741 6.811 5.931 4.609 3.674 3.652 4.374 5.134 5.266 4.651 3.778 3.322 3.610 4.403 5.129 5.353 5.097 4.768 4.801 5.321 6.063 6.597 6.642 6.238 5.669 5.246 5.120 5.241 5.457 5.639 5.732 - 4.586 4.403 4.646 5.831 7.671 9.103 9.093 7.531 5.387 3.970 3.909 4.736 5.408 5.259 4.549 4.153 4.717 6.066 7.351 7.779 7.250 6.378 5.941 6.264 7.041 7.662 7.702 7.166 6.369 5.654 5.193 4.991 4.983 5.098 5.259 5.373 - 2.290 2.795 4.067 6.167 8.533 10.126 10.121 8.594 6.548 5.209 5.131 5.866 6.453 6.292 5.657 5.397 6.130 7.642 9.008 9.339 8.499 7.219 6.516 6.914 8.087 9.169 9.420 8.729 7.595 6.678 6.307 6.328 6.332 6.039 5.523 5.118 - 4.173 4.698 5.780 7.308 8.884 9.922 9.976 9.072 7.746 6.704 6.339 6.493 6.663 6.495 6.141 6.157 6.972 8.400 9.635 9.816 8.744 7.139 6.181 6.624 8.204 9.812 10.339 9.521 8.094 7.147 7.215 7.860 8.106 7.327 5.833 4.645 - 3.928 4.448 5.449 6.814 8.303 9.556 10.198 10.023 9.144 7.966 6.966 6.413 6.249 6.259 6.355 6.703 7.522 8.710 9.703 9.794 8.740 7.126 6.078 6.442 8.070 9.856 10.566 9.810 8.338 7.379 7.565 8.385 8.654 7.608 5.656 4.112 - 4.691 5.077 5.717 6.473 7.295 8.181 9.037 9.612 9.622 8.974 7.887 6.783 6.040 5.828 6.131 6.863 7.895 8.950 9.567 9.308 8.152 6.717 5.979 6.586 8.277 9.961 10.504 9.630 8.153 7.298 7.642 8.598 8.922 7.838 5.795 4.180 - 5.917 6.075 6.437 7.063 7.959 9.008 9.952 10.467 10.312 9.469 8.172 6.820 5.817 5.457 5.848 6.884 8.221 9.319 9.637 8.941 7.551 6.273 5.948 6.873 8.520 9.844 10.019 9.054 7.781 7.184 7.589 8.379 8.518 7.445 5.621 4.220 - 4.072 4.709 5.785 7.024 8.211 9.230 10.008 10.441 10.403 9.839 8.848 7.690 6.701 6.179 6.300 7.038 8.119 9.043 9.269 8.522 7.075 5.714 5.308 6.208 7.916 9.363 9.646 8.700 7.342 6.610 6.920 7.726 8.000 7.130 5.498 4.212 - 6.804 6.823 7.002 7.521 8.441 9.572 10.483 10.716 10.089 8.861 7.592 6.778 6.529 6.574 6.581 6.489 6.531 6.910 7.465 7.688 7.163 6.033 5.034 4.969 6.029 7.585 8.651 8.675 7.961 7.344 7.418 8.004 8.353 7.884 6.773 5.844 - 5.893 6.036 6.453 7.257 8.373 9.466 10.073 9.880 8.947 7.706 6.701 6.245 6.268 6.465 6.623 6.801 7.201 7.835 8.345 8.211 7.229 5.833 4.890 5.065 6.254 7.602 8.156 7.636 6.650 6.152 6.582 7.446 7.740 6.852 5.173 3.846 - 6.523 6.456 6.493 6.837 7.534 8.386 9.028 9.136 8.630 7.734 6.841 6.288 6.182 6.402 6.734 7.019 7.194 7.229 7.062 6.631 5.991 5.375 5.102 5.360 6.023 6.698 6.980 6.750 6.247 5.858 5.794 5.922 5.902 5.514 4.883 4.399 - 6.245 6.228 6.204 6.222 6.367 6.711 7.228 7.748 8.018 7.843 7.214 6.344 5.569 5.192 5.342 5.923 6.647 7.152 7.152 6.585 5.676 4.852 4.519 4.807 5.474 6.048 6.153 5.771 5.240 4.974 5.114 5.408 5.427 4.941 4.146 3.542 - 6.793 6.748 6.765 6.983 7.456 8.075 8.584 8.701 8.287 7.447 6.484 5.728 5.368 5.373 5.568 5.767 5.856 5.799 5.596 5.285 4.974 4.846 5.058 5.583 6.143 6.350 5.986 5.224 4.548 4.414 4.864 5.459 5.588 4.968 3.902 3.086 - 5.025 5.820 6.916 7.699 7.866 7.557 7.131 6.830 6.635 6.411 6.133 5.940 5.971 6.175 6.308 6.155 5.737 5.312 5.140 5.258 5.465 5.534 5.426 5.290 5.271 5.324 5.258 4.960 4.561 4.345 4.474 4.781 4.886 4.534 3.865 3.331 - 2.833 3.920 5.515 6.871 7.558 7.644 7.475 7.297 7.088 6.694 6.106 5.566 5.390 5.683 6.212 6.576 6.511 6.076 5.567 5.268 5.253 5.392 5.499 5.470 5.298 5.010 4.635 4.234 3.933 3.863 4.045 4.322 4.446 4.271 3.891 3.583 - 4.411 4.623 5.095 5.826 6.666 7.354 7.656 7.514 7.068 6.548 6.125 5.855 5.725 5.716 5.807 5.929 5.941 5.711 5.244 4.737 4.475 4.621 5.082 5.555 5.748 5.583 5.226 4.931 4.834 4.873 4.882 4.748 4.495 4.232 4.050 3.969 - 3.538 4.087 5.075 6.271 7.342 7.967 7.989 7.502 6.806 6.234 5.977 6.020 6.222 6.430 6.556 6.559 6.401 6.054 5.564 5.089 4.852 4.990 5.435 5.925 6.152 5.970 5.486 4.975 4.691 4.697 4.849 4.909 4.717 4.287 3.796 3.473 - 4.919 5.292 5.940 6.697 7.367 7.781 7.841 7.551 7.020 6.427 5.943 5.671 5.613 5.700 5.852 6.011 6.137 6.177 6.063 5.771 5.385 5.093 5.077 5.367 5.766 5.963 5.750 5.203 4.651 4.445 4.688 5.151 5.449 5.349 4.953 4.605 - 6.468 6.718 7.079 7.357 7.419 7.259 6.983 6.726 6.563 6.470 6.362 6.170 5.905 5.665 5.567 5.665 5.892 6.087 6.095 5.877 5.551 5.324 5.341 5.572 5.814 5.839 5.573 5.179 4.951 5.091 5.533 5.958 6.014 5.584 4.897 4.385 - 5.958 6.293 6.863 7.455 7.787 7.640 7.024 6.223 5.654 5.591 5.981 6.484 6.738 6.619 6.306 6.095 6.130 6.286 6.300 6.026 5.585 5.282 5.355 5.768 6.228 6.404 6.167 5.681 5.259 5.131 5.288 5.514 5.561 5.336 4.961 4.680 - 6.045 6.342 6.891 7.561 8.122 8.343 8.138 7.649 7.161 6.900 6.886 6.950 6.904 6.708 6.471 6.318 6.236 6.084 5.740 5.252 4.842 4.729 4.943 5.286 5.486 5.406 5.143 4.929 4.939 5.168 5.467 5.671 5.716 5.647 5.550 5.488 - 5.822 6.203 6.912 7.779 8.511 8.813 8.584 8.007 7.426 7.089 6.971 6.847 6.537 6.090 5.736 5.639 5.708 5.652 5.255 4.605 4.064 3.975 4.375 4.957 5.324 5.305 5.048 4.856 4.903 5.111 5.257 5.189 4.940 4.661 4.472 4.394 - 6.682 6.563 6.634 7.174 8.084 8.881 9.069 8.555 7.732 7.156 7.100 7.376 7.560 7.403 7.026 6.774 6.866 7.203 7.483 7.503 7.345 7.280 7.488 7.878 8.165 8.127 7.802 7.457 7.365 7.596 7.989 8.294 8.357 8.193 7.944 7.770 - 3.629 4.187 5.217 6.504 7.697 8.449 8.610 8.333 7.964 7.776 7.772 7.715 7.369 6.737 6.081 5.709 5.726 5.957 6.126 6.096 5.978 5.995 6.255 6.637 6.884 6.833 6.547 6.270 6.225 6.452 6.793 7.027 7.023 6.808 6.524 6.331 - 5.365 6.189 7.294 8.006 8.004 7.508 7.047 7.024 7.440 7.956 8.200 8.037 7.595 7.092 6.657 6.286 5.936 5.613 5.355 5.161 4.945 4.619 4.212 3.909 3.945 4.424 5.209 5.982 6.428 6.405 5.990 5.388 4.805 4.359 4.080 3.950 - 5.696 6.260 7.017 7.539 7.684 7.658 7.763 8.077 8.381 8.375 7.974 7.384 6.913 6.694 6.598 6.399 6.015 5.575 5.270 5.144 5.057 4.843 4.511 4.263 4.311 4.670 5.132 5.443 5.511 5.437 5.360 5.280 5.059 4.603 4.022 3.607 - 5.559 5.790 6.188 6.684 7.253 7.872 8.444 8.781 8.722 8.295 7.764 7.472 7.582 7.934 8.150 7.924 7.249 6.406 5.726 5.343 5.148 4.950 4.679 4.437 4.367 4.506 4.753 4.987 5.178 5.372 5.560 5.596 5.281 4.565 3.689 3.083 - 5.897 6.285 6.813 7.222 7.479 7.765 8.231 8.772 9.069 8.884 8.328 7.838 7.833 8.365 9.050 9.361 9.014 8.135 7.099 6.224 5.596 5.145 4.821 4.683 4.807 5.148 5.533 5.790 5.888 5.919 5.928 5.799 5.329 4.459 3.443 2.749 - 4.520 5.483 6.643 7.163 6.882 6.417 6.539 7.429 8.502 8.960 8.527 7.689 7.244 7.591 8.421 9.042 8.989 8.349 7.553 6.931 6.478 6.033 5.594 5.404 5.689 6.355 6.992 7.207 6.967 6.587 6.364 6.246 5.872 4.991 3.816 2.963 - 5.288 5.170 5.128 5.387 6.025 6.918 7.850 8.652 9.251 9.603 9.620 9.219 8.459 7.633 7.166 7.344 8.063 8.838 9.100 8.584 7.532 6.535 6.136 6.478 7.254 7.958 8.245 8.114 7.813 7.577 7.415 7.120 6.470 5.464 4.392 3.696 - 5.478 5.559 5.768 6.174 6.820 7.668 8.574 9.330 9.749 9.751 9.378 8.751 8.030 7.404 7.100 7.320 8.092 9.138 9.923 9.932 9.050 7.723 6.727 6.647 7.453 8.517 9.090 8.860 8.140 7.534 7.365 7.382 7.014 5.940 4.479 3.419 - 6.047 5.689 5.319 5.380 6.098 7.316 8.604 9.530 9.902 9.804 9.438 8.931 8.301 7.591 7.009 6.901 7.493 8.630 9.750 10.212 9.752 8.718 7.837 7.682 8.241 8.955 9.201 8.816 8.205 7.935 8.168 8.448 8.068 6.722 4.888 3.569 - 4.001 4.505 5.198 5.775 6.244 6.884 7.877 9.004 9.723 9.604 8.717 7.602 6.846 6.650 6.786 6.925 7.001 7.225 7.781 8.547 9.142 9.281 9.056 8.838 8.890 9.087 9.047 8.559 7.860 7.454 7.590 7.942 7.832 6.858 5.354 4.221 - 5.606 5.780 6.027 6.283 6.628 7.212 8.049 8.885 9.310 9.055 8.226 7.247 6.567 6.360 6.482 6.675 6.816 6.983 7.310 7.818 8.394 8.904 9.299 9.579 9.672 9.420 8.741 7.830 7.143 7.088 7.631 8.205 8.082 6.969 5.329 4.124 - 4.744 4.763 5.037 5.781 6.914 8.031 8.660 8.601 8.064 7.480 7.152 7.049 6.895 6.464 5.827 5.320 5.287 5.817 6.687 7.556 8.210 8.666 9.050 9.396 9.564 9.364 8.768 8.015 7.480 7.395 7.645 7.818 7.498 6.592 5.448 4.655 - 5.284 5.162 5.132 5.422 6.050 6.767 7.228 7.246 6.917 6.527 6.300 6.226 6.095 5.723 5.153 4.672 4.616 5.115 6.005 6.957 7.714 8.240 8.650 9.020 9.252 9.134 8.558 7.685 6.898 6.543 6.662 6.949 6.975 6.532 5.810 5.263 - 4.962 5.026 5.193 5.476 5.791 5.986 5.947 5.701 5.426 5.328 5.494 5.822 6.100 6.158 5.979 5.696 5.482 5.437 5.569 5.842 6.245 6.781 7.403 7.953 8.208 8.004 7.375 6.573 5.932 5.667 5.736 5.879 5.807 5.418 4.870 4.474 - 5.314 5.688 6.266 6.783 7.007 6.867 6.500 6.154 6.007 6.023 5.986 5.710 5.237 4.858 4.889 5.399 6.114 6.613 6.654 6.361 6.106 6.190 6.601 7.053 7.257 7.167 6.981 6.924 7.026 7.109 6.981 6.645 6.298 6.149 6.220 6.344 - 6.063 6.271 6.618 6.968 7.150 7.051 6.696 6.258 5.943 5.840 5.862 5.834 5.674 5.490 5.504 5.842 6.390 6.834 6.890 6.523 5.986 5.631 5.665 6.017 6.435 6.691 6.733 6.682 6.691 6.815 6.991 7.110 7.109 7.009 6.881 6.796 - 5.688 6.576 7.833 8.779 9.014 8.605 7.930 7.342 6.942 6.626 6.301 6.037 6.018 6.356 6.957 7.559 7.923 7.989 7.882 7.778 7.771 7.838 7.918 8.005 8.150 8.398 8.713 8.985 9.104 9.031 8.813 8.541 8.292 8.098 7.968 7.902 - 7.267 7.498 7.832 8.094 8.159 7.986 7.594 7.040 6.435 5.957 5.813 6.109 6.750 7.453 7.925 8.064 8.023 8.058 8.300 8.640 8.842 8.783 8.592 8.553 8.853 9.402 9.895 10.067 9.900 9.609 9.425 9.392 9.359 9.167 8.841 8.581 - 7.533 7.382 7.192 7.120 7.265 7.584 7.890 7.953 7.651 7.081 6.537 6.337 6.626 7.272 7.951 8.356 8.387 8.190 8.013 8.009 8.139 8.235 8.163 7.949 7.768 7.800 8.082 8.470 8.736 8.729 8.478 8.159 7.973 8.006 8.185 8.341 - 6.374 6.788 7.365 7.792 7.929 7.874 7.843 7.950 8.106 8.116 7.889 7.571 7.456 7.737 8.306 8.781 8.778 8.214 7.403 6.851 6.894 7.461 8.147 8.521 8.439 8.106 7.859 7.881 8.065 8.152 7.987 7.675 7.482 7.595 7.939 8.235 - 5.884 6.081 6.363 6.600 6.749 6.884 7.111 7.452 7.795 7.963 7.854 7.539 7.222 7.079 7.121 7.176 7.042 6.675 6.264 6.111 6.407 7.068 7.774 8.190 8.190 7.927 7.678 7.620 7.699 7.696 7.425 6.887 6.257 5.744 5.446 5.331 - 4.305 4.754 5.617 6.761 7.898 8.647 8.707 8.057 7.034 6.178 5.925 6.329 7.033 7.519 7.479 7.022 6.566 6.501 6.888 7.448 7.818 7.865 7.771 7.830 8.144 8.507 8.580 8.207 7.569 7.041 6.868 6.953 6.966 6.658 6.109 5.674 - 7.883 7.540 7.186 7.233 7.836 8.749 9.456 9.522 8.890 7.926 7.169 6.980 7.335 7.902 8.325 8.471 8.467 8.517 8.696 8.898 8.979 8.932 8.918 9.115 9.518 9.898 9.972 9.650 9.126 8.718 8.595 8.632 8.526 8.088 7.446 6.967 - 6.941 6.469 5.933 5.815 6.283 7.036 7.536 7.416 6.760 6.034 5.735 6.022 6.626 7.079 7.074 6.675 6.238 6.124 6.448 7.031 7.573 7.868 7.911 7.827 7.735 7.674 7.631 7.621 7.701 7.897 8.114 8.138 7.777 7.033 6.169 5.588 - 6.147 6.026 5.958 6.133 6.562 7.011 7.147 6.774 6.010 5.244 4.900 5.152 5.808 6.428 6.615 6.269 5.631 5.113 5.033 5.438 6.118 6.766 7.158 7.242 7.099 6.857 6.622 6.455 6.382 6.387 6.402 6.325 6.075 5.662 5.215 4.922 - 6.215 5.832 5.442 5.491 6.124 7.045 7.717 7.744 7.140 6.298 5.697 5.580 5.829 6.107 6.126 5.845 5.476 5.320 5.575 6.232 7.097 7.911 8.475 8.721 8.714 8.593 8.483 8.430 8.378 8.219 7.864 7.304 6.627 5.967 5.455 5.179 - 6.276 6.039 5.916 6.264 7.072 7.882 8.118 7.541 6.457 5.514 5.226 5.626 6.283 6.670 6.551 6.116 5.780 5.843 6.299 6.893 7.361 7.608 7.723 7.841 8.010 8.170 8.234 8.185 8.081 7.969 7.811 7.489 6.905 6.101 5.296 4.787 - 4.536 5.042 5.793 6.484 6.988 7.363 7.667 7.796 7.555 6.901 6.115 5.675 5.901 6.666 7.454 7.749 7.419 6.797 6.394 6.512 7.074 7.773 8.331 8.651 8.753 8.642 8.303 7.802 7.354 7.203 7.389 7.636 7.524 6.853 5.871 5.146 - 4.169 5.473 7.275 8.532 8.656 7.823 6.712 5.953 5.733 5.831 5.951 6.006 6.125 6.426 6.829 7.077 6.963 6.528 6.063 5.922 6.297 7.114 8.095 8.891 9.228 9.002 8.332 7.534 6.988 6.929 7.269 7.622 7.555 6.914 5.979 5.296 - 5.420 6.396 7.743 8.670 8.721 8.001 7.002 6.211 5.840 5.825 6.019 6.335 6.741 7.170 7.491 7.594 7.502 7.370 7.360 7.520 7.771 8.015 8.238 8.479 8.727 8.861 8.740 8.371 7.974 7.824 8.004 8.277 8.256 7.737 6.923 6.310 - 5.543 6.732 8.157 8.722 8.085 6.853 5.962 5.856 6.212 6.390 6.116 5.707 5.674 6.148 6.736 6.931 6.650 6.338 6.523 7.284 8.155 8.568 8.388 8.008 7.930 8.259 8.623 8.579 8.087 7.555 7.424 7.714 7.999 7.850 7.284 6.770 - 5.842 6.626 7.695 8.403 8.397 7.790 6.995 6.382 6.060 5.917 5.824 5.768 5.826 6.021 6.242 6.313 6.145 5.819 5.537 5.491 5.761 6.305 7.002 7.691 8.188 8.331 8.083 7.605 7.211 7.172 7.499 7.895 7.957 7.503 6.748 6.174 - 6.692 7.075 7.577 7.870 7.798 7.443 6.999 6.581 6.159 5.657 5.107 4.685 4.589 4.854 5.280 5.553 5.455 5.024 4.531 4.329 4.661 5.541 6.750 7.910 8.635 8.692 8.141 7.342 6.781 6.775 7.248 7.758 7.796 7.176 6.199 5.473 - 4.945 5.979 7.317 8.029 7.650 6.471 5.273 4.737 4.990 5.603 5.992 5.875 5.419 5.030 4.975 5.170 5.284 5.047 4.516 4.083 4.217 5.131 6.593 8.016 8.776 8.574 7.616 6.503 5.886 6.076 6.863 7.659 7.888 7.371 6.449 5.748 - 6.507 7.380 8.403 8.708 7.962 6.613 5.514 5.256 5.749 6.364 6.465 5.884 4.985 4.308 4.140 4.339 4.525 4.438 4.155 4.033 4.443 5.491 6.912 8.191 8.821 8.575 7.643 6.559 5.920 6.043 6.761 7.515 7.723 7.180 6.218 5.485 - 7.609 7.762 8.088 8.539 8.936 9.046 8.759 8.201 7.665 7.389 7.372 7.402 7.263 6.936 6.610 6.479 6.545 6.610 6.486 6.229 6.155 6.595 7.576 8.717 9.445 9.393 8.660 7.752 7.221 7.299 7.763 8.124 7.976 7.271 6.344 5.700 - 6.293 6.933 8.008 9.146 9.921 10.042 9.516 8.680 8.002 7.800 8.040 8.395 8.497 8.199 7.643 7.099 6.740 6.545 6.391 6.229 6.162 6.351 6.846 7.499 8.046 8.293 8.239 8.053 7.928 7.935 8.003 7.999 7.841 7.557 7.258 7.068 - 6.395 6.860 7.654 8.526 9.176 9.376 9.078 8.461 7.840 7.493 7.500 7.713 7.878 7.811 7.507 7.101 6.737 6.460 6.224 6.003 5.883 6.031 6.555 7.357 8.128 8.523 8.396 7.913 7.438 7.274 7.430 7.618 7.485 6.904 6.104 5.529 - 5.195 5.663 6.404 7.134 7.607 7.709 7.461 6.978 6.422 5.960 5.725 5.765 5.994 6.217 6.220 5.911 5.384 4.871 4.605 4.678 5.013 5.444 5.843 6.176 6.480 6.777 7.028 7.153 7.096 6.871 6.549 6.208 5.901 5.648 5.460 5.358 - 5.373 5.622 6.248 7.267 8.359 8.948 8.588 7.339 5.808 4.771 4.651 5.263 6.003 6.320 6.085 5.588 5.226 5.175 5.316 5.422 5.411 5.423 5.668 6.211 6.882 7.393 7.541 7.343 6.992 6.695 6.542 6.476 6.382 6.201 5.977 5.821 - 5.883 5.420 5.018 5.253 6.218 7.391 8.024 7.725 6.743 5.756 5.337 5.565 6.062 6.372 6.329 6.107 5.977 6.020 6.086 5.993 5.766 5.665 5.967 6.691 7.529 8.044 7.983 7.458 6.836 6.455 6.377 6.374 6.141 5.563 4.832 4.321 - 4.845 4.774 4.744 4.889 5.257 5.737 6.112 6.189 5.951 5.595 5.425 5.647 6.216 6.847 7.196 7.079 6.586 6.000 5.618 5.595 5.911 6.445 7.064 7.647 8.071 8.218 8.044 7.646 7.234 6.996 6.947 6.891 6.575 5.915 5.115 4.564 - 2.957 3.475 4.401 5.511 6.493 7.058 7.079 6.653 6.034 5.483 5.139 5.018 5.094 5.359 5.792 6.285 6.634 6.657 6.360 5.984 5.873 6.216 6.902 7.593 7.983 8.010 7.872 7.815 7.918 8.032 7.924 7.480 6.795 6.087 5.552 5.278 - 4.052 4.694 5.829 7.153 8.260 8.790 8.598 7.825 6.809 5.871 5.171 4.714 4.478 4.500 4.827 5.393 5.959 6.239 6.122 5.783 5.577 5.760 6.286 6.850 7.129 7.028 6.710 6.411 6.227 6.068 5.794 5.391 5.000 4.781 4.759 4.813 - 3.330 3.849 4.660 5.419 5.835 5.800 5.421 4.930 4.540 4.325 4.218 4.102 3.930 3.774 3.762 3.955 4.269 4.517 4.546 4.366 4.159 4.162 4.488 5.028 5.509 5.672 5.437 4.948 4.461 4.166 4.065 3.997 3.775 3.346 2.842 2.500 - 5.473 5.155 4.815 4.741 4.928 5.065 4.844 4.261 3.638 3.320 3.362 3.493 3.408 3.085 2.821 2.942 3.463 4.038 4.260 4.033 3.663 3.592 3.994 4.612 4.976 4.797 4.195 3.578 3.297 3.394 3.617 3.654 3.366 2.851 2.330 2.013 - 5.395 5.103 4.710 4.457 4.455 4.608 4.706 4.596 4.308 4.024 3.911 3.975 4.043 3.923 3.584 3.218 3.090 3.316 3.743 4.061 4.059 3.805 3.594 3.685 4.061 4.417 4.413 3.972 3.356 2.960 2.968 3.201 3.270 2.929 2.306 1.816 - 3.867 4.555 5.291 5.372 4.665 3.699 3.173 3.334 3.804 3.988 3.648 3.111 2.923 3.319 4.017 4.492 4.460 4.091 3.780 3.739 3.826 3.745 3.409 3.057 3.022 3.392 3.888 4.111 3.889 3.410 3.020 2.909 2.986 3.032 2.952 2.842 - 3.838 4.438 5.019 4.932 4.104 3.109 2.641 2.901 3.466 3.748 3.560 3.265 3.371 4.003 4.763 5.101 4.820 4.215 3.755 3.642 3.693 3.617 3.380 3.238 3.430 3.856 4.121 3.915 3.350 2.887 2.892 3.261 3.494 3.178 2.416 1.774 - 5.172 4.895 4.594 4.576 4.962 5.566 6.008 5.966 5.404 4.608 4.008 3.913 4.335 5.009 5.579 5.808 5.674 5.318 4.916 4.572 4.302 4.089 3.926 3.825 3.790 3.804 3.852 3.945 4.108 4.330 4.511 4.489 4.139 3.493 2.776 2.303 - 5.131 5.067 5.228 5.904 7.067 8.310 9.106 9.152 8.543 7.653 6.873 6.435 6.407 6.776 7.469 8.282 8.858 8.821 8.037 6.780 5.623 5.085 5.285 5.891 6.402 6.530 6.390 6.343 6.642 7.186 7.557 7.312 6.292 4.743 3.208 2.260 - 3.835 4.549 5.749 7.076 8.197 8.933 9.286 9.367 9.270 9.004 8.532 7.895 7.303 7.079 7.455 8.348 9.321 9.781 9.340 8.087 6.574 5.494 5.270 5.826 6.697 7.373 7.642 7.667 7.769 8.094 8.434 8.341 7.467 5.884 4.142 3.001 - 3.200 4.301 5.962 7.465 8.364 8.685 8.753 8.848 8.973 8.916 8.510 7.849 7.285 7.202 7.753 8.737 9.690 10.112 9.717 8.582 7.135 5.976 5.586 6.068 7.089 8.088 8.636 8.697 8.589 8.645 8.851 8.793 7.979 6.325 4.380 3.058 - 2.675 3.937 5.844 7.561 8.546 8.779 8.614 8.417 8.308 8.188 7.946 7.640 7.494 7.727 8.377 9.251 9.999 10.268 9.850 8.794 7.433 6.295 5.865 6.308 7.339 8.378 8.932 8.924 8.695 8.649 8.828 8.796 7.991 6.269 4.197 2.774 - 4.059 5.038 6.483 7.733 8.406 8.582 8.617 8.795 9.104 9.301 9.168 8.721 8.219 7.976 8.166 8.718 9.357 9.731 9.564 8.795 7.647 6.576 6.057 6.307 7.137 8.060 8.635 8.773 8.744 8.861 9.092 8.982 7.999 6.065 3.811 2.285 - 4.570 5.412 6.691 7.874 8.618 8.916 8.982 9.022 9.086 9.094 8.963 8.698 8.398 8.210 8.276 8.672 9.324 9.944 10.097 9.444 8.048 6.479 5.544 5.753 6.927 8.291 9.035 8.927 8.431 8.225 8.518 8.776 8.159 6.328 3.913 2.194 - 2.081 3.515 5.659 7.565 8.666 9.005 8.997 8.999 9.065 9.048 8.839 8.496 8.175 7.996 8.021 8.311 8.916 9.731 10.373 10.312 9.269 7.575 6.101 5.694 6.536 7.972 9.021 9.162 8.704 8.399 8.643 9.022 8.654 7.066 4.794 3.124 - 3.741 5.040 6.742 7.854 8.111 8.078 8.461 9.338 10.075 9.965 8.957 7.740 7.131 7.394 8.129 8.781 9.181 9.552 10.038 10.336 9.928 8.703 7.303 6.708 7.376 8.754 9.723 9.612 8.821 8.405 8.965 9.923 9.947 8.218 5.379 3.202 - 3.648 4.785 6.235 7.122 7.317 7.467 8.255 9.644 10.837 11.010 10.066 8.700 7.745 7.486 7.599 7.696 7.819 8.321 9.281 10.141 10.094 8.905 7.335 6.615 7.367 8.972 10.068 9.767 8.462 7.432 7.575 8.480 8.774 7.455 4.973 2.993 - 3.946 4.431 5.152 5.864 6.556 7.409 8.505 9.609 10.268 10.158 9.351 8.255 7.304 6.707 6.483 6.653 7.309 8.412 9.554 10.049 9.421 7.903 6.439 6.027 6.916 8.361 9.216 8.901 7.872 7.153 7.338 7.978 7.969 6.608 4.371 2.654 - 4.538 4.635 4.881 5.375 6.203 7.310 8.419 9.114 9.101 8.433 7.503 6.753 6.373 6.238 6.168 6.212 6.643 7.612 8.806 9.510 9.133 7.773 6.270 5.606 6.126 7.258 8.017 7.857 7.121 6.649 6.925 7.539 7.530 6.303 4.302 2.770 - 3.671 4.587 5.700 6.322 6.490 6.864 7.899 9.184 9.688 8.740 6.781 5.083 4.664 5.413 6.294 6.418 5.916 5.739 6.586 8.059 8.946 8.394 6.808 5.559 5.718 7.045 8.226 8.152 6.977 5.924 6.003 6.929 7.343 6.164 3.771 1.821 - 5.267 4.975 4.716 4.955 5.981 7.642 9.309 10.183 9.792 8.341 6.614 5.455 5.213 5.589 6.004 6.143 6.203 6.602 7.466 8.382 8.696 8.104 6.978 6.107 6.051 6.696 7.400 7.577 7.182 6.649 6.381 6.312 5.979 5.042 3.735 2.769 - 4.382 4.693 5.259 6.027 6.977 8.047 9.029 9.578 9.399 8.486 7.186 6.012 5.319 5.141 5.299 5.646 6.193 6.972 7.812 8.297 8.052 7.110 6.013 5.468 5.816 6.756 7.589 7.783 7.352 6.742 6.333 6.059 5.510 4.412 3.023 2.033 - 3.801 3.940 4.406 5.374 6.753 8.125 8.942 8.869 8.017 6.882 6.022 5.695 5.752 5.848 5.797 5.754 6.047 6.818 7.780 8.357 8.126 7.198 6.197 5.821 6.322 7.323 8.127 8.249 7.732 7.005 6.436 6.018 5.443 4.500 3.375 2.590 - 4.029 4.411 5.152 6.164 7.250 8.123 8.500 8.253 7.514 6.622 5.946 5.663 5.680 5.764 5.774 5.797 6.058 6.656 7.382 7.808 7.607 6.858 6.041 5.700 6.027 6.718 7.221 7.170 6.636 5.992 5.532 5.205 4.709 3.848 2.807 2.078 - 5.455 5.097 4.843 5.209 6.290 7.609 8.426 8.273 7.288 6.093 5.319 5.166 5.345 5.427 5.269 5.142 5.437 6.234 7.113 7.431 6.852 5.681 4.695 4.568 5.354 6.447 7.059 6.817 6.001 5.247 4.975 5.059 5.002 4.442 3.528 2.822 - 4.484 4.760 5.307 6.086 6.970 7.707 7.972 7.540 6.482 5.220 4.327 4.163 4.622 5.217 5.481 5.343 5.166 5.376 6.015 6.630 6.637 5.859 4.750 4.078 4.315 5.251 6.179 6.473 6.055 5.364 4.893 4.742 4.609 4.170 3.471 2.924 - 4.795 4.970 5.209 5.401 5.539 5.705 5.950 6.190 6.239 5.958 5.388 4.740 4.256 4.070 4.169 4.474 4.909 5.391 5.781 5.889 5.606 5.037 4.505 4.348 4.666 5.220 5.618 5.616 5.301 4.963 4.805 4.734 4.460 3.807 2.951 2.335 - 5.544 5.280 5.038 5.145 5.669 6.341 6.741 6.609 6.026 5.324 4.822 4.608 4.534 4.413 4.217 4.109 4.276 4.735 5.269 5.576 5.494 5.113 4.699 4.477 4.475 4.543 4.514 4.362 4.214 4.205 4.317 4.353 4.082 3.451 2.680 2.149 - 3.324 3.475 3.838 4.451 5.230 5.944 6.315 6.170 5.569 4.789 4.171 3.930 4.047 4.325 4.555 4.661 4.722 4.854 5.077 5.272 5.271 4.996 4.531 4.064 3.767 3.694 3.802 4.021 4.303 4.599 4.797 4.720 4.230 3.377 2.442 1.828 - 6.102 5.905 5.475 4.878 4.355 4.189 4.439 4.831 4.951 4.611 4.042 3.703 3.874 4.400 4.856 4.960 4.835 4.853 5.209 5.672 5.777 5.300 4.530 4.044 4.176 4.682 4.956 4.610 3.865 3.354 3.504 4.095 4.424 3.967 2.907 2.024 - 5.084 5.107 5.087 4.999 4.934 5.017 5.242 5.394 5.203 4.605 3.869 3.425 3.525 4.032 4.535 4.708 4.564 4.395 4.446 4.665 4.759 4.510 4.027 3.677 3.753 4.196 4.641 4.750 4.498 4.143 3.923 3.779 3.420 2.649 1.657 0.945 - 5.353 5.012 4.654 4.633 5.001 5.447 5.547 5.132 4.429 3.880 3.783 4.074 4.418 4.523 4.386 4.268 4.426 4.853 5.257 5.297 4.866 4.199 3.698 3.636 3.977 4.435 4.707 4.687 4.487 4.280 4.123 3.900 3.450 2.744 1.976 1.469 - 4.983 4.456 3.823 3.562 3.805 4.251 4.463 4.267 3.896 3.754 4.030 4.515 4.792 4.613 4.127 3.753 3.813 4.256 4.705 4.767 4.356 3.744 3.336 3.364 3.746 4.197 4.454 4.438 4.241 3.992 3.742 3.451 3.062 2.588 2.138 1.860 - 3.625 3.467 3.287 3.266 3.498 3.896 4.228 4.259 3.923 3.401 3.016 3.021 3.423 3.990 4.428 4.599 4.586 4.569 4.631 4.680 4.559 4.229 3.853 3.681 3.827 4.155 4.378 4.292 3.937 3.534 3.270 3.132 2.939 2.553 2.049 1.682 - 5.523 4.364 2.859 2.015 2.297 3.338 4.303 4.555 4.092 3.434 3.131 3.332 3.765 4.064 4.117 4.122 4.333 4.777 5.198 5.280 4.933 4.382 3.989 3.965 4.220 4.454 4.398 4.000 3.432 2.931 2.627 2.484 2.376 2.212 2.008 1.862 - 5.061 4.815 4.420 4.035 3.796 3.746 3.801 3.808 3.675 3.458 3.341 3.489 3.900 4.381 4.693 4.735 4.620 4.563 4.672 4.838 4.825 4.488 3.930 3.444 3.294 3.504 3.852 4.039 3.912 3.527 3.059 2.634 2.267 1.921 1.607 1.408 - 6.054 5.273 4.320 3.889 4.171 4.725 4.902 4.424 3.603 3.036 3.067 3.524 3.937 4.003 3.858 3.896 4.345 4.992 5.342 5.048 4.233 3.412 3.080 3.330 3.814 4.047 3.795 3.218 2.702 2.534 2.704 2.955 3.005 2.757 2.350 2.048 - 4.833 4.116 3.178 2.620 2.702 3.203 3.669 3.812 3.700 3.612 3.727 3.961 4.085 3.995 3.842 3.893 4.256 4.734 4.950 4.661 3.969 3.264 2.926 3.062 3.452 3.747 3.724 3.408 2.995 2.681 2.528 2.474 2.417 2.306 2.169 2.074 - 5.429 4.673 3.751 3.337 3.638 4.263 4.613 4.408 3.876 3.472 3.431 3.593 3.631 3.436 3.243 3.379 3.881 4.377 4.374 3.699 2.695 1.972 1.942 2.521 3.240 3.638 3.589 3.311 3.109 3.104 3.173 3.107 2.801 2.326 1.862 1.581 - 3.903 3.801 3.680 3.667 3.851 4.208 4.583 4.766 4.636 4.255 3.840 3.598 3.571 3.607 3.513 3.239 2.945 2.866 3.096 3.480 3.731 3.667 3.364 3.088 3.060 3.266 3.482 3.471 3.187 2.791 2.494 2.372 2.333 2.244 2.078 1.938 - 3.760 3.276 2.627 2.238 2.360 2.903 3.511 3.810 3.667 3.266 2.967 3.036 3.465 4.000 4.339 4.357 4.163 3.981 3.950 4.024 4.043 3.892 3.611 3.355 3.249 3.286 3.340 3.287 3.113 2.907 2.763 2.680 2.577 2.384 2.134 1.954 - 3.966 3.934 3.863 3.763 3.675 3.646 3.678 3.714 3.686 3.590 3.516 3.582 3.839 4.208 4.536 4.712 4.741 4.714 4.701 4.672 4.524 4.193 3.745 3.346 3.142 3.149 3.252 3.305 3.248 3.120 2.985 2.848 2.655 2.370 2.048 1.830 - 4.896 4.316 3.646 3.430 3.796 4.335 4.454 3.897 2.980 2.358 2.508 3.375 4.426 5.068 5.051 4.577 4.063 3.799 3.784 3.811 3.695 3.421 3.119 2.935 2.915 2.991 3.052 3.018 2.875 2.662 2.451 2.321 2.327 2.464 2.658 2.797 - 5.561 4.749 3.846 3.614 4.153 4.809 4.798 3.943 2.837 2.312 2.697 3.571 4.199 4.206 3.857 3.716 4.039 4.516 4.586 4.008 3.115 2.531 2.616 3.168 3.636 3.617 3.166 2.677 2.488 2.607 2.789 2.810 2.658 2.485 2.403 2.397 - 4.303 4.410 4.516 4.516 4.412 4.304 4.270 4.280 4.230 4.066 3.873 3.796 3.891 4.033 4.011 3.733 3.331 3.069 3.106 3.345 3.518 3.432 3.152 2.943 3.011 3.306 3.550 3.488 3.113 2.667 2.411 2.406 2.481 2.436 2.241 2.057 - 3.770 3.671 3.584 3.639 3.880 4.203 4.416 4.353 3.989 3.471 3.041 2.900 3.107 3.556 4.050 4.407 4.539 4.469 4.294 4.118 4.009 3.981 3.993 3.977 3.864 3.622 3.288 2.953 2.723 2.648 2.687 2.720 2.636 2.404 2.112 1.909 - 4.280 3.754 3.057 2.626 2.658 3.026 3.450 3.738 3.878 3.933 3.901 3.717 3.395 3.116 3.139 3.555 4.144 4.503 4.362 3.832 3.324 3.210 3.505 3.860 3.869 3.418 2.772 2.334 2.311 2.578 2.823 2.829 2.611 2.339 2.154 2.080 - 3.731 3.625 3.550 3.637 3.860 4.034 3.963 3.624 3.199 2.951 3.022 3.346 3.718 3.957 4.016 3.963 3.882 3.801 3.702 3.585 3.490 3.458 3.463 3.419 3.253 2.995 2.784 2.772 2.998 3.331 3.544 3.453 3.028 2.406 1.810 1.451 - 4.686 4.091 3.398 3.181 3.610 4.306 4.661 4.332 3.516 2.779 2.613 3.073 3.791 4.297 4.366 4.121 3.849 3.742 3.777 3.817 3.790 3.754 3.815 3.972 4.081 3.960 3.566 3.059 2.709 2.686 2.924 3.158 3.114 2.713 2.143 1.733 - 5.253 4.233 2.963 2.360 2.759 3.679 4.255 3.944 2.940 1.964 1.679 2.217 3.171 3.982 4.350 4.336 4.156 3.934 3.644 3.257 2.890 2.763 3.009 3.506 3.926 3.967 3.589 3.036 2.651 2.616 2.834 3.025 2.942 2.543 2.014 1.646 - 5.029 4.434 3.757 3.581 4.046 4.713 4.916 4.316 3.195 2.254 2.084 2.738 3.734 4.451 4.574 4.253 3.885 3.757 3.847 3.925 3.815 3.568 3.401 3.479 3.749 3.976 3.943 3.631 3.232 2.976 2.931 2.951 2.805 2.391 1.843 1.453 - 4.303 3.864 3.385 3.321 3.794 4.471 4.827 4.565 3.859 3.217 3.083 3.502 4.106 4.431 4.276 3.838 3.507 3.536 3.837 4.089 4.028 3.672 3.306 3.231 3.513 3.926 4.137 3.966 3.506 3.024 2.737 2.662 2.645 2.536 2.329 2.159 - 4.156 3.507 2.781 2.642 3.294 4.308 4.971 4.850 4.119 3.389 3.208 3.653 4.321 4.684 4.503 3.953 3.431 3.218 3.310 3.494 3.573 3.522 3.462 3.510 3.661 3.789 3.762 3.543 3.212 2.892 2.665 2.531 2.445 2.361 2.277 2.220 - 4.381 4.365 4.357 4.387 4.447 4.474 4.367 4.046 3.538 2.998 2.657 2.690 3.091 3.665 4.126 4.275 4.100 3.756 3.434 3.225 3.096 2.966 2.813 2.719 2.797 3.085 3.485 3.805 3.876 3.654 3.235 2.791 2.465 2.307 2.277 2.293 - 2.995 3.193 3.430 3.544 3.522 3.490 3.546 3.626 3.542 3.185 2.684 2.357 2.457 2.954 3.535 3.848 3.769 3.469 3.235 3.222 3.354 3.449 3.416 3.331 3.332 3.459 3.595 3.584 3.376 3.074 2.822 2.665 2.527 2.314 2.042 1.842 - 3.260 2.919 2.513 2.367 2.596 3.026 3.357 3.408 3.241 3.075 3.077 3.240 3.434 3.566 3.685 3.922 4.334 4.789 5.033 4.869 4.323 3.636 3.107 2.892 2.931 3.027 3.013 2.860 2.662 2.530 2.492 2.477 2.388 2.190 1.944 1.775 - 3.819 3.778 3.766 3.840 3.954 3.972 3.768 3.344 2.846 2.479 2.381 2.567 2.955 3.443 3.937 4.341 4.541 4.443 4.053 3.513 3.048 2.830 2.875 3.049 3.178 3.178 3.091 3.010 2.977 2.939 2.810 2.551 2.213 1.894 1.670 1.562 - 4.428 4.082 3.682 3.571 3.851 4.301 4.553 4.380 3.855 3.275 2.933 2.936 3.188 3.515 3.783 3.936 3.938 3.743 3.328 2.765 2.236 1.952 2.023 2.393 2.872 3.250 3.401 3.307 3.022 2.630 2.232 1.933 1.815 1.889 2.071 2.216 - 3.322 3.255 3.258 3.490 3.983 4.569 4.954 4.885 4.332 3.524 2.846 2.617 2.913 3.539 4.160 4.497 4.473 4.200 3.861 3.580 3.362 3.146 2.903 2.678 2.564 2.613 2.774 2.914 2.897 2.675 2.319 1.974 1.766 1.736 1.819 1.903 - 4.048 3.134 2.029 1.605 2.192 3.343 4.216 4.246 3.560 2.823 2.669 3.208 3.980 4.354 4.022 3.193 2.391 2.054 2.259 2.749 3.176 3.343 3.285 3.167 3.138 3.242 3.423 3.582 3.633 3.529 3.270 2.902 2.501 2.147 1.895 1.767 - 5.388 4.164 2.678 2.053 2.659 3.860 4.596 4.294 3.310 2.568 2.761 3.791 4.913 5.363 4.940 4.056 3.319 3.056 3.167 3.342 3.374 3.272 3.149 3.051 2.928 2.739 2.543 2.462 2.550 2.724 2.826 2.764 2.577 2.384 2.269 2.230 - 2.952 2.816 2.886 3.457 4.388 5.129 5.178 4.534 3.736 3.405 3.718 4.281 4.510 4.162 3.534 3.160 3.306 3.730 3.928 3.602 2.937 2.426 2.444 2.941 3.523 3.801 3.683 3.377 3.147 3.082 3.069 2.944 2.655 2.284 1.965 1.788 - 4.967 4.651 4.172 3.769 3.658 3.894 4.322 4.644 4.611 4.195 3.621 3.211 3.163 3.433 3.803 4.053 4.096 3.968 3.730 3.412 3.054 2.784 2.781 3.129 3.668 4.027 3.878 3.216 2.414 1.966 2.101 2.593 2.950 2.827 2.317 1.863 - 3.409 3.154 2.949 3.123 3.711 4.382 4.683 4.389 3.671 2.957 2.613 2.714 3.061 3.399 3.612 3.743 3.862 3.932 3.826 3.461 2.925 2.459 2.302 2.526 2.983 3.409 3.586 3.453 3.098 2.676 2.312 2.065 1.936 1.892 1.893 1.904 - 5.773 4.962 3.965 3.511 3.826 4.459 4.670 4.042 2.823 1.722 1.365 1.875 2.859 3.772 4.296 4.455 4.431 4.329 4.117 3.745 3.308 3.026 3.081 3.436 3.835 3.982 3.757 3.292 2.850 2.623 2.603 2.617 2.483 2.152 1.744 1.463 - 3.978 3.686 3.308 3.084 3.101 3.226 3.233 2.994 2.589 2.251 2.197 2.480 2.982 3.506 3.903 4.118 4.169 4.090 3.913 3.680 3.458 3.312 3.262 3.265 3.246 3.160 3.026 2.909 2.864 2.884 2.898 2.824 2.627 2.342 2.063 1.891 - 4.411 4.263 4.180 4.349 4.694 4.889 4.636 3.954 3.213 2.858 3.070 3.637 4.141 4.288 4.094 3.798 3.627 3.628 3.700 3.740 3.744 3.762 3.799 3.778 3.623 3.359 3.117 3.013 3.030 3.028 2.873 2.573 2.277 2.139 2.174 2.257 - 4.678 4.800 5.057 5.419 5.752 5.851 5.550 4.852 3.973 3.241 2.923 3.077 3.534 4.015 4.296 4.316 4.164 3.981 3.859 3.796 3.741 3.660 3.569 3.519 3.544 3.616 3.662 3.602 3.409 3.124 2.836 2.632 2.557 2.595 2.684 2.751 - 2.768 3.145 3.655 4.013 4.117 4.083 4.094 4.205 4.300 4.229 3.979 3.701 3.581 3.677 3.892 4.083 4.193 4.264 4.336 4.363 4.247 3.977 3.703 3.642 3.881 4.264 4.486 4.339 3.891 3.420 3.170 3.144 3.130 2.929 2.564 2.269 - 3.200 3.030 2.906 3.078 3.606 4.262 4.650 4.480 3.791 2.964 2.478 2.590 3.162 3.780 4.064 3.937 3.633 3.470 3.578 3.823 3.979 3.960 3.904 4.017 4.330 4.620 4.585 4.117 3.439 2.938 2.849 3.060 3.220 3.058 2.629 2.263 - 2.402 2.583 2.924 3.372 3.839 4.197 4.321 4.149 3.758 3.362 3.206 3.410 3.865 4.285 4.393 4.118 3.638 3.244 3.127 3.253 3.436 3.512 3.470 3.425 3.473 3.590 3.658 3.594 3.446 3.339 3.340 3.362 3.228 2.846 2.335 1.966 - 5.243 4.865 4.362 4.006 3.858 3.761 3.558 3.293 3.187 3.393 3.790 4.041 3.891 3.425 3.024 3.044 3.493 4.021 4.225 3.995 3.595 3.401 3.556 3.855 3.956 3.702 3.262 2.969 3.016 3.297 3.508 3.406 2.975 2.398 1.900 1.625 - 4.379 4.413 4.307 3.927 3.384 2.997 3.024 3.421 3.857 3.996 3.780 3.461 3.354 3.557 3.888 4.083 4.045 3.906 3.857 3.942 4.027 3.965 3.770 3.606 3.602 3.690 3.656 3.359 2.911 2.604 2.644 2.942 3.175 3.079 2.700 2.361 - 6.230 5.455 4.473 3.948 4.093 4.530 4.644 4.119 3.192 2.440 2.299 2.757 3.423 3.877 3.961 3.790 3.550 3.311 3.039 2.735 2.537 2.627 3.051 3.625 4.035 4.058 3.714 3.218 2.811 2.593 2.512 2.466 2.399 2.324 2.272 2.250 - 5.726 4.913 3.841 3.192 3.260 3.781 4.207 4.166 3.730 3.285 3.174 3.432 3.818 4.061 4.083 3.989 3.911 3.857 3.735 3.493 3.214 3.060 3.119 3.303 3.408 3.283 2.951 2.584 2.360 2.331 2.401 2.428 2.328 2.123 1.903 1.766 - 5.252 4.416 3.353 2.816 3.153 4.072 4.893 5.057 4.504 3.654 3.072 3.094 3.669 4.461 5.085 5.288 5.029 4.451 3.817 3.405 3.389 3.732 4.196 4.480 4.411 4.055 3.638 3.359 3.237 3.139 2.934 2.641 2.412 2.384 2.533 2.688 - 3.845 3.648 3.414 3.357 3.582 3.980 4.259 4.130 3.539 2.770 2.311 2.533 3.413 4.505 5.226 5.240 4.672 3.978 3.592 3.624 3.849 3.949 3.801 3.553 3.456 3.614 3.882 3.985 3.744 3.219 2.646 2.269 2.184 2.318 2.522 2.659 - 5.248 4.752 4.108 3.734 3.792 4.090 4.262 4.087 3.659 3.297 3.275 3.617 4.100 4.430 4.448 4.197 3.846 3.556 3.403 3.380 3.437 3.516 3.569 3.573 3.545 3.538 3.588 3.662 3.648 3.437 3.024 2.549 2.217 2.149 2.285 2.435 - 4.039 3.975 3.929 3.947 3.955 3.816 3.491 3.143 3.041 3.334 3.906 4.456 4.741 4.763 4.715 4.751 4.812 4.688 4.255 3.659 3.227 3.193 3.479 3.754 3.720 3.375 2.987 2.831 2.928 3.041 2.916 2.533 2.120 1.931 2.001 2.139 - 4.508 4.312 4.012 3.721 3.497 3.328 3.172 3.028 2.952 3.015 3.238 3.560 3.888 4.159 4.375 4.561 4.702 4.717 4.519 4.117 3.656 3.360 3.369 3.633 3.914 3.953 3.661 3.190 2.835 2.810 3.080 3.376 3.389 3.012 2.427 1.995 - 4.733 4.104 3.356 3.075 3.431 4.057 4.393 4.168 3.613 3.227 3.337 3.839 4.331 4.484 4.306 4.077 4.062 4.271 4.489 4.503 4.306 4.085 4.022 4.121 4.208 4.102 3.780 3.397 3.150 3.124 3.242 3.349 3.336 3.198 3.018 2.895 - 3.320 3.483 3.599 3.446 3.003 2.504 2.270 2.472 3.011 3.612 4.031 4.210 4.258 4.314 4.420 4.505 4.475 4.307 4.075 3.898 3.865 3.992 4.226 4.465 4.587 4.499 4.192 3.778 3.452 3.379 3.579 3.895 4.098 4.055 3.830 3.629 - 4.291 3.695 2.939 2.544 2.716 3.221 3.609 3.596 3.262 2.948 2.962 3.365 3.975 4.538 4.885 4.968 4.810 4.472 4.077 3.819 3.880 4.290 4.851 5.239 5.228 4.862 4.425 4.216 4.329 4.607 4.802 4.784 4.614 4.444 4.366 4.357 - 4.613 3.814 2.745 2.080 2.179 2.893 3.749 4.308 4.423 4.227 3.948 3.751 3.694 3.765 3.903 3.994 3.912 3.645 3.385 3.469 4.122 5.204 6.203 6.558 6.085 5.160 4.471 4.502 5.188 5.992 6.356 6.112 5.536 5.043 4.833 4.812 - 4.941 4.656 4.250 3.949 3.903 4.105 4.423 4.688 4.793 4.742 4.618 4.529 4.540 4.639 4.740 4.738 4.587 4.356 4.222 4.362 4.826 5.461 5.981 6.143 5.919 5.528 5.298 5.441 5.914 6.455 6.763 6.686 6.284 5.756 5.302 5.051 - 3.271 3.561 4.016 4.460 4.754 4.853 4.798 4.668 4.532 4.437 4.423 4.530 4.778 5.126 5.459 5.632 5.554 5.261 4.924 4.766 4.934 5.399 5.965 6.370 6.442 6.202 5.853 5.661 5.801 6.244 6.772 7.102 7.048 6.636 6.089 5.711 - 3.573 3.862 4.235 4.451 4.414 4.233 4.114 4.188 4.424 4.682 4.840 4.885 4.885 4.909 4.966 5.020 5.041 5.038 5.044 5.093 5.209 5.428 5.783 6.265 6.773 7.137 7.220 7.039 6.782 6.688 6.868 7.214 7.489 7.519 7.342 7.161 - 4.477 4.391 4.343 4.437 4.626 4.728 4.592 4.254 3.926 3.826 4.002 4.319 4.607 4.832 5.099 5.509 6.008 6.392 6.481 6.303 6.096 6.118 6.428 6.837 7.077 7.034 6.848 6.794 7.048 7.543 8.023 8.233 8.081 7.673 7.226 6.945 - 4.979 4.446 3.693 3.150 3.093 3.487 4.032 4.376 4.348 4.058 3.803 3.862 4.315 5.008 5.666 6.074 6.197 6.170 6.181 6.335 6.593 6.816 6.879 6.758 6.556 6.433 6.516 6.825 7.264 7.678 7.925 7.938 7.741 7.431 7.130 6.948 - 5.340 4.717 4.098 4.140 4.904 5.765 5.950 5.202 3.987 3.084 2.961 3.499 4.232 4.825 5.297 5.832 6.452 6.923 7.001 6.740 6.503 6.635 7.129 7.612 7.708 7.407 7.095 7.186 7.724 8.335 8.561 8.270 7.733 7.343 7.257 7.321 - 3.975 3.853 3.735 3.781 4.062 4.495 4.884 5.045 4.934 4.689 4.552 4.711 5.177 5.767 6.208 6.304 6.061 5.682 5.464 5.635 6.238 7.106 7.939 8.440 8.447 8.010 7.377 6.883 6.794 7.167 7.817 8.417 8.683 8.542 8.169 7.869 - 3.898 4.152 4.409 4.398 4.082 3.708 3.607 3.922 4.498 5.030 5.321 5.430 5.579 5.925 6.399 6.764 6.835 6.663 6.514 6.663 7.171 7.817 8.248 8.219 7.747 7.090 6.575 6.421 6.641 7.080 7.516 7.774 7.786 7.606 7.361 7.194 - 3.145 3.612 4.173 4.401 4.171 3.757 3.581 3.858 4.442 4.983 5.244 5.284 5.358 5.658 6.125 6.515 6.630 6.500 6.358 6.441 6.796 7.255 7.578 7.632 7.466 7.245 7.125 7.178 7.382 7.657 7.901 8.013 7.931 7.672 7.350 7.128 - 4.934 4.569 4.174 4.077 4.269 4.414 4.219 3.765 3.476 3.728 4.475 5.262 5.620 5.471 5.169 5.144 5.521 6.053 6.427 6.578 6.714 7.023 7.406 7.535 7.203 6.605 6.233 6.449 7.136 7.770 7.873 7.431 6.874 6.659 6.858 7.137 - 5.197 4.666 3.972 3.542 3.526 3.729 3.843 3.746 3.587 3.607 3.890 4.292 4.604 4.758 4.864 5.065 5.369 5.652 5.827 5.966 6.247 6.740 7.278 7.571 7.472 7.151 6.977 7.189 7.670 8.035 7.981 7.564 7.147 7.064 7.320 7.602 - 4.049 3.630 3.081 2.771 2.893 3.360 3.920 4.348 4.561 4.596 4.511 4.340 4.136 4.020 4.144 4.573 5.196 5.765 6.071 6.101 6.041 6.117 6.397 6.733 6.890 6.750 6.419 6.147 6.143 6.433 6.864 7.228 7.397 7.377 7.265 7.175 - 4.004 4.045 4.136 4.271 4.412 4.505 4.516 4.468 4.422 4.441 4.546 4.719 4.932 5.170 5.424 5.660 5.820 5.866 5.827 5.811 5.939 6.246 6.634 6.927 6.993 6.853 6.673 6.647 6.865 7.241 7.575 7.678 7.486 7.085 6.656 6.385 - 4.376 4.278 4.168 4.154 4.284 4.497 4.656 4.649 4.490 4.338 4.407 4.806 5.432 6.000 6.220 5.988 5.472 5.021 4.959 5.403 6.214 7.095 7.746 7.984 7.787 7.279 6.683 6.265 6.228 6.610 7.225 7.736 7.839 7.467 6.853 6.396 - 4.464 4.248 4.018 3.998 4.234 4.548 4.681 4.514 4.167 3.914 3.985 4.405 4.991 5.480 5.674 5.538 5.193 4.856 4.754 5.031 5.667 6.450 7.061 7.240 6.949 6.406 5.950 5.821 6.018 6.331 6.528 6.516 6.375 6.246 6.202 6.210 - 6.138 5.513 4.734 4.338 4.475 4.816 4.880 4.493 3.945 3.740 4.143 4.949 5.648 5.834 5.500 4.986 4.673 4.706 4.954 5.198 5.332 5.395 5.454 5.499 5.453 5.293 5.127 5.137 5.430 5.928 6.398 6.608 6.468 6.072 5.628 5.344 - 5.177 5.014 4.842 4.816 4.920 4.963 4.735 4.210 3.610 3.261 3.375 3.912 4.641 5.314 5.813 6.163 6.425 6.602 6.638 6.505 6.270 6.083 6.077 6.272 6.568 6.815 6.908 6.832 6.639 6.395 6.143 5.902 5.684 5.506 5.381 5.319 - 4.646 4.287 3.890 3.828 4.207 4.774 5.102 4.925 4.331 3.689 3.377 3.547 4.084 4.754 5.383 5.920 6.361 6.655 6.705 6.469 6.052 5.694 5.622 5.887 6.323 6.666 6.738 6.563 6.318 6.175 6.157 6.127 5.913 5.466 4.933 4.568 - 5.329 4.864 4.198 3.708 3.658 4.026 4.503 4.692 4.382 3.717 3.120 3.001 3.476 4.278 4.959 5.206 5.019 4.651 4.364 4.243 4.202 4.141 4.074 4.098 4.252 4.424 4.432 4.205 3.885 3.716 3.828 4.091 4.210 3.992 3.534 3.161 - 5.568 5.436 5.111 4.586 4.005 3.605 3.538 3.727 3.913 3.871 3.606 3.351 3.356 3.662 4.054 4.240 4.097 3.757 3.484 3.445 3.591 3.731 3.716 3.554 3.377 3.307 3.361 3.471 3.560 3.602 3.596 3.515 3.310 2.973 2.593 2.338 - 5.927 5.558 5.234 5.341 5.797 6.076 5.696 4.700 3.663 3.212 3.507 4.167 4.665 4.793 4.749 4.822 5.047 5.211 5.178 5.145 5.499 6.370 7.354 7.757 7.194 5.996 5.005 4.898 5.643 6.581 7.057 6.998 6.903 7.282 8.100 8.788 - 5.896 5.313 4.652 4.446 4.747 5.089 4.934 4.181 3.248 2.693 2.747 3.197 3.680 4.033 4.346 4.718 5.031 5.052 4.758 4.511 4.801 5.760 6.914 7.504 7.130 6.139 5.363 5.405 6.126 6.818 6.898 6.471 6.213 6.692 7.765 8.659 - 5.132 4.487 3.720 3.409 3.673 4.079 4.047 3.398 2.544 2.164 2.631 3.701 4.706 5.083 4.770 4.162 3.716 3.569 3.509 3.268 2.850 2.562 2.741 3.413 4.208 4.613 4.357 3.615 2.877 2.588 2.844 3.366 3.738 3.725 3.419 3.134 - 3.116 3.249 3.583 4.116 4.660 4.897 4.600 3.847 3.029 2.611 2.823 3.515 4.280 4.745 4.795 4.575 4.309 4.113 3.951 3.753 3.539 3.434 3.557 3.891 4.262 4.466 4.427 4.262 4.194 4.383 4.801 5.250 5.508 5.484 5.275 5.088 - 5.408 4.821 4.117 3.826 4.080 4.496 4.517 3.893 2.903 2.143 2.073 2.700 3.633 4.413 4.808 4.868 4.748 4.528 4.187 3.726 3.268 3.021 3.121 3.522 4.034 4.482 4.827 5.155 5.551 5.980 6.287 6.309 5.997 5.462 4.917 4.579 - 5.242 5.123 5.004 5.013 5.158 5.283 5.174 4.734 4.091 3.549 3.386 3.648 4.107 4.427 4.411 4.141 3.886 3.858 4.026 4.157 4.035 3.680 3.341 3.276 3.508 3.785 3.810 3.522 3.181 3.151 3.563 4.160 4.487 4.270 3.669 3.163 - 5.033 4.669 4.312 4.352 4.826 5.348 5.421 4.862 3.970 3.288 3.179 3.559 4.010 4.151 3.934 3.635 3.568 3.799 4.107 4.204 3.996 3.671 3.522 3.698 4.076 4.373 4.371 4.080 3.706 3.467 3.424 3.451 3.361 3.070 2.677 2.396 - 6.310 6.059 5.747 5.616 5.769 6.077 6.246 6.037 5.455 4.778 4.370 4.414 4.768 5.088 5.107 4.855 4.615 4.658 4.985 5.322 5.376 5.132 4.889 5.009 5.568 6.258 6.629 6.480 6.028 5.707 5.760 5.998 5.972 5.402 4.486 3.786 - 12.298 12.027 11.617 11.245 11.022 10.898 10.692 10.227 9.498 8.720 8.199 8.097 8.289 8.461 8.386 8.144 8.072 8.454 9.225 9.957 10.192 9.838 9.285 9.103 9.573 10.446 11.152 11.279 10.898 10.474 10.434 10.817 11.281 11.460 11.303 11.080 - 13.360 13.943 14.649 14.924 14.531 13.661 12.693 11.876 11.213 10.622 10.136 9.904 10.011 10.327 10.597 10.703 10.816 11.247 12.102 13.079 13.651 13.506 12.843 12.243 12.195 12.711 13.358 13.677 13.579 13.367 13.373 13.608 13.758 13.527 12.976 12.509 - 13.651 14.398 15.424 16.117 16.115 15.459 14.449 13.401 12.513 11.899 11.643 11.749 12.056 12.275 12.205 11.969 11.994 12.674 13.972 15.335 16.065 15.870 15.102 14.468 14.449 14.945 15.460 15.630 15.555 15.627 16.003 16.299 15.845 14.346 12.321 10.863 - 14.029 14.855 16.002 16.814 16.914 16.348 15.423 14.436 13.547 12.851 12.459 12.434 12.664 12.856 12.769 12.493 12.470 13.154 14.558 16.115 17.047 16.961 16.169 15.420 15.290 15.763 16.368 16.696 16.781 16.954 17.341 17.548 16.919 15.194 12.953 11.364 - 13.851 14.875 16.254 17.163 17.187 16.495 15.528 14.596 13.755 12.998 12.461 12.337 12.611 12.944 12.945 12.606 12.439 13.072 14.622 16.433 17.510 17.327 16.275 15.343 15.277 16.009 16.837 17.177 17.101 17.157 17.632 18.060 17.534 15.607 12.937 10.996 - 13.756 14.852 16.318 17.261 17.249 16.482 15.448 14.474 13.592 12.775 12.171 12.016 12.322 12.734 12.803 12.478 12.282 12.898 14.488 16.395 17.576 17.461 16.440 15.529 15.498 16.251 17.039 17.258 17.039 17.022 17.555 18.147 17.793 15.958 13.289 11.316 - 13.677 14.809 16.296 17.203 17.106 16.266 15.228 14.309 13.480 12.652 11.975 11.751 12.062 12.556 12.724 12.436 12.183 12.683 14.162 16.001 17.159 17.050 16.060 15.211 15.251 16.031 16.756 16.836 16.491 16.464 17.138 17.931 17.696 15.809 12.962 10.837 - 13.690 14.657 15.894 16.564 16.312 15.404 14.358 13.478 12.734 12.030 11.475 11.313 11.598 12.018 12.153 11.934 11.827 12.438 13.873 15.483 16.328 15.983 14.956 14.255 14.502 15.397 16.070 15.977 15.454 15.357 16.094 17.040 16.959 15.170 12.357 10.234 - 12.616 13.186 13.904 14.269 14.090 13.572 13.074 12.794 12.664 12.508 12.247 11.930 11.609 11.246 10.808 10.432 10.441 11.089 12.257 13.412 13.966 13.752 13.174 12.855 13.084 13.570 13.765 13.454 13.025 13.114 13.921 14.865 14.975 13.754 11.737 10.201 - 12.757 12.753 12.522 11.869 10.868 9.862 9.209 8.999 9.014 8.938 8.618 8.139 7.680 7.348 7.145 7.075 7.218 7.657 8.313 8.913 9.166 9.022 8.734 8.634 8.808 9.007 8.907 8.507 8.225 8.560 9.554 10.602 10.842 9.874 8.194 6.903 - 12.075 12.032 11.668 10.770 9.494 8.315 7.637 7.452 7.391 7.100 6.558 6.026 5.715 5.567 5.391 5.203 5.342 6.151 7.507 8.715 8.991 8.155 6.866 6.112 6.367 7.191 7.689 7.405 6.803 6.809 7.825 9.156 9.495 8.094 5.584 3.627 - 12.786 12.432 11.677 10.593 9.463 8.629 8.196 7.907 7.374 6.467 5.481 4.869 4.801 4.986 4.989 4.731 4.648 5.277 6.635 8.024 8.532 7.838 6.556 5.746 6.001 6.939 7.604 7.396 6.658 6.313 6.904 7.943 8.273 7.142 5.019 3.337 - 12.371 12.014 11.290 10.287 9.243 8.427 7.927 7.575 7.112 6.453 5.776 5.328 5.143 4.998 4.680 4.322 4.385 5.238 6.687 7.955 8.239 7.396 6.122 5.399 5.667 6.468 6.923 6.595 5.929 5.809 6.626 7.745 7.962 6.592 4.222 2.391 - 11.872 11.896 11.745 11.220 10.305 9.189 8.096 7.147 6.374 5.846 5.716 6.081 6.800 7.489 7.776 7.619 7.351 7.386 7.807 8.269 8.315 7.853 7.295 7.196 7.701 8.343 8.428 7.707 6.687 6.248 6.869 8.158 9.144 9.112 8.224 7.374 - 11.854 12.617 13.463 13.627 12.904 11.761 10.868 10.521 10.496 10.409 10.159 9.992 10.159 10.578 10.888 10.849 10.651 10.748 11.373 12.209 12.624 12.272 11.484 11.017 11.361 12.256 12.914 12.757 11.981 11.395 11.655 12.640 13.553 13.671 13.021 12.337 - 12.346 12.779 13.289 13.464 13.154 12.538 11.915 11.440 11.075 10.744 10.485 10.422 10.580 10.792 10.845 10.736 10.769 11.310 12.403 13.608 14.277 14.068 13.256 12.526 12.425 12.934 13.557 13.804 13.636 13.443 13.622 14.165 14.666 14.729 14.364 13.980 - 12.629 13.600 14.813 15.403 15.028 14.028 13.024 12.376 12.011 11.696 11.381 11.232 11.357 11.583 11.603 11.365 11.260 11.822 13.168 14.734 15.640 15.421 14.453 13.634 13.603 14.194 14.662 14.457 13.779 13.380 13.777 14.659 15.102 14.440 12.956 11.733 - 13.321 14.278 15.499 16.164 15.940 15.110 14.182 13.404 12.684 11.905 11.234 11.031 11.444 12.136 12.518 12.317 11.913 12.058 13.167 14.849 16.158 16.368 15.585 14.617 14.241 14.547 14.973 14.955 14.511 14.189 14.435 15.040 15.266 14.564 13.190 12.083 - 13.437 14.456 15.750 16.444 16.194 15.331 14.420 13.726 13.103 12.347 11.572 11.170 11.385 11.978 12.387 12.283 11.953 12.092 13.131 14.750 16.065 16.352 15.665 14.749 14.363 14.634 15.056 15.083 14.693 14.360 14.478 14.840 14.772 13.801 12.236 11.034 - 13.339 14.428 15.804 16.531 16.260 15.377 14.517 13.959 13.501 12.854 12.081 11.589 11.683 12.179 12.541 12.429 12.108 12.242 13.239 14.764 15.946 16.120 15.421 14.647 14.520 15.049 15.592 15.545 14.945 14.397 14.390 14.720 14.627 13.568 11.860 10.547 - 13.119 14.246 15.631 16.274 15.844 14.821 13.931 13.467 13.145 12.577 11.790 11.242 11.316 11.864 12.315 12.271 11.971 12.104 13.107 14.634 15.768 15.817 14.946 14.030 13.853 14.410 14.993 14.935 14.284 13.702 13.721 14.101 14.002 12.823 10.923 9.463 - 12.637 13.673 14.882 15.290 14.611 13.388 12.404 11.979 11.823 11.503 10.974 10.609 10.725 11.163 11.421 11.224 10.920 11.211 12.425 14.054 15.082 14.862 13.720 12.682 12.548 13.188 13.733 13.477 12.593 11.951 12.200 13.036 13.413 12.548 10.759 9.301 - 11.651 12.021 12.384 12.329 11.768 10.969 10.268 9.776 9.370 8.932 8.546 8.397 8.510 8.649 8.547 8.265 8.259 8.994 10.419 11.841 12.410 11.832 10.660 9.839 9.885 10.453 10.715 10.202 9.305 8.918 9.538 10.685 11.239 10.452 8.704 7.271 - 12.335 12.173 11.630 10.570 9.207 8.029 7.415 7.322 7.337 7.069 6.478 5.839 5.407 5.161 4.907 4.619 4.607 5.270 6.619 8.072 8.810 8.433 7.328 6.365 6.169 6.614 7.007 6.789 6.083 5.561 5.773 6.579 7.254 7.171 6.407 5.682 - 11.465 11.402 10.891 9.629 7.858 6.339 5.803 6.371 7.443 8.174 8.099 7.384 6.547 5.970 5.663 5.453 5.302 5.409 5.963 6.848 7.628 7.868 7.497 6.865 6.421 6.346 6.470 6.524 6.450 6.435 6.650 6.987 7.102 6.743 6.048 5.491 - 10.803 10.935 10.829 10.138 8.933 7.727 7.073 7.114 7.485 7.635 7.273 6.532 5.765 5.219 4.903 4.736 4.746 5.075 5.756 6.539 6.990 6.833 6.206 5.584 5.394 5.681 6.120 6.359 6.351 6.355 6.617 7.075 7.380 7.244 6.747 6.305 - 8.983 9.160 9.277 9.069 8.481 7.719 7.073 6.696 6.508 6.314 6.002 5.637 5.373 5.298 5.349 5.391 5.352 5.286 5.303 5.440 5.612 5.690 5.624 5.494 5.434 5.504 5.643 5.732 5.721 5.683 5.760 6.046 6.515 7.038 7.469 7.706 - 9.353 9.759 10.090 9.799 8.744 7.307 6.077 5.404 5.201 5.136 4.981 4.781 4.712 4.823 4.941 4.847 4.540 4.294 4.434 5.030 5.791 6.281 6.272 5.918 5.606 5.626 5.947 6.284 6.373 6.202 6.020 6.127 6.657 7.483 8.306 8.812 - 9.143 9.656 9.971 9.350 7.766 5.989 4.956 5.001 5.629 6.020 5.752 5.086 4.599 4.573 4.762 4.713 4.305 3.920 4.084 4.918 5.953 6.500 6.245 5.518 5.003 5.168 5.923 6.774 7.275 7.350 7.243 7.220 7.339 7.485 7.553 7.556 - 10.512 10.498 10.235 9.562 8.667 8.019 7.983 8.467 8.977 9.034 8.588 8.037 7.841 8.092 8.457 8.508 8.134 7.629 7.389 7.549 7.884 8.083 8.068 8.061 8.327 8.879 9.449 9.762 9.813 9.857 10.128 10.561 10.825 10.652 10.133 9.685 - 11.543 11.830 12.058 11.878 11.285 10.630 10.283 10.295 10.377 10.215 9.792 9.399 9.320 9.532 9.723 9.615 9.263 9.018 9.178 9.678 10.139 10.234 10.018 9.880 10.170 10.856 11.548 11.881 11.859 11.830 12.117 12.668 13.091 13.040 12.575 12.136 - 11.387 12.172 13.114 13.495 13.089 12.264 11.562 11.208 11.006 10.674 10.202 9.849 9.794 9.877 9.742 9.288 8.932 9.312 10.667 12.453 13.666 13.629 12.581 11.499 11.294 12.082 13.171 13.743 13.570 13.133 13.076 13.570 14.199 14.433 14.174 13.823 - 12.718 13.571 14.642 15.182 14.896 14.074 13.220 12.593 12.096 11.552 11.016 10.749 10.902 11.279 11.496 11.402 11.319 11.786 12.990 14.452 15.321 15.088 14.053 13.104 12.970 13.612 14.319 14.398 13.812 13.171 13.113 13.694 14.359 14.511 14.096 13.624 - 13.401 14.142 15.137 15.782 15.766 15.200 14.399 13.602 12.887 12.299 11.967 12.017 12.365 12.668 12.577 12.102 11.720 12.027 13.200 14.750 15.839 15.935 15.230 14.448 14.223 14.597 15.093 15.244 15.043 14.880 15.044 15.326 15.156 14.178 12.711 11.612 - 13.549 14.464 15.706 16.532 16.548 15.873 14.899 13.947 13.132 12.487 12.108 12.100 12.394 12.688 12.676 12.384 12.248 12.774 14.030 15.479 16.349 16.269 15.586 15.051 15.145 15.681 16.047 15.863 15.376 15.201 15.613 16.132 15.850 14.296 12.023 10.343 - 13.547 14.525 15.861 16.771 16.832 16.161 15.176 14.232 13.460 12.884 12.564 12.574 12.830 13.047 12.960 12.635 12.528 13.129 14.473 15.986 16.876 16.777 16.052 15.468 15.512 15.995 16.300 16.048 15.500 15.282 15.677 16.203 15.942 14.410 12.152 10.479 - 13.434 14.477 15.914 16.917 17.025 16.346 15.321 14.342 13.574 13.036 12.759 12.777 12.992 13.142 13.002 12.668 12.589 13.215 14.543 15.988 16.789 16.630 15.914 15.409 15.569 16.143 16.463 16.123 15.400 14.985 15.251 15.800 15.746 14.556 12.656 11.210 - 13.488 14.494 15.857 16.758 16.751 15.959 14.839 13.795 13.004 12.494 12.286 12.381 12.635 12.769 12.601 12.318 12.429 13.346 14.913 16.367 16.884 16.270 15.167 14.533 14.811 15.559 15.897 15.373 14.430 13.987 14.508 15.440 15.619 14.341 12.117 10.388 - 13.497 14.191 15.175 15.894 15.952 15.295 14.180 12.997 12.100 11.676 11.697 11.922 12.015 11.773 11.331 11.157 11.744 13.173 14.908 16.071 16.065 15.057 13.892 13.442 13.914 14.720 15.025 14.523 13.722 13.469 14.120 15.121 15.428 14.437 12.602 11.161 - 13.016 13.584 14.315 14.693 14.462 13.773 13.032 12.594 12.527 12.614 12.536 12.090 11.310 10.463 9.936 10.068 10.956 12.342 13.675 14.387 14.230 13.466 12.693 12.428 12.734 13.220 13.417 13.218 12.979 13.164 13.841 14.502 14.420 13.291 11.596 10.345 - 12.867 13.628 14.687 15.424 15.442 14.757 13.707 12.693 11.964 11.560 11.377 11.265 11.106 10.886 10.735 10.894 11.558 12.660 13.804 14.449 14.290 13.530 12.774 12.591 13.065 13.746 14.063 13.845 13.483 13.548 14.194 14.909 14.883 13.733 11.946 10.608 - 13.719 13.997 14.553 15.237 15.654 15.338 14.117 12.370 10.880 10.327 10.790 11.679 12.190 11.940 11.271 10.965 11.589 13.011 14.474 15.176 14.875 14.041 13.443 13.529 14.106 14.567 14.446 13.835 13.295 13.359 14.039 14.758 14.790 13.854 12.397 11.316 - 13.991 14.303 14.869 15.502 15.871 15.635 14.687 13.303 12.038 11.384 11.427 11.797 11.965 11.687 11.221 11.139 11.846 13.205 14.585 15.305 15.150 14.514 14.067 14.210 14.756 15.119 14.845 14.026 13.253 13.105 13.620 14.194 14.040 12.848 11.116 9.852 - 13.935 14.402 15.133 15.797 16.061 15.730 14.838 13.668 12.638 12.100 12.138 12.497 12.747 12.594 12.131 11.816 12.141 13.217 14.613 15.612 15.729 15.081 14.290 13.993 14.344 14.927 15.164 14.837 14.268 13.980 14.152 14.375 13.975 12.649 10.850 9.556 - 13.873 14.529 15.460 16.168 16.329 15.921 15.127 14.175 13.269 12.599 12.322 12.444 12.747 12.888 12.689 12.369 12.435 13.257 14.659 15.940 16.382 15.848 14.919 14.425 14.733 15.453 15.832 15.474 14.714 14.264 14.457 14.820 14.434 12.813 10.504 8.808 - 13.667 14.483 15.538 16.157 16.071 15.511 14.871 14.313 13.730 13.027 12.365 12.053 12.201 12.545 12.689 12.558 12.562 13.224 14.588 16.007 16.611 16.078 14.979 14.307 14.598 15.445 15.908 15.440 14.433 13.822 14.098 14.689 14.383 12.487 9.647 7.527 - 13.766 14.492 15.366 15.731 15.391 14.692 14.112 13.805 13.523 12.971 12.173 11.487 11.249 11.463 11.852 12.212 12.645 13.399 14.470 15.426 15.719 15.221 14.442 14.121 14.549 15.255 15.444 14.782 13.782 13.337 13.792 14.451 14.080 12.043 9.069 6.873 - 12.975 13.741 14.626 14.879 14.267 13.218 12.416 12.219 12.426 12.532 12.205 11.527 10.865 10.548 10.676 11.178 11.952 12.883 13.762 14.272 14.188 13.620 13.038 12.934 13.389 13.946 13.987 13.300 12.309 11.702 11.750 11.967 11.479 9.847 7.603 5.974 - 10.590 11.649 12.717 12.636 11.173 9.233 8.079 8.281 9.307 10.076 9.916 9.073 8.370 8.419 9.119 9.855 10.110 9.891 9.606 9.594 9.813 9.939 9.731 9.249 8.733 8.329 7.984 7.602 7.244 7.107 7.257 7.431 7.173 6.250 4.968 4.033 - 10.192 10.958 11.627 11.272 9.757 7.870 6.625 6.404 6.710 6.719 6.075 5.188 4.795 5.259 6.276 7.206 7.666 7.771 7.869 8.078 8.151 7.784 7.010 6.237 5.875 5.944 6.073 5.908 5.497 5.239 5.428 5.866 5.973 5.341 4.194 3.287 - 11.038 11.550 11.882 11.310 9.788 8.020 6.861 6.610 6.842 6.898 6.512 5.998 5.856 6.249 6.874 7.313 7.452 7.517 7.720 7.938 7.801 7.126 6.219 5.660 5.751 6.169 6.231 5.573 4.568 4.036 4.462 5.459 6.043 5.509 4.126 2.958 - 10.495 10.927 11.132 10.448 8.887 7.182 6.163 6.042 6.290 6.185 5.510 4.718 4.461 4.956 5.798 6.371 6.424 6.241 6.275 6.649 7.032 6.996 6.459 5.763 5.315 5.187 5.096 4.782 4.357 4.231 4.655 5.359 5.697 5.223 4.162 3.289 - 9.213 9.671 10.076 9.853 8.856 7.477 6.307 5.677 5.488 5.426 5.298 5.171 5.206 5.434 5.725 5.964 6.207 6.611 7.188 7.676 7.704 7.149 6.320 5.748 5.736 6.086 6.283 5.983 5.347 4.893 4.981 5.440 5.696 5.315 4.442 3.717 - 9.447 9.304 8.845 7.968 6.879 6.038 5.832 6.245 6.857 7.162 6.951 6.434 6.010 5.928 6.130 6.381 6.514 6.553 6.619 6.760 6.901 6.949 6.908 6.865 6.857 6.773 6.453 5.885 5.309 5.055 5.249 5.642 5.782 5.393 4.645 4.051 - 8.714 9.394 10.070 10.005 9.106 8.049 7.725 8.478 9.801 10.743 10.668 9.724 8.669 8.238 8.612 9.379 9.949 10.022 9.739 9.465 9.461 9.729 10.074 10.287 10.243 9.916 9.355 8.687 8.104 7.781 7.752 7.847 7.798 7.454 6.930 6.536 - 8.356 8.712 8.931 8.505 7.438 6.326 5.901 6.425 7.454 8.177 8.039 7.148 6.137 5.648 5.865 6.452 6.891 6.896 6.575 6.267 6.244 6.521 6.898 7.128 7.066 6.718 6.207 5.703 5.363 5.264 5.348 5.436 5.332 4.967 4.477 4.127 - 8.685 7.914 6.855 6.124 6.022 6.331 6.497 6.065 5.052 3.949 3.355 3.527 4.185 4.739 4.758 4.294 3.813 3.790 4.309 5.006 5.389 5.245 4.792 4.447 4.446 4.657 4.741 4.511 4.125 3.933 4.127 4.520 4.684 4.343 3.649 3.089 - 6.327 6.151 5.882 5.638 5.497 5.458 5.451 5.390 5.226 4.974 4.690 4.439 4.254 4.142 4.098 4.133 4.273 4.535 4.889 5.245 5.474 5.459 5.168 4.684 4.182 3.853 3.808 4.026 4.354 4.590 4.572 4.251 3.699 3.069 2.534 2.229 - 4.034 4.600 5.338 5.768 5.672 5.201 4.679 4.319 4.119 3.978 3.876 3.909 4.139 4.465 4.665 4.601 4.386 4.307 4.568 5.069 5.460 5.429 4.971 4.392 4.041 4.027 4.166 4.190 4.008 3.757 3.628 3.649 3.661 3.495 3.174 2.910 - 3.869 4.431 5.159 5.567 5.434 4.927 4.410 4.141 4.105 4.105 3.982 3.746 3.528 3.427 3.438 3.499 3.602 3.817 4.199 4.682 5.077 5.199 5.009 4.630 4.239 3.933 3.704 3.519 3.410 3.450 3.643 3.848 3.852 3.548 3.065 2.700 - 4.660 4.849 5.029 4.994 4.718 4.352 4.057 3.852 3.647 3.415 3.299 3.499 4.036 4.642 4.929 4.727 4.268 4.027 4.322 5.031 5.684 5.857 5.498 4.922 4.489 4.292 4.149 3.874 3.521 3.341 3.495 3.817 3.908 3.502 2.754 2.161 - 5.511 5.103 4.650 4.534 4.797 5.091 5.002 4.445 3.765 3.451 3.714 4.303 4.722 4.658 4.235 3.894 4.009 4.581 5.258 5.639 5.581 5.260 4.961 4.819 4.736 4.524 4.119 3.673 3.427 3.503 3.778 3.959 3.791 3.245 2.557 2.084 - 4.873 4.800 4.759 4.845 5.029 5.143 5.000 4.561 3.999 3.597 3.535 3.752 3.983 3.969 3.675 3.334 3.265 3.609 4.191 4.635 4.643 4.233 3.726 3.501 3.707 4.160 4.499 4.468 4.084 3.585 3.204 2.995 2.837 2.600 2.294 2.067 - 6.073 5.269 4.199 3.540 3.624 4.213 4.714 4.654 4.047 3.364 3.147 3.559 4.250 4.636 4.380 3.668 3.073 3.095 3.766 4.620 5.061 4.814 4.107 3.451 3.232 3.448 3.784 3.929 3.819 3.618 3.495 3.418 3.198 2.706 2.067 1.607 - 6.035 5.258 4.218 3.553 3.561 4.022 4.435 4.432 4.037 3.576 3.367 3.469 3.689 3.801 3.750 3.671 3.728 3.954 4.224 4.378 4.356 4.226 4.092 3.989 3.874 3.698 3.491 3.354 3.374 3.529 3.680 3.653 3.360 2.861 2.339 2.009 - 3.699 3.979 4.418 4.798 4.882 4.538 3.854 3.146 2.805 3.068 3.840 4.729 5.279 5.251 4.760 4.180 3.879 3.991 4.361 4.696 4.773 4.572 4.242 3.966 3.834 3.814 3.814 3.765 3.666 3.550 3.444 3.332 3.187 3.000 2.812 2.691 - 4.305 4.174 4.103 4.268 4.621 4.880 4.756 4.219 3.565 3.212 3.379 3.912 4.410 4.533 4.258 3.868 3.713 3.932 4.372 4.734 4.807 4.604 4.302 4.067 3.930 3.800 3.586 3.305 3.069 2.983 3.037 3.093 2.992 2.683 2.281 1.999 - 4.100 3.994 3.901 3.947 4.147 4.371 4.437 4.252 3.911 3.636 3.631 3.941 4.421 4.842 5.048 5.032 4.901 4.761 4.641 4.503 4.323 4.142 4.039 4.042 4.063 3.952 3.623 3.151 2.749 2.608 2.735 2.924 2.908 2.567 2.046 1.659 - 5.534 5.462 5.302 5.036 4.663 4.215 3.763 3.403 3.234 3.318 3.638 4.081 4.469 4.640 4.538 4.256 3.986 3.906 4.068 4.373 4.639 4.725 4.607 4.363 4.099 3.868 3.663 3.458 3.257 3.099 3.019 3.002 2.996 2.952 2.873 2.810 - 5.202 4.572 3.783 3.403 3.658 4.271 4.705 4.582 3.958 3.240 2.856 2.958 3.368 3.777 3.978 3.973 3.891 3.845 3.859 3.900 3.938 3.970 3.976 3.899 3.675 3.317 2.947 2.746 2.830 3.148 3.494 3.626 3.412 2.909 2.338 1.964 - 5.796 5.169 4.338 3.833 3.897 4.305 4.546 4.221 3.380 2.510 2.196 2.682 3.688 4.609 4.946 4.643 4.070 3.693 3.704 3.920 3.994 3.743 3.294 2.946 2.885 3.027 3.130 3.047 2.874 2.847 3.081 3.412 3.514 3.193 2.595 2.123 - 6.703 5.829 4.664 3.914 3.870 4.209 4.300 3.753 2.768 1.999 2.046 2.977 4.263 5.159 5.231 4.623 3.888 3.545 3.728 4.165 4.471 4.454 4.217 3.986 3.874 3.795 3.594 3.247 2.929 2.866 3.118 3.483 3.639 3.409 2.925 2.536 - 5.619 6.502 7.891 9.250 10.165 10.504 10.362 9.915 9.299 8.622 8.034 7.744 7.921 8.551 9.377 10.004 10.127 9.711 8.995 8.335 7.972 7.926 8.036 8.111 8.070 7.959 7.876 7.871 7.901 7.869 7.698 7.381 6.984 6.601 6.312 6.159 - 5.627 6.114 7.143 8.664 10.357 11.683 12.133 11.520 10.093 8.410 7.080 6.531 6.900 8.022 9.467 10.657 11.062 10.474 9.155 7.735 6.848 6.738 7.149 7.567 7.647 7.451 7.317 7.488 7.857 8.058 7.815 7.213 6.641 6.444 6.627 6.874 - 4.668 4.282 3.968 4.333 5.697 7.809 9.892 11.009 10.570 8.682 6.147 4.084 3.354 4.112 5.742 7.240 7.822 7.371 6.456 5.886 6.131 7.013 7.888 8.161 7.730 7.024 6.614 6.744 7.166 7.411 7.238 6.868 6.784 7.280 8.154 8.834 - 4.736 4.814 4.893 4.974 5.246 5.963 7.159 8.466 9.274 9.160 8.250 7.189 6.696 7.061 7.965 8.763 8.980 8.609 8.016 7.585 7.422 7.358 7.178 6.836 6.475 6.271 6.275 6.397 6.515 6.576 6.601 6.615 6.599 6.521 6.397 6.299 - 6.202 6.096 6.131 6.599 7.592 8.916 10.205 11.135 11.576 11.604 11.424 11.278 11.373 11.799 12.450 13.025 13.155 12.656 11.703 10.764 10.289 10.368 10.646 10.594 9.945 8.931 8.118 7.965 8.462 9.144 9.441 9.076 8.202 7.212 6.449 6.061 - 11.136 11.305 11.572 11.859 12.163 12.580 13.240 14.171 15.198 15.991 16.263 15.999 15.513 15.247 15.432 15.872 16.056 15.552 14.373 13.010 12.070 11.803 11.902 11.762 11.000 9.812 8.867 8.813 9.772 11.213 12.282 12.326 11.243 9.481 7.753 6.705 - 11.454 11.725 12.102 12.390 12.544 12.741 13.269 14.283 15.611 16.772 17.268 16.942 16.147 15.528 15.558 16.165 16.753 16.654 15.658 14.208 13.076 12.773 13.145 13.500 13.160 12.013 10.625 9.828 10.104 11.220 12.358 12.639 11.651 9.684 7.557 6.195 - 11.782 11.905 12.123 12.388 12.681 13.061 13.672 14.622 15.807 16.840 17.230 16.749 15.704 14.829 14.793 15.670 16.818 17.320 16.692 15.279 14.011 13.674 14.294 15.120 15.229 14.256 12.676 11.424 11.186 11.897 12.811 13.031 12.095 10.236 8.221 6.931 - 12.185 12.358 12.646 12.972 13.310 13.722 14.334 15.208 16.211 16.997 17.189 16.669 15.743 15.015 14.982 15.659 16.527 16.902 16.448 15.442 14.551 14.308 14.679 15.104 14.950 14.018 12.703 11.687 11.424 11.824 12.339 12.357 11.595 10.248 8.844 7.961 - 12.617 12.790 13.062 13.360 13.698 14.186 14.931 15.903 16.866 17.456 17.392 16.675 15.646 14.839 14.683 15.249 16.205 17.016 17.277 16.952 16.362 15.934 15.869 15.998 15.909 15.280 14.165 13.009 12.360 12.464 13.047 13.461 13.115 11.910 10.356 9.274 - 12.879 13.032 13.305 13.687 14.222 14.948 15.794 16.543 16.935 16.831 16.308 15.590 14.907 14.397 14.141 14.227 14.726 15.564 16.434 16.916 16.761 16.115 15.422 15.051 14.947 14.671 13.829 12.546 11.486 11.339 12.160 13.174 13.305 12.057 10.005 8.450 - 13.166 13.449 13.951 14.592 15.304 15.997 16.512 16.662 16.360 15.731 15.056 14.575 14.308 14.097 13.845 13.710 14.023 14.945 16.189 17.125 17.239 16.575 15.704 15.214 15.155 14.998 14.186 12.801 11.656 11.635 12.799 14.107 14.121 12.210 9.217 6.978 - 12.892 13.305 14.011 14.829 15.565 16.037 16.087 15.651 14.854 14.013 13.467 13.330 13.388 13.286 12.908 12.573 12.820 13.900 15.419 16.540 16.628 15.804 14.863 14.556 14.879 15.039 14.216 12.448 10.788 10.454 11.682 13.307 13.589 11.666 8.421 5.940 - 13.066 13.665 14.531 15.225 15.463 15.217 14.649 13.966 13.355 12.963 12.861 12.966 13.036 12.836 12.389 12.077 12.392 13.479 14.877 15.779 15.673 14.824 14.103 14.213 14.987 15.439 14.626 12.608 10.578 9.944 11.068 12.794 13.291 11.585 8.489 6.076 - 13.322 13.858 14.676 15.436 15.884 15.915 15.523 14.771 13.818 12.951 12.466 12.454 12.678 12.739 12.459 12.115 12.261 13.201 14.594 15.620 15.653 14.850 14.073 14.105 14.866 15.371 14.598 12.527 10.353 9.575 10.659 12.486 13.169 11.642 8.658 6.291 - 13.842 14.378 15.150 15.793 16.114 16.122 15.874 15.355 14.547 13.600 12.852 12.595 12.801 13.099 13.113 12.857 12.778 13.346 14.541 15.769 16.333 16.058 15.456 15.216 15.498 15.714 15.093 13.528 11.867 11.255 12.068 13.407 13.740 12.212 9.497 7.386 - 13.825 14.384 15.163 15.764 16.021 16.024 15.893 15.594 15.006 14.161 13.354 12.939 13.000 13.236 13.244 12.958 12.780 13.234 14.423 15.843 16.761 16.844 16.423 16.114 16.157 16.141 15.443 13.976 12.471 11.934 12.672 13.842 14.030 12.466 9.811 7.770 - 13.686 14.347 15.257 15.921 16.115 15.956 15.664 15.304 14.779 14.048 13.292 12.814 12.749 12.903 12.932 12.707 12.503 12.778 13.729 15.048 16.134 16.586 16.493 16.253 16.112 15.901 15.271 14.189 13.147 12.798 13.289 13.955 13.766 12.217 9.901 8.183 - 14.171 14.535 15.042 15.439 15.626 15.647 15.532 15.189 14.491 13.489 12.490 11.875 11.789 12.011 12.164 12.086 12.006 12.339 13.275 14.551 15.645 16.205 16.298 16.240 16.207 16.028 15.423 14.427 13.542 13.356 13.936 14.588 14.317 12.688 10.329 8.599 - 14.319 14.586 14.862 14.890 14.660 14.404 14.336 14.407 14.337 13.887 13.110 12.319 11.810 11.615 11.532 11.393 11.285 11.491 12.200 13.285 14.367 15.116 15.471 15.583 15.550 15.278 14.623 13.694 12.928 12.785 13.268 13.761 13.433 11.945 9.863 8.353 - 14.579 14.525 14.334 13.973 13.559 13.311 13.360 13.600 13.739 13.523 12.938 12.206 11.593 11.201 10.940 10.695 10.498 10.543 11.021 11.928 13.034 14.014 14.628 14.792 14.528 13.896 13.024 12.153 11.603 11.577 11.950 12.260 11.990 10.978 9.619 8.651 - 15.472 15.280 14.772 13.896 12.847 12.010 11.681 11.822 12.068 12.017 11.543 10.865 10.335 10.137 10.179 10.229 10.166 10.085 10.195 10.616 11.280 11.980 12.497 12.668 12.394 11.658 10.598 9.571 9.047 9.322 10.234 11.163 11.402 10.677 9.402 8.427 - 15.687 15.277 14.500 13.491 12.495 11.796 11.564 11.727 11.984 11.970 11.489 10.650 9.806 9.336 9.409 9.876 10.371 10.557 10.357 10.022 9.977 10.508 11.502 12.412 12.546 11.521 9.601 7.654 6.683 7.196 8.843 10.596 11.401 10.871 9.537 8.456 - 15.551 15.194 14.546 13.732 12.916 12.273 11.933 11.913 12.065 12.119 11.816 11.096 10.182 9.485 9.342 9.767 10.418 10.833 10.781 10.461 10.359 10.851 11.827 12.674 12.653 11.447 9.469 7.697 7.081 7.948 9.763 11.458 12.091 11.428 10.062 9.003 - 15.247 14.980 14.488 13.841 13.132 12.486 12.044 11.889 11.950 11.981 11.677 10.915 9.905 9.120 8.983 9.533 10.359 10.894 10.857 10.495 10.391 10.967 12.071 13.003 12.995 11.796 9.919 8.351 7.924 8.798 10.384 11.741 12.158 11.546 10.431 9.596 - 14.873 14.676 14.316 13.853 13.355 12.894 12.528 12.266 12.041 11.717 11.175 10.428 9.672 9.200 9.200 9.597 10.076 10.302 10.197 10.035 10.260 11.120 12.419 13.569 13.964 13.393 12.212 11.128 10.754 11.229 12.146 12.843 12.819 12.042 10.953 10.184 - 14.652 14.396 13.971 13.537 13.266 13.256 13.444 13.598 13.425 12.754 11.684 10.565 9.816 9.661 9.974 10.351 10.382 9.953 9.359 9.141 9.741 11.181 12.999 14.486 15.080 14.682 13.699 12.782 12.441 12.754 13.352 13.669 13.308 12.292 11.064 10.235 - 13.832 13.884 13.874 13.706 13.439 13.259 13.296 13.454 13.426 12.924 11.946 10.840 10.087 9.946 10.247 10.503 10.284 9.576 8.837 8.703 9.552 11.221 13.083 14.415 14.822 14.431 13.764 13.382 13.543 14.065 14.457 14.221 13.158 11.500 9.820 8.767 - 13.438 13.760 14.108 14.147 13.788 13.258 12.892 12.822 12.845 12.591 11.855 10.813 9.918 9.546 9.689 9.944 9.840 9.251 8.549 8.367 9.137 10.740 12.556 13.855 14.274 14.002 13.596 13.555 13.984 14.558 14.783 14.327 13.214 11.779 10.487 9.733 - 13.338 13.706 14.126 14.226 13.870 13.254 12.720 12.454 12.329 12.029 11.351 10.414 9.597 9.230 9.317 9.510 9.403 8.894 8.328 8.273 9.096 10.646 12.320 13.450 13.748 13.463 13.162 13.298 13.903 14.585 14.831 14.339 13.185 11.747 10.485 9.762 - 13.150 13.502 13.916 14.048 13.771 13.245 12.735 12.357 11.990 11.425 10.615 9.776 9.243 9.173 9.384 9.474 9.150 8.502 7.994 8.151 9.176 10.781 12.355 13.349 13.597 13.377 13.171 13.334 13.878 14.493 14.760 14.406 13.440 12.147 10.947 10.232 - 13.016 13.416 13.907 14.115 13.889 13.374 12.847 12.452 12.099 11.586 10.837 10.016 9.401 9.150 9.145 9.099 8.818 8.414 8.275 8.791 10.052 11.734 13.264 14.148 14.241 13.795 13.276 13.085 13.341 13.844 14.208 14.076 13.321 12.124 10.907 10.144 - 13.226 13.590 14.074 14.351 14.225 13.737 13.110 12.567 12.163 11.776 11.247 10.554 9.863 9.403 9.275 9.367 9.477 9.542 9.760 10.456 11.765 13.394 14.692 15.038 14.274 12.854 11.568 11.039 11.352 12.069 12.587 12.534 11.945 11.131 10.429 10.043 - 13.129 13.529 14.098 14.490 14.434 13.888 13.062 12.277 11.731 11.371 10.977 10.404 9.763 9.362 9.438 9.924 10.490 10.847 11.042 11.424 12.276 13.410 14.157 13.822 12.288 10.232 8.737 8.546 9.565 10.981 11.890 11.904 11.288 10.583 10.149 9.996 - 13.246 13.621 14.173 14.578 14.539 13.946 12.957 11.906 11.086 10.566 10.199 9.828 9.493 9.424 9.811 10.561 11.302 11.671 11.645 11.580 11.867 12.503 12.972 12.621 11.226 9.291 7.758 7.354 8.083 9.278 10.132 10.262 9.856 9.363 9.081 9.001 - 13.395 13.742 14.247 14.602 14.514 13.893 12.948 12.080 11.600 11.485 11.392 10.975 10.231 9.569 9.491 10.154 11.197 12.018 12.260 12.083 11.946 12.122 12.380 12.172 11.152 9.580 8.201 7.695 8.165 9.080 9.714 9.680 9.111 8.430 7.959 7.759 - 13.372 13.726 14.257 14.655 14.618 14.046 13.159 12.388 12.048 12.060 11.993 11.442 10.445 9.537 9.338 10.023 11.144 11.995 12.210 12.037 12.025 12.419 12.839 12.606 11.414 9.740 8.558 8.572 9.638 10.891 11.464 11.145 10.432 9.981 10.012 10.221 - 13.439 13.797 14.311 14.684 14.680 14.265 13.618 13.002 12.566 12.240 11.819 11.184 10.462 9.972 9.969 10.426 11.048 11.539 11.871 12.287 13.003 13.877 14.373 13.933 12.474 10.577 9.158 8.853 9.586 10.667 11.315 11.182 10.482 9.689 9.145 8.911 - 13.830 14.100 14.468 14.709 14.682 14.396 13.958 13.468 12.952 12.377 11.733 11.085 10.553 10.241 10.179 10.333 10.674 11.229 12.047 13.114 14.254 15.149 15.459 15.009 13.909 12.538 11.374 10.774 10.814 11.266 11.729 11.833 11.418 10.602 9.718 9.151 - 14.427 14.338 14.220 14.129 14.054 13.919 13.647 13.227 12.718 12.191 11.669 11.127 10.557 10.027 9.676 9.637 9.953 10.561 11.349 12.221 13.104 13.887 14.386 14.395 13.819 12.813 11.768 11.133 11.157 11.718 12.368 12.578 12.048 10.889 9.580 8.723 - 14.840 14.815 14.604 14.049 13.180 12.238 11.523 11.164 11.034 10.847 10.375 9.624 8.830 8.320 8.314 8.806 9.568 10.262 10.621 10.589 10.364 10.267 10.507 10.978 11.274 10.968 9.986 8.781 8.098 8.452 9.678 10.962 11.372 10.548 9.012 7.824 - 15.049 14.886 14.507 13.879 13.069 12.239 11.546 11.052 10.693 10.338 9.882 9.295 8.645 8.087 7.832 8.066 8.815 9.847 10.714 10.997 10.608 9.903 9.461 9.651 10.300 10.802 10.588 9.632 8.526 8.047 8.533 9.603 10.461 10.542 9.963 9.377 - 14.995 14.826 14.479 13.936 13.202 12.340 11.504 10.891 10.626 10.640 10.672 10.412 9.739 8.854 8.193 8.139 8.741 9.640 10.300 10.371 9.936 9.429 9.296 9.648 10.168 10.363 9.953 9.110 8.348 8.157 8.647 9.480 10.134 10.283 10.017 9.717 - 14.546 14.560 14.359 13.731 12.743 11.745 11.106 10.917 10.936 10.801 10.322 9.602 8.897 8.406 8.163 8.104 8.186 8.406 8.734 9.069 9.310 9.471 9.683 10.032 10.384 10.410 9.869 8.924 8.152 8.159 9.071 10.344 11.132 10.936 10.024 9.217 - 13.976 13.834 13.418 12.654 11.713 10.966 10.717 10.938 11.245 11.164 10.471 9.339 8.196 7.436 7.203 7.395 7.804 8.262 8.678 9.015 9.267 9.468 9.670 9.869 9.938 9.678 8.992 8.066 7.339 7.243 7.869 8.848 9.592 9.725 9.357 8.962 - 12.628 12.534 12.102 11.167 9.945 8.979 8.734 9.189 9.816 9.991 9.479 8.590 7.883 7.700 7.940 8.225 8.267 8.094 7.948 8.024 8.304 8.622 8.842 8.943 8.941 8.778 8.343 7.629 6.855 6.378 6.434 6.935 7.523 7.857 7.870 7.763 - 11.098 10.969 10.496 9.552 8.378 7.526 7.452 8.101 8.877 9.055 8.318 6.985 5.764 5.227 5.455 6.072 6.596 6.776 6.682 6.545 6.545 6.717 6.987 7.238 7.345 7.188 6.711 6.011 5.352 5.037 5.201 5.696 6.188 6.406 6.337 6.196 - 8.207 8.317 8.170 7.456 6.358 5.550 5.699 6.884 8.426 9.319 8.933 7.449 5.707 4.608 4.548 5.266 6.135 6.626 6.596 6.266 5.994 6.033 6.404 6.900 7.194 7.009 6.290 5.291 4.475 4.244 4.668 5.418 5.984 6.049 5.706 5.358 - 6.107 6.664 7.227 7.192 6.470 5.606 5.341 5.995 7.179 8.072 8.034 7.046 5.674 4.622 4.270 4.510 4.942 5.206 5.189 5.012 4.890 4.977 5.294 5.712 6.003 5.944 5.473 4.778 4.237 4.182 4.640 5.273 5.606 5.382 4.778 4.275 - 8.132 8.377 8.726 9.004 9.127 9.141 9.147 9.202 9.273 9.288 9.221 9.120 9.065 9.091 9.163 9.226 9.272 9.353 9.524 9.768 9.984 10.072 10.041 10.039 10.272 10.842 11.645 12.398 12.791 12.656 12.050 11.206 10.395 9.797 9.454 9.313 - 9.116 9.633 10.352 10.898 11.119 11.137 11.157 11.234 11.246 11.065 10.751 10.537 10.630 11.011 11.451 11.721 11.787 11.795 11.884 12.025 12.077 11.995 11.968 12.294 13.099 14.156 15.011 15.335 15.181 14.909 14.845 14.990 15.057 14.790 14.257 13.822 - 9.737 9.908 10.150 10.350 10.467 10.537 10.593 10.596 10.463 10.166 9.809 9.586 9.648 9.984 10.435 10.822 11.081 11.290 11.559 11.916 12.287 12.597 12.884 13.307 14.019 15.022 16.118 17.023 17.536 17.648 17.514 17.323 17.196 17.150 17.152 17.162 - 9.767 9.569 9.291 9.109 9.167 9.473 9.868 10.111 10.039 9.708 9.370 9.302 9.593 10.077 10.456 10.543 10.402 10.293 10.466 10.984 11.730 12.561 13.450 14.482 15.705 16.994 18.065 18.657 18.715 18.431 18.104 17.946 17.986 18.122 18.245 18.306 - 9.804 10.047 10.356 10.503 10.374 10.045 9.719 9.587 9.709 9.994 10.284 10.455 10.476 10.394 10.291 10.243 10.319 10.580 11.072 11.798 12.702 13.688 14.670 15.608 16.506 17.354 18.089 18.591 18.754 18.573 18.184 17.813 17.656 17.768 18.030 18.239 - 10.153 10.466 10.787 10.810 10.514 10.165 10.028 10.094 10.117 9.915 9.616 9.570 9.989 10.675 11.144 11.062 10.591 10.303 10.713 11.844 13.226 14.320 14.968 15.465 16.191 17.196 18.118 18.516 18.276 17.711 17.278 17.193 17.314 17.365 17.241 17.085 - 11.537 11.206 10.621 9.958 9.465 9.330 9.530 9.822 9.929 9.772 9.549 9.545 9.846 10.240 10.416 10.306 10.221 10.625 11.720 13.203 14.473 15.096 15.156 15.155 15.561 16.399 17.254 17.648 17.456 16.979 16.648 16.651 16.835 16.930 16.839 16.701 - 13.473 12.571 11.381 10.644 10.658 11.101 11.370 11.111 10.491 9.996 9.967 10.296 10.550 10.380 9.856 9.435 9.608 10.520 11.885 13.216 14.172 14.736 15.137 15.609 16.215 16.837 17.301 17.499 17.443 17.228 16.972 16.772 16.680 16.698 16.775 16.841 - 11.627 11.140 10.583 10.410 10.703 11.105 11.153 10.707 10.085 9.769 9.951 10.341 10.416 9.906 9.090 8.630 9.062 10.369 11.988 13.236 13.814 13.979 14.273 15.051 16.191 17.202 17.618 17.340 16.678 16.083 15.810 15.777 15.707 15.409 14.952 14.605 - 12.549 11.913 10.994 10.249 9.930 9.950 10.006 9.850 9.478 9.094 8.897 8.893 8.897 8.729 8.419 8.239 8.501 9.298 10.411 11.461 12.207 12.715 13.264 14.052 14.966 15.628 15.683 15.112 14.271 13.634 13.428 13.476 13.381 12.894 12.158 11.604 - 13.639 13.678 13.835 14.185 14.698 15.200 15.443 15.257 14.673 13.926 13.296 12.921 12.723 12.521 12.245 12.052 12.209 12.841 13.753 14.512 14.763 14.512 14.118 13.979 14.178 14.392 14.178 13.378 12.301 11.494 11.299 11.579 11.861 11.757 11.298 10.880 - 14.041 14.001 14.131 14.671 15.657 16.802 17.619 17.714 17.063 16.050 15.208 14.841 14.836 14.827 14.581 14.255 14.291 14.994 16.191 17.282 17.694 17.349 16.704 16.329 16.373 16.429 15.937 14.771 13.451 12.748 12.995 13.745 14.105 13.505 12.221 11.177 - 13.309 13.475 13.830 14.439 15.376 16.589 17.786 18.503 18.383 17.467 16.223 15.230 14.776 14.715 14.708 14.634 14.733 15.349 16.495 17.705 18.351 18.172 17.492 16.922 16.783 16.834 16.562 15.775 14.893 14.602 15.156 16.008 16.179 15.117 13.273 11.847 - 12.611 13.037 13.725 14.524 15.437 16.523 17.664 18.474 18.532 17.755 16.553 15.554 15.126 15.135 15.181 15.081 15.102 15.683 16.902 18.238 18.916 18.561 17.530 16.595 16.248 16.301 16.177 15.589 14.925 14.885 15.691 16.654 16.629 15.030 12.506 10.605 - 12.437 12.928 13.582 14.108 14.585 15.365 16.624 18.017 18.837 18.582 17.408 16.030 15.147 14.935 15.065 15.175 15.288 15.744 16.732 17.933 18.689 18.560 17.719 16.770 16.179 15.881 15.491 14.878 14.475 14.903 16.223 17.577 17.709 16.036 13.321 11.268 - 12.536 12.826 13.211 13.568 14.048 14.944 16.302 17.689 18.405 18.020 16.760 15.363 14.518 14.392 14.644 14.888 15.095 15.559 16.471 17.584 18.322 18.267 17.521 16.587 15.893 15.450 14.997 14.467 14.227 14.764 16.056 17.299 17.387 15.837 13.367 11.510 - 12.329 12.628 13.052 13.486 14.043 14.955 16.237 17.486 18.085 17.675 16.484 15.186 14.392 14.235 14.402 14.555 14.697 15.125 16.035 17.191 18.029 18.100 17.435 16.473 15.640 15.031 14.489 13.987 13.833 14.401 15.620 16.749 16.809 15.397 13.169 11.502 - 12.722 12.846 13.079 13.478 14.191 15.298 16.590 17.551 17.652 16.766 15.331 14.077 13.498 13.538 13.759 13.817 13.806 14.126 15.022 16.247 17.188 17.352 16.740 15.782 14.917 14.251 13.631 13.019 12.711 13.100 14.185 15.328 15.621 14.632 12.871 11.509 - 12.591 12.735 13.013 13.470 14.205 15.236 16.321 16.981 16.781 15.682 14.150 12.854 12.199 12.078 12.076 11.929 11.796 12.089 13.017 14.306 15.368 15.773 15.555 15.086 14.644 14.152 13.361 12.292 11.435 11.418 12.397 13.749 14.463 13.944 12.564 11.409 - 10.902 10.951 11.238 11.947 13.036 14.152 14.789 14.594 13.601 12.224 11.004 10.275 9.999 9.885 9.681 9.400 9.305 9.676 10.565 11.734 12.825 13.587 13.969 14.026 13.768 13.138 12.154 11.068 10.325 10.295 10.963 11.871 12.403 12.233 11.569 10.994 - 9.908 9.219 8.273 7.713 8.032 9.257 10.872 12.072 12.236 11.310 9.835 8.568 7.981 8.003 8.199 8.199 8.027 8.045 8.586 9.616 10.714 11.371 11.339 10.744 9.919 9.138 8.511 8.059 7.844 7.947 8.329 8.739 8.838 8.457 7.786 7.267 - 6.644 6.767 7.000 7.418 8.200 9.431 10.843 11.809 11.726 10.504 8.721 7.225 6.489 6.311 6.130 5.680 5.335 5.765 7.224 9.126 10.397 10.319 9.125 7.788 7.197 7.464 7.969 8.053 7.660 7.310 7.471 7.984 8.165 7.483 6.167 5.109 - 6.980 6.623 6.242 6.294 7.052 8.370 9.701 10.386 10.064 8.909 7.510 6.454 5.942 5.742 5.509 5.189 5.128 5.758 7.145 8.792 9.921 10.016 9.178 7.999 7.092 6.686 6.601 6.574 6.559 6.720 7.143 7.614 7.720 7.222 6.343 5.659 - 5.782 6.029 6.414 6.841 7.319 7.894 8.484 8.809 8.554 7.651 6.424 5.417 5.023 5.232 5.720 6.183 6.605 7.202 8.099 9.088 9.723 9.696 9.157 8.656 8.734 9.503 10.576 11.383 11.590 11.256 10.664 10.025 9.354 8.606 7.870 7.391 - 5.989 6.107 6.217 6.279 6.483 7.105 8.150 9.162 9.458 8.671 7.127 5.698 5.189 5.768 6.909 7.873 8.295 8.360 8.489 8.860 9.249 9.320 9.028 8.746 8.955 9.809 10.964 11.837 12.038 11.604 10.866 10.131 9.494 8.912 8.390 8.060 - 4.960 5.035 5.207 5.556 6.210 7.214 8.374 9.245 9.345 8.491 6.978 5.445 4.497 4.360 4.829 5.513 6.131 6.635 7.085 7.465 7.637 7.477 7.027 6.502 6.128 5.974 5.943 5.919 5.905 5.996 6.226 6.447 6.406 5.977 5.329 4.846 - 5.003 4.728 4.354 4.202 4.604 5.707 7.287 8.766 9.480 9.069 7.713 6.048 4.788 4.326 4.593 5.219 5.844 6.308 6.635 6.875 6.995 6.909 6.588 6.118 5.659 5.348 5.243 5.352 5.661 6.121 6.591 6.841 6.662 6.044 5.247 4.691 - 4.575 4.709 4.933 5.266 5.824 6.709 7.798 8.682 8.877 8.174 6.842 5.465 4.557 4.259 4.386 4.718 5.234 6.044 7.109 8.078 8.446 7.953 6.828 5.653 4.926 4.741 4.842 4.975 5.166 5.621 6.375 7.059 7.109 6.264 4.909 3.887 - 7.539 7.688 8.009 8.466 8.915 9.164 9.129 8.927 8.811 8.951 9.283 9.547 9.524 9.260 9.075 9.321 10.078 11.047 11.731 11.790 11.273 10.578 10.174 10.303 10.877 11.612 12.256 12.730 13.097 13.435 13.731 13.883 13.796 13.487 13.099 12.834 - 7.505 7.433 7.577 8.197 9.195 10.123 10.530 10.341 9.918 9.735 9.976 10.408 10.644 10.535 10.323 10.416 10.994 11.821 12.414 12.440 11.968 11.398 11.140 11.339 11.854 12.451 13.007 13.545 14.112 14.656 15.028 15.097 14.858 14.444 14.041 13.801 - 5.196 5.161 5.213 5.476 5.944 6.468 6.861 7.045 7.095 7.147 7.266 7.389 7.401 7.272 7.121 7.133 7.410 7.863 8.259 8.384 8.199 7.867 7.642 7.712 8.111 8.745 9.497 10.296 11.112 11.897 12.541 12.901 12.890 12.561 12.113 11.801 - 6.856 7.324 7.994 8.529 8.743 8.699 8.593 8.575 8.630 8.628 8.470 8.186 7.915 7.788 7.824 7.938 8.016 8.001 7.909 7.786 7.662 7.551 7.492 7.568 7.887 8.522 9.467 10.626 11.842 12.936 13.737 14.120 14.055 13.651 13.139 12.791 - 10.462 11.153 12.061 12.596 12.473 11.842 11.081 10.461 9.998 9.573 9.149 8.834 8.744 8.826 8.872 8.713 8.415 8.254 8.465 9.003 9.546 9.764 9.614 9.389 9.482 10.070 10.993 11.914 12.590 13.008 13.294 13.536 13.697 13.702 13.571 13.439 - 11.966 12.655 13.602 14.280 14.424 14.117 13.564 12.854 11.951 10.889 9.914 9.349 9.295 9.491 9.529 9.265 9.017 9.313 10.377 11.838 12.950 13.166 12.549 11.669 11.098 11.004 11.199 11.530 12.132 13.234 14.696 15.798 15.657 13.987 11.541 9.752 - 12.461 12.873 13.589 14.413 15.105 15.422 15.193 14.409 13.276 12.164 11.421 11.161 11.187 11.156 10.874 10.502 10.464 11.093 12.303 13.576 14.297 14.186 13.470 12.665 12.170 12.040 12.095 12.227 12.551 13.231 14.155 14.822 14.637 13.428 11.724 10.494 - 12.752 12.932 13.360 14.071 14.951 15.707 15.995 15.625 14.708 13.614 12.744 12.271 12.059 11.833 11.463 11.132 11.205 11.901 13.045 14.115 14.600 14.364 13.716 13.150 12.954 13.055 13.198 13.261 13.392 13.809 14.458 14.900 14.593 13.377 11.738 10.569 - 12.783 12.782 12.959 13.528 14.529 15.683 16.463 16.396 15.415 13.986 12.826 12.397 12.572 12.794 12.618 12.173 12.083 12.881 14.414 15.828 16.208 15.338 13.907 12.930 12.899 13.434 13.741 13.454 13.021 13.230 14.308 15.468 15.450 13.646 10.818 8.696 - 12.640 12.650 12.758 13.133 13.931 15.105 16.273 16.852 16.452 15.220 13.803 12.876 12.639 12.736 12.695 12.488 12.603 13.534 15.133 16.513 16.699 15.487 13.704 12.560 12.637 13.431 13.905 13.528 12.820 12.825 13.977 15.474 15.832 14.213 11.345 9.116 - 12.635 12.491 12.436 12.791 13.734 15.096 16.360 16.921 16.478 15.269 13.917 12.997 12.650 12.607 12.574 12.605 13.066 14.181 15.603 16.500 16.181 14.736 13.076 12.237 12.544 13.362 13.725 13.268 12.593 12.690 13.889 15.363 15.707 14.179 11.492 9.414 - 12.834 12.589 12.431 12.783 13.821 15.273 16.517 16.943 16.351 15.079 13.761 12.887 12.537 12.484 12.550 12.833 13.553 14.648 15.565 15.566 14.371 12.569 11.317 11.461 12.789 14.131 14.310 13.179 11.808 11.583 12.939 14.848 15.594 14.233 11.496 9.318 - 12.657 12.261 11.882 12.008 12.794 13.936 14.887 15.241 14.951 14.256 13.435 12.640 11.949 11.517 11.602 12.361 13.585 14.652 14.864 13.961 12.408 11.169 11.049 12.091 13.505 14.226 13.711 12.368 11.259 11.290 12.502 14.014 14.685 13.992 12.441 11.194 - 10.664 10.716 10.883 11.232 11.779 12.476 13.230 13.919 14.383 14.428 13.910 12.888 11.721 10.972 11.107 12.148 13.560 14.516 14.406 13.256 11.728 10.694 10.658 11.442 12.358 12.730 12.375 11.696 11.348 11.725 12.663 13.557 13.796 13.206 12.176 11.399 - 10.570 10.204 9.712 9.405 9.464 9.863 10.438 11.006 11.411 11.516 11.218 10.536 9.709 9.157 9.250 10.025 11.097 11.869 11.932 11.343 10.562 10.107 10.198 10.675 11.217 11.646 12.040 12.595 13.388 14.278 15.016 15.443 15.591 15.611 15.620 15.639 - 10.224 9.925 9.510 9.196 9.069 9.064 9.077 9.097 9.202 9.445 9.752 9.956 9.950 9.807 9.733 9.884 10.216 10.505 10.544 10.321 10.034 9.926 10.108 10.520 11.047 11.654 12.396 13.304 14.281 15.142 15.769 16.226 16.703 17.326 17.999 18.453 - 9.585 9.108 8.527 8.263 8.429 8.779 8.980 8.942 8.872 9.025 9.393 9.663 9.507 8.915 8.270 8.044 8.401 9.040 9.449 9.330 8.849 8.495 8.692 9.495 10.595 11.606 12.351 12.933 13.575 14.403 15.359 16.270 16.987 17.460 17.722 17.834 - 7.805 7.930 8.276 8.863 9.496 9.838 9.671 9.113 8.569 8.417 8.701 9.095 9.190 8.862 8.384 8.195 8.514 9.145 9.637 9.665 9.301 8.952 9.027 9.623 10.483 11.248 11.768 12.218 12.925 14.069 15.498 16.799 17.570 17.691 17.391 17.084 - 7.842 8.201 8.629 8.826 8.762 8.680 8.823 9.160 9.390 9.229 8.683 8.060 7.699 7.690 7.854 7.986 8.084 8.328 8.844 9.497 9.967 10.049 9.871 9.810 10.151 10.845 11.581 12.129 12.592 13.302 14.446 15.797 16.829 17.154 16.875 16.502 - 6.879 6.620 6.418 6.620 7.271 8.036 8.439 8.232 7.585 6.961 6.762 7.052 7.552 7.893 7.909 7.727 7.624 7.784 8.163 8.557 8.785 8.827 8.820 8.930 9.230 9.689 10.241 10.871 11.618 12.504 13.459 14.314 14.898 15.143 15.140 15.068 - 3.674 4.655 6.260 7.924 9.107 9.504 9.150 8.367 7.602 7.196 7.233 7.511 7.698 7.561 7.130 6.686 6.548 6.827 7.325 7.676 7.632 7.270 6.942 7.010 7.566 8.378 9.100 9.567 9.914 10.419 11.214 12.122 12.786 12.964 12.748 12.486 - 4.034 5.513 7.522 8.870 8.975 8.170 7.305 7.020 7.322 7.740 7.838 7.584 7.290 7.255 7.491 7.763 7.844 7.722 7.549 7.463 7.461 7.472 7.496 7.644 8.033 8.648 9.349 10.015 10.662 11.377 12.125 12.643 12.589 11.860 10.793 10.012 - 4.082 5.796 8.093 9.575 9.593 8.603 7.642 7.433 7.899 8.406 8.431 8.007 7.599 7.599 7.966 8.323 8.355 8.108 7.894 7.966 8.279 8.584 8.726 8.831 9.200 10.024 11.205 12.430 13.403 14.009 14.274 14.235 13.886 13.265 12.563 12.089 - 7.020 7.541 8.245 8.700 8.687 8.325 7.947 7.820 7.959 8.143 8.123 7.829 7.421 7.155 7.192 7.496 7.891 8.218 8.449 8.698 9.114 9.774 10.639 11.594 12.534 13.416 14.247 15.032 15.727 16.232 16.427 16.244 15.721 15.010 14.339 13.933 - 8.535 9.127 9.948 10.559 10.773 10.748 10.783 11.028 11.375 11.598 11.576 11.397 11.236 11.175 11.132 10.983 10.730 10.537 10.600 10.970 11.521 12.081 12.602 13.187 13.968 14.931 15.892 16.623 17.024 17.159 17.153 17.055 16.817 16.408 15.931 15.601 - 9.203 9.751 10.626 11.511 12.156 12.472 12.520 12.428 12.323 12.280 12.319 12.392 12.407 12.278 12.004 11.704 11.566 11.709 12.085 12.502 12.791 12.956 13.198 13.743 14.630 15.637 16.420 16.766 16.731 16.561 16.450 16.384 16.188 15.745 15.168 14.752 - 12.832 12.846 13.015 13.424 13.926 14.180 13.913 13.155 12.247 11.571 11.258 11.123 10.900 10.548 10.328 10.577 11.362 12.337 12.962 12.926 12.404 11.948 12.068 12.843 13.861 14.541 14.550 14.030 13.440 13.198 13.376 13.686 13.741 13.369 12.751 12.284 - 13.071 13.419 14.069 14.851 15.443 15.506 14.923 13.918 12.929 12.293 12.017 11.829 11.486 11.053 10.883 11.309 12.301 13.422 14.123 14.155 13.724 13.268 13.060 12.970 12.625 11.804 10.734 10.002 10.140 11.174 12.513 13.276 12.842 11.269 9.302 7.961 - 13.382 13.495 13.823 14.384 14.962 15.175 14.755 13.797 12.720 11.961 11.647 11.542 11.321 10.921 10.648 10.928 11.916 13.295 14.458 14.906 14.560 13.725 12.797 11.981 11.262 10.609 10.190 10.336 11.261 12.744 14.080 14.409 13.232 10.801 8.086 6.309 - 13.178 13.133 13.294 13.819 14.461 14.663 14.023 12.699 11.339 10.574 10.508 10.699 10.634 10.261 10.056 10.569 11.850 13.310 14.157 14.027 13.240 12.489 12.242 12.400 12.487 12.161 11.554 11.158 11.361 12.069 12.723 12.683 11.667 9.938 8.157 7.042 - 11.530 11.514 11.721 12.272 12.860 12.885 11.975 10.397 8.919 8.210 8.297 8.615 8.584 8.200 8.047 8.726 10.227 11.847 12.736 12.582 11.817 11.169 11.015 11.111 10.928 10.224 9.314 8.793 8.987 9.660 10.201 10.102 9.299 8.137 7.087 6.488 - 11.762 11.022 10.051 9.380 9.079 8.776 8.136 7.285 6.713 6.737 7.092 7.129 6.469 5.489 5.088 5.894 7.629 9.251 9.800 9.184 8.208 7.825 8.301 9.054 9.267 8.674 7.772 7.315 7.596 8.218 8.513 8.161 7.423 6.806 6.569 6.574 - 11.448 11.429 11.119 10.226 8.752 7.088 5.817 5.331 5.561 6.026 6.180 5.807 5.167 4.788 5.063 5.954 7.044 7.852 8.182 8.209 8.275 8.568 8.974 9.201 9.056 8.616 8.160 7.927 7.932 7.992 7.919 7.700 7.492 7.454 7.585 7.728 - 11.008 10.743 10.284 9.729 9.157 8.622 8.170 7.852 7.688 7.625 7.543 7.349 7.074 6.907 7.078 7.672 8.519 9.257 9.570 9.401 9.005 8.771 8.945 9.470 10.031 10.289 10.105 9.606 9.062 8.677 8.462 8.263 7.912 7.374 6.798 6.421 - 12.640 12.635 12.795 13.247 13.869 14.295 14.172 13.455 12.474 11.704 11.413 11.485 11.576 11.466 11.288 11.434 12.186 13.399 14.532 15.019 14.701 13.953 13.387 13.376 13.782 14.113 13.986 13.473 13.043 13.107 13.588 13.873 13.271 11.613 9.517 8.057 - 13.107 12.733 12.523 13.032 14.258 15.550 16.089 15.531 14.254 13.017 12.354 12.228 12.215 12.015 11.775 11.949 12.823 14.173 15.367 15.834 15.494 14.767 14.184 13.949 13.820 13.416 12.639 11.843 11.574 12.107 13.149 13.974 13.911 12.833 11.293 10.190 - 13.021 12.563 12.267 12.800 14.229 15.860 16.720 16.284 14.850 13.272 12.299 12.072 12.183 12.176 12.016 12.104 12.846 14.181 15.523 16.183 15.909 15.072 14.321 14.018 13.947 13.559 12.555 11.273 10.517 10.910 12.305 13.768 14.210 13.209 11.379 9.972 - 12.998 12.664 12.511 13.098 14.483 16.070 16.991 16.726 15.461 13.928 12.847 12.458 12.478 12.486 12.360 12.384 12.934 14.058 15.335 16.153 16.182 15.610 14.944 14.548 14.331 13.885 12.951 11.794 11.091 11.394 12.581 13.813 14.091 13.030 11.215 9.836 - 13.237 12.885 12.699 13.229 14.524 15.993 16.797 16.467 15.222 13.770 12.769 12.396 12.362 12.286 12.087 12.040 12.493 13.503 14.740 15.709 16.097 15.951 15.544 15.100 14.630 14.019 13.262 12.598 12.384 12.793 13.588 14.198 14.087 13.145 11.827 10.885 - 13.238 12.916 12.754 13.257 14.436 15.708 16.307 15.852 14.613 13.258 12.344 11.968 11.843 11.669 11.432 11.395 11.833 12.772 13.958 15.039 15.754 16.005 15.781 15.114 14.113 13.041 12.287 12.175 12.740 13.643 14.321 14.301 13.452 12.056 10.650 9.781 - 13.121 12.850 12.744 13.247 14.343 15.469 15.909 15.335 14.035 12.676 11.799 11.489 11.451 11.378 11.246 11.302 11.790 12.704 13.774 14.674 15.233 15.467 15.439 15.133 14.487 13.556 12.623 12.104 12.283 13.061 13.944 14.306 13.764 12.431 10.883 9.858 - 12.790 12.682 12.772 13.350 14.341 15.254 15.510 14.864 13.595 12.298 11.463 11.184 11.202 11.210 11.122 11.117 11.438 12.172 13.182 14.218 15.063 15.583 15.685 15.275 14.334 13.047 11.848 11.263 11.602 12.691 13.888 14.393 13.718 12.003 9.993 8.656 - 12.449 12.604 13.005 13.683 14.471 15.015 14.983 14.292 13.185 12.087 11.343 11.034 11.001 11.030 11.029 11.088 11.389 12.063 13.096 14.312 15.426 16.108 16.077 15.218 13.695 11.972 10.681 10.340 11.073 12.483 13.814 14.312 13.621 11.980 10.117 8.898 - 12.364 12.936 13.810 14.596 14.983 14.857 14.301 13.500 12.651 11.907 11.357 11.029 10.895 10.899 11.019 11.303 11.837 12.662 13.680 14.655 15.303 15.421 14.947 13.944 12.566 11.061 9.810 9.272 9.787 11.289 13.165 14.465 14.425 12.986 10.930 9.459 - 12.437 13.290 14.445 15.192 15.145 14.440 13.537 12.828 12.387 12.036 11.627 11.250 11.168 11.551 12.261 12.894 13.067 12.720 12.178 11.913 12.183 12.813 13.281 13.054 11.951 10.300 8.797 8.137 8.636 10.038 11.623 12.568 12.379 11.161 9.573 8.480 - 12.597 13.029 13.703 14.299 14.493 14.116 13.264 12.282 11.596 11.473 11.860 12.426 12.761 12.631 12.081 11.365 10.753 10.386 10.261 10.319 10.516 10.804 11.040 10.976 10.379 9.249 7.954 7.115 7.258 8.437 10.102 11.356 11.485 10.416 8.797 7.626 - 12.201 12.593 13.233 13.848 14.116 13.832 13.071 12.202 11.681 11.744 12.219 12.633 12.534 11.810 10.733 9.740 9.121 8.884 8.868 8.957 9.180 9.591 10.075 10.297 9.908 8.858 7.563 6.728 6.916 8.142 9.808 11.022 11.132 10.121 8.625 7.555 - 12.030 12.599 13.440 14.113 14.260 13.806 13.010 12.307 12.039 12.231 12.578 12.658 12.220 11.336 10.322 9.499 9.003 8.787 8.763 8.923 9.314 9.877 10.340 10.314 9.571 8.294 7.068 6.580 7.184 8.650 10.255 11.186 10.985 9.798 8.284 7.254 - 11.779 12.455 13.497 14.416 14.771 14.411 13.579 12.784 12.480 12.749 13.238 13.405 12.902 11.814 10.562 9.592 9.095 8.986 9.101 9.380 9.848 10.436 10.852 10.702 9.814 8.483 7.391 7.202 8.115 9.699 11.133 11.689 11.118 9.739 8.221 7.254 - 12.030 12.569 13.494 14.498 15.191 15.267 14.704 13.823 13.124 12.967 13.327 13.805 13.895 13.315 12.164 10.827 9.735 9.161 9.164 9.647 10.398 11.109 11.410 11.005 9.873 8.393 7.236 7.024 7.957 9.634 11.234 11.939 11.373 9.798 7.971 6.771 - 12.899 13.096 13.583 14.377 15.263 15.831 15.740 14.989 13.974 13.251 13.160 13.595 14.084 14.121 13.492 12.395 11.285 10.597 10.523 10.964 11.623 12.141 12.226 11.737 10.758 9.607 8.749 8.604 9.305 10.576 11.806 12.337 11.822 10.431 8.802 7.721 - 13.122 12.869 12.787 13.327 14.516 15.830 16.529 16.191 15.036 13.791 13.189 13.484 14.314 14.982 14.923 14.038 12.706 11.520 10.945 11.103 11.759 12.467 12.780 12.450 11.530 10.367 9.447 9.169 9.635 10.576 11.471 11.808 11.349 10.256 9.018 8.210 - 12.761 12.596 12.607 13.168 14.333 15.697 16.620 16.638 15.780 14.565 13.680 13.574 14.201 15.083 15.602 15.358 14.381 13.095 12.079 11.741 12.099 12.776 13.223 13.051 12.260 11.234 10.492 10.368 10.812 11.455 11.850 11.739 11.154 10.349 9.625 9.209 - 12.902 12.624 12.423 12.758 13.834 15.399 16.813 17.399 16.848 15.444 13.948 13.172 13.505 14.665 15.854 16.242 15.485 13.941 12.448 11.788 12.192 13.213 14.046 14.071 13.239 12.058 11.199 11.039 11.451 11.966 12.140 11.842 11.265 10.711 10.362 10.220 - 12.869 12.721 12.640 12.927 13.760 15.035 16.332 17.088 16.893 15.767 14.238 13.107 13.006 13.990 15.451 16.452 16.308 15.041 13.391 12.334 12.436 13.484 14.649 15.077 14.463 13.210 12.084 11.647 11.901 12.384 12.571 12.255 11.615 10.988 10.590 10.429 - 12.673 12.458 12.317 12.610 13.495 14.798 16.090 16.917 17.008 16.384 15.335 14.312 13.761 13.926 14.693 15.593 16.031 15.647 14.597 13.492 13.017 13.443 14.416 15.184 15.127 14.182 12.873 11.915 11.719 12.153 12.695 12.813 12.297 11.329 10.325 9.699 - 12.850 12.628 12.486 12.786 13.649 14.854 15.975 16.630 16.648 16.082 15.148 14.161 13.495 13.466 14.148 15.221 16.055 16.068 15.140 13.773 12.797 12.800 13.702 14.803 15.296 14.851 13.829 12.978 12.857 13.433 14.116 14.188 13.274 11.581 9.773 8.620 - 12.895 12.532 12.240 12.515 13.496 14.837 15.954 16.414 16.151 15.394 14.463 13.632 13.134 13.170 13.802 14.790 15.589 15.630 14.744 13.382 12.371 12.342 13.247 14.375 14.870 14.371 13.253 12.322 12.189 12.836 13.651 13.877 13.118 11.569 9.880 8.796 - 12.595 12.102 11.708 12.077 13.356 15.021 16.257 16.526 15.854 14.682 13.505 12.646 12.280 12.529 13.401 14.611 15.535 15.521 14.391 12.709 11.497 11.522 12.701 14.122 14.722 14.080 12.720 11.680 11.709 12.721 13.879 14.201 13.203 11.174 8.976 7.572 - 12.091 11.864 11.857 12.517 13.811 15.154 15.818 15.453 14.289 12.910 11.843 11.342 11.443 12.098 13.173 14.310 14.928 14.529 13.143 11.492 10.602 11.079 12.595 14.068 14.451 13.520 12.044 11.189 11.638 13.085 14.474 14.726 13.421 11.002 8.477 6.894 - 11.546 11.821 12.337 12.976 13.518 13.721 13.466 12.832 12.050 11.357 10.900 10.742 10.928 11.477 12.275 12.991 13.185 12.597 11.427 10.315 9.951 10.569 11.728 12.599 12.565 11.691 10.668 10.296 10.889 12.052 12.970 12.960 11.867 10.103 8.370 7.318 - 11.723 11.959 12.441 13.094 13.691 13.941 13.678 12.996 12.192 11.563 11.233 11.171 11.326 11.728 12.399 13.182 13.691 13.521 12.594 11.333 10.452 10.464 11.287 12.284 12.732 12.372 11.600 11.151 11.524 12.576 13.590 13.738 12.620 10.520 8.273 6.837 - 12.304 12.232 12.384 13.013 13.994 14.829 15.019 14.451 13.458 12.526 11.937 11.691 11.707 12.027 12.759 13.798 14.664 14.738 13.764 12.191 10.968 10.876 11.924 13.317 14.060 13.721 12.736 12.024 12.245 13.283 14.329 14.467 13.280 11.101 8.806 7.356 - 12.477 12.203 12.152 12.805 14.095 15.369 15.878 15.364 14.200 13.025 12.247 11.876 11.775 11.976 12.658 13.808 14.952 15.346 14.565 12.974 11.583 11.328 12.325 13.763 14.540 14.137 13.004 12.169 12.396 13.585 14.846 15.142 13.981 11.707 9.273 7.725 - 12.616 12.209 12.018 12.673 14.148 15.697 16.426 15.986 14.768 13.483 12.588 12.095 11.857 11.936 12.584 13.837 15.190 15.798 15.140 13.553 12.099 11.772 12.709 14.071 14.740 14.233 13.060 12.262 12.543 13.712 14.863 15.061 13.969 11.994 9.975 8.729 - 12.522 12.313 12.355 13.088 14.432 15.758 16.364 15.997 14.977 13.842 12.924 12.247 11.796 11.759 12.420 13.756 15.203 15.922 15.447 14.142 12.987 12.823 13.669 14.712 14.998 14.231 12.993 12.222 12.434 13.331 14.085 13.996 12.946 11.381 9.936 9.099 - 12.598 12.649 12.928 13.588 14.544 15.450 15.894 15.661 14.850 13.787 12.829 12.226 12.099 12.471 13.265 14.271 15.158 15.614 15.528 15.067 14.553 14.197 13.939 13.525 12.773 11.816 11.067 10.942 11.526 12.474 13.199 13.233 12.479 11.233 9.997 9.244 - 12.471 12.661 13.064 13.683 14.447 15.159 15.537 15.347 14.576 13.508 12.606 12.251 12.528 13.219 14.004 14.691 15.269 15.751 15.989 15.694 14.675 13.097 11.477 10.374 10.004 10.123 10.293 10.293 10.293 10.611 11.284 11.879 11.776 10.721 9.162 8.014 - 12.171 12.421 12.923 13.640 14.432 15.049 15.205 14.736 13.751 12.636 11.871 11.758 12.257 13.054 13.823 14.423 14.889 15.213 15.188 14.503 13.054 11.183 9.569 8.778 8.842 9.246 9.375 9.057 8.703 8.895 9.764 10.744 10.964 10.001 8.327 7.041 - 11.826 12.050 12.573 13.406 14.350 15.016 15.042 14.345 13.218 12.176 11.655 11.780 12.365 13.106 13.794 14.361 14.758 14.826 14.318 13.115 11.423 9.763 8.681 8.379 8.566 8.688 8.369 7.728 7.287 7.522 8.412 9.378 9.690 9.036 7.813 6.863 - 11.909 12.118 12.640 13.503 14.486 15.148 15.096 14.289 13.127 12.218 11.996 12.454 13.206 13.809 14.060 14.049 13.948 13.747 13.211 12.105 10.497 8.833 7.692 7.378 7.684 8.050 7.996 7.495 6.962 6.880 7.353 7.978 8.154 7.587 6.567 5.778 - 12.007 12.294 12.914 13.824 14.774 15.358 15.256 14.494 13.494 12.832 12.860 13.467 14.174 14.495 14.287 13.811 13.444 13.314 13.152 12.524 11.240 9.593 8.193 7.522 7.559 7.816 7.751 7.219 6.579 6.357 6.754 7.435 7.789 7.448 6.619 5.934 - 11.978 12.195 12.729 13.602 14.573 15.189 15.061 14.198 13.082 12.393 12.540 13.357 14.212 14.476 13.985 13.135 12.534 12.476 12.687 12.553 11.637 10.073 8.485 7.506 7.295 7.470 7.488 7.142 6.723 6.719 7.305 8.115 8.503 8.095 7.148 6.372 - 10.830 11.122 11.810 12.899 14.099 14.867 14.733 13.681 12.279 11.372 11.516 12.560 13.722 14.147 13.544 12.394 11.558 11.566 12.167 12.519 11.876 10.213 8.272 6.990 6.782 7.276 7.704 7.575 7.065 6.769 7.104 7.888 8.502 8.454 7.841 7.258 - 11.219 11.686 12.546 13.629 14.651 15.258 15.172 14.387 13.280 12.480 12.503 13.360 14.469 15.019 14.560 13.375 12.285 11.996 12.507 13.084 12.858 11.545 9.681 8.162 7.502 7.468 7.402 6.920 6.316 6.281 7.201 8.691 9.849 10.005 9.307 8.580 - 11.624 12.021 12.706 13.514 14.258 14.744 14.778 14.268 13.367 12.511 12.222 12.737 13.751 14.549 14.498 13.554 12.335 11.650 11.841 12.490 12.737 11.983 10.358 8.601 7.456 7.140 7.312 7.501 7.565 7.737 8.281 9.117 9.833 10.052 9.798 9.475 - 10.430 11.086 12.113 13.152 13.967 14.460 14.537 14.077 13.098 11.965 11.327 11.686 12.911 14.189 14.565 13.693 12.166 11.064 11.069 11.889 12.503 12.017 10.406 8.492 7.238 6.987 7.312 7.541 7.399 7.184 7.361 8.034 8.828 9.271 9.246 9.057 - 10.860 11.615 12.744 13.804 14.595 15.142 15.420 15.208 14.308 12.938 11.830 11.773 12.923 14.523 15.402 14.901 13.429 12.128 11.902 12.642 13.357 13.056 11.596 9.751 8.478 8.108 8.183 8.033 7.481 6.972 7.071 7.844 8.766 9.230 9.108 8.814 - 11.967 12.405 13.120 13.915 14.654 15.246 15.542 15.323 14.474 13.203 12.067 11.680 12.263 13.422 14.380 14.524 13.846 12.920 12.422 12.595 13.084 13.260 12.727 11.604 10.373 9.483 9.060 8.920 8.819 8.667 8.544 8.555 8.705 8.900 9.048 9.117 - 12.124 12.425 13.008 13.793 14.611 15.214 15.366 14.955 14.075 13.018 12.166 11.833 12.126 12.896 13.801 14.454 14.594 14.199 13.485 12.791 12.395 12.374 12.563 12.660 12.406 11.744 10.858 10.068 9.646 9.656 9.926 10.159 10.115 9.757 9.265 8.917 - 12.204 12.194 12.479 13.306 14.505 15.497 15.705 14.987 13.732 12.543 11.820 11.611 11.782 12.255 13.034 13.998 14.768 14.872 14.138 12.957 12.074 12.041 12.757 13.522 13.598 12.808 11.681 11.016 11.249 12.133 12.955 13.067 12.296 10.977 9.679 8.897 - 12.303 12.287 12.564 13.377 14.545 15.490 15.667 14.993 13.883 12.881 12.259 11.952 11.831 11.975 12.594 13.674 14.748 15.116 14.418 13.028 11.868 11.711 12.557 13.617 13.961 13.278 12.113 11.403 11.718 12.823 13.895 14.132 13.274 11.690 10.080 9.093 - 12.780 12.637 12.654 13.085 13.807 14.362 14.353 13.791 13.055 12.508 12.186 11.883 11.524 11.394 11.910 13.105 14.363 14.775 13.887 12.189 10.839 10.777 11.962 13.400 13.953 13.245 11.925 11.082 11.357 12.483 13.572 13.819 13.034 11.634 10.273 9.468 - 11.557 11.878 12.441 13.056 13.450 13.407 12.930 12.273 11.752 11.489 11.320 10.988 10.458 10.056 10.240 11.175 12.473 13.381 13.308 12.276 10.921 10.029 9.983 10.561 11.208 11.536 11.604 11.794 12.414 13.394 14.305 14.669 14.278 13.320 12.257 11.575 - 10.059 10.391 10.941 11.475 11.699 11.406 10.638 9.703 8.999 8.734 8.791 8.859 8.740 8.566 8.709 9.446 10.645 11.771 12.235 11.828 10.879 10.020 9.734 10.052 10.621 11.059 11.299 11.626 12.407 13.725 15.230 16.322 16.536 15.864 14.787 14.001 - 9.504 9.772 10.262 10.811 11.125 10.923 10.160 9.128 8.292 7.950 8.018 8.132 7.996 7.685 7.597 8.089 9.103 10.130 10.574 10.222 9.430 8.858 8.980 9.752 10.717 11.417 11.769 12.107 12.859 14.156 15.669 16.805 17.101 16.541 15.577 14.863 - 9.140 9.394 9.852 10.383 10.776 10.817 10.407 9.652 8.823 8.204 7.927 7.923 8.015 8.089 8.187 8.438 8.905 9.462 9.850 9.864 9.533 9.137 9.026 9.388 10.135 11.009 11.814 12.571 13.464 14.620 15.899 16.913 17.270 16.886 16.101 15.490 - 10.893 10.871 10.808 10.695 10.555 10.451 10.435 10.500 10.548 10.432 10.050 9.443 8.826 8.498 8.683 9.367 10.265 10.944 11.060 10.562 9.738 9.056 8.900 9.368 10.262 11.271 12.199 13.075 14.050 15.185 16.295 17.005 17.000 16.286 15.266 14.538 - 10.982 10.381 9.798 9.860 10.572 11.278 11.260 10.400 9.279 8.635 8.697 9.036 9.058 8.640 8.283 8.618 9.743 11.026 11.582 11.017 9.758 8.712 8.569 9.358 10.583 11.744 12.717 13.695 14.824 15.927 16.588 16.484 15.646 14.444 13.349 12.717 - 11.689 10.860 9.924 9.667 10.232 11.007 11.199 10.529 9.425 8.564 8.236 8.156 7.872 7.329 7.011 7.491 8.816 10.319 11.087 10.680 9.490 8.432 8.268 9.119 10.513 11.832 12.724 13.168 13.271 13.081 12.608 11.953 11.347 11.007 10.958 11.026 - 11.916 11.495 10.982 10.744 10.881 11.181 11.343 11.241 10.959 10.605 10.141 9.433 8.500 7.662 7.387 7.896 8.891 9.697 9.749 9.040 8.135 7.723 8.080 8.884 9.513 9.554 9.094 8.580 8.426 8.700 9.148 9.443 9.434 9.195 8.907 8.726 - 12.922 12.844 12.590 12.061 11.267 10.387 9.683 9.344 9.340 9.420 9.272 8.756 8.038 7.511 7.534 8.175 9.143 9.967 10.287 10.057 9.518 8.994 8.671 8.530 8.440 8.308 8.144 8.023 7.997 8.060 8.187 8.386 8.693 9.103 9.525 9.798 - 13.422 13.437 13.230 12.601 11.651 10.770 10.331 10.361 10.507 10.341 9.727 8.942 8.441 8.483 8.948 9.475 9.766 9.788 9.715 9.708 9.772 9.785 9.645 9.366 9.027 8.676 8.297 7.897 7.581 7.524 7.825 8.385 8.949 9.288 9.365 9.325 - 13.972 13.724 13.161 12.310 11.415 10.833 10.743 10.944 10.966 10.449 9.475 8.551 8.233 8.690 9.580 10.328 10.570 10.376 10.116 10.097 10.319 10.526 10.457 10.071 9.544 9.099 8.847 8.766 8.801 8.936 9.176 9.482 9.753 9.893 9.896 9.852 - 14.154 13.920 13.442 12.777 12.092 11.586 11.338 11.216 10.969 10.443 9.745 9.195 9.089 9.468 10.092 10.637 10.941 11.097 11.315 11.693 12.107 12.297 12.068 11.429 10.573 9.729 9.052 8.603 8.394 8.427 8.672 9.030 9.354 9.534 9.565 9.536 - 13.889 13.727 13.315 12.623 11.791 11.072 10.621 10.354 10.023 9.479 8.865 8.539 8.767 9.465 10.221 10.609 10.525 10.260 10.251 10.721 11.506 12.184 12.364 11.904 10.937 9.757 8.710 8.125 8.241 9.077 10.319 11.385 11.721 11.171 10.135 9.337 - 13.743 13.460 13.001 12.502 12.035 11.580 11.078 10.514 9.961 9.547 9.374 9.451 9.689 9.942 10.079 10.039 9.866 9.705 9.745 10.118 10.788 11.500 11.863 11.546 10.499 9.050 7.779 7.238 7.653 8.806 10.154 11.114 11.358 10.944 10.247 9.741 - 13.746 13.429 13.020 12.791 12.848 13.048 13.112 12.821 12.178 11.404 10.808 10.617 10.860 11.355 11.789 11.870 11.493 10.833 10.281 10.208 10.694 11.406 11.765 11.321 10.103 8.645 7.668 7.613 8.382 9.451 10.264 10.577 10.520 10.376 10.320 10.335 - 13.303 13.018 12.781 12.954 13.590 14.338 14.682 14.301 13.297 12.116 11.265 11.041 11.416 12.101 12.702 12.884 12.523 11.785 11.086 10.869 11.288 12.026 12.420 11.894 10.412 8.592 7.353 7.325 8.434 9.991 11.170 11.518 11.126 10.420 9.805 9.479 - 13.685 13.420 13.197 13.346 13.907 14.551 14.807 14.400 13.429 12.288 11.423 11.121 11.427 12.161 12.982 13.480 13.347 12.583 11.575 10.919 11.008 11.681 12.249 11.954 10.575 8.681 7.315 7.292 8.646 10.626 12.221 12.792 12.350 11.382 10.451 9.916 - 13.720 13.488 13.326 13.533 14.088 14.625 14.714 14.187 13.229 12.199 11.404 11.010 11.104 11.707 12.665 13.555 13.829 13.215 12.047 11.151 11.233 12.228 13.210 13.047 11.343 8.873 7.097 7.096 8.780 11.008 12.473 12.605 11.788 10.824 10.241 10.047 - 13.446 13.460 13.568 13.826 14.172 14.423 14.391 13.993 13.287 12.436 11.660 11.197 11.256 11.895 12.893 13.761 13.994 13.434 12.473 11.828 12.005 12.836 13.517 13.185 11.630 9.553 8.128 8.176 9.596 11.471 12.747 12.918 12.213 11.247 10.515 10.168 - 13.076 13.203 13.467 13.835 14.190 14.364 14.222 13.731 12.975 12.114 11.351 10.912 10.993 11.635 12.609 13.435 13.629 13.050 12.082 11.422 11.573 12.403 13.151 12.959 11.543 9.486 7.890 7.636 8.796 10.628 12.120 12.628 12.166 11.212 10.310 9.797 - 12.687 13.032 13.573 14.086 14.372 14.341 14.015 13.472 12.787 12.029 11.317 10.865 10.917 11.565 12.585 13.474 13.726 13.200 12.283 11.657 11.789 12.526 13.134 12.805 11.288 9.149 7.448 7.050 8.077 9.873 11.465 12.164 11.869 10.973 10.023 9.446 - 12.566 13.052 13.789 14.427 14.687 14.477 13.897 13.129 12.327 11.582 10.986 10.701 10.914 11.679 12.760 13.664 13.917 13.416 12.558 12.006 12.183 12.904 13.437 13.028 11.485 9.397 7.778 7.400 8.305 9.829 11.092 11.544 11.196 10.446 9.737 9.337 - 12.321 12.846 13.677 14.450 14.809 14.584 13.884 13.014 12.273 11.775 11.471 11.326 11.456 12.036 13.021 13.988 14.333 13.747 12.576 11.665 11.711 12.636 13.541 13.378 11.826 9.632 8.096 8.087 9.398 10.964 11.723 11.387 10.493 9.802 9.627 9.722 - 13.251 13.532 13.954 14.291 14.340 14.022 13.428 12.755 12.178 11.756 11.463 11.300 11.376 11.812 12.567 13.323 13.639 13.273 12.442 11.728 11.653 12.220 12.834 12.716 11.525 9.690 8.173 7.816 8.758 10.371 11.698 12.065 11.409 10.175 8.969 8.254 - 13.333 13.509 13.717 13.770 13.569 13.162 12.695 12.290 11.949 11.583 11.155 10.801 10.788 11.303 12.216 13.064 13.322 12.801 11.845 11.128 11.146 11.805 12.449 12.350 11.289 9.768 8.661 8.586 9.473 10.664 11.423 11.431 10.891 10.250 9.820 9.644 - 12.922 12.748 12.533 12.435 12.506 12.645 12.666 12.417 11.877 11.177 10.556 10.271 10.482 11.145 11.975 12.542 12.509 11.878 11.045 10.574 10.788 11.489 12.038 11.802 10.647 9.093 7.989 7.941 8.904 10.243 11.187 11.312 10.711 9.807 9.026 8.601 - 10.733 11.143 11.792 12.433 12.872 13.031 12.920 12.561 11.958 11.154 10.323 9.785 9.854 10.602 11.708 12.575 12.699 12.036 11.088 10.567 10.862 11.703 12.314 11.983 10.628 8.922 7.855 8.059 9.381 11.017 12.064 12.068 11.193 9.976 8.940 8.376 - 11.404 11.525 11.733 11.969 12.164 12.278 12.316 12.282 12.127 11.750 11.111 10.368 9.889 10.044 10.898 12.056 12.873 12.913 12.299 11.632 11.497 11.934 12.357 12.032 10.729 9.013 7.876 7.994 9.220 10.697 11.502 11.268 10.313 9.261 8.546 8.238 - 11.907 11.964 12.137 12.453 12.830 13.111 13.177 13.025 12.732 12.358 11.920 11.469 11.173 11.264 11.833 12.653 13.261 13.291 12.797 12.256 12.171 12.595 13.018 12.756 11.575 9.994 8.969 9.190 10.538 12.151 13.042 12.740 11.505 10.000 8.812 8.201 - 11.071 11.128 11.416 12.062 12.933 13.681 13.997 13.837 13.395 12.887 12.381 11.861 11.426 11.345 11.845 12.813 13.751 14.130 13.842 13.330 13.186 13.553 13.903 13.457 11.937 9.967 8.719 9.024 10.698 12.648 13.670 13.267 11.856 10.282 9.170 8.662 - 13.009 12.333 11.710 11.929 13.104 14.561 15.412 15.250 14.362 13.340 12.547 11.973 11.529 11.366 11.792 12.866 14.133 14.892 14.795 14.201 13.854 14.141 14.631 14.416 12.991 10.880 9.361 9.468 11.124 13.164 14.237 13.786 12.302 10.744 9.752 9.363 - 13.029 12.129 11.276 11.510 13.015 14.958 16.181 16.119 15.105 13.906 13.016 12.406 11.859 11.442 11.532 12.382 13.716 14.854 15.297 15.167 15.038 15.275 15.562 15.155 13.666 11.616 10.165 10.174 11.449 12.872 13.324 12.576 11.346 10.555 10.502 10.750 - 13.998 13.287 12.553 12.573 13.544 14.941 15.974 16.190 15.690 14.860 13.965 13.051 12.167 11.582 11.671 12.548 13.846 14.952 15.503 15.665 15.873 16.267 16.422 15.705 13.976 11.951 10.780 11.136 12.614 14.019 14.313 13.419 12.161 11.459 11.540 11.882 - 14.243 13.334 12.294 12.042 12.903 14.386 15.602 15.934 15.388 14.423 13.499 12.798 12.298 12.007 12.052 12.538 13.359 14.232 14.915 15.400 15.822 16.190 16.233 15.594 14.238 12.667 11.669 11.734 12.640 13.584 13.774 12.994 11.674 10.468 9.752 9.484 - 14.214 13.228 12.000 11.463 12.063 13.473 14.876 15.548 15.285 14.405 13.408 12.636 12.162 11.916 11.846 11.975 12.340 12.938 13.723 14.633 15.557 16.286 16.517 16.011 14.814 13.351 12.252 11.974 12.491 13.286 13.658 13.144 11.760 9.945 8.304 7.345 - 13.940 13.093 12.017 11.507 11.981 13.219 14.548 15.299 15.187 14.386 13.320 12.380 11.765 11.482 11.438 11.533 11.718 12.031 12.588 13.490 14.681 15.843 16.475 16.165 14.905 13.201 11.834 11.410 11.982 13.014 13.716 13.508 12.314 10.548 8.861 7.849 - 13.901 13.193 12.272 11.794 12.145 13.195 14.395 15.126 15.053 14.271 13.183 12.226 11.642 11.416 11.371 11.338 11.287 11.353 11.753 12.636 13.935 15.308 16.231 16.223 15.134 13.297 11.449 10.380 10.510 11.611 12.878 13.353 12.463 10.382 7.986 6.401 - 13.998 13.361 12.507 11.986 12.116 12.797 13.621 14.141 14.120 13.600 12.816 12.058 11.548 11.364 11.411 11.465 11.315 10.950 10.654 10.874 11.891 13.502 14.998 15.533 14.673 12.738 10.672 9.484 9.641 10.819 12.136 12.711 12.147 10.693 9.048 7.983 - 13.707 13.084 12.297 11.877 12.016 12.474 12.862 12.979 12.903 12.776 12.572 12.126 11.390 10.615 10.218 10.408 10.937 11.272 11.083 10.596 10.446 11.098 12.338 13.323 13.199 11.811 9.898 8.614 8.724 10.095 11.835 12.909 12.770 11.603 10.120 9.124 - 12.933 12.303 11.513 11.132 11.392 12.050 12.632 12.810 12.593 12.205 11.822 11.436 10.966 10.442 10.066 10.048 10.397 10.878 11.205 11.282 11.265 11.358 11.542 11.508 10.893 9.646 8.191 7.240 7.334 8.469 10.064 11.304 11.619 10.993 9.936 9.159 - 12.647 12.067 11.307 10.835 10.817 11.035 11.148 11.013 10.770 10.636 10.631 10.538 10.134 9.469 8.892 8.789 9.250 9.992 10.595 10.845 10.854 10.864 10.936 10.833 10.229 9.064 7.709 6.793 6.792 7.711 9.085 10.280 10.862 10.795 10.381 10.034 - 9.477 10.002 10.644 10.900 10.555 9.839 9.223 9.050 9.263 9.462 9.234 8.480 7.509 6.810 6.705 7.145 7.791 8.300 8.576 8.792 9.178 9.768 10.309 10.418 9.867 8.790 7.643 6.965 7.078 7.927 9.147 10.274 10.987 11.224 11.154 11.030 - 8.986 9.065 9.223 9.420 9.559 9.535 9.326 9.011 8.688 8.357 7.891 7.167 6.242 5.398 4.996 5.220 5.941 6.817 7.551 8.076 8.504 8.921 9.229 9.214 8.780 8.115 7.616 7.595 8.032 8.576 8.801 8.509 7.829 7.068 6.489 6.198 - 7.061 7.735 8.720 9.484 9.602 9.003 8.017 7.181 6.905 7.203 7.678 7.783 7.204 6.080 4.931 4.333 4.580 5.548 6.831 7.993 8.773 9.115 9.095 8.831 8.456 8.122 7.972 8.063 8.305 8.485 8.386 7.917 7.165 6.339 5.661 5.287 - 7.433 7.852 8.432 8.815 8.753 8.247 7.531 6.920 6.624 6.635 6.761 6.760 6.499 6.025 5.532 5.254 5.347 5.827 6.582 7.428 8.173 8.676 8.873 8.793 8.542 8.270 8.107 8.108 8.213 8.278 8.135 7.681 6.940 6.062 5.280 4.819 - 8.301 8.596 9.026 9.332 9.264 8.725 7.849 6.952 6.351 6.166 6.249 6.306 6.125 5.727 5.342 5.227 5.498 6.084 6.822 7.561 8.191 8.606 8.696 8.420 7.905 7.455 7.382 7.783 8.422 8.854 8.702 7.903 6.718 5.543 4.680 4.245 - 7.422 7.812 8.529 9.346 9.845 9.619 8.588 7.151 5.963 5.477 5.610 5.845 5.692 5.124 4.597 4.657 5.471 6.690 7.740 8.254 8.279 8.111 7.982 7.893 7.733 7.496 7.345 7.448 7.759 7.990 7.822 7.163 6.222 5.338 4.743 4.471 - 7.198 8.126 9.350 10.024 9.649 8.371 6.854 5.814 5.559 5.851 6.151 6.040 5.504 4.892 4.618 4.861 5.479 6.175 6.735 7.139 7.481 7.796 7.975 7.863 7.436 6.884 6.519 6.547 6.908 7.299 7.373 6.954 6.128 5.163 4.352 3.900 - 7.154 7.911 8.894 9.403 9.026 7.897 6.574 5.638 5.324 5.418 5.485 5.227 4.703 4.256 4.234 4.724 5.506 6.229 6.664 6.810 6.822 6.831 6.832 6.736 6.500 6.217 6.056 6.115 6.321 6.461 6.335 5.897 5.274 4.668 4.230 4.013 - 6.190 6.920 8.009 8.887 9.070 8.423 7.235 6.050 5.323 5.143 5.226 5.185 4.862 4.452 4.311 4.642 5.313 5.986 6.405 6.575 6.681 6.836 6.944 6.806 6.390 5.946 5.837 6.202 6.769 7.032 6.654 5.750 4.797 4.242 4.159 4.269 - 7.511 7.673 7.973 8.288 8.378 8.028 7.264 6.411 5.887 5.861 6.087 6.100 5.641 4.928 4.521 4.863 5.889 7.054 7.743 7.723 7.254 6.794 6.607 6.610 6.565 6.373 6.174 6.167 6.357 6.506 6.329 5.757 4.997 4.355 3.992 3.863 - 7.888 7.590 7.214 6.989 6.949 6.924 6.749 6.450 6.229 6.247 6.417 6.454 6.149 5.616 5.271 5.506 6.340 7.348 7.952 7.853 7.240 6.631 6.480 6.884 7.569 8.148 8.382 8.269 7.944 7.526 7.050 6.517 5.958 5.448 5.071 4.874 - 8.025 7.762 7.489 7.466 7.697 7.918 7.829 7.369 6.758 6.291 6.073 5.958 5.752 5.460 5.336 5.651 6.412 7.269 7.746 7.596 6.994 6.406 6.252 6.632 7.308 7.915 8.201 8.128 7.799 7.333 6.807 6.270 5.778 5.393 5.150 5.039 - 7.438 7.841 8.495 9.108 9.334 8.968 8.127 7.221 6.686 6.646 6.808 6.711 6.144 5.373 4.943 5.219 6.064 6.924 7.264 6.965 6.351 5.869 5.729 5.828 5.971 6.116 6.380 6.814 7.221 7.245 6.693 5.767 4.958 4.658 4.842 5.121 - 7.507 8.198 9.220 10.027 10.180 9.593 8.584 7.668 7.209 7.165 7.156 6.807 6.112 5.489 5.463 6.214 7.366 8.221 8.259 7.505 6.478 5.782 5.687 6.033 6.460 6.724 6.811 6.796 6.664 6.300 5.655 4.900 4.358 4.252 4.501 4.775 - 6.392 7.595 9.282 10.473 10.536 9.550 8.184 7.197 6.910 7.043 7.015 6.473 5.624 5.096 5.440 6.653 8.117 9.001 8.827 7.761 6.431 5.465 5.107 5.200 5.452 5.706 5.973 6.259 6.413 6.193 5.493 4.509 3.644 3.212 3.205 3.339 - 5.922 7.138 8.890 10.225 10.475 9.605 8.153 6.835 6.102 5.941 6.030 6.068 6.024 6.121 6.583 7.390 8.235 8.714 8.609 8.019 7.261 6.635 6.248 6.018 5.823 5.648 5.579 5.688 5.913 6.064 5.943 5.490 4.818 4.132 3.609 3.338 - 5.347 6.212 7.588 8.915 9.681 9.639 8.911 7.883 6.982 6.459 6.319 6.428 6.679 7.059 7.580 8.142 8.509 8.438 7.878 7.053 6.335 5.982 5.971 6.046 5.953 5.663 5.379 5.350 5.638 6.044 6.243 6.010 5.358 4.508 3.750 3.314 - 5.047 5.905 7.295 8.663 9.439 9.324 8.480 7.466 6.894 7.024 7.609 8.109 8.120 7.667 7.123 6.854 6.909 7.031 6.932 6.568 6.146 5.879 5.762 5.596 5.240 4.825 4.690 5.076 5.856 6.574 6.763 6.289 5.411 4.549 3.977 3.728 - 6.198 7.081 8.333 9.232 9.274 8.455 7.249 6.298 6.023 6.404 7.049 7.490 7.480 7.101 6.632 6.313 6.197 6.177 6.143 6.089 6.102 6.224 6.365 6.343 6.047 5.581 5.244 5.351 5.989 6.910 7.639 7.728 7.015 5.725 4.368 3.510 - 7.178 8.005 9.018 9.452 9.012 8.064 7.286 7.112 7.433 7.767 7.702 7.197 6.531 6.008 5.728 5.605 5.560 5.647 5.973 6.518 7.049 7.255 6.970 6.317 5.619 5.199 5.208 5.611 6.260 6.954 7.446 7.474 6.871 5.730 4.457 3.617 - 7.318 7.954 8.796 9.277 9.073 8.313 7.473 7.050 7.231 7.793 8.271 8.272 7.711 6.827 6.006 5.546 5.524 5.817 6.226 6.586 6.801 6.826 6.630 6.220 5.679 5.189 4.974 5.179 5.769 6.510 7.061 7.134 6.648 5.769 4.849 4.268 - 7.221 7.932 8.811 9.199 8.829 7.998 7.286 7.102 7.409 7.837 8.021 7.847 7.453 7.022 6.626 6.236 5.847 5.555 5.492 5.695 6.048 6.359 6.492 6.433 6.255 6.042 5.874 5.862 6.128 6.704 7.402 7.827 7.603 6.677 5.449 4.584 - 6.771 7.663 8.848 9.524 9.223 8.098 6.802 6.062 6.229 7.108 8.120 8.667 8.449 7.569 6.416 5.433 4.924 4.962 5.424 6.079 6.690 7.087 7.193 7.018 6.648 6.227 5.928 5.908 6.228 6.792 7.345 7.574 7.283 6.529 5.635 5.035 - 6.847 7.342 8.181 9.042 9.507 9.270 8.389 7.337 6.752 7.001 7.888 8.756 8.930 8.183 6.865 5.635 5.012 5.106 5.664 6.335 6.889 7.243 7.371 7.241 6.875 6.433 6.185 6.348 6.903 7.565 7.952 7.825 7.222 6.398 5.661 5.240 - 7.686 7.597 7.586 7.823 8.289 8.738 8.863 8.549 8.010 7.668 7.840 8.461 9.071 9.116 8.355 7.065 5.883 5.381 5.687 6.430 7.036 7.131 6.749 6.228 5.899 5.874 6.054 6.309 6.621 7.033 7.497 7.795 7.658 7.016 6.138 5.509 - 7.715 7.890 8.112 8.274 8.414 8.653 8.994 9.236 9.122 8.622 8.045 7.820 8.101 8.572 8.672 8.083 7.042 6.186 6.036 6.568 7.260 7.548 7.283 6.784 6.494 6.572 6.827 6.987 7.006 7.073 7.330 7.617 7.554 6.913 5.926 5.181 - 8.147 8.192 8.273 8.406 8.633 8.949 9.228 9.261 8.923 8.353 7.923 7.982 8.527 9.127 9.206 8.498 7.303 6.303 6.059 6.595 7.391 7.802 7.531 6.799 6.111 5.859 6.089 6.582 7.089 7.486 7.740 7.798 7.566 7.033 6.379 5.923 - 7.802 7.455 7.028 6.940 7.533 8.777 10.148 10.857 10.390 8.953 7.437 6.807 7.376 8.545 9.273 8.922 7.754 6.681 6.473 7.134 7.964 8.216 7.732 6.997 6.632 6.825 7.253 7.493 7.463 7.441 7.666 7.968 7.850 6.998 5.695 4.713 - 5.841 6.464 7.341 8.057 8.470 8.743 9.048 9.304 9.209 8.571 7.590 6.787 6.595 6.990 7.515 7.675 7.366 6.932 6.821 7.166 7.677 7.917 7.692 7.180 6.729 6.548 6.606 6.773 7.020 7.413 7.914 8.239 8.006 7.081 5.820 4.914 - 6.545 6.723 6.905 6.958 6.969 7.167 7.653 8.207 8.429 8.105 7.451 6.964 6.995 7.424 7.768 7.638 7.123 6.728 6.918 7.673 8.473 8.722 8.229 7.330 6.572 6.284 6.422 6.758 7.155 7.629 8.154 8.484 8.263 7.358 6.115 5.219 - 6.761 6.945 7.036 6.828 6.490 6.459 6.988 7.798 8.226 7.796 6.690 5.657 5.398 5.987 6.832 7.228 6.973 6.501 6.420 6.929 7.641 7.959 7.624 6.916 6.364 6.279 6.562 6.915 7.186 7.468 7.867 8.250 8.276 7.732 6.832 6.141 - 7.364 7.241 7.097 7.115 7.463 8.142 8.894 9.291 9.032 8.206 7.279 6.765 6.822 7.125 7.178 6.775 6.230 6.112 6.733 7.820 8.701 8.839 8.260 7.495 7.117 7.297 7.755 8.112 8.243 8.310 8.471 8.597 8.345 7.524 6.394 5.572 - 7.179 7.083 6.877 6.671 6.759 7.414 8.557 9.641 9.973 9.260 7.916 6.794 6.541 7.101 7.823 8.059 7.728 7.333 7.445 8.143 8.934 9.195 8.726 7.897 7.292 7.213 7.518 7.866 8.084 8.265 8.523 8.729 8.552 7.799 6.724 5.931 - 7.334 7.152 6.818 6.503 6.553 7.276 8.611 9.999 10.667 10.186 8.842 7.483 6.915 7.325 8.193 8.756 8.620 8.010 7.500 7.488 7.897 8.312 8.376 8.081 7.710 7.562 7.723 8.071 8.435 8.716 8.858 8.775 8.359 7.617 6.774 6.205 - 6.453 6.089 5.557 5.232 5.536 6.679 8.407 10.036 10.814 10.427 9.230 8.000 7.382 7.469 7.843 8.014 7.844 7.589 7.575 7.841 8.109 8.078 7.744 7.416 7.420 7.794 8.260 8.513 8.497 8.410 8.434 8.484 8.261 7.580 6.640 5.952 - 5.911 6.054 6.207 6.332 6.646 7.452 8.758 10.083 10.726 10.330 9.224 8.188 7.824 8.087 8.415 8.317 7.854 7.547 7.809 8.478 8.929 8.662 7.804 7.020 6.911 7.480 8.171 8.434 8.244 8.060 8.274 8.732 8.828 8.120 6.851 5.849 - 6.319 6.523 6.787 6.993 7.200 7.613 8.358 9.293 10.033 10.206 9.720 8.829 7.954 7.419 7.321 7.574 8.038 8.576 9.027 9.200 8.968 8.398 7.771 7.421 7.490 7.827 8.139 8.262 8.302 8.487 8.871 9.184 9.012 8.186 7.024 6.179 - 7.252 7.206 7.074 6.892 6.856 7.222 8.071 9.138 9.904 9.911 9.081 7.792 6.648 6.140 6.418 7.292 8.387 9.305 9.737 9.540 8.804 7.872 7.208 7.138 7.626 8.286 8.668 8.601 8.319 8.215 8.451 8.765 8.677 7.938 6.826 5.998 - 8.129 7.944 7.596 7.199 6.988 7.192 7.828 8.608 9.078 8.924 8.190 7.239 6.496 6.202 6.355 6.850 7.594 8.494 9.342 9.806 9.610 8.794 7.774 7.107 7.094 7.585 8.137 8.412 8.434 8.479 8.715 8.950 8.773 7.969 6.817 5.970 - 8.354 7.949 7.296 6.678 6.406 6.665 7.379 8.208 8.718 8.637 8.001 7.116 6.352 5.957 5.999 6.429 7.161 8.068 8.934 9.476 9.485 8.984 8.261 7.701 7.534 7.711 8.009 8.258 8.475 8.770 9.125 9.295 8.959 8.036 6.861 6.037 - 8.285 7.661 6.891 6.570 6.987 7.949 8.960 9.582 9.668 9.325 8.710 7.896 6.932 6.008 5.495 5.749 6.810 8.253 9.379 9.648 9.035 8.034 7.301 7.196 7.579 7.999 8.104 7.922 7.802 8.061 8.659 9.166 9.086 8.269 7.092 6.239 - 7.513 6.988 6.354 6.147 6.650 7.687 8.737 9.272 9.080 8.348 7.469 6.750 6.255 5.900 5.661 5.697 6.226 7.264 8.480 9.329 9.415 8.784 7.907 7.336 7.309 7.638 7.935 7.990 7.934 8.061 8.472 8.900 8.903 8.263 7.256 6.499 - 6.013 5.923 5.769 5.645 5.703 6.066 6.688 7.319 7.630 7.433 6.813 6.069 5.500 5.247 5.290 5.579 6.128 6.961 7.970 8.859 9.283 9.099 8.492 7.865 7.550 7.597 7.810 7.980 8.075 8.208 8.435 8.605 8.448 7.843 7.005 6.398 - 5.177 5.243 5.385 5.649 6.105 6.756 7.436 7.830 7.656 6.906 5.916 5.180 5.028 5.423 6.044 6.583 6.985 7.423 8.055 8.795 9.329 9.361 8.862 8.105 7.452 7.114 7.070 7.197 7.422 7.745 8.109 8.322 8.137 7.482 6.611 5.990 - 6.135 5.771 5.334 5.227 5.689 6.583 7.407 7.584 6.872 5.597 4.488 4.191 4.809 5.858 6.666 6.927 6.904 7.146 7.936 8.982 9.632 9.419 8.461 7.371 6.765 6.817 7.226 7.580 7.736 7.858 8.132 8.469 8.544 8.127 7.378 6.788 - 5.171 5.067 4.969 5.049 5.430 6.074 6.737 7.069 6.844 6.154 5.399 5.043 5.296 5.974 6.654 7.015 7.077 7.138 7.475 8.063 8.568 8.614 8.112 7.352 6.808 6.801 7.301 7.992 8.518 8.700 8.577 8.301 8.003 7.745 7.552 7.446 - 4.099 3.813 3.591 3.879 4.881 6.345 7.660 8.207 7.746 6.586 5.385 4.735 4.809 5.331 5.874 6.217 6.475 6.904 7.586 8.277 8.578 8.280 7.568 6.913 6.723 7.064 7.666 8.181 8.450 8.544 8.594 8.595 8.414 7.964 7.372 6.947 - 6.221 5.843 5.325 5.017 5.165 5.746 6.444 6.833 6.673 6.092 5.504 5.298 5.535 5.915 6.061 5.881 5.688 5.947 6.843 8.053 8.937 9.008 8.304 7.353 6.779 6.865 7.428 8.053 8.441 8.570 8.584 8.578 8.507 8.294 7.978 7.737 - 5.727 5.038 4.172 3.782 4.190 5.154 6.038 6.269 5.739 4.872 4.291 4.366 4.962 5.582 5.781 5.519 5.180 5.255 5.937 6.967 7.824 8.108 7.813 7.283 6.938 6.986 7.348 7.798 8.159 8.386 8.497 8.479 8.271 7.866 7.387 7.059 - 5.623 4.991 4.188 3.811 4.173 5.080 5.973 6.322 5.989 5.297 4.761 4.692 4.993 5.300 5.341 5.206 5.288 5.942 7.135 8.402 9.153 9.092 8.416 7.644 7.223 7.258 7.534 7.788 7.938 8.080 8.301 8.505 8.470 8.073 7.466 7.010 - 6.203 5.622 4.800 4.236 4.312 5.052 6.082 6.839 6.916 6.322 5.454 4.806 4.629 4.817 5.097 5.340 5.702 6.446 7.609 8.831 9.529 9.322 8.341 7.181 6.499 6.590 7.253 8.011 8.483 8.587 8.479 8.338 8.223 8.100 7.956 7.849 - 3.528 4.075 4.775 5.198 5.249 5.196 5.358 5.767 6.146 6.209 5.958 5.678 5.632 5.796 5.917 5.846 5.779 6.130 7.093 8.343 9.181 9.072 8.096 6.913 6.260 6.414 7.072 7.710 8.039 8.144 8.235 8.323 8.180 7.624 6.811 6.202 - 4.599 4.173 3.741 3.788 4.458 5.418 6.124 6.243 5.892 5.511 5.473 5.788 6.125 6.145 5.832 5.540 5.715 6.513 7.630 8.502 8.696 8.207 7.431 6.857 6.742 7.004 7.382 7.685 7.911 8.154 8.413 8.519 8.250 7.562 6.704 6.109 - 4.230 4.010 3.869 4.128 4.819 5.620 6.094 6.025 5.568 5.100 4.913 5.023 5.225 5.336 5.377 5.551 6.046 6.848 7.723 8.367 8.594 8.421 8.015 7.576 7.258 7.141 7.243 7.521 7.863 8.119 8.162 7.957 7.575 7.152 6.812 6.628 - 4.717 5.032 5.472 5.850 6.157 6.513 6.957 7.304 7.266 6.740 5.981 5.440 5.401 5.740 6.074 6.156 6.146 6.462 7.339 8.493 9.264 9.123 8.128 6.907 6.187 6.268 6.882 7.512 7.831 7.874 7.838 7.790 7.585 7.087 6.411 5.913 - 6.914 6.753 6.787 7.330 8.257 9.012 9.046 8.290 7.231 6.508 6.412 6.707 6.929 6.845 6.647 6.732 7.293 8.120 8.777 8.951 8.661 8.158 7.674 7.283 6.973 6.800 6.905 7.353 7.971 8.407 8.374 7.889 7.261 6.829 6.702 6.732 - 6.906 6.861 7.041 7.689 8.709 9.654 10.035 9.691 8.890 8.103 7.661 7.596 7.750 7.990 8.302 8.687 9.032 9.120 8.816 8.225 7.643 7.331 7.301 7.348 7.276 7.112 7.090 7.399 7.962 8.454 8.558 8.227 7.706 7.307 7.158 7.158 - 5.776 6.077 6.656 7.470 8.444 9.442 10.254 10.642 10.455 9.749 8.806 8.017 7.689 7.891 8.450 9.089 9.581 9.825 9.815 9.559 9.057 8.343 7.541 6.862 6.505 6.552 6.922 7.424 7.864 8.117 8.138 7.933 7.542 7.045 6.577 6.291 - 5.870 6.169 6.794 7.756 8.978 10.240 11.186 11.450 10.853 9.564 8.089 7.056 6.881 7.536 8.574 9.410 9.672 9.390 8.900 8.552 8.448 8.412 8.194 7.726 7.219 7.012 7.291 7.911 8.468 8.572 8.121 7.362 6.700 6.409 6.462 6.604 - 7.450 7.359 7.427 7.944 8.970 10.217 11.170 11.383 10.751 9.585 8.436 7.801 7.870 8.467 9.190 9.653 9.676 9.329 8.835 8.400 8.108 7.907 7.710 7.495 7.339 7.357 7.584 7.916 8.150 8.110 7.772 7.282 6.861 6.654 6.647 6.704 - 7.648 7.435 7.297 7.593 8.471 9.698 10.746 11.089 10.542 9.396 8.263 7.705 7.909 8.614 9.329 9.680 9.619 9.367 9.185 9.156 9.155 9.010 8.670 8.258 7.963 7.889 8.001 8.179 8.322 8.387 8.354 8.174 7.797 7.243 6.662 6.286 - 6.268 6.673 7.514 8.735 10.089 11.165 11.582 11.210 10.268 9.200 8.437 8.182 8.374 8.796 9.240 9.584 9.772 9.761 9.513 9.053 8.509 8.089 7.956 8.116 8.398 8.563 8.470 8.171 7.857 7.700 7.714 7.743 7.593 7.196 6.690 6.337 - 5.575 6.496 8.014 9.641 10.939 11.649 11.715 11.217 10.325 9.282 8.376 7.868 7.889 8.371 9.088 9.770 10.219 10.349 10.150 9.653 8.942 8.179 7.592 7.374 7.558 7.977 8.365 8.527 8.449 8.259 8.071 7.879 7.582 7.123 6.604 6.252 - 7.320 7.561 8.098 8.945 9.963 10.854 11.269 10.999 10.104 8.902 7.825 7.222 7.224 7.733 8.501 9.254 9.785 9.989 9.864 9.494 9.013 8.570 8.277 8.176 8.228 8.350 8.455 8.496 8.459 8.339 8.118 7.763 7.274 6.710 6.200 5.894 - 7.416 7.948 8.799 9.663 10.293 10.579 10.514 10.124 9.441 8.552 7.661 7.070 7.046 7.647 8.644 9.616 10.169 10.155 9.722 9.192 8.837 8.733 8.759 8.736 8.574 8.330 8.142 8.106 8.191 8.257 8.146 7.780 7.205 6.560 6.014 5.705 - 8.440 8.653 9.068 9.628 10.206 10.617 10.671 10.255 9.386 8.226 7.050 6.171 5.845 6.172 7.036 8.133 9.092 9.644 9.743 9.563 9.361 9.308 9.403 9.517 9.524 9.403 9.235 9.101 8.994 8.812 8.446 7.872 7.183 6.532 6.048 5.798 - 8.565 8.165 7.800 7.966 8.775 9.812 10.410 10.125 9.051 7.736 6.797 6.542 6.855 7.391 7.872 8.229 8.539 8.841 9.048 9.016 8.707 8.278 8.000 8.084 8.523 9.105 9.544 9.651 9.411 8.932 8.341 7.708 7.057 6.420 5.884 5.571 - 8.175 8.300 8.611 9.144 9.805 10.355 10.498 10.050 9.062 7.816 6.699 6.018 5.884 6.212 6.812 7.494 8.115 8.575 8.801 8.768 8.528 8.219 8.001 7.950 8.004 8.005 7.826 7.485 7.134 6.940 6.934 6.972 6.847 6.472 5.972 5.614 - 8.167 7.662 7.028 6.747 7.063 7.800 8.480 8.632 8.080 7.041 5.978 5.345 5.371 5.995 6.936 7.847 8.453 8.636 8.449 8.065 7.678 7.422 7.319 7.306 7.309 7.300 7.305 7.357 7.437 7.463 7.331 6.988 6.470 5.895 5.406 5.129 - 7.451 7.202 6.978 7.125 7.786 8.757 9.565 9.740 9.101 7.876 6.581 5.734 5.596 6.087 6.893 7.677 8.230 8.505 8.537 8.376 8.067 7.670 7.282 6.995 6.844 6.790 6.770 6.758 6.788 6.892 7.020 7.030 6.775 6.245 5.622 5.200 - 5.865 6.270 6.980 7.794 8.441 8.698 8.513 8.029 7.460 6.939 6.466 6.031 5.755 5.888 6.593 7.707 8.726 9.100 8.646 7.712 6.936 6.768 7.135 7.549 7.539 7.049 6.462 6.246 6.548 7.086 7.394 7.193 6.558 5.800 5.206 4.903 - 5.959 6.194 6.590 7.036 7.433 7.717 7.851 7.802 7.543 7.081 6.504 5.978 5.712 5.859 6.441 7.313 8.212 8.866 9.102 8.917 8.463 7.963 7.598 7.434 7.411 7.410 7.346 7.221 7.110 7.086 7.152 7.230 7.220 7.079 6.870 6.715 - 4.883 5.639 6.881 8.158 9.017 9.193 8.730 7.941 7.218 6.794 6.624 6.482 6.193 5.834 5.716 6.156 7.208 8.540 9.597 9.922 9.430 8.445 7.490 6.974 6.996 7.355 7.725 7.872 7.758 7.512 7.320 7.306 7.484 7.776 8.062 8.236 - 4.732 5.552 6.867 8.158 8.929 8.947 8.362 7.607 7.114 7.028 7.132 7.063 6.651 6.111 5.910 6.389 7.440 8.522 9.019 8.685 7.827 7.091 7.004 7.622 8.525 9.133 9.095 8.477 7.657 7.044 6.839 6.981 7.262 7.494 7.608 7.638 - 5.624 6.231 7.164 8.018 8.463 8.377 7.846 7.083 6.320 5.739 5.423 5.348 5.422 5.569 5.818 6.291 7.078 8.068 8.913 9.214 8.831 8.069 7.529 7.691 8.536 9.519 9.967 9.583 8.656 7.800 7.444 7.511 7.549 7.187 6.500 5.946 - 6.454 7.193 8.292 9.249 9.745 9.745 9.375 8.750 7.936 7.033 6.247 5.803 5.779 6.044 6.401 6.788 7.327 8.121 9.002 9.536 9.352 8.542 7.725 7.632 8.511 9.872 10.830 10.788 9.885 8.816 8.208 8.110 8.051 7.573 6.728 6.050 - 7.371 7.185 7.077 7.348 8.052 8.879 9.313 8.988 7.971 6.744 5.875 5.614 5.755 5.884 5.812 5.796 6.312 7.551 9.094 10.114 10.011 8.958 7.852 7.656 8.635 10.129 11.080 10.871 9.774 8.650 8.174 8.287 8.349 7.810 6.775 5.937 - 7.630 7.532 7.554 7.945 8.739 9.610 9.993 9.440 7.982 6.204 4.912 4.596 5.098 5.781 6.087 6.014 6.085 6.811 8.129 9.351 9.707 9.046 8.030 7.619 8.267 9.529 10.449 10.373 9.478 8.539 8.179 8.297 8.218 7.407 6.061 5.013 - 6.570 6.639 6.958 7.691 8.737 9.658 9.885 9.104 7.537 5.887 4.913 4.930 5.609 6.265 6.427 6.216 6.214 6.909 8.195 9.382 9.748 9.158 8.222 7.811 8.351 9.478 10.371 10.445 9.798 9.031 8.640 8.552 8.249 7.346 6.054 5.091 - 5.218 6.033 7.315 8.586 9.488 9.879 9.742 9.099 8.036 6.796 5.784 5.366 5.620 6.254 6.836 7.145 7.327 7.705 8.393 9.112 9.400 9.047 8.360 7.960 8.285 9.214 10.161 10.550 10.245 9.568 8.917 8.397 7.793 6.901 5.864 5.141 - 3.593 5.032 7.130 8.913 9.865 10.103 10.008 9.753 9.206 8.245 7.082 6.201 5.945 6.195 6.507 6.584 6.606 7.036 8.072 9.301 9.967 9.642 8.675 7.944 8.106 9.019 9.898 10.046 9.467 8.783 8.551 8.671 8.484 7.481 5.920 4.727 - 4.796 5.245 6.079 7.155 8.247 9.072 9.367 9.012 8.121 7.013 6.059 5.484 5.281 5.297 5.431 5.750 6.400 7.381 8.406 9.020 8.931 8.282 7.593 7.391 7.801 8.459 8.832 8.672 8.205 7.884 7.928 8.077 7.813 6.864 5.542 4.578 - 5.602 6.484 7.739 8.717 9.059 8.852 8.430 8.054 7.746 7.388 6.922 6.432 6.068 5.922 6.007 6.330 6.920 7.731 8.524 8.910 8.618 7.766 6.874 6.517 6.873 7.577 8.031 7.928 7.503 7.280 7.524 7.919 7.819 6.858 5.384 4.277 - 5.403 6.381 7.837 9.092 9.691 9.576 8.985 8.207 7.435 6.776 6.306 6.080 6.071 6.174 6.307 6.526 6.993 7.766 8.610 9.056 8.744 7.772 6.718 6.241 6.564 7.302 7.805 7.728 7.312 7.108 7.385 7.795 7.642 6.545 4.901 3.676 - 5.527 6.621 8.187 9.381 9.658 9.027 7.939 6.922 6.283 6.028 5.984 5.967 5.888 5.776 5.761 6.019 6.658 7.588 8.471 8.870 8.540 7.659 6.770 6.427 6.792 7.522 8.053 8.051 7.650 7.268 7.171 7.201 6.929 6.099 4.953 4.117 - 4.311 5.382 6.951 8.253 8.800 8.572 7.876 7.056 6.323 5.784 5.509 5.521 5.713 5.867 5.833 5.718 5.854 6.488 7.450 8.160 8.049 7.081 5.889 5.333 5.812 6.933 7.835 7.906 7.259 6.547 6.303 6.432 6.341 5.568 4.311 3.339 - 5.853 6.353 7.176 8.021 8.571 8.617 8.156 7.395 6.644 6.143 5.939 5.897 5.846 5.750 5.763 6.098 6.804 7.632 8.134 7.956 7.124 6.078 5.405 5.441 6.040 6.697 6.933 6.643 6.137 5.837 5.903 6.087 5.957 5.297 4.343 3.643 - 4.522 5.466 6.891 8.166 8.840 8.818 8.285 7.501 6.670 5.937 5.419 5.197 5.251 5.466 5.736 6.073 6.600 7.365 8.165 8.586 8.299 7.374 6.329 5.789 6.016 6.716 7.295 7.354 6.992 6.648 6.627 6.783 6.650 5.924 4.827 4.001 - 4.635 5.645 7.130 8.360 8.834 8.511 7.714 6.864 6.236 5.898 5.772 5.728 5.656 5.514 5.375 5.418 5.815 6.553 7.341 7.750 7.522 6.815 6.140 5.983 6.408 6.995 7.192 6.807 6.181 5.876 6.136 6.616 6.650 5.858 4.552 3.553 - 4.939 5.532 6.449 7.302 7.791 7.825 7.514 7.051 6.584 6.165 5.779 5.416 5.119 4.976 5.074 5.440 6.007 6.624 7.107 7.315 7.203 6.845 6.381 5.948 5.617 5.397 5.281 5.285 5.439 5.715 5.975 6.009 5.655 4.945 4.138 3.601 - 4.701 5.377 6.351 7.136 7.444 7.300 6.911 6.467 6.052 5.693 5.431 5.292 5.222 5.099 4.883 4.745 4.998 5.803 6.910 7.712 7.667 6.757 5.569 4.866 4.981 5.568 5.939 5.697 5.090 4.752 5.058 5.719 6.001 5.410 4.199 3.220 - 5.430 5.961 6.666 7.126 7.178 6.971 6.728 6.491 6.102 5.443 4.655 4.121 4.177 4.849 5.834 6.749 7.383 7.729 7.816 7.570 6.894 5.890 4.954 4.571 4.940 5.773 6.494 6.692 6.429 6.111 6.057 6.167 6.021 5.328 4.288 3.505 - 5.138 5.229 5.588 6.296 7.096 7.476 7.065 5.997 4.887 4.388 4.692 5.406 5.914 5.931 5.736 5.903 6.738 7.932 8.744 8.567 7.426 5.987 5.075 5.098 5.805 6.553 6.822 6.567 6.154 5.988 6.146 6.328 6.124 5.390 4.405 3.704 - 3.532 4.716 6.284 7.264 7.242 6.592 6.062 6.104 6.539 6.795 6.464 5.670 4.950 4.801 5.306 6.132 6.828 7.138 7.071 6.768 6.338 5.843 5.374 5.076 5.069 5.331 5.684 5.930 5.993 5.937 5.831 5.633 5.215 4.531 3.756 3.231 - 4.938 5.631 6.475 6.870 6.668 6.268 6.207 6.632 7.155 7.203 6.548 5.543 4.852 4.937 5.724 6.710 7.358 7.434 7.045 6.444 5.832 5.325 5.022 5.031 5.376 5.909 6.356 6.499 6.337 6.047 5.791 5.538 5.107 4.397 3.570 2.999 - 5.351 5.744 6.225 6.472 6.454 6.473 6.867 7.644 8.367 8.441 7.589 6.138 4.866 4.502 5.234 6.598 7.809 8.273 7.925 7.164 6.502 6.206 6.194 6.203 6.056 5.793 5.595 5.596 5.747 5.846 5.690 5.216 4.532 3.834 3.297 3.014 - 4.913 5.364 5.889 6.119 6.070 6.134 6.668 7.560 8.224 8.065 7.030 5.746 5.103 5.592 6.948 8.361 9.060 8.798 7.895 6.890 6.148 5.719 5.478 5.348 5.361 5.570 5.925 6.267 6.428 6.333 5.998 5.472 4.799 4.050 3.372 2.960 - 5.535 5.681 5.847 5.923 5.958 6.154 6.682 7.455 8.089 8.118 7.358 6.137 5.179 5.177 6.313 8.081 9.564 9.990 9.192 7.682 6.277 5.589 5.710 6.288 6.864 7.198 7.343 7.466 7.629 7.695 7.450 6.785 5.795 4.731 3.865 3.389 - 6.690 6.180 5.586 5.421 5.889 6.776 7.656 8.192 8.261 7.887 7.151 6.232 5.511 5.494 6.491 8.246 9.916 10.541 9.718 7.935 6.259 5.572 5.986 6.873 7.475 7.518 7.329 7.404 7.868 8.331 8.246 7.389 6.039 4.721 3.815 3.399 - 7.357 6.874 6.281 6.075 6.552 7.594 8.721 9.360 9.164 8.204 6.920 5.898 5.585 6.099 7.203 8.432 9.292 9.465 8.929 7.959 6.997 6.438 6.437 6.834 7.277 7.452 7.297 7.029 6.961 7.223 7.600 7.635 6.947 5.558 3.969 2.910 - 6.985 6.703 6.422 6.479 6.999 7.794 8.485 8.735 8.402 7.563 6.444 5.366 4.695 4.747 5.614 7.018 8.354 8.982 8.616 7.531 6.393 5.815 5.955 6.457 6.777 6.612 6.115 5.725 5.784 6.243 6.685 6.614 5.794 4.412 2.979 2.076 - 6.157 6.656 7.359 7.892 8.050 7.898 7.646 7.422 7.158 6.670 5.881 4.982 4.377 4.441 5.252 6.497 7.628 8.162 7.937 7.164 6.266 5.619 5.361 5.380 5.448 5.413 5.306 5.296 5.530 5.969 6.344 6.291 5.587 4.339 2.990 2.115 - 3.280 4.616 6.479 7.864 8.275 7.963 7.557 7.445 7.474 7.188 6.340 5.200 4.384 4.370 5.136 6.197 6.968 7.144 6.800 6.228 5.695 5.324 5.116 5.018 4.958 4.856 4.679 4.499 4.488 4.769 5.243 5.556 5.318 4.427 3.241 2.400 - 3.009 3.870 5.060 5.936 6.232 6.193 6.275 6.668 7.085 7.007 6.166 4.865 3.838 3.743 4.687 6.139 7.292 7.595 7.060 6.169 5.481 5.260 5.361 5.419 5.150 4.555 3.902 3.536 3.646 4.151 4.741 5.056 4.881 4.270 3.520 3.013 - 5.636 5.592 5.588 5.705 5.942 6.217 6.435 6.546 6.524 6.328 5.912 5.330 4.808 4.674 5.120 5.980 6.758 6.931 6.350 5.377 4.641 4.562 5.030 5.511 5.482 4.844 3.977 3.421 3.461 3.948 4.482 4.731 4.635 4.358 4.095 3.954 - 5.802 6.040 6.355 6.550 6.541 6.390 6.212 6.044 5.805 5.397 4.847 4.360 4.211 4.546 5.248 5.988 6.423 6.406 6.052 5.627 5.361 5.323 5.440 5.616 5.828 6.124 6.535 6.986 7.306 7.330 7.016 6.485 5.942 5.553 5.362 5.303 - 4.954 5.489 6.170 6.542 6.449 6.098 5.809 5.693 5.584 5.259 4.719 4.240 4.131 4.442 4.902 5.151 5.049 4.773 4.623 4.742 5.000 5.160 5.124 5.024 5.079 5.361 5.715 5.899 5.802 5.522 5.255 5.102 5.008 4.865 4.656 4.492 - 3.822 4.445 5.360 6.096 6.310 5.954 5.265 4.586 4.160 4.029 4.078 4.171 4.256 4.361 4.515 4.678 4.752 4.676 4.503 4.384 4.461 4.751 5.117 5.371 5.406 5.272 5.111 5.035 5.033 5.001 4.848 4.585 4.315 4.144 4.097 4.108 - 5.195 5.179 5.250 5.487 5.816 6.013 5.858 5.309 4.563 3.927 3.631 3.695 3.974 4.292 4.564 4.797 5.016 5.195 5.271 5.225 5.131 5.122 5.290 5.603 5.924 6.103 6.079 5.909 5.706 5.540 5.389 5.174 4.833 4.389 3.958 3.690 - 5.683 6.075 6.688 7.216 7.337 6.887 6.000 5.050 4.422 4.233 4.271 4.204 3.897 3.549 3.520 3.983 4.734 5.338 5.495 5.291 5.106 5.262 5.741 6.229 6.430 6.340 6.225 6.329 6.602 6.728 6.421 5.710 4.929 4.432 4.308 4.360 - 4.358 5.104 6.148 6.872 6.857 6.121 5.077 4.233 3.873 3.915 4.053 4.047 3.925 3.938 4.305 4.994 5.710 6.130 6.158 5.990 5.926 6.095 6.348 6.415 6.171 5.784 5.570 5.713 6.079 6.308 6.111 5.501 4.767 4.229 4.000 3.963 - 2.222 3.484 5.266 6.587 6.862 6.219 5.302 4.757 4.805 5.194 5.478 5.386 4.974 4.524 4.306 4.422 4.795 5.282 5.757 6.145 6.404 6.514 6.487 6.372 6.231 6.097 5.955 5.773 5.539 5.285 5.052 4.856 4.678 4.497 4.329 4.221 - 3.648 4.591 5.856 6.637 6.490 5.612 4.657 4.253 4.579 5.295 5.846 5.875 5.446 4.934 4.723 4.937 5.411 5.872 6.152 6.267 6.340 6.453 6.587 6.669 6.664 6.610 6.550 6.455 6.214 5.736 5.065 4.402 3.993 3.950 4.163 4.375 - 4.915 5.387 5.931 6.081 5.692 5.061 4.686 4.877 5.538 6.259 6.630 6.498 6.006 5.437 5.037 4.932 5.156 5.675 6.381 7.071 7.509 7.553 7.264 6.878 6.649 6.671 6.830 6.912 6.767 6.401 5.925 5.445 4.999 4.587 4.238 4.029 - 4.010 5.357 6.898 7.345 6.390 4.925 4.212 4.772 6.011 6.842 6.669 5.834 5.171 5.181 5.642 5.967 5.876 5.690 5.963 6.852 7.890 8.383 8.053 7.283 6.751 6.816 7.238 7.468 7.181 6.522 5.882 5.474 5.169 4.733 4.155 3.718 - 5.014 6.105 7.339 7.697 7.027 6.156 6.094 7.061 8.255 8.560 7.533 5.772 4.383 4.054 4.599 5.294 5.631 5.723 6.053 6.872 7.881 8.496 8.401 7.821 7.287 7.140 7.271 7.320 7.072 6.636 6.250 5.969 5.596 4.941 4.112 3.513 - 4.906 5.429 6.074 6.447 6.555 6.764 7.365 8.178 8.628 8.262 7.212 6.149 5.734 6.073 6.674 6.942 6.739 6.481 6.694 7.472 8.358 8.746 8.424 7.736 7.245 7.234 7.514 7.678 7.501 7.089 6.660 6.249 5.661 4.748 3.689 2.955 - 4.825 5.190 5.707 6.120 6.327 6.427 6.595 6.886 7.162 7.197 6.876 6.313 5.780 5.516 5.559 5.757 5.925 6.015 6.146 6.473 7.011 7.572 7.881 7.770 7.317 6.799 6.500 6.517 6.697 6.753 6.445 5.728 4.756 3.778 3.018 2.612 - 4.027 4.895 5.981 6.563 6.466 6.165 6.301 7.053 7.957 8.307 7.774 6.666 5.642 5.171 5.233 5.478 5.639 5.765 6.092 6.717 7.449 7.959 8.083 7.946 7.809 7.804 7.834 7.721 7.413 7.026 6.675 6.294 5.677 4.726 3.658 2.934 - 5.188 5.495 5.834 5.942 5.856 5.908 6.404 7.297 8.145 8.435 7.976 7.028 6.083 5.493 5.280 5.255 5.279 5.407 5.796 6.494 7.338 8.059 8.467 8.545 8.383 8.061 7.616 7.109 6.684 6.481 6.480 6.432 6.015 5.122 4.030 3.273 - 5.475 5.964 6.570 6.891 6.857 6.782 7.050 7.730 8.476 8.783 8.379 7.405 6.272 5.348 4.769 4.493 4.474 4.746 5.341 6.164 6.988 7.594 7.916 8.047 8.091 8.046 7.841 7.484 7.138 6.994 7.044 6.984 6.417 5.226 3.787 2.794 - 5.381 5.972 6.677 6.967 6.717 6.305 6.271 6.845 7.752 8.436 8.468 7.802 6.720 5.583 4.653 4.072 3.928 4.242 4.889 5.594 6.074 6.256 6.339 6.601 7.106 7.596 7.710 7.348 6.814 6.559 6.725 6.931 6.555 5.313 3.625 2.408 - 5.825 5.906 6.010 6.099 6.216 6.446 6.811 7.178 7.314 7.044 6.391 5.585 4.914 4.541 4.439 4.463 4.492 4.516 4.618 4.886 5.353 5.972 6.642 7.217 7.535 7.481 7.079 6.532 6.142 6.099 6.310 6.414 6.025 5.055 3.855 3.024 - 3.706 4.146 4.788 5.342 5.684 5.915 6.217 6.643 7.022 7.080 6.662 5.883 5.079 4.581 4.508 4.709 4.904 4.898 4.725 4.618 4.838 5.489 6.426 7.306 7.768 7.625 6.980 6.171 5.585 5.429 5.606 5.784 5.628 5.049 4.279 3.736 - 5.005 5.210 5.456 5.571 5.538 5.509 5.654 5.985 6.324 6.440 6.243 5.856 5.503 5.323 5.273 5.200 5.010 4.765 4.649 4.807 5.232 5.756 6.167 6.326 6.228 5.965 5.669 5.451 5.372 5.413 5.465 5.366 4.994 4.370 3.694 3.251 - 4.900 5.374 5.953 6.206 5.995 5.577 5.374 5.603 6.083 6.374 6.124 5.350 4.436 3.868 3.917 4.502 5.299 5.973 6.366 6.518 6.574 6.644 6.736 6.766 6.632 6.287 5.786 5.281 4.936 4.833 4.895 4.922 4.716 4.237 3.653 3.251 - 6.435 6.101 5.606 5.157 4.848 4.648 4.510 4.487 4.695 5.171 5.753 6.151 6.159 5.852 5.560 5.631 6.160 6.913 7.511 7.715 7.579 7.356 7.263 7.305 7.311 7.113 6.712 6.281 6.020 5.996 6.102 6.143 5.986 5.641 5.251 4.995 - 5.023 4.894 4.767 4.775 4.932 5.129 5.253 5.314 5.434 5.705 6.055 6.265 6.159 5.795 5.493 5.619 6.292 7.259 8.033 8.233 7.847 7.230 6.845 6.942 7.415 7.923 8.163 8.072 7.828 7.676 7.728 7.899 8.004 7.926 7.714 7.537 - 3.450 4.057 4.983 5.793 6.124 5.884 5.303 4.791 4.682 5.014 5.533 5.898 5.961 5.875 5.961 6.418 7.137 7.765 7.990 7.795 7.486 7.459 7.894 8.628 9.283 9.552 9.397 9.043 8.779 8.757 8.917 9.080 9.091 8.926 8.685 8.513 - 3.692 4.527 5.638 6.350 6.376 5.965 5.600 5.572 5.788 5.954 5.897 5.710 5.612 5.715 5.958 6.237 6.574 7.097 7.855 8.669 9.229 9.363 9.219 9.153 9.402 9.854 10.155 10.052 9.659 9.358 9.432 9.770 9.957 9.672 9.022 8.481 - 4.905 5.051 5.304 5.600 5.889 6.151 6.394 6.632 6.843 6.961 6.905 6.648 6.277 5.988 6.009 6.463 7.277 8.186 8.858 9.078 8.864 8.465 8.209 8.327 8.829 9.520 10.129 10.460 10.476 10.283 10.034 9.847 9.755 9.734 9.742 9.751 - 6.817 6.534 6.163 5.957 6.059 6.396 6.731 6.828 6.614 6.226 5.911 5.855 6.070 6.436 6.831 7.239 7.735 8.363 9.031 9.539 9.731 9.643 9.500 9.553 9.868 10.277 10.512 10.433 10.148 9.916 9.924 10.136 10.341 10.353 10.181 10.007 - 5.433 5.693 6.176 6.736 7.118 7.102 6.709 6.262 6.171 6.587 7.226 7.558 7.265 6.560 6.094 6.456 7.687 9.205 10.224 10.334 9.777 9.212 9.181 9.717 10.377 10.654 10.380 9.824 9.440 9.503 9.923 10.350 10.450 10.141 9.627 9.246 - 7.254 6.881 6.521 6.557 6.974 7.370 7.354 6.960 6.648 6.866 7.597 8.326 8.497 8.048 7.519 7.606 8.544 9.857 10.721 10.618 9.734 8.779 8.402 8.710 9.272 9.554 9.372 9.007 8.904 9.259 9.840 10.159 9.841 8.902 7.762 6.993 - 9.132 8.504 7.681 7.166 7.149 7.405 7.564 7.464 7.269 7.256 7.506 7.812 7.893 7.704 7.524 7.714 8.356 9.117 9.482 9.170 8.378 7.640 7.402 7.689 8.112 8.211 7.837 7.256 6.923 7.114 7.703 8.264 8.380 7.941 7.221 6.687 - 12.534 12.085 11.609 11.575 12.077 12.746 13.039 12.661 11.739 10.644 9.664 8.851 8.157 7.659 7.606 8.186 9.229 10.174 10.410 9.741 8.593 7.733 7.707 8.425 9.238 9.453 8.881 7.987 7.526 7.956 9.059 10.086 10.285 9.449 8.080 7.062 - 13.410 12.899 12.419 12.577 13.508 14.719 15.449 15.221 14.141 12.737 11.538 10.771 10.391 10.323 10.600 11.262 12.125 12.731 12.606 11.652 10.321 9.358 9.271 9.950 10.746 10.979 10.480 9.735 9.496 10.172 11.453 12.478 12.435 11.162 9.321 7.997 - 12.829 12.566 12.402 12.765 13.782 15.113 16.132 16.301 15.505 14.096 12.654 11.662 11.311 11.529 12.137 12.945 13.735 14.211 14.068 13.190 11.828 10.551 9.910 10.049 10.588 10.917 10.726 10.312 10.364 11.342 12.934 14.109 13.806 11.787 8.981 6.976 - 12.500 12.331 12.178 12.314 12.930 13.975 15.100 15.762 15.486 14.140 12.073 10.003 8.698 8.612 9.677 11.357 12.914 13.746 13.612 12.676 11.366 10.144 9.316 8.939 8.880 8.963 9.113 9.381 9.853 10.482 11.004 11.037 10.321 8.956 7.441 6.446 - 12.630 12.333 12.045 12.141 12.786 13.794 14.727 15.132 14.751 13.612 12.009 10.407 9.324 9.146 9.940 11.354 12.729 13.425 13.182 12.257 11.229 10.588 10.417 10.412 10.196 9.684 9.182 9.139 9.768 10.813 11.669 11.734 10.784 9.105 7.358 6.258 - 12.294 12.129 11.894 11.800 12.121 12.994 14.193 15.118 15.109 13.916 11.964 10.167 9.373 9.847 11.150 12.488 13.226 13.195 12.626 11.867 11.145 10.534 10.049 9.706 9.499 9.378 9.299 9.322 9.609 10.246 11.036 11.483 11.089 9.775 8.076 6.887 - 12.413 12.136 11.752 11.573 11.921 12.907 14.245 15.289 15.377 14.280 12.434 10.734 10.003 10.487 11.754 13.023 13.666 13.521 12.841 12.010 11.287 10.733 10.300 9.937 9.624 9.372 9.236 9.335 9.795 10.601 11.463 11.866 11.373 9.980 8.255 7.070 - 12.582 12.310 11.936 11.760 12.100 13.082 14.456 15.622 15.925 15.081 13.423 11.768 10.940 11.273 12.433 13.667 14.288 14.054 13.210 12.232 11.502 11.117 10.930 10.720 10.363 9.918 9.599 9.663 10.245 11.207 12.117 12.415 11.729 10.170 8.362 7.156 - 12.741 12.548 12.262 12.110 12.399 13.310 14.669 15.901 16.318 15.579 13.993 12.395 11.629 12.021 13.194 14.362 14.849 14.464 13.514 12.520 11.881 11.699 11.794 11.854 11.602 10.961 10.151 9.638 9.883 10.983 12.455 13.391 13.006 11.220 8.853 7.191 - 12.758 12.588 12.319 12.146 12.369 13.204 14.526 15.794 16.302 15.656 14.118 12.525 11.776 12.248 13.557 14.833 15.294 14.719 13.500 12.318 11.694 11.723 12.108 12.395 12.258 11.668 10.913 10.445 10.626 11.469 12.544 13.160 12.768 11.362 9.569 8.329 - 12.710 12.569 12.328 12.153 12.344 13.146 14.466 15.762 16.308 15.692 14.189 12.657 11.999 12.545 13.844 14.990 15.244 14.487 13.218 12.155 11.771 12.059 12.628 12.973 12.754 11.961 10.917 10.137 10.070 10.803 11.927 12.697 12.466 11.151 9.370 8.111 - 12.433 12.336 12.118 11.893 11.992 12.755 14.151 15.589 16.220 15.556 13.918 12.307 11.715 12.419 13.800 14.829 14.808 13.803 12.486 11.588 11.428 11.824 12.328 12.533 12.238 11.478 10.499 9.719 9.579 10.265 11.471 12.448 12.436 11.230 9.430 8.114 - 12.334 12.216 11.971 11.739 11.863 12.675 14.105 15.526 16.086 15.338 13.674 12.132 11.667 12.460 13.805 14.665 14.435 13.310 12.030 11.284 11.275 11.719 12.162 12.280 11.971 11.297 10.448 9.751 9.598 10.207 11.350 12.341 12.428 11.363 9.688 8.442 - 12.473 12.342 12.086 11.858 12.010 12.860 14.311 15.715 16.218 15.405 13.720 12.231 11.882 12.791 14.177 14.962 14.568 13.266 11.882 11.138 11.206 11.739 12.238 12.383 12.111 11.512 10.754 10.089 9.839 10.217 11.078 11.874 11.961 11.092 9.699 8.654 - 12.597 12.503 12.288 12.072 12.202 13.007 14.406 15.744 16.168 15.294 13.617 12.236 12.049 13.067 14.416 15.027 14.446 13.094 11.839 11.304 11.486 11.936 12.210 12.151 11.830 11.342 10.740 10.169 9.928 10.283 11.125 11.845 11.688 10.374 8.460 7.059 - 12.881 12.705 12.390 12.128 12.278 13.113 14.477 15.698 15.989 15.066 13.477 12.264 12.195 13.168 14.302 14.640 13.878 12.522 11.412 11.062 11.379 11.904 12.251 12.312 12.138 11.735 11.079 10.325 9.883 10.152 11.078 11.990 12.001 10.737 8.765 7.291 - 12.976 12.646 12.149 11.820 12.051 13.015 14.410 15.521 15.668 14.758 13.433 12.628 12.840 13.730 14.396 14.123 12.948 11.588 10.819 10.891 11.451 11.973 12.211 12.243 12.170 11.866 11.118 10.022 9.134 9.110 10.060 11.264 11.622 10.560 8.607 7.081 - 12.946 12.387 11.663 11.334 11.794 12.983 14.369 15.241 15.173 14.330 13.359 12.927 13.216 13.798 13.978 13.349 12.098 10.835 10.129 10.135 10.601 11.173 11.650 11.988 12.110 11.822 10.995 9.835 8.915 8.813 9.607 10.697 11.196 10.626 9.344 8.304 - 12.809 12.010 11.081 10.835 11.607 13.007 14.243 14.715 14.421 13.858 13.561 13.665 13.845 13.641 12.860 11.733 10.718 10.160 10.092 10.318 10.637 10.995 11.416 11.833 12.007 11.664 10.759 9.610 8.764 8.643 9.236 10.090 10.622 10.531 9.999 9.526 - 12.870 12.008 11.013 10.715 11.362 12.476 13.346 13.666 13.715 13.944 14.393 14.546 13.771 11.970 9.806 8.287 8.031 8.847 9.944 10.583 10.587 10.326 10.281 10.588 10.960 10.974 10.434 9.496 8.525 7.856 7.661 7.959 8.668 9.612 10.520 11.082 - 12.174 11.726 11.163 10.866 10.956 11.265 11.565 11.809 12.115 12.510 12.726 12.318 11.058 9.251 7.646 6.946 7.291 8.169 8.827 8.854 8.461 8.240 8.623 9.508 10.340 10.542 9.941 8.860 7.867 7.412 7.621 8.334 9.269 10.171 10.863 11.235 - 10.146 9.798 9.270 8.817 8.650 8.827 9.230 9.630 9.810 9.670 9.257 8.711 8.189 7.808 7.636 7.695 7.944 8.274 8.545 8.674 8.719 8.864 9.265 9.867 10.355 10.329 9.620 8.494 7.553 7.351 7.996 9.066 9.899 10.083 9.729 9.334 - 9.573 9.110 8.360 7.598 7.086 6.979 7.283 7.865 8.512 8.989 9.118 8.844 8.275 7.654 7.259 7.254 7.580 7.981 8.160 7.991 7.628 7.411 7.621 8.244 8.943 9.277 9.023 8.359 7.763 7.670 8.162 8.904 9.404 9.382 8.971 8.587 - 10.976 9.910 8.327 6.981 6.396 6.621 7.322 8.063 8.557 8.722 8.600 8.258 7.786 7.335 7.099 7.198 7.558 7.908 7.963 7.647 7.184 6.949 7.190 7.823 8.487 8.810 8.693 8.383 8.280 8.617 9.271 9.838 9.918 9.415 8.622 8.038 - 11.136 9.902 8.332 7.475 7.689 8.430 8.800 8.342 7.362 6.561 6.372 6.630 6.838 6.706 6.423 6.408 6.845 7.461 7.789 7.635 7.279 7.218 7.687 8.426 8.907 8.812 8.324 7.966 8.166 8.917 9.811 10.366 10.358 9.908 9.339 8.966 - 10.665 9.749 8.487 7.614 7.520 8.014 8.511 8.491 7.867 7.000 6.383 6.256 6.465 6.645 6.557 6.277 6.111 6.310 6.862 7.521 8.034 8.348 8.601 8.933 9.291 9.453 9.251 8.796 8.471 8.654 9.390 10.305 10.856 10.750 10.179 9.671 - 10.038 9.745 9.153 8.333 7.485 6.873 6.658 6.775 6.979 7.031 6.876 6.653 6.544 6.597 6.695 6.683 6.545 6.442 6.598 7.117 7.900 8.704 9.294 9.548 9.466 9.131 8.685 8.323 8.261 8.632 9.373 10.213 10.809 10.978 10.813 10.606 - 9.710 9.221 8.452 7.704 7.216 7.064 7.165 7.346 7.436 7.329 7.017 6.596 6.229 6.072 6.182 6.467 6.739 6.857 6.853 6.937 7.341 8.110 9.007 9.624 9.650 9.095 8.315 7.799 7.875 8.525 9.419 10.138 10.412 10.241 9.857 9.562 - 10.080 8.978 7.523 6.608 6.587 7.075 7.366 7.056 6.338 5.732 5.583 5.780 5.939 5.815 5.535 5.436 5.704 6.192 6.587 6.756 6.904 7.382 8.305 9.367 10.028 9.942 9.255 8.513 8.269 8.698 9.504 10.168 10.308 9.901 9.251 8.782 - 10.051 9.665 9.028 8.342 7.793 7.491 7.446 7.572 7.705 7.654 7.295 6.668 5.993 5.566 5.560 5.894 6.283 6.458 6.402 6.377 6.721 7.541 8.572 9.334 9.472 9.026 8.412 8.124 8.405 9.107 9.842 10.257 10.235 9.906 9.508 9.253 - 10.181 9.611 8.688 7.775 7.242 7.309 7.937 8.811 9.477 9.571 9.014 8.070 7.192 6.751 6.810 7.102 7.235 6.991 6.495 6.133 6.277 7.002 8.013 8.839 9.135 8.896 8.428 8.120 8.193 8.599 9.105 9.473 9.597 9.524 9.375 9.268 - 9.649 9.005 8.057 7.301 7.138 7.655 8.582 9.438 9.797 9.513 8.795 8.060 7.671 7.714 7.955 8.016 7.650 6.929 6.223 5.957 6.334 7.192 8.105 8.649 8.651 8.264 7.825 7.626 7.751 8.087 8.453 8.736 8.934 9.096 9.241 9.334 - 8.293 7.769 7.077 6.716 7.025 7.993 9.270 10.360 10.883 10.744 10.156 9.509 9.154 9.211 9.499 9.638 9.281 8.364 7.185 6.265 6.033 6.551 7.472 8.256 8.521 8.258 7.792 7.517 7.629 8.026 8.428 8.598 8.472 8.161 7.836 7.640 - 9.234 8.609 7.765 7.299 7.658 8.872 10.486 11.781 12.165 11.510 10.231 9.045 8.545 8.863 9.623 10.212 10.163 9.418 8.320 7.373 6.951 7.121 7.658 8.205 8.470 8.354 7.978 7.599 7.461 7.652 8.046 8.372 8.385 8.031 7.501 7.115 - 7.685 7.583 7.503 7.650 8.211 9.231 10.512 11.641 12.171 11.876 10.918 9.793 9.067 9.042 9.582 10.202 10.369 9.825 8.732 7.560 6.808 6.730 7.219 7.900 8.358 8.366 7.987 7.506 7.240 7.346 7.730 8.119 8.246 8.028 7.620 7.307 - 9.217 8.402 7.395 6.988 7.588 8.971 10.493 11.540 11.856 11.555 10.916 10.183 9.524 9.091 9.000 9.227 9.510 9.445 8.769 7.620 6.533 6.104 6.570 7.602 8.525 8.776 8.288 7.501 7.009 7.134 7.715 8.255 8.294 7.728 6.874 6.255 - 8.554 7.932 7.210 7.040 7.735 9.065 10.444 11.327 11.504 11.107 10.434 9.756 9.247 9.011 9.065 9.292 9.421 9.152 8.390 7.384 6.637 6.578 7.240 8.204 8.868 8.851 8.232 7.455 6.995 7.035 7.387 7.668 7.586 7.118 6.503 6.079 - 9.075 8.373 7.574 7.420 8.237 9.699 11.079 11.742 11.511 10.673 9.714 9.024 8.769 8.921 9.327 9.731 9.826 9.376 8.407 7.281 6.541 6.570 7.311 8.270 8.846 8.729 8.093 7.427 7.167 7.394 7.825 8.045 7.801 7.147 6.385 5.884 - 7.816 7.764 7.809 8.162 8.960 10.140 11.392 12.246 12.289 11.401 9.894 8.414 7.630 7.856 8.842 9.895 10.284 9.698 8.440 7.226 6.708 7.055 7.878 8.528 8.560 8.010 7.315 6.961 7.137 7.637 8.043 8.024 7.521 6.736 5.983 5.535 - 7.881 7.685 7.507 7.651 8.330 9.504 10.832 11.797 11.952 11.173 9.768 8.356 7.553 7.637 8.392 9.231 9.537 9.024 7.900 6.730 6.090 6.240 6.991 7.858 8.364 8.310 7.849 7.337 7.085 7.172 7.422 7.544 7.334 6.803 6.175 5.754 - 5.879 6.188 6.672 7.210 7.822 8.627 9.627 10.549 10.906 10.337 8.951 7.396 6.511 6.785 7.991 9.303 9.825 9.180 7.734 6.323 5.680 5.989 6.850 7.635 7.936 7.772 7.462 7.309 7.370 7.470 7.403 7.116 6.731 6.424 6.272 6.232 - 6.952 6.819 6.600 6.430 6.521 7.055 8.015 9.096 9.820 9.818 9.100 8.091 7.380 7.333 7.847 8.416 8.490 7.850 6.759 5.785 5.423 5.796 6.609 7.369 7.694 7.512 7.045 6.619 6.454 6.558 6.768 6.883 6.785 6.500 6.162 5.939 - 7.416 6.872 6.248 6.134 6.811 8.069 9.355 10.125 10.124 9.462 8.497 7.657 7.289 7.527 8.209 8.891 9.039 8.360 7.050 5.749 5.157 5.557 6.604 7.573 7.873 7.445 6.733 6.286 6.332 6.671 6.919 6.851 6.540 6.218 6.040 5.990 - 8.432 7.945 7.310 7.004 7.350 8.308 9.478 10.309 10.417 9.803 8.854 8.111 7.939 8.315 8.858 9.077 8.690 7.789 6.774 6.095 5.978 6.323 6.806 7.106 7.099 6.886 6.681 6.635 6.749 6.899 6.951 6.850 6.645 6.429 6.273 6.197 - 7.767 7.031 6.119 5.761 6.347 7.656 9.003 9.695 9.469 8.622 7.765 7.397 7.611 8.114 8.491 8.494 8.156 7.681 7.253 6.943 6.742 6.656 6.720 6.926 7.150 7.197 6.951 6.521 6.205 6.275 6.742 7.298 7.529 7.236 6.613 6.115 - 7.434 7.568 7.717 7.789 7.846 8.036 8.396 8.732 8.745 8.318 7.688 7.305 7.470 8.068 8.637 8.736 8.278 7.555 6.960 6.678 6.620 6.618 6.631 6.746 6.994 7.221 7.184 6.822 6.390 6.287 6.685 7.317 7.649 7.342 6.574 5.935 - 8.009 7.981 7.964 8.045 8.322 8.809 9.340 9.604 9.342 8.571 7.652 7.083 7.159 7.742 8.347 8.493 8.043 7.279 6.669 6.527 6.839 7.332 7.713 7.841 7.742 7.519 7.272 7.088 7.051 7.210 7.494 7.699 7.595 7.115 6.457 5.984 - 7.777 7.756 7.849 8.195 8.775 9.375 9.684 9.490 8.819 7.929 7.168 6.806 6.909 7.343 7.847 8.151 8.086 7.662 7.076 6.638 6.626 7.119 7.916 8.613 8.834 8.463 7.749 7.174 7.154 7.758 8.638 9.228 9.093 8.222 7.057 6.244 - 7.279 7.295 7.568 8.273 9.216 9.859 9.691 8.634 7.134 5.859 5.251 5.316 5.754 6.276 6.770 7.229 7.570 7.613 7.276 6.788 6.651 7.292 8.663 10.162 10.985 10.697 9.581 8.468 8.168 8.901 10.142 10.975 10.704 9.318 7.507 6.255 - 6.905 6.458 6.339 7.315 9.302 11.260 11.950 10.903 8.773 6.788 5.832 5.915 6.415 6.745 6.807 6.859 7.063 7.244 7.111 6.697 6.504 7.127 8.668 10.495 11.626 11.459 10.253 8.954 8.499 9.143 10.319 11.065 10.704 9.270 7.471 6.249 - 7.966 7.531 7.460 8.495 10.432 12.089 12.216 10.558 8.110 6.342 6.068 6.924 7.845 8.030 7.516 6.926 6.756 6.930 7.020 6.846 6.777 7.410 8.917 10.717 11.829 11.644 10.439 9.191 8.847 9.626 10.898 11.672 11.288 9.826 8.019 6.802 - 7.955 7.949 8.326 9.417 11.020 12.371 12.642 11.569 9.681 7.942 7.094 7.207 7.773 8.177 8.140 7.797 7.441 7.239 7.185 7.271 7.637 8.482 9.801 11.209 12.089 12.004 11.070 9.947 9.417 9.827 10.810 11.510 11.175 9.704 7.767 6.414 - 8.987 8.616 8.542 9.416 11.133 12.751 13.164 11.977 9.828 7.897 7.046 7.290 7.980 8.434 8.426 8.175 7.967 7.864 7.767 7.713 7.999 8.949 10.516 12.125 12.992 12.700 11.562 10.440 10.141 10.831 11.916 12.456 11.804 10.041 7.944 6.542 - 7.959 7.713 7.838 8.923 10.840 12.669 13.331 12.412 10.470 8.593 7.603 7.570 7.971 8.244 8.216 8.071 8.014 8.032 8.001 7.959 8.213 9.078 10.495 11.904 12.572 12.157 11.024 10.037 9.952 10.868 12.143 12.830 12.300 10.653 8.658 7.318 - 7.907 8.152 8.845 10.106 11.669 12.907 13.192 12.341 10.762 9.192 8.225 7.990 8.193 8.428 8.463 8.306 8.070 7.835 7.651 7.640 8.016 8.932 10.259 11.520 12.117 11.748 10.687 9.682 9.484 10.321 11.685 12.628 12.377 10.873 8.858 7.446 + 5.386 5.066 4.613 4.237 3.998 3.807 3.584 3.402 3.457 3.877 4.552 5.165 5.423 4.688 5.481 6.331 7.030 7.386 7.355 7.104 6.917 6.989 7.280 7.553 7.570 7.294 6.929 6.763 6.950 7.404 7.877 8.137 8.109 7.879 7.607 7.435 + 3.618 3.976 4.484 4.865 4.936 4.697 4.299 3.933 3.754 3.835 4.165 4.642 5.090 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.725 4.219 4.860 5.243 5.235 5.035 4.941 5.073 5.292 5.385 5.293 5.156 5.135 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.987 4.147 4.449 4.822 5.127 5.222 5.075 4.812 4.639 4.700 4.970 5.296 5.541 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 4.177 4.150 4.197 4.399 4.697 4.927 4.971 4.872 4.789 4.827 4.929 4.945 4.823 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.756 3.524 4.577 5.298 5.367 4.944 4.495 4.398 4.665 4.983 5.016 4.709 4.342 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.305 3.696 4.257 4.680 4.760 4.518 4.177 4.014 4.186 4.626 5.103 5.374 5.344 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.319 4.004 4.885 5.360 5.157 4.490 3.835 3.534 3.572 3.688 3.670 3.568 3.630 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.593 3.995 4.553 4.963 5.083 4.993 4.870 4.793 4.678 4.396 3.959 3.585 3.580 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.834 3.711 3.621 3.728 4.044 4.404 4.586 4.481 4.164 3.827 3.653 3.734 4.087 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 1.740 2.557 3.737 4.662 4.936 4.586 3.981 3.547 3.503 3.797 4.228 4.636 4.987 5.325 5.662 5.933 6.046 5.993 5.885 5.896 6.130 6.537 6.940 7.155 7.113 6.904 6.711 6.685 6.864 7.169 7.468 7.662 7.723 7.688 7.620 7.573 + 5.196 4.786 4.244 3.930 4.044 4.501 5.011 5.276 5.166 4.767 4.296 3.971 3.920 4.154 4.581 5.058 5.449 5.684 5.796 5.886 6.050 6.286 6.493 6.547 6.417 6.215 6.126 6.273 6.617 6.994 7.237 7.292 7.237 7.183 7.185 7.211 + 8.865 8.412 7.659 6.834 6.124 5.600 5.208 4.848 4.486 4.189 4.073 4.187 4.438 4.631 4.610 4.378 4.109 4.018 4.201 4.586 5.012 5.375 5.703 6.079 6.519 6.906 7.072 6.956 6.684 6.494 6.551 6.826 7.127 7.275 7.246 7.166 + 7.880 7.485 6.730 5.776 4.939 4.547 4.697 5.134 5.406 5.210 4.631 4.064 3.875 4.088 4.388 4.424 4.125 3.755 3.661 3.960 4.452 4.828 4.947 4.937 5.022 5.292 5.611 5.772 5.706 5.542 5.467 5.538 5.638 5.618 5.462 5.310 + 6.485 6.189 5.638 4.981 4.481 4.383 4.711 5.191 5.418 5.162 4.563 4.021 3.881 4.157 4.551 4.721 4.561 4.240 4.008 3.969 4.046 4.137 4.264 4.546 5.024 5.537 5.819 5.744 5.477 5.358 5.589 6.034 6.314 6.155 5.657 5.225 + 4.243 4.135 4.092 4.253 4.532 4.657 4.425 3.929 3.520 3.510 3.899 4.364 4.539 4.326 3.960 3.762 3.847 4.038 4.076 3.906 3.751 3.911 4.461 5.151 5.588 5.557 5.183 4.818 4.750 5.010 5.396 5.664 5.706 5.577 5.407 5.298 + 5.627 5.470 5.155 4.735 4.353 4.166 4.215 4.356 4.347 4.057 3.610 3.329 3.491 4.089 4.792 5.169 4.990 4.396 3.790 3.560 3.822 4.372 4.853 4.987 4.720 4.214 3.728 3.482 3.567 3.926 4.380 4.712 4.765 4.529 4.160 3.890 + 3.693 4.038 4.526 4.906 5.038 4.950 4.748 4.476 4.081 3.508 2.832 2.294 2.167 2.552 3.267 3.945 4.265 4.168 3.871 3.688 3.788 4.083 4.314 4.260 3.914 3.486 3.243 3.327 3.666 4.039 4.224 4.128 3.809 3.414 3.083 2.900 + 3.801 3.408 2.988 2.963 3.450 4.157 4.602 4.483 3.882 3.180 2.773 2.832 3.258 3.807 4.253 4.466 4.412 4.136 3.761 3.458 3.366 3.488 3.664 3.677 3.435 3.058 2.799 2.835 3.110 3.377 3.393 3.108 2.682 2.333 2.161 2.118 + 2.453 2.567 2.915 3.550 4.278 4.708 4.521 3.749 2.812 2.251 2.364 3.026 3.811 4.309 4.374 4.144 3.861 3.684 3.620 3.594 3.553 3.488 3.418 3.351 3.295 3.282 3.348 3.479 3.580 3.519 3.236 2.808 2.410 2.188 2.152 2.190 + 3.216 3.742 4.457 4.948 5.029 4.827 4.611 4.535 4.532 4.437 4.195 3.938 3.862 4.022 4.257 4.305 4.033 3.544 3.099 2.919 3.033 3.303 3.562 3.732 3.831 3.898 3.931 3.899 3.794 3.650 3.499 3.330 3.088 2.753 2.396 2.158 + 4.372 5.078 5.847 5.969 5.288 4.316 3.762 3.912 4.435 4.742 4.543 4.063 3.760 3.861 4.155 4.241 3.941 3.467 3.198 3.305 3.604 3.767 3.660 3.459 3.437 3.665 3.921 3.919 3.604 3.219 3.076 3.263 3.581 3.759 3.712 3.595 + 4.514 4.949 5.590 6.092 6.174 5.763 5.015 4.212 3.580 3.178 2.938 2.793 2.784 3.011 3.486 4.012 4.270 4.047 3.448 2.861 2.685 3.015 3.566 3.915 3.851 3.536 3.337 3.478 3.823 4.004 3.754 3.164 2.601 2.393 2.544 2.762 + 5.189 5.077 5.108 5.488 6.071 6.383 5.982 4.855 3.483 2.514 2.315 2.762 3.409 3.854 3.969 3.856 3.655 3.410 3.127 2.886 2.844 3.099 3.553 3.944 4.046 3.858 3.591 3.467 3.521 3.595 3.537 3.382 3.332 3.553 3.970 4.306 + 7.692 7.615 7.493 7.377 7.313 7.299 7.267 7.127 6.838 6.466 6.149 5.992 5.964 5.917 5.700 5.293 4.827 4.474 4.317 4.312 4.408 4.661 5.241 6.251 7.551 8.745 9.411 9.393 8.929 8.466 8.320 8.459 8.584 8.439 8.058 7.731 + 11.102 11.186 11.271 11.264 11.134 10.905 10.584 10.142 9.568 8.943 8.428 8.127 7.975 7.776 7.410 7.006 6.894 7.312 8.130 8.872 9.090 8.771 8.413 8.634 9.629 10.949 11.828 11.796 11.047 10.257 9.989 10.246 10.546 10.422 9.882 9.385 + 12.162 12.684 13.368 13.768 13.669 13.171 12.515 11.850 11.158 10.382 9.567 8.863 8.392 8.144 8.045 8.114 8.515 9.393 10.619 11.737 12.227 11.900 11.088 10.410 10.301 10.691 11.132 11.229 10.980 10.713 10.702 10.848 10.761 10.163 9.234 8.526 + 12.239 12.855 13.789 14.617 15.000 14.811 14.126 13.137 12.075 11.146 10.483 10.087 9.836 9.586 9.339 9.312 9.802 10.916 12.367 13.574 14.034 13.691 12.986 12.518 12.586 12.995 13.299 13.233 12.954 12.849 13.103 13.451 13.370 12.575 11.363 10.455 + 12.807 13.411 14.355 15.251 15.769 15.743 15.198 14.297 13.295 12.459 11.955 11.748 11.614 11.321 10.868 10.580 10.906 12.033 13.627 14.977 15.476 15.076 14.315 13.867 13.997 14.391 14.515 14.178 13.742 13.775 14.437 15.202 15.221 14.081 12.268 10.901 + 13.239 13.774 14.685 15.692 16.454 16.683 16.257 15.298 14.143 13.187 12.656 12.479 12.363 12.060 11.624 11.432 11.910 13.136 14.683 15.842 16.120 15.587 14.800 14.333 14.324 14.432 14.239 13.724 13.347 13.609 14.489 15.284 15.087 13.561 11.353 9.742 + 13.551 13.910 14.654 15.707 16.779 17.421 17.272 16.317 14.949 13.740 13.073 12.905 12.868 12.631 12.226 12.061 12.573 13.809 15.302 16.365 16.588 16.124 15.517 15.219 15.208 15.079 14.505 13.658 13.160 13.539 14.655 15.628 15.433 13.736 11.290 9.514 + 13.729 13.904 14.440 15.449 16.706 17.663 17.776 16.911 15.471 14.130 13.365 13.151 13.089 12.820 12.393 12.249 12.826 14.135 15.667 16.741 16.992 16.608 16.098 15.813 15.651 15.221 14.319 13.274 12.790 13.356 14.707 15.842 15.688 13.939 11.414 9.585 + 13.930 13.919 14.235 15.153 16.482 17.572 17.772 16.941 15.558 14.337 13.680 13.454 13.242 12.828 12.428 12.494 13.278 14.571 15.842 16.633 16.843 16.668 16.311 15.768 14.905 13.735 12.592 11.996 12.274 13.246 14.243 14.476 13.523 11.603 9.493 8.127 + 14.060 13.957 14.154 15.009 16.371 17.578 17.932 17.246 15.964 14.766 14.043 13.696 13.411 13.084 12.965 13.395 14.413 15.640 16.550 16.875 16.744 16.456 16.126 15.586 14.625 13.331 12.168 11.666 11.997 12.787 13.351 13.147 12.096 10.575 9.152 8.313 + 14.066 14.064 14.370 15.252 16.559 17.722 18.133 17.590 16.412 15.162 14.243 13.731 13.518 13.565 13.958 14.730 15.671 16.387 16.581 16.306 15.908 15.684 15.579 15.228 14.334 13.045 11.956 11.696 12.413 13.607 14.426 14.204 12.853 10.851 8.950 7.814 + 13.849 14.094 14.667 15.588 16.666 17.519 17.773 17.291 16.254 15.055 14.104 13.671 13.833 14.473 15.303 15.928 16.012 15.485 14.649 14.037 14.042 14.581 15.085 14.892 13.773 12.182 10.997 10.912 11.943 13.397 14.336 14.149 12.865 11.027 9.342 8.362 + 13.570 13.972 14.756 15.801 16.831 17.466 17.401 16.611 15.411 14.333 13.858 14.153 14.980 15.808 16.087 15.529 14.276 12.844 11.875 11.792 12.556 13.647 14.335 14.095 12.927 11.379 10.238 10.071 10.891 12.158 13.089 13.085 12.020 10.276 8.530 7.453 + 13.459 13.766 14.468 15.533 16.634 17.239 16.958 15.873 14.557 13.722 13.756 14.487 15.322 15.646 15.156 13.975 12.519 11.290 10.691 10.900 11.782 12.877 13.547 13.295 12.085 10.440 9.173 8.908 9.682 10.941 11.894 11.990 11.184 9.869 8.603 7.849 + 13.157 13.631 14.500 15.559 16.464 16.835 16.456 15.451 14.289 13.558 13.627 14.400 15.339 15.767 15.261 13.903 12.233 10.940 10.503 10.960 11.934 12.844 13.176 12.691 11.497 10.011 8.806 8.386 8.939 10.189 11.449 11.929 11.158 9.302 7.144 5.710 + 13.013 13.710 14.808 15.878 16.566 16.700 16.278 15.430 14.406 13.575 13.308 13.766 14.696 15.483 15.480 14.448 12.773 11.263 10.642 11.100 12.207 13.226 13.552 12.996 11.781 10.360 9.227 8.794 9.261 10.472 11.854 12.583 12.030 10.211 7.922 6.345 + 13.284 13.995 15.051 15.974 16.452 16.439 16.036 15.340 14.438 13.526 12.960 13.091 13.951 15.088 15.760 15.421 14.131 12.568 11.590 11.662 12.572 13.607 14.029 13.504 12.225 10.735 9.634 9.338 9.940 11.167 12.432 13.043 12.542 11.013 9.135 7.855 + 13.269 13.997 15.087 16.039 16.507 16.433 15.964 15.270 14.451 13.594 12.887 12.614 12.984 13.909 14.955 15.553 15.367 14.543 13.639 13.243 13.559 14.243 14.623 14.157 12.810 11.111 9.842 9.576 10.354 11.679 12.793 13.082 12.357 10.920 9.390 8.421 + 13.572 14.067 14.898 15.778 16.367 16.417 15.887 14.967 13.961 13.121 12.551 12.250 12.222 12.525 13.192 14.107 14.985 15.530 15.639 15.489 15.369 15.399 15.370 14.885 13.711 12.073 10.615 10.023 10.573 11.917 13.272 13.870 13.373 12.026 10.487 9.486 + 13.596 13.947 14.630 15.506 16.259 16.506 16.041 15.002 13.809 12.886 12.396 12.207 12.098 12.002 12.085 12.567 13.501 14.682 15.788 16.588 17.025 17.120 16.825 16.013 14.649 12.987 11.576 10.996 11.483 12.727 13.993 14.523 13.950 12.492 10.825 9.735 + 13.543 13.843 14.469 15.339 16.168 16.551 16.213 15.227 13.996 12.992 12.448 12.252 12.123 11.897 11.686 11.785 12.428 13.593 15.023 16.383 17.417 17.974 17.953 17.274 15.975 14.334 12.874 12.163 12.491 13.635 14.918 15.549 15.062 13.596 11.838 10.661 + 13.448 13.648 14.161 15.010 15.943 16.490 16.266 15.277 13.952 12.854 12.291 12.142 12.041 11.737 11.334 11.208 11.702 12.844 14.335 15.757 16.813 17.408 17.542 17.187 16.309 15.011 13.654 12.770 12.766 13.606 14.737 15.359 14.901 13.404 11.547 10.281 + 13.381 13.556 14.038 14.882 15.872 16.549 16.492 15.634 14.343 13.178 12.503 12.263 12.111 11.756 11.253 10.980 11.335 12.402 13.863 15.216 16.105 16.492 16.557 16.442 16.115 15.459 14.512 13.596 13.168 13.475 14.280 14.941 14.820 13.763 12.266 11.190 + 13.524 13.545 13.844 14.628 15.745 16.672 16.854 16.126 14.856 13.675 13.011 12.811 12.675 12.266 11.652 11.280 11.607 12.710 14.189 15.449 16.100 16.164 15.948 15.713 15.470 15.044 14.351 13.583 13.128 13.246 13.796 14.255 14.072 13.098 11.758 10.801 + 13.197 13.242 13.531 14.246 15.311 16.327 16.789 16.423 15.399 14.226 13.399 13.054 12.926 12.636 12.092 11.631 11.774 12.768 14.297 15.647 16.199 15.867 15.112 14.523 14.342 14.338 14.127 13.620 13.158 13.174 13.701 14.193 13.901 12.536 10.627 9.245 + 12.909 12.923 13.162 13.836 14.903 15.999 16.623 16.465 15.634 14.582 13.775 13.368 13.143 12.781 12.231 11.842 12.096 13.160 14.635 15.770 16.002 15.375 14.483 13.959 13.959 14.098 13.889 13.278 12.753 12.889 13.709 14.492 14.272 12.668 10.345 8.648 + 12.878 12.847 13.042 13.719 14.833 15.977 16.624 16.492 15.732 14.790 14.067 13.653 13.353 12.968 12.559 12.453 12.957 14.030 15.212 15.896 15.760 14.992 14.135 13.666 13.662 13.814 13.765 13.453 13.154 13.178 13.490 13.637 13.075 11.662 9.900 8.676 + 12.706 12.673 12.895 13.648 14.863 16.080 16.737 16.567 15.771 14.831 14.134 13.735 13.438 13.101 12.848 12.988 13.700 14.778 15.682 15.900 15.323 14.331 13.505 13.191 13.283 13.376 13.159 12.693 12.345 12.418 12.805 12.990 12.423 10.995 9.232 8.018 + 12.488 12.456 12.716 13.561 14.876 16.118 16.686 16.366 15.462 14.510 13.857 13.476 13.156 12.843 12.772 13.233 14.215 15.263 15.749 15.340 14.273 13.184 12.620 12.644 12.845 12.728 12.160 11.487 11.235 11.661 12.487 13.066 12.829 11.710 10.231 9.198 + 11.965 11.991 12.351 13.292 14.627 15.768 16.146 15.651 14.688 13.802 13.252 12.921 12.619 12.413 12.619 13.425 14.531 15.224 14.896 13.590 12.059 11.239 11.538 12.526 13.288 13.132 12.095 10.866 10.233 10.528 11.459 12.395 12.823 12.638 12.124 11.716 + 11.583 11.803 12.319 13.156 14.163 15.012 15.365 15.072 14.264 13.276 12.469 12.081 12.186 12.712 13.477 14.195 14.522 14.180 13.145 11.747 10.574 10.177 10.741 11.947 13.157 13.792 13.675 13.095 12.566 12.462 12.771 13.153 13.213 12.807 12.148 11.656 + 12.640 12.912 13.400 14.044 14.799 15.555 16.059 15.987 15.190 13.925 12.810 12.447 12.986 13.993 14.763 14.827 14.217 13.300 12.372 11.458 10.485 9.621 9.342 10.071 11.686 13.433 14.418 14.319 13.652 13.299 13.667 14.257 14.072 12.571 10.299 8.601 + 13.113 13.200 13.472 14.066 15.020 16.132 16.941 16.959 16.048 14.645 13.563 13.444 14.256 15.288 15.680 15.069 13.806 12.562 11.727 11.164 10.542 9.870 9.637 10.352 11.925 13.538 14.260 13.887 13.187 13.227 14.300 15.476 15.285 13.039 9.647 7.128 + 13.012 12.984 13.152 13.791 14.965 16.344 17.298 17.271 16.233 14.817 13.941 14.129 15.067 15.803 15.500 14.113 12.413 11.301 11.042 11.105 10.787 9.991 9.410 9.857 11.399 13.137 13.953 13.568 12.872 13.126 14.670 16.374 16.446 14.026 10.170 7.264 + 12.694 12.730 13.027 13.822 15.092 16.424 17.199 17.006 16.005 14.905 14.486 14.970 15.774 15.913 14.790 12.745 10.834 9.994 10.286 10.880 10.839 9.990 9.087 9.097 10.259 11.810 12.685 12.537 12.109 12.510 14.039 15.652 15.715 13.454 9.862 7.161 + 12.557 12.626 13.000 13.886 15.163 16.340 16.853 16.492 15.608 14.886 14.819 15.287 15.607 15.059 13.492 11.502 10.008 9.555 9.905 10.293 10.107 9.429 8.930 9.226 10.275 11.391 11.885 11.761 11.764 12.670 14.417 15.895 15.717 13.404 10.001 7.513 + 12.301 12.550 13.119 14.028 15.118 16.046 16.457 16.235 15.629 15.110 15.007 15.194 15.134 14.288 12.615 10.706 9.396 9.115 9.540 9.881 9.591 8.891 8.592 9.337 10.925 12.367 12.710 11.912 10.965 11.045 12.404 13.983 14.194 12.292 9.157 6.778 + 11.908 12.336 13.106 14.043 14.915 15.494 15.655 15.458 15.123 14.879 14.763 14.534 13.819 12.447 10.696 9.206 8.547 8.754 9.247 9.280 8.598 7.733 7.617 8.758 10.690 12.227 12.394 11.284 10.050 9.966 11.285 12.905 13.201 11.401 8.363 6.046 + 11.502 12.146 13.139 14.075 14.656 14.822 14.718 14.554 14.470 14.450 14.317 13.809 12.733 11.156 9.477 8.271 7.928 8.325 8.841 8.801 8.055 7.192 7.127 8.320 10.268 11.788 11.939 10.848 9.680 9.692 11.105 12.781 13.075 11.220 8.109 5.740 + 11.105 12.053 13.390 14.410 14.746 14.542 14.232 14.148 14.292 14.402 14.176 13.441 12.207 10.654 9.118 8.023 7.680 8.038 8.610 8.762 8.231 7.434 7.218 8.145 9.902 11.420 11.712 10.749 9.584 9.489 10.802 12.494 12.939 11.302 8.381 6.119 + 10.845 11.987 13.516 14.534 14.676 14.284 13.974 14.053 14.304 14.270 13.686 12.646 11.421 10.204 9.077 8.164 7.696 7.815 8.310 8.650 8.416 7.774 7.458 8.147 9.756 11.333 11.805 10.964 9.768 9.556 10.811 12.575 13.157 11.609 8.683 6.379 + 10.473 11.679 13.268 14.287 14.407 14.070 13.958 14.305 14.711 14.563 13.624 12.217 10.891 9.952 9.327 8.819 8.406 8.230 8.320 8.439 8.290 7.918 7.817 8.516 9.984 11.461 12.029 11.444 10.463 10.231 11.213 12.643 13.092 11.732 9.194 7.197 + 10.655 11.615 12.964 14.011 14.444 14.470 14.512 14.769 15.039 14.921 14.179 12.921 11.505 10.287 9.470 9.102 9.127 9.380 9.582 9.451 8.949 8.429 8.472 9.413 10.956 12.259 12.558 11.821 10.849 10.634 11.476 12.626 12.857 11.528 9.243 7.485 + 11.203 11.596 12.341 13.319 14.323 15.125 15.587 15.732 15.685 15.538 15.238 14.634 13.638 12.387 11.223 10.486 10.266 10.331 10.312 10.020 9.635 9.581 10.170 11.299 12.454 13.072 12.971 12.522 12.375 12.928 13.952 14.681 14.360 12.845 10.811 9.374 + 11.476 11.422 11.675 12.573 14.024 15.489 16.381 16.533 16.299 16.188 16.368 16.485 15.992 14.686 12.974 11.610 11.121 11.406 11.848 11.860 11.366 10.845 10.885 11.666 12.793 13.629 13.824 13.597 13.525 14.013 14.890 15.477 15.087 13.600 11.654 10.292 + 11.370 11.130 11.137 11.898 13.429 15.163 16.368 16.707 16.457 16.195 16.250 16.412 16.153 15.152 13.649 12.297 11.644 11.692 11.930 11.797 11.195 10.577 10.559 11.376 12.658 13.720 14.119 14.003 13.945 14.403 15.252 15.797 15.296 13.604 11.413 9.881 + 11.414 11.145 11.036 11.577 12.892 14.589 16.026 16.758 16.814 16.586 16.439 16.391 16.131 15.352 14.095 12.787 11.934 11.710 11.832 11.814 11.412 10.854 10.659 11.179 12.270 13.392 14.061 14.254 14.393 14.901 15.704 16.156 15.518 13.630 11.219 9.536 + 11.494 11.248 11.100 11.484 12.597 14.213 15.793 16.811 17.084 16.851 16.529 16.354 16.193 15.703 14.700 13.397 12.296 11.787 11.817 11.940 11.730 11.182 10.744 10.915 11.779 12.911 13.762 14.160 14.445 15.067 15.996 16.545 15.854 13.694 10.886 8.908 + 11.649 11.422 11.250 11.520 12.465 13.968 15.578 16.756 17.210 17.074 16.760 16.598 16.554 16.275 15.445 14.134 12.810 11.978 11.770 11.850 11.752 11.336 10.929 11.013 11.745 12.783 13.595 13.968 14.193 14.720 15.575 16.129 15.541 13.543 10.893 9.011 + 11.664 11.519 11.384 11.531 12.226 13.525 15.134 16.506 17.175 17.085 16.634 16.328 16.347 16.380 15.922 14.770 13.265 12.044 11.524 11.577 11.705 11.541 11.191 11.104 11.610 12.583 13.564 14.205 14.576 14.997 15.567 15.884 15.319 13.646 11.458 9.905 + 11.791 11.629 11.456 11.555 12.210 13.494 15.103 16.447 17.021 16.782 16.206 15.906 16.105 16.425 16.212 15.124 13.478 12.021 11.325 11.350 11.553 11.431 10.985 10.683 10.980 11.879 12.932 13.660 13.952 14.048 14.153 14.110 13.509 12.162 10.472 9.281 + 11.918 11.752 11.553 11.587 12.141 13.315 14.830 16.101 16.606 16.291 15.652 15.352 15.658 16.185 16.202 15.265 13.632 12.082 11.289 11.308 11.598 11.564 11.086 10.587 10.598 11.262 12.220 12.957 13.225 13.149 12.954 12.654 12.032 10.962 9.704 8.833 + 11.765 11.560 11.297 11.264 11.776 12.929 14.396 15.528 15.781 15.172 14.332 14.027 14.502 15.236 15.351 14.377 12.688 11.211 10.655 10.944 11.353 11.210 10.503 9.855 9.905 10.715 11.740 12.354 12.389 12.175 12.077 12.037 11.619 10.520 9.032 7.948 + 11.556 11.495 11.356 11.259 11.505 12.337 13.590 14.642 14.842 14.107 13.102 12.746 13.409 14.531 15.060 14.364 12.785 11.329 10.767 10.996 11.246 10.919 10.213 9.926 10.618 11.969 13.003 12.963 12.019 11.088 10.936 11.428 11.666 10.909 9.368 8.108 + 11.423 11.483 11.482 11.421 11.577 12.272 13.448 14.500 14.684 13.790 12.454 11.727 12.203 13.488 14.514 14.443 13.339 12.020 11.267 11.164 11.194 10.925 10.548 10.680 11.634 12.922 13.573 13.025 11.707 10.701 10.730 11.435 11.676 10.622 8.627 7.031 + 11.384 11.381 11.341 11.337 11.596 12.313 13.347 14.162 14.166 13.218 11.840 10.873 10.846 11.591 12.458 12.912 12.940 12.912 13.075 13.248 13.041 12.378 11.723 11.714 12.493 13.427 13.585 12.584 11.018 9.985 10.097 10.865 11.099 9.998 7.961 6.348 + 11.253 11.274 11.239 11.169 11.278 11.790 12.620 13.276 13.189 12.212 10.826 9.798 9.585 10.023 10.606 11.047 11.535 12.407 13.581 14.400 14.162 12.865 11.403 10.892 11.665 12.885 13.233 12.102 10.200 8.946 9.160 10.244 10.670 9.394 6.898 4.897 + 11.395 11.416 11.346 11.164 11.079 11.353 11.970 12.501 12.403 11.503 10.195 9.120 8.622 8.523 8.462 8.432 8.897 10.280 12.295 13.877 13.948 12.415 10.430 9.544 10.408 12.172 13.199 12.489 10.553 8.916 8.702 9.606 10.213 9.376 7.360 5.662 + 11.080 11.297 11.447 11.278 10.880 10.625 10.791 11.239 11.483 11.110 10.152 9.058 8.305 8.039 8.080 8.252 8.641 9.469 10.708 11.861 12.228 11.480 10.029 8.788 8.488 9.119 9.996 10.378 10.074 9.516 9.265 9.469 9.782 9.771 9.382 8.989 + 10.992 11.300 11.578 11.486 11.024 10.534 10.361 10.500 10.582 10.230 9.427 8.554 8.044 7.993 8.106 8.035 7.773 7.712 8.265 9.392 10.484 10.756 9.851 8.165 6.612 6.014 6.588 7.878 9.138 9.818 9.818 9.407 8.943 8.645 8.537 8.525 + 10.548 10.968 11.376 11.303 10.686 9.921 9.500 9.565 9.783 9.667 9.019 8.105 7.410 7.219 7.408 7.624 7.654 7.618 7.807 8.327 8.905 9.041 8.404 7.129 5.771 4.965 5.053 5.932 7.182 8.310 8.951 8.949 8.353 7.391 6.420 5.813 + 9.919 10.248 10.622 10.697 10.340 9.720 9.160 8.876 8.809 8.687 8.242 7.420 6.426 5.598 5.204 5.304 5.746 6.259 6.593 6.618 6.364 5.980 5.643 5.455 5.400 5.396 5.395 5.464 5.737 6.282 6.967 7.482 7.521 7.022 6.260 5.702 + 9.315 9.556 9.807 9.786 9.386 8.774 8.289 8.186 8.431 8.690 8.554 7.838 6.747 5.761 5.314 5.501 6.007 6.343 6.190 5.617 5.008 4.764 5.010 5.516 5.881 5.828 5.390 4.878 4.668 4.969 5.734 6.723 7.657 8.358 8.779 8.965 + 8.983 9.084 9.129 8.955 8.558 8.121 7.888 7.981 8.321 8.695 8.894 8.814 8.475 7.975 7.464 7.104 7.024 7.234 7.575 7.786 7.681 7.308 6.947 6.906 7.274 7.827 8.208 8.215 7.989 7.903 8.266 9.083 10.061 10.853 11.300 11.462 + 9.202 9.169 9.120 9.088 9.107 9.193 9.328 9.476 9.614 9.742 9.852 9.890 9.763 9.427 8.981 8.663 8.703 9.121 9.648 9.892 9.646 9.090 8.690 8.835 9.503 10.252 10.573 10.314 9.820 9.640 10.047 10.791 11.305 11.198 10.602 10.062 + 9.135 9.266 9.525 9.865 10.177 10.334 10.274 10.056 9.805 9.599 9.393 9.072 8.602 8.146 8.013 8.435 9.337 10.299 10.790 10.525 9.696 8.865 8.597 9.066 9.944 10.644 10.742 10.273 9.678 9.465 9.840 10.586 11.265 11.558 11.481 11.312 + 10.214 10.468 10.969 11.639 12.282 12.650 12.589 12.148 11.539 10.976 10.528 10.133 9.745 9.471 9.537 10.073 10.910 11.591 11.651 10.973 9.932 9.183 9.210 9.981 10.961 11.496 11.285 10.586 10.009 10.059 10.763 11.668 12.187 12.036 11.434 10.915 + 10.079 10.557 11.456 12.571 13.518 13.886 13.508 12.604 11.639 10.986 10.686 10.522 10.326 10.223 10.539 11.435 12.609 13.389 13.202 12.047 10.564 9.608 9.645 10.452 11.330 11.655 11.314 10.713 10.413 10.702 11.420 12.136 12.467 12.322 11.916 11.590 + 10.139 10.650 11.545 12.561 13.356 13.648 13.371 12.719 12.011 11.476 11.130 10.867 10.654 10.635 11.002 11.737 12.481 12.697 12.055 10.739 9.390 8.698 8.948 9.838 10.733 11.118 10.930 10.517 10.331 10.587 11.149 11.681 11.900 11.754 11.418 11.157 + 10.069 10.489 11.253 12.157 12.875 13.102 12.745 12.005 11.228 10.655 10.284 9.978 9.711 9.664 10.064 10.873 11.670 11.882 11.224 9.972 8.805 8.329 8.667 9.442 10.144 10.526 10.699 10.903 11.204 11.452 11.488 11.377 11.386 11.725 12.300 12.750 + 10.734 10.439 10.045 9.764 9.667 9.672 9.697 9.772 9.979 10.292 10.501 10.367 9.881 9.367 9.262 9.736 10.489 10.940 10.691 9.869 9.046 8.786 9.221 9.999 10.627 10.889 10.963 11.185 11.706 12.380 12.937 13.266 13.483 13.766 14.135 14.413 + 8.839 9.167 9.539 9.634 9.380 9.029 8.959 9.356 10.030 10.542 10.521 9.958 9.217 8.779 8.898 9.431 9.965 10.119 9.814 9.304 8.979 9.091 9.605 10.255 10.750 10.967 11.004 11.088 11.414 12.027 12.817 13.597 14.211 14.597 14.784 14.849 + 10.660 10.523 10.188 9.648 9.041 8.615 8.567 8.890 9.377 9.772 9.941 9.933 9.891 9.916 10.016 10.137 10.233 10.278 10.236 10.067 9.791 9.544 9.536 9.895 10.517 11.102 11.373 11.341 11.340 11.783 12.802 14.089 15.099 15.463 15.274 14.978 + 9.865 9.873 9.919 10.014 10.103 10.087 9.910 9.628 9.390 9.331 9.470 9.697 9.873 9.958 10.054 10.305 10.750 11.234 11.484 11.295 10.698 9.960 9.432 9.338 9.655 10.180 10.695 11.125 11.557 12.133 12.912 13.808 14.640 15.253 15.603 15.746 + 9.916 9.983 10.091 10.192 10.236 10.201 10.131 10.112 10.216 10.427 10.629 10.686 10.551 10.327 10.212 10.358 10.748 11.196 11.461 11.407 11.084 10.675 10.373 10.269 10.343 10.528 10.797 11.181 11.736 12.471 13.328 14.199 14.973 15.574 15.972 16.167 + 12.502 11.945 11.240 10.847 10.890 11.093 11.085 10.774 10.431 10.408 10.770 11.190 11.234 10.774 10.149 9.905 10.339 11.230 11.999 12.161 11.688 10.998 10.608 10.747 11.236 11.693 11.866 11.808 11.800 12.121 12.848 13.837 14.837 15.640 16.159 16.402 + 8.762 9.057 9.524 9.952 10.120 9.929 9.503 9.154 9.196 9.717 10.470 11.015 11.023 10.527 9.917 9.673 10.032 10.821 11.598 11.965 11.830 11.426 11.112 11.121 11.433 11.859 12.209 12.434 12.637 12.968 13.522 14.276 15.116 15.893 16.481 16.794 + 10.212 9.839 9.442 9.385 9.697 10.049 10.074 9.723 9.322 9.266 9.653 10.203 10.525 10.486 10.317 10.377 10.808 11.402 11.807 11.859 11.716 11.692 11.947 12.348 12.619 12.614 12.473 12.498 12.897 13.624 14.445 15.136 15.621 15.953 16.188 16.323 + 9.166 8.813 8.492 8.607 9.195 9.870 10.155 9.899 9.401 9.137 9.339 9.798 10.069 9.875 9.369 9.020 9.258 10.163 11.434 12.608 13.341 13.526 13.259 12.728 12.139 11.683 11.499 11.609 11.906 12.236 12.534 12.888 13.458 14.284 15.167 15.750 + 6.857 6.720 6.554 6.493 6.589 6.756 6.821 6.662 6.329 6.040 6.023 6.317 6.705 6.874 6.702 6.424 6.512 7.301 8.659 9.977 10.544 10.028 8.711 7.279 6.346 6.079 6.198 6.302 6.231 6.152 6.360 6.982 7.876 8.748 9.370 9.672 + 4.184 4.285 4.412 4.499 4.572 4.722 5.000 5.335 5.581 5.648 5.597 5.589 5.725 5.932 6.004 5.783 5.313 4.819 4.529 4.491 4.545 4.471 4.171 3.729 3.315 3.044 2.917 2.900 3.013 3.340 3.933 4.714 5.487 6.061 6.369 6.478 + 2.108 2.638 3.650 4.950 6.155 6.840 6.814 6.289 5.755 5.630 5.947 6.355 6.423 6.000 5.320 4.783 4.622 4.740 4.846 4.726 4.400 4.054 3.829 3.695 3.516 3.219 2.893 2.726 2.854 3.272 3.871 4.551 5.266 5.984 6.608 6.982 + 6.583 6.951 7.648 8.575 9.560 10.407 10.969 11.196 11.116 10.772 10.199 9.454 8.680 8.084 7.837 7.946 8.225 8.427 8.435 8.362 8.459 8.894 9.580 10.206 10.452 10.211 9.653 9.081 8.721 8.595 8.568 8.490 8.310 8.078 7.878 7.767 + 8.140 8.257 8.668 9.511 10.658 11.731 12.348 12.404 12.125 11.851 11.750 11.715 11.518 11.071 10.537 10.202 10.237 10.577 11.025 11.459 11.941 12.610 13.474 14.301 14.735 14.549 13.828 12.931 12.257 12.006 12.094 12.266 12.291 12.106 11.817 11.606 + 10.874 11.130 11.658 12.415 13.223 13.794 13.854 13.321 12.380 11.398 10.708 10.421 10.392 10.383 10.290 10.244 10.517 11.277 12.415 13.574 14.379 14.678 14.604 14.425 14.306 14.202 13.947 13.459 12.856 12.382 12.207 12.285 12.405 12.378 12.198 12.027 + 11.935 12.149 12.640 13.457 14.521 15.560 16.167 16.015 15.099 13.806 12.702 12.165 12.156 12.325 12.393 12.457 12.900 13.972 15.413 16.527 16.700 15.941 14.922 14.437 14.719 15.246 15.231 14.377 13.193 12.557 12.882 13.671 13.902 12.941 11.183 9.799 + 12.003 12.015 12.240 12.916 14.093 15.494 16.590 16.885 16.241 14.993 13.749 12.988 12.795 12.918 13.105 13.377 13.973 15.001 16.162 16.856 16.661 15.750 14.821 14.537 14.939 15.395 15.181 14.196 13.138 12.915 13.765 14.908 15.105 13.721 11.379 9.585 + 11.894 11.829 11.915 12.433 13.518 14.999 16.422 17.257 17.178 16.256 14.913 13.691 12.979 12.883 13.283 13.984 14.804 15.574 16.098 16.209 15.890 15.347 14.908 14.783 14.880 14.876 14.520 13.913 13.480 13.611 14.244 14.801 14.575 13.323 11.566 10.296 + 11.849 11.901 12.083 12.538 13.393 14.629 15.982 16.990 17.212 16.511 15.184 13.824 12.998 12.964 13.596 14.540 15.434 16.041 16.259 16.095 15.651 15.131 14.763 14.662 14.724 14.700 14.431 14.047 13.916 14.315 15.085 15.608 15.212 13.733 11.772 10.386 + 11.999 12.214 12.571 13.036 13.682 14.620 15.802 16.907 17.451 17.100 15.948 14.530 13.532 13.387 14.050 15.086 15.969 16.377 16.297 15.932 15.526 15.236 15.078 14.961 14.761 14.422 14.042 13.864 14.128 14.840 15.633 15.888 15.116 13.354 11.278 9.880 + 11.793 12.064 12.496 13.020 13.706 14.673 15.859 16.897 17.278 16.721 15.447 14.095 13.328 13.426 14.179 15.110 15.815 16.135 16.100 15.801 15.338 14.861 14.564 14.557 14.733 14.812 14.602 14.261 14.245 14.890 15.961 16.606 15.917 13.696 10.821 8.805 + 11.801 11.990 12.344 12.877 13.674 14.776 16.022 17.006 17.269 16.622 15.326 13.982 13.177 13.165 13.796 14.703 15.537 16.076 16.204 15.884 15.207 14.446 13.965 13.971 14.320 14.593 14.467 14.058 13.890 14.410 15.452 16.157 15.548 13.370 10.490 8.452 + 11.509 11.477 11.613 12.180 13.301 14.808 16.256 17.119 17.061 16.127 14.719 13.385 12.563 12.433 12.934 13.854 14.905 15.750 16.061 15.662 14.692 13.606 12.943 12.958 13.427 13.815 13.734 13.302 13.074 13.527 14.528 15.274 14.846 12.987 10.467 8.672 + 11.850 11.460 11.208 11.694 13.050 14.767 16.018 16.224 15.402 14.073 12.828 11.959 11.417 11.082 11.008 11.413 12.389 13.641 14.536 14.502 13.461 11.946 10.763 10.436 10.870 11.476 11.666 11.303 10.750 10.513 10.774 11.223 11.325 10.793 9.867 9.152 + 10.302 9.838 9.355 9.329 9.842 10.531 10.945 10.942 10.734 10.567 10.386 9.873 8.842 7.597 6.849 7.184 8.536 10.149 11.112 11.033 10.294 9.696 9.805 10.554 11.392 11.786 11.629 11.230 10.982 11.029 11.218 11.291 11.123 10.781 10.435 10.226 + 12.960 12.274 11.321 10.606 10.334 10.303 10.140 9.642 8.916 8.230 7.754 7.444 7.180 6.985 7.073 7.656 8.690 9.810 10.560 10.746 10.605 10.637 11.235 12.390 13.708 14.687 15.045 14.835 14.336 13.826 13.429 13.120 12.826 12.520 12.245 12.080 + 13.802 13.319 12.488 11.511 10.562 9.757 9.154 8.786 8.639 8.625 8.586 8.380 7.997 7.615 7.507 7.857 8.604 9.458 10.108 10.464 10.749 11.336 12.454 13.961 15.378 16.185 16.154 15.497 14.715 14.258 14.243 14.428 14.447 14.108 13.550 13.125 + 13.186 12.746 11.983 11.094 10.283 9.691 9.352 9.197 9.105 8.973 8.763 8.510 8.286 8.169 8.211 8.422 8.779 9.237 9.759 10.357 11.095 12.057 13.251 14.542 15.665 16.344 16.467 16.174 15.781 15.581 15.646 15.789 15.737 15.361 14.806 14.397 + 9.688 9.521 9.159 8.645 8.175 8.027 8.363 9.061 9.740 9.993 9.663 8.944 8.257 7.972 8.208 8.818 9.536 10.164 10.666 11.154 11.800 12.729 13.942 15.274 16.427 17.097 17.143 16.706 16.144 15.820 15.860 16.078 16.143 15.862 15.350 14.949 + 9.917 9.547 9.020 8.618 8.505 8.647 8.869 8.993 8.934 8.708 8.372 7.988 7.639 7.461 7.629 8.262 9.316 10.569 11.731 12.613 13.243 13.823 14.560 15.499 16.473 17.219 17.549 17.474 17.169 16.840 16.589 16.377 16.105 15.731 15.334 15.073 + 9.888 9.134 8.098 7.402 7.416 8.068 8.961 9.664 9.932 9.753 9.256 8.625 8.074 7.822 8.030 8.689 9.602 10.494 11.211 11.820 12.521 13.442 14.491 15.424 16.048 16.376 16.583 16.806 16.988 16.930 16.512 15.852 15.256 14.981 15.025 15.160 + 13.552 12.774 11.672 10.776 10.293 10.034 9.707 9.246 8.850 8.723 8.814 8.859 8.686 8.467 8.609 9.366 10.546 11.625 12.199 12.351 12.585 13.353 14.623 15.884 16.579 16.568 16.202 15.951 15.984 16.074 15.901 15.419 14.915 14.719 14.871 15.094 + 14.017 13.115 11.868 10.931 10.564 10.535 10.451 10.168 9.854 9.703 9.636 9.350 8.684 7.918 7.647 8.289 9.674 11.128 12.012 12.240 12.300 12.767 13.748 14.777 15.229 14.878 14.074 13.415 13.249 13.457 13.666 13.640 13.461 13.359 13.429 13.549 + 14.276 13.182 11.635 10.421 9.897 9.838 9.766 9.431 8.981 8.722 8.746 8.823 8.667 8.289 8.065 8.424 9.434 10.686 11.590 11.836 11.603 11.357 11.443 11.834 12.222 12.338 12.171 11.916 11.759 11.712 11.663 11.531 11.361 11.259 11.266 11.313 + 14.017 13.090 11.916 11.324 11.672 12.632 13.513 13.796 13.443 12.773 12.111 11.574 11.133 10.821 10.796 11.183 11.859 12.454 12.613 12.290 11.798 11.547 11.693 12.019 12.133 11.814 11.186 10.580 10.241 10.147 10.072 9.807 9.326 8.772 8.320 8.079 + 13.498 13.243 12.916 12.779 13.012 13.568 14.173 14.466 14.223 13.510 12.624 11.892 11.478 11.361 11.467 11.783 12.314 12.930 13.291 13.040 12.132 11.010 10.365 10.605 11.454 12.083 11.762 10.496 9.098 8.544 9.140 10.197 10.564 9.598 7.762 6.316 + 13.077 12.702 12.246 12.098 12.477 13.261 14.047 14.385 14.054 13.180 12.138 11.319 10.935 10.992 11.376 11.954 12.572 13.002 12.979 12.375 11.390 10.552 10.412 11.116 12.197 12.835 12.454 11.194 9.856 9.292 9.717 10.509 10.694 9.765 8.142 6.890 + 12.623 12.406 12.101 11.918 12.042 12.491 13.045 13.321 13.004 12.077 10.882 9.937 9.630 10.009 10.802 11.609 12.106 12.139 11.712 10.977 10.242 9.910 10.286 11.308 12.441 12.927 12.291 10.749 9.140 8.357 8.674 9.529 9.970 9.427 8.192 7.181 + 12.374 12.182 11.900 11.669 11.581 11.613 11.635 11.473 11.020 10.297 9.455 8.706 8.245 8.177 8.491 9.053 9.631 9.971 9.928 9.592 9.302 9.478 10.320 11.588 12.646 12.843 11.976 10.513 9.332 9.137 9.942 11.042 11.527 10.963 9.733 8.748 + 12.210 12.189 12.048 11.736 11.375 11.175 11.222 11.324 11.132 10.437 9.394 8.449 8.021 8.218 8.809 9.441 9.881 10.088 10.118 10.048 9.999 10.186 10.811 11.821 12.747 12.915 11.973 10.327 9.027 9.049 10.485 12.343 13.225 12.415 10.491 8.921 + 11.640 11.203 10.650 10.400 10.664 11.281 11.790 11.736 10.978 9.817 8.831 8.528 9.064 10.189 11.434 12.379 12.813 12.733 12.248 11.534 10.831 10.418 10.483 10.955 11.465 11.555 11.032 10.193 9.670 9.951 10.930 11.881 11.956 10.849 9.110 7.817 + 11.804 11.642 11.459 11.477 11.864 12.589 13.351 13.701 13.313 12.245 10.974 10.141 10.157 10.969 12.128 13.103 13.585 13.570 13.236 12.767 12.289 11.900 11.700 11.714 11.815 11.766 11.422 10.924 10.664 10.971 11.754 12.446 12.367 11.285 9.687 8.517 + 11.338 11.252 11.145 11.189 11.615 12.515 13.631 14.374 14.179 12.957 11.277 10.049 9.922 10.869 12.266 13.383 13.855 13.772 13.412 12.954 12.432 11.918 11.616 11.711 12.102 12.367 12.103 11.366 10.748 10.907 11.898 12.948 12.968 11.478 9.139 7.388 + 11.357 11.171 10.991 11.126 11.837 13.115 14.554 15.487 15.369 14.174 12.490 11.190 10.894 11.607 12.798 13.815 14.281 14.206 13.799 13.250 12.675 12.214 12.061 12.323 12.836 13.182 12.993 12.312 11.637 11.526 12.055 12.637 12.433 11.083 9.118 7.676 + 11.434 11.398 11.480 11.890 12.734 13.874 14.918 15.390 15.016 13.938 12.677 11.849 11.801 12.436 13.321 13.991 14.194 13.943 13.407 12.788 12.280 12.074 12.285 12.816 13.300 13.269 12.502 11.291 10.331 10.234 11.013 11.986 12.246 11.376 9.830 8.638 + 9.797 10.400 11.275 12.045 12.575 12.970 13.318 13.465 13.112 12.163 10.990 10.283 10.547 11.660 12.891 13.401 12.835 11.540 10.260 9.592 9.651 10.130 10.624 10.883 10.844 10.521 9.961 9.308 8.834 8.812 9.285 9.938 10.289 10.052 9.402 8.856 + 9.234 9.830 10.694 11.441 11.898 12.116 12.153 11.891 11.147 9.981 8.873 8.493 9.188 10.608 11.852 12.074 11.098 9.531 8.309 8.037 8.640 9.541 10.147 10.204 9.821 9.237 8.632 8.117 7.811 7.832 8.164 8.573 8.706 8.374 7.742 7.243 + 7.543 7.680 7.669 7.283 6.667 6.265 6.389 6.849 7.054 6.528 5.402 4.382 4.196 4.972 6.106 6.735 6.414 5.433 4.531 4.289 4.739 5.451 5.950 6.063 5.930 5.770 5.685 5.655 5.672 5.787 6.016 6.229 6.194 5.788 5.165 4.698 + 7.255 7.312 7.181 6.697 6.069 5.765 6.068 6.716 7.035 6.509 5.284 4.130 3.842 4.578 5.720 6.368 6.046 5.035 4.076 3.760 4.135 4.805 5.350 5.654 5.860 6.108 6.340 6.377 6.133 5.731 5.386 5.197 5.077 4.884 4.603 4.384 + 6.917 7.035 7.222 7.420 7.604 7.753 7.786 7.549 6.894 5.823 4.581 3.577 3.167 3.428 4.091 4.701 4.897 4.616 4.105 3.734 3.759 4.196 4.850 5.463 5.857 5.990 5.927 5.767 5.587 5.421 5.271 5.124 4.972 4.820 4.692 4.617 + 6.603 6.764 6.959 7.066 7.079 7.093 7.147 7.109 6.728 5.850 4.618 3.457 2.830 2.928 3.542 4.208 4.520 4.378 4.009 3.779 3.954 4.554 5.373 6.105 6.492 6.434 6.041 5.591 5.392 5.605 6.117 6.588 6.667 6.241 5.547 5.029 + 5.894 6.961 8.392 9.327 9.382 8.852 8.346 8.232 8.367 8.312 7.793 6.956 6.236 5.985 6.215 6.660 7.033 7.236 7.336 7.434 7.558 7.706 7.910 8.221 8.607 8.917 8.994 8.875 8.837 9.197 9.990 10.838 11.186 10.756 9.830 9.087 + 9.889 9.234 8.317 7.668 7.630 8.166 8.926 9.473 9.526 9.070 8.326 7.631 7.288 7.441 8.006 8.695 9.161 9.198 8.886 8.544 8.513 8.907 9.523 9.996 10.072 9.792 9.436 9.287 9.418 9.670 9.824 9.794 9.665 9.581 9.599 9.651 + 9.746 9.531 9.394 9.668 10.438 11.454 12.301 12.667 12.499 11.962 11.294 10.714 10.401 10.499 11.048 11.891 12.683 13.065 12.915 12.462 12.135 12.236 12.705 13.171 13.261 12.898 12.343 11.961 11.921 12.084 12.150 11.914 11.403 10.815 10.350 10.108 + 10.544 10.282 10.188 10.754 12.098 13.827 15.281 15.941 15.685 14.756 13.550 12.438 11.719 11.607 12.164 13.184 14.202 14.715 14.514 13.862 13.318 13.315 13.819 14.353 14.388 13.768 12.834 12.149 12.059 12.460 12.905 12.956 12.462 11.609 10.757 10.239 + 11.066 10.835 10.755 11.257 12.435 13.943 15.231 15.891 15.839 15.235 14.306 13.266 12.370 11.945 12.255 13.256 14.498 15.339 15.373 14.742 14.034 13.830 14.255 14.888 15.121 14.647 13.681 12.762 12.318 12.370 12.576 12.532 12.057 11.278 10.500 10.026 + 10.970 10.871 10.917 11.396 12.410 13.760 15.051 15.889 16.058 15.569 14.617 13.510 12.614 12.263 12.630 13.602 14.769 15.608 15.774 15.323 14.684 14.358 14.574 15.121 15.515 15.356 14.626 13.702 13.072 12.973 13.220 13.336 12.903 11.874 10.641 9.806 + 10.536 10.494 10.611 11.129 12.137 13.471 14.779 15.689 15.968 15.589 14.716 13.638 12.714 12.286 12.554 13.453 14.611 15.493 15.691 15.190 14.406 13.926 14.091 14.729 15.260 15.128 14.258 13.165 12.600 12.956 13.892 14.492 13.893 11.959 9.491 7.776 + 10.015 10.256 10.692 11.298 12.109 13.176 14.434 15.619 16.327 16.234 15.315 13.937 12.711 12.198 12.629 13.780 15.088 15.936 15.974 15.311 14.453 14.000 14.252 14.974 15.529 15.330 14.326 13.134 12.644 13.325 14.746 15.741 15.186 12.870 9.800 7.639 + 10.712 10.943 11.340 11.849 12.498 13.371 14.478 15.628 16.440 16.528 15.765 14.447 13.204 12.681 13.157 14.367 15.640 16.302 16.081 15.266 14.492 14.304 14.770 15.428 15.613 14.950 13.680 12.545 12.294 13.125 14.452 15.221 14.587 12.523 9.930 8.149 + 10.574 10.876 11.362 11.905 12.494 13.232 14.210 15.325 16.242 16.546 16.036 14.930 13.822 13.351 13.793 14.869 15.901 16.261 15.791 14.899 14.254 14.298 14.907 15.479 15.373 14.405 13.025 12.053 12.119 13.198 14.563 15.195 14.413 12.336 9.864 8.207 + 9.370 9.859 10.575 11.232 11.774 12.418 13.431 14.802 16.115 16.761 16.369 15.144 13.812 13.194 13.652 14.845 15.949 16.227 15.527 14.374 13.573 13.622 14.347 15.030 14.933 13.852 12.304 11.203 11.248 12.422 13.946 14.732 14.047 11.996 9.506 7.825 + 9.599 9.983 10.543 11.073 11.591 12.339 13.523 15.024 16.326 16.808 16.191 14.818 13.510 13.055 13.693 14.943 15.935 15.998 15.115 13.916 13.217 13.439 14.314 15.067 14.976 13.892 12.387 11.400 11.611 12.955 14.584 15.346 14.487 12.150 9.360 7.489 + 10.154 10.547 11.113 11.625 12.088 12.742 13.818 15.228 16.488 16.983 16.427 15.146 13.939 13.571 14.245 15.447 16.296 16.160 15.108 13.848 13.216 13.572 14.538 15.281 15.112 13.996 12.596 11.834 12.259 13.648 15.103 15.568 14.463 12.053 9.344 7.573 + 9.850 10.286 10.911 11.468 11.937 12.562 13.600 14.994 16.283 16.858 16.416 15.254 14.133 13.780 14.372 15.399 16.033 15.734 14.656 13.531 13.126 13.662 14.650 15.244 14.869 13.649 12.343 11.826 12.489 13.968 15.349 15.708 14.640 12.483 10.140 8.638 + 9.183 9.711 10.436 11.021 11.461 12.103 13.291 14.937 16.423 16.980 16.286 14.793 13.486 13.206 14.036 15.231 15.767 15.098 13.572 12.172 11.795 12.599 13.891 14.646 14.242 12.906 11.549 11.136 12.030 13.752 15.262 15.575 14.308 11.882 9.297 7.652 + 9.939 10.394 11.048 11.640 12.168 12.889 14.027 15.451 16.624 16.947 16.234 14.945 13.930 13.840 14.642 15.618 15.884 15.047 13.512 12.214 11.947 12.800 14.092 14.857 14.522 13.304 12.058 11.697 12.581 14.272 15.774 16.117 14.892 12.488 9.896 8.237 + 10.216 10.675 11.358 12.030 12.686 13.527 14.670 15.896 16.692 16.624 15.739 14.628 14.043 14.348 15.229 15.907 15.710 14.566 13.056 12.008 11.929 12.688 13.644 14.084 13.684 12.703 11.808 11.672 12.563 14.147 15.614 16.082 15.084 12.878 10.382 8.743 + 9.743 10.223 10.947 11.682 12.426 13.362 14.572 15.784 16.452 16.164 15.046 13.787 13.189 13.581 14.547 15.208 14.853 13.451 11.663 10.371 10.091 10.683 11.519 11.952 11.729 11.108 10.653 10.864 11.871 13.331 14.585 14.975 14.195 12.485 10.568 9.315 + 9.287 9.726 10.434 11.259 12.212 13.403 14.781 15.977 16.458 15.936 14.689 13.474 13.031 13.540 14.468 14.943 14.375 12.866 11.115 9.929 9.720 10.313 11.143 11.647 11.573 11.074 10.585 10.579 11.313 12.637 13.999 14.672 14.160 12.549 10.564 9.212 + 9.766 10.011 10.579 11.560 12.937 14.491 15.814 16.462 16.213 15.243 14.088 13.355 13.369 13.970 14.620 14.734 14.025 12.636 11.039 9.780 9.241 9.506 10.337 11.262 11.757 11.511 10.649 9.736 9.470 10.197 11.582 12.729 12.752 11.428 9.445 7.997 + 9.537 9.908 10.680 11.843 13.252 14.584 15.427 15.478 14.748 13.620 12.678 12.380 12.792 13.562 14.154 14.161 13.487 12.321 10.982 9.810 9.121 9.158 9.958 11.193 12.206 12.351 11.476 10.169 9.465 10.104 11.891 13.697 14.210 12.930 10.630 8.866 + 8.214 8.231 8.634 9.793 11.646 13.570 14.707 14.514 13.146 11.384 10.159 10.005 10.802 11.947 12.755 12.815 12.081 10.765 9.202 7.797 6.994 7.148 8.275 9.872 11.064 11.096 9.897 8.261 7.406 8.128 10.167 12.289 13.114 12.115 10.040 8.404 + 8.488 9.259 10.563 12.018 13.235 13.913 13.887 13.178 12.032 10.892 10.243 10.363 11.142 12.115 12.723 12.621 11.835 10.659 9.448 8.476 7.941 8.002 8.709 9.833 10.816 11.020 10.198 8.805 7.824 8.093 9.632 11.520 12.521 12.016 10.501 9.228 + 5.046 5.910 7.273 8.648 9.698 10.312 10.479 10.162 9.339 8.169 7.071 6.540 6.822 7.696 8.587 8.921 8.450 7.318 5.900 4.605 3.807 3.805 4.708 6.217 7.580 7.925 6.886 5.041 3.678 3.920 5.796 8.075 9.108 8.094 5.763 3.876 + 6.661 6.450 6.150 5.992 6.236 6.998 8.089 9.018 9.240 8.514 7.112 5.697 4.921 5.021 5.703 6.381 6.573 6.179 5.465 4.826 4.536 4.632 4.960 5.293 5.433 5.282 4.888 4.446 4.212 4.339 4.734 5.069 4.990 4.390 3.533 2.913 + 7.402 6.901 6.294 6.095 6.580 7.597 8.657 9.221 8.993 8.047 6.759 5.611 4.988 5.020 5.542 6.162 6.452 6.179 5.455 4.679 4.296 4.494 5.074 5.583 5.634 5.182 4.545 4.169 4.303 4.829 5.343 5.427 4.904 3.931 2.906 2.257 + 4.392 4.230 4.121 4.379 5.227 6.605 8.111 9.144 9.225 8.298 6.818 5.516 4.979 5.304 6.068 6.627 6.539 5.817 4.870 4.204 4.106 4.502 5.054 5.390 5.306 4.857 4.294 3.924 3.941 4.314 4.783 4.981 4.653 3.828 2.846 2.184 + 3.237 3.779 4.500 5.035 5.372 5.828 6.663 7.695 8.333 8.044 6.855 5.429 4.602 4.758 5.564 6.274 6.326 5.738 5.005 4.628 4.724 4.997 5.059 4.769 4.308 3.989 3.999 4.289 4.658 4.905 4.909 4.622 4.060 3.322 2.604 2.157 + 5.377 4.738 3.906 3.509 3.980 5.280 6.888 8.082 8.339 7.630 6.410 5.334 4.860 5.007 5.410 5.607 5.355 4.763 4.181 3.944 4.159 4.668 5.171 5.412 5.308 4.962 4.581 4.359 4.379 4.576 4.761 4.714 4.311 3.612 2.863 2.379 + 4.177 4.436 4.965 5.724 6.574 7.309 7.772 7.946 7.952 7.924 7.879 7.696 7.240 6.537 5.834 5.479 5.690 6.388 7.236 7.872 8.149 8.194 8.254 8.446 8.636 8.545 8.004 7.136 6.309 5.874 5.903 6.130 6.164 5.801 5.191 4.725 + 3.118 3.628 4.512 5.539 6.466 7.120 7.460 7.573 7.608 7.670 7.746 7.710 7.432 6.895 6.258 5.782 5.667 5.916 6.335 6.687 6.873 6.994 7.232 7.642 8.042 8.108 7.634 6.731 5.799 5.256 5.236 5.495 5.611 5.332 4.776 4.332 + 4.282 3.910 3.578 3.793 4.752 6.149 7.329 7.715 7.185 6.149 5.258 4.958 5.221 5.629 5.733 5.391 4.835 4.442 4.427 4.707 5.039 5.253 5.372 5.511 5.687 5.750 5.523 5.017 4.486 4.242 4.364 4.582 4.477 3.843 2.913 2.227 + 4.893 4.207 3.411 3.219 3.942 5.268 6.501 7.045 6.766 5.998 5.246 4.869 4.937 5.308 5.774 6.151 6.305 6.169 5.792 5.364 5.141 5.282 5.709 6.125 6.203 5.813 5.114 4.434 4.042 3.976 4.055 4.035 3.779 3.329 2.859 2.562 + 4.398 3.975 3.601 3.843 4.890 6.349 7.473 7.670 6.927 5.819 5.103 5.189 5.881 6.578 6.754 6.336 5.701 5.314 5.347 5.583 5.675 5.494 5.237 5.213 5.507 5.854 5.854 5.338 4.552 3.963 3.870 4.148 4.372 4.208 3.716 3.287 + 3.916 3.462 3.048 3.241 4.179 5.437 6.337 6.465 5.954 5.348 5.164 5.539 6.187 6.670 6.710 6.330 5.762 5.271 5.026 5.074 5.368 5.777 6.116 6.205 5.973 5.521 5.071 4.816 4.793 4.866 4.852 4.664 4.363 4.079 3.898 3.823 + 4.988 4.467 3.876 3.769 4.375 5.419 6.329 6.653 6.367 5.855 5.587 5.772 6.239 6.624 6.670 6.416 6.116 6.002 6.093 6.211 6.161 5.906 5.587 5.377 5.317 5.294 5.159 4.888 4.617 4.515 4.604 4.707 4.575 4.106 3.472 3.016 + 5.607 4.967 4.264 4.195 5.005 6.268 7.174 7.111 6.097 4.765 3.913 3.983 4.820 5.861 6.548 6.671 6.402 6.086 5.963 6.049 6.208 6.297 6.266 6.136 5.936 5.671 5.355 5.051 4.857 4.829 4.899 4.886 4.618 4.075 3.441 3.013 + 3.534 3.576 3.814 4.406 5.324 6.292 6.900 6.862 6.218 5.350 4.769 4.807 5.426 6.255 6.842 6.927 6.572 6.067 5.715 5.651 5.817 6.049 6.204 6.214 6.063 5.769 5.384 5.012 4.786 4.783 4.936 5.042 4.882 4.402 3.784 3.350 + 3.929 3.990 4.303 5.004 5.931 6.656 6.804 6.376 5.783 5.537 5.840 6.439 6.851 6.773 6.313 5.869 5.776 6.033 6.349 6.428 6.233 5.995 5.983 6.245 6.552 6.593 6.231 5.615 5.058 4.793 4.805 4.866 4.724 4.300 3.755 3.373 + 4.819 5.074 5.444 5.786 6.070 6.338 6.560 6.577 6.242 5.640 5.143 5.175 5.848 6.819 7.515 7.576 7.117 6.580 6.317 6.305 6.248 5.949 5.559 5.444 5.784 6.330 6.579 6.240 5.526 4.978 4.954 5.270 5.353 4.790 3.762 2.948 + 5.571 5.496 5.484 5.713 6.242 6.924 7.443 7.498 7.027 6.291 5.741 5.712 6.185 6.796 7.110 6.945 6.489 6.122 6.100 6.365 6.632 6.655 6.429 6.140 5.955 5.861 5.708 5.410 5.071 4.905 5.002 5.192 5.153 4.704 4.007 3.481 + 4.894 5.210 5.716 6.248 6.701 7.040 7.232 7.197 6.849 6.217 5.522 5.103 5.209 5.807 6.570 7.078 7.091 6.698 6.230 6.015 6.155 6.490 6.746 6.737 6.472 6.107 5.805 5.629 5.528 5.408 5.212 4.955 4.695 4.490 4.363 4.307 + 7.630 7.138 6.619 6.579 7.103 7.763 7.990 7.566 6.798 6.247 6.247 6.654 7.010 6.962 6.534 6.064 5.868 5.989 6.208 6.293 6.212 6.131 6.218 6.460 6.673 6.667 6.408 6.036 5.729 5.565 5.484 5.376 5.184 4.935 4.707 4.575 + 6.578 6.640 6.789 7.053 7.408 7.741 7.868 7.645 7.122 6.588 6.425 6.829 7.604 8.243 8.267 7.586 6.579 5.811 5.605 5.823 6.039 5.935 5.570 5.298 5.409 5.851 6.275 6.346 6.035 5.608 5.355 5.313 5.268 5.006 4.558 4.202 + 5.354 6.105 7.214 8.138 8.506 8.319 7.903 7.645 7.721 7.994 8.162 8.022 7.642 7.296 7.224 7.411 7.587 7.454 6.946 6.319 5.961 6.101 6.624 7.166 7.377 7.158 6.683 6.221 5.941 5.843 5.861 5.976 6.235 6.657 7.134 7.457 + 7.532 8.632 10.127 11.089 11.006 10.109 9.178 8.940 9.520 10.352 10.626 9.940 8.641 7.576 7.429 8.176 9.098 9.348 8.634 7.444 6.657 6.843 7.831 8.872 9.231 8.718 7.740 6.916 6.605 6.757 7.115 7.527 8.041 8.728 9.475 9.981 + 7.510 8.297 9.164 9.336 8.662 7.727 7.312 7.696 8.453 8.874 8.596 7.859 7.204 6.957 7.010 7.053 6.965 6.945 7.247 7.850 8.402 8.540 8.226 7.777 7.540 7.553 7.556 7.320 6.953 6.830 7.201 7.864 8.280 8.049 7.313 6.674 + 6.143 7.135 8.350 8.924 8.618 7.946 7.624 7.904 8.408 8.576 8.227 7.694 7.424 7.508 7.624 7.444 7.036 6.831 7.162 7.861 8.366 8.257 7.678 7.224 7.346 7.890 8.228 7.889 7.064 6.468 6.667 7.515 8.256 8.231 7.499 6.785 + 2.439 3.628 5.295 6.586 7.143 7.265 7.512 8.133 8.863 9.223 9.002 8.453 8.035 7.981 8.111 8.043 7.581 6.900 6.380 6.273 6.537 6.944 7.303 7.563 7.709 7.651 7.272 6.622 6.018 5.871 6.343 7.141 7.700 7.634 7.072 6.551 + 4.102 5.095 6.530 7.683 8.129 7.986 7.752 7.904 8.546 9.355 9.841 9.699 9.004 8.137 7.513 7.327 7.470 7.654 7.641 7.402 7.124 7.051 7.281 7.661 7.866 7.619 6.918 6.079 5.563 5.659 6.265 6.928 7.153 6.750 5.983 5.389 + 3.042 4.370 6.262 7.715 8.161 7.801 7.371 7.556 8.479 9.646 10.334 10.126 9.178 8.067 7.364 7.272 7.572 7.868 7.900 7.699 7.482 7.430 7.538 7.639 7.562 7.278 6.912 6.634 6.536 6.578 6.646 6.642 6.545 6.401 6.272 6.199 + 2.610 4.051 6.208 8.052 8.840 8.530 7.762 7.390 7.878 8.982 9.934 10.035 9.193 8.009 7.322 7.578 8.495 9.306 9.364 8.622 7.622 7.027 7.104 7.570 7.885 7.707 7.137 6.574 6.365 6.544 6.869 7.046 6.946 6.645 6.318 6.116 + 2.868 3.695 5.059 6.476 7.464 7.768 7.511 7.117 7.035 7.419 8.023 8.403 8.282 7.790 7.369 7.411 7.927 8.522 8.709 8.298 7.544 6.947 6.865 7.270 7.800 8.065 7.920 7.528 7.179 7.064 7.152 7.266 7.238 7.030 6.744 6.544 + 4.274 4.643 5.424 6.506 7.492 7.869 7.396 6.374 5.491 5.327 5.916 6.760 7.273 7.266 7.047 7.070 7.481 7.990 8.164 7.855 7.358 7.149 7.466 8.122 8.687 8.870 8.720 8.513 8.467 8.561 8.620 8.528 8.336 8.189 8.158 8.187 + 1.162 2.804 5.281 7.432 8.385 8.024 6.991 6.231 6.356 7.267 8.272 8.631 8.111 7.155 6.531 6.742 7.653 8.615 8.970 8.541 7.721 7.134 7.154 7.659 8.196 8.358 8.078 7.620 7.321 7.333 7.540 7.696 7.618 7.307 6.919 6.657 + 3.457 4.832 6.690 7.941 8.115 7.655 7.470 8.135 9.398 10.381 10.276 8.975 7.151 5.763 5.410 5.990 6.881 7.417 7.295 6.665 5.915 5.386 5.202 5.280 5.453 5.586 5.631 5.621 5.625 5.684 5.772 5.800 5.677 5.389 5.041 4.802 + 2.794 4.170 5.960 7.043 7.052 6.600 6.667 7.698 9.210 10.207 10.003 8.729 7.168 6.115 5.850 6.090 6.352 6.320 5.957 5.387 4.774 4.301 4.180 4.542 5.271 5.962 6.168 5.768 5.126 4.842 5.235 6.047 6.631 6.515 5.831 5.204 + 3.130 4.245 5.579 6.148 5.757 5.136 5.229 6.323 7.795 8.683 8.495 7.543 6.551 5.990 5.790 5.608 5.293 5.029 5.041 5.247 5.282 4.902 4.316 4.052 4.439 5.217 5.724 5.522 4.855 4.469 4.905 5.951 6.795 6.761 5.954 5.174 + 3.719 4.718 5.967 6.623 6.458 5.956 5.769 6.079 6.475 6.434 5.889 5.298 5.183 5.604 6.118 6.239 5.929 5.595 5.622 5.926 6.015 5.511 4.604 3.946 4.050 4.792 5.514 5.645 5.252 4.964 5.331 6.254 7.053 7.110 6.475 5.829 + 3.956 4.498 5.360 6.229 6.865 7.163 7.122 6.799 6.316 5.873 5.684 5.833 6.163 6.345 6.126 5.563 5.015 4.853 5.133 5.530 5.624 5.294 4.853 4.780 5.266 6.010 6.461 6.313 5.791 5.464 5.732 6.464 7.114 7.218 6.812 6.379 + 3.479 4.414 5.776 6.897 7.379 7.257 6.850 6.458 6.192 6.023 5.924 5.921 6.017 6.117 6.079 5.856 5.576 5.437 5.501 5.603 5.494 5.103 4.668 4.567 4.979 5.686 6.227 6.282 5.948 5.656 5.785 6.339 6.968 7.301 7.268 7.115 + 4.484 4.976 5.682 6.255 6.520 6.536 6.466 6.406 6.340 6.232 6.119 6.082 6.128 6.137 5.959 5.591 5.237 5.151 5.391 5.726 5.819 5.529 5.063 4.803 4.958 5.365 5.643 5.559 5.267 5.176 5.559 6.268 6.841 6.909 6.531 6.141 + 2.586 3.292 4.392 5.489 6.346 6.940 7.317 7.449 7.251 6.745 6.152 5.776 5.756 5.938 6.010 5.804 5.459 5.290 5.454 5.771 5.868 5.546 4.997 4.652 4.788 5.260 5.639 5.619 5.322 5.180 5.505 6.159 6.655 6.601 6.078 5.585 + 4.193 4.527 5.115 5.825 6.510 7.026 7.250 7.130 6.737 6.275 5.985 5.987 6.185 6.323 6.192 5.801 5.378 5.167 5.204 5.281 5.143 4.746 4.334 4.239 4.575 5.117 5.472 5.427 5.133 4.970 5.198 5.719 6.159 6.212 5.916 5.607 + 3.732 4.296 5.078 5.708 6.106 6.477 6.986 7.482 7.574 7.016 6.021 5.171 4.957 5.372 5.930 6.104 5.773 5.277 5.046 5.188 5.420 5.382 5.012 4.592 4.451 4.642 4.916 5.024 5.000 5.126 5.596 6.231 6.574 6.307 5.588 4.980 + 3.273 3.392 3.758 4.495 5.556 6.676 7.485 7.722 7.395 6.775 6.218 5.946 5.939 6.003 5.952 5.750 5.513 5.385 5.402 5.463 5.428 5.241 4.976 4.757 4.648 4.604 4.541 4.441 4.392 4.513 4.818 5.169 5.358 5.274 5.003 4.772 + 5.053 5.187 5.394 5.632 5.934 6.362 6.903 7.402 7.651 7.548 7.179 6.743 6.373 6.046 5.665 5.226 4.896 4.877 5.188 5.578 5.694 5.383 4.847 4.496 4.603 5.067 5.499 5.553 5.214 4.781 4.577 4.672 4.855 4.874 4.690 4.494 + 4.408 5.055 5.858 6.261 6.117 5.793 5.825 6.454 7.421 8.193 8.376 7.954 7.206 6.436 5.792 5.292 4.949 4.806 4.854 4.943 4.863 4.533 4.126 3.951 4.181 4.678 5.087 5.145 4.903 4.654 4.614 4.693 4.564 4.010 3.192 2.579 + 4.254 4.391 4.559 4.679 4.821 5.190 5.957 7.049 8.106 8.652 8.400 7.460 6.294 5.440 5.189 5.441 5.817 5.943 5.685 5.194 4.748 4.546 4.596 4.754 4.870 4.893 4.876 4.897 4.965 5.012 4.940 4.704 4.342 3.951 3.632 3.457 + 3.397 3.508 3.621 3.662 3.735 4.093 4.938 6.178 7.378 7.980 7.655 6.552 5.244 4.389 4.339 4.950 5.708 6.078 5.829 5.141 4.432 4.079 4.186 4.568 4.911 4.992 4.808 4.546 4.426 4.535 4.767 4.893 4.726 4.258 3.684 3.292 + 2.756 3.232 3.949 4.569 4.841 4.750 4.512 4.434 4.703 5.249 5.784 5.995 5.752 5.202 4.654 4.367 4.384 4.525 4.551 4.345 3.978 3.642 3.493 3.560 3.756 3.968 4.137 4.267 4.367 4.417 4.363 4.166 3.844 3.471 3.149 2.963 + 3.905 3.988 4.273 4.842 5.571 6.145 6.257 5.839 5.135 4.535 4.325 4.519 4.920 5.301 5.559 5.722 5.831 5.849 5.681 5.286 4.762 4.314 4.111 4.167 4.337 4.427 4.339 4.127 3.934 3.875 3.952 4.070 4.117 4.049 3.912 3.805 + 2.970 2.717 2.562 2.893 3.775 4.857 5.605 5.695 5.223 4.594 4.201 4.161 4.319 4.456 4.504 4.565 4.748 5.009 5.150 5.001 4.606 4.227 4.154 4.460 4.925 5.203 5.093 4.708 4.377 4.372 4.667 4.941 4.820 4.186 3.308 2.679 + 3.901 3.192 2.387 2.179 2.756 3.654 4.178 3.988 3.339 2.817 2.825 3.292 3.811 2.320 2.217 2.215 2.295 2.517 2.932 3.480 4.009 4.397 4.666 4.941 5.287 5.602 5.677 5.412 4.963 4.672 4.812 5.372 6.076 6.608 6.847 6.895 + 4.378 3.639 2.714 2.277 2.612 3.408 4.022 3.976 3.302 2.484 2.066 2.259 2.825 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.120 3.165 3.260 3.414 3.630 3.858 3.973 3.813 3.288 2.492 1.712 1.285 1.385 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.814 3.740 3.687 3.772 4.029 4.334 4.446 4.152 3.444 2.594 2.025 2.047 2.624 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.106 2.023 2.029 2.355 3.103 4.096 4.879 4.959 4.154 2.819 1.699 1.464 2.235 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.433 2.230 2.049 2.149 2.600 3.196 3.575 3.474 2.921 2.237 1.828 1.927 2.453 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.262 2.364 2.540 2.749 2.943 3.086 3.155 3.139 3.044 2.900 2.767 2.718 2.807 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.856 1.046 1.491 2.197 3.003 3.617 3.804 3.566 3.155 2.899 2.960 3.242 3.494 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.142 1.711 1.262 1.276 1.907 2.859 3.612 3.803 3.448 2.858 2.365 2.109 2.031 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 4.512 3.674 2.616 2.061 2.266 2.856 3.205 2.981 2.396 1.962 2.020 2.463 2.883 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 5.717 5.015 4.327 4.397 5.252 6.113 6.039 4.764 2.963 1.727 1.697 2.601 3.552 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 9.339 9.520 9.786 10.001 10.060 9.918 9.569 9.022 8.315 7.540 6.843 6.366 6.152 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 11.058 11.268 11.552 11.743 11.744 11.541 11.137 10.505 9.633 8.627 7.730 7.206 7.139 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 9.880 10.171 10.585 10.913 11.039 10.958 10.685 10.175 9.357 8.269 7.142 6.319 6.026 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 9.508 9.483 9.487 9.572 9.716 9.780 9.551 8.862 7.728 6.397 5.259 4.633 4.580 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 6.781 6.860 6.985 7.097 7.121 6.951 6.464 5.585 4.386 3.146 2.257 2.008 2.377 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.866 2.979 3.333 3.987 4.750 5.227 5.088 4.334 3.320 2.507 2.151 2.183 2.342 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.769 4.171 4.794 5.381 5.740 5.828 5.731 5.572 5.414 5.227 4.947 4.550 4.096 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 7.178 7.395 7.570 7.481 7.223 7.190 7.734 8.795 9.865 10.331 9.934 8.955 7.985 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 5.579 5.805 5.878 5.458 4.681 4.142 4.426 5.562 6.912 7.617 7.230 6.027 4.746 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.143 2.714 3.432 3.793 3.612 3.131 2.775 2.789 3.069 3.300 3.252 2.945 2.575 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.460 3.515 3.626 3.793 4.007 4.245 4.462 4.587 4.539 4.258 3.753 3.145 2.650 2.494 2.803 3.508 4.363 5.061 5.401 5.389 5.222 5.145 5.302 5.651 6.023 6.245 6.264 6.166 6.107 6.201 6.451 6.760 7.005 7.122 7.130 7.103 + 2.823 2.692 2.586 2.719 3.222 4.050 4.983 5.719 6.013 5.771 5.088 4.209 3.452 3.120 3.400 4.277 5.503 6.652 7.300 7.240 6.619 5.873 5.478 5.655 6.237 6.797 6.958 6.666 6.209 5.987 6.205 6.730 7.222 7.414 7.313 7.152 + 3.826 4.096 4.379 4.426 4.270 4.243 4.696 5.645 6.660 7.119 6.642 5.383 3.962 3.102 3.217 4.222 5.634 6.865 7.505 7.467 6.971 6.394 6.070 6.125 6.426 6.681 6.655 6.346 5.996 5.912 6.221 6.764 7.215 7.340 7.177 6.979 + 2.592 3.311 4.176 4.576 4.423 4.204 4.476 5.287 6.075 6.152 5.317 4.059 3.164 3.110 3.763 4.601 5.182 5.427 5.518 5.612 5.689 5.672 5.603 5.635 5.834 6.011 5.850 5.232 4.450 4.043 4.343 5.161 5.911 6.103 5.759 5.356 + 5.085 4.760 4.320 4.037 4.074 4.398 4.829 5.180 5.362 5.385 5.283 5.039 4.602 3.963 3.228 2.609 2.311 2.414 2.816 3.298 3.656 3.800 3.774 3.687 3.620 3.589 3.569 3.546 3.538 3.576 3.662 3.749 3.776 3.713 3.596 3.505 + 5.698 6.062 6.464 6.529 6.142 5.525 5.019 4.790 4.709 4.514 4.075 3.521 3.116 3.012 3.108 3.155 2.987 2.678 2.476 2.580 2.964 3.389 3.590 3.468 3.141 2.832 2.702 2.771 2.939 3.083 3.122 3.031 2.827 2.561 2.309 2.154 + 5.620 5.759 5.862 5.750 5.411 5.004 4.703 4.528 4.350 4.048 3.659 3.359 3.288 3.391 3.452 3.298 2.982 2.752 2.831 3.195 3.568 3.642 3.326 2.812 2.406 2.284 2.390 2.540 2.603 2.585 2.555 2.523 2.412 2.158 1.822 1.578 + 4.957 4.960 4.901 4.739 4.528 4.385 4.368 4.408 4.358 4.144 3.839 3.595 3.485 3.416 3.219 2.844 2.448 2.283 2.468 2.851 3.117 3.049 2.706 2.357 2.231 2.325 2.440 2.414 2.290 2.263 2.447 2.701 2.724 2.333 1.679 1.176 + 4.545 4.952 5.477 5.764 5.639 5.201 4.693 4.288 3.986 3.690 3.367 3.108 3.052 3.217 3.442 3.493 3.251 2.834 2.522 2.552 2.944 3.485 3.885 3.957 3.714 3.315 2.936 2.674 2.521 2.419 2.313 2.179 2.021 1.861 1.728 1.652 + 4.875 5.058 5.337 5.563 5.588 5.341 4.890 4.419 4.125 4.089 4.213 4.285 4.117 3.675 3.094 2.585 2.312 2.326 2.571 2.945 3.338 3.645 3.779 3.703 3.466 3.189 2.997 2.928 2.900 2.784 2.515 2.161 1.874 1.767 1.820 1.905 + 6.099 5.674 5.089 4.679 4.605 4.769 4.928 4.891 4.644 4.301 3.965 3.635 3.245 2.771 2.309 2.023 2.026 2.288 2.662 2.993 3.221 3.386 3.558 3.755 3.925 3.999 3.955 3.832 3.700 3.602 3.540 3.488 3.425 3.354 3.292 3.256 + 6.256 6.345 6.389 6.271 6.033 5.857 5.884 6.048 6.104 5.831 5.226 4.520 3.992 3.759 3.735 3.761 3.782 3.874 4.125 4.510 4.897 5.198 5.488 5.953 6.679 7.485 7.981 7.834 7.041 5.981 5.192 5.048 5.566 6.457 7.320 7.833 + 4.912 5.042 5.232 5.389 5.450 5.390 5.204 4.902 4.524 4.162 3.916 3.813 3.750 3.552 3.122 2.568 2.159 2.136 2.506 3.023 3.395 3.545 3.691 4.148 5.013 6.005 6.618 6.501 5.732 4.783 4.199 4.247 4.807 5.538 6.128 6.434 + 5.919 6.197 6.497 6.530 6.233 5.829 5.629 5.763 6.056 6.153 5.799 5.025 4.126 3.442 3.151 3.200 3.400 3.578 3.670 3.707 3.756 3.879 4.120 4.495 4.967 5.421 5.685 5.614 5.176 4.494 3.783 3.242 2.964 2.916 2.988 3.060 + 5.296 5.337 5.326 5.151 4.781 4.322 3.966 3.872 4.033 4.257 4.277 3.940 3.326 2.709 2.373 2.420 2.724 3.044 3.208 3.211 3.162 3.158 3.211 3.280 3.361 3.506 3.736 3.945 3.921 3.509 2.800 2.155 1.982 2.425 3.215 3.819 + 3.163 3.960 4.996 5.577 5.373 4.624 3.900 3.643 3.862 4.197 4.250 3.893 3.319 2.835 2.620 2.636 2.730 2.800 2.855 2.958 3.125 3.305 3.443 3.556 3.719 3.970 4.230 4.318 4.077 3.514 2.832 2.333 2.234 2.535 3.016 3.366 + 6.149 6.265 6.329 6.160 5.758 5.352 5.263 5.653 6.358 6.944 6.966 6.269 5.103 3.976 3.341 3.330 3.707 4.076 4.144 3.890 3.509 3.237 3.191 3.341 3.590 3.861 4.118 4.315 4.369 4.199 3.815 3.349 2.992 2.866 2.932 3.034 + 5.690 6.176 6.618 6.436 5.537 4.429 3.820 4.046 4.809 5.441 5.426 4.762 3.890 3.302 3.199 3.434 3.721 3.870 3.864 3.772 3.647 3.525 3.465 3.555 3.823 4.171 4.407 4.395 4.177 3.936 3.829 3.840 3.803 3.578 3.215 2.934 + 5.794 5.360 4.677 4.064 3.851 4.194 4.946 5.705 6.047 5.811 5.197 4.601 4.310 4.301 4.328 4.181 3.894 3.706 3.825 4.221 4.650 4.864 4.811 4.639 4.518 4.482 4.453 4.396 4.421 4.689 5.196 5.665 5.711 5.166 4.287 3.625 + 3.984 4.185 4.422 4.501 4.363 4.145 4.082 4.334 4.855 5.409 5.718 5.631 5.210 4.669 4.234 4.019 4.002 4.082 4.178 4.284 4.443 4.689 4.985 5.232 5.323 5.231 5.041 4.918 5.012 5.356 5.836 6.248 6.418 6.309 6.047 5.838 + 4.894 4.744 4.540 4.378 4.271 4.173 4.089 4.130 4.424 4.955 5.492 5.728 5.526 5.072 4.754 4.851 5.293 5.710 5.736 5.330 4.817 4.624 4.936 5.550 6.050 6.142 5.861 5.506 5.388 5.605 6.015 6.379 6.542 6.503 6.370 6.266 + 4.035 4.187 4.330 4.296 4.098 3.947 4.095 4.625 5.365 6.004 6.306 6.260 6.043 5.855 5.765 5.699 5.550 5.310 5.099 5.075 5.307 5.712 6.112 6.344 6.346 6.174 5.948 5.779 5.731 5.811 5.988 6.213 6.432 6.609 6.725 6.780 + 2.146 1.691 1.213 1.244 2.028 3.370 4.798 5.886 6.456 6.566 6.361 5.977 5.546 5.228 5.160 5.347 5.614 5.721 5.570 5.323 5.280 5.615 6.191 6.635 6.632 6.186 5.617 5.303 5.396 5.752 6.105 6.309 6.417 6.558 6.765 6.929 + 1.417 1.507 1.705 2.017 2.408 2.813 3.177 3.476 3.705 3.849 3.886 3.826 3.752 3.789 4.006 4.339 4.606 4.651 4.493 4.346 4.474 4.970 5.657 6.190 6.306 6.007 5.544 5.218 5.175 5.348 5.569 5.730 5.842 5.970 6.125 6.240 + 1.485 1.724 2.222 2.894 3.486 3.709 3.496 3.111 2.966 3.266 3.810 4.165 4.067 3.686 3.478 3.748 4.339 4.754 4.619 4.060 3.626 3.815 4.626 5.543 5.968 5.707 5.085 4.618 4.579 4.833 5.066 5.126 5.131 5.282 5.598 5.867 + 2.919 2.585 2.269 2.333 2.793 3.315 3.558 3.511 3.490 3.780 4.298 4.614 4.344 3.543 2.708 2.376 2.676 3.242 3.563 3.424 3.050 2.832 2.941 3.194 3.276 3.082 2.812 2.763 3.024 3.389 3.573 3.490 3.316 3.289 3.457 3.641 + 1.634 2.403 3.387 3.941 3.854 3.471 3.331 3.667 4.214 4.484 4.229 3.661 3.254 3.309 3.697 3.987 3.826 3.228 2.531 2.099 2.055 2.247 2.427 2.463 2.378 2.266 2.182 2.126 2.106 2.154 2.287 2.441 2.494 2.365 2.114 1.914 + 3.388 2.796 2.010 1.515 1.528 1.863 2.124 2.034 1.634 1.214 1.064 1.272 1.710 2.176 2.533 2.746 2.822 2.764 2.589 2.378 2.264 2.344 2.573 2.769 2.734 2.412 1.945 1.581 1.495 1.671 1.927 2.050 1.933 1.623 1.272 1.046 + 2.406 2.343 2.276 2.285 2.408 2.592 2.708 2.622 2.294 1.831 1.434 1.278 1.388 1.622 1.780 1.755 1.619 1.559 1.724 2.098 2.495 2.691 2.582 2.245 1.880 1.673 1.697 1.895 2.147 2.338 2.394 2.285 2.024 1.668 1.322 1.108 + 2.682 2.805 2.887 2.772 2.479 2.194 2.103 2.219 2.376 2.405 2.299 2.216 2.306 2.539 2.707 2.612 2.250 1.837 1.627 1.717 1.999 2.285 2.472 2.583 2.664 2.683 2.546 2.229 1.868 1.692 1.822 2.146 2.389 2.343 2.056 1.792 + 2.176 2.494 2.868 2.990 2.748 2.297 1.902 1.739 1.796 1.964 2.173 2.428 2.736 3.017 3.125 2.982 2.682 2.435 2.400 2.537 2.652 2.584 2.377 2.260 2.451 2.965 3.592 4.074 4.306 4.384 4.481 4.668 4.870 4.966 4.933 4.864 + 2.940 2.388 1.734 1.520 1.950 2.742 3.363 3.433 2.985 2.378 1.995 1.972 2.170 2.351 2.386 2.325 2.299 2.395 2.592 2.806 2.962 3.025 3.000 2.918 2.845 2.876 3.092 3.489 3.953 4.319 4.489 4.505 4.509 4.617 4.813 4.972 + 0.310 0.681 1.210 1.631 1.813 1.810 1.761 1.750 1.766 1.784 1.852 2.074 2.489 2.973 3.285 3.244 2.894 2.496 2.337 2.509 2.845 3.046 2.913 2.477 1.950 1.564 1.435 1.536 1.768 2.018 2.181 2.153 1.870 1.367 0.812 0.447 + 2.023 1.999 1.963 1.935 1.921 1.913 1.898 1.871 1.862 1.927 2.131 2.500 2.979 3.429 3.675 3.596 3.204 2.661 2.203 2.010 2.097 2.310 2.432 2.333 2.060 1.796 1.720 1.869 2.113 2.256 2.173 1.900 1.585 1.368 1.288 1.284 + 3.430 2.887 2.210 1.880 2.049 2.424 2.524 2.093 1.337 0.779 0.865 1.626 2.655 3.399 3.530 3.117 2.508 2.052 1.893 1.949 2.056 2.120 2.157 2.223 2.326 2.404 2.380 2.233 2.018 1.819 1.681 1.584 1.472 1.316 1.145 1.030 + 1.647 1.616 1.646 1.829 2.148 2.474 2.671 2.694 2.619 2.551 2.525 2.489 2.376 2.193 2.029 1.975 2.028 2.085 2.033 1.856 1.660 1.589 1.711 1.971 2.247 2.435 2.507 2.483 2.376 2.181 1.907 1.617 1.410 1.349 1.406 1.480 + 4.190 3.639 2.947 2.605 2.788 3.228 3.439 3.113 2.360 1.615 1.306 1.556 2.125 2.610 2.716 2.408 1.871 1.350 1.018 0.931 1.051 1.293 1.563 1.786 1.936 2.043 2.164 2.326 2.481 2.536 2.419 2.145 1.810 1.528 1.357 1.287 + 4.832 4.242 3.453 2.941 2.902 3.128 3.196 2.830 2.123 1.466 1.240 1.532 2.085 2.507 2.546 2.236 1.821 1.551 1.524 1.665 1.829 1.918 1.919 1.867 1.794 1.716 1.654 1.651 1.752 1.948 2.148 2.213 2.043 1.656 1.207 0.908 + 4.101 3.753 3.337 3.175 3.348 3.611 3.581 3.064 2.252 1.619 1.593 2.234 3.164 3.817 3.812 3.191 2.349 1.742 1.587 1.776 2.023 2.102 1.982 1.788 1.646 1.588 1.566 1.554 1.594 1.748 1.990 2.173 2.114 1.757 1.252 0.888 + 2.682 2.310 1.956 2.072 2.783 3.755 4.430 4.438 3.865 3.167 2.819 2.971 3.371 3.596 3.376 2.780 2.119 1.698 1.612 1.732 1.859 1.889 1.856 1.843 1.877 1.892 1.809 1.631 1.459 1.412 1.514 1.659 1.687 1.521 1.239 1.024 + 1.259 1.038 0.834 0.939 1.458 2.209 2.819 2.969 2.605 1.967 1.432 1.285 1.561 2.072 2.548 2.789 2.733 2.424 1.951 1.417 0.952 0.700 0.756 1.087 1.502 1.747 1.668 1.330 0.991 0.916 1.189 1.644 1.997 2.066 1.897 1.715 + 2.149 2.332 2.648 3.028 3.401 3.682 3.762 3.539 3.002 2.303 1.719 1.497 1.678 2.049 2.286 2.185 1.798 1.370 1.124 1.087 1.109 1.031 0.856 0.755 0.903 1.307 1.779 2.076 2.083 1.874 1.626 1.467 1.401 1.360 1.304 1.255 + 1.377 1.862 2.640 3.436 4.015 4.237 4.039 3.413 2.458 1.426 0.695 0.578 1.112 1.968 2.626 2.703 2.215 1.545 1.159 1.275 1.731 2.151 2.239 1.970 1.558 1.253 1.168 1.245 1.356 1.422 1.438 1.432 1.417 1.382 1.330 1.289 + 1.082 1.569 2.256 2.804 3.062 3.100 3.036 2.868 2.506 1.958 1.463 1.361 1.812 2.609 3.306 3.554 3.354 2.990 2.729 2.582 2.363 1.967 1.564 1.468 1.809 2.327 2.547 2.186 1.435 0.810 0.700 1.021 1.302 1.137 0.575 0.075 + 2.360 2.304 2.047 1.518 0.909 0.583 0.749 1.233 1.585 1.478 1.027 0.722 1.007 1.876 2.865 3.420 3.329 2.828 2.324 2.034 1.879 1.686 1.456 1.388 1.644 2.118 2.463 2.386 1.924 1.411 1.168 1.204 1.230 0.969 0.459 0.041 + 5.089 4.804 4.395 4.086 4.002 4.071 4.042 3.652 2.837 1.830 1.050 0.837 1.207 1.834 2.284 2.321 2.059 1.833 1.903 2.243 2.576 2.620 2.328 1.910 1.645 1.649 1.803 1.879 1.744 1.451 1.170 1.032 1.043 1.116 1.173 1.195 + 3.600 3.967 4.493 4.919 5.111 5.059 4.762 4.144 3.153 1.941 0.925 0.578 1.081 2.128 3.093 3.458 3.153 2.540 2.056 1.865 1.792 1.576 1.171 0.791 0.689 0.891 1.158 1.218 1.019 0.772 0.730 0.942 1.217 1.324 1.220 1.075 + 4.220 4.401 4.646 4.805 4.794 4.638 4.436 4.280 4.197 4.162 4.133 4.107 4.119 4.232 4.499 4.944 5.535 6.172 6.682 6.875 6.630 5.986 5.161 4.473 4.186 4.385 4.943 5.604 6.117 6.344 6.276 5.992 5.601 5.202 4.880 4.700 + 5.606 5.634 5.765 6.044 6.393 6.654 6.724 6.662 6.630 6.714 6.806 6.676 6.214 5.616 5.330 5.758 6.936 8.447 9.646 10.038 9.540 8.478 7.352 6.585 6.376 6.705 7.398 8.195 8.813 9.033 8.801 8.258 7.665 7.240 7.047 7.001 + 1.706 1.731 1.871 2.181 2.568 2.814 2.744 2.403 2.056 2.015 2.397 3.036 3.613 3.923 4.042 4.265 4.857 5.808 6.782 7.307 7.079 6.155 4.945 3.984 3.662 4.043 4.873 5.720 6.190 6.084 5.452 4.526 3.591 2.856 2.399 2.194 + 0.103 0.322 0.697 1.131 1.515 1.735 1.691 1.363 0.896 0.596 0.772 1.485 2.429 3.085 3.099 2.588 2.093 2.167 2.905 3.832 4.256 3.822 2.803 1.872 1.559 1.860 2.320 2.475 2.249 1.951 1.912 2.140 2.322 2.159 1.690 1.280 + 1.837 1.862 1.873 1.835 1.756 1.685 1.669 1.721 1.831 2.009 2.296 2.718 3.218 3.641 3.815 3.672 3.321 2.988 2.866 2.985 3.204 3.327 3.247 2.999 2.715 2.519 2.465 2.543 2.720 2.952 3.164 3.247 3.109 2.753 2.317 2.017 + 2.896 2.647 2.366 2.352 2.786 3.587 4.432 4.962 5.058 4.944 5.023 5.523 6.256 6.721 6.515 5.725 4.938 4.824 5.595 6.811 7.702 7.761 7.111 6.357 6.064 6.321 6.750 6.903 6.659 6.275 6.067 6.089 6.097 5.841 5.354 4.956 + 1.295 1.682 2.264 2.857 3.470 4.248 5.246 6.281 7.046 7.393 7.474 7.575 7.807 7.982 7.857 7.505 7.402 8.053 9.452 10.913 11.510 10.821 9.311 7.994 7.623 8.122 8.737 8.759 8.130 7.407 7.142 7.318 7.387 6.855 5.837 5.011 + 5.004 5.047 5.132 5.327 5.763 6.509 7.418 8.146 8.419 8.306 8.230 8.619 9.485 10.355 10.665 10.307 9.797 9.854 10.738 11.946 12.593 12.160 10.949 9.822 9.448 9.760 10.094 9.872 9.155 8.554 8.594 9.164 9.605 9.348 8.487 7.725 + 7.858 7.920 7.935 7.833 7.711 7.798 8.266 9.070 9.965 10.697 11.166 11.434 11.591 11.645 11.571 11.438 11.454 11.819 12.502 13.177 13.435 13.103 12.393 11.720 11.341 11.147 10.815 10.171 9.427 9.028 9.254 9.927 10.538 10.666 10.338 9.974 + 10.413 10.695 11.125 11.546 11.894 12.216 12.585 13.017 13.448 13.803 14.046 14.171 14.160 13.991 13.697 13.415 13.330 13.513 13.822 13.976 13.783 13.322 12.885 12.681 12.584 12.192 11.203 9.804 8.669 8.493 9.410 10.795 11.682 11.505 10.540 9.675 + 12.176 12.311 12.535 12.808 13.145 13.609 14.247 15.008 15.732 16.209 16.297 16.012 15.533 15.120 14.990 15.203 15.635 16.033 16.152 15.881 15.307 14.642 14.073 13.620 13.132 12.430 11.505 10.603 10.086 10.158 10.650 11.070 10.921 10.071 8.893 8.050 + 12.544 12.533 12.509 12.498 12.592 12.945 13.699 14.858 16.183 17.243 17.625 17.220 16.356 15.637 15.568 16.208 17.140 17.781 17.805 17.344 16.818 16.542 16.452 16.187 15.440 14.264 13.072 12.330 12.197 12.416 12.514 12.144 11.284 10.203 9.257 8.718 + 11.894 11.916 11.974 12.092 12.318 12.746 13.501 14.639 16.001 17.186 17.728 17.420 16.541 15.745 15.630 16.303 17.300 17.940 17.853 17.232 16.603 16.322 16.267 15.974 15.113 13.836 12.682 12.131 12.188 12.393 12.219 11.499 10.506 9.667 9.207 9.056 + 12.493 12.418 12.342 12.363 12.557 12.997 13.763 14.881 16.204 17.351 17.866 17.540 16.649 15.860 15.784 16.512 17.533 18.119 17.910 17.174 16.534 16.389 16.562 16.475 15.715 14.448 13.312 12.877 13.147 13.553 13.426 12.516 11.130 9.819 8.953 8.572 + 12.482 12.587 12.721 12.828 12.970 13.344 14.146 15.381 16.747 17.752 18.001 17.502 16.707 16.240 16.459 17.189 17.848 17.902 17.280 16.424 15.922 16.009 16.375 16.423 15.781 14.633 13.588 13.200 13.530 14.092 14.217 13.504 12.054 10.335 8.884 8.075 + 13.039 13.239 13.424 13.433 13.407 13.736 14.711 16.177 17.554 18.229 18.033 17.374 16.916 17.051 17.607 18.014 17.782 16.897 15.822 15.139 15.128 15.591 16.030 15.992 15.342 14.318 13.367 12.895 13.043 13.590 14.023 13.770 12.523 10.478 8.327 6.948 + 13.587 13.656 13.765 13.941 14.310 15.010 16.010 17.030 17.673 17.719 17.312 16.872 16.763 16.982 17.148 16.808 15.826 14.538 13.541 13.281 13.754 14.526 15.021 14.865 14.057 12.913 11.874 11.289 11.270 11.635 11.960 11.762 10.760 9.087 7.307 6.159 + 14.344 13.694 12.938 12.722 13.280 14.270 15.083 15.328 15.098 14.806 14.773 14.955 15.006 14.615 13.780 12.802 12.036 11.648 11.583 11.729 12.068 12.640 13.366 13.917 13.834 12.857 11.193 9.494 8.481 8.469 9.133 9.709 9.500 8.358 6.808 5.712 + 14.046 13.869 13.518 12.974 12.213 11.289 10.427 9.991 10.270 11.225 12.406 13.168 13.087 12.258 11.227 10.587 10.558 10.875 11.091 11.027 10.960 11.359 12.379 13.547 13.970 12.980 10.719 8.203 6.729 7.002 8.626 10.334 10.838 9.711 7.687 6.144 + 14.084 13.702 13.133 12.566 12.004 11.334 10.585 10.065 10.187 11.064 12.269 13.046 12.862 11.845 10.702 10.166 10.416 10.993 11.277 11.081 10.841 11.189 12.295 13.566 14.002 12.957 10.701 8.313 6.981 7.218 8.552 9.889 10.254 9.406 7.935 6.834 + 13.870 13.590 13.185 12.747 12.154 11.228 10.082 9.256 9.384 10.615 12.309 13.399 13.186 11.901 10.533 10.016 10.495 11.287 11.578 11.199 10.774 11.096 12.306 13.638 13.971 12.753 10.491 8.424 7.640 8.338 9.773 10.834 10.789 9.670 8.155 7.111 + 13.781 13.544 13.220 12.865 12.288 11.245 9.857 8.772 8.776 10.105 12.066 13.424 13.312 11.913 10.308 9.590 10.007 10.874 11.303 11.057 10.742 11.154 12.416 13.708 13.869 12.379 9.863 7.693 7.012 7.957 9.634 10.797 10.660 9.311 7.542 6.335 + 13.718 13.547 13.264 12.858 12.198 11.200 10.089 9.425 9.737 11.023 12.575 13.394 12.929 11.514 10.113 9.556 9.918 10.577 10.875 10.745 10.725 11.344 12.476 13.289 12.891 11.124 8.805 7.178 7.031 8.161 9.569 10.178 9.504 7.851 6.022 4.856 + 14.137 13.375 12.650 12.786 13.825 14.948 15.208 14.384 13.176 12.563 12.945 13.835 14.349 13.987 12.990 12.015 11.512 11.428 11.444 11.421 11.525 11.926 12.420 12.456 11.612 10.086 8.676 8.205 8.867 10.068 10.894 10.785 9.850 8.639 7.674 7.183 + 13.480 13.082 12.738 12.980 13.985 15.396 16.548 16.920 16.474 15.651 15.055 15.063 15.616 16.300 16.615 16.256 15.269 14.012 12.975 12.540 12.779 13.392 13.852 13.691 12.792 11.487 10.383 9.999 10.448 11.350 12.048 11.975 10.963 9.314 7.647 6.612 + 12.014 12.299 12.738 13.248 13.922 14.920 16.190 17.319 17.730 17.148 15.927 14.909 14.842 15.804 17.101 17.756 17.214 15.739 14.189 13.390 13.585 14.344 14.936 14.842 14.036 12.912 11.990 11.619 11.824 12.319 12.639 12.332 11.192 9.416 7.586 6.423 + 12.734 12.675 12.685 12.969 13.700 14.878 16.244 17.314 17.606 16.932 15.600 14.327 13.866 14.537 15.982 17.337 17.766 16.995 15.493 14.156 13.691 14.157 14.960 15.311 14.787 13.591 12.357 11.657 11.627 11.933 12.079 11.762 11.026 10.153 9.438 9.052 + 13.570 13.016 12.483 12.646 13.724 15.294 16.597 17.056 16.586 15.522 14.332 13.386 12.926 13.113 13.973 15.257 16.399 16.761 16.064 14.668 13.408 13.021 13.593 14.464 14.691 13.749 11.921 10.099 9.171 9.446 10.513 11.581 12.006 11.654 10.892 10.304 + 12.822 12.564 12.354 12.521 13.110 13.827 14.251 14.140 13.538 12.646 11.635 10.590 9.636 9.051 9.172 10.127 11.625 13.037 13.769 13.660 13.060 12.539 12.450 12.693 12.857 12.590 11.881 11.044 10.457 10.289 10.427 10.612 10.640 10.476 10.231 10.058 + 10.231 9.402 8.356 7.868 8.314 9.422 10.501 10.923 10.501 9.515 8.443 7.660 7.317 7.400 7.843 8.544 9.308 9.848 9.914 9.480 8.819 8.363 8.416 8.948 9.612 9.999 9.922 9.523 9.128 8.976 9.033 9.035 8.706 7.998 7.157 6.587 + 7.060 7.165 7.249 7.238 7.268 7.625 8.476 9.615 10.485 10.524 9.595 8.167 7.051 6.868 7.630 8.737 9.407 9.213 8.347 7.439 7.091 7.475 8.257 8.874 8.912 8.329 7.403 6.494 5.829 5.439 5.244 5.170 5.196 5.314 5.478 5.597 + 6.336 6.430 6.358 5.985 5.628 5.925 7.260 9.267 10.918 11.231 10.027 8.125 6.769 6.736 7.835 9.146 9.760 9.405 8.518 7.797 7.683 8.143 8.839 9.419 9.696 9.623 9.224 8.582 7.863 7.298 7.054 7.114 7.292 7.387 7.340 7.255 + 6.417 6.151 5.773 5.553 5.771 6.576 7.852 9.200 10.078 10.076 9.180 7.826 6.699 6.347 6.850 7.771 8.434 8.361 7.574 6.572 5.990 6.179 6.991 7.902 8.360 8.123 7.357 6.482 5.886 5.724 5.900 6.191 6.410 6.488 6.465 6.424 + 6.395 6.825 7.440 7.957 8.280 8.545 8.950 9.547 10.162 10.537 10.542 10.275 9.969 9.809 9.819 9.902 9.968 10.012 10.094 10.251 10.478 10.774 11.205 11.881 12.838 13.931 14.845 15.258 15.030 14.281 13.302 12.388 11.700 11.257 11.004 10.889 + 5.585 6.210 7.158 8.040 8.632 8.968 9.234 9.565 9.929 10.190 10.247 10.126 9.942 9.788 9.669 9.543 9.414 9.377 9.563 10.033 10.731 11.536 12.357 13.181 14.026 14.850 15.504 15.802 15.639 15.078 14.328 13.633 13.156 12.926 12.869 12.876 + 6.954 6.945 6.959 7.027 7.152 7.320 7.526 7.772 8.027 8.201 8.189 7.975 7.716 7.680 8.070 8.848 9.740 10.438 10.854 11.197 11.793 12.791 13.998 15.004 15.493 15.471 15.239 15.127 15.240 15.429 15.480 15.329 15.107 14.992 15.031 15.115 + 7.756 7.744 7.998 8.739 9.825 10.770 11.134 10.899 10.481 10.363 10.679 11.138 11.349 11.225 11.078 11.328 12.094 13.077 13.818 14.094 14.073 14.112 14.404 14.823 15.080 15.028 14.804 14.680 14.805 15.078 15.269 15.250 15.090 14.956 14.934 14.969 + 10.622 10.716 10.898 11.092 11.130 10.851 10.257 9.574 9.126 9.093 9.383 9.736 9.975 10.179 10.599 11.400 12.460 13.428 13.995 14.121 14.030 13.972 14.004 13.990 13.803 13.519 13.380 13.567 13.994 14.346 14.332 13.930 13.389 13.007 12.887 12.907 + 14.182 14.580 14.877 14.487 13.225 11.486 9.970 9.213 9.272 9.796 10.361 10.774 11.124 11.603 12.275 13.010 13.580 13.808 13.648 13.166 12.481 11.738 11.096 10.688 10.561 10.631 10.731 10.724 10.608 10.504 10.549 10.778 11.098 11.374 11.532 11.590 + 14.343 14.274 14.039 13.614 13.164 12.936 12.986 13.051 12.745 11.951 11.033 10.615 11.075 12.189 13.272 13.702 13.385 12.751 12.312 12.202 12.120 11.694 10.891 10.070 9.643 9.691 9.908 9.925 9.673 9.424 9.492 9.892 10.311 10.419 10.191 9.924 + 16.963 16.549 15.792 14.862 14.007 13.439 13.189 13.065 12.792 12.251 11.618 11.257 11.438 12.085 12.794 13.105 12.822 12.135 11.442 11.048 10.965 10.961 10.788 10.379 9.864 9.436 9.199 9.124 9.109 9.082 9.036 8.991 8.959 8.930 8.898 8.875 + 16.951 16.489 15.726 14.904 14.226 13.747 13.356 12.880 12.241 11.557 11.090 11.052 11.433 11.980 12.366 12.403 12.131 11.729 11.330 10.937 10.500 10.053 9.750 9.737 9.970 10.187 10.093 9.617 9.002 8.614 8.622 8.836 8.859 8.444 7.737 7.191 + 17.467 16.711 15.616 14.696 14.197 13.985 13.745 13.297 12.727 12.252 11.993 11.867 11.715 11.497 11.347 11.421 11.684 11.870 11.672 11.010 10.133 9.456 9.259 9.497 9.868 10.058 9.957 9.677 9.401 9.212 9.052 8.802 8.406 7.921 7.482 7.222 + 15.467 15.499 15.378 14.917 14.115 13.176 12.354 11.780 11.420 11.191 11.074 11.111 11.282 11.430 11.346 10.947 10.379 9.911 9.706 9.681 9.597 9.301 8.886 8.610 8.639 8.877 9.045 8.946 8.648 8.406 8.382 8.449 8.287 7.703 6.873 6.262 + 13.524 13.136 12.574 12.058 11.597 11.011 10.180 9.288 8.797 9.116 10.223 11.566 12.382 12.205 11.190 9.997 9.320 9.419 9.992 10.456 10.391 9.806 9.069 8.597 8.560 8.818 9.078 9.124 8.938 8.644 8.370 8.154 7.949 7.711 7.467 7.306 + 12.822 12.170 11.340 10.841 10.759 10.705 10.234 9.362 8.662 8.845 10.129 11.959 13.336 13.506 12.484 11.001 9.954 9.798 10.321 10.911 11.050 10.634 9.947 9.365 9.091 9.075 9.130 9.101 8.944 8.701 8.433 8.179 7.954 7.767 7.630 7.557 + 9.644 9.403 9.238 9.411 9.770 9.815 9.164 8.017 7.147 7.372 8.907 11.149 13.056 13.824 13.336 12.089 10.757 9.775 9.228 9.011 9.006 9.124 9.250 9.242 9.036 8.734 8.548 8.601 8.777 8.791 8.441 7.809 7.214 6.944 7.013 7.172 + 9.376 9.430 9.711 10.317 11.024 11.339 10.850 9.610 8.208 7.425 7.705 8.846 10.146 10.882 10.765 10.038 9.211 8.662 8.433 8.325 8.157 7.943 7.845 7.981 8.282 8.513 8.454 8.070 7.527 7.061 6.808 6.725 6.665 6.516 6.297 6.131 + 6.280 6.541 7.056 7.753 8.448 8.855 8.712 7.952 6.821 5.824 5.482 6.030 7.242 8.522 9.239 9.084 8.226 7.168 6.410 6.162 6.284 6.467 6.480 6.304 6.079 5.947 5.942 5.993 6.014 5.980 5.926 5.895 5.898 5.910 5.913 5.909 + 5.505 5.821 6.313 6.773 7.019 6.975 6.684 6.269 5.876 5.635 5.644 5.948 6.511 7.173 7.679 7.784 7.413 6.753 6.187 6.057 6.423 6.986 7.277 6.987 6.201 5.347 4.889 4.997 5.443 5.814 5.847 5.622 5.446 5.563 5.923 6.237 + 4.247 4.508 5.044 5.758 6.375 6.568 6.216 5.552 5.026 4.971 5.361 5.878 6.233 6.412 6.641 7.095 7.670 8.046 7.992 7.612 7.273 7.280 7.597 7.902 7.902 7.607 7.292 7.185 7.206 7.035 6.447 5.586 4.889 4.709 4.994 5.330 + 5.500 5.032 4.738 5.254 6.546 7.858 8.344 7.783 6.732 6.001 5.969 6.372 6.699 6.755 6.821 7.292 8.201 9.129 9.587 9.464 9.089 8.864 8.869 8.851 8.592 8.220 8.102 8.398 8.756 8.548 7.477 5.974 4.939 4.996 5.919 6.789 + 5.820 5.132 4.510 4.786 6.125 7.859 9.028 9.138 8.472 7.750 7.498 7.705 7.999 8.100 8.074 8.196 8.611 9.176 9.620 9.813 9.852 9.898 9.975 9.969 9.828 9.701 9.812 10.160 10.379 9.990 8.859 7.450 6.544 6.625 7.445 8.203 + 6.518 6.052 5.626 5.794 6.665 7.830 8.745 9.195 9.401 9.698 10.137 10.417 10.222 9.610 9.065 9.127 9.928 11.067 11.915 12.082 11.638 10.955 10.374 10.027 9.895 9.969 10.249 10.619 10.770 10.373 9.398 8.263 7.601 7.771 8.533 9.204 + 9.279 8.972 8.689 8.804 9.416 10.267 10.960 11.258 11.218 11.048 10.882 10.686 10.383 10.045 9.933 10.306 11.170 12.190 12.875 12.906 12.331 11.501 10.801 10.418 10.296 10.285 10.302 10.370 10.534 10.747 10.858 10.708 10.247 9.585 8.943 8.551 + 7.801 7.864 7.987 8.160 8.370 8.627 8.986 9.528 10.287 11.168 11.926 12.272 12.061 11.438 10.816 10.661 11.192 12.210 13.194 13.614 13.264 12.377 11.452 10.904 10.827 10.999 11.125 11.090 11.017 11.093 11.338 11.530 11.368 10.750 9.914 9.317 + 9.044 8.747 8.353 8.136 8.271 8.766 9.507 10.376 11.318 12.285 13.134 13.593 13.412 12.611 11.614 11.099 11.579 12.996 14.656 15.620 15.319 13.942 12.299 11.241 11.083 11.454 11.686 11.385 10.723 10.224 10.260 10.722 11.134 11.099 10.658 10.237 + 9.521 9.118 8.713 8.770 9.423 10.362 11.089 11.341 11.308 11.448 12.054 12.947 13.577 13.485 12.754 12.035 12.090 13.179 14.794 15.986 16.044 15.006 13.596 12.636 12.430 12.597 12.482 11.761 10.727 10.024 10.083 10.753 11.454 11.683 11.418 11.078 + 9.329 9.705 10.156 10.338 10.156 9.847 9.797 10.252 11.152 12.197 13.055 13.531 13.619 13.450 13.228 13.174 13.461 14.108 14.913 15.521 15.629 15.196 14.471 13.796 13.337 12.973 12.470 11.760 11.074 10.773 11.014 11.559 11.937 11.825 11.326 10.879 + 10.457 10.540 10.623 10.587 10.364 10.013 9.743 9.830 10.465 11.596 12.895 13.893 14.252 13.989 13.501 13.317 13.736 14.600 15.386 15.570 15.008 14.046 13.255 12.992 13.138 13.223 12.842 12.025 11.235 10.998 11.445 12.176 12.559 12.240 11.436 10.771 + 11.696 11.894 12.193 12.461 12.618 12.700 12.842 13.191 13.782 14.475 14.997 15.106 14.762 14.205 13.838 13.983 14.642 15.462 15.941 15.757 14.987 14.050 13.396 13.172 13.137 12.889 12.239 11.423 10.954 11.199 12.032 12.840 12.940 12.100 10.762 9.765 + 12.208 12.408 12.685 12.928 13.160 13.542 14.218 15.162 16.153 16.898 17.211 17.095 16.706 16.258 15.950 15.927 16.233 16.754 17.209 17.267 16.749 15.779 14.718 13.902 13.393 12.967 12.374 11.643 11.122 11.185 11.825 12.534 12.637 11.833 10.507 9.504 + 12.047 12.360 12.723 12.891 12.921 13.172 13.991 15.357 16.820 17.785 17.936 17.436 16.777 16.426 16.556 17.036 17.611 18.075 18.315 18.266 17.882 17.176 16.261 15.313 14.469 13.764 13.191 12.798 12.709 12.979 13.417 13.578 13.024 11.696 10.077 8.965 + 11.716 12.070 12.564 12.958 13.211 13.544 14.267 15.489 16.939 18.065 18.380 17.812 16.802 16.038 16.017 16.722 17.671 18.282 18.267 17.768 17.159 16.691 16.302 15.729 14.809 13.699 12.805 12.485 12.766 13.296 13.571 13.253 12.349 11.159 10.088 9.467 + 12.332 12.725 13.232 13.567 13.719 13.998 14.759 16.038 17.423 18.279 18.202 17.326 16.265 15.707 15.966 16.815 17.693 18.116 17.973 17.519 17.096 16.840 16.587 16.042 15.066 13.854 12.864 12.543 13.023 13.992 14.822 14.896 13.944 12.213 10.369 9.190 + 12.272 12.854 13.552 13.912 13.969 14.244 15.219 16.791 18.226 18.709 18.025 16.775 15.925 16.067 17.008 17.995 18.345 17.937 17.195 16.653 16.518 16.561 16.371 15.690 14.581 13.362 12.423 12.081 12.458 13.396 14.426 14.911 14.367 12.824 10.926 9.627 + 12.297 13.054 13.957 14.421 14.509 14.868 16.019 17.694 18.912 18.809 17.458 15.909 15.367 16.202 17.675 18.586 18.261 17.014 15.768 15.246 15.453 15.841 15.841 15.264 14.268 13.095 11.951 11.095 10.896 11.601 12.957 14.102 14.044 12.436 10.019 8.238 + 12.792 13.369 14.163 14.818 15.329 15.995 17.020 18.163 18.845 18.647 17.745 16.841 16.598 17.076 17.665 17.601 16.601 15.094 13.864 13.448 13.797 14.403 14.702 14.393 13.483 12.184 10.852 9.968 10.021 11.189 13.027 14.523 14.659 13.160 10.825 9.100 + 13.201 13.494 14.127 15.112 16.318 17.437 18.097 18.072 17.477 16.755 16.421 16.703 17.341 17.733 17.342 16.088 14.404 12.944 12.154 12.060 12.371 12.763 13.051 13.141 12.906 12.210 11.121 10.088 9.792 10.666 12.423 14.068 14.502 13.341 11.291 9.727 + 12.905 13.415 14.402 15.712 17.008 17.839 17.874 17.140 16.087 15.353 15.350 15.957 16.564 16.498 15.506 13.939 12.483 11.641 11.405 11.382 11.231 11.002 11.039 11.532 12.183 12.362 11.694 10.554 9.934 10.678 12.660 14.677 15.246 13.767 11.105 9.057 + 12.476 13.359 14.827 16.358 17.378 17.498 16.727 15.516 14.546 14.340 14.920 15.768 16.136 15.542 14.092 12.391 11.107 10.518 10.396 10.311 10.065 9.877 10.121 10.869 11.670 11.847 11.105 9.933 9.361 10.185 12.234 14.342 15.122 14.020 11.803 10.062 + 12.298 13.330 14.910 16.327 17.013 16.801 15.963 15.013 14.426 14.397 14.766 15.127 15.061 14.380 13.234 12.001 11.040 10.459 10.098 9.749 9.405 9.312 9.724 10.546 11.250 11.195 10.201 8.863 8.260 9.170 11.379 13.671 14.629 13.678 11.571 9.888 + 12.244 13.304 14.818 15.967 16.226 15.624 14.633 13.815 13.494 13.651 14.026 14.303 14.247 13.770 12.937 11.926 10.949 10.143 9.535 9.094 8.847 8.904 9.328 9.931 10.247 9.799 8.542 7.104 6.500 7.431 9.652 11.981 13.050 12.288 10.389 8.845 + 11.843 13.137 14.856 15.909 15.746 14.645 13.362 12.521 12.277 12.431 12.758 13.186 13.665 13.984 13.795 12.891 11.458 10.022 9.106 8.890 9.167 9.573 9.843 9.832 9.396 8.371 6.789 5.138 4.279 4.909 6.931 9.311 10.697 10.391 8.910 7.606 + 11.589 12.967 14.760 15.768 15.416 14.074 12.630 11.762 11.512 11.477 11.345 11.229 11.501 12.323 13.345 13.890 13.479 12.249 10.892 10.171 10.383 11.173 11.800 11.618 10.439 8.588 6.695 5.388 5.042 5.660 6.885 8.168 9.017 9.240 9.017 8.747 + 11.586 12.781 14.337 15.214 14.913 13.764 12.568 11.914 11.760 11.593 10.993 10.085 9.486 9.788 11.030 12.595 13.644 13.724 13.080 12.425 12.362 12.911 13.489 13.347 12.117 10.090 8.042 6.760 6.604 7.360 8.435 9.216 9.379 8.984 8.366 7.928 + 11.248 12.227 13.508 14.243 14.015 13.065 12.003 11.298 10.981 10.763 10.400 9.949 9.685 9.812 10.256 10.745 11.077 11.325 11.771 12.626 13.781 14.806 15.188 14.634 13.235 11.406 9.688 8.536 8.171 8.526 9.277 9.973 10.249 10.008 9.478 9.060 + 10.767 12.075 13.644 14.232 13.383 11.704 10.261 9.691 9.792 9.891 9.556 8.971 8.674 8.971 9.633 10.132 10.165 9.939 9.978 10.645 11.850 13.154 14.117 14.535 14.410 13.804 12.797 11.607 10.647 10.336 10.759 11.491 11.854 11.442 10.487 9.702 + 10.961 12.022 13.290 13.757 13.053 11.680 10.515 10.070 10.146 10.136 9.647 8.850 8.277 8.298 8.786 9.262 9.362 9.166 9.119 9.620 10.682 11.914 12.815 13.096 12.793 12.161 11.504 11.074 11.038 11.428 12.068 12.598 12.650 12.112 11.264 10.633 + 12.062 13.073 14.174 14.323 13.224 11.542 10.271 9.894 10.055 10.014 9.392 8.512 8.047 8.351 9.117 9.677 9.633 9.217 9.067 9.645 10.824 12.002 12.586 12.410 11.772 11.135 10.824 10.931 11.408 12.155 12.989 13.615 13.724 13.229 12.410 11.793 + 12.694 13.483 14.349 14.477 13.621 12.278 11.218 10.837 10.890 10.812 10.281 9.505 8.984 9.024 9.460 9.841 9.874 9.695 9.738 10.327 11.384 12.477 13.151 13.233 12.891 12.475 12.311 12.596 13.368 14.474 15.548 16.092 15.719 14.462 12.872 11.774 + 13.249 13.730 14.235 14.255 13.656 12.758 12.011 11.579 11.236 10.655 9.788 8.977 8.677 9.055 9.836 10.538 10.870 10.952 11.158 11.767 12.719 13.670 14.259 14.345 14.055 13.663 13.464 13.689 14.447 15.625 16.830 17.478 17.110 15.742 13.987 12.770 + 13.291 13.879 14.518 14.590 13.905 12.821 11.894 11.400 11.166 10.828 10.240 9.636 9.389 9.633 10.107 10.391 10.307 10.112 10.303 11.188 12.609 14.017 14.850 14.877 14.311 13.632 13.332 13.704 14.756 16.196 17.495 18.062 17.534 16.036 14.229 13.006 + 13.746 14.237 14.771 14.815 14.172 13.107 12.101 11.468 11.167 10.941 10.613 10.258 10.093 10.222 10.500 10.654 10.562 10.409 10.585 11.371 12.681 14.064 14.967 15.072 14.489 13.693 13.273 13.636 14.808 16.396 17.731 18.163 17.383 15.631 13.651 12.352 + 13.811 14.246 14.734 14.811 14.288 13.378 12.503 11.956 11.717 11.537 11.203 10.730 10.328 10.198 10.347 10.602 10.789 10.913 11.172 11.781 12.755 13.828 14.589 14.737 14.297 13.636 13.285 13.651 14.776 16.272 17.475 17.756 16.852 15.042 13.066 11.789 + 13.607 14.111 14.709 14.910 14.510 13.716 12.927 12.394 12.052 11.655 11.067 10.431 10.053 10.131 10.555 10.998 11.194 11.178 11.273 11.811 12.833 13.999 14.786 14.847 14.250 13.461 13.064 13.424 14.473 15.743 16.596 16.535 15.449 13.678 11.879 10.756 + 13.280 13.867 14.641 15.090 14.928 14.242 13.349 12.529 11.870 11.319 10.850 10.558 10.576 10.905 11.341 11.599 11.546 11.338 11.341 11.864 12.906 14.113 14.973 15.127 14.593 13.769 13.224 13.390 14.325 15.647 16.684 16.795 15.708 13.708 11.566 10.191 + 12.702 13.506 14.596 15.298 15.226 14.463 13.389 12.370 11.568 10.990 10.642 10.585 10.833 11.243 11.549 11.566 11.361 11.240 11.520 12.280 13.299 14.213 14.742 14.803 14.477 13.931 13.391 13.140 13.433 14.293 15.342 15.883 15.308 13.579 11.407 9.907 + 12.493 13.390 14.640 15.513 15.546 14.754 13.514 12.264 11.278 10.641 10.351 10.389 10.684 11.073 11.351 11.407 11.339 11.402 11.821 12.614 13.576 14.421 14.952 15.122 14.971 14.562 14.000 13.485 13.286 13.559 14.158 14.630 14.482 13.576 12.305 11.390 + 12.047 13.190 14.724 15.691 15.575 14.543 13.170 11.978 11.208 10.895 11.047 11.635 12.429 12.958 12.782 11.899 10.890 10.560 11.320 12.828 14.245 14.900 14.781 14.428 14.362 14.606 14.757 14.495 13.985 13.748 14.093 14.712 14.877 14.113 12.722 11.625 + 11.953 13.155 14.700 15.558 15.303 14.313 13.305 12.689 12.355 11.996 11.562 11.337 11.586 12.167 12.587 12.467 11.963 11.695 12.186 13.361 14.565 15.119 14.876 14.278 13.880 13.838 13.859 13.619 13.193 13.025 13.451 14.283 14.896 14.787 14.071 13.406 + 10.513 11.668 13.238 14.321 14.490 13.980 13.314 12.814 12.441 12.034 11.618 11.398 11.487 11.704 11.737 11.528 11.444 11.976 13.197 14.541 15.188 14.780 13.789 13.138 13.378 14.174 14.605 14.031 12.728 11.678 11.704 12.738 13.912 14.362 13.991 13.459 + 9.963 11.404 13.344 14.625 14.714 13.945 13.059 12.533 12.318 12.113 11.809 11.589 11.648 11.886 11.975 11.755 11.513 11.778 12.777 14.084 14.881 14.642 13.627 12.674 12.468 12.945 13.403 13.210 12.438 11.806 12.001 13.025 14.196 14.783 14.659 14.322 + 9.704 11.141 13.167 14.660 14.943 14.123 12.868 11.880 11.492 11.610 11.933 12.188 12.220 11.988 11.578 11.220 11.232 11.818 12.848 13.851 14.294 13.975 13.195 12.534 12.394 12.706 13.058 13.124 12.980 13.023 13.565 14.500 15.361 15.730 15.599 15.345 + 10.503 11.808 13.572 14.740 14.787 13.980 13.020 12.443 12.304 12.329 12.278 12.127 11.966 11.808 11.578 11.310 11.266 11.766 12.838 14.038 14.697 14.447 13.557 12.739 12.564 13.003 13.497 13.511 13.035 12.589 12.739 13.583 14.686 15.493 15.794 15.799 + 10.756 12.138 13.965 15.086 14.966 13.952 12.832 12.161 11.943 11.865 11.733 11.634 11.726 11.946 12.033 11.845 11.618 11.822 12.695 13.908 14.748 14.691 13.867 12.954 12.593 12.865 13.307 13.434 13.239 13.172 13.641 14.537 15.281 15.364 14.841 14.299 + 12.111 13.126 14.397 15.017 14.620 13.564 12.525 11.916 11.667 11.484 11.247 11.110 11.238 11.529 11.655 11.431 11.104 11.218 12.120 13.568 14.845 15.317 14.944 14.266 13.899 14.014 14.278 14.276 13.970 13.734 13.944 14.558 15.120 15.190 14.784 14.356 + 12.180 13.363 14.846 15.564 15.066 13.769 12.514 11.860 11.750 11.753 11.564 11.264 11.130 11.266 11.472 11.491 11.352 11.428 12.102 13.347 14.643 15.334 15.134 14.342 13.577 13.308 13.559 14.022 14.377 14.526 14.545 14.493 14.316 13.952 13.485 13.146 + 12.991 13.963 15.132 15.569 14.918 13.606 12.422 11.857 11.791 11.732 11.342 10.729 10.279 10.239 10.481 10.677 10.674 10.708 11.210 12.389 13.974 15.344 15.953 15.690 14.905 14.139 13.776 13.898 14.341 14.850 15.185 15.166 14.713 13.916 13.053 12.489 + 13.454 14.239 15.138 15.357 14.598 13.250 12.022 11.378 11.249 11.228 10.999 10.589 10.256 10.181 10.303 10.432 10.512 10.726 11.347 12.458 13.836 15.075 15.840 16.029 15.752 15.212 14.638 14.282 14.364 14.919 15.627 15.874 15.105 13.290 11.106 9.616 + 13.604 14.221 14.907 15.008 14.266 12.992 11.778 11.035 10.751 10.623 10.397 10.084 9.886 9.951 10.221 10.511 10.722 10.968 11.484 12.414 13.654 14.889 15.766 16.061 15.759 15.040 14.238 13.750 13.880 14.632 15.588 16.050 15.447 13.766 11.695 10.275 + 13.681 14.057 14.434 14.368 13.698 12.663 11.691 11.071 10.785 10.607 10.353 10.041 9.837 9.870 10.113 10.427 10.722 11.064 11.624 12.516 13.665 14.801 15.570 15.703 15.138 14.075 12.946 12.276 12.441 13.421 14.711 15.517 15.214 13.775 11.880 10.556 + 13.856 14.053 14.191 13.975 13.317 12.409 11.570 11.006 10.701 10.489 10.237 9.953 9.758 9.757 9.961 10.313 10.773 11.367 12.143 13.084 14.063 14.860 15.245 15.053 14.261 13.048 11.809 11.064 11.222 12.293 13.761 14.774 14.631 13.266 11.370 10.024 + 13.853 13.878 13.828 13.573 13.043 12.294 11.488 10.812 10.365 10.110 9.927 9.730 9.553 9.540 9.832 10.438 11.214 11.963 12.574 13.080 13.576 14.045 14.278 13.976 12.994 11.559 10.253 9.738 10.358 11.884 13.577 14.570 14.342 13.016 11.307 10.136 + 13.592 13.478 13.315 13.119 12.778 12.138 11.201 10.214 9.528 9.321 9.451 9.601 9.590 9.557 9.818 10.519 11.424 12.080 12.215 12.002 11.905 12.213 12.688 12.700 11.770 10.073 8.459 7.905 8.835 10.799 12.763 13.750 13.380 11.996 10.380 9.332 + 13.383 13.202 12.999 12.859 12.623 12.002 10.922 9.712 8.914 8.827 9.243 9.643 9.702 9.592 9.786 10.506 11.402 11.802 11.359 10.467 9.994 10.505 11.667 12.422 11.851 9.991 7.921 6.996 7.855 9.987 12.143 13.204 12.823 11.454 9.928 8.971 + 12.923 12.888 12.833 12.703 12.347 11.636 10.637 9.658 9.049 8.931 9.109 9.285 9.383 9.635 10.307 11.305 12.089 12.053 11.102 9.866 9.283 9.830 11.050 11.836 11.298 9.514 7.550 6.705 7.584 9.700 11.851 12.937 12.580 11.192 9.604 8.591 + 12.793 12.858 12.894 12.756 12.320 11.579 10.683 9.870 9.320 9.047 8.937 8.917 9.071 9.577 10.466 11.440 11.963 11.645 10.609 9.512 9.112 9.676 10.715 11.295 10.741 9.190 7.562 6.943 7.848 9.880 11.994 13.159 12.924 11.586 9.946 8.859 + 12.696 12.877 13.063 13.006 12.539 11.702 10.730 9.917 9.433 9.231 9.145 9.087 9.170 9.614 10.488 11.514 12.165 12.027 11.179 10.220 9.876 10.430 11.440 12.001 11.409 9.740 7.895 7.045 7.860 10.043 12.490 13.939 13.687 11.958 9.737 8.227 + 12.783 12.993 13.220 13.194 12.742 11.906 10.934 10.127 9.645 9.426 9.281 9.104 9.017 9.291 10.086 11.217 12.177 12.464 11.973 11.133 10.627 10.868 11.639 12.192 11.794 10.329 8.491 7.402 7.879 9.855 12.346 14.007 13.927 12.175 9.764 8.077 + 12.903 13.097 13.318 13.314 12.894 12.061 11.042 10.168 9.658 9.477 9.388 9.192 8.952 8.991 9.613 10.782 12.032 12.756 12.663 12.035 11.532 11.666 12.347 12.905 12.591 11.206 9.359 8.128 8.341 9.985 12.151 13.569 13.373 11.628 9.293 7.673 + 12.737 13.107 13.523 13.563 13.002 11.964 10.835 10.003 9.607 9.487 9.350 9.035 8.664 8.573 9.057 10.119 11.420 12.469 12.938 12.863 12.593 12.495 12.648 12.754 12.361 11.255 9.732 8.505 8.279 9.244 10.867 12.152 12.257 11.047 9.225 7.903 + 12.783 13.062 13.351 13.301 12.722 11.718 10.624 9.783 9.332 9.138 8.943 8.602 8.230 8.146 8.629 9.690 11.013 12.142 12.777 12.957 12.975 13.106 13.331 13.312 12.653 11.274 9.604 8.416 8.364 9.532 11.301 12.667 12.837 11.726 10.028 8.797 + 12.781 12.957 13.124 13.023 12.483 11.548 10.487 9.635 9.185 9.057 8.977 8.716 8.306 8.045 8.267 9.056 10.157 11.164 11.837 12.266 12.727 13.338 13.842 13.723 12.632 10.773 8.920 8.005 8.537 10.242 12.197 13.350 13.106 11.639 9.764 8.489 + 12.376 12.661 12.888 12.664 11.886 10.817 9.872 9.295 9.017 8.792 8.447 8.033 7.753 7.771 8.099 8.631 9.258 9.948 10.715 11.549 12.371 13.044 13.381 13.164 12.217 10.578 8.678 7.314 7.295 8.868 11.367 13.425 13.772 12.118 9.454 7.478 + 11.875 12.168 12.431 12.261 11.485 10.302 9.152 8.430 8.234 8.340 8.400 8.209 7.841 7.569 7.657 8.172 8.973 9.837 10.630 11.357 12.074 12.724 13.070 12.802 11.770 10.189 8.641 7.825 8.166 9.532 11.239 12.398 12.396 11.264 9.670 8.544 + 11.873 12.136 12.400 12.288 11.550 10.280 8.937 8.090 8.015 8.454 8.779 8.491 7.662 6.928 6.980 7.973 9.366 10.362 10.588 10.389 10.480 11.224 12.231 12.637 11.871 10.223 8.701 8.282 9.180 10.735 11.960 12.260 11.735 10.909 10.254 9.938 + 12.047 12.706 13.396 13.354 12.301 10.680 9.343 8.900 9.257 9.710 9.541 8.643 7.649 7.439 8.401 10.054 11.374 11.581 10.762 9.791 9.611 10.443 11.596 12.023 11.191 9.538 8.149 7.937 8.987 10.562 11.702 11.895 11.302 10.458 9.809 9.500 + 13.290 13.211 12.971 12.469 11.689 10.770 9.979 9.538 9.436 9.404 9.136 8.620 8.255 8.574 9.728 11.199 12.061 11.694 10.359 9.104 8.969 10.111 11.595 12.091 10.955 8.782 6.980 6.694 7.974 9.837 11.109 11.292 10.754 10.201 10.014 10.061 + 14.187 13.523 12.631 12.017 11.862 11.925 11.814 11.335 10.620 9.969 9.605 9.583 9.861 10.374 10.980 11.376 11.182 10.247 8.924 7.980 8.069 9.159 10.421 10.794 9.822 8.076 6.770 6.850 8.292 10.179 11.443 11.638 11.107 10.516 10.248 10.228 + 12.850 13.141 13.601 14.003 14.081 13.686 12.910 12.057 11.457 11.242 11.306 11.460 11.618 11.810 12.000 11.936 11.284 9.984 8.509 7.670 8.009 9.260 10.407 10.397 9.007 7.095 5.996 6.501 8.259 10.099 10.976 10.737 10.075 9.793 10.088 10.501 + 13.841 13.490 13.159 13.211 13.614 13.947 13.787 13.114 12.353 12.005 12.238 12.790 13.227 13.273 12.901 12.184 11.160 9.907 8.726 8.125 8.479 9.602 10.706 10.900 9.894 8.297 7.180 7.233 8.223 9.240 9.500 9.001 8.430 8.463 9.115 9.757 + 13.620 13.277 13.037 13.319 14.055 14.701 14.728 14.117 13.369 13.038 13.232 13.558 13.529 12.996 12.199 11.431 10.735 9.965 9.125 8.571 8.749 9.701 10.837 11.313 10.723 9.486 8.490 8.311 8.705 8.903 8.421 7.624 7.449 8.504 10.375 11.838 + 13.619 13.076 12.659 13.026 14.131 15.225 15.538 14.991 14.229 13.975 14.330 14.711 14.451 13.443 12.193 11.274 10.773 10.304 9.559 8.764 8.531 9.202 10.378 11.166 10.962 10.024 9.226 9.215 9.771 10.038 9.417 8.257 7.613 8.260 9.883 11.247 + 13.456 12.908 12.455 12.753 13.816 14.985 15.531 15.314 14.852 14.752 15.071 15.250 14.655 13.224 11.556 10.389 9.967 9.912 9.689 9.180 8.790 9.004 9.856 10.843 11.379 11.302 10.947 10.730 10.688 10.473 9.794 8.835 8.189 8.315 9.064 9.751 + 13.024 12.508 12.024 12.171 13.070 14.271 15.166 15.489 15.439 15.353 15.283 14.928 13.967 12.460 10.900 9.843 9.474 9.507 9.504 9.287 9.060 9.148 9.654 10.365 10.969 11.323 11.484 11.501 11.248 10.541 9.453 8.472 8.244 9.040 10.430 11.496 + 12.486 12.220 11.956 12.037 12.641 13.653 14.745 15.566 15.916 15.780 15.251 14.425 13.373 12.178 10.989 10.006 9.393 9.177 9.218 9.288 9.214 8.999 8.838 8.991 9.599 10.528 11.369 11.623 10.984 9.575 7.957 6.871 6.835 7.820 9.233 10.237 + 12.518 12.221 11.924 12.009 12.660 13.739 14.876 15.709 16.088 16.090 15.866 15.472 14.828 13.834 12.536 11.189 10.125 9.544 9.378 9.354 9.223 8.958 8.783 8.988 9.677 10.642 11.456 11.731 11.339 10.466 9.476 8.697 8.276 8.169 8.227 8.299 + 12.542 12.208 11.821 11.777 12.341 13.457 14.752 15.750 16.170 16.096 15.867 15.765 15.747 15.472 14.598 13.130 11.485 10.218 9.622 9.547 9.604 9.545 9.486 9.755 10.513 11.511 12.220 12.227 11.558 10.629 9.892 9.489 9.229 8.862 8.374 8.004 + 12.157 12.007 11.781 11.685 12.020 12.971 14.370 15.690 16.382 16.297 15.815 15.507 15.600 15.747 15.334 14.077 12.339 10.862 10.144 10.050 10.014 9.654 9.170 9.133 9.862 11.000 11.741 11.524 10.537 9.552 9.212 9.452 9.607 9.095 8.025 7.141 + 11.930 11.871 11.679 11.446 11.547 12.388 13.932 15.531 16.339 16.022 15.099 14.529 14.856 15.689 16.035 15.191 13.382 11.552 10.518 10.318 10.353 10.142 9.877 10.189 11.348 12.754 13.304 12.379 10.498 8.957 8.717 9.558 10.309 9.958 8.617 7.409 + 11.671 11.739 11.693 11.503 11.513 12.200 13.623 15.157 15.887 15.402 14.242 13.497 13.868 15.025 15.881 15.544 14.075 12.361 11.273 10.936 10.812 10.437 10.009 10.173 11.221 12.546 13.017 11.983 9.962 8.281 7.922 8.653 9.265 8.727 7.185 5.845 + 11.505 11.580 11.586 11.521 11.701 12.518 13.945 15.328 15.805 15.055 13.688 12.822 13.162 14.393 15.449 15.438 14.349 12.940 11.952 11.461 10.993 10.225 9.485 9.482 10.493 11.873 12.471 11.641 9.902 8.529 8.411 9.213 9.682 8.839 6.959 5.399 + 11.550 11.333 10.940 10.512 10.277 10.404 10.820 11.190 11.154 10.642 9.984 9.669 9.950 10.632 11.250 11.443 11.191 10.705 10.134 9.435 8.560 7.736 7.469 8.151 9.588 10.955 11.338 10.469 8.990 7.958 7.961 8.617 8.927 8.191 6.684 5.463 + 11.883 11.774 11.569 11.333 11.181 11.197 11.325 11.368 11.121 10.552 9.865 9.357 9.201 9.332 9.541 9.655 9.633 9.490 9.187 8.660 7.990 7.522 7.707 8.713 10.134 11.129 11.004 9.789 8.297 7.524 7.849 8.705 9.039 8.220 6.619 5.344 + 11.802 11.637 11.402 11.234 11.222 11.342 11.454 11.387 11.058 10.536 10.008 9.655 9.547 9.627 9.780 9.918 9.988 9.939 9.709 9.300 8.881 8.770 9.234 10.221 11.258 11.686 11.122 9.796 8.451 7.832 8.119 8.782 8.995 8.312 7.051 6.064 + 12.061 11.885 11.632 11.526 11.847 12.723 13.904 14.798 14.828 13.894 12.537 11.610 11.689 12.686 13.980 14.925 15.289 15.279 15.198 15.139 14.975 14.614 14.157 13.776 13.438 12.864 11.837 10.608 9.898 10.347 11.827 13.276 13.370 11.584 8.768 6.665 + 11.870 11.876 11.864 11.908 12.233 13.041 14.218 15.252 15.515 14.763 13.408 12.293 12.104 12.898 14.120 15.069 15.391 15.198 14.808 14.415 14.019 13.597 13.244 13.079 13.020 12.749 12.006 10.972 10.283 10.540 11.664 12.726 12.548 10.676 7.915 5.888 + 11.865 11.758 11.647 11.734 12.254 13.297 14.643 15.772 16.139 15.535 14.274 13.021 12.380 12.547 13.265 14.070 14.593 14.694 14.402 13.820 13.101 12.484 12.227 12.417 12.822 12.983 12.565 11.696 10.941 10.845 11.397 11.902 11.465 9.762 7.442 5.778 + 12.103 11.852 11.589 11.663 12.322 13.520 14.883 15.863 16.037 15.355 14.168 13.018 12.338 12.275 12.712 13.418 14.156 14.693 14.800 14.335 13.399 12.391 11.829 11.980 12.613 13.117 12.961 12.138 11.189 10.731 10.876 11.044 10.418 8.678 6.415 4.811 + 12.417 12.049 11.692 11.832 12.692 14.043 15.307 15.894 15.539 14.431 13.070 11.986 11.491 11.606 12.147 12.850 13.450 13.719 13.513 12.850 11.969 11.265 11.080 11.468 12.123 12.559 12.444 11.833 11.104 10.632 10.448 10.193 9.413 7.994 6.357 5.252 + 12.300 12.291 12.365 12.651 13.220 13.985 14.669 14.910 14.460 13.376 12.048 11.019 10.698 11.132 12.003 12.825 13.207 13.024 12.419 11.684 11.107 10.862 10.943 11.171 11.271 11.017 10.400 9.670 9.193 9.178 9.462 9.561 8.997 7.691 6.113 5.034 + 12.157 12.459 12.617 12.210 11.315 10.487 10.243 10.543 10.777 10.321 9.154 7.954 7.565 8.280 9.567 10.489 10.435 9.546 8.519 8.000 8.107 8.438 8.492 8.070 7.357 6.699 6.336 6.305 6.532 6.921 7.345 7.616 7.532 7.043 6.357 5.861 + 12.119 12.373 12.534 12.210 11.326 10.237 9.488 9.386 9.736 9.977 9.637 8.762 7.928 7.809 8.601 9.807 10.577 10.368 9.380 8.394 8.120 8.596 9.158 9.020 7.969 6.593 5.815 6.137 7.227 8.204 8.348 7.644 6.693 6.141 6.144 6.348 + 12.179 12.197 12.121 11.813 11.242 10.561 10.052 9.914 10.064 10.124 9.704 8.781 7.836 7.552 8.243 9.505 10.450 10.397 9.473 8.541 8.477 9.352 10.293 10.177 8.620 6.402 4.913 5.073 6.614 8.341 9.098 8.626 7.589 6.857 6.750 6.927 + 12.022 12.028 11.931 11.605 11.034 10.386 9.935 9.861 10.052 10.127 9.711 8.803 7.888 7.628 8.323 9.577 10.526 10.507 9.629 8.724 8.651 9.524 10.535 10.587 9.231 7.115 5.529 5.420 6.681 8.291 9.153 8.892 7.973 7.145 6.790 6.760 + 12.004 11.895 11.703 11.421 10.998 10.445 9.926 9.690 9.810 10.007 9.804 8.980 7.913 7.404 8.013 9.461 10.709 10.770 9.595 8.218 7.912 9.053 10.684 11.260 9.966 7.471 5.433 5.158 6.575 8.392 9.244 8.780 7.765 7.202 7.394 7.813 + 12.213 12.062 11.803 11.466 11.031 10.504 10.001 9.710 9.712 9.836 9.753 9.295 8.709 8.537 9.134 10.240 11.061 10.889 9.769 8.579 8.357 9.383 10.837 11.393 10.296 8.030 5.987 5.396 6.417 8.119 9.295 9.382 8.703 7.975 7.627 7.579 + 13.150 12.536 11.823 11.593 12.001 12.683 13.106 13.013 12.557 12.051 11.651 11.292 10.922 10.720 11.007 11.902 13.066 13.865 13.855 13.159 12.372 12.047 12.212 12.373 12.004 11.064 10.086 9.732 10.234 11.196 11.910 11.886 11.145 10.099 9.199 8.710 + 12.538 11.971 11.458 11.687 12.800 14.233 15.141 15.025 14.048 12.810 11.858 11.352 11.129 11.005 10.986 11.203 11.701 12.341 12.907 13.309 13.618 13.914 14.110 13.967 13.340 12.408 11.645 11.504 12.062 12.932 13.513 13.387 12.557 11.378 10.308 9.691 + 12.547 12.134 11.762 11.967 12.913 14.228 15.233 15.394 14.646 13.379 12.137 11.292 10.910 10.847 10.934 11.087 11.298 11.580 11.949 12.435 13.086 13.886 14.675 15.157 15.060 14.361 13.390 12.694 12.701 13.402 14.281 14.595 13.837 12.096 10.077 8.733 + 12.391 12.143 11.966 12.259 13.178 14.462 15.535 15.833 15.152 13.770 12.279 11.227 10.825 10.902 11.115 11.234 11.280 11.451 11.929 12.731 13.702 14.620 15.281 15.536 15.298 14.607 13.706 13.027 12.992 13.696 14.714 15.249 14.623 12.797 10.523 8.959 + 12.349 12.210 12.178 12.566 13.495 14.730 15.743 15.995 15.274 13.853 12.337 11.288 10.905 10.981 11.156 11.233 11.294 11.549 12.091 12.801 13.479 14.037 14.524 14.963 15.197 14.977 14.275 13.518 13.404 14.339 15.924 17.000 16.402 13.888 10.533 8.162 + 12.372 12.209 12.190 12.666 13.705 14.954 15.808 15.785 14.831 13.359 11.979 11.126 10.846 10.868 10.875 10.751 10.614 10.667 11.021 11.633 12.396 13.225 14.047 14.720 15.014 14.764 14.096 13.494 13.549 14.484 15.839 16.622 15.945 13.721 10.890 8.926 + 12.398 12.274 12.306 12.807 13.811 14.954 15.648 15.447 14.347 12.796 11.412 10.607 10.387 10.442 10.444 10.294 10.148 10.237 10.667 11.364 12.179 13.012 13.817 14.508 14.899 14.826 14.360 13.907 13.997 14.854 16.077 16.760 16.079 13.949 11.254 9.387 + 12.403 12.409 12.602 13.156 14.022 14.862 15.220 14.799 13.669 12.228 10.970 10.204 9.924 9.902 9.897 9.813 9.722 9.757 10.012 10.519 11.277 12.266 13.391 14.421 15.049 15.073 14.610 14.119 14.135 14.867 15.941 16.553 15.995 14.210 11.952 10.391 + 12.342 12.448 12.759 13.324 13.993 14.423 14.273 13.440 12.150 10.836 9.875 9.401 9.292 9.333 9.371 9.380 9.401 9.468 9.603 9.875 10.418 11.337 12.558 13.762 14.513 14.550 14.022 13.464 13.456 14.193 15.264 15.865 15.327 13.623 11.488 10.020 + 11.335 11.808 12.528 13.170 13.472 13.331 12.796 11.993 11.054 10.102 9.264 8.656 8.344 8.297 8.383 8.443 8.390 8.282 8.310 8.710 9.629 11.003 12.531 13.763 14.308 14.057 13.307 12.644 12.614 13.353 14.428 15.053 14.585 12.995 10.983 9.594 + 9.524 9.356 9.241 9.380 9.703 9.893 9.655 8.986 8.172 7.530 7.143 6.853 6.493 6.118 5.971 6.221 6.744 7.194 7.340 7.323 7.578 8.434 9.750 10.935 11.379 10.945 10.100 9.572 9.810 10.672 11.556 11.847 11.304 10.164 8.951 8.190 + 8.242 8.487 8.571 8.114 7.196 6.355 6.136 6.586 7.177 7.247 6.558 5.492 4.713 4.622 5.074 5.572 5.724 5.534 5.322 5.386 5.771 6.308 6.821 7.266 7.669 7.980 8.051 7.782 7.289 6.886 6.861 7.253 7.826 8.278 8.478 8.511 + 6.922 7.334 7.819 8.003 7.777 7.312 6.802 6.233 5.447 4.431 3.499 3.122 3.515 4.378 5.082 5.174 4.737 4.280 4.247 4.623 5.000 5.034 4.829 4.851 5.449 6.444 7.218 7.235 6.537 5.731 5.493 6.029 6.977 7.781 8.167 8.248 + 4.501 5.114 6.062 6.968 7.560 7.757 7.594 7.100 6.281 5.215 4.140 3.417 3.331 3.877 4.718 5.365 5.471 5.029 4.347 3.826 3.722 4.014 4.461 4.765 4.742 4.418 4.013 3.832 4.091 4.763 5.535 5.942 5.641 4.657 3.427 2.585 + 4.828 5.237 5.906 6.634 7.256 7.637 7.634 7.110 6.075 4.811 3.815 3.518 3.969 4.758 5.301 5.269 4.812 4.388 4.354 4.679 5.018 5.065 4.817 4.531 4.427 4.477 4.487 4.384 4.361 4.696 5.387 5.982 5.861 4.776 3.184 2.016 + 4.474 4.873 5.555 6.334 7.006 7.403 7.419 7.056 6.456 5.875 5.566 5.625 5.916 6.164 6.170 5.969 5.796 5.866 6.165 6.446 6.462 6.222 6.024 6.203 6.815 7.531 7.889 7.667 7.071 6.546 6.370 6.409 6.261 5.657 4.763 4.094 + 7.257 7.368 7.422 7.319 7.237 7.522 8.334 9.397 10.131 10.114 9.465 8.778 8.653 9.221 10.081 10.673 10.749 10.512 10.349 10.467 10.768 11.059 11.325 11.749 12.468 13.316 13.881 13.826 13.204 12.429 11.928 11.798 11.778 11.565 11.137 10.777 + 5.625 6.682 8.173 9.334 9.808 9.827 9.900 10.322 10.934 11.327 11.249 10.849 10.542 10.652 11.150 11.719 12.043 12.048 11.920 11.906 12.132 12.568 13.131 13.774 14.471 15.133 15.592 15.686 15.386 14.831 14.229 13.716 13.305 12.947 12.637 12.445 + 9.830 10.463 11.426 12.272 12.643 12.438 11.825 11.109 10.543 10.214 10.057 9.960 9.865 9.776 9.694 9.561 9.293 8.886 8.492 8.374 8.741 9.577 10.626 11.546 12.142 12.490 12.850 13.440 14.249 15.024 15.441 15.315 14.710 13.881 13.134 12.702 + 12.180 12.550 13.235 14.061 14.705 14.809 14.192 12.998 11.640 10.549 9.911 9.587 9.274 8.779 8.172 7.720 7.671 8.068 8.736 9.413 9.909 10.172 10.243 10.197 10.125 10.156 10.455 11.143 12.181 13.322 14.174 14.394 13.872 12.818 11.680 10.953 + 12.516 12.819 13.398 14.163 14.912 15.342 15.153 14.232 12.791 11.320 10.325 9.989 10.039 9.969 9.474 8.763 8.441 9.023 10.451 12.041 12.940 12.742 11.757 10.736 10.274 10.436 10.861 11.203 11.453 11.831 12.394 12.797 12.502 11.296 9.636 8.438 + 11.907 12.290 12.934 13.672 14.353 14.818 14.857 14.284 13.123 11.730 10.657 10.275 10.467 10.710 10.550 10.058 9.826 10.436 11.842 13.266 13.768 13.031 11.648 10.638 10.584 11.185 11.620 11.380 10.757 10.522 11.080 11.941 12.068 10.840 8.749 7.133 + 11.006 11.469 12.317 13.386 14.406 15.033 14.959 14.094 12.698 11.317 10.488 10.387 10.701 10.893 10.671 10.284 10.328 11.189 12.599 13.730 13.826 12.842 11.525 10.824 11.117 11.939 12.449 12.214 11.591 11.324 11.742 12.327 12.105 10.563 8.265 6.559 + 11.021 11.414 12.058 12.736 13.234 13.384 13.086 12.359 11.389 10.506 10.024 10.037 10.329 10.557 10.562 10.556 10.949 11.930 13.159 13.923 13.687 12.586 11.396 10.938 11.403 12.207 12.522 12.032 11.217 10.882 11.324 11.946 11.706 10.077 7.665 5.879 + 7.854 7.481 7.201 7.486 8.312 9.077 9.049 7.965 6.274 4.805 4.150 4.263 4.613 4.720 4.603 4.737 5.564 7.002 8.391 8.951 8.392 7.167 6.158 6.045 6.847 7.986 8.780 8.952 8.745 8.599 8.702 8.804 8.463 7.494 6.223 5.321 + 9.483 8.547 7.353 6.702 6.883 7.476 7.733 7.198 6.032 4.819 4.072 3.881 3.979 4.092 4.222 4.595 5.366 6.379 7.221 7.524 7.246 6.690 6.272 6.240 6.573 7.088 7.614 8.081 8.457 8.663 8.554 8.012 7.057 5.891 4.839 4.217 + 6.997 6.529 5.956 5.723 6.007 6.571 6.936 6.740 6.009 5.145 4.627 4.685 5.171 5.720 6.058 6.183 6.299 6.566 6.924 7.128 6.981 6.531 6.059 5.843 5.924 6.076 6.022 5.699 5.320 5.173 5.320 5.489 5.276 4.513 3.473 2.725 + 3.467 4.456 5.992 7.434 8.286 8.435 8.152 7.875 7.933 8.380 9.028 9.630 10.054 10.341 10.605 10.901 11.159 11.241 11.056 10.635 10.107 9.602 9.172 8.798 8.451 8.138 7.900 7.745 7.612 7.402 7.050 6.588 6.130 5.787 5.598 5.528 + 4.318 5.091 6.222 7.150 7.517 7.358 7.014 6.847 6.984 7.274 7.477 7.499 7.489 7.696 8.234 8.947 9.518 9.710 9.554 9.296 9.164 9.168 9.119 8.857 8.465 8.265 8.545 9.272 10.046 10.369 10.037 9.312 8.718 8.623 8.962 9.320 + 5.859 6.113 6.558 7.078 7.540 7.850 7.993 8.024 7.996 7.909 7.703 7.350 6.924 6.606 6.563 6.819 7.220 7.543 7.670 7.675 7.741 7.983 8.336 8.607 8.658 8.546 8.499 8.732 9.261 9.875 10.274 10.270 9.893 9.336 8.830 8.540 + 8.074 7.816 7.493 7.342 7.469 7.785 8.101 8.282 8.327 8.314 8.292 8.220 8.036 7.770 7.598 7.741 8.291 9.099 9.839 10.220 10.188 9.953 9.830 10.001 10.395 10.767 10.909 10.808 10.643 10.605 10.725 10.828 10.686 10.220 9.604 9.168 + 9.047 9.271 9.490 9.465 9.190 8.935 9.037 9.614 10.444 11.108 11.288 10.983 10.498 10.224 10.397 10.982 11.740 12.387 12.731 12.734 12.490 12.168 11.929 11.852 11.899 11.948 11.887 11.710 11.523 11.449 11.503 11.551 11.402 10.986 10.444 10.060 + 12.058 11.799 11.318 10.722 10.198 9.954 10.105 10.573 11.104 11.411 11.357 11.065 10.840 10.966 11.502 12.230 12.799 12.953 12.698 12.270 11.958 11.901 12.015 12.091 11.972 11.671 11.347 11.172 11.204 11.356 11.476 11.452 11.278 11.031 10.810 10.684 + 13.742 13.879 13.982 13.840 13.368 12.690 12.066 11.716 11.650 11.670 11.536 11.189 10.846 10.861 11.442 12.443 13.408 13.861 13.627 12.941 12.256 11.917 11.945 12.089 12.085 11.860 11.557 11.356 11.305 11.298 11.215 11.059 10.959 11.029 11.238 11.419 + 14.758 15.635 16.588 16.712 15.772 14.354 13.303 12.971 12.975 12.655 11.766 10.762 10.408 11.093 12.474 13.751 14.291 14.059 13.508 13.119 13.033 13.068 13.025 12.915 12.907 13.082 13.298 13.307 12.998 12.507 12.085 11.868 11.783 11.673 11.487 11.328 + 14.727 14.946 15.031 14.599 13.603 12.403 11.501 11.147 11.179 11.210 10.996 10.661 10.588 11.080 12.078 13.171 13.879 13.965 13.551 12.983 12.573 12.434 12.489 12.600 12.685 12.746 12.815 12.901 12.967 12.947 12.778 12.426 11.909 11.310 10.771 10.449 + 13.218 13.723 14.313 14.451 13.864 12.719 11.474 10.550 10.079 9.916 9.868 9.922 10.254 11.020 12.128 13.196 13.788 13.724 13.206 12.651 12.348 12.246 12.043 11.514 10.773 10.226 10.241 10.799 11.449 11.631 11.113 10.173 9.381 9.143 9.402 9.728 + 11.517 11.929 12.642 13.469 14.202 14.663 14.749 14.463 13.929 13.370 13.035 13.099 13.569 14.267 14.907 15.234 15.134 14.656 13.942 13.119 12.239 11.306 10.353 9.495 8.898 8.679 8.817 9.130 9.363 9.318 8.952 8.377 7.779 7.312 7.030 6.910 + 13.647 13.610 13.721 14.136 14.765 15.258 15.239 14.602 13.625 12.805 12.537 12.893 13.624 14.372 14.878 15.043 14.849 14.271 13.274 11.912 10.403 9.074 8.208 7.885 7.950 8.126 8.180 8.026 7.715 7.336 6.935 6.498 6.001 5.474 5.011 4.736 + 14.366 14.340 14.292 14.213 14.075 13.836 13.467 12.987 12.482 12.088 11.936 12.083 12.475 12.941 13.262 13.249 12.814 11.990 10.892 9.662 8.427 7.293 6.371 5.778 5.603 5.834 6.310 6.752 6.884 6.578 5.938 5.243 4.780 4.674 4.824 4.994 + 13.882 12.994 11.687 10.585 10.065 10.056 10.154 9.958 9.358 8.579 7.969 7.731 7.790 7.893 7.824 7.548 7.187 6.866 6.579 6.209 5.655 4.965 4.336 3.978 3.957 4.152 4.352 4.418 4.362 4.298 4.307 4.353 4.319 4.133 3.855 3.646 + 9.599 8.813 7.729 6.944 6.717 6.806 6.707 6.096 5.104 4.225 3.944 4.386 5.248 6.028 6.355 6.170 5.664 5.079 4.552 4.101 3.711 3.412 3.268 3.309 3.479 3.661 3.752 3.726 3.633 3.536 3.456 3.362 3.207 2.986 2.756 2.608 + 7.429 6.910 6.220 5.791 5.815 6.108 6.258 5.959 5.250 4.506 4.160 4.399 5.031 5.635 5.852 5.605 5.094 4.600 4.278 4.086 3.896 3.653 3.438 3.386 3.537 3.778 3.914 3.823 3.547 3.248 3.074 3.046 3.067 3.031 2.923 2.827 + 5.858 5.140 4.406 4.434 5.383 6.626 7.244 6.752 5.448 4.128 3.474 3.630 4.254 4.892 5.299 5.459 5.417 5.161 4.692 4.152 3.804 3.823 4.118 4.369 4.302 3.940 3.586 3.537 3.805 4.097 4.092 3.730 3.254 2.964 2.946 3.037 + 5.310 5.131 4.983 5.086 5.450 5.828 5.884 5.454 4.676 3.904 3.478 3.534 3.961 4.522 4.994 5.256 5.281 5.105 4.793 4.432 4.109 3.872 3.717 3.609 3.534 3.531 3.646 3.869 4.098 4.199 4.109 3.896 3.717 3.688 3.793 3.905 + 5.459 5.540 5.702 5.919 6.111 6.158 5.956 5.490 4.876 4.326 4.055 4.171 4.619 5.205 5.686 5.873 5.702 5.243 4.661 4.162 3.918 4.000 4.330 4.698 4.854 4.648 4.145 3.616 3.383 3.605 4.147 4.641 4.728 4.307 3.622 3.112 + 7.091 6.787 6.509 6.570 6.924 7.173 6.931 6.200 5.386 4.957 5.051 5.421 5.719 5.840 5.980 6.381 7.045 7.714 8.125 8.252 8.288 8.387 8.473 8.345 7.968 7.644 7.796 8.554 9.524 10.038 9.708 8.784 7.970 7.832 8.318 8.840 + 14.326 14.421 14.603 14.794 14.818 14.511 13.884 13.184 12.738 12.700 12.896 12.945 12.561 11.782 10.935 10.376 10.239 10.407 10.682 10.970 11.289 11.627 11.858 11.822 11.520 11.199 11.177 11.558 12.085 12.315 12.001 11.320 10.744 10.644 10.973 11.326 + 18.691 18.381 17.958 17.618 17.354 16.975 16.334 15.529 14.876 14.637 14.759 14.868 14.550 13.679 12.524 11.549 11.087 11.174 11.625 12.242 12.931 13.651 14.284 14.613 14.457 13.822 12.930 12.067 11.401 10.916 10.524 10.202 10.026 10.064 10.261 10.438 + 16.487 16.061 15.502 15.126 15.003 14.917 14.602 13.998 13.291 12.696 12.232 11.698 10.905 9.912 9.037 8.615 8.728 9.158 9.616 10.005 10.469 11.183 12.087 12.838 13.032 12.528 11.558 10.563 9.885 9.582 9.488 9.418 9.308 9.206 9.160 9.157 + 11.306 11.573 11.907 12.004 11.621 10.713 9.489 8.323 7.571 7.386 7.640 8.015 8.196 8.043 7.652 7.259 7.102 7.304 7.868 8.721 9.761 10.853 11.806 12.388 12.416 11.872 10.959 10.040 9.470 9.422 9.811 10.366 10.801 10.971 10.926 10.835 + 10.182 10.880 11.884 12.641 12.746 12.153 11.158 10.198 9.592 9.398 9.447 9.505 9.431 9.236 9.030 8.918 8.936 9.070 9.305 9.659 10.161 10.790 11.451 11.999 12.322 12.394 12.278 12.079 11.872 11.673 11.460 11.213 10.945 10.693 10.502 10.401 + 12.161 12.532 13.089 13.520 13.517 12.930 11.876 10.700 9.793 9.363 9.337 9.452 9.467 9.330 9.174 9.177 9.431 9.924 10.613 11.481 12.487 13.468 14.123 14.165 13.550 12.584 11.785 11.567 11.972 12.651 13.106 13.005 12.351 11.420 10.571 10.080 + 12.202 12.721 13.437 13.884 13.707 12.848 11.575 10.327 9.487 9.198 9.338 9.639 9.859 9.900 9.813 9.722 9.736 9.928 10.357 11.075 12.087 13.265 14.319 14.886 14.730 13.923 12.881 12.174 12.203 12.933 13.877 14.357 13.910 12.594 10.997 9.917 + 12.180 12.699 13.397 13.781 13.487 12.491 11.124 9.885 9.162 9.035 9.283 9.570 9.668 9.548 9.323 9.121 9.031 9.149 9.635 10.662 12.226 13.998 15.365 15.739 14.938 13.369 11.842 11.111 11.440 12.483 13.535 13.961 13.531 12.479 11.319 10.580 + 11.214 11.915 12.869 13.431 13.120 11.908 10.248 8.824 8.162 8.335 8.972 9.534 9.674 9.421 9.093 9.035 9.410 10.173 11.191 12.352 13.526 14.467 14.797 14.185 12.637 10.640 9.011 8.470 9.218 10.800 12.353 13.076 12.642 11.319 9.785 8.784 + 13.249 13.135 12.862 12.373 11.652 10.759 9.838 9.057 8.537 8.291 8.236 8.258 8.284 8.321 8.427 8.663 9.070 9.672 10.471 11.401 12.266 12.721 12.392 11.104 9.081 6.955 5.529 5.376 6.517 8.381 10.070 10.805 10.291 8.832 7.155 6.061 + 12.209 11.360 10.093 8.964 8.298 8.039 7.904 7.667 7.320 7.022 6.911 6.992 7.158 7.296 7.351 7.305 7.134 6.833 6.477 6.225 6.213 6.394 6.515 6.273 5.587 4.730 4.189 4.332 5.128 6.164 6.928 7.136 6.852 6.360 5.935 5.710 + 10.578 10.224 9.653 9.016 8.361 7.676 7.023 6.609 6.644 7.100 7.613 7.699 7.157 6.327 5.927 6.526 8.066 9.824 10.882 10.777 9.807 8.776 8.389 8.756 9.397 9.676 9.322 8.624 8.188 8.477 9.492 10.802 11.867 12.382 12.423 12.309 + 9.587 9.347 8.965 8.522 8.008 7.374 6.689 6.211 6.240 6.837 7.670 8.182 8.004 7.304 6.737 6.983 8.212 9.893 11.138 11.337 10.589 9.621 9.229 9.705 10.653 11.330 11.224 10.422 9.521 9.174 9.637 10.639 11.634 12.206 12.322 12.248 + 8.401 8.199 7.908 7.612 7.259 6.747 6.128 5.710 5.865 6.682 7.775 8.488 8.389 7.653 6.976 7.045 7.989 9.256 10.035 9.882 9.037 8.211 8.021 8.559 9.382 9.902 9.817 9.264 8.641 8.300 8.353 8.686 9.107 9.470 9.714 9.832 + 13.839 13.134 12.191 11.552 11.397 11.452 11.301 10.801 10.214 9.954 10.185 10.670 10.984 10.885 10.517 10.248 10.337 10.720 11.107 11.268 11.230 11.220 11.423 11.812 12.184 12.356 12.329 12.257 12.294 12.455 12.625 12.673 12.564 12.368 12.183 12.078 + 16.897 15.935 14.827 14.457 14.981 15.740 15.918 15.319 14.508 14.211 14.567 14.975 14.668 13.465 11.976 11.067 11.107 11.681 12.028 11.732 11.037 10.522 10.518 10.830 11.009 10.843 10.551 10.515 10.849 11.268 11.374 11.061 10.608 10.390 10.500 10.697 + 16.459 16.244 16.063 16.121 16.307 16.253 15.696 14.778 13.975 13.680 13.832 13.958 13.595 12.720 11.764 11.224 11.219 11.415 11.370 10.947 10.420 10.180 10.359 10.736 10.985 11.011 11.000 11.176 11.506 11.685 11.425 10.754 10.020 9.594 9.554 9.666 + 17.363 16.832 16.114 15.586 15.341 15.167 14.827 14.341 13.979 13.960 14.171 14.194 13.660 12.587 11.394 10.558 10.231 10.156 9.954 9.481 8.947 8.693 8.887 9.413 10.024 10.577 11.078 11.526 11.768 11.561 10.826 9.820 9.021 8.771 9.003 9.306 + 14.685 14.627 14.707 15.050 15.483 15.625 15.258 14.588 14.115 14.179 14.590 14.732 14.050 12.528 10.702 9.231 8.415 8.070 7.844 7.604 7.529 7.859 8.600 9.493 10.270 10.889 11.475 12.045 12.328 11.963 10.913 9.684 9.046 9.427 10.508 11.416 + 14.541 13.903 13.297 13.399 14.218 15.064 15.199 14.535 13.710 13.457 13.876 14.306 13.917 12.464 10.508 8.920 8.151 7.945 7.715 7.154 6.514 6.304 6.779 7.716 8.669 9.373 9.886 10.352 10.704 10.682 10.176 9.502 9.253 9.799 10.882 11.749 + 11.363 11.507 11.826 12.305 12.814 13.143 13.132 12.821 12.461 12.341 12.541 12.799 12.646 11.748 10.205 8.559 7.452 7.181 7.495 7.815 7.716 7.274 6.997 7.371 8.418 9.640 10.416 10.506 10.241 10.210 10.735 11.579 12.156 12.059 11.432 10.859 + 11.226 10.731 10.026 9.446 9.111 8.889 8.602 8.253 8.049 8.170 8.515 8.679 8.248 7.155 5.810 4.841 4.644 5.105 5.720 6.013 5.908 5.744 5.943 6.620 7.455 7.955 7.866 7.394 7.052 7.245 7.929 8.620 8.757 8.143 7.120 6.350 + 9.389 9.012 8.452 7.953 7.640 7.448 7.208 6.795 6.221 5.601 5.048 4.591 4.200 3.870 3.673 3.705 3.983 4.386 4.715 4.852 4.870 4.996 5.421 6.112 6.779 7.055 6.766 6.078 5.411 5.147 5.374 5.838 6.148 6.077 5.722 5.406 + 8.584 8.075 7.415 7.005 6.947 6.960 6.649 5.880 4.931 4.289 4.243 4.643 5.017 4.962 4.478 3.955 3.841 4.256 4.894 5.288 5.211 4.873 4.746 5.150 5.965 6.683 6.797 6.180 5.192 4.411 4.228 4.607 5.189 5.603 5.731 5.708 + 8.528 8.228 7.730 7.229 6.962 7.088 7.573 8.151 8.450 8.217 7.500 6.646 6.105 6.167 6.799 7.702 8.507 8.995 9.171 9.199 9.261 9.453 9.774 10.171 10.592 10.994 11.336 11.561 11.610 11.443 11.057 10.494 9.832 9.178 8.650 8.355 + 9.964 9.742 9.325 8.845 8.566 8.746 9.412 10.243 10.722 10.491 9.640 8.679 8.204 8.484 9.304 10.161 10.631 10.630 10.386 10.208 10.264 10.537 10.934 11.408 11.970 12.620 13.287 13.852 14.219 14.359 14.290 14.023 13.563 12.963 12.374 12.003 + 8.875 9.766 10.999 11.882 12.051 11.617 10.933 10.254 9.617 8.985 8.448 8.204 8.338 8.649 8.753 8.413 7.768 7.244 7.190 7.589 8.113 8.471 8.690 9.061 9.800 10.788 11.649 12.111 12.273 12.490 12.970 13.498 13.580 12.928 11.817 10.960 + 13.400 13.223 13.017 12.932 12.937 12.790 12.204 11.128 9.911 9.173 9.404 10.566 12.009 12.829 12.453 11.029 9.316 8.156 7.912 8.325 8.839 9.113 9.253 9.608 10.341 11.209 11.759 11.749 11.384 11.132 11.276 11.631 11.703 11.170 10.229 9.494 + 13.078 12.522 11.820 11.443 11.517 11.682 11.376 10.314 8.821 7.683 7.621 8.731 10.338 11.402 11.199 9.784 7.898 6.414 5.749 5.690 5.719 5.519 5.235 5.283 5.913 6.940 7.860 8.251 8.087 7.706 7.479 7.508 7.598 7.512 7.235 6.983 + 9.754 9.901 9.936 9.564 8.713 7.612 6.633 6.044 5.873 5.974 6.191 6.457 6.734 6.903 6.746 6.089 5.006 3.877 3.204 3.298 4.050 4.990 5.590 5.604 5.184 4.719 4.523 4.621 4.781 4.736 4.419 4.010 3.785 3.887 4.211 4.484 + 10.903 10.563 9.983 9.270 8.461 7.551 6.620 5.898 5.672 6.068 6.870 7.573 7.664 6.942 5.648 4.306 3.385 3.052 3.148 3.386 3.574 3.696 3.834 4.028 4.220 4.306 4.245 4.107 4.027 4.101 4.325 4.600 4.815 4.912 4.913 4.886 + 10.638 10.318 9.803 9.231 8.644 8.004 7.318 6.722 6.417 6.502 6.842 7.130 7.092 6.669 6.019 5.360 4.805 4.345 3.965 3.737 3.779 4.105 4.533 4.779 4.677 4.324 4.003 3.943 4.130 4.339 4.357 4.184 4.020 4.061 4.294 4.513 + 11.233 10.573 9.657 8.949 8.603 8.386 7.966 7.275 6.624 6.430 6.815 7.429 7.669 7.131 5.918 4.574 3.700 3.566 4.006 4.626 5.107 5.368 5.504 5.607 5.662 5.580 5.317 4.944 4.600 4.394 4.326 4.307 4.238 4.085 3.898 3.770 + 10.500 9.944 8.979 7.886 6.998 6.546 6.510 6.628 6.592 6.279 5.834 5.504 5.375 5.277 4.951 4.342 3.724 3.508 3.886 4.642 5.300 5.513 5.315 5.040 4.966 5.057 5.025 4.664 4.101 3.718 3.806 4.277 4.728 4.800 4.504 4.185 + 10.048 9.410 8.412 7.442 6.782 6.488 6.423 6.398 6.298 6.108 5.865 5.588 5.276 4.953 4.691 4.575 4.622 4.737 4.761 4.593 4.289 4.037 4.019 4.250 4.539 4.624 4.372 3.906 3.531 3.519 3.896 4.418 4.747 4.702 4.390 4.109 + 10.213 9.660 8.637 7.332 6.042 5.070 4.587 4.543 4.718 4.889 4.969 5.028 5.165 5.367 5.486 5.363 4.981 4.525 4.263 4.356 4.736 5.144 5.304 5.086 4.564 3.950 3.467 3.248 3.310 3.572 3.894 4.132 4.187 4.054 3.833 3.668 + 13.512 13.473 13.428 13.374 13.218 12.818 12.106 11.183 10.302 9.724 9.548 9.662 9.829 9.848 9.668 9.383 9.141 9.048 9.123 9.299 9.461 9.491 9.327 9.017 8.732 8.686 8.997 9.575 10.143 10.407 10.257 9.848 9.480 9.371 9.502 9.665 + 17.231 17.277 17.309 17.203 16.812 16.066 15.060 14.041 13.270 12.836 12.594 12.286 11.762 11.102 10.550 10.305 10.366 10.555 10.672 10.631 10.454 10.177 9.791 9.317 8.904 8.818 9.247 10.086 10.908 11.232 10.886 10.169 9.631 9.644 10.106 10.548 + 17.009 16.445 15.611 14.875 14.425 14.155 13.796 13.137 12.189 11.166 10.329 9.831 9.662 9.693 9.765 9.758 9.610 9.334 8.996 8.684 8.445 8.256 8.059 7.850 7.743 7.922 8.484 9.303 10.040 10.344 10.101 9.524 9.005 8.825 8.963 9.156 + 12.867 12.555 12.030 11.456 10.988 10.702 10.539 10.332 9.895 9.156 8.229 7.377 6.861 6.771 6.959 7.130 7.053 6.720 6.358 6.253 6.527 7.034 7.462 7.573 7.387 7.170 7.234 7.694 8.378 8.956 9.168 8.993 8.619 8.280 8.092 8.031 + 8.295 9.328 10.795 11.943 12.382 12.269 12.032 11.946 11.903 11.574 10.740 9.502 8.194 7.127 6.406 5.948 5.623 5.359 5.138 4.950 4.807 4.789 5.032 5.595 6.332 6.923 7.117 6.996 6.985 7.518 8.611 9.737 10.168 9.568 8.332 7.352 + 9.264 10.268 11.673 12.734 13.089 12.930 12.715 12.705 12.738 12.413 11.467 10.021 8.497 7.325 6.692 6.506 6.526 6.515 6.320 5.920 5.454 5.214 5.507 6.425 7.684 8.745 9.184 9.059 8.904 9.299 10.329 11.412 11.714 10.850 9.291 8.085 + 8.755 9.968 11.635 12.812 13.049 12.637 12.258 12.374 12.871 13.206 12.868 11.748 10.152 8.525 7.169 6.182 5.556 5.282 5.344 5.645 6.022 6.361 6.708 7.231 8.045 9.055 9.985 10.581 10.807 10.846 10.913 11.053 11.130 11.006 10.716 10.471 + 9.004 10.299 12.077 13.302 13.436 12.746 12.010 11.883 12.431 13.154 13.411 12.881 11.736 10.451 9.469 8.971 8.857 8.879 8.809 8.551 8.189 7.966 8.179 9.006 10.346 11.801 12.851 13.139 12.668 11.776 10.899 10.319 10.062 9.991 9.972 9.958 + 11.629 12.175 12.993 13.674 13.874 13.499 12.742 11.978 11.555 11.612 12.028 12.533 12.887 13.005 12.944 12.774 12.459 11.875 10.946 9.815 8.872 8.587 9.223 10.627 12.250 13.409 13.637 12.908 11.606 10.279 9.345 8.927 8.892 9.013 9.127 9.181 + 12.584 13.063 13.791 14.413 14.618 14.277 13.495 12.536 11.687 11.123 10.879 10.911 11.179 11.680 12.383 13.156 13.757 13.947 13.649 13.039 12.470 12.275 12.569 13.180 13.756 13.967 13.659 12.884 11.826 10.687 9.611 8.681 7.934 7.384 7.031 6.860 + 12.487 13.041 13.886 14.602 14.797 14.300 13.252 12.028 11.018 10.407 10.109 9.915 9.717 9.632 9.905 10.673 11.793 12.902 13.657 13.977 14.066 14.211 14.524 14.841 14.866 14.425 13.624 12.773 12.157 11.819 11.540 11.010 10.059 8.798 7.583 6.835 + 12.296 13.075 14.058 14.543 14.197 13.226 12.101 11.152 10.389 9.656 8.908 8.313 8.086 8.272 8.701 9.163 9.613 10.180 11.002 12.049 13.138 14.078 14.778 15.173 15.103 14.351 12.905 11.209 10.061 10.093 11.207 12.479 12.752 11.526 9.429 7.829 + 12.468 12.939 13.461 13.529 12.939 11.893 10.783 9.866 9.128 8.431 7.753 7.267 7.193 7.572 8.200 8.786 9.179 9.466 9.861 10.509 11.384 12.317 13.109 13.579 13.590 13.089 12.221 11.386 11.095 11.633 12.752 13.711 13.723 12.556 10.791 9.494 + 12.218 12.580 12.936 12.857 12.193 11.158 10.119 9.296 8.660 8.079 7.542 7.203 7.218 7.546 7.929 8.111 8.073 8.086 8.492 9.432 10.724 11.996 12.927 13.388 13.425 13.153 12.700 12.230 11.934 11.921 12.078 12.053 11.479 10.289 8.879 7.918 + 12.114 12.225 12.341 12.286 11.890 11.082 9.963 8.785 7.850 7.355 7.306 7.533 7.809 7.969 7.974 7.881 7.801 7.866 8.217 8.971 10.139 11.537 12.787 13.463 13.325 12.495 11.438 10.723 10.702 11.300 12.060 12.414 12.023 10.970 9.729 8.903 + 12.010 12.083 12.127 11.994 11.578 10.880 10.025 9.198 8.552 8.133 7.887 7.720 7.588 7.518 7.572 7.782 8.126 8.576 9.162 9.972 11.062 12.324 13.443 14.009 13.769 12.843 11.733 11.082 11.303 12.299 13.481 14.085 13.626 12.199 10.465 9.296 + 11.546 11.670 11.733 11.533 11.022 10.336 9.650 9.031 8.429 7.802 7.254 6.994 7.163 7.675 8.245 8.613 8.772 9.008 9.692 10.982 12.660 14.212 15.080 14.933 13.807 12.096 10.429 9.449 9.545 10.616 12.025 12.856 12.420 10.717 8.530 7.016 + 10.367 10.786 11.080 10.659 9.435 7.942 6.930 6.783 7.266 7.769 7.814 7.376 6.793 6.411 6.330 6.443 6.668 7.106 7.943 9.205 10.607 11.645 11.864 11.105 9.574 7.749 6.218 5.498 5.851 7.105 8.609 9.456 8.962 7.142 4.817 3.210 + 10.681 10.173 9.293 8.235 7.185 6.289 5.685 5.486 5.718 6.231 6.715 6.845 6.473 5.722 4.894 4.259 3.909 3.782 3.807 4.009 4.457 5.102 5.687 5.855 5.409 4.504 3.588 3.122 3.275 3.819 4.312 4.385 3.954 3.212 2.479 2.037 + 9.730 9.300 8.540 7.645 6.864 6.402 6.308 6.433 6.518 6.357 5.943 5.457 5.113 4.974 4.894 4.650 4.161 3.630 3.451 3.937 5.051 6.356 7.230 7.231 6.354 5.017 3.805 3.128 3.041 3.286 3.516 3.508 3.249 2.870 2.531 2.340 + 9.330 8.705 7.789 6.990 6.496 6.191 5.827 5.292 4.718 4.360 4.360 4.624 4.899 4.971 4.799 4.496 4.215 4.061 4.097 4.375 4.915 5.611 6.183 6.267 5.650 4.463 3.179 2.359 2.322 2.947 3.762 4.231 4.062 3.342 2.457 1.865 + 6.370 6.408 6.471 6.506 6.408 6.070 5.475 4.761 4.175 3.945 4.129 4.576 5.010 5.199 5.082 4.774 4.473 4.331 4.401 4.645 4.989 5.337 5.573 5.557 5.186 4.480 3.633 2.960 2.732 2.999 3.528 3.920 3.852 3.283 2.500 1.947 + 5.737 5.360 4.885 4.642 4.750 5.009 5.052 4.656 3.952 3.380 3.381 4.053 5.046 5.772 5.808 5.180 4.326 3.774 3.792 4.250 4.789 5.098 5.085 4.827 4.406 3.833 3.118 2.408 1.984 2.072 2.608 3.194 3.341 2.843 1.967 1.296 + 8.057 7.799 7.395 6.994 6.691 6.485 6.319 6.160 6.053 6.091 6.329 6.708 7.069 7.249 7.209 7.064 7.008 7.165 7.493 7.808 7.927 7.807 7.574 7.427 7.482 7.698 7.924 8.026 7.979 7.864 7.773 7.728 7.679 7.573 7.425 7.314 + 16.067 16.123 16.034 15.658 15.134 14.819 14.950 15.367 15.580 15.164 14.127 12.918 12.073 11.816 11.966 12.180 12.278 12.315 12.393 12.446 12.263 11.736 11.058 10.623 10.686 11.109 11.455 11.366 10.891 10.429 10.355 10.671 11.022 11.049 10.738 10.415 + 18.044 17.808 17.359 16.788 16.265 15.957 15.892 15.899 15.709 15.149 14.277 13.349 12.637 12.272 12.218 12.368 12.629 12.924 13.121 13.040 12.582 11.865 11.227 11.007 11.278 11.753 11.985 11.716 11.079 10.477 10.235 10.348 10.516 10.454 10.152 9.871 + 17.697 17.205 16.327 15.283 14.359 13.781 13.574 13.530 13.346 12.833 12.029 11.127 10.303 9.620 9.073 8.715 8.674 9.020 9.601 10.066 10.111 9.751 9.360 9.379 9.932 10.687 11.118 10.955 10.426 10.050 10.171 10.642 10.961 10.747 10.103 9.546 + 15.735 14.621 12.863 11.130 9.921 9.333 9.098 8.852 8.412 7.880 7.488 7.349 7.340 7.216 6.876 6.507 6.474 7.004 7.947 8.846 9.273 9.178 8.920 8.965 9.473 10.156 10.525 10.316 9.726 9.241 9.228 9.633 10.063 10.160 9.911 9.630 + 10.733 10.197 9.292 8.288 7.450 6.935 6.742 6.752 6.824 6.879 6.905 6.894 6.797 6.554 6.193 5.888 5.877 6.288 7.001 7.695 8.070 8.077 7.954 8.024 8.418 8.965 9.346 9.378 9.173 9.029 9.148 9.449 9.645 9.516 9.131 8.799 + 8.865 8.480 7.923 7.449 7.168 6.999 6.793 6.483 6.126 5.812 5.546 5.258 4.927 4.696 4.826 5.494 6.595 7.739 8.487 8.640 8.372 8.085 8.114 8.493 8.975 9.250 9.177 8.875 8.604 8.575 8.828 9.241 9.640 9.913 10.045 10.087 + 10.252 9.846 9.251 8.718 8.343 8.045 7.726 7.421 7.282 7.399 7.636 7.697 7.373 6.782 6.341 6.472 7.259 8.356 9.221 9.511 9.299 8.975 8.914 9.199 9.606 9.823 9.708 9.377 9.080 9.007 9.165 9.417 9.603 9.651 9.599 9.537 + 11.922 11.554 10.992 10.441 9.993 9.619 9.287 9.066 9.091 9.384 9.732 9.765 9.239 8.299 7.471 7.344 8.137 9.501 10.720 11.182 10.788 9.987 9.437 9.538 10.186 10.902 11.203 10.936 10.336 9.818 9.672 9.905 10.302 10.628 10.783 10.820 + 9.796 9.768 9.679 9.518 9.340 9.223 9.182 9.123 8.916 8.506 7.974 7.480 7.144 7.003 7.060 7.354 7.922 8.677 9.340 9.571 9.249 8.664 8.367 8.750 9.672 10.498 10.585 9.837 8.848 8.446 9.010 10.134 10.952 10.865 10.049 9.289 + 9.394 9.592 9.987 10.549 11.192 11.755 12.038 11.880 11.252 10.295 9.267 8.436 7.968 7.901 8.181 8.711 9.367 9.987 10.398 10.507 10.402 10.338 10.564 11.097 11.631 11.715 11.100 9.996 8.978 8.580 8.867 9.355 9.369 8.593 7.359 6.432 + 11.962 11.692 11.439 11.566 12.240 13.278 14.230 14.649 14.356 13.522 12.515 11.654 11.075 10.785 10.817 11.277 12.198 13.339 14.179 14.210 13.345 12.085 11.212 11.201 11.827 12.336 12.094 11.176 10.349 10.411 11.404 12.431 12.297 10.523 7.874 5.923 + 12.830 12.268 11.598 11.443 12.185 13.665 15.218 16.048 15.724 14.450 12.890 11.706 11.148 11.044 11.138 11.420 12.099 13.233 14.409 14.874 14.111 12.366 10.609 9.855 10.382 11.545 12.355 12.350 11.948 11.947 12.628 13.314 12.879 10.808 7.871 5.727 + 13.143 12.694 12.070 11.723 12.053 13.115 14.467 15.353 15.191 14.013 12.465 11.329 10.943 11.023 11.054 10.863 10.797 11.328 12.443 13.471 13.600 12.637 11.295 10.666 11.300 12.727 13.876 14.025 13.387 12.792 12.764 12.909 12.242 10.206 7.420 5.394 + 13.217 12.980 12.589 12.287 12.429 13.227 14.442 15.393 15.400 14.335 12.789 11.633 11.319 11.561 11.701 11.408 11.033 11.243 12.269 13.525 14.027 13.265 11.722 10.507 10.427 11.350 12.436 12.998 13.113 13.386 14.102 14.675 14.033 11.682 8.446 6.102 + 13.316 13.071 12.672 12.350 12.427 13.086 14.119 14.933 14.911 13.902 12.404 11.218 10.841 11.108 11.406 11.272 10.836 10.677 11.258 12.440 13.557 13.963 13.555 12.812 12.343 12.401 12.805 13.258 13.681 14.174 14.682 14.775 13.894 11.911 9.492 7.821 + 13.190 12.908 12.473 12.137 12.187 12.750 13.620 14.285 14.229 13.316 11.939 10.766 10.268 10.389 10.650 10.586 10.152 9.750 9.857 10.618 11.720 12.656 13.112 13.151 13.071 13.131 13.384 13.740 14.098 14.390 14.499 14.204 13.299 11.836 10.254 9.216 + 13.083 12.466 11.654 11.194 11.379 12.068 12.807 13.131 12.829 12.011 10.984 10.071 9.477 9.246 9.272 9.362 9.330 9.120 8.884 8.927 9.517 10.666 12.056 13.193 13.718 13.623 13.238 12.975 13.034 13.288 13.402 13.090 12.306 11.264 10.302 9.734 + 12.769 12.192 11.421 10.924 10.915 11.238 11.557 11.620 11.390 10.957 10.393 9.720 9.004 8.432 8.227 8.458 8.937 9.340 9.473 9.445 9.546 9.956 10.535 10.924 10.868 10.472 10.139 10.229 10.755 11.385 11.740 11.708 11.492 11.377 11.456 11.586 + 13.027 12.441 11.668 11.171 11.119 11.313 11.436 11.337 11.085 10.780 10.382 9.770 8.972 8.276 8.056 8.427 9.092 9.567 9.609 9.428 9.442 9.804 10.151 9.899 8.818 7.385 6.501 6.806 8.151 9.727 10.720 10.915 10.742 10.762 11.125 11.500 + 12.835 12.355 11.717 11.298 11.237 11.385 11.501 11.462 11.299 11.044 10.628 9.965 9.145 8.487 8.325 8.696 9.258 9.566 9.479 9.306 9.479 10.059 10.530 10.180 8.764 6.866 5.592 5.775 7.354 9.436 10.970 11.462 11.163 10.675 10.397 10.335 + 12.586 12.164 11.622 11.288 11.235 11.273 11.194 10.991 10.814 10.732 10.580 10.106 9.289 8.472 8.124 8.416 9.031 9.435 9.386 9.170 9.304 9.944 10.580 10.387 8.973 6.870 5.272 5.193 6.714 8.959 10.768 11.500 11.314 10.807 10.445 10.315 + 12.020 11.644 11.164 10.870 10.814 10.828 10.756 10.640 10.622 10.692 10.576 9.960 8.853 7.703 7.074 7.160 7.603 7.847 7.714 7.627 8.196 9.515 10.858 11.148 9.861 7.579 5.648 5.188 6.284 8.028 9.329 9.753 9.678 9.736 10.142 10.557 + 11.404 11.106 10.770 10.638 10.673 10.619 10.303 9.848 9.534 9.445 9.284 8.626 7.391 6.061 5.369 5.691 6.716 7.733 8.279 8.531 9.034 10.021 11.008 11.110 9.851 7.718 5.900 5.397 6.267 7.677 8.667 8.930 8.908 9.197 9.890 10.500 + 11.610 11.038 10.316 9.920 10.007 10.341 10.567 10.504 10.191 9.689 8.946 7.906 6.763 6.009 6.125 7.137 8.492 9.452 9.704 9.604 9.806 10.566 11.395 11.443 10.293 8.442 6.987 6.748 7.600 8.619 8.898 8.287 7.414 7.014 7.246 7.630 + 10.458 10.392 10.409 10.626 10.957 11.147 10.983 10.468 9.780 9.094 8.456 7.879 7.515 7.676 8.581 10.044 11.440 12.088 11.766 10.917 10.297 10.344 10.804 10.972 10.335 9.055 7.858 7.427 7.847 8.589 9.004 8.866 8.474 8.268 8.390 8.601 + 9.730 9.698 9.758 10.012 10.397 10.710 10.773 10.568 10.196 9.732 9.142 8.389 7.634 7.275 7.706 8.962 10.564 11.758 12.021 11.417 10.516 9.932 9.874 10.068 10.072 9.699 9.148 8.795 8.848 9.211 9.632 9.955 10.224 10.553 10.936 11.210 + 8.520 8.452 8.460 8.651 8.942 9.111 9.013 8.730 8.480 8.360 8.205 7.742 6.926 6.115 5.877 6.534 7.852 9.169 9.876 9.850 9.475 9.253 9.381 9.657 9.763 9.615 9.437 9.510 9.885 10.342 10.643 10.792 11.034 11.571 12.299 12.836 + 7.951 7.665 7.470 7.695 8.228 8.554 8.230 7.328 6.405 6.009 6.196 6.517 6.499 6.139 5.926 6.362 7.439 8.589 9.157 8.967 8.450 8.234 8.588 9.244 9.710 9.762 9.618 9.677 10.113 10.730 11.204 11.425 11.579 11.912 12.418 12.815 + 7.312 7.358 7.458 7.595 7.719 7.767 7.725 7.652 7.642 7.736 7.874 7.930 7.828 7.630 7.522 7.685 8.144 8.727 9.168 9.284 9.093 8.792 8.601 8.624 8.800 8.999 9.149 9.310 9.622 10.185 10.967 11.802 12.491 12.917 13.097 13.140 + 6.467 6.749 7.095 7.263 7.203 7.091 7.156 7.455 7.811 7.962 7.791 7.433 7.171 7.218 7.572 8.050 8.446 8.678 8.795 8.888 8.996 9.095 9.153 9.178 9.214 9.309 9.490 9.783 10.229 10.863 11.651 12.464 13.127 13.523 13.669 13.686 + 7.695 7.373 6.980 6.814 6.994 7.397 7.804 8.077 8.230 8.331 8.382 8.321 8.131 7.938 7.954 8.300 8.877 9.412 9.671 9.638 9.508 9.492 9.628 9.772 9.768 9.633 9.571 9.800 10.370 11.129 11.873 12.513 13.105 13.721 14.309 14.685 + 9.921 9.732 9.491 9.354 9.372 9.449 9.435 9.237 8.880 8.460 8.062 7.731 7.513 7.501 7.817 8.502 9.418 10.268 10.737 10.694 10.280 9.824 9.631 9.808 10.234 10.679 10.984 11.154 11.323 11.635 12.135 12.750 13.342 13.801 14.083 14.209 + 10.285 10.655 11.230 11.785 12.162 12.299 12.184 11.788 11.094 10.174 9.252 8.628 8.523 8.936 9.641 10.325 10.755 10.872 10.763 10.576 10.456 10.508 10.767 11.154 11.476 11.519 11.213 10.755 10.535 10.888 11.821 12.954 13.762 13.942 13.634 13.288 + 11.724 11.586 11.684 12.382 13.618 14.857 15.454 15.138 14.185 13.150 12.421 11.984 11.588 11.108 10.734 10.792 11.359 12.072 12.338 11.828 10.808 10.003 10.056 10.999 12.180 12.709 12.114 10.687 9.274 8.666 9.063 9.986 10.685 10.708 10.195 9.699 + 12.588 12.115 11.738 12.093 13.322 14.902 16.024 16.169 15.437 14.366 13.480 12.949 12.642 12.425 12.378 12.693 13.366 14.024 14.118 13.367 12.073 10.983 10.759 11.446 12.390 12.690 11.865 10.221 8.634 7.917 8.247 9.079 9.597 9.341 8.529 7.836 + 12.864 12.384 11.920 12.051 12.965 14.312 15.470 15.993 15.846 15.300 14.638 13.985 13.371 12.909 12.838 13.328 14.249 15.133 15.450 14.986 14.020 13.123 12.743 12.894 13.189 13.171 12.664 11.872 11.181 10.845 10.815 10.804 10.536 9.952 9.259 8.791 + 12.651 12.181 11.719 11.838 12.757 14.170 15.470 16.167 16.151 15.641 14.921 14.139 13.342 12.651 12.354 12.749 13.852 15.238 16.221 16.288 15.466 14.310 13.507 13.379 13.679 13.835 13.442 12.601 11.831 11.619 11.989 12.447 12.360 11.474 10.166 9.208 + 12.218 11.931 11.633 11.708 12.394 13.613 14.980 16.000 16.328 15.917 14.986 13.857 12.805 12.031 11.712 11.996 12.882 14.077 15.034 15.241 14.594 13.533 12.764 12.715 13.182 13.490 13.096 12.121 11.322 11.457 12.546 13.706 13.770 12.253 9.862 8.074 + 12.098 11.980 11.895 12.074 12.711 13.816 15.148 16.288 16.826 16.578 15.676 14.489 13.441 12.863 12.914 13.574 14.624 15.650 16.141 15.735 14.483 12.922 11.798 11.598 12.205 12.992 13.321 13.041 12.578 12.500 12.933 13.357 13.006 11.565 9.573 8.135 + 12.038 11.893 11.788 11.983 12.644 13.737 15.012 16.110 16.708 16.646 15.980 14.958 13.941 13.285 13.226 13.780 14.717 15.632 16.111 15.922 15.126 14.031 13.018 12.336 12.011 11.912 11.909 11.989 12.220 12.603 12.957 12.957 12.349 11.182 9.870 9.002 + 11.919 11.721 11.528 11.619 12.181 13.200 14.466 15.658 16.453 16.622 16.111 15.089 13.943 13.151 13.078 13.765 14.872 15.843 16.221 15.912 15.215 14.589 14.324 14.359 14.373 14.075 13.466 12.861 12.643 12.945 13.486 13.727 13.232 11.998 10.520 9.520 + 11.558 11.467 11.416 11.606 12.205 13.241 14.552 15.801 16.594 16.650 15.946 14.776 13.649 13.070 13.287 14.150 15.177 15.806 15.703 14.948 13.956 13.204 12.919 12.947 12.916 12.552 11.938 11.493 11.654 12.484 13.510 13.940 13.176 11.269 8.997 7.465 + 11.437 11.417 11.438 11.621 12.127 13.063 14.372 15.764 16.794 17.055 16.417 15.151 13.834 13.078 13.210 14.105 15.263 16.102 16.273 15.833 15.153 14.645 14.485 14.516 14.397 13.892 13.089 12.370 12.154 12.556 13.245 13.606 13.137 11.823 10.209 9.108 + 11.390 11.418 11.496 11.699 12.172 13.050 14.315 15.699 16.734 16.984 16.316 15.039 13.778 13.139 13.370 14.228 15.153 15.624 15.471 14.926 14.410 14.212 14.287 14.320 13.991 13.249 12.390 11.876 12.009 12.688 13.420 13.582 12.807 11.236 9.485 8.340 + 11.729 11.738 11.807 12.032 12.528 13.376 14.536 15.789 16.758 17.063 16.540 15.411 14.239 13.638 13.905 14.813 15.754 16.144 15.819 15.125 14.614 14.596 14.888 14.966 14.411 13.287 12.147 11.665 12.142 13.274 14.312 14.515 13.580 11.804 9.915 8.715 + 11.586 11.484 11.449 11.687 12.310 13.273 14.421 15.542 16.393 16.720 16.360 15.400 14.262 13.545 13.670 14.556 15.626 16.182 15.912 15.102 14.373 14.163 14.365 14.461 14.010 13.079 12.232 12.080 12.772 13.837 14.506 14.215 12.944 11.160 9.516 8.553 + 11.404 11.335 11.324 11.539 12.087 12.973 14.100 15.287 16.268 16.736 16.477 15.553 14.389 13.606 13.660 14.509 15.595 16.210 15.986 15.136 14.251 13.804 13.781 13.740 13.236 12.259 11.297 10.971 11.535 12.644 13.554 13.588 12.544 10.776 8.987 7.880 + 10.962 11.059 11.225 11.460 11.849 12.551 13.671 15.093 16.414 17.086 16.755 15.570 14.200 13.463 13.777 14.847 15.843 16.007 15.208 14.017 13.233 13.219 13.613 13.649 12.829 11.378 10.109 9.809 10.641 12.032 13.100 13.238 12.433 11.145 9.952 9.264 + 11.040 11.178 11.400 11.671 12.056 12.721 13.801 15.211 16.543 17.220 16.860 15.629 14.264 13.660 14.246 15.630 16.828 16.968 15.936 14.450 13.475 13.439 13.904 13.961 13.025 11.374 9.967 9.702 10.722 12.310 13.419 13.375 12.226 10.568 9.090 8.256 + 11.250 11.405 11.641 11.908 12.273 12.912 13.956 15.289 16.491 17.030 16.631 15.561 14.564 14.400 15.288 16.674 17.563 17.218 15.711 13.890 12.744 12.664 13.168 13.331 12.554 11.070 9.775 9.532 10.517 12.086 13.240 13.279 12.176 10.464 8.860 7.921 + 11.080 11.308 11.610 11.874 12.212 12.902 14.104 15.596 16.800 17.144 16.512 15.400 14.619 14.742 15.688 16.781 17.225 16.665 15.404 14.157 13.528 13.603 13.940 13.920 13.194 11.910 10.589 9.774 9.698 10.168 10.713 10.868 10.423 9.512 8.520 7.882 + 10.742 10.952 11.250 11.551 11.958 12.710 13.935 15.411 16.589 16.920 16.284 15.158 14.345 14.419 15.284 16.206 16.328 15.298 13.548 11.988 11.348 11.662 12.268 12.336 11.492 10.089 8.926 8.663 9.370 10.514 11.356 11.416 10.699 9.585 8.550 7.949 + 10.535 10.754 11.048 11.332 11.750 12.585 13.945 15.505 16.602 16.687 15.787 14.583 13.966 14.383 15.474 16.299 16.011 14.478 12.377 10.717 10.142 10.527 11.132 11.173 10.372 9.121 8.175 8.134 9.063 10.476 11.632 11.947 11.272 9.921 8.492 7.591 + 10.990 11.181 11.461 11.796 12.343 13.327 14.733 16.131 16.873 16.574 15.490 14.422 14.150 14.830 15.840 16.222 15.396 13.586 11.657 10.488 10.394 10.985 11.521 11.445 10.714 9.758 9.155 9.285 10.136 11.325 12.277 12.474 11.704 10.190 8.536 7.465 + 11.354 11.423 11.572 11.887 12.530 13.604 14.947 16.094 16.528 16.065 15.078 14.294 14.279 14.992 15.782 15.858 14.881 13.210 11.630 10.772 10.689 10.890 10.765 10.045 8.974 8.105 7.919 8.540 9.701 10.909 11.675 11.706 10.988 9.788 8.566 7.801 + 10.952 11.049 11.233 11.571 12.230 13.311 14.624 15.658 15.889 15.219 14.160 13.530 13.819 14.764 15.492 15.183 13.703 11.720 10.195 9.687 10.006 10.463 10.438 9.802 8.898 8.202 7.991 8.260 8.842 9.543 10.162 10.469 10.275 9.583 8.687 8.060 + 10.438 10.550 10.795 11.269 12.131 13.415 14.830 15.788 15.768 14.779 13.494 12.841 13.308 14.505 15.398 15.076 13.448 11.324 9.805 9.489 10.111 10.850 10.985 10.370 9.401 8.616 8.326 8.516 9.004 9.587 10.080 10.269 9.972 9.194 8.230 7.564 + 10.697 10.802 11.092 11.695 12.683 13.940 15.092 15.641 15.283 14.198 13.043 12.570 13.095 14.219 15.059 14.858 13.526 11.709 10.335 9.983 10.531 11.327 11.681 11.310 10.441 9.569 9.117 9.228 9.760 10.405 10.822 10.744 10.076 8.972 7.815 7.075 + 9.518 9.923 10.704 11.800 13.092 14.352 15.248 15.454 14.863 13.746 12.691 12.295 12.776 13.792 14.631 14.668 13.764 12.337 11.048 10.368 10.321 10.564 10.684 10.472 9.986 9.433 9.002 8.779 8.770 8.933 9.198 9.462 9.612 9.595 9.462 9.342 + 8.024 8.045 8.383 9.358 10.972 12.759 13.972 14.014 12.842 11.057 9.602 9.217 10.011 11.409 12.516 12.653 11.731 10.230 8.854 8.094 7.997 8.243 8.430 8.332 7.985 7.576 7.270 7.112 7.050 7.035 7.083 7.266 7.635 8.145 8.651 8.967 + 7.790 8.252 9.147 10.370 11.693 12.768 13.228 12.862 11.783 10.447 9.478 9.343 10.088 11.297 12.319 12.634 12.110 11.008 9.760 8.705 7.955 7.454 7.111 6.894 6.801 6.801 6.802 6.727 6.591 6.525 6.697 7.195 7.956 8.797 9.501 9.896 + 4.367 4.253 4.369 5.136 6.692 8.659 10.242 10.634 9.531 7.403 5.309 4.325 4.918 6.670 8.549 9.537 9.207 7.895 6.386 5.396 5.189 5.544 6.007 6.204 5.996 5.463 4.792 4.180 3.792 3.734 4.022 4.561 5.180 5.710 6.058 6.220 + 4.380 4.426 4.570 4.937 5.682 6.825 8.085 8.915 8.802 7.679 6.090 4.923 4.852 5.875 7.326 8.343 8.437 7.748 6.832 6.209 6.034 6.105 6.115 5.888 5.437 4.873 4.304 3.833 3.573 3.617 3.931 4.308 4.469 4.267 3.827 3.472 + 5.338 4.889 4.389 4.382 5.191 6.673 8.242 9.178 9.049 7.976 6.580 5.611 5.513 6.185 7.091 7.624 7.482 6.800 5.996 5.463 5.336 5.462 5.556 5.397 4.942 4.312 3.701 3.276 3.115 3.181 3.347 3.442 3.339 3.032 2.650 2.387 + 3.677 3.419 3.228 3.536 4.575 6.169 7.772 8.737 8.677 7.693 6.332 5.277 4.978 5.425 6.216 6.837 6.965 6.610 6.029 5.505 5.176 4.992 4.818 4.561 4.234 3.923 3.711 3.621 3.608 3.601 3.540 3.400 3.194 2.962 2.760 2.642 + 4.269 3.922 3.509 3.463 4.129 5.516 7.184 8.413 8.602 7.667 6.133 4.832 4.383 4.839 5.730 6.450 6.656 6.390 5.906 5.396 4.886 4.338 3.794 3.394 3.240 3.271 3.312 3.243 3.131 3.153 3.380 3.641 3.627 3.174 2.459 1.920 + 2.173 2.630 3.386 4.289 5.318 6.494 7.657 8.372 8.164 6.935 5.184 3.776 3.377 3.996 5.023 5.718 5.752 5.353 4.992 4.938 5.073 5.092 4.834 4.409 4.041 3.822 3.653 3.419 3.173 3.100 3.287 3.537 3.478 2.900 2.013 1.345 + 5.205 4.624 3.893 3.597 4.098 5.293 6.666 7.593 7.704 7.072 6.128 5.380 5.127 5.353 5.823 6.267 6.518 6.525 6.295 5.852 5.263 4.656 4.191 3.958 3.897 3.832 3.611 3.253 2.945 2.891 3.106 3.362 3.349 2.929 2.283 1.802 + 5.144 5.096 5.035 5.102 5.528 6.423 7.540 8.280 8.081 6.920 5.458 4.634 4.966 6.142 7.269 7.578 6.989 6.060 5.430 5.277 5.280 5.055 4.582 4.190 4.155 4.350 4.343 3.864 3.149 2.763 3.048 3.721 4.060 3.555 2.429 1.502 + 4.297 4.255 4.123 3.976 4.089 4.730 5.812 6.791 7.027 6.352 5.317 4.812 5.336 6.555 7.570 7.668 6.898 5.950 5.484 5.568 5.727 5.521 5.021 4.709 4.899 5.314 5.290 4.451 3.174 2.341 2.552 3.536 4.356 4.242 3.301 2.416 + 5.484 5.912 6.607 7.386 8.174 8.973 9.721 10.219 10.247 9.799 9.189 8.875 9.121 9.782 10.417 10.655 10.484 10.207 10.124 10.232 10.244 9.884 9.190 8.517 8.238 8.426 8.807 9.015 8.912 8.667 8.557 8.694 8.944 9.093 9.067 8.981 + 7.118 7.364 7.758 8.223 8.787 9.504 10.273 10.785 10.716 10.038 9.150 8.644 8.872 9.669 10.489 10.855 10.717 10.414 10.294 10.367 10.314 9.840 9.021 8.292 8.081 8.439 9.000 9.311 9.222 8.969 8.918 9.216 9.688 10.045 10.160 10.139 + 4.934 5.284 5.831 6.384 6.844 7.223 7.548 7.773 7.794 7.573 7.252 7.118 7.412 8.121 8.947 9.494 9.548 9.226 8.879 8.805 9.027 9.286 9.271 8.881 8.325 7.963 8.044 8.527 9.131 9.567 9.752 9.845 10.095 10.607 11.234 11.669 + 6.010 5.908 5.849 5.971 6.265 6.582 6.795 6.948 7.234 7.806 8.609 9.382 9.861 9.993 9.968 10.052 10.359 10.770 11.054 11.066 10.839 10.518 10.220 9.971 9.755 9.605 9.609 9.830 10.227 10.674 11.080 11.478 11.986 12.652 13.347 13.802 + 7.903 7.152 6.287 6.061 6.739 7.932 8.959 9.403 9.365 9.261 9.401 9.758 10.100 10.291 10.436 10.733 11.210 11.647 11.759 11.471 11.002 10.667 10.608 10.699 10.718 10.595 10.486 10.615 11.037 11.589 12.048 12.339 12.582 12.921 13.339 13.642 + 6.743 6.865 7.267 8.046 9.022 9.794 10.025 9.732 9.291 9.144 9.452 10.004 10.443 10.589 10.573 10.669 11.003 11.417 11.608 11.403 10.917 10.455 10.272 10.401 10.684 10.946 11.130 11.293 11.498 11.751 12.023 12.320 12.691 13.156 13.630 13.938 + 7.619 7.914 8.351 8.722 8.890 8.883 8.863 9.016 9.417 9.970 10.463 10.711 10.687 10.536 10.474 10.633 10.967 11.288 11.404 11.257 10.954 10.693 10.621 10.746 10.951 11.098 11.125 11.091 11.124 11.341 11.775 12.368 13.007 13.575 13.989 14.204 + 8.097 8.143 8.303 8.645 9.155 9.722 10.202 10.512 10.675 10.777 10.868 10.913 10.824 10.577 10.281 10.148 10.329 10.777 11.234 11.388 11.100 10.513 9.958 9.720 9.847 10.155 10.424 10.599 10.842 11.362 12.188 13.086 13.706 13.849 13.627 13.375 + 8.363 7.844 7.331 7.408 8.217 9.359 10.260 10.635 10.629 10.557 10.538 10.426 10.071 9.621 9.489 9.991 10.974 11.841 11.996 11.332 10.334 9.693 9.765 10.343 10.904 11.086 10.952 10.866 11.125 11.716 12.381 12.877 13.147 13.293 13.409 13.491 + 6.758 6.818 7.037 7.512 8.241 9.090 9.870 10.439 10.748 10.813 10.662 10.331 9.920 9.628 9.683 10.179 10.946 11.579 11.679 11.145 10.291 9.677 9.726 10.409 11.249 11.662 11.401 10.759 10.375 10.753 11.871 13.176 13.969 13.916 13.275 12.693 + 8.844 9.252 10.038 11.073 12.084 12.748 12.864 12.465 11.759 10.965 10.186 9.455 8.879 8.690 9.087 9.988 10.933 11.301 10.743 9.490 8.257 7.775 8.296 9.429 10.443 10.793 10.461 9.903 9.671 10.028 10.827 11.672 12.215 12.348 12.214 12.058 + 11.268 11.179 11.375 12.193 13.496 14.647 14.944 14.151 12.675 11.249 10.412 10.224 10.396 10.645 10.900 11.195 11.418 11.246 10.376 8.890 7.361 6.561 6.950 8.340 10.001 11.133 11.339 10.784 9.973 9.381 9.199 9.328 9.550 9.702 9.750 9.747 + 11.521 11.485 11.717 12.509 13.783 15.017 15.552 15.038 13.683 12.119 11.001 10.651 10.978 11.662 12.385 12.907 13.002 12.423 11.032 9.044 7.120 6.129 6.639 8.477 10.736 12.288 12.497 11.610 10.529 10.121 10.583 11.327 11.493 10.668 9.247 8.158 + 11.901 11.887 12.109 12.814 13.955 15.129 15.791 15.600 14.626 13.282 12.068 11.326 11.161 11.511 12.215 13.013 13.525 13.333 12.233 10.479 8.801 8.059 8.711 10.445 12.302 13.266 12.930 11.768 10.781 10.765 11.722 12.869 13.237 12.419 10.904 9.732 + 11.530 11.554 11.793 12.444 13.503 14.677 15.508 15.631 14.974 13.793 12.532 11.611 11.283 11.584 12.363 13.311 14.017 14.076 13.286 11.831 10.301 9.441 9.722 11.004 12.562 13.507 13.364 12.386 11.360 11.034 11.568 12.442 12.878 12.462 11.475 10.669 + 11.245 11.049 11.037 11.625 12.879 14.387 15.514 15.802 15.217 14.095 12.881 11.913 11.381 11.387 11.955 12.941 13.944 14.416 13.979 12.732 11.302 10.499 10.794 11.986 13.323 13.995 13.673 12.686 11.750 11.450 11.853 12.526 12.898 12.684 12.080 11.578 + 11.357 11.113 11.021 11.527 12.725 14.233 15.419 15.802 15.304 14.216 12.963 11.907 11.290 11.263 11.861 12.896 13.910 14.331 13.816 12.541 11.185 10.536 10.972 12.190 13.408 13.889 13.433 12.468 11.707 11.624 12.147 12.750 12.865 12.301 11.375 10.684 + 11.522 11.399 11.424 11.901 12.886 14.112 15.143 15.631 15.451 14.695 13.583 12.422 11.588 11.437 12.093 13.265 14.289 14.487 13.634 12.173 10.968 10.733 11.548 12.833 13.788 13.952 13.451 12.797 12.452 12.504 12.693 12.678 12.307 11.685 11.064 10.687 + 11.277 11.160 11.179 11.618 12.542 13.716 14.749 15.315 15.284 14.718 13.803 12.824 12.144 12.115 12.857 14.081 15.132 15.340 14.475 12.961 11.646 11.249 11.891 13.051 13.967 14.162 13.696 13.004 12.510 12.333 12.299 12.162 11.814 11.337 10.900 10.648 + 10.979 10.702 10.522 10.880 11.922 13.361 14.655 15.333 15.217 14.443 13.337 12.287 11.667 11.746 12.541 13.697 14.562 14.507 13.340 11.500 9.847 9.133 9.543 10.626 11.649 12.109 11.996 11.666 11.480 11.513 11.551 11.306 10.666 9.769 8.914 8.398 + 11.096 10.914 10.849 11.252 12.236 13.572 14.823 15.591 15.680 15.123 14.135 13.070 12.356 12.361 13.161 14.387 15.337 15.373 14.363 12.825 11.608 11.322 11.938 12.871 13.449 13.393 12.929 12.494 12.337 12.351 12.248 11.855 11.259 10.692 10.324 10.168 + 11.455 11.341 11.359 11.780 12.667 13.812 14.872 15.556 15.715 15.321 14.457 13.373 12.516 12.367 13.116 14.393 15.373 15.282 13.980 12.136 10.802 10.676 11.617 12.808 13.410 13.164 12.467 11.924 11.811 11.916 11.833 11.383 10.753 10.272 10.087 10.083 + 11.324 11.337 11.466 11.850 12.563 13.540 14.570 15.346 15.584 15.159 14.210 13.141 12.472 12.562 13.373 14.421 15.020 14.685 13.453 11.874 10.667 10.280 10.633 11.248 11.617 11.541 11.191 10.891 10.822 10.893 10.849 10.486 9.805 8.993 8.294 7.899 + 11.095 10.971 10.963 11.356 12.240 13.429 14.561 15.283 15.387 14.863 13.896 12.858 12.231 12.400 13.375 14.654 15.408 14.970 13.319 11.160 9.502 8.998 9.545 10.436 10.931 10.769 10.251 9.868 9.848 10.011 9.997 9.616 8.992 8.408 8.051 7.914 + 11.298 11.159 11.132 11.523 12.439 13.693 14.892 15.639 15.703 15.092 14.049 13.006 12.455 12.733 13.785 15.084 15.852 15.517 14.116 12.323 11.031 10.770 11.385 12.214 12.607 12.360 11.753 11.199 10.877 10.645 10.268 9.706 9.163 8.878 8.886 8.993 + 11.578 11.474 11.487 11.874 12.716 13.835 14.886 15.538 15.610 15.123 14.278 13.415 12.928 13.097 13.890 14.892 15.474 15.171 14.022 12.577 11.555 11.351 11.803 12.377 12.602 12.406 12.063 11.860 11.802 11.628 11.103 10.283 9.498 9.069 9.031 9.140 + 11.529 11.468 11.494 11.796 12.467 13.420 14.412 15.141 15.376 15.055 14.331 13.538 13.063 13.155 13.763 14.511 14.882 14.530 13.519 12.323 11.539 11.517 12.148 12.956 13.425 13.306 12.709 11.940 11.256 10.728 10.281 9.830 9.375 8.985 8.721 8.596 + 11.278 11.034 10.798 10.899 11.516 12.564 13.736 14.661 15.066 14.880 14.253 13.516 13.056 13.137 13.728 14.463 14.823 14.457 13.443 12.277 11.566 11.626 12.299 13.090 13.529 13.443 12.959 12.286 11.516 10.623 9.636 8.758 8.285 8.359 8.799 9.190 + 10.833 10.778 10.679 10.634 10.862 11.577 12.756 14.031 14.850 14.841 14.110 13.209 12.771 13.077 13.873 14.582 14.713 14.177 13.280 12.473 12.073 12.141 12.555 13.125 13.658 13.955 13.825 13.158 12.031 10.725 9.614 8.990 8.923 9.257 9.711 10.017 + 11.304 10.922 10.341 9.911 10.029 10.901 12.318 13.675 14.299 13.912 12.852 11.870 11.608 12.172 13.117 13.822 13.939 13.548 12.969 12.454 12.063 11.775 11.657 11.847 12.367 12.960 13.174 12.678 11.544 10.232 9.283 8.960 9.141 9.495 9.764 9.881 + 10.370 10.598 10.746 10.588 10.326 10.454 11.242 12.351 13.021 12.737 11.750 10.934 11.064 12.144 13.407 13.967 13.543 12.590 11.792 11.440 11.286 10.973 10.530 10.406 10.974 12.015 12.743 12.399 10.910 8.994 7.629 7.350 7.969 8.876 9.564 9.883 + 9.378 9.957 10.498 10.423 9.825 9.424 9.844 10.939 11.852 11.802 10.847 9.891 9.891 10.983 12.352 12.940 12.340 11.055 9.944 9.438 9.268 8.927 8.321 7.925 8.284 9.362 10.415 10.557 9.507 7.838 6.525 6.208 6.817 7.795 8.603 9.011 + 9.465 9.707 9.769 9.323 8.607 8.296 8.852 9.991 10.845 10.726 9.796 8.956 9.050 10.078 11.180 11.399 10.511 9.164 8.231 8.016 8.077 7.789 7.066 6.495 6.758 7.892 9.127 9.474 8.549 6.884 5.499 5.130 5.793 6.940 7.962 8.517 + 7.976 8.225 8.348 8.013 7.333 6.827 6.948 7.641 8.366 8.580 8.221 7.739 7.642 8.019 8.490 8.601 8.262 7.787 7.517 7.446 7.248 6.692 5.997 5.726 6.272 7.404 8.357 8.417 7.505 6.240 5.435 5.481 6.145 6.890 7.352 7.517 + 7.192 7.101 6.673 5.779 4.734 4.202 4.691 6.084 7.656 8.602 8.637 8.155 7.827 8.017 8.518 8.812 8.559 7.872 7.147 6.684 6.463 6.269 5.995 5.790 5.899 6.384 7.008 7.412 7.410 7.124 6.843 6.763 6.855 6.964 6.987 6.959 + 6.252 6.188 5.870 5.230 4.569 4.427 5.122 6.378 7.446 7.666 7.001 6.063 5.617 5.975 6.808 7.483 7.590 7.185 6.595 6.056 5.564 5.045 4.600 4.519 5.008 5.916 6.772 7.138 6.962 6.601 6.479 6.720 7.082 7.242 7.123 6.940 + 3.617 3.685 3.844 4.133 4.585 5.185 5.834 6.370 6.643 6.609 6.380 6.161 6.119 6.274 6.481 6.543 6.353 5.973 5.589 5.372 5.364 5.456 5.484 5.360 5.128 4.940 4.941 5.180 5.584 6.013 6.337 6.501 6.525 6.473 6.406 6.364 + 3.818 4.037 4.409 4.845 5.277 5.686 6.072 6.402 6.583 6.498 6.101 5.504 4.949 4.685 4.788 5.094 5.296 5.176 4.772 4.372 4.300 4.663 5.259 5.719 5.781 5.475 5.089 4.942 5.161 5.618 6.053 6.272 6.245 6.080 5.907 5.807 + 3.956 4.216 4.637 5.111 5.590 6.054 6.412 6.483 6.113 5.370 4.591 4.203 4.432 5.124 5.865 6.283 6.299 6.105 5.938 5.864 5.780 5.595 5.374 5.283 5.391 5.556 5.529 5.218 4.821 4.680 4.957 5.437 5.680 5.397 4.739 4.195 + 5.568 5.327 5.072 5.088 5.507 6.192 6.797 6.973 6.570 5.727 4.796 4.170 4.102 4.608 5.481 6.398 7.052 7.271 7.074 6.641 6.215 5.968 5.913 5.918 5.806 5.505 5.126 4.911 5.083 5.672 6.466 7.110 7.315 7.037 6.513 6.116 + 4.804 4.634 4.431 4.378 4.579 4.990 5.442 5.724 5.682 5.290 4.682 4.131 3.967 4.436 5.540 6.963 8.171 8.657 8.234 7.157 5.996 5.298 5.278 5.712 6.137 6.185 5.830 5.385 5.249 5.616 6.329 6.990 7.231 6.955 6.401 5.974 + 5.267 4.900 4.448 4.251 4.440 4.864 5.234 5.353 5.227 5.005 4.827 4.758 4.832 5.116 5.688 6.515 7.363 7.877 7.808 7.207 6.412 5.817 5.595 5.602 5.543 5.245 4.821 4.586 4.797 5.442 6.228 6.767 6.821 6.428 5.860 5.462 + 4.909 4.576 4.133 3.878 3.992 4.428 4.946 5.265 5.228 4.884 4.451 4.196 4.288 4.712 5.277 5.714 5.829 5.617 5.268 5.045 5.107 5.392 5.654 5.634 5.252 4.665 4.159 3.952 4.052 4.283 4.428 4.384 4.198 3.990 3.849 3.789 + 5.853 5.677 5.527 5.608 5.929 6.287 6.458 6.391 6.224 6.117 6.095 6.056 5.940 5.863 6.050 6.608 7.354 7.904 7.958 7.539 6.978 6.633 6.621 6.772 6.846 6.777 6.710 6.820 7.096 7.322 7.270 6.915 6.458 6.145 6.058 6.086 + 7.661 7.914 8.370 8.908 9.363 9.598 9.597 9.482 9.416 9.463 9.545 9.537 9.430 9.394 9.655 10.279 11.048 11.570 11.545 10.982 10.188 9.545 9.263 9.303 9.498 9.729 9.991 10.308 10.625 10.799 10.719 10.419 10.073 9.855 9.810 9.844 + 5.834 6.289 6.951 7.478 7.647 7.477 7.192 7.040 7.111 7.275 7.309 7.100 6.780 6.666 7.030 7.877 8.893 9.616 9.713 9.178 8.306 7.495 7.022 6.945 7.152 7.491 7.851 8.162 8.360 8.387 8.229 7.952 7.679 7.511 7.464 7.474 + 5.327 6.355 7.767 8.674 8.510 7.392 6.050 5.341 5.669 6.722 7.712 7.962 7.416 6.667 6.487 7.220 8.511 9.573 9.787 9.136 8.165 7.520 7.479 7.822 8.112 8.085 7.823 7.602 7.603 7.753 7.831 7.681 7.337 6.963 6.695 6.572 + 5.952 6.298 6.804 7.240 7.491 7.601 7.689 7.825 7.981 8.084 8.102 8.073 8.070 8.150 8.346 8.678 9.131 9.604 9.880 9.727 9.074 8.145 7.387 7.192 7.608 8.284 8.721 8.644 8.188 7.746 7.617 7.755 7.848 7.633 7.167 6.780 + 4.898 5.450 6.370 7.352 8.086 8.382 8.245 7.875 7.560 7.528 7.825 8.301 8.723 8.934 8.964 8.990 9.187 9.566 9.943 10.057 9.770 9.181 8.571 8.205 8.160 8.296 8.398 8.359 8.255 8.247 8.413 8.657 8.783 8.670 8.388 8.155 + 5.728 6.474 7.451 8.028 7.937 7.449 7.115 7.304 7.921 8.514 8.671 8.361 7.963 7.958 8.563 9.568 10.494 10.929 10.773 10.253 9.718 9.402 9.307 9.262 9.087 8.738 8.342 8.116 8.225 8.666 9.251 9.698 9.791 9.511 9.052 8.715 + 6.545 6.270 6.105 6.428 7.210 8.006 8.349 8.188 7.946 8.117 8.790 9.540 9.796 9.382 8.708 8.453 8.988 10.055 10.968 11.153 10.578 9.724 9.158 9.106 9.352 9.515 9.409 9.185 9.156 9.487 10.033 10.431 10.375 9.838 9.102 8.585 + 4.568 5.232 6.409 7.775 8.883 9.351 9.097 8.447 7.958 8.045 8.681 9.407 9.694 9.372 8.792 8.570 9.107 10.249 11.370 11.823 11.391 10.423 9.544 9.191 9.342 9.624 9.681 9.477 9.295 9.442 9.932 10.424 10.474 9.913 9.018 8.349 + 5.128 5.557 6.384 7.467 8.504 9.140 9.194 8.807 8.382 8.291 8.598 9.006 9.118 8.792 8.307 8.175 8.737 9.855 10.968 11.480 11.175 10.360 9.605 9.315 9.467 9.698 9.665 9.350 9.069 9.178 9.739 10.429 10.776 10.544 9.927 9.417 + 4.635 5.523 6.874 8.089 8.727 8.716 8.328 7.953 7.852 8.023 8.248 8.274 8.012 7.629 7.482 7.904 8.962 10.345 11.485 11.881 11.421 10.481 9.683 9.477 9.837 10.316 10.423 10.021 9.430 9.140 9.384 9.932 10.285 10.110 9.531 9.030 + 5.886 6.164 6.752 7.603 8.506 9.158 9.365 9.206 8.995 9.023 9.308 9.558 9.420 8.821 8.110 7.854 8.420 9.667 10.988 11.700 11.498 10.628 9.693 9.221 9.350 9.811 10.202 10.301 10.180 10.080 10.163 10.380 10.538 10.489 10.272 10.078 + 6.100 5.931 5.980 6.581 7.592 8.442 8.645 8.279 7.954 8.243 9.112 9.898 9.894 9.027 8.008 7.785 8.764 10.455 11.858 12.222 11.569 10.566 9.945 9.979 10.406 10.783 10.872 10.750 10.626 10.609 10.644 10.636 10.563 10.484 10.452 10.455 + 6.209 5.713 5.408 5.977 7.379 8.810 9.397 8.979 8.233 8.038 8.659 9.524 9.791 9.177 8.266 8.012 8.889 10.456 11.717 11.932 11.176 10.190 9.723 9.960 10.504 10.819 10.702 10.374 10.196 10.327 10.637 10.879 10.914 10.779 10.603 10.493 + 5.784 5.568 5.534 6.108 7.321 8.704 9.585 9.578 8.859 8.012 7.590 7.736 8.167 8.493 8.585 8.662 9.045 9.808 10.649 11.106 10.937 10.335 9.775 9.634 9.891 10.183 10.150 9.783 9.445 9.552 10.176 10.924 11.227 10.802 9.917 9.211 + 5.424 5.283 5.234 5.555 6.336 7.380 8.309 8.810 8.830 8.573 8.323 8.228 8.233 8.214 8.157 8.226 8.616 9.329 10.091 10.519 10.428 10.005 9.674 9.739 10.108 10.368 10.162 9.557 9.049 9.160 9.952 10.888 11.214 10.566 9.319 8.340 + 4.674 4.631 4.860 5.677 7.049 8.521 9.492 9.631 9.086 8.337 7.823 7.672 7.722 7.783 7.877 8.213 8.948 9.944 10.783 11.052 10.667 9.959 9.447 9.450 9.878 10.341 10.498 10.333 10.143 10.243 10.651 11.027 10.936 10.223 9.196 8.449 + 5.329 6.027 7.135 8.235 8.993 9.304 9.279 9.111 8.921 8.686 8.306 7.741 7.122 6.741 6.903 7.724 9.004 10.290 11.098 11.187 10.702 10.077 9.758 9.910 10.337 10.654 10.595 10.224 9.881 9.904 10.343 10.904 11.168 10.926 10.356 9.892 + 4.714 5.433 6.543 7.605 8.333 8.720 8.939 9.124 9.225 9.043 8.423 7.448 6.481 6.006 6.373 7.581 9.254 10.801 11.712 11.803 11.298 10.681 10.402 10.605 11.066 11.368 11.226 10.696 10.136 9.920 10.144 10.541 10.698 10.392 9.784 9.302 + 3.815 4.095 4.847 6.156 7.726 8.979 9.469 9.234 8.737 8.427 8.349 8.178 7.648 6.955 6.695 7.365 8.870 10.503 11.459 11.438 10.827 10.316 10.323 10.719 11.055 11.036 10.769 10.612 10.794 11.196 11.479 11.391 10.965 10.436 10.030 9.832 + 4.941 5.223 5.749 6.430 7.145 7.776 8.271 8.640 8.908 9.040 8.946 8.570 8.007 7.532 7.466 7.973 8.924 9.948 10.657 10.867 10.675 10.343 10.098 10.011 10.028 10.087 10.204 10.450 10.849 11.311 11.655 11.711 11.434 10.930 10.408 10.082 + 5.673 5.582 5.550 5.771 6.349 7.222 8.188 8.992 9.420 9.361 8.847 8.076 7.374 7.096 7.452 8.368 9.483 10.324 10.569 10.226 9.612 9.127 9.005 9.206 9.511 9.733 9.858 10.029 10.388 10.924 11.441 11.677 11.477 10.907 10.232 9.783 + 4.561 4.994 5.759 6.684 7.572 8.266 8.685 8.837 8.775 8.552 8.197 7.741 7.287 7.043 7.263 8.092 9.415 10.823 11.772 11.886 11.192 10.135 9.326 9.171 9.646 10.358 10.855 10.939 10.759 10.632 10.753 11.039 11.229 11.132 10.812 10.534 + 4.795 5.329 6.157 6.988 7.680 8.259 8.778 9.174 9.295 9.065 8.609 8.189 8.026 8.160 8.514 9.038 9.766 10.686 11.569 11.994 11.637 10.607 9.475 8.912 9.178 9.926 10.500 10.504 10.130 9.942 10.323 11.082 11.614 11.456 10.739 10.093 + 8.898 8.422 7.838 7.609 7.967 8.777 9.669 10.302 10.541 10.433 10.088 9.599 9.076 8.718 8.773 9.378 10.391 11.395 11.927 11.780 11.145 10.469 10.137 10.216 10.467 10.591 10.506 10.420 10.638 11.272 12.079 12.581 12.385 11.482 10.303 9.484 + 8.075 7.877 7.611 7.479 7.657 8.198 8.986 9.766 10.247 10.240 9.747 8.978 8.269 7.945 8.191 8.981 10.082 11.156 11.892 12.137 11.945 11.530 11.126 10.865 10.734 10.649 10.580 10.617 10.898 11.458 12.112 12.510 12.353 11.625 10.665 9.993 + 3.816 4.866 6.462 7.954 8.955 9.466 9.683 9.714 9.496 8.957 8.202 7.523 7.198 7.319 7.807 8.576 9.625 10.925 12.225 13.046 12.974 12.030 10.759 9.885 9.774 10.192 10.577 10.595 10.456 10.674 11.485 12.502 12.965 12.414 11.171 10.157 + 5.326 5.234 5.367 6.049 7.263 8.579 9.428 9.502 8.940 8.171 7.560 7.190 6.934 6.731 6.771 7.378 8.680 10.361 11.762 12.290 11.840 10.886 10.132 10.022 10.454 10.944 11.077 10.863 10.710 11.036 11.854 12.693 12.942 12.350 11.270 10.437 + 5.405 5.221 5.263 5.961 7.330 8.852 9.800 9.740 8.812 7.594 6.668 6.271 6.277 6.474 6.837 7.548 8.733 10.204 11.463 12.006 11.701 10.901 10.200 10.001 10.253 10.561 10.567 10.272 10.028 10.209 10.844 11.536 11.752 11.256 10.340 9.629 + 6.412 6.304 6.464 7.256 8.598 9.893 10.425 9.889 8.637 7.417 6.825 6.917 7.284 7.490 7.489 7.654 8.399 9.736 11.163 11.995 11.864 10.987 9.980 9.390 9.321 9.466 9.468 9.281 9.205 9.571 10.357 11.102 11.228 10.513 9.335 8.447 + 5.725 5.219 4.972 5.782 7.659 9.668 10.590 9.865 8.030 6.296 5.624 6.084 6.971 7.533 7.629 7.770 8.560 10.047 11.589 12.334 11.898 10.662 9.458 8.917 9.047 9.334 9.273 8.817 8.403 8.523 9.259 10.157 10.570 10.181 9.277 8.545 + 4.182 4.363 5.038 6.418 8.203 9.619 9.926 8.995 7.424 6.102 5.560 5.684 5.979 6.132 6.321 7.013 8.430 10.199 11.529 11.786 10.986 9.788 8.991 8.948 9.372 9.659 9.431 8.861 8.508 8.836 9.816 10.921 11.509 11.301 10.580 9.971 + 6.046 5.985 6.280 7.295 8.851 10.197 10.526 9.584 7.874 6.266 5.371 5.195 5.340 5.496 5.762 6.501 7.895 9.642 11.078 11.642 11.272 10.406 9.616 9.193 9.033 8.860 8.566 8.340 8.499 9.183 10.179 11.027 11.324 10.992 10.331 9.825 + 6.453 6.287 6.467 7.433 8.984 10.288 10.530 9.590 8.148 7.092 6.799 6.927 6.879 6.478 6.177 6.623 7.981 9.688 10.855 10.978 10.301 9.545 9.266 9.433 9.577 9.311 8.732 8.341 8.597 9.515 10.643 11.404 11.476 10.959 10.240 9.750 + 5.893 6.075 6.707 7.926 9.371 10.289 10.082 8.828 7.265 6.222 5.984 6.151 6.114 5.693 5.347 5.767 7.210 9.186 10.772 11.284 10.726 9.691 8.829 8.401 8.235 8.067 7.884 7.945 8.513 9.552 10.680 11.407 11.451 10.901 10.136 9.609 + 6.051 6.246 6.784 7.700 8.695 9.239 8.961 7.977 6.847 6.151 6.053 6.252 6.340 6.237 6.285 6.909 8.161 9.578 10.489 10.525 9.868 9.060 8.548 8.378 8.276 8.010 7.666 7.596 8.099 9.109 10.174 10.735 10.480 9.534 8.389 7.626 + 8.877 7.988 7.000 6.818 7.679 8.935 9.567 9.001 7.545 6.115 5.520 5.909 6.797 7.581 8.031 8.371 8.915 9.658 10.210 10.124 9.316 8.186 7.338 7.137 7.481 7.951 8.197 8.219 8.308 8.733 9.444 10.057 10.136 9.552 8.628 7.943 + 9.635 9.051 8.380 8.159 8.474 8.871 8.756 7.928 6.763 5.909 5.758 6.178 6.710 7.025 7.206 7.603 8.414 9.391 9.972 9.729 8.748 7.608 6.966 7.087 7.698 8.262 8.423 8.262 8.174 8.497 9.206 9.913 10.166 9.804 9.090 8.535 + 6.697 6.475 6.513 7.235 8.454 9.387 9.253 7.955 6.205 4.983 4.782 5.309 5.861 6.010 5.968 6.318 7.399 8.909 10.089 10.302 9.508 8.243 7.184 6.687 6.675 6.872 7.116 7.458 8.015 8.765 9.509 9.996 10.105 9.911 9.608 9.399 + 6.164 6.111 6.279 6.894 7.809 8.501 8.443 7.525 6.163 4.995 4.422 4.387 4.552 4.694 4.921 5.532 6.646 7.963 8.908 9.040 8.398 7.476 6.846 6.748 6.965 7.078 6.870 6.527 6.492 7.081 8.194 9.343 9.987 9.905 9.355 8.870 + 7.515 7.292 7.166 7.409 7.900 8.153 7.747 6.747 5.710 5.226 5.414 5.832 5.908 5.510 5.134 5.496 6.886 8.817 10.318 10.620 9.704 8.262 7.156 6.808 7.003 7.209 7.078 6.730 6.601 7.041 8.000 9.050 9.696 9.725 9.338 8.971 + 8.121 7.446 6.668 6.412 6.804 7.363 7.449 6.841 5.927 5.338 5.372 5.754 5.947 5.721 5.441 5.779 7.076 8.926 10.368 10.575 9.487 7.862 6.711 6.563 7.148 7.705 7.651 7.039 6.469 6.545 7.350 8.358 8.842 8.454 7.506 6.734 + 9.304 8.636 7.681 6.940 6.692 6.828 6.970 6.770 6.170 5.421 4.864 4.675 4.772 4.968 5.204 5.620 6.394 7.469 8.453 8.832 8.360 7.306 6.315 5.954 6.301 6.924 7.265 7.124 6.804 6.808 7.340 8.073 8.398 7.964 7.019 6.254 + 6.670 6.353 6.121 6.335 6.879 7.195 6.785 5.712 4.609 4.163 4.529 5.233 5.640 5.549 5.371 5.714 6.769 8.072 8.851 8.659 7.720 6.715 6.220 6.303 6.588 6.668 6.465 6.237 6.282 6.652 7.121 7.389 7.315 6.981 6.596 6.353 + 6.520 6.545 6.686 6.952 7.139 6.930 6.182 5.130 4.287 4.055 4.390 4.828 4.880 4.485 4.109 4.379 5.547 7.217 8.573 8.939 8.231 6.973 5.891 5.430 5.537 5.827 5.938 5.783 5.535 5.426 5.544 5.789 5.981 6.010 5.909 5.805 + 6.277 5.524 4.753 4.712 5.414 6.096 5.931 4.831 3.568 3.088 3.650 4.598 4.981 4.452 3.625 3.547 4.770 6.826 8.568 9.036 8.130 6.563 5.229 4.576 4.468 4.527 4.548 4.617 4.906 5.424 5.977 6.345 6.451 6.385 6.284 6.224 + 11.541 11.625 11.828 12.152 12.505 12.717 12.652 12.292 11.742 11.133 10.519 9.870 9.151 8.417 7.815 7.486 7.451 7.586 7.714 7.736 7.672 7.598 7.526 7.361 6.972 6.335 5.601 5.040 4.875 5.142 5.657 6.136 6.355 6.272 6.023 5.823 + 13.484 13.552 13.727 14.028 14.391 14.664 14.673 14.321 13.646 12.790 11.916 11.121 10.421 9.792 9.241 8.820 8.590 8.564 8.683 8.851 8.998 9.101 9.158 9.126 8.905 8.397 7.612 6.714 5.974 5.619 5.694 6.038 6.390 6.567 6.559 6.493 + 8.726 8.865 9.432 10.614 12.130 13.293 13.510 12.751 11.553 10.543 9.903 9.288 8.255 6.781 5.375 4.662 4.829 5.443 5.816 5.574 4.930 4.432 4.448 4.863 5.224 5.169 4.731 4.259 4.094 4.302 4.687 5.011 5.182 5.254 5.304 5.344 + 9.914 9.476 8.937 8.734 9.111 9.936 10.779 11.169 10.858 9.923 8.657 7.356 6.177 5.153 4.310 3.752 3.617 3.928 4.498 4.983 5.095 4.799 4.340 4.072 4.205 4.671 5.204 5.551 5.640 5.584 5.533 5.536 5.527 5.424 5.243 5.098 + 9.414 9.126 8.775 8.623 8.747 8.968 8.982 8.606 7.913 7.172 6.610 6.226 5.792 5.078 4.100 3.180 2.745 3.010 3.781 4.569 4.918 4.714 4.237 3.926 4.046 4.521 5.043 5.338 5.364 5.288 5.296 5.420 5.535 5.510 5.350 5.200 + 7.631 7.179 6.593 6.288 6.480 7.022 7.491 7.459 6.769 5.625 4.446 3.595 3.188 3.104 3.151 3.238 3.410 3.723 4.116 4.399 4.397 4.112 3.760 3.619 3.822 4.251 4.645 4.806 4.751 4.667 4.730 4.954 5.198 5.309 5.266 5.184 + 6.913 6.889 6.784 6.557 6.244 5.941 5.714 5.540 5.334 5.050 4.741 4.511 4.409 4.361 4.243 4.009 3.763 3.678 3.827 4.077 4.181 3.970 3.515 3.079 2.921 3.106 3.490 3.872 4.152 4.362 4.556 4.694 4.656 4.378 3.964 3.657 + 6.503 6.817 6.925 6.352 5.240 4.304 4.201 4.901 5.675 5.735 4.931 3.863 3.314 3.563 4.198 4.577 4.449 4.119 4.061 4.382 4.713 4.608 4.033 3.435 3.315 3.747 4.311 4.524 4.306 4.018 4.051 4.376 4.557 4.206 3.422 2.767 + 7.600 7.582 7.411 6.999 6.454 6.019 5.833 5.771 5.545 5.004 4.329 3.903 3.967 4.376 4.707 4.637 4.243 3.923 4.022 4.503 4.980 5.066 4.710 4.206 3.891 3.844 3.891 3.871 3.863 4.107 4.683 5.299 5.455 4.878 3.845 3.041 + 6.330 6.272 6.111 5.842 5.565 5.418 5.440 5.513 5.464 5.246 4.996 4.885 4.916 4.880 4.567 4.034 3.644 3.783 4.478 5.289 5.620 5.211 4.375 3.733 3.696 4.133 4.547 4.574 4.329 4.264 4.671 5.333 5.671 5.282 4.361 3.598 + 6.428 6.086 5.692 5.576 5.823 6.190 6.307 5.974 5.330 4.732 4.460 4.500 4.575 4.406 3.973 3.551 3.492 3.933 4.665 5.276 5.443 5.147 4.652 4.277 4.172 4.257 4.363 4.411 4.476 4.675 4.996 5.251 5.201 4.765 4.139 3.683 + 5.665 5.643 5.678 5.831 6.055 6.196 6.119 5.834 5.505 5.326 5.352 5.441 5.366 5.017 4.520 4.177 4.239 4.704 5.294 5.625 5.470 4.899 4.227 3.791 3.749 4.010 4.345 4.553 4.581 4.507 4.440 4.430 4.449 4.448 4.412 4.376 + 8.152 7.664 7.153 7.117 7.617 8.223 8.389 7.926 7.119 6.416 6.018 5.753 5.340 4.754 4.295 4.314 4.840 5.509 5.846 5.653 5.135 4.672 4.470 4.433 4.339 4.122 3.949 4.031 4.377 4.750 4.887 4.746 4.540 4.515 4.704 4.905 + 6.725 7.134 7.738 8.265 8.557 8.623 8.540 8.321 7.881 7.141 6.158 5.160 4.431 4.147 4.282 4.653 5.046 5.315 5.412 5.347 5.164 4.937 4.754 4.682 4.703 4.724 4.643 4.459 4.293 4.297 4.511 4.794 4.917 4.756 4.405 4.121 + 7.984 7.836 7.722 7.828 8.148 8.450 8.447 8.017 7.306 6.601 6.109 5.817 5.560 5.221 4.877 4.747 4.987 5.503 5.970 6.056 5.668 5.030 4.511 4.338 4.447 4.567 4.484 4.243 4.111 4.334 4.886 5.435 5.574 5.148 4.402 3.834 + 11.146 10.780 10.394 10.344 10.655 10.973 10.878 10.257 9.406 8.777 8.612 8.790 9.007 9.073 9.041 9.058 9.122 9.008 8.456 7.455 6.325 5.503 5.208 5.285 5.362 5.182 4.825 4.626 4.880 5.577 6.385 6.874 6.792 6.215 5.477 4.978 + 11.281 11.047 10.625 10.110 9.623 9.253 8.993 8.740 8.364 7.829 7.253 6.857 6.820 7.137 7.596 7.892 7.794 7.277 6.514 5.781 5.313 5.205 5.387 5.665 5.823 5.725 5.393 5.011 4.816 4.938 5.298 5.630 5.657 5.295 4.733 4.318 + 3.911 4.800 6.032 6.940 7.228 7.089 6.908 6.847 6.715 6.224 5.357 4.478 4.064 4.299 4.914 5.399 5.416 5.029 4.597 4.438 4.603 4.902 5.128 5.228 5.290 5.397 5.534 5.628 5.657 5.674 5.726 5.753 5.618 5.246 4.751 4.394 + 4.260 5.180 6.530 7.660 8.164 8.066 7.682 7.311 7.027 6.715 6.282 5.805 5.506 5.559 5.937 6.409 6.715 6.739 6.569 6.398 6.376 6.521 6.750 6.962 7.109 7.201 7.270 7.340 7.415 7.479 7.504 7.450 7.295 7.055 6.804 6.641 + 6.567 6.969 7.576 8.105 8.347 8.258 7.945 7.560 7.200 6.871 6.548 6.247 6.054 6.071 6.325 6.719 7.080 7.269 7.273 7.204 7.202 7.334 7.558 7.780 7.948 8.093 8.285 8.547 8.803 8.926 8.832 8.549 8.203 7.924 7.768 7.711 + 6.899 6.628 6.417 6.631 7.331 8.172 8.631 8.380 7.517 6.481 5.755 5.583 5.887 6.406 6.888 7.204 7.334 7.310 7.186 7.050 7.017 7.168 7.469 7.759 7.847 7.654 7.296 7.018 7.036 7.373 7.840 8.150 8.101 7.704 7.174 6.807 + 5.912 6.180 6.831 7.874 9.004 9.665 9.405 8.246 6.742 5.649 5.417 5.913 6.573 6.856 6.643 6.260 6.148 6.473 6.995 7.295 7.147 6.715 6.417 6.579 7.167 7.823 8.146 8.001 7.598 7.299 7.326 7.614 7.903 7.975 7.835 7.673 + 9.036 9.270 9.736 10.338 10.826 10.873 10.285 9.162 7.877 6.860 6.344 6.269 6.396 6.521 6.602 6.722 6.944 7.227 7.458 7.570 7.608 7.689 7.893 8.194 8.491 8.705 8.840 8.954 9.085 9.202 9.232 9.125 8.904 8.647 8.438 8.326 + 8.146 8.550 9.067 9.339 9.200 8.753 8.232 7.802 7.475 7.191 6.950 6.843 6.957 7.264 7.621 7.882 8.004 8.037 8.022 7.926 7.701 7.417 7.302 7.612 8.395 9.390 10.167 10.423 10.195 9.794 9.529 9.468 9.437 9.244 8.899 8.621 + 10.254 10.259 10.226 10.092 9.819 9.422 8.972 8.544 8.156 7.768 7.337 6.927 6.729 6.959 7.669 8.625 9.381 9.538 9.019 8.142 7.417 7.221 7.575 8.190 8.718 8.992 9.079 9.141 9.252 9.351 9.337 9.200 9.043 8.983 9.039 9.117 + 9.861 9.973 10.178 10.373 10.343 9.895 9.047 8.096 7.450 7.322 7.571 7.832 7.862 7.767 7.901 8.496 9.363 9.952 9.764 8.761 7.439 6.485 6.303 6.787 7.474 7.930 8.022 7.893 7.753 7.687 7.647 7.575 7.489 7.452 7.485 7.536 + 8.208 8.626 9.165 9.418 9.122 8.324 7.345 6.573 6.229 6.262 6.451 6.610 6.740 6.995 7.486 8.103 8.514 8.373 7.599 6.486 5.546 5.185 5.429 5.926 6.195 5.961 5.320 4.642 4.295 4.402 4.783 5.107 5.117 4.782 4.299 3.957 + 9.392 9.885 10.247 9.787 8.371 6.590 5.327 5.093 5.688 6.430 6.732 6.524 6.190 6.152 6.472 6.824 6.799 6.263 5.455 4.769 4.456 4.476 4.594 4.591 4.409 4.132 3.888 3.754 3.746 3.837 3.980 4.110 4.162 4.107 3.986 3.889 + 6.208 6.042 5.647 4.993 4.176 3.410 2.909 2.754 2.838 2.962 2.982 2.901 2.845 2.942 3.217 3.574 3.870 4.007 3.983 3.874 3.775 3.751 3.816 3.931 4.026 4.033 3.923 3.737 3.571 3.522 3.627 3.830 4.023 4.124 4.130 4.102 + 3.654 4.120 4.619 4.643 4.017 3.038 2.227 1.931 2.098 2.401 2.556 2.550 2.594 2.871 3.330 3.722 3.832 3.684 3.518 3.571 3.847 4.104 4.068 3.693 3.248 3.124 3.529 4.309 5.033 5.290 4.964 4.292 3.669 3.369 3.384 3.495 + 4.333 4.431 4.515 4.434 4.115 3.630 3.180 2.975 3.088 3.398 3.663 3.703 3.524 3.312 3.266 3.440 3.705 3.879 3.898 3.864 3.931 4.134 4.340 4.365 4.175 3.946 3.931 4.226 4.656 4.895 4.732 4.247 3.741 3.486 3.513 3.627 + 3.787 3.895 3.997 3.947 3.679 3.261 2.866 2.661 2.705 2.916 3.137 3.248 3.243 3.214 3.265 3.422 3.625 3.786 3.866 3.897 3.932 3.967 3.928 3.729 3.375 2.997 2.795 2.908 3.313 3.830 4.228 4.353 4.201 3.886 3.568 3.376 + 6.442 6.147 5.714 5.329 5.070 4.873 4.631 4.311 3.997 3.800 3.744 3.741 3.671 3.507 3.352 3.352 3.562 3.884 4.138 4.208 4.126 4.034 4.050 4.169 4.275 4.243 4.058 3.824 3.675 3.661 3.695 3.617 3.312 2.805 2.264 1.916 + 4.693 4.822 4.957 4.921 4.599 4.028 3.403 2.981 2.911 3.135 3.403 3.448 3.184 2.777 2.536 2.676 3.142 3.641 3.856 3.691 3.357 3.210 3.480 4.080 4.657 4.849 4.545 3.965 3.489 3.377 3.578 3.774 3.628 3.046 2.267 1.716 + 5.907 5.413 4.770 4.347 4.202 4.061 3.626 2.923 2.343 2.314 2.896 3.673 4.070 3.828 3.216 2.800 2.961 3.569 4.105 4.113 3.588 2.977 2.807 3.245 3.977 4.469 4.399 3.895 3.403 3.318 3.667 4.103 4.191 3.755 3.026 2.475 + 6.789 5.698 4.207 3.173 3.001 3.423 3.814 3.725 3.200 2.631 2.365 2.431 2.609 2.714 2.787 3.009 3.443 3.896 4.042 3.728 3.150 2.741 2.836 3.407 4.085 4.445 4.321 3.898 3.536 3.486 3.730 4.029 4.131 3.951 3.615 3.358 + 5.489 5.361 5.090 4.690 4.246 3.890 3.726 3.751 3.845 3.849 3.681 3.398 3.157 3.110 3.289 3.589 3.830 3.880 3.733 3.505 3.359 3.391 3.572 3.767 3.826 3.692 3.460 3.324 3.454 3.862 4.355 4.629 4.456 3.848 3.081 2.555 + 5.285 4.907 4.421 4.157 4.253 4.567 4.815 4.799 4.548 4.259 4.124 4.189 4.361 4.520 4.622 4.690 4.730 4.672 4.417 3.949 3.411 3.047 3.040 3.375 3.834 4.146 4.171 3.980 3.777 3.726 3.817 3.882 3.733 3.325 2.812 2.456 + 4.811 4.661 4.467 4.359 4.395 4.499 4.511 4.314 3.954 3.641 3.619 3.967 4.509 4.911 4.918 4.547 4.080 3.838 3.939 4.217 4.381 4.273 3.993 3.804 3.886 4.187 4.483 4.586 4.499 4.378 4.341 4.329 4.156 3.716 3.134 2.714 + 4.749 4.854 4.991 5.082 5.111 5.115 5.121 5.098 4.985 4.773 4.534 4.374 4.335 4.367 4.400 4.448 4.609 4.955 5.389 5.641 5.454 4.812 4.002 3.430 3.329 3.593 3.900 4.000 3.909 3.849 3.984 4.227 4.308 4.037 3.521 3.110 + 6.439 6.075 5.650 5.488 5.651 5.901 5.939 5.687 5.326 5.083 4.984 4.838 4.466 3.953 3.650 3.888 4.663 5.578 6.118 6.022 5.449 4.802 4.399 4.272 4.244 4.162 4.064 4.108 4.385 4.791 5.089 5.086 4.767 4.286 3.846 3.593 + 6.050 5.598 5.057 4.855 5.138 5.647 5.916 5.627 4.845 3.949 3.357 3.245 3.503 3.898 4.295 4.729 5.294 5.966 6.537 6.734 6.419 5.707 4.902 4.307 4.051 4.061 4.186 4.326 4.483 4.688 4.898 4.970 4.761 4.263 3.663 3.253 + 5.868 5.167 4.423 4.352 5.075 5.991 6.300 5.682 4.543 3.637 3.423 3.742 4.074 4.084 3.935 4.099 4.854 5.963 6.825 6.956 6.358 5.479 4.830 4.606 4.631 4.610 4.420 4.188 4.127 4.313 4.618 4.823 4.788 4.539 4.225 4.017 + 6.145 5.807 5.382 5.187 5.383 5.863 6.330 6.505 6.290 5.795 5.212 4.682 4.253 3.955 3.891 4.222 5.028 6.153 7.193 7.690 7.414 6.523 5.477 4.741 4.507 4.631 4.812 4.859 4.815 4.848 5.034 5.240 5.224 4.861 4.299 3.878 + 6.701 6.405 6.024 5.804 5.825 5.948 5.951 5.723 5.351 5.024 4.857 4.806 4.750 4.660 4.691 5.084 5.947 7.093 8.091 8.504 8.162 7.252 6.186 5.342 4.869 4.685 4.618 4.572 4.568 4.666 4.849 4.991 4.943 4.660 4.266 3.982 + 6.397 5.945 5.382 5.117 5.301 5.726 6.009 5.908 5.491 5.045 4.802 4.764 4.759 4.685 4.689 5.095 6.104 7.524 8.783 9.257 8.700 7.424 6.095 5.284 5.115 5.267 5.300 5.025 4.620 4.417 4.568 4.884 4.995 4.679 4.079 3.605 + 5.240 4.943 4.618 4.579 4.918 5.438 5.821 5.883 5.689 5.458 5.353 5.363 5.374 5.338 5.381 5.714 6.443 7.419 8.280 8.649 8.346 7.480 6.362 5.348 4.688 4.476 4.651 5.052 5.469 5.715 5.688 5.408 4.991 4.583 4.285 4.135 + 4.298 4.400 4.677 5.141 5.625 5.859 5.686 5.220 4.779 4.610 4.671 4.672 4.377 3.902 3.712 4.290 5.713 7.501 8.873 9.239 8.551 7.273 6.032 5.232 4.895 4.803 4.753 4.704 4.745 4.948 5.262 5.535 5.629 5.515 5.295 5.128 + 4.491 4.015 3.535 3.586 4.295 5.228 5.704 5.324 4.294 3.277 2.908 3.341 4.202 4.947 5.338 5.613 6.235 7.422 8.858 9.851 9.804 8.661 6.958 5.469 4.709 4.679 4.993 5.240 5.278 5.240 5.315 5.534 5.750 5.802 5.684 5.547 + 4.348 3.737 3.052 2.919 3.521 4.434 4.958 4.664 3.720 2.743 2.329 2.642 3.385 4.117 4.633 5.080 5.748 6.744 7.831 8.568 8.615 7.970 6.965 6.043 5.506 5.385 5.504 5.640 5.664 5.583 5.488 5.474 5.580 5.772 5.973 6.099 + 4.512 4.269 3.982 3.872 3.984 4.134 4.047 3.600 2.955 2.470 2.459 2.967 3.757 4.496 5.020 5.433 5.991 6.835 7.813 8.525 8.586 7.906 6.776 5.709 5.129 5.152 5.567 6.028 6.282 6.288 6.172 6.097 6.141 6.284 6.444 6.545 + 5.388 4.618 3.667 3.236 3.579 4.326 4.810 4.631 3.966 3.392 3.378 3.904 4.522 4.806 4.781 4.943 5.823 7.465 9.242 10.225 9.817 8.200 6.225 4.857 4.574 5.148 5.928 6.352 6.294 6.019 5.869 5.965 6.167 6.269 6.212 6.113 + 4.821 4.209 3.490 3.251 3.671 4.387 4.820 4.669 4.153 3.794 3.958 4.546 5.109 5.276 5.114 5.104 5.747 7.112 8.699 9.744 9.713 8.653 7.141 5.906 5.404 5.616 6.156 6.572 6.607 6.292 5.848 5.522 5.445 5.592 5.828 5.997 + 5.044 4.662 4.139 3.779 3.726 3.876 3.983 3.877 3.611 3.418 3.509 3.887 4.347 4.669 4.848 5.146 5.886 7.138 8.552 9.510 9.517 8.549 7.083 5.788 5.111 5.048 5.273 5.452 5.503 5.573 5.827 6.245 6.629 6.788 6.718 6.595 + 5.066 4.599 3.817 3.017 2.558 2.704 3.437 4.423 5.179 5.372 5.031 4.513 4.257 4.509 5.229 6.199 7.203 8.114 8.832 9.202 9.041 8.287 7.147 6.057 5.464 5.557 6.160 6.858 7.269 7.243 6.887 6.430 6.056 5.833 5.733 5.702 + 5.460 4.854 4.018 3.473 3.579 4.323 5.341 6.153 6.438 6.193 5.673 5.196 4.961 5.005 5.294 5.826 6.630 7.652 8.659 9.273 9.179 8.346 7.107 5.997 5.447 5.557 6.085 6.649 6.966 6.978 6.792 6.549 6.319 6.115 5.944 5.841 + 4.213 3.946 3.608 3.424 3.468 3.630 3.748 3.777 3.821 4.016 4.375 4.767 5.060 5.279 5.631 6.329 7.364 8.422 9.049 8.945 8.179 7.147 6.329 6.009 6.150 6.493 6.751 6.775 6.588 6.309 6.058 5.899 5.837 5.842 5.875 5.901 + 6.956 6.517 5.793 5.020 4.418 4.096 4.033 4.125 4.279 4.466 4.710 5.016 5.330 5.578 5.765 6.026 6.560 7.445 8.496 9.293 9.410 8.703 7.446 6.195 5.470 5.463 5.975 6.594 6.968 6.979 6.726 6.386 6.088 5.873 5.734 5.664 + 4.991 4.900 4.784 4.727 4.760 4.841 4.885 4.834 4.707 4.588 4.570 4.692 4.934 5.272 5.734 6.393 7.280 8.277 9.091 9.377 8.940 7.892 6.639 5.672 5.311 5.543 6.078 6.551 6.735 6.634 6.403 6.215 6.151 6.191 6.267 6.319 + 5.280 4.966 4.646 4.645 5.001 5.433 5.596 5.390 5.016 4.744 4.642 4.535 4.243 3.857 3.770 4.386 5.753 7.442 8.779 9.264 8.842 7.861 6.802 6.017 5.638 5.632 5.881 6.209 6.412 6.337 6.008 5.661 5.602 5.968 6.581 7.048 + 5.982 5.939 5.889 5.853 5.794 5.621 5.271 4.779 4.291 3.966 3.848 3.821 3.708 3.475 3.351 3.731 4.877 6.626 8.359 9.318 9.085 7.882 6.444 5.536 5.461 5.920 6.314 6.223 5.698 5.140 4.923 5.088 5.362 5.451 5.301 5.116 + 5.718 5.734 5.797 5.897 5.931 5.744 5.271 4.633 4.095 3.888 4.019 4.257 4.335 4.205 4.150 4.609 5.819 7.550 9.144 9.890 9.469 8.167 6.694 5.735 5.564 5.947 6.399 6.544 6.334 5.982 5.721 5.614 5.549 5.396 5.159 4.974 + 5.379 5.358 5.254 5.061 4.918 5.025 5.435 5.926 6.106 5.704 4.803 3.813 3.214 3.271 3.958 5.082 6.430 7.798 8.913 9.429 9.092 7.988 6.604 5.583 5.314 5.685 6.210 6.436 6.276 5.991 5.878 5.963 6.001 5.755 5.274 4.882 + 5.596 5.445 5.376 5.620 6.155 6.679 6.844 6.527 5.908 5.293 4.867 4.604 4.395 4.255 4.381 4.989 6.078 7.343 8.325 8.676 8.350 7.574 6.691 5.986 5.620 5.631 5.948 6.387 6.691 6.650 6.252 5.720 5.378 5.412 5.726 6.014 + 10.692 9.960 8.956 8.257 8.129 8.325 8.276 7.514 6.030 4.305 2.997 2.532 2.883 3.682 4.546 5.335 6.150 7.105 8.082 8.707 8.583 7.610 6.132 4.775 4.098 4.278 5.046 5.899 6.407 6.424 6.082 5.638 5.295 5.126 5.086 5.095 + 10.844 9.706 8.151 7.073 6.878 7.232 7.388 6.790 5.478 4.004 2.993 2.736 3.105 3.787 4.565 5.398 6.292 7.139 7.704 7.783 7.373 6.693 6.043 5.628 5.483 5.527 5.672 5.875 6.104 6.298 6.357 6.205 5.842 5.369 4.934 4.676 + 6.441 6.307 6.101 5.923 5.854 5.889 5.926 5.810 5.453 4.899 4.301 3.810 3.483 3.319 3.370 3.816 4.855 6.464 8.235 9.489 9.663 8.709 7.179 5.891 5.406 5.691 6.236 6.481 6.227 5.697 5.268 5.143 5.235 5.330 5.316 5.255 + 5.224 5.032 4.856 4.905 5.191 5.514 5.663 5.620 5.567 5.673 5.874 5.873 5.402 4.528 3.732 3.628 4.539 6.225 7.989 9.082 9.115 8.229 6.934 5.795 5.159 5.068 5.335 5.688 5.905 5.890 5.697 5.485 5.416 5.550 5.802 5.997 + 3.400 3.871 4.565 5.139 5.361 5.240 5.000 4.913 5.103 5.456 5.691 5.561 5.040 4.374 3.963 4.128 4.930 6.119 7.266 7.967 8.028 7.524 6.728 5.969 5.493 5.383 5.563 5.854 6.073 6.111 5.970 5.741 5.541 5.437 5.426 5.446 + 2.931 3.284 3.852 4.417 4.773 4.818 4.601 4.288 4.075 4.077 4.261 4.476 4.561 4.474 4.349 4.446 5.001 6.053 7.363 8.470 8.896 8.388 7.075 5.447 4.133 3.597 3.918 4.765 5.611 6.027 5.907 5.471 5.069 4.930 5.035 5.180 + 3.421 3.447 3.637 4.102 4.748 5.285 5.432 5.150 4.684 4.378 4.396 4.608 4.736 4.646 4.526 4.774 5.666 7.069 8.436 9.116 8.764 7.554 6.052 4.861 4.290 4.263 4.490 4.723 4.889 5.050 5.247 5.413 5.417 5.198 4.856 4.599 + 3.893 3.912 4.110 4.599 5.242 5.685 5.620 5.065 4.385 4.022 4.146 4.538 4.808 4.772 4.646 4.879 5.745 7.041 8.150 8.445 7.734 6.395 5.120 4.461 4.508 4.921 5.237 5.200 4.889 4.572 4.465 4.578 4.755 4.837 4.795 4.723 + 3.705 3.897 4.227 4.623 5.018 5.349 5.538 5.503 5.204 4.704 4.162 3.759 3.601 3.689 3.974 4.435 5.088 5.893 6.669 7.112 6.969 6.240 5.236 4.413 4.090 4.263 4.652 4.929 4.948 4.790 4.620 4.520 4.439 4.293 4.086 3.927 + 4.657 4.348 4.046 4.103 4.591 5.223 5.590 5.469 4.972 4.394 3.947 3.619 3.281 2.916 2.733 3.028 3.912 5.132 6.171 6.564 6.185 5.317 4.448 3.977 4.018 4.410 4.876 5.183 5.222 5.000 4.587 4.078 3.568 3.135 2.830 2.676 + 3.489 3.718 4.200 4.853 5.417 5.584 5.256 4.692 4.343 4.476 4.918 5.176 4.861 4.060 3.309 3.176 3.795 4.751 5.415 5.430 4.949 4.445 4.300 4.533 4.863 5.011 4.932 4.793 4.767 4.851 4.876 4.675 4.223 3.653 3.154 2.871 + 5.798 5.363 4.799 4.518 4.772 5.480 6.277 6.730 6.603 5.979 5.176 4.532 4.222 4.227 4.442 4.799 5.282 5.840 6.310 6.456 6.144 5.480 4.801 4.461 4.594 5.030 5.443 5.605 5.530 5.398 5.340 5.293 5.069 4.565 3.924 3.468 + 5.498 5.506 5.419 5.161 4.805 4.555 4.584 4.873 5.196 5.277 4.989 4.438 3.883 3.571 3.627 4.036 4.687 5.405 5.965 6.148 5.853 5.201 4.521 4.166 4.293 4.753 5.216 5.417 5.333 5.138 5.003 4.921 4.738 4.343 3.826 3.453 + 4.605 4.613 4.661 4.810 5.121 5.567 5.977 6.077 5.661 4.756 3.663 2.784 2.397 2.525 3.018 3.725 4.583 5.527 6.353 6.726 6.392 5.439 4.341 3.678 3.741 4.323 4.909 5.089 4.850 4.510 4.363 4.393 4.315 3.896 3.237 2.730 + 5.057 4.918 4.735 4.562 4.307 3.798 2.986 2.087 1.484 1.437 1.857 2.350 2.546 2.425 2.357 2.804 3.908 5.322 6.416 6.699 6.138 5.138 4.248 3.823 3.891 4.242 4.630 4.896 4.982 4.883 4.616 4.226 3.796 3.419 3.160 3.034 + 5.492 5.083 4.564 4.257 4.217 4.196 3.900 3.298 2.686 2.441 2.681 3.148 3.427 3.315 3.018 2.985 3.518 4.483 5.381 5.703 5.302 4.483 3.757 3.473 3.619 3.910 4.057 3.978 3.808 3.716 3.730 3.698 3.435 2.895 2.256 1.822 + 5.918 5.780 5.374 4.649 3.819 3.277 3.291 3.749 4.216 4.270 3.827 3.170 2.683 2.558 2.728 3.040 3.438 3.943 4.488 4.829 4.694 4.063 3.277 2.809 2.871 3.215 3.365 3.065 2.539 2.283 2.556 3.074 3.209 2.567 1.408 0.497 + 4.113 4.110 4.050 3.903 3.730 3.657 3.774 4.027 4.222 4.141 3.699 3.017 2.367 2.026 2.138 2.656 3.371 4.004 4.307 4.165 3.653 3.015 2.555 2.470 2.734 3.122 3.364 3.327 3.080 2.792 2.559 2.312 1.897 1.257 0.546 0.070 + 5.189 5.087 4.980 4.995 5.189 5.495 5.744 5.733 5.325 4.513 3.437 2.355 1.570 1.333 1.737 2.655 3.762 4.663 5.064 4.911 4.401 3.847 3.494 3.383 3.368 3.257 2.971 2.609 2.362 2.356 2.528 2.662 2.538 2.105 1.539 1.142 + 3.949 3.484 3.095 3.322 4.146 4.960 5.096 4.413 3.393 2.672 2.473 2.491 2.307 1.893 1.698 2.202 3.391 4.665 5.297 5.020 4.211 3.519 3.300 3.387 3.362 3.025 2.598 2.479 2.831 3.405 3.763 3.658 3.208 2.731 2.445 2.348 + 5.364 5.564 5.841 6.005 5.900 5.499 4.934 4.412 4.076 3.901 3.733 3.447 3.095 2.884 3.003 3.425 3.882 4.057 3.850 3.473 3.283 3.481 3.946 4.336 4.392 4.160 3.947 4.050 4.501 5.044 5.351 5.276 4.934 4.562 4.321 4.225 + 3.329 3.276 3.400 3.910 4.742 5.534 5.877 5.626 4.993 4.357 3.961 3.767 3.577 3.290 3.035 3.068 3.508 4.190 4.747 4.884 4.600 4.181 3.987 4.198 4.727 5.322 5.765 5.994 6.086 6.155 6.256 6.370 6.450 6.471 6.449 6.423 + 5.012 4.734 4.504 4.669 5.264 5.922 6.138 5.646 4.638 3.625 3.080 3.131 3.531 3.882 3.937 3.725 3.470 3.392 3.558 3.882 4.224 4.490 4.676 4.841 5.059 5.376 5.791 6.243 6.626 6.827 6.784 6.518 6.134 5.755 5.475 5.333 + 7.116 6.559 5.827 5.401 5.505 5.939 6.238 6.038 5.375 4.671 4.411 4.753 5.396 5.823 5.727 5.275 4.961 5.184 5.885 6.578 6.752 6.312 5.665 5.380 5.714 6.420 6.995 7.143 7.016 7.027 7.413 7.959 8.169 7.732 6.858 6.158 + 8.684 8.502 8.151 7.711 7.346 7.222 7.367 7.620 7.736 7.579 7.242 6.967 6.933 7.107 7.286 7.294 7.132 6.956 6.897 6.929 6.905 6.730 6.485 6.368 6.506 6.822 7.119 7.277 7.384 7.640 8.112 8.602 8.762 8.410 7.736 7.205 + 6.937 6.809 6.760 6.975 7.391 7.689 7.547 6.928 6.147 5.633 5.602 5.899 6.159 6.127 5.868 5.667 5.749 6.047 6.262 6.139 5.725 5.361 5.399 5.892 6.519 6.834 6.637 6.163 5.915 6.271 7.154 8.057 8.400 7.966 7.076 6.378 + 5.960 5.973 6.073 6.310 6.607 6.749 6.503 5.795 4.798 3.855 3.270 3.123 3.242 3.358 3.330 3.247 3.338 3.749 4.393 4.992 5.293 5.268 5.140 5.195 5.560 6.111 6.606 6.893 7.019 7.144 7.339 7.487 7.372 6.904 6.256 5.788 + 5.472 5.584 5.720 5.761 5.619 5.283 4.817 4.321 3.889 3.576 3.379 3.241 3.081 2.863 2.642 2.557 2.753 3.259 3.931 4.511 4.787 4.731 4.523 4.417 4.571 4.953 5.411 5.812 6.135 6.444 6.763 7.009 7.043 6.810 6.429 6.141 + 4.391 4.540 4.899 5.476 6.116 6.546 6.544 6.108 5.466 4.898 4.539 4.310 4.054 3.730 3.484 3.529 3.934 4.521 4.971 5.068 4.866 4.648 4.696 5.065 5.553 5.874 5.903 5.780 5.788 6.119 6.697 7.215 7.355 7.027 6.450 6.013 + 4.396 4.575 4.903 5.338 5.830 6.294 6.599 6.595 6.213 5.548 4.838 4.335 4.147 4.188 4.281 4.314 4.326 4.425 4.650 4.899 5.027 4.992 4.925 5.017 5.330 5.720 5.957 5.941 5.816 5.845 6.161 6.615 6.885 6.758 6.337 5.973 + 6.591 6.874 7.152 7.127 6.758 6.284 5.975 5.881 5.834 5.660 5.380 5.154 5.063 4.964 4.634 4.044 3.490 3.366 3.786 4.414 4.722 4.467 3.945 3.746 4.221 5.160 5.990 6.322 6.318 6.509 7.227 8.210 8.776 8.456 7.477 6.637 + 6.288 6.409 6.509 6.424 6.107 5.671 5.308 5.159 5.241 5.467 5.719 5.903 5.963 5.868 5.637 5.348 5.129 5.089 5.248 5.522 5.799 6.027 6.234 6.459 6.663 6.731 6.595 6.353 6.265 6.565 7.247 8.004 8.425 8.302 7.810 7.384 + 6.922 6.843 6.808 6.938 7.226 7.533 7.705 7.693 7.577 7.468 7.403 7.348 7.273 7.217 7.248 7.358 7.423 7.285 6.922 6.515 6.344 6.562 7.063 7.550 7.766 7.674 7.447 7.280 7.222 7.181 7.082 6.999 7.114 7.527 8.100 8.519 + 4.701 4.726 4.983 5.672 6.766 7.969 8.903 9.346 9.323 9.012 8.575 8.091 7.612 7.237 7.074 7.111 7.150 6.910 6.261 5.388 4.709 4.581 5.030 5.726 6.226 6.293 6.030 5.735 5.646 5.766 5.918 5.916 5.717 5.413 5.139 4.986 + 4.969 5.478 6.327 7.265 8.081 8.704 9.185 9.589 9.859 9.797 9.219 8.188 7.114 6.576 6.934 8.003 9.081 9.366 8.496 6.817 5.165 4.307 4.462 5.231 5.956 6.201 5.986 5.656 5.536 5.687 5.908 5.947 5.698 5.249 4.795 4.519 + 4.216 4.780 5.869 7.329 8.858 10.102 10.822 10.993 10.721 10.098 9.152 7.987 6.936 6.517 7.092 8.490 9.942 10.516 9.757 8.068 6.469 5.886 6.515 7.732 8.600 8.556 7.736 6.750 6.157 6.085 6.253 6.284 6.003 5.502 5.006 4.710 + 4.521 4.767 5.455 6.760 8.568 10.416 11.672 11.881 11.011 9.477 7.937 6.985 6.917 7.642 8.752 9.715 10.109 9.819 9.087 8.372 8.080 8.318 8.848 9.268 9.288 8.911 8.377 7.948 7.707 7.546 7.308 6.949 6.574 6.319 6.228 6.228 + 4.395 5.092 6.374 7.974 9.486 10.490 10.740 10.290 9.435 8.525 7.799 7.360 7.258 7.547 8.219 9.080 9.741 9.815 9.209 8.267 7.587 7.616 8.310 9.148 9.495 9.053 8.056 7.075 6.602 6.730 7.145 7.385 7.157 6.501 5.724 5.211 + 5.890 6.132 6.836 8.086 9.524 10.467 10.411 9.444 8.177 7.228 6.750 6.459 6.094 5.825 6.151 7.333 8.945 10.027 9.814 8.421 6.841 6.203 6.883 8.216 9.046 8.652 7.275 5.874 5.354 5.922 7.034 7.875 7.934 7.260 6.321 5.676 + 6.148 6.210 6.546 7.305 8.315 9.125 9.344 8.936 8.208 7.493 6.870 6.196 5.421 4.816 4.841 5.706 7.060 8.139 8.328 7.655 6.785 6.472 6.935 7.686 7.948 7.311 6.066 4.964 4.641 5.168 6.068 6.710 6.728 6.193 5.475 4.989 + 6.404 6.398 6.437 6.557 6.722 6.852 6.905 6.908 6.893 6.795 6.460 5.801 4.971 4.366 4.376 5.070 6.071 6.784 6.820 6.274 5.634 5.376 5.587 5.932 5.965 5.521 4.849 4.395 4.445 4.924 5.486 5.795 5.735 5.424 5.074 4.859 + 6.614 5.810 4.726 4.038 4.111 4.807 5.647 6.159 6.122 5.593 4.784 3.964 3.418 3.407 4.030 5.085 6.077 6.483 6.107 5.257 4.545 4.434 4.896 5.443 5.537 5.012 4.191 3.604 3.573 4.010 4.540 4.817 4.745 4.460 4.165 3.994 + 5.825 5.784 5.660 5.453 5.275 5.308 5.649 6.166 6.513 6.337 5.552 4.460 3.609 3.449 4.021 4.923 5.570 5.595 5.079 4.471 4.241 4.544 5.125 5.520 5.402 4.796 4.042 3.538 3.483 3.782 4.159 4.358 4.282 4.008 3.698 3.501 + 5.187 5.285 5.429 5.581 5.763 6.038 6.408 6.736 6.781 6.355 5.495 4.506 3.812 3.697 4.115 4.719 5.093 5.027 4.646 4.301 4.301 4.702 5.271 5.663 5.658 5.287 4.780 4.390 4.240 4.279 4.360 4.365 4.266 4.114 3.975 3.898 + 5.385 5.107 4.892 5.074 5.625 6.149 6.220 5.769 5.131 4.729 4.697 4.801 4.719 4.403 4.137 4.249 4.750 5.268 5.363 4.949 4.407 4.285 4.816 5.695 6.299 6.171 5.367 4.390 3.803 3.842 4.314 4.800 4.971 4.771 4.393 4.110 + 1.618 2.687 4.299 5.730 6.492 6.556 6.254 5.965 5.837 5.739 5.435 4.827 4.076 3.521 3.456 3.940 4.732 5.421 5.668 5.425 4.989 4.836 5.299 6.310 7.372 7.851 7.391 6.190 4.886 4.138 4.173 4.663 5.009 4.825 4.228 3.713 + 4.926 4.789 4.548 4.286 4.133 4.213 4.550 5.009 5.343 5.333 4.933 4.330 3.846 3.745 4.065 4.594 4.999 5.040 4.719 4.288 4.102 4.411 5.209 6.227 7.069 7.414 7.170 6.505 5.737 5.158 4.894 4.881 4.954 4.977 4.923 4.861 + 4.384 3.975 3.710 4.174 5.408 6.785 7.470 7.057 5.867 4.666 4.070 4.136 4.444 4.527 4.262 3.898 3.767 3.988 4.419 4.855 5.241 5.684 6.278 6.926 7.353 7.305 6.760 5.965 5.281 4.955 5.007 5.277 5.565 5.752 5.825 5.838 + 5.607 5.320 5.237 5.857 7.153 8.485 9.040 8.448 7.048 5.605 4.734 4.515 4.580 4.531 4.290 4.091 4.189 4.589 5.060 5.395 5.641 6.064 6.877 7.968 8.901 9.201 8.688 7.619 6.511 5.810 5.641 5.804 5.978 5.962 5.779 5.609 + 4.217 4.644 5.589 7.009 8.537 9.575 9.658 8.808 7.539 6.499 6.006 5.878 5.677 5.141 4.436 3.998 4.145 4.793 5.545 6.046 6.304 6.655 7.427 8.574 9.624 10.001 9.461 8.303 7.184 6.665 6.840 7.322 7.568 7.294 6.671 6.166 + 2.595 2.909 3.831 5.538 7.690 9.450 9.992 9.108 7.396 5.852 5.176 5.343 5.751 5.787 5.328 4.785 4.699 5.275 6.252 7.172 7.782 8.209 8.759 9.562 10.383 10.779 10.463 9.564 8.557 7.928 7.827 7.994 8.004 7.620 6.985 6.499 + 3.968 4.365 5.374 7.055 8.981 10.309 10.304 8.915 6.885 5.288 4.798 5.278 5.987 6.201 5.752 5.080 4.810 5.254 6.237 7.329 8.233 8.965 9.711 10.530 11.204 11.377 10.863 9.846 8.787 8.119 7.961 8.069 8.065 7.739 7.207 6.802 + 5.405 5.640 6.410 7.863 9.565 10.587 10.135 8.216 5.751 3.984 3.631 4.438 5.485 5.937 5.640 5.105 4.987 5.549 6.545 7.545 8.345 9.081 9.972 10.990 11.774 11.885 11.172 9.941 8.765 8.105 8.026 8.215 8.255 7.943 7.414 7.011 + 4.487 5.184 6.519 8.240 9.815 10.576 10.078 8.420 6.272 4.523 3.779 4.059 4.883 5.668 6.113 6.298 6.481 6.818 7.259 7.680 8.090 8.677 9.607 10.773 11.729 11.942 11.198 9.829 8.550 7.987 8.247 8.857 9.137 8.727 7.859 7.163 + 4.100 5.056 6.739 8.682 10.243 10.805 10.078 8.304 6.200 4.600 4.009 4.343 5.053 5.540 5.563 5.345 5.315 5.719 6.438 7.139 7.621 8.014 8.642 9.647 10.740 11.339 11.019 9.913 8.690 8.080 8.303 8.896 9.087 8.446 7.260 6.331 + 4.840 5.482 6.687 8.217 9.632 10.391 10.108 8.804 6.979 5.372 4.551 4.584 5.036 5.304 5.051 4.434 3.955 4.065 4.843 5.985 7.091 7.965 8.688 9.406 10.068 10.380 10.047 9.092 7.935 7.136 6.984 7.290 7.563 7.435 6.957 6.533 + 9.175 9.517 10.051 10.526 10.675 10.301 9.362 8.009 6.563 5.398 4.762 4.638 4.752 4.753 4.460 3.998 3.709 3.883 4.550 5.469 6.344 7.053 7.678 8.322 8.888 9.076 8.626 7.615 6.506 5.866 5.943 6.478 6.912 6.847 6.360 5.907 + 11.456 11.409 11.284 11.045 10.668 10.118 9.335 8.275 6.997 5.711 4.707 4.172 4.052 4.092 4.056 3.929 3.920 4.232 4.832 5.434 5.754 5.786 5.821 6.158 6.755 7.185 6.990 6.135 5.139 4.709 5.142 6.044 6.628 6.373 5.476 4.695 + 10.000 9.894 9.669 9.298 8.747 7.976 6.971 5.797 4.624 3.700 3.226 3.216 3.452 3.605 3.465 3.103 2.830 2.970 3.612 4.551 5.453 6.093 6.468 6.690 6.804 6.714 6.325 5.731 5.252 5.220 5.679 6.282 6.523 6.137 5.347 4.717 + 6.366 7.126 8.138 8.723 8.462 7.415 6.022 4.808 4.119 4.014 4.314 4.698 4.829 4.493 3.736 2.904 2.485 2.806 3.789 4.972 5.834 6.157 6.141 6.160 6.383 6.611 6.495 5.927 5.227 4.907 5.214 5.869 6.267 6.000 5.233 4.577 + 7.857 8.004 8.068 7.790 7.108 6.219 5.445 5.011 4.935 5.069 5.230 5.290 5.181 4.879 4.413 3.909 3.568 3.568 3.930 4.487 5.011 5.381 5.655 5.956 6.288 6.467 6.274 5.682 4.961 4.508 4.538 4.902 5.210 5.162 4.804 4.469 + 7.067 7.455 7.968 8.273 8.202 7.830 7.363 6.954 6.621 6.301 5.972 5.697 5.554 5.533 5.521 5.393 5.138 4.879 4.780 4.919 5.237 5.609 5.942 6.222 6.465 6.643 6.690 6.568 6.333 6.118 6.033 6.072 6.129 6.100 5.983 5.875 + 12.684 13.006 13.394 13.519 13.209 12.547 11.789 11.167 10.747 10.434 10.091 9.657 9.175 8.722 8.325 7.942 7.513 7.046 6.629 6.383 6.373 6.552 6.780 6.899 6.820 6.569 6.280 6.118 6.195 6.491 6.857 7.082 7.013 6.656 6.188 5.863 + 11.448 11.793 12.074 11.843 11.010 9.916 9.034 8.588 8.433 8.274 7.960 7.576 7.267 7.016 6.647 6.038 5.330 4.869 4.916 5.388 5.907 6.116 5.979 5.775 5.806 6.097 6.381 6.384 6.105 5.819 5.803 6.054 6.295 6.250 5.930 5.627 + 6.938 7.461 8.136 8.540 8.543 8.365 8.332 8.549 8.817 8.827 8.439 7.774 7.062 6.433 5.868 5.319 4.851 4.607 4.652 4.855 4.992 4.972 4.956 5.213 5.823 6.532 6.920 6.771 6.301 5.988 6.164 6.708 7.155 7.124 6.670 6.236 + 6.862 6.860 6.790 6.598 6.324 6.104 6.080 6.289 6.622 6.887 6.931 6.726 6.378 6.049 5.873 5.894 6.059 6.248 6.341 6.276 6.095 5.935 5.945 6.185 6.560 6.876 6.977 6.867 6.715 6.721 6.949 7.262 7.427 7.312 7.003 6.745 + 8.331 8.153 7.994 8.058 8.337 8.565 8.398 7.698 6.687 5.817 5.452 5.596 5.913 6.025 5.856 5.701 5.948 6.674 7.486 7.789 7.290 6.304 5.573 5.686 6.578 7.548 7.811 7.131 6.020 5.304 5.428 6.098 6.557 6.266 5.382 4.619 + 7.996 8.381 9.100 9.957 10.582 10.571 9.772 8.459 7.209 6.525 6.479 6.684 6.637 6.171 5.620 5.550 6.236 7.356 8.171 8.082 7.137 6.047 5.669 6.352 7.648 8.633 8.596 7.565 6.252 5.492 5.609 6.207 6.549 6.176 5.286 4.551 + 9.498 9.346 9.388 9.906 10.707 11.176 10.768 9.510 8.035 7.085 6.927 7.213 7.385 7.232 7.078 7.410 8.312 9.258 9.486 8.644 7.143 5.884 5.586 6.260 7.250 7.777 7.525 6.805 6.233 6.208 6.627 7.006 6.881 6.156 5.172 4.480 + 8.343 8.780 9.572 10.465 11.031 10.879 9.966 8.718 7.779 7.534 7.823 8.098 7.937 7.437 7.134 7.489 8.400 9.193 9.139 8.068 6.547 5.472 5.398 6.164 7.083 7.508 7.286 6.775 6.474 6.609 7.006 7.283 7.164 6.661 6.033 5.611 + 9.437 9.870 10.518 11.039 11.124 10.650 9.753 8.761 8.021 7.706 7.733 7.857 7.875 7.783 7.764 7.994 8.432 8.764 8.591 7.745 6.471 5.343 4.900 5.287 6.143 6.848 6.950 6.461 5.811 5.490 5.673 6.103 6.331 6.090 5.520 5.053 + 7.831 8.067 8.470 8.893 9.137 9.036 8.569 7.895 7.274 6.894 6.744 6.645 6.431 6.126 5.963 6.202 6.872 7.657 8.061 7.744 6.794 5.703 5.048 5.100 5.642 6.143 6.151 5.603 4.843 4.321 4.251 4.467 4.603 4.411 3.970 3.605 + 7.633 7.686 7.784 7.892 7.946 7.861 7.574 7.089 6.494 5.926 5.509 5.294 5.251 5.325 5.481 5.712 5.994 6.231 6.279 6.051 5.620 5.218 5.094 5.318 5.697 5.893 5.683 5.154 4.657 4.533 4.823 5.207 5.244 4.733 3.906 3.283 + 7.023 7.618 8.350 8.663 8.320 7.549 6.815 6.438 6.389 6.393 6.223 5.901 5.646 5.643 5.860 6.067 6.029 5.688 5.184 4.745 4.526 4.548 4.721 4.916 5.014 4.935 4.668 4.306 4.016 3.940 4.081 4.268 4.272 3.983 3.525 3.180 + 9.077 8.957 8.698 8.273 7.687 7.016 6.422 6.092 6.133 6.472 6.877 7.084 6.970 6.629 6.289 6.122 6.113 6.083 5.858 5.431 4.985 4.753 4.825 5.070 5.229 5.106 4.702 4.199 3.818 3.668 3.694 3.742 3.680 3.482 3.232 3.061 + 8.658 9.464 10.390 10.612 9.813 8.407 7.179 6.675 6.826 7.088 6.915 6.167 5.154 4.357 4.084 4.326 4.840 5.331 5.583 5.509 5.161 4.717 4.419 4.431 4.707 4.976 4.926 4.454 3.776 3.280 3.220 3.517 3.837 3.887 3.663 3.424 + 10.871 10.948 10.882 10.429 9.556 8.505 7.632 7.161 7.037 6.989 6.739 6.184 5.444 4.745 4.279 4.107 4.168 4.340 4.510 4.609 4.637 4.643 4.693 4.799 4.882 4.807 4.474 3.925 3.348 2.970 2.905 3.071 3.262 3.311 3.213 3.098 + 7.767 7.588 7.428 7.502 7.839 8.205 8.246 7.750 6.824 5.856 5.250 5.150 5.358 5.524 5.444 5.226 5.172 5.475 6.009 6.399 6.334 5.854 5.337 5.195 5.510 5.944 6.018 5.507 4.638 3.896 3.615 3.719 3.826 3.616 3.128 2.716 + 8.454 8.107 7.898 8.328 9.380 10.416 10.622 9.658 7.986 6.564 6.142 6.701 7.507 7.723 7.098 6.156 5.734 6.266 7.401 8.288 8.291 7.515 6.709 6.619 7.351 8.276 8.562 7.875 6.642 5.662 5.420 5.698 5.815 5.276 4.244 3.417 + 7.568 6.928 6.381 6.758 8.247 10.155 11.382 11.235 9.938 8.411 7.526 7.445 7.589 7.259 6.336 5.460 5.489 6.703 8.461 9.651 9.580 8.570 7.701 7.904 9.155 10.474 10.745 9.667 8.014 6.969 7.097 7.858 8.094 7.078 5.208 3.735 + 6.610 6.568 6.882 7.936 9.635 11.285 11.985 11.267 9.493 7.652 6.675 6.772 7.339 7.519 6.971 6.204 6.144 7.295 9.205 10.748 11.019 10.096 8.988 8.773 9.664 10.816 11.065 9.965 8.208 7.029 7.130 8.057 8.620 7.967 6.380 5.054 + 6.992 6.551 6.436 7.430 9.506 11.649 12.545 11.586 9.368 7.248 6.323 6.640 7.293 7.289 6.445 5.570 5.762 7.433 9.881 11.775 12.163 11.165 9.815 9.184 9.548 10.268 10.432 9.687 8.524 7.806 7.966 8.607 8.855 8.150 6.783 5.693 + 5.909 6.040 6.641 8.011 9.973 11.769 12.461 11.577 9.524 7.397 6.255 6.382 7.137 7.523 7.062 6.231 6.065 7.224 9.326 11.149 11.587 10.578 9.177 8.688 9.564 11.039 11.804 11.135 9.507 8.133 7.886 8.552 9.096 8.662 7.389 6.282 + 6.829 6.490 6.386 7.148 8.844 10.787 11.952 11.705 10.274 8.577 7.532 7.390 7.633 7.513 6.779 5.955 5.909 7.066 8.940 10.435 10.695 9.805 8.727 8.509 9.409 10.695 11.277 10.638 9.255 8.157 8.021 8.614 9.053 8.646 7.542 6.596 + 6.531 6.570 6.773 7.328 8.344 9.657 10.782 11.136 10.450 9.060 7.740 7.149 7.316 7.643 7.488 6.812 6.285 6.684 8.113 9.770 10.558 10.020 8.761 7.928 8.204 9.205 9.867 9.442 8.207 7.199 7.242 8.177 9.026 8.922 7.935 6.995 + 7.432 6.918 6.484 6.813 8.077 9.711 10.772 10.604 9.309 7.654 6.481 6.114 6.200 6.135 5.660 5.135 5.231 6.289 7.929 9.259 9.544 8.788 7.729 7.227 7.580 8.317 8.662 8.232 7.371 6.823 7.056 7.842 8.463 8.367 7.660 7.001 + 8.195 8.032 7.946 8.235 8.998 9.979 10.666 10.604 9.750 8.563 7.713 7.587 7.995 8.325 8.080 7.324 6.656 6.677 7.427 8.297 8.530 7.889 6.885 6.348 6.691 7.548 8.107 7.840 6.977 6.275 6.314 6.959 7.505 7.354 6.581 5.870 + 7.476 7.622 8.043 8.815 9.772 10.487 10.516 9.719 8.428 7.267 6.736 6.853 7.156 7.094 6.510 5.801 5.599 6.207 7.270 7.997 7.783 6.726 5.583 5.173 5.712 6.651 7.154 6.809 5.963 5.385 5.573 6.317 6.902 6.771 6.032 5.353 + 8.391 8.704 9.105 9.294 9.090 8.525 7.804 7.179 6.825 6.778 6.925 7.045 6.909 6.410 5.679 5.061 4.917 5.360 6.126 6.719 6.771 6.320 5.782 5.601 5.871 6.264 6.338 5.959 5.459 5.354 5.863 6.672 7.160 6.928 6.166 5.508 + 8.136 8.286 8.576 8.947 9.259 9.322 8.990 8.259 7.300 6.373 5.681 5.251 4.949 4.620 4.242 3.969 4.022 4.494 5.241 5.951 6.347 6.370 6.196 6.075 6.128 6.267 6.307 6.149 5.874 5.672 5.666 5.796 5.874 5.764 5.506 5.291 + 7.325 7.037 6.866 7.220 8.076 8.897 9.012 8.158 6.715 5.442 4.888 4.986 5.161 4.866 4.097 3.439 3.581 4.692 6.199 7.170 7.018 5.957 4.842 4.504 5.128 6.158 6.788 6.622 5.947 5.429 5.518 6.081 6.570 6.535 6.033 5.552 + 9.768 9.204 8.450 7.957 7.903 8.073 8.059 7.619 6.873 6.188 5.849 5.797 5.690 5.218 4.439 3.795 3.791 4.567 5.727 6.591 6.682 6.079 5.341 5.072 5.464 6.197 6.737 6.784 6.483 6.253 6.385 6.799 7.135 7.101 6.745 6.409 + 11.066 10.967 10.731 10.325 9.758 9.099 8.443 7.895 7.552 7.482 7.686 8.047 8.353 8.405 8.171 7.839 7.699 7.904 8.322 8.611 8.495 8.011 7.495 7.299 7.467 7.679 7.521 6.877 6.071 5.632 5.853 6.535 7.152 7.289 6.977 6.626 + 11.768 11.729 11.523 11.022 10.238 9.358 8.649 8.321 8.432 8.884 9.468 9.924 10.021 9.673 9.028 8.443 8.279 8.637 9.225 9.535 9.226 8.427 7.666 7.453 7.839 8.337 8.319 7.560 6.459 5.745 5.881 6.695 7.548 7.881 7.659 7.326 + 9.858 9.475 9.079 9.048 9.394 9.729 9.615 8.969 8.139 7.593 7.496 7.573 7.374 6.683 5.712 4.911 4.595 4.734 5.056 5.333 5.557 5.852 6.254 6.595 6.632 6.292 5.790 5.496 5.663 6.248 6.962 7.488 7.679 7.596 7.409 7.274 + 9.931 10.039 10.052 9.756 9.133 8.397 7.836 7.606 7.645 7.757 7.760 7.564 7.145 6.505 5.689 4.849 4.240 4.095 4.447 5.075 5.644 5.939 6.002 6.038 6.189 6.390 6.457 6.313 6.129 6.205 6.705 7.467 8.110 8.336 8.178 7.950 + 8.175 7.963 7.719 7.632 7.717 7.778 7.579 7.054 6.385 5.863 5.651 5.651 5.600 5.316 4.883 4.600 4.728 5.249 5.852 6.166 6.070 5.792 5.716 6.048 6.618 7.008 6.910 6.410 5.959 6.024 6.702 7.617 8.195 8.115 7.557 7.052 + 7.625 7.622 7.565 7.406 7.152 6.867 6.625 6.452 6.316 6.163 5.977 5.782 5.611 5.472 5.341 5.210 5.113 5.111 5.233 5.424 5.567 5.559 5.403 5.212 5.148 5.311 5.684 6.159 6.616 6.992 7.297 7.572 7.842 8.094 8.293 8.402 + 6.728 7.184 7.834 8.299 8.284 7.741 6.889 6.075 5.565 5.400 5.415 5.411 5.318 5.241 5.335 5.639 6.011 6.229 6.176 5.939 5.737 5.734 5.912 6.102 6.144 6.031 5.900 5.911 6.116 6.444 6.809 7.200 7.679 8.268 8.857 9.236 + 6.108 6.543 7.060 7.249 6.977 6.477 6.122 6.094 6.246 6.245 5.866 5.164 4.426 3.952 3.894 4.228 4.844 5.611 6.379 6.967 7.209 7.069 6.689 6.320 6.144 6.159 6.221 6.218 6.197 6.324 6.703 7.240 7.690 7.853 7.752 7.599 + 10.550 10.774 10.953 10.820 10.380 9.925 9.768 9.952 10.197 10.144 9.645 8.859 8.091 7.567 7.349 7.438 7.883 8.739 9.891 10.974 11.537 11.366 10.696 10.064 9.901 10.183 10.451 10.196 9.291 8.108 7.254 7.148 7.777 8.778 9.704 10.237 + 12.595 12.750 12.762 12.332 11.490 10.629 10.219 10.435 11.024 11.498 11.494 10.991 10.254 9.613 9.275 9.304 9.677 10.317 11.051 11.604 11.712 11.316 10.653 10.129 10.013 10.210 10.314 9.919 8.961 7.794 6.968 6.872 7.515 8.567 9.577 10.176 + 13.067 13.373 13.567 13.203 12.239 11.130 10.491 10.632 11.327 12.007 12.180 11.732 10.921 10.127 9.620 9.490 9.721 10.252 10.950 11.565 11.786 11.407 10.472 9.262 8.110 7.209 6.560 6.091 5.803 5.790 6.108 6.654 7.190 7.502 7.561 7.514 + 13.475 13.842 14.088 13.695 12.618 11.388 10.718 10.944 11.781 12.554 12.700 12.115 11.124 10.181 9.598 9.481 9.826 10.578 11.572 12.457 12.778 12.216 10.825 9.047 7.464 6.476 6.145 6.283 6.666 7.152 7.648 8.026 8.126 7.886 7.451 7.114 + 14.291 14.146 13.901 13.634 13.440 13.381 13.454 13.583 13.654 13.574 13.303 12.860 12.299 11.705 11.209 10.974 11.137 11.696 12.446 13.022 13.075 12.464 11.351 10.114 9.134 8.607 8.497 8.625 8.811 8.957 9.029 9.009 8.873 8.628 8.351 8.165 + 15.061 14.973 14.924 15.062 15.420 15.872 16.202 16.249 16.001 15.575 15.111 14.664 14.201 13.688 13.193 12.893 12.950 13.355 13.856 14.067 13.688 12.696 11.369 10.122 9.276 8.909 8.886 9.000 9.113 9.197 9.268 9.317 9.298 9.182 9.010 8.882 + 15.237 14.649 14.232 14.743 16.171 17.672 18.311 17.887 17.069 16.721 17.054 17.423 16.952 15.419 13.547 12.441 12.655 13.730 14.579 14.348 13.008 11.225 9.726 8.772 8.155 7.600 7.113 6.935 7.220 7.790 8.226 8.189 7.659 6.899 6.231 5.860 + 16.164 15.693 15.416 15.972 17.273 18.514 18.896 18.367 17.660 17.556 18.093 18.479 17.836 16.083 14.129 13.161 13.648 14.942 15.796 15.331 13.614 11.437 9.596 8.363 7.550 6.969 6.745 7.164 8.259 9.584 10.429 10.294 9.210 7.665 6.270 5.472 + 16.545 15.946 15.504 15.959 17.267 18.590 19.079 18.657 18.047 18.000 18.501 18.755 17.980 16.257 14.567 13.964 14.620 15.636 15.794 14.550 12.390 10.286 8.846 7.955 7.169 6.373 5.988 6.517 7.918 9.448 10.172 9.665 8.273 6.749 5.667 5.169 + 16.731 16.043 15.490 15.889 17.219 18.601 19.115 18.643 17.924 17.764 18.217 18.550 18.022 16.689 15.426 15.095 15.686 16.257 15.754 13.941 11.568 9.663 8.652 8.155 7.583 6.878 6.612 7.355 8.952 10.472 10.922 10.045 8.474 7.130 6.475 6.328 + 16.761 16.147 15.660 16.051 17.324 18.681 19.229 18.766 17.924 17.530 17.835 18.327 18.284 17.512 16.524 16.022 16.178 16.429 15.979 14.519 12.497 10.700 9.586 9.003 8.504 7.908 7.523 7.811 8.856 10.155 10.946 10.767 9.746 8.419 7.326 6.746 + 16.673 16.121 15.702 16.117 17.385 18.762 19.359 18.900 17.918 17.249 17.307 17.804 18.122 17.932 17.453 17.141 17.145 17.101 16.449 14.972 13.015 11.193 9.876 8.953 8.083 7.150 6.477 6.552 7.536 9.000 10.130 10.242 9.195 7.431 5.683 4.621 + 16.467 16.048 15.751 16.145 17.270 18.527 19.133 18.740 17.701 16.757 16.458 16.790 17.308 17.577 17.510 17.319 17.175 16.952 16.295 14.966 13.107 11.200 9.723 8.831 8.323 7.908 7.519 7.381 7.780 8.722 9.793 10.352 9.942 8.625 7.002 5.901 + 16.108 15.911 15.859 16.302 17.229 18.192 18.603 18.176 17.142 16.092 15.563 15.724 16.349 17.060 17.591 17.867 17.883 17.561 16.752 15.377 13.576 11.697 10.117 9.049 8.463 8.200 8.142 8.292 8.700 9.304 9.857 10.015 9.554 8.554 7.413 6.659 + 15.693 15.687 15.813 16.188 16.729 17.136 17.063 16.372 15.257 14.161 13.532 13.598 14.304 15.397 16.570 17.552 18.107 18.022 17.154 15.526 13.396 11.211 9.438 8.372 8.035 8.223 8.655 9.110 9.466 9.648 9.564 9.113 8.266 7.158 6.094 5.438 + 14.507 14.630 14.900 15.277 15.587 15.579 15.085 14.166 13.110 12.278 11.916 12.076 12.681 13.638 14.859 16.190 17.320 17.818 17.322 15.763 13.458 10.996 8.979 7.786 7.474 7.839 8.552 9.279 9.757 9.843 9.533 8.958 8.320 7.794 7.462 7.315 + 12.902 13.119 13.389 13.506 13.365 13.022 12.621 12.264 11.932 11.527 11.017 10.543 10.415 10.942 12.219 13.985 15.664 16.596 16.330 14.842 12.554 10.155 8.298 7.345 7.272 7.759 8.399 8.898 9.145 9.165 9.006 8.678 8.175 7.548 6.948 6.574 + 11.928 12.018 12.092 11.987 11.569 10.839 9.974 9.257 8.906 8.915 9.044 9.010 8.756 8.589 9.024 10.391 12.480 14.503 15.479 14.814 12.697 10.024 7.884 6.947 7.148 7.861 8.398 8.443 8.154 7.891 7.844 7.877 7.682 7.098 6.309 5.740 + 12.103 11.986 11.885 11.899 11.926 11.709 11.065 10.092 9.139 8.545 8.355 8.311 8.132 7.866 7.960 8.935 10.888 13.229 14.916 15.069 13.539 11.014 8.593 7.132 6.820 7.230 7.752 8.028 8.088 8.143 8.274 8.302 7.955 7.151 6.160 5.474 + 12.535 12.615 12.819 13.106 13.263 12.989 12.145 10.944 9.895 9.480 9.800 10.491 10.995 11.006 10.738 10.787 11.669 13.375 15.281 16.488 16.362 14.903 12.727 10.692 9.458 9.222 9.755 10.628 11.443 11.947 12.028 11.667 10.933 9.996 9.120 8.588 + 13.937 14.235 14.765 15.374 15.816 15.820 15.229 14.133 12.875 11.897 11.487 11.597 11.904 12.091 12.144 12.420 13.368 15.090 17.093 18.459 18.392 16.747 14.168 11.721 10.284 10.125 10.917 12.092 13.198 14.009 14.389 14.171 13.222 11.661 9.982 8.885 + 14.745 14.440 14.186 14.398 15.176 16.163 16.744 16.467 15.374 13.976 12.895 12.449 12.498 12.679 12.816 13.127 14.018 15.625 17.491 18.719 18.536 16.857 14.397 12.226 11.113 11.132 11.809 12.588 13.200 13.652 13.927 13.786 12.909 11.274 9.397 8.131 + 15.029 14.677 14.327 14.406 15.054 15.971 16.587 16.452 15.546 14.286 13.223 12.665 12.550 12.636 12.839 13.366 14.499 16.183 17.822 18.523 17.694 15.516 12.902 10.928 10.157 10.381 10.940 11.315 11.464 11.647 11.957 12.060 11.427 9.881 7.936 6.575 + 13.655 12.877 12.033 11.928 12.768 13.992 14.746 14.562 13.640 12.551 11.702 11.085 10.506 10.009 10.001 10.907 12.659 14.531 15.539 15.137 13.613 11.871 10.763 10.514 10.681 10.623 10.056 9.246 8.720 8.782 9.241 9.546 9.205 8.160 6.852 5.954 + 13.334 12.839 12.305 12.200 12.551 12.931 12.885 12.359 11.707 11.286 11.081 10.770 10.187 9.682 9.922 11.236 13.099 14.321 13.909 11.918 9.545 8.306 8.908 10.721 12.252 12.255 10.598 8.274 6.613 6.351 7.230 8.318 8.730 8.196 7.145 6.338 + 13.153 12.847 12.488 12.348 12.474 12.664 12.672 12.420 12.021 11.605 11.184 10.713 10.292 10.251 10.931 12.285 13.681 14.188 13.229 11.115 8.973 8.041 8.798 10.595 12.076 12.107 10.535 8.245 6.517 6.159 7.033 8.254 8.861 8.466 7.450 6.625 + 13.240 12.902 12.435 12.119 12.125 12.406 12.727 12.823 12.567 12.040 11.472 11.109 11.092 11.428 12.008 12.640 13.060 12.984 12.250 10.990 9.699 9.033 9.403 10.601 11.801 12.018 10.785 8.551 6.447 5.540 6.097 7.419 8.385 8.305 7.402 6.564 + 13.389 12.898 12.267 11.939 12.128 12.661 13.106 13.096 12.598 11.933 11.522 11.570 11.932 12.270 12.329 12.117 11.812 11.531 11.205 10.707 10.103 9.749 10.047 11.015 12.072 12.328 11.234 9.103 7.010 6.061 6.567 7.805 8.570 8.136 6.820 5.697 + 13.577 13.130 12.555 12.264 12.464 13.007 13.501 13.596 13.251 12.754 12.488 12.622 12.988 13.239 13.152 12.797 12.430 12.202 11.997 11.575 10.900 10.315 10.316 11.068 12.094 12.498 11.648 9.767 7.902 7.190 7.980 9.526 10.558 10.286 9.024 7.902 + 14.220 13.504 12.652 12.343 12.809 13.663 14.255 14.211 13.710 13.273 13.283 13.664 14.000 13.950 13.570 13.235 13.246 13.489 13.498 12.877 11.721 10.632 10.259 10.742 11.520 11.722 10.851 9.218 7.752 7.312 8.024 9.176 9.767 9.272 8.049 7.046 + 14.253 13.685 13.000 12.726 13.056 13.720 14.243 14.344 14.115 13.865 13.788 13.785 13.594 13.097 12.490 12.150 12.306 12.807 13.207 13.115 12.506 11.741 11.270 11.265 11.487 11.473 10.905 9.850 8.708 7.925 7.690 7.854 8.087 8.139 7.998 7.842 + 13.620 12.922 12.083 11.750 12.139 12.914 13.523 13.674 13.488 13.264 13.124 12.910 12.428 11.747 11.232 11.232 11.738 12.351 12.624 12.464 12.215 12.319 12.881 13.511 13.624 12.916 11.618 10.315 9.516 9.320 9.442 9.491 9.262 8.809 8.340 8.052 + 13.470 12.694 11.772 11.442 11.972 12.986 13.825 14.071 13.783 13.294 12.845 12.417 11.900 11.355 11.061 11.268 11.911 12.600 12.929 12.816 12.554 12.514 12.768 13.003 12.798 12.005 10.887 9.904 9.348 9.166 9.093 8.925 8.673 8.475 8.408 8.421 + 13.163 12.532 11.739 11.392 11.827 12.909 14.151 15.034 15.261 14.838 13.972 12.947 12.040 11.474 11.356 11.621 12.040 12.347 12.412 12.317 12.258 12.346 12.475 12.381 11.853 10.902 9.746 8.638 7.697 6.904 6.236 5.776 5.677 5.986 6.517 6.921 + 12.825 12.371 11.816 11.639 12.138 13.249 14.588 15.666 16.134 15.907 15.140 14.107 13.091 12.311 11.893 11.854 12.093 12.423 12.652 12.688 12.571 12.414 12.265 12.011 11.407 10.256 8.593 6.754 5.233 4.414 4.349 4.753 5.199 5.394 5.326 5.195 + 12.567 12.074 11.447 11.193 11.673 12.886 14.469 15.877 16.647 16.582 15.790 14.582 13.328 12.333 11.776 11.689 11.957 12.361 12.665 12.729 12.586 12.380 12.221 12.020 11.493 10.355 8.588 6.577 4.955 4.229 4.444 5.150 5.710 5.734 5.322 4.920 + 12.625 12.046 11.325 11.024 11.449 12.493 13.758 14.841 15.511 15.707 15.430 14.709 13.664 12.578 11.824 11.659 12.033 12.604 12.984 13.005 12.809 12.656 12.643 12.556 12.017 10.788 8.997 7.112 5.665 4.955 4.919 5.237 5.558 5.691 5.651 5.573 + 12.671 12.146 11.505 11.262 11.680 12.633 13.765 14.758 15.461 15.825 15.770 15.194 14.120 12.844 11.854 11.551 11.959 12.697 13.253 13.352 13.107 12.848 12.772 12.730 12.330 11.263 9.581 7.708 6.173 5.295 5.031 5.067 5.069 4.879 4.570 4.338 + 12.471 12.021 11.470 11.260 11.625 12.466 13.473 14.354 14.965 15.267 15.217 14.752 13.884 12.820 11.935 11.576 11.840 12.500 13.160 13.508 13.467 13.147 12.666 12.021 11.114 9.898 8.495 7.167 6.176 5.627 5.436 5.410 5.379 5.276 5.134 5.035 + 12.596 11.777 10.830 10.585 11.369 12.816 14.220 15.097 15.450 15.585 15.711 15.728 15.371 14.520 13.357 12.251 11.528 11.336 11.674 12.445 13.418 14.163 14.148 13.069 11.180 9.293 8.308 8.590 9.680 10.637 10.754 10.064 9.211 8.841 9.050 9.391 + 12.193 11.638 10.961 10.745 11.346 12.664 14.218 15.438 15.996 15.941 15.592 15.278 15.105 14.916 14.448 13.586 12.521 11.688 11.513 12.102 13.102 13.856 13.776 12.722 11.120 9.719 9.135 9.489 10.360 11.106 11.281 10.877 10.229 9.712 9.475 9.427 + 9.554 9.571 9.911 10.856 12.318 13.817 14.803 15.054 14.798 14.475 14.377 14.469 14.517 14.329 13.896 13.316 12.667 11.975 11.307 10.828 10.696 10.864 11.012 10.745 9.943 8.946 8.354 8.587 9.529 10.593 11.135 10.896 10.106 9.230 8.609 8.325 + 10.222 9.597 8.939 8.904 9.622 10.574 11.034 10.669 9.785 9.032 8.872 9.272 9.837 10.193 10.247 10.134 9.991 9.829 9.602 9.354 9.207 9.190 9.104 8.622 7.597 6.290 5.278 5.059 5.676 6.686 7.486 7.736 7.511 7.128 6.844 6.724 + 8.895 8.784 8.621 8.501 8.511 8.676 8.916 9.083 9.041 8.773 8.417 8.197 8.287 8.708 9.319 9.909 10.321 10.515 10.539 10.456 10.286 10.004 9.585 9.030 8.387 7.730 7.157 6.778 6.696 6.964 7.534 8.258 8.947 9.455 9.743 9.858 + 7.223 7.142 7.273 7.884 8.895 9.862 10.314 10.128 9.621 9.281 9.378 9.810 10.274 10.581 10.796 11.106 11.576 12.042 12.259 12.121 11.746 11.334 10.955 10.499 9.830 9.001 8.296 8.049 8.390 9.145 9.976 10.614 10.995 11.209 11.349 11.433 + 6.220 6.184 6.264 6.604 7.172 7.757 8.123 8.175 7.989 7.706 7.424 7.200 7.120 7.327 7.902 8.718 9.428 9.680 9.395 8.865 8.546 8.697 9.178 9.590 9.644 9.412 9.251 9.462 10.023 10.638 11.042 11.270 11.601 12.245 13.077 13.677 + 5.768 6.231 6.884 7.378 7.523 7.380 7.149 6.981 6.874 6.732 6.519 6.348 6.422 6.876 7.664 8.567 9.336 9.829 10.047 10.082 10.022 9.914 9.793 9.723 9.797 10.088 10.600 11.262 11.969 12.642 13.254 13.814 14.329 14.782 15.126 15.313 + 8.293 7.740 7.012 6.597 6.753 7.342 7.950 8.191 7.964 7.490 7.127 7.121 7.480 8.028 8.574 9.031 9.418 9.765 10.035 10.155 10.090 9.915 9.775 9.781 9.933 10.142 10.347 10.611 11.095 11.930 13.069 14.263 15.198 15.694 15.809 15.769 + 6.893 6.522 6.031 5.720 5.726 5.985 6.363 6.809 7.347 7.939 8.393 8.462 8.091 7.553 7.325 7.738 8.694 9.714 10.284 10.241 9.867 9.625 9.780 10.212 10.575 10.628 10.449 10.366 10.689 11.482 12.541 13.566 14.345 14.830 15.083 15.185 + 3.269 3.899 4.757 5.393 5.691 5.915 6.399 7.172 7.887 8.107 7.679 6.872 6.159 5.886 6.092 6.616 7.288 8.014 8.685 9.098 9.031 8.453 7.635 7.016 6.889 7.204 7.670 8.079 8.527 9.303 10.544 11.987 13.106 13.524 13.333 13.018 + 6.338 6.348 6.252 5.994 5.723 5.716 6.124 6.755 7.158 6.949 6.146 5.186 4.612 4.673 5.170 5.664 5.851 5.784 5.771 6.070 6.654 7.232 7.485 7.293 6.789 6.233 5.849 5.748 5.951 6.424 7.091 7.813 8.427 8.815 8.977 9.011 + 7.201 6.644 5.893 5.439 5.580 6.236 7.005 7.423 7.247 6.585 5.806 5.297 5.250 5.579 6.028 6.348 6.442 6.385 6.332 6.387 6.528 6.635 6.575 6.302 5.880 5.441 5.104 4.916 4.859 4.896 5.020 5.259 5.637 6.112 6.567 6.848 + 6.774 6.449 6.102 6.068 6.405 6.835 6.974 6.653 6.047 5.527 5.361 5.557 5.929 6.306 6.665 7.078 7.543 7.915 7.996 7.723 7.253 6.854 6.683 6.651 6.507 6.062 5.390 4.805 4.659 5.090 5.927 6.798 7.366 7.511 7.369 7.199 + 5.954 6.694 7.706 8.426 8.610 8.452 8.333 8.480 8.826 9.163 9.368 9.477 9.567 9.628 9.596 9.503 9.548 9.940 10.646 11.313 11.503 11.056 10.252 9.578 9.301 9.268 9.126 8.770 8.549 8.981 10.207 11.701 12.595 12.371 11.340 10.427 + 6.956 7.463 8.360 9.415 10.326 10.833 10.855 10.553 10.234 10.158 10.362 10.647 10.751 10.568 10.248 10.087 10.300 10.839 11.416 11.710 11.589 11.184 10.767 10.546 10.541 10.639 10.760 10.970 11.432 12.233 13.235 14.096 14.475 14.279 13.749 13.319 + 9.435 8.631 7.839 7.941 9.094 10.596 11.519 11.482 10.860 10.303 10.090 9.963 9.561 8.950 8.662 9.182 10.384 11.521 11.810 11.103 9.997 9.313 9.427 10.058 10.670 11.015 11.290 11.796 12.505 13.018 12.978 12.485 12.067 12.197 12.821 13.396 + 13.349 13.027 12.794 13.044 13.724 14.334 14.373 13.778 12.959 12.386 12.182 12.098 11.885 11.636 11.721 12.358 13.275 13.836 13.574 12.623 11.629 11.194 11.373 11.687 11.624 11.136 10.650 10.594 10.932 11.168 10.827 9.927 8.982 8.526 8.634 8.903 + 13.341 13.077 12.912 13.204 13.914 14.578 14.671 14.042 13.024 12.151 11.738 11.721 11.842 11.975 12.228 12.749 13.447 13.947 13.869 13.177 12.272 11.702 11.727 12.095 12.244 11.729 10.543 9.089 7.861 7.124 6.814 6.684 6.522 6.273 6.009 5.841 + 12.635 12.422 12.211 12.249 12.587 13.009 13.164 12.819 12.031 11.125 10.491 10.364 10.715 11.314 11.890 12.262 12.379 12.283 12.054 11.783 11.559 11.439 11.411 11.357 11.095 10.473 9.484 8.300 7.207 6.454 6.128 6.128 6.256 6.346 6.350 6.319 + 12.258 12.339 12.278 11.880 11.200 10.511 10.036 9.722 9.322 8.697 8.037 7.749 8.080 8.849 9.549 9.769 9.536 9.259 9.342 9.814 10.336 10.542 10.363 10.024 9.738 9.437 8.849 7.845 6.698 5.946 5.941 6.516 7.097 7.190 6.798 6.377 + 12.418 12.360 12.133 11.686 11.160 10.764 10.528 10.192 9.439 8.277 7.191 6.827 7.459 8.696 9.758 10.096 9.805 9.475 9.611 10.181 10.702 10.746 10.345 9.900 9.699 9.565 9.038 7.910 6.581 5.809 6.037 6.936 7.631 7.449 6.526 5.685 + 12.100 12.167 12.139 11.877 11.435 10.991 10.625 10.186 9.443 8.398 7.440 7.121 7.704 8.883 9.970 10.418 10.229 9.895 9.924 10.391 10.904 10.998 10.555 9.863 9.294 8.928 8.522 7.815 6.868 6.062 5.770 6.005 6.409 6.584 6.440 6.227 + 11.940 12.153 12.283 12.046 11.463 10.834 10.410 10.126 9.675 8.894 8.042 7.664 8.114 9.176 10.176 10.519 10.185 9.725 9.755 10.392 11.151 11.364 10.752 9.626 8.579 7.974 7.709 7.419 6.881 6.219 5.754 5.679 5.901 6.167 6.305 6.331 + 12.741 12.471 12.207 12.238 12.597 13.013 13.123 12.747 11.993 11.143 10.464 10.136 10.269 10.921 12.020 13.266 14.192 14.420 13.942 13.139 12.482 12.133 11.810 11.075 9.804 8.392 7.481 7.429 7.985 8.495 8.457 7.938 7.467 7.514 8.041 8.546 + 13.382 12.738 12.151 12.352 13.393 14.557 14.975 14.349 13.139 12.075 11.523 11.298 11.062 10.837 11.067 12.151 13.912 15.565 16.277 15.811 14.668 13.614 13.026 12.670 12.063 11.028 9.895 9.175 9.057 9.231 9.185 8.668 7.867 7.175 6.814 6.715 + 13.438 12.696 12.005 12.223 13.474 14.993 15.740 15.231 13.863 12.494 11.708 11.440 11.248 10.898 10.674 11.109 12.418 14.187 15.610 16.082 15.594 14.642 13.754 13.096 12.475 11.667 10.716 9.928 9.592 9.711 9.986 10.046 9.706 9.061 8.384 7.962 + 13.342 12.796 12.314 12.573 13.696 15.088 15.862 15.503 14.225 12.749 11.734 11.329 11.215 11.028 10.757 10.770 11.454 12.819 14.404 15.562 15.891 15.440 14.582 13.687 12.885 12.109 11.306 10.599 10.238 10.366 10.833 11.229 11.150 10.493 9.567 8.902 + 13.228 12.939 12.760 13.130 14.105 15.229 15.818 15.445 14.247 12.824 11.802 11.411 11.409 11.381 11.144 10.927 11.159 12.074 13.449 14.720 15.360 15.219 14.555 13.762 13.047 12.348 11.532 10.659 10.030 9.954 10.422 11.022 11.197 10.686 9.756 9.036 + 13.076 13.005 13.073 13.481 14.169 14.767 14.812 14.088 12.820 11.540 10.720 10.449 10.411 10.199 9.701 9.251 9.372 10.336 11.884 13.362 14.169 14.162 13.687 13.227 12.993 12.811 12.387 11.690 11.061 10.932 11.391 12.012 12.149 11.473 10.301 9.399 + 11.469 11.496 11.726 12.309 13.131 13.777 13.755 12.842 11.287 9.694 8.634 8.270 8.289 8.197 7.761 7.231 7.156 7.928 9.427 11.055 12.143 12.412 12.103 11.713 11.567 11.604 11.544 11.225 10.805 10.607 10.778 11.091 11.109 10.579 9.707 9.040 + 10.456 10.616 11.041 11.733 12.413 12.614 12.025 10.777 9.403 8.477 8.217 8.387 8.571 8.534 8.379 8.378 8.683 9.197 9.705 10.099 10.455 10.900 11.406 11.758 11.725 11.276 10.628 10.066 9.729 9.537 9.335 9.081 8.885 8.877 9.039 9.203 + 6.942 6.984 7.160 7.522 7.965 8.254 8.197 7.806 7.294 6.909 6.752 6.743 6.745 6.723 6.770 6.994 7.383 7.798 8.099 8.280 8.465 8.764 9.121 9.318 9.138 8.552 7.764 7.073 6.676 6.578 6.658 6.805 6.989 7.221 7.467 7.633 + 4.516 4.991 5.673 6.254 6.617 6.838 6.981 6.924 6.423 5.387 4.086 3.054 2.739 3.182 4.020 4.793 5.284 5.590 5.899 6.232 6.396 6.205 5.702 5.171 4.897 4.935 5.102 5.205 5.254 5.437 5.886 6.465 6.840 6.768 6.348 5.966 + 5.920 5.605 5.358 5.588 6.339 7.206 7.632 7.339 6.515 5.635 5.095 4.972 5.087 5.253 5.460 5.822 6.390 7.029 7.511 7.708 7.713 7.741 7.911 8.111 8.081 7.654 6.945 6.313 6.132 6.526 7.295 8.045 8.442 8.403 8.106 7.848 + 7.589 7.612 7.821 8.335 9.039 9.591 9.668 9.227 8.566 8.105 8.088 8.453 8.944 9.367 9.726 10.154 10.723 11.337 11.813 12.060 12.184 12.387 12.767 13.182 13.338 13.011 12.252 11.379 10.778 10.662 10.950 11.357 11.596 11.554 11.329 11.136 + 8.334 8.548 9.111 10.058 11.104 11.727 11.525 10.560 9.371 8.607 8.582 9.107 9.723 10.113 10.319 10.602 11.112 11.696 12.028 11.938 11.612 11.471 11.812 12.531 13.164 13.240 12.645 11.722 11.023 10.919 11.358 11.937 12.211 12.001 11.496 11.089 + 11.622 12.038 12.746 13.514 14.055 14.107 13.544 12.442 11.067 9.766 8.805 8.257 8.013 7.904 7.855 7.951 8.355 9.156 10.252 11.373 12.225 12.642 12.635 12.323 11.828 11.235 10.644 10.214 10.120 10.406 10.870 11.115 10.786 9.846 8.672 7.862 + 13.201 13.320 13.735 14.555 15.580 16.306 16.241 15.268 13.770 12.379 11.546 11.266 11.172 10.910 10.466 10.173 10.408 11.235 12.302 13.074 13.205 12.740 12.006 11.321 10.790 10.368 10.077 10.141 10.839 12.156 13.568 14.204 13.380 11.153 8.449 6.611 + 13.174 12.964 13.015 13.773 15.142 16.425 16.819 16.044 14.554 13.165 12.428 12.271 12.217 11.916 11.509 11.500 12.257 13.618 14.932 15.515 15.106 13.982 12.653 11.467 10.452 9.502 8.678 8.297 8.696 9.863 11.261 12.053 11.614 9.984 7.923 6.508 + 12.555 12.300 12.295 13.042 14.483 15.921 16.501 15.859 14.390 12.905 12.004 11.689 11.534 11.201 10.825 10.900 11.784 13.269 14.629 15.110 14.469 13.112 11.736 10.791 10.217 9.648 8.866 8.089 7.818 8.370 9.504 10.469 10.508 9.422 7.781 6.581 + 10.947 10.880 11.243 12.429 14.153 15.502 15.629 14.468 12.780 11.508 11.011 10.900 10.586 9.972 9.604 10.110 11.485 12.926 13.419 12.582 10.985 9.661 9.252 9.514 9.632 8.997 7.780 6.800 6.841 8.003 9.604 10.664 10.556 9.370 7.805 6.733 + 10.685 10.628 10.608 10.677 10.729 10.552 10.009 9.190 8.367 7.780 7.462 7.257 7.014 6.764 6.693 6.936 7.401 7.804 7.899 7.689 7.409 7.296 7.358 7.365 7.074 6.481 5.856 5.542 5.683 6.123 6.555 6.760 6.728 6.599 6.498 6.458 + 9.491 9.219 8.920 8.847 9.007 9.138 8.933 8.315 7.509 6.852 6.521 6.419 6.314 6.067 5.765 5.632 5.839 6.377 7.087 7.772 8.278 8.496 8.350 7.842 7.136 6.554 6.433 6.890 7.709 8.446 8.722 8.454 7.868 7.291 6.924 6.774 + 7.866 7.750 7.792 8.268 9.159 10.106 10.663 10.641 10.251 9.916 9.912 10.152 10.285 10.028 9.459 9.012 9.186 10.175 11.701 13.158 13.955 13.815 12.873 11.549 10.315 9.504 9.232 9.421 9.868 10.321 10.560 10.455 10.010 9.363 8.737 8.354 + 10.402 10.475 10.661 10.983 11.374 11.692 11.801 11.675 11.418 11.184 11.044 10.931 10.717 10.369 10.064 10.126 10.808 12.063 13.496 14.547 14.804 14.230 13.146 11.996 11.096 10.528 10.234 10.175 10.384 10.867 11.459 11.820 11.629 10.843 9.806 9.077 + 13.699 12.910 11.778 10.859 10.435 10.405 10.508 10.613 10.800 11.183 11.689 12.059 12.093 11.893 11.836 12.270 13.176 14.123 14.560 14.211 13.240 12.069 11.048 10.267 9.645 9.147 8.903 9.078 9.665 10.387 10.842 10.752 10.133 9.250 8.445 7.980 + 12.263 11.507 10.390 9.423 8.918 8.880 9.152 9.635 10.352 11.319 12.389 13.266 13.699 13.690 13.497 13.422 13.566 13.764 13.759 13.436 12.910 12.403 12.058 11.857 11.715 11.615 11.638 11.845 12.167 12.410 12.411 12.187 11.921 11.802 11.861 11.962 + 11.455 10.686 9.718 9.184 9.249 9.556 9.666 9.551 9.632 10.345 11.654 13.007 13.770 13.717 13.148 12.552 12.192 12.008 11.863 11.795 11.951 12.301 12.476 12.032 10.926 9.727 9.263 9.927 11.278 12.344 12.413 11.615 10.764 10.604 11.159 11.766 + 14.673 14.464 14.085 13.542 12.787 11.827 10.870 10.318 10.527 11.485 12.715 13.542 13.553 12.880 12.057 11.581 11.555 11.709 11.730 11.575 11.448 11.507 11.616 11.430 10.747 9.781 9.065 9.030 9.637 10.393 10.751 10.523 9.960 9.469 9.255 9.231 + 14.773 14.116 13.068 11.978 11.090 10.487 10.180 10.192 10.529 11.097 11.698 12.161 12.482 12.797 13.176 13.459 13.346 12.729 11.940 11.590 12.052 13.015 13.604 13.064 11.489 9.894 9.492 10.694 12.699 14.067 13.832 12.223 10.395 9.431 9.501 9.908 + 10.770 10.189 9.442 9.027 9.151 9.648 10.211 10.674 11.099 11.609 12.210 12.782 13.214 13.493 13.624 13.525 13.067 12.316 11.685 11.739 12.689 14.020 14.717 14.046 12.280 10.672 10.544 12.182 14.477 15.717 14.917 12.588 10.281 9.298 9.693 10.412 + 10.860 10.978 10.942 10.503 9.751 9.127 9.099 9.772 10.792 11.627 11.996 12.058 12.199 12.608 13.040 13.014 12.282 11.167 10.411 10.626 11.754 13.025 13.486 12.718 11.197 9.978 9.943 11.162 12.845 13.907 13.708 12.419 10.786 9.541 8.945 8.791 + 11.652 12.304 12.931 12.787 11.744 10.449 9.823 10.340 11.682 13.047 13.782 13.799 13.466 13.151 12.875 12.390 11.546 10.567 9.936 9.995 10.606 11.206 11.208 10.432 9.235 8.265 8.042 8.671 9.827 10.964 11.582 11.407 10.469 9.077 7.716 6.880 + 13.849 13.732 13.478 13.124 12.829 12.800 13.124 13.655 14.085 14.163 13.882 13.474 13.186 13.048 12.834 12.262 11.282 10.185 9.434 9.334 9.794 10.361 10.517 10.004 8.977 7.889 7.219 7.214 7.787 8.583 9.159 9.175 8.541 7.457 6.335 5.627 + 13.309 12.985 12.707 12.897 13.674 14.753 15.681 16.192 16.362 16.465 16.668 16.857 16.719 16.016 14.787 13.335 12.028 11.091 10.530 10.202 9.922 9.536 8.953 8.174 7.333 6.680 6.475 6.812 7.516 8.199 8.471 8.153 7.356 6.384 5.557 5.095 + 12.890 12.802 12.786 13.071 13.810 14.929 16.103 16.915 17.134 16.891 16.587 16.554 16.739 16.713 16.041 14.726 13.328 12.591 12.836 13.611 13.932 12.965 10.639 7.738 5.397 4.418 4.870 6.196 7.638 8.622 8.880 8.379 7.232 5.706 4.237 3.329 + 12.706 12.462 12.285 12.575 13.518 14.904 16.210 16.922 16.883 16.413 16.070 16.218 16.714 16.996 16.527 15.272 13.796 12.879 12.909 13.534 13.854 13.046 10.956 8.230 5.915 4.833 5.157 6.420 7.872 8.867 9.073 8.469 7.253 5.762 4.413 3.611 + 12.558 12.207 11.940 12.286 13.433 15.042 16.439 17.071 16.877 16.306 15.965 16.160 16.677 16.964 16.577 15.540 14.344 13.571 13.440 13.613 13.413 12.311 10.310 7.989 6.162 5.429 5.873 7.090 8.442 9.366 9.552 8.983 7.858 6.510 5.321 4.626 + 12.711 12.325 12.068 12.514 13.788 15.413 16.657 17.059 16.729 16.192 15.958 16.170 16.587 16.843 16.726 16.279 15.699 15.159 14.696 14.199 13.457 12.256 10.526 8.479 6.641 5.659 5.929 7.277 8.960 10.057 10.010 8.929 7.441 6.209 5.529 5.293 + 12.955 12.412 12.009 12.475 13.901 15.622 16.759 16.917 16.420 15.941 15.902 16.215 16.523 16.619 16.609 16.676 16.762 16.536 15.694 14.270 12.621 11.089 9.703 8.263 6.720 5.453 5.081 5.921 7.571 9.076 9.554 8.804 7.360 6.000 5.177 4.864 + 12.367 11.898 11.572 12.058 13.467 15.199 16.397 16.586 15.988 15.270 15.004 15.298 15.858 16.327 16.549 16.554 16.358 15.845 14.868 13.428 11.742 10.094 8.639 7.365 6.250 5.441 5.233 5.817 7.015 8.277 8.954 8.684 7.576 6.093 4.777 4.026 + 11.739 11.327 11.073 11.613 13.063 14.864 16.171 16.460 15.856 14.972 14.429 14.484 14.995 15.654 16.220 16.556 16.541 16.020 14.900 13.273 11.429 9.701 8.278 7.170 6.345 5.883 5.962 6.672 7.820 8.939 9.528 9.345 8.522 7.445 6.518 6.002 + 11.910 11.474 11.259 11.955 13.606 15.491 16.670 16.696 15.884 14.965 14.501 14.576 14.965 15.484 16.113 16.802 17.241 16.931 15.570 13.380 11.036 9.195 8.057 7.353 6.751 6.271 6.281 7.074 8.442 9.690 10.100 9.459 8.161 6.859 5.989 5.608 + 11.914 11.547 11.404 12.101 13.669 15.443 16.559 16.598 15.834 14.938 14.453 14.514 14.963 15.633 16.438 17.223 17.618 17.165 15.675 13.476 11.251 9.574 8.540 7.841 7.193 6.699 6.755 7.591 8.890 9.903 9.982 9.081 7.756 6.686 6.175 6.057 + 11.633 11.242 11.065 11.739 13.307 15.105 16.255 16.312 15.530 14.566 13.970 13.906 14.263 14.916 15.798 16.734 17.301 16.994 15.604 13.474 11.321 9.725 8.745 8.007 7.186 6.411 6.171 6.818 8.112 9.289 9.597 8.854 7.523 6.291 5.554 5.278 + 11.286 10.870 10.687 11.414 13.088 14.987 16.164 16.147 15.218 14.095 13.377 13.251 13.620 14.376 15.461 16.673 17.519 17.390 16.016 13.750 11.390 9.616 8.541 7.788 6.991 6.234 5.980 6.555 7.703 8.662 8.741 7.862 6.584 5.598 5.189 5.144 + 11.323 11.090 11.139 11.981 13.570 15.234 16.159 15.987 15.025 13.940 13.258 13.131 13.478 14.245 15.428 16.854 18.007 18.202 17.056 14.837 12.351 10.403 9.278 8.693 8.199 7.658 7.323 7.493 8.110 8.709 8.785 8.216 7.336 6.620 6.291 6.229 + 11.319 11.134 11.262 12.174 13.773 15.360 16.153 15.878 14.909 13.892 13.242 13.002 13.086 13.572 14.642 16.215 17.699 18.227 17.263 15.062 12.523 10.549 9.435 8.835 8.276 7.689 7.451 7.910 8.900 9.753 9.817 8.996 7.801 6.887 6.520 6.493 + 10.928 10.793 10.949 11.808 13.297 14.812 15.628 15.425 14.473 13.362 12.565 12.228 12.300 12.775 13.736 15.140 16.600 17.454 17.137 15.573 13.236 10.838 8.923 7.674 7.047 6.991 7.492 8.420 9.393 9.888 9.575 8.571 7.371 6.484 6.088 6.008 + 10.622 10.535 10.794 11.794 13.399 14.913 15.568 15.096 13.895 12.674 11.932 11.731 11.901 12.384 13.314 14.758 16.392 17.509 17.421 15.945 13.542 11.016 9.017 7.773 7.191 7.131 7.538 8.327 9.218 9.760 9.602 8.761 7.617 6.639 6.067 5.850 + 11.135 11.079 11.410 12.496 14.112 15.474 15.832 15.073 13.787 12.744 12.307 12.293 12.385 12.592 13.270 14.665 16.449 17.763 17.784 16.327 13.951 11.505 9.559 8.215 7.382 7.102 7.546 8.663 9.920 10.515 9.956 8.495 6.963 6.117 6.070 6.315 + 11.262 11.320 11.744 12.757 14.110 15.147 15.291 14.517 13.366 12.491 12.159 12.172 12.235 12.372 12.941 14.219 15.967 17.417 17.748 16.643 14.471 11.985 9.845 8.380 7.687 7.813 8.737 10.166 11.441 11.804 10.903 9.093 7.230 6.054 5.706 5.762 + 11.055 11.107 11.506 12.455 13.698 14.585 14.561 13.637 12.398 11.525 11.275 11.379 11.447 11.455 11.819 12.983 14.874 16.760 17.666 17.022 15.021 12.452 10.187 8.763 8.286 8.595 9.412 10.369 11.012 10.934 10.025 8.607 7.270 6.483 6.288 6.358 + 10.388 10.710 11.456 12.600 13.798 14.496 14.300 13.303 12.046 11.133 10.810 10.876 10.995 11.092 11.474 12.528 14.277 16.176 17.360 17.156 15.493 12.931 10.347 8.509 7.806 8.179 9.219 10.326 10.914 10.644 9.591 8.217 7.111 6.625 6.678 6.879 + 10.639 11.198 12.121 13.075 13.698 13.741 13.195 12.299 11.417 10.837 10.618 10.607 10.618 10.649 10.942 11.813 13.340 15.155 16.512 16.675 15.356 12.949 10.354 8.505 7.899 8.403 9.434 10.343 10.743 10.584 10.018 9.216 8.288 7.332 6.505 6.015 + 8.895 9.007 9.190 9.367 9.440 9.309 8.926 8.353 7.769 7.407 7.404 7.692 8.043 8.271 8.458 8.961 10.136 11.935 13.732 14.593 13.869 11.687 8.939 6.737 5.733 5.803 6.321 6.729 6.916 7.111 7.455 7.708 7.410 6.350 4.902 3.855 + 8.330 8.481 8.599 8.472 8.053 7.508 7.104 7.020 7.238 7.585 7.871 8.010 8.053 8.133 8.391 8.927 9.752 10.766 11.747 12.415 12.551 12.125 11.325 10.454 9.760 9.328 9.103 9.003 9.004 9.122 9.308 9.412 9.255 8.788 8.184 7.759 + 9.480 9.007 8.400 8.015 7.906 7.810 7.455 6.879 6.436 6.476 6.986 7.565 7.767 7.512 7.189 7.348 8.236 9.580 10.773 11.291 10.996 10.119 9.018 7.965 7.105 6.539 6.363 6.595 7.097 7.611 7.928 8.041 8.125 8.348 8.691 8.959 + 9.336 8.723 7.996 7.699 7.930 8.270 8.188 7.533 6.677 6.170 6.260 6.706 7.049 7.056 6.930 7.097 7.785 8.787 9.597 9.775 9.219 8.157 6.939 5.864 5.142 4.942 5.357 6.295 7.419 8.280 8.591 8.425 8.137 8.059 8.238 8.449 + 8.460 8.537 8.676 8.845 8.995 9.082 9.088 9.039 8.993 9.009 9.103 9.246 9.387 9.507 9.643 9.871 10.242 10.724 11.197 11.512 11.578 11.414 11.126 10.834 10.601 10.421 10.265 10.133 10.063 10.083 10.156 10.177 10.038 9.721 9.339 9.078 + 7.809 8.458 9.461 10.409 11.024 11.293 11.420 11.648 12.075 12.590 12.953 12.960 12.580 11.987 11.482 11.331 11.632 12.255 12.914 13.324 13.360 13.109 12.793 12.599 12.556 12.537 12.388 12.086 11.768 11.639 11.794 12.144 12.476 12.623 12.584 12.497 + 8.783 9.170 9.828 10.560 11.158 11.496 11.588 11.561 11.540 11.530 11.400 11.003 10.344 9.656 9.298 9.533 10.341 11.417 12.341 12.817 12.802 12.472 12.085 11.837 11.800 11.924 12.069 12.066 11.789 11.259 10.685 10.395 10.650 11.439 12.422 13.097 + 10.514 10.562 10.531 10.280 9.788 9.233 8.925 9.134 9.897 10.951 11.836 12.146 11.773 11.002 10.374 10.392 11.229 12.618 13.981 14.735 14.595 13.705 12.543 11.650 11.343 11.570 11.969 12.099 11.706 10.878 10.008 9.573 9.856 10.771 11.881 12.629 + 10.006 9.699 9.326 9.158 9.286 9.586 9.887 10.158 10.512 11.032 11.592 11.891 11.705 11.142 10.655 10.766 11.689 13.159 14.582 15.399 15.384 14.696 13.695 12.713 11.918 11.321 10.848 10.401 9.902 9.336 8.796 8.466 8.515 8.949 9.554 9.985 + 11.056 10.324 9.413 8.973 9.241 9.915 10.487 10.703 10.725 10.887 11.310 11.766 11.919 11.690 11.389 11.473 12.150 13.193 14.116 14.541 14.429 14.008 13.515 13.015 12.442 11.768 11.090 10.554 10.200 9.917 9.564 9.124 8.728 8.525 8.528 8.600 + 11.987 11.051 9.721 8.761 8.702 9.538 10.761 11.715 12.030 11.818 11.506 11.447 11.641 11.811 11.751 11.617 11.855 12.783 14.187 15.336 15.464 14.363 12.590 11.083 10.486 10.725 11.165 11.184 10.661 9.968 9.559 9.534 9.608 9.446 9.026 8.657 + 9.216 9.000 8.775 8.800 9.186 9.797 10.345 10.606 10.602 10.571 10.744 11.108 11.391 11.326 10.976 10.794 11.295 12.550 13.969 14.627 13.968 12.308 10.687 10.120 10.811 12.002 12.594 12.039 10.750 9.702 9.577 10.197 10.749 10.556 9.698 8.918 + 9.574 9.753 9.889 9.731 9.241 8.655 8.334 8.504 9.094 9.771 10.160 10.071 9.626 9.193 9.199 9.900 11.208 12.686 13.727 13.868 13.066 11.764 10.643 10.208 10.476 11.000 11.220 10.884 10.206 9.652 9.535 9.771 9.985 9.870 9.464 9.103 + 11.972 12.289 12.323 11.469 9.770 8.017 7.179 7.655 8.964 10.128 10.412 9.807 8.935 8.527 8.927 9.977 11.240 12.287 12.839 12.760 12.052 10.908 9.720 8.936 8.790 9.143 9.582 9.744 9.580 9.336 9.264 9.366 9.394 9.129 8.634 8.235 + 8.840 8.762 8.638 8.513 8.426 8.397 8.435 8.550 8.764 9.091 9.495 9.878 10.126 10.202 10.221 10.408 10.943 11.784 12.616 13.011 12.702 11.777 10.643 9.759 9.356 9.339 9.448 9.511 9.558 9.719 10.001 10.191 9.995 9.314 8.406 7.758 + 9.368 9.338 9.140 8.675 8.059 7.602 7.597 8.089 8.835 9.487 9.835 9.912 9.916 10.053 10.428 11.048 11.848 12.674 13.257 13.286 12.601 11.375 10.102 9.323 9.275 9.730 10.187 10.266 9.973 9.627 9.531 9.685 9.817 9.673 9.282 8.943 + 10.211 9.487 8.575 8.086 8.196 8.559 8.682 8.408 8.041 8.016 8.446 8.994 9.204 8.983 8.758 9.131 10.325 11.894 12.997 12.998 11.922 10.399 9.176 8.610 8.528 8.513 8.318 8.055 8.043 8.484 9.251 9.962 10.250 10.020 9.504 9.099 + 10.079 9.090 7.892 7.387 7.847 8.746 9.267 9.035 8.399 8.055 8.370 9.050 9.437 9.157 8.506 8.222 8.839 10.194 11.504 11.949 11.272 9.912 8.620 7.911 7.789 7.904 7.943 7.885 7.949 8.317 8.920 9.450 9.592 9.265 8.693 8.262 + 10.407 9.938 9.189 8.396 7.703 7.168 6.879 7.002 7.661 8.712 9.682 10.009 9.477 8.475 7.827 8.227 9.710 11.553 12.735 12.617 11.337 9.650 8.366 7.825 7.794 7.787 7.517 7.101 6.911 7.212 7.925 8.667 9.029 8.866 8.386 7.992 + 9.474 9.597 9.793 9.956 9.956 9.734 9.388 9.142 9.174 9.430 9.601 9.356 8.667 7.953 7.858 8.779 10.493 12.203 13.018 12.536 11.102 9.547 8.603 8.441 8.643 8.614 8.071 7.259 6.728 6.898 7.728 8.749 9.401 9.421 8.999 8.600 + 10.083 10.154 10.299 10.514 10.764 10.979 11.059 10.925 10.558 10.007 9.351 8.658 8.001 7.528 7.478 8.070 9.276 10.669 11.539 11.317 10.017 8.341 7.262 7.340 8.283 9.154 9.105 8.074 6.860 6.480 7.307 8.740 9.670 9.398 8.223 7.183 + 6.213 6.533 7.001 7.422 7.722 7.933 8.063 7.999 7.592 6.831 5.934 5.235 4.950 5.065 5.420 5.898 6.472 7.072 7.440 7.212 6.255 4.941 4.020 4.085 5.035 6.061 6.246 5.340 4.012 3.325 3.832 5.084 6.002 5.810 4.714 3.714 + 8.347 8.228 8.071 7.956 7.890 7.810 7.670 7.507 7.411 7.419 7.437 7.290 6.876 6.296 5.820 5.709 6.005 6.478 6.772 6.651 6.138 5.472 4.914 4.573 4.383 4.219 4.035 3.906 3.944 4.166 4.447 4.576 4.406 3.955 3.418 3.058 + 7.725 7.009 6.205 6.009 6.578 7.429 7.905 7.756 7.292 7.003 7.062 7.188 7.002 6.467 5.977 5.966 6.443 6.919 6.812 5.977 4.849 4.078 3.990 4.358 4.674 4.627 4.341 4.193 4.415 4.884 5.259 5.304 5.066 4.770 4.590 4.532 + 5.923 5.784 5.523 5.187 4.867 4.686 4.748 5.068 5.537 5.956 6.160 6.131 6.024 6.051 6.293 6.613 6.734 6.465 5.870 5.246 4.896 4.892 5.016 4.956 4.583 4.076 3.783 3.933 4.438 4.961 5.180 5.019 4.662 4.361 4.235 4.223 + 5.450 5.255 5.044 5.026 5.282 5.700 6.069 6.221 6.134 5.909 5.690 5.588 5.658 5.909 6.302 6.732 7.043 7.097 6.858 6.424 5.960 5.583 5.288 4.993 4.645 4.306 4.108 4.133 4.328 4.525 4.573 4.454 4.275 4.165 4.163 4.201 + 5.176 5.039 4.934 5.044 5.393 5.795 5.981 5.801 5.350 4.914 4.782 5.063 5.641 6.276 6.760 7.017 7.080 7.003 6.796 6.431 5.906 5.296 4.738 4.363 4.227 4.288 4.449 4.618 4.747 4.818 4.819 4.729 4.532 4.257 3.982 3.808 + 6.493 6.711 7.184 7.904 8.742 9.490 9.978 10.180 10.197 10.140 10.052 9.925 9.800 9.817 10.124 10.718 11.373 11.758 11.666 11.172 10.567 10.126 9.909 9.749 9.439 8.912 8.274 7.672 7.153 6.661 6.168 5.780 5.678 5.947 6.432 6.807 + 10.799 10.277 9.752 9.826 10.695 12.006 13.145 13.689 13.625 13.213 12.703 12.193 11.727 11.457 11.628 12.349 13.388 14.230 14.411 13.868 12.996 12.348 12.237 12.555 12.914 12.966 12.597 11.895 11.000 10.032 9.141 8.562 8.528 9.073 9.901 10.510 + 12.147 11.534 10.752 10.346 10.561 11.214 11.907 12.365 12.595 12.760 12.936 13.018 12.880 12.593 12.480 12.870 13.773 14.763 15.217 14.774 13.623 12.408 11.785 11.975 12.640 13.152 13.044 12.307 11.348 10.680 10.598 11.042 11.717 12.316 12.689 12.846 + 12.923 13.035 13.192 13.267 13.127 12.728 12.201 11.828 11.873 12.371 13.058 13.512 13.452 12.956 12.434 12.339 12.844 13.724 14.512 14.828 14.603 14.077 13.575 13.287 13.188 13.134 13.027 12.898 12.857 12.991 13.278 13.612 13.870 13.996 14.014 13.995 + 14.757 14.943 15.054 14.831 14.289 13.737 13.513 13.695 14.041 14.210 14.038 13.643 13.267 13.075 13.077 13.236 13.579 14.164 14.930 15.601 15.818 15.407 14.544 13.648 13.066 12.837 12.750 12.619 12.507 12.660 13.222 14.012 14.616 14.723 14.408 14.069 + 15.428 14.685 13.597 12.680 12.222 12.132 12.088 11.850 11.469 11.237 11.420 12.015 12.726 13.200 13.303 13.206 13.219 13.502 13.928 14.197 14.116 13.768 13.425 13.280 13.243 13.022 12.431 11.652 11.181 11.466 12.499 13.741 14.474 14.330 13.577 12.912 + 12.567 11.960 11.065 10.309 9.948 9.919 9.939 9.765 9.431 9.260 9.634 10.679 12.124 13.444 14.209 14.345 14.134 13.952 13.974 14.094 14.097 13.900 13.624 13.443 13.364 13.188 12.710 11.983 11.368 11.284 11.839 12.678 13.225 13.127 12.546 12.021 + 11.078 10.267 9.133 8.334 8.280 8.898 9.724 10.257 10.301 10.081 10.055 10.580 11.674 13.026 14.216 14.968 15.259 15.250 15.116 14.942 14.728 14.453 14.116 13.718 13.225 12.597 11.876 11.240 10.943 11.143 11.739 12.383 12.679 12.465 11.933 11.500 + 8.187 7.451 6.543 6.236 7.022 8.771 10.772 12.137 12.338 11.520 10.400 9.805 10.176 11.366 12.828 14.022 14.712 14.988 15.045 14.979 14.755 14.343 13.825 13.369 13.070 12.855 12.552 12.081 11.570 11.279 11.367 11.746 12.130 12.272 12.162 12.005 + 8.911 8.069 6.971 6.436 7.010 8.609 10.544 11.917 12.164 11.383 10.241 9.524 9.664 10.562 11.792 12.967 13.953 14.787 15.442 15.710 15.360 14.408 13.237 12.391 12.192 12.496 12.819 12.729 12.179 11.519 11.184 11.357 11.873 12.410 12.756 12.893 + 8.898 7.539 5.875 5.230 6.233 8.389 10.481 11.444 11.051 9.931 9.013 8.877 9.504 10.507 11.556 12.577 13.633 14.649 15.321 15.310 14.562 13.434 12.510 12.204 12.483 12.922 13.038 12.641 11.946 11.380 11.261 11.598 12.143 12.608 12.861 12.944 + 8.498 8.026 7.436 7.224 7.714 8.819 10.052 10.787 10.646 9.758 8.700 8.152 8.505 9.669 11.205 12.625 13.625 14.117 14.115 13.655 12.836 11.915 11.270 11.188 11.633 12.214 12.439 12.089 11.394 10.857 10.859 11.371 12.019 12.415 12.466 12.374 + 9.775 9.230 8.487 8.047 8.272 9.144 10.235 10.931 10.796 9.867 8.668 7.920 8.119 9.265 10.894 12.384 13.299 13.556 13.346 12.934 12.506 12.141 11.868 11.708 11.657 11.647 11.568 11.357 11.069 10.865 10.906 11.235 11.756 12.292 12.698 12.908 + 9.200 8.527 7.628 7.131 7.464 8.587 9.993 10.982 11.066 10.262 9.101 8.340 8.536 9.730 11.432 12.913 13.629 13.501 12.898 12.336 12.132 12.234 12.336 12.167 11.720 11.245 11.028 11.159 11.463 11.670 11.647 11.513 11.519 11.815 12.294 12.659 + 7.815 7.239 6.500 6.204 6.793 8.241 9.992 11.230 11.366 10.424 9.060 8.160 8.286 9.362 10.813 12.010 12.674 12.936 13.083 13.245 13.324 13.158 12.743 12.266 11.931 11.770 11.630 11.362 11.008 10.801 10.965 11.507 12.196 12.750 13.039 13.128 + 9.655 8.587 7.183 6.406 6.805 8.165 9.691 10.546 10.375 9.471 8.525 8.170 8.638 9.694 10.859 11.715 12.119 12.219 12.295 12.536 12.910 13.184 13.101 12.588 11.836 11.191 10.913 10.994 11.179 11.192 10.983 10.792 10.953 11.595 12.471 13.100 + 7.644 6.623 5.396 4.985 5.865 7.654 9.423 10.358 10.261 9.556 8.899 8.745 9.168 9.968 10.887 11.740 12.421 12.879 13.112 13.174 13.133 12.998 12.688 12.118 11.336 10.576 10.136 10.163 10.535 10.964 11.246 11.429 11.738 12.321 13.047 13.562 + 8.384 7.497 6.384 5.905 6.532 8.031 9.633 10.542 10.424 9.567 8.640 8.258 8.656 9.634 10.771 11.696 12.262 12.540 12.689 12.810 12.884 12.804 12.470 11.879 11.154 10.493 10.076 9.981 10.162 10.505 10.904 11.316 11.744 12.180 12.563 12.793 + 8.096 7.147 5.949 5.414 6.054 7.644 9.394 10.465 10.483 9.713 8.834 8.503 8.992 10.087 11.274 12.054 12.220 11.941 11.623 11.629 12.027 12.535 12.709 12.266 11.316 10.314 9.768 9.894 10.495 11.141 11.505 11.582 11.615 11.831 12.210 12.515 + 6.291 6.326 6.534 7.106 8.117 9.384 10.449 10.794 10.179 8.906 7.728 7.422 8.279 9.891 11.428 12.218 12.187 11.838 11.795 12.289 13.002 13.355 12.990 12.040 11.003 10.360 10.260 10.504 10.781 10.930 11.017 11.216 11.629 12.201 12.752 13.088 + 6.353 6.632 7.039 7.475 8.029 8.841 9.796 10.434 10.273 9.307 8.189 7.814 8.612 10.163 11.544 12.120 12.078 12.194 13.043 14.374 15.266 14.925 13.403 11.585 10.459 10.339 10.736 10.932 10.672 10.327 10.430 11.093 11.888 12.286 12.173 11.911 + 6.076 6.318 6.761 7.376 8.158 9.054 9.864 10.271 10.033 9.224 8.281 7.775 8.049 9.015 10.271 11.436 12.393 13.242 14.035 14.594 14.604 13.914 12.743 11.576 10.820 10.524 10.428 10.270 10.063 10.064 10.484 11.224 11.912 12.215 12.123 11.929 + 7.320 7.365 7.482 7.726 8.147 8.728 9.341 9.775 9.853 9.563 9.100 8.771 8.826 9.338 10.209 11.266 12.337 13.261 13.856 13.950 13.480 12.599 11.646 10.962 10.670 10.610 10.496 10.178 9.780 9.598 9.837 10.420 11.047 11.431 11.516 11.467 + 7.798 7.900 8.075 8.287 8.526 8.822 9.218 9.711 10.197 10.487 10.414 9.985 9.446 9.204 9.595 10.670 12.126 13.464 14.263 14.383 13.978 13.332 12.662 12.033 11.414 10.792 10.227 9.813 9.607 9.596 9.740 10.014 10.414 10.906 11.379 11.675 + 6.464 6.483 6.663 7.155 7.971 8.923 9.718 10.130 10.127 9.867 9.585 9.456 9.530 9.768 10.111 10.534 11.036 11.586 12.100 12.459 12.572 12.426 12.100 11.718 11.382 11.129 10.920 10.690 10.403 10.101 9.895 9.912 10.208 10.715 11.251 11.593 + 7.011 7.399 7.879 8.149 8.190 8.276 8.683 9.377 9.981 10.082 9.608 8.937 8.641 9.070 10.115 11.320 12.209 12.563 12.457 12.113 11.729 11.428 11.266 11.239 11.260 11.155 10.781 10.170 9.581 9.355 9.660 10.340 11.017 11.373 11.378 11.264 + 6.380 7.120 8.188 9.053 9.424 9.390 9.269 9.319 9.552 9.780 9.823 9.664 9.462 9.412 9.624 10.077 10.676 11.297 11.818 12.115 12.106 11.806 11.351 10.930 10.666 10.536 10.422 10.239 10.025 9.919 10.019 10.281 10.542 10.651 10.602 10.515 + 6.564 7.275 8.376 9.410 10.027 10.137 9.890 9.533 9.259 9.131 9.105 9.114 9.130 9.200 9.421 9.888 10.620 11.506 12.314 12.784 12.769 12.324 11.682 11.110 10.739 10.515 10.279 9.937 9.557 9.325 9.397 9.768 10.281 10.740 11.031 11.156 + 6.974 7.522 8.447 9.452 10.212 10.504 10.309 9.818 9.318 9.023 8.964 9.020 9.064 9.109 9.326 9.896 10.830 11.879 12.648 12.830 12.399 11.624 10.888 10.447 10.300 10.252 10.098 9.794 9.468 9.307 9.397 9.658 9.916 10.035 10.012 9.950 + 6.533 7.240 8.360 9.451 10.132 10.253 9.943 9.498 9.190 9.119 9.202 9.284 9.306 9.372 9.673 10.318 11.201 12.025 12.464 12.365 11.843 11.198 10.719 10.514 10.472 10.382 10.098 9.637 9.164 8.864 8.835 9.034 9.333 9.601 9.773 9.849 + 7.810 8.098 8.573 9.090 9.519 9.771 9.794 9.582 9.210 8.844 8.687 8.851 9.270 9.731 10.051 10.222 10.423 10.835 11.444 11.999 12.196 11.928 11.377 10.850 10.514 10.260 9.846 9.187 8.501 8.174 8.436 9.141 9.867 10.246 10.236 10.097 + 7.754 8.176 8.830 9.450 9.844 9.965 9.885 9.707 9.509 9.327 9.183 9.094 9.075 9.145 9.342 9.716 10.289 10.983 11.600 11.903 11.770 11.303 10.771 10.419 10.271 10.122 9.728 9.052 8.352 8.012 8.244 8.915 9.649 10.109 10.225 10.183 + 7.508 7.791 8.335 9.038 9.690 10.051 10.001 9.645 9.257 9.091 9.201 9.425 9.540 9.474 9.376 9.505 10.005 10.780 11.526 11.932 11.850 11.361 10.686 10.044 9.557 9.233 9.006 8.799 8.575 8.367 8.286 8.470 8.996 9.784 10.591 11.103 + 6.762 7.220 8.012 8.919 9.692 10.137 10.184 9.917 9.525 9.202 9.062 9.105 9.264 9.474 9.725 10.049 10.463 10.924 11.327 11.551 11.530 11.279 10.884 10.440 10.006 9.580 9.134 8.657 8.197 7.871 7.817 8.130 8.794 9.656 10.462 10.948 + 7.878 7.834 7.931 8.363 9.137 10.002 10.586 10.632 10.154 9.428 8.804 8.519 8.604 8.945 9.404 9.904 10.423 10.933 11.354 11.575 11.517 11.187 10.672 10.092 9.539 9.051 8.635 8.300 8.081 8.025 8.164 8.487 8.931 9.399 9.784 10.001 + 6.356 6.378 6.622 7.266 8.243 9.212 9.782 9.798 9.441 9.062 8.893 8.895 8.860 8.685 8.527 8.711 9.430 10.508 11.443 11.737 11.245 10.288 9.421 9.038 9.119 9.307 9.227 8.795 8.267 8.011 8.197 8.671 9.088 9.196 9.024 8.822 + 7.702 7.640 7.684 8.004 8.590 9.221 9.621 9.658 9.420 9.102 8.827 8.563 8.227 7.864 7.716 8.081 9.059 10.378 11.487 11.875 11.389 10.333 9.270 8.660 8.600 8.830 8.961 8.764 8.307 7.874 7.756 8.070 8.717 9.469 10.095 10.441 + 9.855 9.741 9.622 9.625 9.781 9.986 10.084 9.987 9.749 9.522 9.416 9.401 9.334 9.117 8.836 8.745 9.074 9.794 10.561 10.910 10.596 9.796 8.998 8.645 8.801 9.120 9.145 8.700 8.045 7.663 7.870 8.568 9.341 9.804 9.883 9.800 + 12.414 12.052 11.583 11.277 11.185 11.113 10.855 10.430 10.090 10.074 10.331 10.509 10.247 9.540 8.831 8.712 9.442 10.684 11.691 11.822 10.994 9.717 8.710 8.388 8.619 8.910 8.827 8.332 7.770 7.568 7.895 8.554 9.154 9.418 9.359 9.218 + 7.531 7.318 7.094 7.114 7.508 8.189 8.924 9.491 9.800 9.895 9.855 9.703 9.421 9.048 8.757 8.804 9.342 10.242 11.088 11.400 10.943 9.915 8.834 8.206 8.196 8.547 8.802 8.646 8.125 7.576 7.359 7.610 8.190 8.825 9.301 9.538 + 4.222 4.509 5.095 5.966 7.039 8.140 9.041 9.547 9.582 9.232 8.697 8.201 7.900 7.859 8.080 8.530 9.144 9.786 10.252 10.351 10.022 9.417 8.833 8.537 8.587 8.797 8.878 8.661 8.217 7.798 7.644 7.818 8.189 8.557 8.798 8.900 + 5.397 5.404 5.506 5.838 6.497 7.446 8.467 9.239 9.508 9.246 8.660 8.055 7.649 7.498 7.578 7.890 8.467 9.254 9.990 10.292 9.911 8.981 7.988 7.446 7.506 7.837 7.912 7.468 6.744 6.287 6.489 7.256 8.101 8.561 8.561 8.400 + 5.548 5.104 4.588 4.496 5.125 6.379 7.816 8.907 9.317 9.053 8.406 7.765 7.430 7.513 7.954 8.597 9.247 9.729 9.915 9.765 9.350 8.826 8.362 8.052 7.873 7.725 7.530 7.308 7.170 7.240 7.550 8.005 8.442 8.735 8.861 8.888 + 5.792 5.275 4.672 4.568 5.329 6.872 8.696 10.159 10.801 10.542 9.663 8.624 7.840 7.535 7.703 8.169 8.687 9.046 9.131 8.958 8.642 8.337 8.163 8.150 8.243 8.339 8.348 8.242 8.055 7.868 7.761 7.785 7.939 8.170 8.397 8.537 + 6.119 5.602 5.041 5.074 6.071 7.874 9.847 11.232 11.559 10.871 9.634 8.427 7.642 7.368 7.492 7.868 8.392 8.961 9.397 9.486 9.124 8.451 7.818 7.566 7.773 8.185 8.406 8.197 7.664 7.162 7.024 7.322 7.853 8.336 8.615 8.714 + 5.349 4.963 4.615 4.868 6.026 7.872 9.724 10.797 10.665 9.513 8.009 6.887 6.528 6.833 7.424 7.994 8.485 8.989 9.509 9.841 9.712 9.057 8.153 7.463 7.295 7.566 7.878 7.851 7.426 6.893 6.640 6.847 7.391 7.987 8.415 8.615 + 6.107 5.576 4.985 4.968 5.898 7.617 9.493 10.776 11.014 10.277 9.062 7.962 7.349 7.269 7.567 8.076 8.706 9.374 9.899 10.019 9.568 8.648 7.636 6.967 6.838 7.086 7.333 7.297 6.998 6.709 6.706 7.036 7.506 7.867 8.019 8.039 + 9.817 9.006 7.863 7.085 7.191 8.207 9.626 10.694 10.861 10.104 8.908 7.909 7.494 7.636 8.060 8.538 9.032 9.574 10.045 10.134 9.572 8.441 7.243 6.592 6.754 7.427 7.973 7.930 7.357 6.744 6.563 6.879 7.348 7.576 7.473 7.283 + 10.166 8.995 7.479 6.682 7.156 8.584 10.049 10.684 10.220 9.064 7.907 7.241 7.127 7.345 7.692 8.151 8.788 9.531 10.073 10.048 9.333 8.212 7.240 6.873 7.158 7.718 8.045 7.869 7.323 6.786 6.577 6.727 7.016 7.197 7.197 7.128 + 5.915 5.655 5.360 5.337 5.791 6.706 7.854 8.921 9.637 9.871 9.655 9.153 8.606 8.263 8.288 8.684 9.275 9.767 9.892 9.536 8.802 7.951 7.274 6.951 6.997 7.274 7.578 7.731 7.651 7.375 7.038 6.803 6.784 6.978 7.264 7.469 + 6.031 5.703 5.230 4.921 5.090 5.898 7.233 8.711 9.830 10.211 9.797 8.883 7.962 7.475 7.610 8.239 9.020 9.565 9.613 9.132 8.322 7.522 7.055 7.074 7.480 7.977 8.240 8.101 7.629 7.066 6.658 6.517 6.590 6.741 6.865 6.924 + 5.785 5.984 6.252 6.473 6.677 7.036 7.697 8.579 9.340 9.563 9.046 7.992 6.928 6.407 6.686 7.594 8.663 9.413 9.601 9.283 8.707 8.134 7.727 7.531 7.519 7.636 7.809 7.940 7.933 7.743 7.414 7.074 6.858 6.826 6.921 7.019 + 3.964 4.670 5.580 6.116 6.122 5.980 6.258 7.185 8.389 9.156 8.981 7.983 6.847 6.345 6.803 7.924 9.042 9.606 9.496 8.999 8.517 8.265 8.189 8.100 7.880 7.577 7.344 7.295 7.416 7.586 7.678 7.637 7.502 7.348 7.236 7.181 + 6.418 7.097 7.751 7.650 6.763 5.842 5.781 6.810 8.265 9.127 8.851 7.776 6.798 6.630 7.303 8.273 8.941 9.094 8.914 8.668 8.438 8.139 7.725 7.318 7.101 7.117 7.211 7.192 7.043 6.948 7.082 7.402 7.651 7.598 7.280 6.983 + 12.654 12.267 11.678 11.112 10.664 10.263 9.780 9.175 8.534 7.995 7.627 7.408 7.290 7.286 7.461 7.839 8.318 8.701 8.826 8.695 8.465 8.311 8.290 8.313 8.256 8.088 7.906 7.836 7.912 8.045 8.107 8.048 7.924 7.833 7.817 7.836 + 11.713 11.229 10.467 9.723 9.234 9.067 9.111 9.157 9.019 8.621 8.031 7.433 7.047 7.026 7.377 7.947 8.489 8.782 8.746 8.467 8.127 7.886 7.795 7.804 7.828 7.831 7.842 7.910 8.048 8.215 8.354 8.437 8.482 8.522 8.569 8.604 + 7.629 7.618 7.656 7.826 8.157 8.574 8.905 8.971 8.723 8.305 7.990 8.002 8.364 8.897 9.368 9.667 9.851 10.021 10.164 10.122 9.750 9.098 8.457 8.164 8.345 8.802 9.174 9.235 9.061 8.928 9.025 9.264 9.355 9.093 8.580 8.168 + 6.862 6.880 7.074 7.583 8.345 9.084 9.496 9.473 9.172 8.872 8.759 8.819 8.917 8.962 8.997 9.125 9.367 9.600 9.644 9.427 9.074 8.822 8.840 9.096 9.391 9.512 9.388 9.122 8.896 8.833 8.933 9.101 9.234 9.283 9.268 9.241 + 8.805 8.821 8.908 9.100 9.352 9.538 9.542 9.356 9.104 8.955 9.005 9.207 9.413 9.494 9.431 9.318 9.268 9.319 9.409 9.441 9.378 9.282 9.263 9.385 9.614 9.838 9.962 9.977 9.966 10.028 10.197 10.412 10.568 10.599 10.532 10.459 + 8.145 8.968 10.118 10.964 11.164 10.830 10.332 9.972 9.794 9.677 9.546 9.477 9.605 9.950 10.353 10.596 10.575 10.367 10.124 9.928 9.754 9.566 9.430 9.497 9.858 10.415 10.913 11.128 11.037 10.823 10.696 10.713 10.754 10.676 10.475 10.300 + 7.970 8.446 9.179 9.859 10.258 10.336 10.218 10.082 10.035 10.065 10.086 10.042 9.965 9.963 10.135 10.478 10.865 11.105 11.055 10.714 10.238 9.860 9.761 9.973 10.368 10.733 10.902 10.835 10.627 10.430 10.356 10.419 10.558 10.690 10.770 10.802 + 8.898 8.936 8.974 8.988 9.029 9.201 9.574 10.076 10.489 10.564 10.198 9.556 9.013 8.931 9.420 10.234 10.894 10.984 10.411 9.470 8.666 8.413 8.802 9.584 10.349 10.777 10.794 10.554 10.296 10.185 10.238 10.356 10.428 10.401 10.310 10.234 + 7.668 8.090 8.592 8.808 8.686 8.521 8.672 9.209 9.839 10.159 10.018 9.643 9.444 9.672 10.237 10.807 11.072 10.923 10.445 9.794 9.126 8.604 8.412 8.672 9.303 9.990 10.352 10.218 9.777 9.444 9.528 9.985 10.477 10.684 10.573 10.389 + 7.215 7.569 8.146 8.750 9.220 9.483 9.572 9.575 9.582 9.635 9.715 9.759 9.722 9.637 9.633 9.868 10.395 11.063 11.541 11.506 10.879 9.920 9.099 8.783 9.001 9.441 9.717 9.675 9.499 9.526 9.925 10.539 11.002 11.057 10.773 10.481 + 8.567 8.610 8.716 8.867 8.970 8.929 8.754 8.611 8.713 9.139 9.730 10.205 10.386 10.364 10.415 10.748 11.287 11.698 11.649 11.092 10.324 9.782 9.736 10.132 10.677 11.070 11.178 11.043 10.779 10.473 10.187 9.993 9.974 10.153 10.437 10.651 + 5.432 6.534 8.127 9.407 9.890 9.685 9.331 9.363 9.930 10.740 11.322 11.391 11.032 10.602 10.450 10.678 11.098 11.391 11.328 10.905 10.329 9.875 9.738 9.945 10.366 10.800 11.076 11.123 10.983 10.774 10.623 10.601 10.709 10.889 11.064 11.170 + 5.282 5.560 5.995 6.461 6.945 7.539 8.317 9.210 10.009 10.492 10.583 10.393 10.135 9.989 10.032 10.249 10.569 10.881 11.032 10.883 10.417 9.818 9.419 9.485 10.006 10.660 11.037 10.943 10.552 10.256 10.340 10.760 11.207 11.390 11.282 11.112 + 6.559 6.903 7.477 8.108 8.643 9.017 9.265 9.474 9.692 9.870 9.893 9.684 9.310 8.999 9.024 9.513 10.312 11.033 11.267 10.848 9.978 9.120 8.718 8.929 9.539 10.125 10.339 10.115 9.681 9.362 9.360 9.640 10.004 10.260 10.351 10.352 + 7.671 7.361 7.084 7.238 7.942 8.937 9.771 10.111 9.928 9.433 8.889 8.468 8.259 8.339 8.768 9.495 10.271 10.721 10.573 9.874 9.010 8.470 8.529 9.080 9.742 10.138 10.136 9.878 9.629 9.584 9.769 10.093 10.436 10.723 10.922 11.022 + 8.002 8.024 8.134 8.409 8.880 9.500 10.165 10.733 11.032 10.902 10.270 9.256 8.191 7.495 7.432 7.924 8.580 8.953 8.859 8.496 8.278 8.497 9.095 9.722 10.020 9.890 9.529 9.240 9.195 9.361 9.612 9.888 10.233 10.689 11.176 11.503 + 9.948 9.912 9.770 9.522 9.346 9.490 10.019 10.652 10.905 10.462 9.469 8.482 8.074 8.424 9.207 9.868 10.030 9.695 9.143 8.645 8.308 8.111 8.058 8.223 8.641 9.184 9.582 9.616 9.316 8.962 8.875 9.178 9.730 10.272 10.627 10.779 + 5.870 5.994 6.247 6.673 7.364 8.361 9.514 10.457 10.768 10.246 9.089 7.824 7.014 6.953 7.551 8.444 9.222 9.597 9.456 8.858 8.025 7.306 7.061 7.459 8.320 9.172 9.539 9.283 8.715 8.372 8.606 9.330 10.121 10.578 10.633 10.528 + 4.557 5.036 5.792 6.609 7.429 8.330 9.323 10.187 10.537 10.105 9.008 7.744 6.911 6.857 7.519 8.530 9.466 10.025 10.068 9.602 8.786 7.947 7.486 7.658 8.359 9.125 9.430 9.078 8.377 7.911 8.093 8.847 9.703 10.205 10.262 10.141 + 5.524 5.961 6.604 7.212 7.741 8.335 9.094 9.863 10.272 10.024 9.177 8.158 7.496 7.480 8.023 8.793 9.457 9.821 9.819 9.450 8.797 8.091 7.686 7.858 8.558 9.364 9.735 9.422 8.680 8.090 8.108 8.730 9.535 10.067 10.195 10.130 + 6.446 6.311 6.159 6.187 6.589 7.435 8.582 9.692 10.373 10.378 9.738 8.760 7.870 7.428 7.593 8.288 9.243 10.088 10.482 10.264 9.559 8.756 8.322 8.520 9.229 10.007 10.392 10.219 9.722 9.328 9.318 9.619 9.912 9.924 9.671 9.416 + 9.031 8.381 7.305 6.226 5.659 5.983 7.194 8.830 10.182 10.679 10.207 9.145 8.098 7.544 7.622 8.153 8.810 9.284 9.375 9.042 8.436 7.888 7.777 8.299 9.282 10.230 10.620 10.271 9.479 8.793 8.610 8.895 9.271 9.379 9.180 8.941 + 8.153 7.828 7.293 6.777 6.580 6.945 7.892 9.139 10.188 10.570 10.107 9.022 7.829 7.073 7.056 7.710 8.661 9.430 9.678 9.365 8.764 8.306 8.332 8.879 9.639 10.138 10.039 9.362 8.475 7.841 7.704 7.954 8.256 8.333 8.174 7.989 + 7.136 6.797 6.361 6.177 6.506 7.377 8.561 9.674 10.340 10.334 9.657 8.527 7.301 6.366 6.013 6.337 7.200 8.283 9.221 9.776 9.929 9.857 9.797 9.879 10.046 10.117 9.934 9.493 8.951 8.520 8.322 8.318 8.365 8.342 8.239 8.143 + 7.429 6.919 6.164 5.611 5.699 6.608 8.080 9.485 10.148 9.758 8.566 7.207 6.292 6.053 6.306 6.706 7.028 7.259 7.470 7.659 7.740 7.683 7.622 7.773 8.224 8.798 9.158 9.079 8.645 8.179 7.957 7.975 7.983 7.752 7.321 6.971 + 13.209 13.333 13.387 13.193 12.805 12.489 12.493 12.802 13.135 13.164 12.788 12.190 11.674 11.435 11.479 11.711 12.062 12.497 12.928 13.164 13.023 12.498 11.819 11.283 11.009 10.839 10.524 10.022 9.604 9.623 10.129 10.700 10.721 9.901 8.597 7.615 + 15.601 15.107 14.411 13.922 13.907 14.330 14.879 15.175 15.025 14.525 13.948 13.512 13.235 12.994 12.737 12.606 12.840 13.512 14.347 14.851 14.671 13.891 12.986 12.432 12.312 12.281 11.943 11.295 10.804 10.998 11.896 12.839 12.931 11.785 9.940 8.551 + 14.649 13.602 12.345 11.889 12.634 14.070 15.197 15.287 14.387 13.176 12.364 12.164 12.249 12.183 11.893 11.748 12.177 13.203 14.318 14.839 14.446 13.436 12.469 12.018 12.014 11.972 11.503 10.727 10.226 10.522 11.549 12.571 12.697 11.591 9.815 8.487 + 10.781 10.290 9.669 9.386 9.696 10.468 11.269 11.635 11.337 10.467 9.340 8.297 7.584 7.318 7.533 8.184 9.106 10.001 10.511 10.393 9.677 8.674 7.788 7.270 7.092 7.040 6.962 6.937 7.213 7.941 8.941 9.716 9.771 8.991 7.803 6.932 + 6.986 6.821 6.641 6.685 7.151 8.057 9.171 10.074 10.352 9.828 8.668 7.313 6.262 5.857 6.166 7.009 8.053 8.931 9.351 9.205 8.632 7.979 7.611 7.681 8.006 8.190 7.933 7.298 6.703 6.602 7.111 7.877 8.336 8.160 7.526 6.977 + 4.986 5.110 5.445 6.089 7.039 8.146 9.148 9.775 9.866 9.423 8.599 7.649 6.866 6.520 6.778 7.614 8.759 9.753 10.148 9.753 8.786 7.773 7.235 7.348 7.828 8.144 7.925 7.252 6.604 6.491 7.049 7.928 8.555 8.581 8.139 7.709 + 7.355 6.746 6.131 6.190 7.089 8.360 9.317 9.605 9.399 9.102 8.909 8.657 8.114 7.365 6.885 7.161 8.221 9.503 10.234 10.001 9.046 8.042 7.554 7.668 8.030 8.217 8.074 7.754 7.513 7.482 7.621 7.836 8.083 8.363 8.643 8.827 + 6.770 6.245 5.796 6.056 7.087 8.331 9.127 9.299 9.234 9.390 9.744 9.758 8.929 7.420 6.120 6.011 7.349 9.383 10.872 10.987 9.870 8.422 7.561 7.579 8.074 8.414 8.264 7.766 7.314 7.211 7.499 8.036 8.655 9.244 9.719 9.990 + 6.459 6.155 5.961 6.307 7.216 8.272 8.984 9.209 9.218 9.350 9.613 9.632 9.029 7.874 6.778 6.479 7.265 8.718 9.995 10.425 9.930 8.976 8.156 7.770 7.738 7.804 7.817 7.819 7.938 8.223 8.606 8.973 9.266 9.489 9.655 9.752 + 5.239 5.469 5.958 6.661 7.396 7.945 8.246 8.471 8.863 9.440 9.877 9.716 8.801 7.543 6.730 6.981 8.249 9.803 10.712 10.492 9.389 8.136 7.400 7.364 7.729 8.059 8.136 8.058 8.067 8.314 8.765 9.274 9.711 10.026 10.227 10.326 + 3.705 4.142 4.923 5.837 6.607 7.062 7.306 7.665 8.389 9.309 9.825 9.333 7.803 6.007 5.099 5.802 7.825 9.997 11.071 10.575 9.077 7.688 7.226 7.701 8.469 8.821 8.518 7.865 7.376 7.377 7.846 8.542 9.220 9.756 10.119 10.304 + 5.219 5.548 6.016 6.351 6.373 6.159 6.053 6.457 7.496 8.806 9.677 9.527 8.371 6.920 6.148 6.631 8.129 9.756 10.597 10.304 9.246 8.143 7.541 7.519 7.811 8.116 8.321 8.463 8.574 8.610 8.533 8.427 8.479 8.803 9.293 9.661 + 5.384 5.872 6.500 6.823 6.654 6.245 6.152 6.816 8.161 9.517 10.017 9.225 7.536 6.000 5.639 6.748 8.692 10.369 10.978 10.503 9.576 8.895 8.708 8.758 8.657 8.280 7.842 7.618 7.653 7.754 7.752 7.743 8.025 8.772 9.770 10.490 + 6.295 6.290 6.270 6.211 6.110 6.059 6.265 6.934 8.038 9.178 9.739 9.306 8.061 6.778 6.357 7.179 8.821 10.340 10.948 10.520 9.575 8.782 8.455 8.432 8.379 8.167 7.956 7.963 8.183 8.393 8.412 8.340 8.502 9.111 9.991 10.646 + 6.134 6.708 7.354 7.509 7.060 6.484 6.487 7.410 8.892 10.062 10.146 9.028 7.357 6.123 6.020 7.034 8.529 9.706 10.090 9.738 9.071 8.527 8.297 8.300 8.335 8.266 8.103 7.944 7.886 7.966 8.171 8.473 8.848 9.254 9.612 9.826 + 3.804 5.158 6.832 7.607 7.065 5.903 5.339 6.105 7.849 9.430 9.803 8.796 7.185 6.083 6.153 7.253 8.668 9.668 9.929 9.577 8.946 8.318 7.830 7.518 7.394 7.440 7.576 7.676 7.646 7.514 7.434 7.590 8.062 8.761 9.457 9.889 + 3.823 4.690 5.733 6.178 5.854 5.353 5.512 6.664 8.288 9.375 9.200 7.895 6.357 5.605 6.088 7.450 8.879 9.686 9.684 9.152 8.506 8.008 7.695 7.499 7.382 7.353 7.391 7.402 7.279 7.031 6.832 6.952 7.562 8.579 9.659 10.353 + 4.948 5.470 6.041 6.192 5.945 5.845 6.461 7.795 9.150 9.611 8.765 7.072 5.580 5.211 6.167 7.870 9.418 10.159 9.981 9.207 8.288 7.558 7.169 7.136 7.370 7.696 7.888 7.785 7.412 7.000 6.856 7.175 7.924 8.867 9.701 10.182 + 4.659 5.508 6.456 6.702 6.143 5.518 5.769 7.184 9.048 10.134 9.634 7.788 5.731 4.696 5.216 6.880 8.729 9.918 10.137 9.600 8.748 7.958 7.429 7.211 7.253 7.421 7.529 7.429 7.125 6.800 6.719 7.063 7.808 8.740 9.569 10.049 + 5.973 6.262 6.645 6.921 7.091 7.388 8.062 9.093 10.062 10.353 9.584 7.963 6.281 5.484 6.081 7.799 9.728 10.875 10.751 9.599 8.147 7.099 6.730 6.848 7.058 7.084 6.906 6.674 6.541 6.579 6.821 7.317 8.111 9.133 10.134 10.764 + 6.624 6.489 6.315 6.239 6.386 6.850 7.666 8.734 9.726 10.130 9.515 7.916 6.022 4.896 5.315 7.179 9.466 10.871 10.672 9.199 7.521 6.626 6.749 7.343 7.653 7.351 6.716 6.283 6.340 6.761 7.234 7.622 8.053 8.689 9.447 9.985 + 7.094 6.802 6.384 6.107 6.230 6.873 7.929 9.058 9.788 9.740 8.852 7.493 6.333 6.015 6.775 8.281 9.793 10.588 10.362 9.351 8.112 7.146 6.633 6.445 6.368 6.312 6.337 6.522 6.833 7.134 7.326 7.452 7.664 8.060 8.549 8.895 + 4.498 4.608 4.660 4.581 4.599 5.123 6.335 7.875 8.972 8.977 7.897 6.454 5.602 5.873 7.070 8.496 9.478 9.759 9.477 8.881 8.106 7.190 6.258 5.587 5.460 5.913 6.646 7.212 7.332 7.086 6.821 6.874 7.349 8.084 8.790 9.211 + 4.972 5.469 6.117 6.554 6.728 6.910 7.361 7.994 8.371 8.069 7.092 5.960 5.354 5.643 6.654 7.859 8.772 9.203 9.219 8.925 8.340 7.478 6.505 5.749 5.500 5.773 6.268 6.595 6.573 6.358 6.294 6.632 7.355 8.225 8.958 9.362 + 6.673 6.921 7.097 6.895 6.369 5.939 6.029 6.664 7.406 7.694 7.290 6.466 5.780 5.655 6.134 6.948 7.783 8.453 8.866 8.908 8.438 7.449 6.223 5.267 5.011 5.494 6.314 6.907 6.951 6.574 6.231 6.355 7.080 8.183 9.251 9.896 + 8.421 7.976 7.452 7.289 7.657 8.329 8.854 8.875 8.348 7.510 6.686 6.108 5.865 5.965 6.387 7.060 7.809 8.373 8.513 8.158 7.458 6.695 6.127 5.869 5.880 6.037 6.208 6.298 6.268 6.166 6.143 6.408 7.100 8.152 9.246 9.949 + 8.608 8.499 8.502 8.774 9.156 9.238 8.731 7.783 6.925 6.645 6.976 7.474 7.611 7.241 6.714 6.543 6.940 7.633 8.113 8.067 7.602 7.100 6.866 6.908 7.016 7.011 6.894 6.790 6.782 6.840 6.916 7.067 7.437 8.089 8.852 9.376 + 7.775 7.650 7.734 8.293 9.136 9.652 9.300 8.112 6.739 5.968 6.114 6.822 7.413 7.475 7.162 6.969 7.231 7.808 8.215 8.063 7.391 6.624 6.227 6.378 6.904 7.484 7.877 8.011 7.924 7.684 7.386 7.178 7.219 7.559 8.050 8.410 + 7.386 7.513 7.809 8.233 8.563 8.495 7.894 6.967 6.184 5.959 6.366 7.110 7.780 8.152 8.292 8.394 8.535 8.595 8.390 7.883 7.255 6.777 6.613 6.733 6.991 7.259 7.471 7.573 7.471 7.093 6.521 6.039 5.981 6.466 7.246 7.830 + 7.461 7.380 7.440 7.800 8.288 8.466 8.006 7.046 6.160 5.938 6.513 7.441 8.060 8.001 7.440 6.898 6.792 7.122 7.531 7.623 7.253 6.568 5.843 5.289 5.004 5.017 5.311 5.794 6.272 6.521 6.455 6.211 6.069 6.220 6.592 6.903 + 8.462 7.689 6.883 6.828 7.605 8.502 8.645 7.782 6.490 5.638 5.621 6.055 6.211 5.735 4.988 4.707 5.314 6.512 7.514 7.670 6.925 5.772 4.788 4.238 4.026 3.962 3.992 4.200 4.624 5.141 5.556 5.783 5.915 6.097 6.356 6.559 + 8.672 8.266 7.660 7.113 6.782 6.661 6.665 6.729 6.816 6.850 6.683 6.187 5.419 4.692 4.429 4.867 5.830 6.783 7.155 6.716 5.710 4.660 4.008 3.848 3.959 4.050 4.011 3.973 4.155 4.657 5.362 6.014 6.390 6.434 6.274 6.118 + 8.001 6.972 5.779 5.381 5.994 6.955 7.370 6.914 6.047 5.493 5.537 5.826 5.831 5.456 5.162 5.470 6.354 7.158 7.143 6.177 4.894 4.167 4.382 5.161 5.758 5.725 5.239 4.830 4.845 5.174 5.444 5.433 5.260 5.192 5.327 5.500 + 7.231 7.282 7.417 7.629 7.817 7.821 7.531 6.989 6.371 5.875 5.599 5.516 5.556 5.698 5.975 6.391 6.833 7.092 6.988 6.505 5.821 5.201 4.836 4.754 4.859 5.033 5.208 5.369 5.492 5.527 5.424 5.186 4.887 4.619 4.444 4.365 + 9.213 8.523 7.671 7.256 7.457 7.906 8.042 7.595 6.780 6.063 5.745 5.756 5.807 5.725 5.608 5.685 6.031 6.442 6.592 6.326 5.796 5.332 5.165 5.275 5.466 5.580 5.609 5.642 5.716 5.757 5.677 5.495 5.352 5.379 5.558 5.727 + 8.596 8.143 7.587 7.313 7.404 7.590 7.516 7.067 6.454 5.997 5.836 5.853 5.855 5.813 5.893 6.241 6.753 7.071 6.864 6.128 5.238 4.673 4.649 4.977 5.261 5.232 4.951 4.703 4.720 4.983 5.266 5.335 5.122 4.741 4.373 4.158 + 8.541 7.924 7.170 6.828 7.068 7.565 7.814 7.558 6.960 6.397 6.099 5.993 5.860 5.621 5.441 5.554 5.974 6.403 6.444 5.931 5.085 4.357 4.090 4.298 4.722 5.069 5.218 5.226 5.190 5.127 4.983 4.733 4.437 4.197 4.069 4.028 + 9.994 9.823 9.569 9.293 8.942 8.371 7.504 6.459 5.525 4.991 4.955 5.287 5.745 6.144 6.424 6.592 6.625 6.459 6.072 5.564 5.128 4.918 4.937 5.051 5.125 5.153 5.251 5.524 5.933 6.283 6.364 6.112 5.642 5.160 4.816 4.652 + 8.106 8.000 7.966 8.141 8.412 8.443 7.948 6.978 5.958 5.412 5.597 6.328 7.125 7.550 7.459 7.008 6.460 5.991 5.640 5.375 5.175 5.037 4.932 4.803 4.624 4.463 4.462 4.716 5.165 5.596 5.769 5.578 5.106 4.553 4.107 3.870 + 5.954 5.951 6.206 6.883 7.725 8.147 7.711 6.560 5.385 4.896 5.273 6.056 6.571 6.497 6.064 5.748 5.790 5.989 5.951 5.505 4.879 4.473 4.476 4.705 4.817 4.667 4.459 4.544 5.063 5.784 6.263 6.191 5.593 4.766 4.050 3.654 + 5.301 4.938 4.460 4.191 4.313 4.747 5.208 5.382 5.112 4.479 3.759 3.283 3.277 3.750 4.475 5.094 5.304 5.034 4.489 4.017 3.871 4.030 4.219 4.136 3.694 3.109 2.735 2.794 3.206 3.661 3.855 3.701 3.352 3.034 2.865 2.818 + 3.486 3.585 3.854 4.318 4.849 5.186 5.103 4.590 3.902 3.400 3.316 3.601 3.994 4.229 4.236 4.163 4.228 4.521 4.923 5.199 5.182 4.884 4.471 4.114 3.871 3.677 3.441 3.158 2.920 2.830 2.888 2.968 2.906 2.637 2.261 1.990 + 2.887 2.984 3.454 4.452 5.669 6.446 6.298 5.360 4.301 3.761 3.841 4.115 4.129 3.886 3.820 4.301 5.185 5.882 5.899 5.319 4.726 4.639 4.986 5.165 4.625 3.429 2.236 1.722 1.986 2.497 2.622 2.201 1.637 1.434 1.689 2.024 + 4.276 3.781 3.205 3.035 3.447 4.175 4.737 4.796 4.378 3.796 3.408 3.403 3.746 4.253 4.681 4.809 4.525 3.938 3.393 3.329 3.961 5.049 5.955 6.040 5.131 3.672 2.419 1.890 2.031 2.343 2.359 2.030 1.697 1.710 2.067 2.419 + 4.847 4.340 3.761 3.631 4.132 4.950 5.504 5.381 4.653 3.812 3.408 3.653 4.304 4.883 5.049 4.814 4.472 4.325 4.452 4.711 4.922 5.063 5.269 5.662 6.170 6.512 6.401 5.778 4.889 4.123 3.737 3.695 3.748 3.669 3.441 3.238 + 5.174 4.508 3.757 3.619 4.355 5.572 6.509 6.591 5.821 4.716 3.881 3.589 3.674 3.792 3.770 3.740 3.955 4.491 5.120 5.490 5.458 5.253 5.317 5.929 6.933 7.814 8.077 7.626 6.824 6.192 5.990 6.038 5.911 5.349 4.517 3.896 + 4.849 4.631 4.335 4.190 4.391 4.949 5.617 5.984 5.728 4.860 3.751 2.898 2.597 2.777 3.134 3.419 3.633 3.946 4.458 5.050 5.482 5.646 5.711 5.990 6.632 7.440 7.992 7.989 7.507 6.916 6.554 6.442 6.318 5.941 5.365 4.922 + 6.532 5.672 4.521 3.812 3.926 4.649 5.360 5.479 4.852 3.806 2.885 2.498 2.708 3.276 3.866 4.236 4.320 4.197 4.023 3.978 4.208 4.782 5.635 6.568 7.321 7.687 7.614 7.216 6.702 6.263 6.000 5.909 5.925 5.978 6.024 6.047 + 4.940 4.299 3.591 3.471 4.125 5.115 5.753 5.641 4.938 4.156 3.713 3.658 3.747 3.759 3.699 3.733 3.969 4.326 4.637 4.858 5.145 5.707 6.569 7.477 8.058 8.088 7.649 7.038 6.538 6.257 6.140 6.101 6.116 6.203 6.343 6.454 + 4.919 4.773 4.594 4.524 4.628 4.847 5.060 5.190 5.267 5.397 5.635 5.890 5.945 5.621 4.954 4.249 3.929 4.269 5.210 6.391 7.383 7.952 8.153 8.199 8.244 8.252 8.078 7.644 7.064 6.577 6.366 6.417 6.548 6.577 6.473 6.357 + 4.517 4.713 4.960 5.081 5.004 4.832 4.784 5.051 5.658 6.422 7.026 7.177 6.758 5.904 4.958 4.321 4.274 4.844 5.797 6.770 7.467 7.793 7.862 7.865 7.918 7.981 7.919 7.638 7.176 6.694 6.365 6.263 6.339 6.479 6.593 6.649 + 6.161 5.592 4.869 4.469 4.554 4.906 5.217 5.410 5.672 6.173 6.777 7.061 6.689 5.784 4.938 4.790 5.534 6.747 7.728 8.026 7.746 7.382 7.368 7.744 8.178 8.289 7.952 7.347 6.757 6.341 6.071 5.829 5.546 5.248 5.006 4.876 + 4.854 4.903 4.952 4.999 5.153 5.567 6.278 7.107 7.737 7.925 7.670 7.188 6.746 6.504 6.503 6.753 7.283 8.067 8.906 9.450 9.415 8.834 8.102 7.709 7.851 8.267 8.444 8.052 7.212 6.377 5.921 5.825 5.736 5.343 4.700 4.196 + 5.340 4.994 4.530 4.272 4.449 5.067 5.923 6.745 7.356 7.746 7.999 8.160 8.192 8.052 7.839 7.823 8.265 9.157 10.106 10.533 10.085 8.950 7.782 7.261 7.587 8.335 8.784 8.458 7.451 6.283 5.448 5.038 4.774 4.349 3.763 3.318 + 4.741 4.099 3.466 3.573 4.589 5.974 6.938 7.103 6.786 6.671 7.190 8.162 8.999 9.267 9.082 8.993 9.451 10.360 11.102 11.029 10.007 8.553 7.464 7.235 7.738 8.377 8.563 8.115 7.302 6.546 6.063 5.730 5.265 4.526 3.678 3.101 + 5.276 4.870 4.455 4.507 5.197 6.258 7.187 7.623 7.588 7.416 7.450 7.791 8.288 8.762 9.215 9.816 10.656 11.517 11.907 11.403 10.047 8.445 7.438 7.533 8.535 9.665 10.092 9.491 8.200 6.888 6.024 5.571 5.141 4.429 3.531 2.886 + 5.054 4.748 4.560 4.928 5.872 6.925 7.520 7.473 7.126 7.039 7.506 8.329 9.057 9.437 9.650 10.111 10.997 11.957 12.296 11.525 9.821 8.012 7.052 7.389 8.675 10.035 10.646 10.223 9.071 7.755 6.677 5.870 5.134 4.313 3.497 2.969 + 5.647 5.186 4.733 4.827 5.609 6.707 7.545 7.817 7.706 7.685 8.091 8.864 9.649 10.166 10.467 10.846 11.482 12.152 12.315 11.531 9.892 8.086 7.006 7.170 8.371 9.818 10.648 10.431 9.347 7.945 6.734 5.895 5.312 4.802 4.328 4.020 + 4.104 4.413 4.995 5.757 6.543 7.183 7.581 7.782 7.955 8.280 8.823 9.488 10.101 10.553 10.886 11.226 11.616 11.885 11.707 10.843 9.400 7.886 6.972 7.087 8.125 9.486 10.437 10.537 9.845 8.785 7.809 7.118 6.644 6.232 5.843 5.585 + 5.250 4.804 4.362 4.452 5.247 6.439 7.515 8.159 8.451 8.708 9.161 9.769 10.319 10.680 10.935 11.261 11.676 11.925 11.627 10.604 9.096 7.684 6.956 7.170 8.134 9.351 10.298 10.649 10.354 9.575 8.592 7.694 7.087 6.829 6.824 6.890 + 5.360 5.024 4.711 4.839 5.540 6.553 7.437 7.918 8.073 8.220 8.641 9.359 10.160 10.790 11.147 11.290 11.305 11.163 10.723 9.876 8.710 7.543 6.798 6.787 7.552 8.826 10.141 11.007 11.106 10.413 9.209 7.949 7.048 6.677 6.710 6.847 + 5.429 5.127 4.790 4.776 5.288 6.215 7.188 7.824 8.001 7.963 8.135 8.793 9.814 10.741 11.119 10.827 10.144 9.485 9.043 8.658 8.041 7.150 6.358 6.242 7.125 8.752 10.396 11.301 11.143 10.164 8.913 7.858 7.165 6.753 6.500 6.364 + 5.628 5.336 4.986 4.897 5.264 6.029 6.903 7.566 7.880 7.983 8.165 8.631 9.321 9.946 10.209 10.036 9.599 9.138 8.733 8.253 7.548 6.698 6.080 6.148 7.071 8.536 9.896 10.562 10.348 9.519 8.539 7.749 7.223 6.866 6.596 6.432 + 6.718 6.390 6.004 5.897 6.227 6.860 7.478 7.815 7.837 7.732 7.741 7.965 8.303 8.566 8.638 8.550 8.394 8.192 7.842 7.231 6.418 5.708 5.510 6.056 7.194 8.430 9.224 9.318 8.858 8.232 7.758 7.484 7.238 6.859 6.388 6.050 + 6.115 5.893 5.657 5.663 6.025 6.642 7.294 7.796 8.091 8.225 8.247 8.157 7.944 7.656 7.426 7.388 7.577 7.889 8.149 8.241 8.181 8.082 8.045 8.076 8.090 7.996 7.775 7.493 7.234 7.030 6.836 6.576 6.211 5.778 5.384 5.148 + 6.682 6.676 6.749 6.985 7.377 7.820 8.188 8.407 8.463 8.355 8.070 7.636 7.184 6.942 7.100 7.643 8.312 8.749 8.747 8.397 8.000 7.822 7.893 8.009 7.939 7.618 7.185 6.826 6.604 6.422 6.143 5.749 5.358 5.114 5.050 5.071 + 6.746 6.856 7.073 7.386 7.761 8.143 8.465 8.655 8.650 8.414 7.974 7.447 7.027 6.901 7.145 7.653 8.168 8.426 8.313 7.924 7.491 7.216 7.136 7.125 7.011 6.718 6.317 5.965 5.770 5.711 5.649 5.434 5.005 4.435 3.893 3.565 + 7.191 7.207 7.095 6.752 6.296 6.034 6.228 6.855 7.591 8.039 8.007 7.614 7.149 6.841 6.732 6.738 6.785 6.872 7.008 7.133 7.135 6.957 6.682 6.474 6.419 6.415 6.248 5.787 5.130 4.538 4.218 4.147 4.104 3.891 3.530 3.243 + 11.848 11.422 10.815 10.353 10.227 10.380 10.558 10.488 10.054 9.356 8.627 8.085 7.820 7.775 7.822 7.845 7.797 7.687 7.541 7.367 7.156 6.899 6.609 6.324 6.090 5.930 5.833 5.750 5.620 5.389 5.038 4.588 4.097 3.639 3.288 3.097 + 12.445 11.616 10.485 9.716 9.636 10.044 10.415 10.313 9.666 8.734 7.871 7.289 7.018 6.993 7.153 7.439 7.744 7.910 7.825 7.505 7.097 6.751 6.499 6.251 5.915 5.529 5.257 5.250 5.490 5.772 5.836 5.554 5.004 4.390 3.906 3.652 + 7.958 8.039 7.977 7.530 6.676 5.680 4.934 4.687 4.884 5.234 5.434 5.391 5.271 5.354 5.828 6.663 7.631 8.449 8.919 9.003 8.799 8.454 8.079 7.699 7.281 6.790 6.258 5.794 5.517 5.458 5.489 5.375 4.923 4.139 3.277 2.709 + 6.625 6.682 6.809 6.985 7.122 7.077 6.747 6.164 5.525 5.092 5.030 5.294 5.660 5.913 6.028 6.205 6.700 7.575 8.581 9.295 9.418 8.998 8.386 7.952 7.791 7.671 7.268 6.482 5.552 4.858 4.593 4.582 4.443 3.930 3.181 2.621 + 7.617 7.072 6.524 6.567 7.310 8.231 8.586 7.999 6.757 5.568 5.001 5.093 5.427 5.581 5.532 5.660 6.369 7.663 9.064 9.936 9.949 9.296 8.499 7.990 7.807 7.653 7.223 6.500 5.771 5.356 5.301 5.310 4.981 4.160 3.115 2.382 + 8.897 7.844 6.746 6.704 7.907 9.433 10.029 9.172 7.474 6.100 5.771 6.219 6.567 6.220 5.450 5.157 6.047 7.971 9.990 11.077 10.841 9.707 8.474 7.701 7.409 7.259 6.947 6.441 5.912 5.507 5.204 4.860 4.363 3.745 3.165 2.813 + 5.522 5.056 4.850 5.624 7.312 8.975 9.516 8.566 6.770 5.239 4.664 4.879 5.198 5.171 5.037 5.483 6.961 9.191 11.280 12.332 12.024 10.718 9.103 7.736 6.833 6.350 6.168 6.169 6.201 6.069 5.636 4.940 4.197 3.646 3.375 3.299 + 6.558 6.114 5.846 6.380 7.690 9.033 9.544 8.932 7.675 6.547 5.970 5.773 5.558 5.241 5.225 6.024 7.697 9.667 11.077 11.397 10.732 9.606 8.499 7.556 6.699 5.923 5.418 5.383 5.747 6.118 6.058 5.422 4.456 3.569 3.017 2.793 + 6.080 5.564 5.323 6.143 7.969 9.830 10.607 9.946 8.481 7.215 6.662 6.543 6.272 5.694 5.323 5.857 7.434 9.367 10.610 10.540 9.368 7.852 6.659 5.956 5.529 5.203 5.065 5.293 5.829 6.289 6.247 5.606 4.687 3.942 3.586 3.507 + 2.469 3.438 5.153 7.163 8.868 9.750 9.642 8.835 7.891 7.267 7.031 6.900 6.561 6.007 5.592 5.754 6.637 7.934 9.052 9.488 9.100 8.123 6.961 5.962 5.308 5.037 5.090 5.327 5.534 5.497 5.111 4.460 3.772 3.261 3.002 2.920 + 5.584 5.297 5.359 6.332 8.009 9.435 9.684 8.671 7.231 6.386 6.477 6.953 6.994 6.334 5.526 5.414 6.341 7.828 8.993 9.268 8.748 7.932 7.189 6.519 5.777 5.045 4.675 4.940 5.644 6.166 5.938 4.937 3.697 2.841 2.573 2.616 + 6.209 6.470 7.071 7.980 8.893 9.322 8.924 7.785 6.417 5.414 5.056 5.173 5.369 5.409 5.421 5.752 6.630 7.916 9.154 9.868 9.851 9.240 8.370 7.551 6.947 6.585 6.424 6.397 6.414 6.371 6.201 5.918 5.615 5.394 5.290 5.264 + 7.181 7.453 8.009 8.732 9.290 9.263 8.451 7.096 5.786 5.073 5.096 5.515 5.829 5.810 5.694 5.973 6.960 8.487 9.973 10.796 10.679 9.814 8.688 7.774 7.310 7.264 7.448 7.645 7.696 7.539 7.218 6.859 6.608 6.538 6.611 6.700 + 7.231 7.354 7.806 8.673 9.628 10.056 9.521 8.186 6.738 5.869 5.744 5.947 5.942 5.617 5.407 5.881 7.175 8.800 9.985 10.261 9.767 9.049 8.587 8.462 8.425 8.221 7.826 7.407 7.106 6.900 6.675 6.403 6.196 6.184 6.351 6.521 + 6.973 6.903 7.017 7.539 8.361 9.036 9.089 8.390 7.269 6.273 5.767 5.733 5.883 5.980 6.048 6.308 6.929 7.831 8.715 9.285 9.454 9.357 9.205 9.104 9.006 8.798 8.423 7.920 7.383 6.893 6.491 6.199 6.035 6.000 6.051 6.107 + 5.624 5.582 5.855 6.756 8.121 9.295 9.566 8.700 7.123 5.610 4.752 4.642 4.980 5.422 5.839 6.304 6.890 7.541 8.133 8.608 9.016 9.400 9.665 9.608 9.109 8.289 7.475 6.957 6.763 6.666 6.415 5.971 5.531 5.317 5.359 5.476 + 6.840 6.407 6.007 6.163 6.988 8.055 8.708 8.548 7.678 6.557 5.629 5.055 4.736 4.548 4.507 4.736 5.286 6.031 6.740 7.266 7.642 8.015 8.463 8.892 9.103 8.954 8.474 7.829 7.192 6.650 6.211 5.875 5.675 5.633 5.707 5.790 + 6.112 6.171 6.386 6.866 7.602 8.369 8.781 8.502 7.514 6.213 5.200 4.883 5.174 5.577 5.613 5.250 4.949 5.260 6.303 7.604 8.455 8.500 8.034 7.736 8.054 8.799 9.299 8.980 7.862 6.541 5.695 5.572 5.892 6.189 6.239 6.160 + 5.188 5.341 5.635 6.090 6.742 7.534 8.217 8.432 7.962 6.978 5.979 5.428 5.368 5.397 5.083 4.450 4.072 4.595 6.106 7.922 9.071 9.070 8.324 7.761 8.011 8.867 9.503 9.254 8.223 7.170 6.798 7.129 7.539 7.403 6.714 6.069 + 5.249 5.522 6.110 7.018 8.112 9.083 9.540 9.224 8.192 6.839 5.678 5.027 4.839 4.826 4.778 4.790 5.177 6.120 7.384 8.384 8.621 8.098 7.354 7.036 7.355 7.921 8.116 7.676 6.957 6.631 7.058 7.928 8.501 8.259 7.381 6.611 + 5.442 5.593 6.019 6.807 7.821 8.674 8.916 8.329 7.105 5.755 4.792 4.408 4.406 4.434 4.333 4.294 4.676 5.628 6.852 7.735 7.795 7.071 6.117 5.599 5.796 6.428 6.942 6.997 6.728 6.567 6.810 7.318 7.646 7.461 6.875 6.367 + 6.098 6.571 7.277 7.882 8.136 7.965 7.441 6.720 5.990 5.431 5.148 5.084 5.023 4.746 4.267 3.928 4.191 5.232 6.658 7.668 7.602 6.476 5.045 4.277 4.632 5.746 6.754 7.008 6.547 5.962 5.801 6.080 6.329 6.106 5.455 4.885 + 5.796 5.973 6.337 6.852 7.374 7.665 7.496 6.818 5.840 4.952 4.494 4.519 4.759 4.834 4.569 4.156 4.005 4.379 5.118 5.711 5.689 5.024 4.188 3.808 4.171 5.011 5.733 5.895 5.528 5.040 4.819 4.902 4.999 4.822 4.391 4.022 + 4.768 5.057 5.581 6.196 6.657 6.713 6.269 5.492 4.741 4.339 4.355 4.552 4.586 4.293 3.853 3.660 4.002 4.797 5.593 5.881 5.461 4.603 3.857 3.657 4.023 4.584 4.878 4.710 4.255 3.874 3.798 3.954 4.062 3.911 3.551 3.250 + 4.441 5.195 6.375 7.465 7.979 7.678 6.678 5.379 4.259 3.626 3.487 3.598 3.675 3.598 3.487 3.577 4.014 4.703 5.347 5.642 5.479 5.021 4.586 4.421 4.549 4.772 4.831 4.588 4.118 3.636 3.349 3.333 3.519 3.769 3.970 4.075 + 4.544 5.286 6.313 7.039 7.126 6.622 5.802 4.915 4.082 3.376 2.922 2.855 3.167 3.632 3.956 4.037 4.069 4.360 4.992 5.665 5.904 5.485 4.679 4.068 4.065 4.567 5.053 5.049 4.532 3.922 3.677 3.895 4.268 4.417 4.259 4.040 + 4.649 5.394 6.515 7.465 7.801 7.381 6.397 5.243 4.307 3.808 3.734 3.901 4.084 4.158 4.159 4.237 4.519 4.979 5.418 5.579 5.344 4.842 4.378 4.224 4.412 4.716 4.833 4.620 4.205 3.866 3.805 3.985 4.190 4.222 4.077 3.920 + 4.255 5.015 6.107 7.002 7.427 7.459 7.307 7.040 6.533 5.669 4.573 3.623 3.191 3.370 3.922 4.493 4.879 5.101 5.257 5.339 5.236 4.907 4.529 4.407 4.716 5.303 5.769 5.788 5.377 4.871 4.623 4.706 4.896 4.918 4.725 4.518 + 4.955 5.146 5.441 5.770 6.149 6.616 7.081 7.275 6.903 5.919 4.659 3.683 3.400 3.790 4.448 4.919 5.036 4.982 5.057 5.378 5.798 6.089 6.182 6.224 6.408 6.742 7.012 6.963 6.534 5.919 5.406 5.151 5.092 5.068 4.993 4.915 + 5.095 5.414 5.935 6.510 7.024 7.379 7.432 7.019 6.092 4.873 3.821 3.381 3.667 4.366 4.968 5.157 5.033 4.966 5.229 5.744 6.178 6.291 6.186 6.225 6.668 7.386 7.928 7.898 7.294 6.507 5.990 5.905 6.054 6.133 6.030 5.886 + 4.823 5.191 5.763 6.323 6.729 6.936 6.933 6.683 6.165 5.471 4.856 4.630 4.949 5.680 6.456 6.895 6.833 6.369 5.753 5.195 4.798 4.596 4.633 4.955 5.528 6.175 6.650 6.800 6.680 6.512 6.502 6.680 6.905 7.013 6.971 6.889 + 3.869 4.439 5.418 6.530 7.463 7.970 7.950 7.464 6.686 5.823 5.059 4.546 4.404 4.697 5.365 6.181 6.802 6.917 6.443 5.596 4.795 4.434 4.663 5.332 6.115 6.722 7.044 7.156 7.203 7.277 7.372 7.421 7.373 7.238 7.080 6.975 + 4.834 5.070 5.668 6.628 7.621 8.102 7.705 6.584 5.354 4.663 4.744 5.320 5.918 6.273 6.459 6.672 6.921 6.967 6.582 5.849 5.194 5.077 5.618 6.501 7.230 7.517 7.450 7.326 7.344 7.451 7.452 7.250 6.938 6.700 6.621 6.634 + 5.022 5.438 6.243 7.283 8.221 8.646 8.312 7.344 6.206 5.435 5.323 5.777 6.439 6.952 7.157 7.092 6.866 6.536 6.114 5.656 5.311 5.256 5.568 6.145 6.753 7.172 7.313 7.234 7.062 6.892 6.755 6.640 6.541 6.463 6.415 6.396 + 4.288 4.935 5.910 6.743 7.048 6.709 5.913 5.028 4.399 4.189 4.348 4.694 5.050 5.326 5.512 5.607 5.573 5.353 4.939 4.441 4.062 3.993 4.296 4.848 5.397 5.704 5.669 5.367 4.984 4.690 4.553 4.523 4.501 4.424 4.307 4.218 + 4.591 4.878 5.425 6.124 6.750 7.018 6.726 5.888 4.747 3.645 2.846 2.430 2.335 2.486 2.876 3.531 4.384 5.197 5.639 5.485 4.800 3.946 3.372 3.330 3.720 4.181 4.354 4.126 3.673 3.279 3.101 3.057 2.933 2.595 2.129 1.790 + 4.010 4.467 5.229 6.055 6.706 7.018 6.937 6.504 5.832 5.056 4.300 3.665 3.246 3.157 3.522 4.385 5.591 6.741 7.325 7.009 5.895 4.539 3.646 3.619 4.282 5.020 5.242 4.823 4.168 3.838 4.050 4.478 4.531 3.882 2.796 1.965 + 2.478 3.475 4.912 6.105 6.729 6.948 7.126 7.427 7.664 7.506 6.816 5.796 4.861 4.393 4.587 5.443 6.770 8.156 9.001 8.754 7.311 5.270 3.691 3.425 4.465 5.899 6.591 6.067 4.871 4.052 4.212 4.957 5.251 4.393 2.715 1.369 + 2.420 3.149 4.292 5.430 6.297 6.887 7.350 7.798 8.178 8.307 8.005 7.248 6.234 5.357 5.076 5.695 7.124 8.783 9.796 9.467 7.776 5.520 3.888 3.705 4.860 6.399 7.233 6.940 6.013 5.363 5.501 6.098 6.314 5.589 4.207 3.108 + 0.729 2.160 4.180 5.714 6.189 5.855 5.486 5.734 6.659 7.745 8.338 8.123 7.327 6.551 6.390 7.098 8.436 9.769 10.365 9.775 8.126 6.115 4.648 4.300 4.948 5.888 6.370 6.161 5.672 5.537 5.988 6.589 6.583 5.581 3.993 2.796 + 1.407 2.638 4.358 5.644 6.065 5.914 5.869 6.394 7.396 8.346 8.732 8.429 7.750 7.216 7.248 7.967 9.139 10.236 10.625 9.877 8.088 5.960 4.476 4.292 5.262 6.514 7.100 6.719 5.926 5.598 6.117 6.966 7.153 6.108 4.277 2.858 + 2.843 3.583 4.669 5.576 5.983 5.962 5.890 6.161 6.893 7.833 8.517 8.597 8.095 7.449 7.260 7.902 9.213 10.508 10.948 10.070 8.134 6.029 4.742 4.742 5.701 6.766 7.196 6.875 6.315 6.150 6.549 7.034 6.878 5.761 4.126 2.925 + 2.911 3.234 3.822 4.532 5.167 5.582 5.810 6.078 6.637 7.517 8.429 8.938 8.816 8.288 7.937 8.271 9.282 10.354 10.646 9.694 7.796 5.865 4.853 5.146 6.355 7.634 8.263 8.061 7.380 6.728 6.350 6.096 5.632 4.800 3.812 3.132 + 2.656 3.211 3.998 4.602 4.806 4.730 4.733 5.162 6.109 7.343 8.434 8.991 8.895 8.392 7.986 8.145 8.968 10.026 10.554 9.928 8.154 5.992 4.546 4.557 5.886 7.594 8.596 8.390 7.324 6.211 5.630 5.498 5.267 4.510 3.384 2.534 + 3.035 3.291 3.645 3.893 3.926 3.828 3.853 4.299 5.321 6.793 8.299 9.305 9.465 8.891 8.163 8.003 8.753 10.028 10.866 10.375 8.432 5.912 4.170 4.107 5.516 7.240 8.046 7.545 6.407 5.711 5.977 6.718 6.889 5.856 4.031 2.610 + 3.982 3.925 3.925 4.099 4.464 4.916 5.344 5.755 6.290 7.081 8.066 8.939 9.340 9.165 8.734 8.605 9.135 10.094 10.723 10.256 8.552 6.333 4.751 4.585 5.669 7.029 7.642 7.212 6.336 5.908 6.297 6.989 7.033 5.907 4.068 2.668 + 1.115 1.953 3.216 4.350 4.991 5.147 5.120 5.279 5.849 6.816 7.953 8.924 9.441 9.433 9.139 9.000 9.340 10.046 10.523 10.082 8.517 6.424 4.891 4.734 5.853 7.265 7.861 7.281 6.170 5.580 6.006 6.918 7.211 6.209 4.340 2.867 + 1.946 2.323 2.953 3.664 4.324 4.880 5.334 5.736 6.181 6.795 7.640 8.611 9.427 9.811 9.725 9.463 9.434 9.771 10.123 9.875 8.693 6.928 5.481 5.150 5.970 7.147 7.667 7.126 6.037 5.341 5.540 6.219 6.413 5.497 3.827 2.512 + 1.151 1.862 2.956 4.024 4.860 5.518 6.157 6.842 7.506 8.067 8.533 8.965 9.352 9.578 9.556 9.380 9.292 9.428 9.581 9.282 8.221 6.653 5.365 5.126 6.042 7.400 8.203 7.963 7.072 6.396 6.435 6.836 6.707 5.489 3.586 2.143 + -1.014 0.144 1.935 3.694 5.049 6.031 6.834 7.531 8.021 8.234 8.292 8.430 8.748 9.089 9.205 9.063 8.924 9.057 9.372 9.379 8.633 7.259 6.031 5.795 6.708 8.000 8.562 7.890 6.539 5.622 5.777 6.541 6.743 5.602 3.534 1.905 + 1.104 1.557 2.368 3.429 4.670 5.992 7.173 7.911 8.035 7.707 7.369 7.410 7.833 8.259 8.311 8.025 7.861 8.249 9.074 9.651 9.292 7.985 6.519 5.864 6.315 7.205 7.493 6.734 5.526 4.962 5.562 6.673 6.966 5.633 3.230 1.348 + 0.696 1.327 2.402 3.674 4.953 6.107 6.994 7.453 7.438 7.145 6.953 7.165 7.746 8.350 8.641 8.633 8.680 9.091 9.714 9.951 9.254 7.704 6.076 5.269 5.553 6.331 6.675 6.186 5.360 5.106 5.806 6.820 6.956 5.547 3.179 1.361 + 1.937 2.208 2.718 3.428 4.293 5.249 6.182 6.968 7.535 7.915 8.209 8.475 8.679 8.754 8.733 8.791 9.086 9.528 9.703 9.136 7.728 5.993 4.810 4.788 5.763 6.861 7.175 6.492 5.462 5.017 5.514 6.364 6.507 5.354 3.390 1.880 + 4.006 3.975 3.915 3.909 4.139 4.774 5.790 6.919 7.803 8.252 8.363 8.375 8.431 8.472 8.389 8.235 8.232 8.509 8.827 8.643 7.558 5.782 4.149 3.552 4.235 5.543 6.429 6.285 5.408 4.662 4.656 5.181 5.426 4.778 3.458 2.383 + 4.412 4.283 4.134 4.121 4.364 4.867 5.508 6.101 6.503 6.673 6.665 6.556 6.396 6.226 6.121 6.187 6.453 6.759 6.768 6.166 4.943 3.506 2.489 2.330 2.950 3.798 4.266 4.145 3.750 3.606 3.949 4.492 4.667 4.142 3.159 2.385 + 4.074 3.949 3.894 4.125 4.681 5.379 5.955 6.263 6.361 6.409 6.495 6.547 6.434 6.138 5.838 5.786 6.063 6.431 6.445 5.782 4.533 3.214 2.449 2.548 3.288 4.079 4.380 4.070 3.476 3.073 3.100 3.396 3.575 3.376 2.894 2.493 + 3.455 3.646 3.836 3.889 3.948 4.350 5.283 6.507 7.446 7.606 6.972 6.025 5.368 5.293 5.645 6.051 6.247 6.205 5.993 5.611 4.995 4.201 3.513 3.278 3.603 4.185 4.522 4.333 3.813 3.453 3.562 3.950 4.077 3.568 2.608 1.844 + 4.820 4.542 4.058 3.565 3.378 3.782 4.805 6.105 7.108 7.348 6.770 5.769 4.935 4.697 5.101 5.852 6.513 6.728 6.337 5.403 4.194 3.113 2.550 2.685 3.345 4.066 4.375 4.104 3.491 2.976 2.839 2.989 3.072 2.817 2.298 1.874 + 5.434 4.709 3.742 3.188 3.444 4.397 5.497 6.119 5.962 5.217 4.394 3.964 4.063 4.481 4.896 5.129 5.221 5.281 5.294 5.094 4.534 3.700 2.929 2.586 2.779 3.256 3.600 3.562 3.231 2.912 2.807 2.821 2.654 2.116 1.358 0.800 + 5.330 4.900 4.250 3.674 3.377 3.380 3.553 3.744 3.913 4.152 4.599 5.295 6.106 6.780 7.086 6.951 6.496 5.943 5.481 5.188 5.048 5.027 5.131 5.387 5.773 6.168 6.392 6.305 5.903 5.339 4.838 4.583 4.624 4.877 5.181 5.380 + 6.991 6.393 5.658 5.336 5.648 6.328 6.863 6.922 6.616 6.406 6.741 7.719 9.023 10.127 10.622 10.403 9.659 8.719 7.898 7.421 7.403 7.845 8.630 9.535 10.292 10.689 10.641 10.204 9.533 8.824 8.256 7.963 7.992 8.276 8.649 8.906 + 6.287 6.548 7.002 7.513 7.903 8.033 7.894 7.633 7.472 7.580 7.972 8.534 9.127 9.672 10.146 10.500 10.613 10.359 9.743 9.002 8.528 8.651 9.410 10.498 11.424 11.788 11.481 10.705 9.810 9.097 8.705 8.607 8.696 8.856 9.004 9.090 + 7.949 7.262 6.472 6.257 6.842 7.843 8.613 8.775 8.477 8.201 8.336 8.903 9.630 10.229 10.596 10.774 10.786 10.563 10.061 9.427 8.997 9.085 9.729 10.628 11.342 11.579 11.341 10.832 10.257 9.703 9.198 8.815 8.679 8.850 9.211 9.500 + 8.993 8.449 7.782 7.508 7.837 8.523 9.064 9.088 8.625 8.073 7.904 8.347 9.264 10.260 10.922 11.015 10.539 9.690 8.768 8.091 7.903 8.282 9.092 10.025 10.731 10.978 10.755 10.242 9.690 9.294 9.122 9.139 9.261 9.410 9.534 9.603 + 8.319 8.296 8.387 8.721 9.253 9.749 9.937 9.720 9.269 8.917 8.939 9.369 10.003 10.554 10.830 10.800 10.542 10.132 9.618 9.071 8.654 8.585 9.007 9.833 10.737 11.309 11.303 10.793 10.116 9.639 9.523 9.645 9.737 9.615 9.326 9.084 + 9.131 8.704 8.269 8.297 8.889 9.686 10.152 9.997 9.371 8.705 8.377 8.505 8.981 9.647 10.393 11.098 11.553 11.512 10.897 9.960 9.200 9.056 9.593 10.454 11.124 11.288 11.010 10.604 10.347 10.294 10.303 10.222 10.021 9.784 9.604 9.519 + 9.665 8.972 8.086 7.624 7.859 8.562 9.240 9.533 9.439 9.224 9.155 9.318 9.640 10.033 10.470 10.922 11.258 11.275 10.863 10.163 9.539 9.352 9.709 10.399 11.055 11.400 11.376 11.081 10.635 10.112 9.591 9.224 9.181 9.512 10.040 10.435 + 10.470 9.936 9.270 8.965 9.241 9.910 10.551 10.826 10.678 10.290 9.900 9.661 9.629 9.809 10.178 10.624 10.932 10.878 10.397 9.688 9.115 8.970 9.273 9.779 10.177 10.306 10.208 10.010 9.769 9.454 9.058 8.699 8.573 8.782 9.203 9.537 + 10.006 9.623 9.214 9.157 9.481 9.834 9.800 9.277 8.573 8.143 8.218 8.667 9.168 9.496 9.644 9.686 9.597 9.232 8.524 7.672 7.092 7.115 7.702 8.433 8.817 8.664 8.198 7.840 7.854 8.170 8.505 8.626 8.511 8.303 8.142 8.071 + 8.114 7.555 6.877 6.624 7.034 7.865 8.579 8.735 8.292 7.604 7.151 7.220 7.757 8.460 8.998 9.177 8.984 8.512 7.892 7.258 6.753 6.505 6.570 6.883 7.279 7.583 7.720 7.750 7.798 7.937 8.111 8.160 7.948 7.477 6.926 6.556 + 8.367 7.615 6.634 6.090 6.331 7.163 8.036 8.435 8.196 7.532 6.823 6.352 6.198 6.279 6.473 6.674 6.805 6.809 6.673 6.465 6.307 6.299 6.442 6.636 6.766 6.803 6.823 6.933 7.161 7.422 7.582 7.560 7.381 7.146 6.951 6.847 + 7.284 6.888 6.243 5.587 5.156 5.092 5.385 5.866 6.271 6.364 6.070 5.538 5.076 4.968 5.280 5.805 6.193 6.200 5.863 5.457 5.271 5.383 5.615 5.719 5.610 5.455 5.522 5.918 6.466 6.819 6.735 6.263 5.696 5.325 5.225 5.256 + 5.950 5.293 4.517 4.235 4.622 5.289 5.636 5.355 4.649 4.007 3.781 3.948 4.226 4.376 4.384 4.374 4.410 4.400 4.227 3.934 3.745 3.879 4.338 4.873 5.192 5.201 5.054 4.980 5.051 5.134 5.050 4.780 4.494 4.383 4.471 4.599 + 3.925 3.559 3.265 3.485 4.206 4.944 5.158 4.726 4.008 3.485 3.328 3.325 3.211 3.017 3.070 3.618 4.467 5.040 4.845 3.940 2.947 2.571 3.046 3.991 4.777 5.066 5.020 5.044 5.353 5.768 5.913 5.586 4.922 4.250 3.808 3.623 + 4.607 3.846 2.927 2.551 2.953 3.744 4.274 4.180 3.638 3.146 3.072 3.373 3.718 3.828 3.720 3.637 3.780 4.124 4.472 4.666 4.724 4.780 4.909 5.040 5.048 4.920 4.802 4.877 5.177 5.521 5.639 5.379 4.810 4.154 3.628 3.349 + 5.093 5.065 4.992 4.861 4.684 4.495 4.332 4.201 4.075 3.923 3.748 3.610 3.597 3.760 4.065 4.393 4.601 4.611 4.460 4.275 4.197 4.288 4.502 4.730 4.873 4.915 4.911 4.941 5.032 5.133 5.141 4.966 4.594 4.106 3.648 3.371 + 5.798 5.512 5.152 4.963 5.018 5.174 5.197 4.952 4.492 3.989 3.603 3.411 3.441 3.717 4.245 4.935 5.550 5.798 5.517 4.821 4.062 3.619 3.669 4.104 4.653 5.083 5.321 5.427 5.473 5.467 5.375 5.195 4.990 4.840 4.778 4.770 + 5.582 5.418 5.006 4.348 3.663 3.316 3.537 4.204 4.891 5.176 4.964 4.544 4.342 4.585 5.152 5.705 5.965 5.871 5.543 5.132 4.739 4.437 4.333 4.539 5.049 5.679 6.147 6.279 6.137 5.954 5.904 5.938 5.839 5.455 4.893 4.473 + 6.107 5.778 5.271 4.804 4.544 4.531 4.681 4.857 4.953 4.934 4.832 4.696 4.561 4.449 4.383 4.401 4.534 4.776 5.062 5.292 5.381 5.307 5.131 4.961 4.894 4.976 5.190 5.477 5.765 5.980 6.059 5.959 5.681 5.290 4.907 4.670 + 4.506 4.436 4.468 4.782 5.382 6.050 6.483 6.491 6.106 5.522 4.948 4.504 4.213 4.081 4.131 4.375 4.753 5.122 5.337 5.350 5.247 5.172 5.213 5.340 5.451 5.482 5.471 5.527 5.724 6.015 6.242 6.233 5.917 5.379 4.823 4.472 + 5.170 5.681 6.308 6.591 6.377 5.905 5.575 5.602 5.871 6.096 6.086 5.877 5.637 5.471 5.342 5.167 4.951 4.813 4.848 5.007 5.116 5.050 4.878 4.824 5.055 5.509 5.929 6.082 5.955 5.746 5.653 5.673 5.623 5.344 4.899 4.555 + 11.161 10.337 9.080 7.900 7.109 6.703 6.506 6.402 6.432 6.687 7.117 7.474 7.474 7.025 6.330 5.748 5.528 5.648 5.869 5.961 5.886 5.794 5.854 6.085 6.338 6.431 6.310 6.101 5.995 6.091 6.307 6.442 6.325 5.946 5.471 5.145 + 8.923 8.582 7.938 7.142 6.469 6.175 6.280 6.503 6.463 5.997 5.323 4.859 4.857 5.179 5.432 5.336 4.983 4.724 4.813 5.148 5.372 5.244 4.894 4.716 4.984 5.575 6.075 6.181 5.990 5.884 6.108 6.470 6.479 5.823 4.740 3.908 + 3.815 3.933 4.151 4.466 4.914 5.504 6.142 6.620 6.736 6.457 5.973 5.570 5.406 5.387 5.262 4.879 4.366 4.065 4.262 4.932 5.719 6.184 6.124 5.697 5.282 5.192 5.477 5.941 6.320 6.448 6.307 5.965 5.500 4.994 4.549 4.283 + 5.567 5.351 5.130 5.130 5.387 5.728 5.936 5.944 5.849 5.775 5.721 5.579 5.290 4.966 4.835 5.024 5.412 5.705 5.683 5.410 5.183 5.264 5.638 6.026 6.135 5.933 5.669 5.651 5.962 6.383 6.573 6.345 5.781 5.135 4.638 4.385 + 6.450 6.191 5.800 5.452 5.267 5.252 5.321 5.373 5.370 5.345 5.359 5.431 5.508 5.507 5.378 5.158 4.946 4.831 4.831 4.886 4.913 4.882 4.837 4.858 4.995 5.226 5.479 5.679 5.796 5.833 5.790 5.646 5.378 5.010 4.641 4.407 + 6.980 7.034 6.946 6.555 5.941 5.409 5.225 5.380 5.595 5.581 5.297 4.968 4.849 4.979 5.173 5.227 5.135 5.084 5.233 5.514 5.680 5.549 5.218 5.003 5.154 5.616 6.062 6.185 5.964 5.645 5.479 5.462 5.353 4.950 4.342 3.879 + 10.021 9.590 8.910 8.243 7.790 7.592 7.522 7.359 6.899 6.070 5.004 4.016 3.484 3.643 4.416 5.404 6.079 6.097 5.515 4.750 4.296 4.389 4.883 5.401 5.644 5.593 5.462 5.463 5.607 5.711 5.586 5.214 4.770 4.457 4.344 4.343 + 7.305 7.501 7.815 8.096 8.150 7.837 7.150 6.243 5.353 4.682 4.331 4.314 4.613 5.170 5.827 6.300 6.286 5.677 4.719 3.923 3.750 4.275 5.105 5.660 5.597 5.047 4.482 4.315 4.583 4.964 5.078 4.803 4.329 3.945 3.785 3.771 + 6.640 6.965 7.467 7.944 8.249 8.365 8.371 8.371 8.420 8.499 8.553 8.543 8.476 8.404 8.390 8.470 8.620 8.756 8.764 8.555 8.120 7.547 6.977 6.520 6.202 5.967 5.745 5.534 5.405 5.441 5.642 5.900 6.059 6.034 5.877 5.736 + 8.672 8.737 8.842 8.950 9.030 9.070 9.077 9.076 9.096 9.157 9.248 9.327 9.343 9.281 9.196 9.191 9.334 9.579 9.751 9.636 9.127 8.322 7.479 6.855 6.545 6.444 6.364 6.206 6.038 6.027 6.271 6.703 7.128 7.376 7.426 7.391 + 7.185 7.375 7.540 7.429 6.972 6.318 5.700 5.224 4.799 4.258 3.562 2.892 2.530 2.627 3.048 3.443 3.499 3.175 2.726 2.517 2.745 3.304 3.877 4.171 4.113 3.875 3.719 3.802 4.082 4.377 4.503 4.395 4.119 3.805 3.561 3.434 + 7.024 7.224 7.366 7.168 6.588 5.843 5.205 4.776 4.456 4.123 3.804 3.661 3.788 4.057 4.182 3.965 3.493 3.065 2.933 3.078 3.265 3.294 3.204 3.218 3.481 3.875 4.107 4.003 3.708 3.566 3.784 4.193 4.370 4.025 3.308 2.728 + 7.667 7.538 7.129 6.351 5.377 4.591 4.312 4.533 4.923 5.099 4.926 4.575 4.310 4.230 4.195 4.006 3.623 3.215 2.993 3.011 3.139 3.222 3.243 3.320 3.537 3.815 3.961 3.879 3.705 3.709 4.024 4.475 4.689 4.428 3.833 3.344 + 6.008 5.831 5.543 5.261 5.124 5.204 5.443 5.652 5.621 5.270 4.715 4.206 3.945 3.953 4.067 4.083 3.919 3.673 3.531 3.617 3.902 4.239 4.467 4.510 4.392 4.195 4.005 3.890 3.894 4.018 4.200 4.320 4.265 4.011 3.668 3.425 + 5.432 5.582 5.767 5.835 5.695 5.389 5.072 4.926 5.048 5.384 5.767 6.017 6.051 5.916 5.739 5.627 5.609 5.632 5.634 5.597 5.550 5.528 5.519 5.475 5.360 5.209 5.134 5.259 5.629 6.161 6.673 6.978 6.983 6.735 6.399 6.167 + 4.767 4.697 4.658 4.740 4.903 4.976 4.793 4.338 3.791 3.406 3.330 3.511 3.758 3.902 3.917 3.901 3.956 4.077 4.150 4.066 3.833 3.584 3.471 3.529 3.637 3.611 3.355 2.949 2.599 2.483 2.622 2.861 2.993 2.910 2.681 2.491 + 5.884 5.475 4.815 4.143 3.660 3.447 3.446 3.526 3.575 3.553 3.491 3.437 3.409 3.395 3.384 3.404 3.505 3.704 3.943 4.108 4.099 3.909 3.629 3.378 3.221 3.132 3.044 2.933 2.841 2.831 2.898 2.939 2.821 2.501 2.091 1.803 + 5.347 5.320 5.262 5.168 5.031 4.864 4.698 4.566 4.474 4.378 4.217 3.972 3.706 3.539 3.558 3.736 3.937 4.008 3.896 3.681 3.500 3.422 3.390 3.288 3.061 2.784 2.614 2.648 2.833 3.003 3.010 2.840 2.610 2.454 2.415 2.434 + 5.306 5.193 5.017 4.823 4.609 4.350 4.064 3.843 3.794 3.937 4.156 4.272 4.193 3.993 3.852 3.894 4.083 4.252 4.267 4.137 3.991 3.932 3.916 3.785 3.430 2.928 2.520 2.430 2.683 3.077 3.331 3.281 2.964 2.552 2.214 2.036 + 3.356 3.697 4.290 4.969 5.519 5.754 5.604 5.165 4.661 4.334 4.309 4.530 4.802 4.916 4.777 4.440 4.059 3.780 3.663 3.673 3.736 3.793 3.824 3.822 3.779 3.680 3.534 3.391 3.321 3.359 3.460 3.513 3.413 3.145 2.813 2.584 + 2.669 3.327 4.221 4.849 5.003 4.852 4.698 4.661 4.599 4.321 3.844 3.426 3.344 3.626 4.025 4.243 4.197 4.054 4.025 4.129 4.172 3.963 3.525 3.103 2.931 3.015 3.141 3.106 2.930 2.821 2.938 3.179 3.240 2.909 2.306 1.829 + 5.483 4.792 3.944 3.558 3.838 4.438 4.800 4.643 4.179 3.890 4.078 4.607 5.040 5.024 4.576 4.027 3.723 3.746 3.911 3.978 3.879 3.742 3.724 3.838 3.928 3.820 3.475 3.028 2.679 2.547 2.611 2.759 2.885 2.946 2.956 2.950 + 4.274 4.301 4.401 4.579 4.723 4.673 4.374 3.979 3.769 3.928 4.358 4.725 4.711 4.274 3.694 3.357 3.456 3.852 4.213 4.288 4.094 3.857 3.787 3.882 3.941 3.753 3.297 2.777 2.468 2.514 2.817 3.115 3.170 2.923 2.527 2.236 + 4.708 4.419 4.103 4.054 4.358 4.833 5.199 5.297 5.169 4.954 4.739 4.516 4.274 4.076 4.027 4.147 4.309 4.324 4.131 3.875 3.787 3.954 4.198 4.224 3.889 3.365 3.006 3.031 3.321 3.521 3.373 2.959 2.633 2.685 3.065 3.420 + 3.039 3.488 4.184 4.848 5.285 5.446 5.381 5.154 4.816 4.442 4.159 4.106 4.335 4.751 5.160 5.405 5.474 5.489 5.586 5.798 6.049 6.244 6.372 6.506 6.719 6.996 7.249 7.408 7.495 7.598 7.770 7.943 7.977 7.794 7.475 7.228 + 4.177 4.598 5.234 5.783 6.018 5.887 5.513 5.096 4.789 4.630 4.553 4.463 4.309 4.108 3.929 3.835 3.847 3.943 4.077 4.223 4.385 4.585 4.842 5.139 5.431 5.666 5.818 5.905 5.974 6.065 6.178 6.276 6.312 6.271 6.185 6.118 + 5.437 5.226 5.116 5.390 5.958 6.368 6.180 5.371 4.377 3.744 3.674 3.891 3.928 3.553 2.965 2.591 2.700 3.196 3.734 4.037 4.088 4.065 4.121 4.243 4.315 4.270 4.152 4.032 3.888 3.604 3.121 2.556 2.162 2.117 2.353 2.595 + 5.037 5.349 5.776 6.039 5.936 5.454 4.774 4.153 3.781 3.681 3.729 3.756 3.664 3.473 3.272 3.140 3.084 3.059 3.026 2.989 2.982 3.021 3.065 3.044 2.916 2.717 2.545 2.491 2.577 2.743 2.900 2.988 3.008 2.994 2.980 2.976 + 4.737 4.618 4.391 4.081 3.738 3.437 3.266 3.286 3.486 3.769 3.988 4.036 3.911 3.721 3.605 3.624 3.718 3.749 3.625 3.377 3.155 3.116 3.308 3.633 3.913 4.005 3.885 3.643 3.404 3.252 3.197 3.196 3.201 3.191 3.169 3.151 + 3.014 3.477 4.035 4.282 4.116 3.779 3.570 3.540 3.471 3.160 2.696 2.437 2.675 3.320 3.913 3.993 3.489 2.786 2.398 2.561 3.083 3.569 3.760 3.691 3.549 3.441 3.316 3.108 2.898 2.891 3.201 3.670 3.947 3.791 3.305 2.886 + 1.739 2.383 3.222 3.723 3.666 3.249 2.835 2.618 2.515 2.352 2.111 1.976 2.125 2.514 2.870 2.942 2.736 2.509 2.524 2.796 3.086 3.153 2.986 2.799 2.787 2.902 2.887 2.550 1.998 1.586 1.616 2.056 2.567 2.806 2.719 2.545 + 2.224 2.433 2.612 2.545 2.286 2.127 2.302 2.725 3.037 2.939 2.491 2.078 2.068 2.466 2.922 3.059 2.829 2.551 2.602 3.054 3.607 3.863 3.669 3.223 2.850 2.709 2.712 2.692 2.631 2.669 2.905 3.204 3.261 2.879 2.211 1.690 + 2.924 2.622 2.330 2.362 2.713 3.038 2.969 2.463 1.863 1.608 1.857 2.368 2.731 2.729 2.503 2.386 2.581 2.992 3.342 3.441 3.338 3.236 3.259 3.331 3.267 2.976 2.580 2.320 2.354 2.624 2.917 3.033 2.922 2.678 2.440 2.304 + 2.242 2.750 3.360 3.596 3.304 2.757 2.410 2.513 2.929 3.280 3.271 2.916 2.484 2.254 2.309 2.530 2.756 2.935 3.125 3.385 3.669 3.837 3.767 3.453 3.008 2.587 2.310 2.234 2.361 2.638 2.942 3.098 2.954 2.506 1.938 1.543 + 2.856 3.236 3.687 3.837 3.531 2.922 2.322 1.958 1.843 1.855 1.893 1.955 2.086 2.255 2.348 2.266 2.055 1.905 2.009 2.383 2.834 3.096 3.035 2.742 2.447 2.337 2.432 2.613 2.737 2.744 2.658 2.522 2.354 2.157 1.962 1.836 + 3.201 3.250 3.215 2.943 2.415 1.805 1.401 1.420 1.842 2.396 2.724 2.618 2.163 1.677 1.490 1.717 2.209 2.682 2.939 2.976 2.927 2.907 2.904 2.820 2.596 2.306 2.102 2.084 2.206 2.313 2.287 2.152 2.049 2.095 2.270 2.426 + 3.738 3.543 3.061 2.286 1.449 0.937 1.012 1.582 2.260 2.654 2.661 2.473 2.341 2.321 2.267 2.049 1.766 1.706 2.077 2.777 3.431 3.686 3.492 3.113 2.860 2.810 2.782 2.574 2.202 1.914 1.945 2.276 2.634 2.748 2.592 2.395 + 2.997 2.891 2.734 2.618 2.631 2.788 3.000 3.115 3.032 2.797 2.583 2.562 2.747 2.969 3.006 2.772 2.393 2.104 2.051 2.180 2.307 2.304 2.212 2.180 2.294 2.476 2.557 2.453 2.272 2.220 2.389 2.631 2.664 2.325 1.753 1.314 + 3.130 3.095 3.008 2.857 2.659 2.461 2.322 2.275 2.309 2.377 2.424 2.419 2.369 2.307 2.267 2.259 2.261 2.226 2.119 1.950 1.784 1.718 1.824 2.098 2.443 2.714 2.797 2.676 2.438 2.210 2.081 2.055 2.072 2.070 2.033 1.996 + 2.052 2.511 3.036 3.192 2.873 2.374 2.108 2.247 2.605 2.847 2.797 2.551 2.317 2.195 2.107 1.947 1.755 1.700 1.896 2.235 2.442 2.325 1.967 1.671 1.686 1.990 2.338 2.530 2.624 2.877 3.442 4.154 4.617 4.554 4.084 3.650 + 3.780 3.735 3.577 3.292 3.013 2.944 3.160 3.493 3.649 3.470 3.099 2.866 2.978 3.299 3.451 3.146 2.472 1.832 1.609 1.833 2.166 2.205 1.839 1.325 1.059 1.243 1.774 2.392 2.932 3.406 3.882 4.312 4.523 4.395 4.030 3.720 + 4.145 3.891 3.558 3.377 3.477 3.802 4.158 4.342 4.268 3.998 3.671 3.406 3.233 3.114 3.002 2.883 2.771 2.667 2.542 2.357 2.121 1.907 1.816 1.898 2.099 2.290 2.354 2.275 2.135 2.040 2.016 1.982 1.819 1.489 1.092 0.819 + 2.593 3.059 3.568 3.656 3.226 2.634 2.388 2.719 3.416 4.037 4.273 4.144 3.878 3.650 3.433 3.100 2.640 2.234 2.112 2.326 2.675 2.864 2.747 2.446 2.217 2.218 2.382 2.499 2.413 2.151 1.864 1.682 1.620 1.603 1.575 1.544 + 3.748 3.741 3.632 3.391 3.174 3.237 3.691 4.331 4.749 4.651 4.104 3.466 3.062 2.902 2.709 2.233 1.539 0.991 0.930 1.347 1.867 2.059 1.801 1.360 1.138 1.314 1.721 2.025 2.031 1.812 1.586 1.478 1.435 1.328 1.133 0.969 + 1.277 1.737 2.433 3.083 3.538 3.836 4.084 4.296 4.325 3.983 3.225 2.255 1.437 1.080 1.254 1.771 2.321 2.668 2.753 2.672 2.564 2.509 2.504 2.501 2.453 2.345 2.195 2.035 1.902 1.822 1.798 1.811 1.827 1.820 1.792 1.767 + 4.389 4.689 4.912 4.719 4.196 3.825 4.020 4.683 5.229 5.067 4.111 2.850 1.915 1.575 1.615 1.660 1.596 1.652 2.085 2.822 3.454 3.595 3.264 2.876 2.853 3.228 3.620 3.621 3.203 2.737 2.627 2.914 3.250 3.261 2.922 2.576 + 5.126 5.455 5.870 6.080 5.967 5.660 5.406 5.369 5.514 5.671 5.679 5.491 5.153 4.720 4.215 3.664 3.168 2.890 2.956 3.332 3.803 4.096 4.058 3.750 3.391 3.187 3.192 3.293 3.323 3.186 2.917 2.637 2.458 2.415 2.461 2.515 + 3.125 3.539 4.191 4.852 5.375 5.743 6.003 6.171 6.209 6.069 5.753 5.309 4.782 4.189 3.556 2.976 2.618 2.619 2.969 3.483 3.925 4.172 4.287 4.411 4.589 4.689 4.523 4.053 3.485 3.136 3.179 3.488 3.734 3.672 3.346 3.049 + 3.596 4.295 5.177 5.647 5.518 5.120 4.958 5.247 5.744 5.996 5.748 5.132 4.481 4.006 3.632 3.160 2.548 2.025 1.922 2.384 3.233 4.108 4.723 5.013 5.062 4.943 4.656 4.207 3.721 3.405 3.380 3.538 3.611 3.400 2.974 2.629 + 4.828 4.782 4.784 4.936 5.253 5.615 5.838 5.796 5.518 5.177 4.974 4.991 5.126 5.166 4.951 4.493 3.979 3.639 3.593 3.789 4.060 4.257 4.323 4.284 4.167 3.952 3.598 3.110 2.573 2.102 1.742 1.434 1.061 0.577 0.075 -0.253 + 4.569 4.964 5.474 5.745 5.605 5.176 4.758 4.591 4.667 4.744 4.549 4.001 3.285 2.726 2.554 2.739 3.020 3.107 2.885 2.496 2.227 2.298 2.710 3.242 3.595 3.575 3.185 2.596 2.024 1.602 1.342 1.164 0.982 0.766 0.555 0.422 + 4.649 4.715 4.829 4.974 5.142 5.325 5.483 5.549 5.474 5.278 5.056 4.912 4.877 4.868 4.749 4.442 3.991 3.541 3.237 3.139 3.204 3.347 3.493 3.583 3.541 3.287 2.785 2.120 1.492 1.102 1.017 1.105 1.138 0.970 0.658 0.410 + 5.048 5.210 5.407 5.466 5.283 4.917 4.582 4.528 4.867 5.463 5.974 6.043 5.531 4.616 3.696 3.132 3.029 3.201 3.336 3.237 2.953 2.713 2.719 2.974 3.265 3.322 3.018 2.451 1.867 1.482 1.333 1.284 1.146 0.835 0.444 0.170 + 4.016 4.261 4.628 4.955 5.144 5.217 5.270 5.383 5.535 5.610 5.481 5.110 4.592 4.088 3.716 3.478 3.277 3.023 2.726 2.509 2.511 2.765 3.147 3.440 3.469 3.210 2.789 2.385 2.108 1.942 1.781 1.525 1.147 0.709 0.325 0.102 + 4.864 5.123 5.483 5.747 5.837 5.846 5.949 6.241 6.633 6.889 6.791 6.303 5.604 4.970 4.589 4.440 4.347 4.129 3.752 3.352 3.116 3.137 3.341 3.549 3.600 3.446 3.137 2.747 2.306 1.811 1.283 0.805 0.486 0.383 0.439 0.522 + 5.959 6.311 6.727 6.871 6.634 6.191 5.816 5.646 5.605 5.536 5.386 5.243 5.198 5.204 5.076 4.664 4.027 3.427 3.145 3.280 3.708 4.209 4.624 4.889 4.949 4.694 4.032 3.040 2.016 1.323 1.116 1.204 1.189 0.808 0.169 -0.327 + 5.869 5.908 5.978 6.048 6.067 5.977 5.757 5.440 5.101 4.799 4.531 4.233 3.836 3.339 2.837 2.472 2.348 2.462 2.727 3.048 3.395 3.788 4.223 4.587 4.679 4.345 3.623 2.788 2.208 2.101 2.366 2.627 2.496 1.855 0.976 0.349 + 5.750 5.914 6.223 6.581 6.804 6.720 6.319 5.808 5.467 5.418 5.488 5.346 4.788 3.948 3.216 2.923 3.057 3.276 3.212 2.812 2.412 2.461 3.132 4.137 4.907 4.990 4.345 3.338 2.446 1.941 1.760 1.632 1.314 0.770 0.173 -0.217 + 5.530 5.152 4.826 4.953 5.461 5.835 5.606 4.837 4.097 3.933 4.331 4.697 4.399 3.369 2.217 1.733 2.234 3.342 4.344 4.791 4.782 4.730 4.892 5.134 5.118 4.672 3.960 3.287 2.794 2.343 1.729 0.956 0.279 -0.033 0.027 0.193 + 6.789 6.654 6.512 6.502 6.639 6.762 6.627 6.094 5.266 4.467 4.044 4.131 4.548 4.931 4.995 4.740 4.424 4.334 4.553 4.900 5.100 5.022 4.765 4.533 4.414 4.285 3.926 3.259 2.460 1.846 1.623 1.711 1.828 1.735 1.442 1.184 + 6.788 7.027 7.322 7.491 7.500 7.415 7.212 6.707 5.738 4.463 3.412 3.161 3.847 4.973 5.739 5.658 4.928 4.212 4.045 4.392 4.763 4.749 4.434 4.281 4.612 5.214 5.478 4.979 3.917 2.992 2.790 3.272 3.833 3.883 3.394 2.886 + 6.343 6.426 6.590 6.847 7.189 7.535 7.685 7.403 6.608 5.523 4.610 4.287 4.608 4.061 4.150 4.225 4.370 4.562 4.709 4.766 4.788 4.878 5.069 5.264 5.306 5.109 4.758 4.461 4.406 4.620 4.941 5.124 5.002 4.595 4.094 3.756 + 6.491 6.857 7.363 7.748 7.914 7.922 7.826 7.544 6.925 5.980 5.011 4.468 4.592 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 6.566 6.834 7.228 7.588 7.835 7.959 7.915 7.577 6.848 5.838 4.909 4.471 4.674 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 6.887 7.320 7.914 8.354 8.499 8.403 8.132 7.623 6.767 5.641 4.622 4.184 4.501 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 5.993 6.695 7.621 8.216 8.272 7.986 7.655 7.347 6.898 6.210 5.506 5.211 5.543 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 7.139 7.545 8.077 8.373 8.222 7.651 6.841 6.004 5.331 5.005 5.169 5.806 6.629 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 7.237 7.351 7.614 7.997 8.315 8.271 7.636 6.456 5.103 4.104 3.843 4.324 5.162 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 9.092 9.450 9.644 9.145 7.969 6.737 6.177 6.516 7.305 7.812 7.615 6.876 6.090 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 10.085 10.506 10.804 10.393 9.196 7.746 6.750 6.516 6.745 6.839 6.424 5.621 4.860 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 7.736 7.387 7.006 6.928 7.189 7.488 7.449 6.958 6.248 5.689 5.466 5.462 5.405 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 5.513 5.759 6.196 6.674 6.949 6.777 6.082 5.044 4.038 3.413 3.291 3.527 3.849 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 4.655 4.977 5.609 6.413 7.055 7.141 6.484 5.299 4.111 3.426 3.408 3.826 4.293 4.570 4.688 4.813 5.031 5.267 5.408 5.468 5.612 5.986 6.531 6.970 7.008 6.573 5.888 5.300 5.036 5.071 5.216 5.306 5.308 5.291 5.305 5.334 + 7.449 7.303 7.194 7.328 7.744 8.246 8.511 8.307 7.642 6.765 6.016 5.635 5.655 5.921 6.201 6.311 6.193 5.930 5.711 5.747 6.173 6.956 7.875 8.592 8.814 8.453 7.690 6.891 6.403 6.365 6.641 6.919 6.923 6.584 6.082 5.718 + 11.527 11.035 10.390 10.044 10.259 10.913 11.542 11.625 10.918 9.633 8.321 7.539 7.517 8.041 8.628 8.847 8.562 7.953 7.350 7.020 7.063 7.435 8.017 8.663 9.204 9.485 9.443 9.171 8.885 8.781 8.863 8.915 8.661 8.011 7.188 6.611 + 10.360 10.151 9.786 9.364 8.989 8.713 8.487 8.194 7.735 7.135 6.553 6.184 6.119 6.267 6.428 6.432 6.258 6.036 5.952 6.147 6.668 7.477 8.444 9.336 9.839 9.689 8.858 7.661 6.642 6.257 6.563 7.163 7.495 7.246 6.591 6.046 + 11.718 11.606 11.360 10.981 10.530 10.112 9.804 9.607 9.464 9.322 9.183 9.083 9.026 8.955 8.782 8.475 8.093 7.756 7.567 7.572 7.775 8.172 8.732 9.329 9.717 9.633 9.008 8.094 7.377 7.257 7.733 8.359 8.554 8.044 7.107 6.379 + 13.311 13.016 12.508 11.909 11.323 10.799 10.343 9.966 9.713 9.650 9.792 10.046 10.218 10.116 9.674 9.000 8.310 7.790 7.506 7.429 7.540 7.891 8.534 9.375 10.109 10.347 9.894 8.941 8.003 7.578 7.788 8.284 8.519 8.183 7.457 6.871 + 9.857 9.294 8.431 7.627 7.120 6.917 6.858 6.773 6.610 6.432 6.300 6.181 5.957 5.542 4.996 4.507 4.267 4.330 4.602 4.979 5.484 6.264 7.394 8.657 9.533 9.490 8.404 6.767 5.460 5.196 6.018 7.255 8.004 7.786 6.886 6.103 + 5.773 5.706 5.803 6.257 6.961 7.510 7.506 6.888 6.000 5.322 5.102 5.196 5.251 5.025 4.576 4.148 3.918 3.856 3.835 3.866 4.192 5.103 6.609 8.269 9.368 9.358 8.248 6.626 5.313 4.863 5.266 6.040 6.601 6.648 6.311 5.980 + 5.436 5.399 5.533 6.027 6.793 7.432 7.488 6.790 5.619 4.547 4.041 4.155 4.534 4.720 4.505 4.052 3.695 3.634 3.799 4.009 4.251 4.771 5.847 7.401 8.842 9.355 8.492 6.598 4.695 3.825 4.341 5.679 6.821 7.068 6.530 5.931 + 5.580 6.142 7.019 7.834 8.248 8.090 7.409 6.418 5.404 4.609 4.160 4.036 4.104 4.198 4.199 4.082 3.893 3.709 3.616 3.730 4.199 5.145 6.531 8.043 9.151 9.355 8.522 7.045 5.664 5.031 5.295 6.028 6.564 6.492 5.946 5.446 + 4.496 5.686 7.394 8.736 9.172 8.741 7.853 6.894 5.996 5.120 4.300 3.747 3.696 4.169 4.870 5.361 5.359 4.925 4.408 4.232 4.678 5.784 7.345 8.957 10.101 10.338 9.552 8.109 6.736 6.104 6.395 7.171 7.706 7.543 6.841 6.219 + 3.451 5.202 7.661 9.477 9.877 9.033 7.710 6.599 5.889 5.383 4.884 4.452 4.285 4.426 4.642 4.603 4.196 3.654 3.389 3.711 4.666 6.091 7.737 9.306 10.409 10.622 9.739 8.043 6.304 5.361 5.558 6.477 7.263 7.294 6.663 6.038 + 4.953 6.091 7.611 8.596 8.650 8.084 7.505 7.238 7.110 6.731 5.953 5.039 4.399 4.194 4.207 4.088 3.722 3.353 3.366 3.982 5.139 6.621 8.213 9.696 10.730 10.871 9.871 8.030 6.214 5.375 5.863 7.123 8.100 8.064 7.185 6.347 + 3.468 4.351 5.686 6.932 7.801 8.316 8.592 8.579 8.081 7.016 5.642 4.467 3.888 3.878 4.028 3.912 3.466 3.038 3.096 3.877 5.266 6.954 8.638 10.060 10.923 10.890 9.815 8.019 6.300 5.503 5.934 7.103 8.075 8.186 7.550 6.897 + 3.880 4.379 5.208 6.138 6.992 7.677 8.126 8.240 7.928 7.207 6.266 5.399 4.839 4.616 4.564 4.464 4.216 3.910 3.770 4.038 4.865 6.247 7.982 9.655 10.723 10.735 9.617 7.813 6.131 5.303 5.552 6.471 7.340 7.646 7.414 7.088 + 3.593 4.265 5.381 6.595 7.594 8.193 8.343 8.082 7.497 6.715 5.907 5.256 4.882 4.777 4.801 4.759 4.533 4.173 3.908 4.048 4.833 6.277 8.099 9.771 10.720 10.586 9.430 7.744 6.227 5.429 5.478 6.059 6.663 6.935 6.864 6.705 + 4.491 5.287 6.505 7.625 8.273 8.380 8.125 7.733 7.300 6.771 6.049 5.150 4.248 3.606 3.416 3.677 4.184 4.652 4.903 5.002 5.238 5.927 7.143 8.547 9.502 9.427 8.216 6.386 4.836 4.303 4.901 6.076 7.007 7.194 6.765 6.296 + 4.527 5.253 6.292 7.091 7.304 6.958 6.354 5.818 5.489 5.302 5.112 4.838 4.507 4.193 3.931 3.688 3.406 3.075 2.794 2.765 3.217 4.278 5.830 7.454 8.546 8.610 7.577 5.931 4.492 3.949 4.441 5.492 6.362 6.580 6.236 5.838 + 7.141 7.218 7.211 6.991 6.633 6.383 6.422 6.648 6.711 6.288 5.375 4.329 3.617 3.478 3.774 4.129 4.229 4.033 3.764 3.726 4.122 4.962 6.062 7.086 7.638 7.422 6.446 5.115 4.085 3.883 4.536 5.516 6.095 5.875 5.093 4.418 + 8.229 7.874 7.320 6.788 6.432 6.263 6.154 5.955 5.610 5.198 4.870 4.719 4.697 4.660 4.499 4.240 4.033 4.029 4.249 4.580 4.889 5.146 5.434 5.821 6.223 6.409 6.176 5.550 4.836 4.430 4.538 5.023 5.529 5.758 5.689 5.543 + 7.843 7.611 7.205 6.728 6.296 5.981 5.778 5.601 5.353 4.999 4.608 4.310 4.210 4.305 4.490 4.632 4.661 4.608 4.576 4.666 4.914 5.275 5.641 5.884 5.898 5.651 5.216 4.769 4.521 4.602 4.979 5.459 5.810 5.903 5.795 5.665 + 6.045 6.061 6.099 6.165 6.237 6.252 6.111 5.745 5.183 4.581 4.157 4.049 4.205 4.400 4.399 4.140 3.793 3.640 3.857 4.371 4.908 5.197 5.152 4.913 4.700 4.647 4.718 4.787 4.759 4.646 4.529 4.466 4.451 4.438 4.403 4.369 + 7.171 7.121 7.043 6.939 6.769 6.479 6.066 5.614 5.246 5.025 4.899 4.748 4.499 4.204 4.006 4.006 4.159 4.301 4.302 4.200 4.198 4.502 5.126 5.830 6.252 6.147 5.551 4.756 4.115 3.827 3.846 3.954 3.936 3.719 3.403 3.176 + 8.408 8.089 7.594 7.111 6.742 6.450 6.124 5.679 5.141 4.632 4.282 4.150 4.199 4.338 4.476 4.556 4.552 4.462 4.315 4.191 4.204 4.437 4.863 5.319 5.580 5.502 5.142 4.742 4.584 4.780 5.175 5.423 5.226 4.549 3.684 3.085 + 6.952 6.428 5.721 5.240 5.157 5.315 5.400 5.229 4.881 4.596 4.546 4.703 4.895 4.965 4.890 4.738 4.559 4.335 4.045 3.772 3.714 4.048 4.764 5.607 6.218 6.355 6.045 5.540 5.137 4.985 5.039 5.141 5.157 5.053 4.894 4.781 + 5.790 6.120 6.493 6.592 6.342 5.954 5.696 5.645 5.629 5.425 4.994 4.526 4.261 4.269 4.394 4.416 4.255 4.029 3.934 4.088 4.485 5.078 5.829 6.662 7.361 7.590 7.114 6.052 4.912 4.300 4.479 5.164 5.739 5.756 5.286 4.823 + 5.323 5.767 6.355 6.720 6.693 6.372 5.963 5.574 5.152 4.613 4.004 3.517 3.340 3.481 3.747 3.900 3.845 3.691 3.645 3.867 4.404 5.218 6.223 7.253 8.027 8.209 7.625 6.463 5.265 4.620 4.777 5.462 6.095 6.245 5.942 5.596 + 4.988 5.399 6.024 6.616 7.015 7.172 7.047 6.560 5.662 4.494 3.420 2.851 2.949 3.473 3.932 3.939 3.489 2.942 2.741 3.122 4.027 5.236 6.529 7.711 8.545 8.752 8.188 7.061 5.931 5.402 5.689 6.433 6.965 6.838 6.189 5.603 + 6.032 6.268 6.633 7.033 7.471 7.955 8.334 8.271 7.476 6.024 4.442 3.405 3.235 3.653 4.009 3.847 3.299 2.970 3.414 4.670 6.246 7.547 8.309 8.678 8.897 8.982 8.720 7.980 6.990 6.249 6.123 6.512 6.924 6.918 6.496 6.078 + 4.613 5.110 5.822 6.410 6.716 6.807 6.809 6.739 6.508 6.073 5.545 5.125 4.903 4.772 4.559 4.264 4.153 4.548 5.513 6.721 7.680 8.129 8.223 8.333 8.623 8.842 8.556 7.618 6.426 5.672 5.778 6.517 7.196 7.249 6.719 6.180 + 5.202 5.294 5.214 4.799 4.277 4.137 4.646 5.510 6.072 5.902 5.201 4.609 4.585 4.966 5.163 4.810 4.218 4.140 5.049 6.629 8.000 8.479 8.160 7.744 7.786 8.129 8.089 7.231 5.933 5.148 5.526 6.751 7.759 7.680 6.641 5.649 + 5.335 5.647 5.868 5.657 5.157 4.898 5.240 5.937 6.308 5.879 4.879 4.065 4.026 4.637 5.216 5.233 4.864 4.819 5.603 6.949 8.005 8.121 7.469 6.863 6.945 7.548 7.858 7.266 6.037 5.138 5.342 6.471 7.534 7.634 6.805 5.950 + 5.357 5.682 6.072 6.268 6.258 6.232 6.312 6.355 6.084 5.423 4.670 4.292 4.494 5.011 5.349 5.290 5.135 5.428 6.387 7.612 8.379 8.293 7.656 7.186 7.320 7.778 7.826 7.021 5.718 4.825 5.005 6.064 7.107 7.338 6.757 6.103 + 5.426 5.273 5.056 4.949 5.142 5.685 6.377 6.840 6.794 6.303 5.748 5.496 5.575 5.659 5.441 5.025 4.926 5.602 6.938 8.197 8.578 7.917 6.869 6.353 6.723 7.426 7.511 6.547 5.101 4.299 4.828 6.285 7.497 7.540 6.552 5.572 + 3.182 3.606 4.153 4.533 4.764 5.133 5.856 6.797 7.543 7.767 7.492 7.016 6.581 6.180 5.720 5.332 5.428 6.323 7.779 8.968 9.052 7.921 6.383 5.535 5.824 6.637 6.863 5.946 4.460 3.641 4.253 5.844 7.090 6.972 5.686 4.471 + 12.078 12.077 12.097 12.152 12.211 12.189 11.997 11.616 11.140 10.739 10.539 10.506 10.459 10.215 9.766 9.321 9.152 9.336 9.634 9.641 9.111 8.198 7.370 7.045 7.238 7.535 7.439 6.807 5.994 5.563 5.796 6.444 6.926 6.829 6.258 5.736 + 14.303 13.570 12.676 12.266 12.499 12.936 12.957 12.319 11.358 10.662 10.541 10.775 10.852 10.457 9.757 9.232 9.228 9.640 10.014 9.947 9.420 8.782 8.418 8.417 8.527 8.406 7.924 7.269 6.777 6.662 6.864 7.123 7.186 6.977 6.627 6.368 + 11.160 10.591 9.704 8.880 8.429 8.424 8.671 8.856 8.782 8.489 8.163 7.905 7.597 7.025 6.188 5.463 5.411 6.299 7.750 8.884 8.940 7.875 6.438 5.591 5.741 6.438 6.799 6.301 5.230 4.415 4.464 5.230 5.960 6.001 5.382 4.757 + 7.800 6.844 5.494 4.516 4.400 5.100 6.136 6.953 7.265 7.127 6.744 6.230 5.554 4.727 4.003 3.841 4.573 6.027 7.475 8.056 7.407 5.986 4.793 4.627 5.476 6.534 6.861 6.159 5.001 4.342 4.705 5.749 6.581 6.541 5.758 5.011 + 5.362 5.445 5.423 5.165 4.819 4.736 5.156 5.950 6.688 6.968 6.697 6.076 5.356 4.672 4.116 3.918 4.420 5.750 7.479 8.703 8.632 7.256 5.479 4.484 4.816 5.958 6.795 6.592 5.603 4.789 4.888 5.725 6.389 6.114 5.026 4.050 + 4.123 4.622 5.231 5.556 5.573 5.611 5.978 6.608 7.109 7.140 6.730 6.207 5.835 5.576 5.244 4.875 4.854 5.572 6.912 8.122 8.332 7.314 5.778 4.836 5.059 5.987 6.557 6.098 4.964 4.199 4.521 5.600 6.320 5.821 4.341 3.064 + 6.362 6.456 6.493 6.368 6.190 6.219 6.603 7.195 7.625 7.597 7.108 6.402 5.740 5.235 4.921 4.925 5.465 6.598 7.938 8.726 8.336 6.831 5.056 4.074 4.360 5.427 6.237 6.070 5.092 4.138 3.924 4.406 4.886 4.713 3.921 3.194 + 7.487 7.820 8.356 8.917 9.368 9.665 9.823 9.863 9.788 9.601 9.326 9.006 8.683 8.374 8.089 7.852 7.694 7.626 7.613 7.593 7.545 7.518 7.590 7.759 7.892 7.796 7.402 6.890 6.626 6.903 7.679 8.544 8.984 8.759 8.101 7.551 + 9.923 9.235 8.389 8.024 8.399 9.227 9.941 10.138 9.823 9.294 8.825 8.465 8.097 7.659 7.254 7.062 7.142 7.351 7.485 7.494 7.558 7.923 8.627 9.385 9.761 9.494 8.733 7.963 7.674 8.033 8.781 9.424 9.568 9.155 8.479 7.984 + 10.258 10.020 9.729 9.585 9.640 9.772 9.824 9.741 9.585 9.412 9.177 8.779 8.226 7.721 7.549 7.836 8.393 8.826 8.857 8.577 8.400 8.720 9.548 10.458 10.886 10.579 9.811 9.202 9.273 10.079 11.167 11.893 11.826 11.011 9.918 9.162 + 10.625 9.598 8.159 7.103 6.858 7.243 7.678 7.637 6.988 5.996 5.047 4.379 4.009 3.864 3.934 4.276 4.892 5.621 6.194 6.415 6.315 6.122 6.065 6.180 6.282 6.142 5.717 5.230 5.020 5.273 5.852 6.357 6.397 5.876 5.079 4.497 + 7.860 8.012 8.013 7.614 6.953 6.494 6.593 7.117 7.496 7.206 6.221 5.038 4.239 4.010 4.075 4.055 3.882 3.851 4.257 5.015 5.657 5.729 5.214 4.555 4.266 4.480 4.886 5.063 4.895 4.643 4.634 4.905 5.159 5.082 4.687 4.318 + 6.441 6.703 6.989 7.026 6.723 6.225 5.773 5.503 5.382 5.289 5.141 4.936 4.695 4.412 4.091 3.827 3.800 4.141 4.764 5.351 5.556 5.275 4.745 4.358 4.329 4.530 4.638 4.457 4.128 3.999 4.279 4.803 5.148 5.010 4.492 4.035 + 6.859 7.165 7.435 7.328 6.846 6.345 6.199 6.452 6.789 6.835 6.489 5.966 5.527 5.210 4.846 4.331 3.853 3.786 4.326 5.217 5.879 5.870 5.261 4.584 4.370 4.697 5.155 5.241 4.814 4.197 3.855 3.985 4.394 4.732 4.831 4.795 + 8.054 8.179 8.282 8.197 7.869 7.384 6.865 6.385 5.956 5.599 5.371 5.305 5.313 5.194 4.792 4.174 3.652 3.569 4.015 4.722 5.261 5.372 5.158 4.952 4.997 5.225 5.354 5.188 4.840 4.631 4.782 5.169 5.420 5.250 4.748 4.315 + 6.060 7.005 8.139 8.590 8.063 7.000 6.096 5.694 5.602 5.449 5.142 4.941 5.098 5.469 5.568 5.037 4.068 3.322 3.373 4.184 5.124 5.515 5.213 4.671 4.467 4.765 5.223 5.405 5.242 5.067 5.218 5.612 5.785 5.358 4.476 3.755 + 5.202 5.814 6.675 7.318 7.483 7.224 6.774 6.328 5.934 5.564 5.231 5.002 4.901 4.835 4.644 4.278 3.898 3.787 4.114 4.762 5.389 5.679 5.570 5.257 4.988 4.850 4.743 4.554 4.317 4.211 4.376 4.743 5.066 5.133 4.958 4.763 + 5.070 5.401 5.864 6.209 6.307 6.209 6.047 5.893 5.684 5.304 4.718 4.057 3.546 3.355 3.481 3.761 4.008 4.147 4.249 4.444 4.787 5.197 5.503 5.566 5.365 5.017 4.693 4.526 4.544 4.676 4.806 4.833 4.722 4.510 4.285 4.142 + 4.786 5.567 6.494 6.849 6.443 5.730 5.360 5.583 6.044 6.150 5.610 4.685 3.920 3.659 3.796 3.964 3.938 3.850 4.018 4.587 5.345 5.879 5.918 5.526 5.003 4.609 4.398 4.286 4.222 4.264 4.468 4.755 4.914 4.786 4.441 4.147 + 6.489 6.550 6.736 7.079 7.480 7.715 7.568 7.005 6.244 5.645 5.472 5.698 6.009 6.021 5.555 4.783 4.103 3.864 4.128 4.650 5.082 5.219 5.108 4.942 4.870 4.889 4.900 4.860 4.852 5.002 5.326 5.655 5.742 5.472 4.988 4.614 + 5.511 6.072 6.796 7.186 7.007 6.415 5.786 5.439 5.467 5.770 6.173 6.498 6.566 6.224 5.458 4.506 3.802 3.716 4.263 5.046 5.535 5.466 5.030 4.662 4.635 4.818 4.842 4.500 3.995 3.779 4.108 4.759 5.176 4.965 4.266 3.657 + 7.564 7.282 6.825 6.383 6.172 6.306 6.699 7.075 7.131 6.746 6.086 5.492 5.233 5.303 5.439 5.345 4.938 4.424 4.143 4.317 4.885 5.556 6.002 6.046 5.725 5.218 4.736 4.436 4.391 4.576 4.871 5.099 5.103 4.853 4.480 4.208 + 10.231 9.841 9.064 8.028 7.052 6.508 6.547 6.935 7.204 7.015 6.441 5.897 5.756 6.002 6.220 5.959 5.151 4.207 3.709 3.953 4.725 5.490 5.800 5.591 5.146 4.808 4.727 4.816 4.915 4.949 4.962 5.026 5.150 5.279 5.362 5.394 + 8.363 7.624 6.660 6.073 6.086 6.415 6.580 6.344 5.889 5.596 5.670 5.959 6.113 5.915 5.456 5.018 4.808 4.805 4.843 4.823 4.809 4.928 5.187 5.419 5.423 5.164 4.832 4.694 4.870 5.242 5.573 5.700 5.642 5.528 5.459 5.443 + 4.805 5.226 5.696 5.826 5.572 5.262 5.259 5.598 5.951 5.947 5.519 4.951 4.583 4.489 4.441 4.199 3.809 3.599 3.860 4.521 5.163 5.360 5.055 4.595 4.412 4.646 5.060 5.311 5.278 5.152 5.199 5.468 5.746 5.785 5.570 5.340 + 4.532 4.976 5.476 5.597 5.235 4.704 4.457 4.696 5.221 5.607 5.558 5.098 4.483 3.957 3.588 3.324 3.159 3.205 3.583 4.246 4.931 5.316 5.262 4.919 4.603 4.557 4.782 5.081 5.242 5.197 5.035 4.890 4.834 4.851 4.890 4.914 + 4.856 5.347 5.860 5.874 5.285 4.519 4.176 4.519 5.242 5.705 5.446 4.539 3.519 2.962 3.070 3.590 4.078 4.261 4.203 4.163 4.325 4.637 4.879 4.873 4.639 4.377 4.296 4.464 4.772 5.037 5.136 5.075 4.948 4.850 4.816 4.818 + 4.343 4.854 5.535 5.945 5.843 5.340 4.788 4.521 4.629 4.930 5.130 5.036 4.669 4.218 3.893 3.799 3.908 4.116 4.330 4.505 4.638 4.728 4.760 4.720 4.618 4.507 4.467 4.565 4.813 5.148 5.447 5.580 5.481 5.188 4.839 4.605 + 4.934 5.143 5.381 5.454 5.332 5.177 5.174 5.347 5.507 5.405 4.943 4.281 3.722 3.497 3.614 3.892 4.122 4.221 4.248 4.308 4.439 4.588 4.676 4.683 4.661 4.688 4.800 4.970 5.140 5.268 5.337 5.349 5.311 5.232 5.140 5.078 + 3.866 4.144 4.482 4.665 4.694 4.766 5.033 5.407 5.618 5.475 5.077 4.736 4.683 4.854 4.968 4.830 4.548 4.430 4.654 5.046 5.214 4.923 4.352 3.957 4.061 4.542 4.953 4.944 4.611 4.411 4.723 5.476 6.201 6.458 6.232 5.920 + 5.434 5.346 5.217 5.108 5.051 5.034 5.012 4.942 4.808 4.612 4.357 4.031 3.628 3.181 2.781 2.544 2.553 2.799 3.178 3.548 3.816 3.976 4.091 4.222 4.368 4.479 4.510 4.484 4.493 4.624 4.888 5.193 5.405 5.449 5.365 5.272 + 5.454 5.148 4.681 4.271 4.099 4.227 4.569 4.941 5.141 5.037 4.614 3.972 3.280 2.713 2.388 2.334 2.494 2.765 3.040 3.253 3.391 3.482 3.566 3.676 3.819 3.986 4.156 4.308 4.430 4.522 4.594 4.664 4.741 4.826 4.902 4.948 + 4.332 5.034 5.835 6.038 5.434 4.450 3.778 3.806 4.360 4.921 5.084 4.839 4.466 4.208 4.051 3.816 3.411 2.977 2.778 2.952 3.379 3.787 3.978 3.964 3.896 3.889 3.936 3.973 4.002 4.106 4.342 4.628 4.772 4.642 4.314 4.040 + 5.755 5.336 4.659 4.009 3.677 3.810 4.284 4.744 4.807 4.332 3.536 2.857 2.650 2.926 3.364 3.561 3.335 2.853 2.478 2.497 2.925 3.529 4.015 4.213 4.141 3.938 3.758 3.705 3.819 4.074 4.378 4.591 4.587 4.344 3.989 3.731 + 4.602 4.952 5.266 5.146 4.561 3.888 3.554 3.642 3.818 3.649 3.015 2.217 1.702 1.665 1.903 2.046 1.923 1.713 1.756 2.214 2.908 3.472 3.658 3.510 3.274 3.157 3.186 3.265 3.329 3.409 3.545 3.665 3.608 3.278 2.788 2.423 + 5.328 5.166 4.986 4.936 5.029 5.125 5.060 4.781 4.368 3.933 3.517 3.084 2.628 2.249 2.101 2.248 2.564 2.797 2.772 2.537 2.340 2.416 2.789 3.259 3.572 3.633 3.565 3.577 3.767 4.042 4.214 4.157 3.902 3.588 3.342 3.217 + 4.963 4.795 4.603 4.563 4.739 5.017 5.177 5.038 4.591 4.009 3.533 3.310 3.300 3.311 3.146 2.750 2.265 1.944 1.986 2.402 2.998 3.488 3.664 3.511 3.198 2.958 2.941 3.136 3.401 3.577 3.592 3.495 3.396 3.377 3.434 3.496 + 1.962 2.823 3.950 4.634 4.586 4.095 3.694 3.685 3.931 4.077 3.934 3.655 3.546 3.736 4.028 4.087 3.758 3.219 2.815 2.758 2.960 3.153 3.143 2.965 2.800 2.782 2.891 3.024 3.133 3.265 3.460 3.642 3.638 3.348 2.883 2.529 + 2.094 3.007 4.168 4.782 4.543 3.812 3.246 3.220 3.553 3.750 3.481 2.876 2.383 2.348 2.730 3.168 3.327 3.168 2.935 2.887 3.064 3.276 3.308 3.110 2.827 2.651 2.665 2.809 2.972 3.085 3.131 3.106 2.983 2.758 2.492 2.309 + 4.130 4.470 4.817 4.781 4.247 3.467 2.857 2.679 2.869 3.144 3.261 3.199 3.121 3.179 3.361 3.511 3.490 3.321 3.172 3.213 3.465 3.779 3.953 3.876 3.597 3.263 3.012 2.895 2.880 2.895 2.880 2.803 2.659 2.473 2.294 2.183 + 3.156 3.815 4.712 5.275 5.140 4.362 3.344 2.561 2.265 2.378 2.606 2.675 2.510 2.245 2.087 2.163 2.450 2.830 3.178 3.424 3.545 3.534 3.388 3.143 2.898 2.779 2.861 3.092 3.304 3.322 3.084 2.690 2.330 2.145 2.133 2.182 + 5.495 4.499 3.117 2.123 1.926 2.363 2.922 3.161 2.968 2.509 2.003 1.567 1.236 1.059 1.106 1.370 1.701 1.891 1.864 1.774 1.875 2.260 2.722 2.901 2.608 2.030 1.599 1.629 2.042 2.443 2.479 2.149 1.781 1.705 1.943 2.208 + 4.924 4.477 3.728 2.910 2.258 1.938 2.010 2.407 2.942 3.345 3.372 2.931 2.160 1.370 0.881 0.843 1.168 1.624 2.004 2.240 2.379 2.471 2.489 2.364 2.090 1.789 1.645 1.757 2.049 2.312 2.366 2.194 1.935 1.753 1.703 1.722 + 3.308 3.801 4.238 4.017 3.047 1.879 1.289 1.667 2.716 3.696 3.985 3.502 2.667 2.012 1.792 1.901 2.092 2.240 2.417 2.730 3.141 3.441 3.415 3.022 2.445 1.958 1.743 1.801 1.998 2.188 2.292 2.307 2.262 2.186 2.110 2.062 + 3.777 3.812 3.721 3.366 2.815 2.346 2.243 2.561 3.057 3.371 3.289 2.887 2.436 2.166 2.099 2.083 1.975 1.800 1.735 1.945 2.414 2.925 3.198 3.086 2.663 2.162 1.815 1.724 1.842 2.039 2.203 2.287 2.307 2.298 2.286 2.281 + 2.319 2.749 3.309 3.620 3.496 3.046 2.551 2.252 2.214 2.345 2.505 2.582 2.499 2.202 1.698 1.122 0.726 0.760 1.276 2.051 2.700 2.925 2.713 2.311 2.020 1.976 2.102 2.234 2.290 2.309 2.353 2.391 2.310 2.034 1.647 1.362 + 3.260 3.906 4.733 5.133 4.772 3.803 2.744 2.131 2.189 2.741 3.357 3.633 3.399 2.758 1.991 1.391 1.140 1.253 1.604 1.997 2.267 2.347 2.274 2.132 1.979 1.825 1.659 1.510 1.454 1.558 1.795 2.029 2.090 1.909 1.589 1.343 + 3.815 4.230 4.643 4.601 4.014 3.217 2.648 2.470 2.483 2.384 2.095 1.820 1.793 1.993 2.135 1.951 1.489 1.107 1.159 1.653 2.227 2.462 2.241 1.829 1.604 1.718 1.996 2.155 2.093 1.959 1.959 2.108 2.205 2.051 1.681 1.366 + 2.612 3.105 3.718 3.983 3.667 2.897 2.013 1.316 0.926 0.814 0.921 1.200 1.558 1.806 1.743 1.328 0.792 0.527 0.815 1.598 2.495 3.067 3.110 2.756 2.313 2.010 1.871 1.788 1.692 1.628 1.689 1.891 2.134 2.287 2.313 2.282 + 3.085 2.992 2.803 2.540 2.274 2.108 2.106 2.235 2.360 2.323 2.042 1.575 1.086 0.752 0.662 0.785 1.027 1.308 1.618 1.994 2.452 2.938 3.328 3.498 3.406 3.122 2.798 2.581 2.544 2.650 2.795 2.868 2.816 2.658 2.472 2.350 + 3.988 4.068 4.056 3.819 3.464 3.297 3.545 4.104 4.553 4.464 3.747 2.735 1.938 1.678 1.898 2.282 2.533 2.570 2.502 2.471 2.527 2.637 2.760 2.883 2.979 2.979 2.826 2.580 2.441 2.609 3.078 3.567 3.689 3.266 2.520 1.945 + 5.879 5.639 5.263 4.918 4.754 4.813 4.988 5.080 4.932 4.546 4.086 3.740 3.557 3.401 3.080 2.534 1.927 1.544 1.575 1.969 2.477 2.854 3.028 3.109 3.238 3.442 3.616 3.642 3.512 3.325 3.177 3.045 2.820 2.431 1.967 1.644 + 7.800 7.680 7.482 7.269 7.082 6.918 6.727 6.452 6.075 5.636 5.198 4.792 4.382 3.899 3.319 2.728 2.304 2.225 2.553 3.201 3.990 4.747 5.375 5.835 6.098 6.131 5.942 5.631 5.372 5.303 5.409 5.505 5.366 4.915 4.318 3.894 + 7.410 7.087 6.656 6.388 6.406 6.594 6.673 6.398 5.728 4.854 4.066 3.567 3.368 3.327 3.287 3.199 3.147 3.258 3.607 4.167 4.849 5.563 6.238 6.799 7.140 7.153 6.810 6.225 5.622 5.209 5.042 4.995 4.867 4.551 4.134 3.835 + 7.559 7.125 6.597 6.361 6.522 6.799 6.762 6.177 5.202 4.265 3.743 3.699 3.890 3.994 3.870 3.640 3.547 3.760 4.266 4.929 5.623 6.308 6.988 7.609 8.035 8.111 7.793 7.206 6.584 6.119 5.843 5.630 5.320 4.855 4.351 4.017 + 6.413 6.756 7.217 7.548 7.664 7.649 7.579 7.377 6.874 6.030 5.082 4.420 4.290 4.566 4.845 4.800 4.464 4.212 4.430 5.180 6.152 6.928 7.300 7.357 7.311 7.256 7.117 6.810 6.412 6.129 6.084 6.147 6.019 5.509 4.770 4.220 + 10.141 9.753 9.029 8.149 7.435 7.195 7.479 7.970 8.154 7.690 6.664 5.530 4.759 4.508 4.571 4.636 4.589 4.593 4.893 5.552 6.382 7.104 7.569 7.823 7.969 8.002 7.805 7.310 6.649 6.108 5.909 6.016 6.172 6.131 5.886 5.653 + 11.641 11.247 10.752 10.464 10.413 10.319 9.865 9.019 8.110 7.570 7.563 7.827 7.867 7.348 6.355 5.318 4.682 4.608 4.918 5.308 5.604 5.851 6.195 6.686 7.195 7.495 7.428 7.020 6.450 5.938 5.626 5.536 5.607 5.749 5.883 5.962 + 10.881 10.669 10.400 10.237 10.187 10.089 9.758 9.176 8.532 8.088 7.959 8.013 7.972 7.641 7.070 6.509 6.206 6.209 6.358 6.453 6.450 6.503 6.811 7.394 8.013 8.318 8.115 7.540 6.974 6.761 6.938 7.202 7.155 6.627 5.839 5.259 + 10.571 10.449 10.389 10.528 10.734 10.669 10.102 9.168 8.317 7.950 8.084 8.349 8.338 7.977 7.584 7.543 7.914 8.341 8.369 7.868 7.186 6.871 7.202 7.939 8.502 8.428 7.723 6.832 6.285 6.315 6.744 7.159 7.228 6.900 6.395 6.031 + 11.813 11.892 12.043 12.173 12.071 11.524 10.522 9.351 8.448 8.101 8.244 8.530 8.636 8.512 8.365 8.398 8.563 8.581 8.226 7.590 7.074 7.071 7.614 8.295 8.567 8.160 7.294 6.514 6.280 6.657 7.306 7.747 7.685 7.161 6.482 6.022 + 6.816 7.152 7.733 8.369 8.805 8.834 8.421 7.743 7.083 6.640 6.401 6.199 5.903 5.574 5.449 5.739 6.419 7.195 7.683 7.681 7.298 6.863 6.675 6.803 7.081 7.270 7.252 7.099 6.981 7.019 7.190 7.357 7.384 7.237 7.004 6.833 + 6.891 6.769 6.685 6.809 7.158 7.564 7.800 7.755 7.503 7.227 7.069 7.049 7.097 7.160 7.253 7.421 7.654 7.872 7.995 8.042 8.145 8.441 8.919 9.377 9.529 9.218 8.563 7.918 7.656 7.933 8.586 9.245 9.568 9.454 9.081 8.772 + 7.038 6.832 6.647 6.721 7.065 7.437 7.541 7.269 6.769 6.292 5.980 5.802 5.666 5.579 5.665 6.019 6.556 7.023 7.195 7.078 6.923 7.018 7.433 7.944 8.216 8.075 7.650 7.271 7.213 7.509 7.959 8.303 8.396 8.266 8.051 7.900 + 6.931 6.876 6.942 7.204 7.413 7.117 6.078 4.592 3.368 3.006 3.521 4.341 4.797 4.686 4.398 4.516 5.261 6.280 6.952 6.932 6.422 5.966 5.976 6.420 6.928 7.170 7.141 7.121 7.369 7.881 8.391 8.597 8.391 7.902 7.383 7.064 + 8.841 8.188 7.360 6.894 6.935 7.152 7.077 6.538 5.796 5.273 5.172 5.340 5.476 5.445 5.389 5.535 5.934 6.399 6.700 6.809 6.915 7.200 7.615 7.898 7.835 7.516 7.305 7.531 8.192 8.934 9.351 9.305 9.000 8.751 8.701 8.753 + 7.851 7.969 8.009 7.776 7.273 6.733 6.433 6.453 6.606 6.586 6.221 5.616 5.071 4.848 4.992 5.332 5.634 5.780 5.807 5.829 5.910 6.023 6.097 6.105 6.104 6.201 6.477 6.940 7.519 8.092 8.523 8.702 8.591 8.256 7.859 7.593 + 5.884 6.455 7.198 7.624 7.514 7.024 6.496 6.154 5.966 5.760 5.440 5.080 4.830 4.750 4.766 4.775 4.787 4.926 5.288 5.801 6.238 6.397 6.272 6.061 6.001 6.183 6.531 6.922 7.322 7.770 8.238 8.548 8.462 7.905 7.116 6.544 + 6.187 6.495 6.871 6.987 6.639 5.873 4.964 4.251 3.948 4.046 4.335 4.546 4.504 4.218 3.851 3.610 3.623 3.871 4.221 4.538 4.773 4.984 5.259 5.616 5.960 6.161 6.173 6.110 6.182 6.523 7.057 7.505 7.573 7.178 6.544 6.073 + 5.178 5.274 5.419 5.532 5.534 5.370 5.040 4.597 4.132 3.740 3.481 3.357 3.326 3.344 3.398 3.510 3.710 3.980 4.242 4.394 4.376 4.226 4.066 4.028 4.172 4.453 4.768 5.024 5.196 5.305 5.373 5.381 5.293 5.102 4.874 4.717 + 8.643 8.255 7.549 6.643 5.671 4.765 4.048 3.624 3.546 3.785 4.204 4.601 4.798 4.743 4.533 4.356 4.347 4.485 4.604 4.513 4.157 3.688 3.373 3.422 3.836 4.410 4.877 5.087 5.085 5.033 5.064 5.175 5.260 5.227 5.092 4.971 + 6.617 6.721 6.675 6.229 5.409 4.539 3.994 3.908 4.085 4.197 4.067 3.786 3.585 3.602 3.777 3.938 3.978 3.938 3.925 3.980 4.046 4.052 4.016 4.037 4.178 4.379 4.501 4.483 4.429 4.530 4.858 5.250 5.407 5.156 4.634 4.215 + 4.211 5.148 6.120 6.137 5.012 3.531 2.763 3.142 4.135 4.758 4.444 3.489 2.714 2.715 3.389 4.110 4.335 4.048 3.677 3.636 3.966 4.372 4.564 4.524 4.455 4.523 4.686 4.778 4.720 4.619 4.641 4.808 4.957 4.907 4.666 4.442 + 5.311 6.248 7.456 8.146 8.007 7.367 6.795 6.571 6.503 6.221 5.613 4.971 4.710 4.961 5.441 5.721 5.608 5.276 5.035 5.000 4.997 4.786 4.358 3.986 3.970 4.334 4.790 5.003 4.899 4.703 4.685 4.874 5.034 4.922 4.558 4.234 + 8.974 8.925 8.928 9.076 9.340 9.529 9.390 8.776 7.772 6.672 5.815 5.387 5.334 5.426 5.439 5.286 5.030 4.776 4.557 4.322 4.021 3.698 3.496 3.538 3.809 4.138 4.316 4.267 4.099 4.017 4.138 4.392 4.586 4.576 4.395 4.222 + 6.493 5.769 4.864 4.405 4.577 4.993 5.045 4.425 3.378 2.482 2.180 2.471 2.981 3.318 3.352 3.231 3.156 3.178 3.194 3.101 2.939 2.861 2.987 3.291 3.628 3.872 4.013 4.134 4.309 4.531 4.740 4.906 5.062 5.251 5.458 5.601 + 3.218 2.984 2.798 2.987 3.624 4.420 4.897 4.733 4.012 3.195 2.800 3.031 3.640 4.122 4.099 3.597 3.003 2.743 2.954 3.406 3.726 3.722 3.523 3.434 3.649 4.077 4.431 4.489 4.286 4.066 4.053 4.255 4.479 4.529 4.392 4.236 + 4.397 3.996 3.527 3.386 3.724 4.321 4.762 4.750 4.313 3.751 3.390 3.340 3.451 3.485 3.323 3.061 2.899 2.968 3.210 3.444 3.523 3.457 3.405 3.534 3.881 4.315 4.628 4.681 4.490 4.202 3.990 3.952 4.073 4.270 4.450 4.552 + 4.355 3.643 2.758 2.361 2.731 3.552 4.167 4.073 3.289 2.315 1.751 1.867 2.458 3.050 3.271 3.097 2.800 2.697 2.902 3.274 3.570 3.644 3.528 3.375 3.307 3.337 3.393 3.415 3.413 3.454 3.579 3.758 3.904 3.951 3.910 3.854 + 4.664 4.307 3.838 3.555 3.585 3.804 3.957 3.862 3.535 3.145 2.864 2.736 2.685 2.615 2.506 2.423 2.449 2.610 2.862 3.137 3.391 3.610 3.786 3.895 3.907 3.830 3.713 3.627 3.617 3.684 3.797 3.934 4.088 4.257 4.415 4.513 + 4.119 4.125 4.173 4.266 4.319 4.197 3.826 3.277 2.744 2.418 2.361 2.480 2.623 2.698 2.717 2.748 2.826 2.936 3.049 3.175 3.353 3.587 3.812 3.927 3.889 3.763 3.684 3.739 3.891 4.017 4.029 3.965 3.956 4.099 4.349 4.546 + 5.333 5.158 5.015 5.084 5.284 5.291 4.824 3.938 3.040 2.592 2.738 3.182 3.427 3.181 2.580 2.058 1.978 2.351 2.861 3.156 3.130 2.967 2.930 3.110 3.348 3.391 3.132 2.717 2.436 2.491 2.837 3.215 3.345 3.128 2.716 2.398 + 3.806 4.136 4.515 4.645 4.465 4.159 3.922 3.754 3.500 3.090 2.700 2.617 2.927 3.346 3.421 2.945 2.203 1.767 2.001 2.726 3.362 3.444 3.035 2.647 2.750 3.339 3.942 4.073 3.675 3.145 2.932 3.113 3.361 3.304 2.919 2.548 + 5.456 4.592 3.440 2.702 2.680 3.117 3.494 3.504 3.275 3.171 3.396 3.769 3.882 3.471 2.675 1.936 1.653 1.883 2.348 2.698 2.789 2.755 2.833 3.133 3.557 3.903 4.038 3.980 3.848 3.733 3.636 3.490 3.244 2.921 2.611 2.421 + 4.241 3.856 3.462 3.483 4.007 4.692 5.024 4.721 3.943 3.147 2.728 2.746 2.948 3.024 2.869 2.630 2.541 2.712 3.046 3.347 3.488 3.487 3.460 3.502 3.609 3.712 3.747 3.712 3.650 3.601 3.568 3.522 3.440 3.325 3.212 3.143 + 5.856 5.595 5.239 4.991 4.926 4.932 4.798 4.385 3.748 3.103 2.686 2.584 2.693 2.813 2.796 2.644 2.466 2.364 2.346 2.346 2.316 2.306 2.431 2.760 3.219 3.611 3.752 3.617 3.367 3.219 3.277 3.451 3.540 3.417 3.140 2.913 + 4.347 4.069 3.761 3.688 3.881 4.101 4.048 3.644 3.114 2.796 2.838 3.045 3.029 2.540 1.697 0.929 0.664 1.011 1.684 2.227 2.347 2.099 1.800 1.760 2.052 2.493 2.809 2.850 2.681 2.494 2.447 2.557 2.721 2.826 2.839 2.814 + 4.765 4.368 3.894 3.708 3.906 4.231 4.301 3.938 3.333 2.879 2.839 3.102 3.261 2.940 2.122 1.190 0.666 0.834 1.544 2.333 2.755 2.666 2.267 1.910 1.829 2.018 2.300 2.510 2.611 2.685 2.816 2.998 3.144 3.177 3.109 3.032 + 4.872 4.176 3.260 2.706 2.775 3.246 3.647 3.653 3.303 2.893 2.659 2.563 2.362 1.891 1.281 0.907 1.089 1.813 2.691 3.224 3.150 2.607 2.012 1.752 1.941 2.400 2.848 3.114 3.222 3.307 3.454 3.625 3.702 3.614 3.414 3.252 + 4.586 4.835 5.094 5.070 4.635 3.944 3.333 3.082 3.219 3.495 3.579 3.305 2.791 2.320 2.107 2.120 2.129 1.936 1.583 1.348 1.516 2.114 2.837 3.257 3.135 2.609 2.085 1.936 2.244 2.782 3.224 3.388 3.315 3.171 3.079 3.051 + 4.127 4.300 4.586 4.849 4.910 4.639 4.075 3.448 3.067 3.115 3.519 3.984 4.189 3.978 3.415 2.694 1.995 1.422 1.035 0.903 1.085 1.552 2.129 2.571 2.711 2.583 2.399 2.383 2.608 2.954 3.227 3.308 3.224 3.086 2.986 2.945 + 5.058 5.047 4.975 4.792 4.496 4.158 3.887 3.757 3.746 3.734 3.576 3.197 2.656 2.121 1.777 1.708 1.853 2.047 2.135 2.060 1.891 1.763 1.787 1.986 2.306 2.669 3.031 3.392 3.772 4.165 4.522 4.771 4.866 4.820 4.705 4.614 + 4.146 4.295 4.488 4.581 4.466 4.133 3.672 3.209 2.836 2.566 2.343 2.100 1.829 1.602 1.536 1.715 2.115 2.589 2.939 3.014 2.805 2.449 2.157 2.099 2.326 2.764 3.280 3.766 4.182 4.538 4.846 5.089 5.234 5.267 5.224 5.174 + 4.198 3.916 3.599 3.480 3.530 3.476 3.074 2.385 1.762 1.556 1.806 2.223 2.461 2.434 2.364 2.530 2.965 3.392 3.473 3.116 2.563 2.178 2.146 2.367 2.620 2.815 3.075 3.584 4.351 5.147 5.673 5.791 5.614 5.373 5.226 5.181 + 3.694 3.923 4.313 4.664 4.662 4.079 3.021 1.960 1.445 1.670 2.297 2.726 2.605 2.135 1.873 2.201 2.955 3.560 3.561 3.050 2.590 2.701 3.378 4.110 4.358 4.059 3.679 3.782 4.517 5.496 6.143 6.169 5.746 5.271 5.004 4.931 + 5.187 4.232 3.036 2.448 2.781 3.594 4.087 3.758 2.776 1.793 1.404 1.717 2.356 2.836 2.936 2.795 2.695 2.798 3.051 3.316 3.530 3.740 4.002 4.277 4.449 4.456 4.390 4.454 4.797 5.375 5.944 6.215 6.035 5.489 4.847 4.424 + 5.751 5.155 4.245 3.428 3.016 3.063 3.357 3.575 3.496 3.140 2.729 2.520 2.623 2.940 3.268 3.456 3.504 3.528 3.642 3.871 4.161 4.459 4.763 5.097 5.444 5.717 5.825 5.774 5.700 5.772 6.055 6.433 6.692 6.695 6.499 6.310 + 2.978 3.069 3.256 3.511 3.742 3.818 3.645 3.255 2.819 2.575 2.685 3.136 3.738 4.237 4.465 4.431 4.294 4.248 4.395 4.696 5.025 5.260 5.368 5.405 5.462 5.593 5.789 5.998 6.175 6.307 6.418 6.538 6.679 6.825 6.948 7.017 + 3.218 3.650 4.129 4.232 3.870 3.352 3.097 3.259 3.612 3.790 3.633 3.327 3.202 3.409 3.775 3.971 3.831 3.515 3.374 3.639 4.223 4.806 5.107 5.095 4.982 5.005 5.237 5.551 5.760 5.768 5.613 5.401 5.209 5.061 4.955 4.895 + 1.533 2.310 3.213 3.501 2.967 2.088 1.587 1.816 2.509 3.074 3.127 2.778 2.452 2.463 2.763 3.054 3.119 3.025 3.018 3.259 3.677 4.071 4.326 4.502 4.725 5.000 5.186 5.144 4.911 4.688 4.639 4.707 4.658 4.312 3.763 3.342 + 2.530 2.482 2.537 2.880 3.570 4.447 5.187 5.478 5.210 4.538 3.772 3.170 2.795 2.549 2.340 2.214 2.335 2.804 3.507 4.146 4.454 4.415 4.281 4.356 4.720 5.152 5.327 5.115 4.708 4.445 4.490 4.657 4.567 4.004 3.161 2.532 + 4.412 4.419 4.536 4.813 5.124 5.243 5.065 4.745 4.567 4.645 4.735 4.404 3.419 2.040 0.902 0.560 1.076 1.983 2.673 2.852 2.687 2.550 2.639 2.815 2.794 2.466 2.028 1.813 1.990 2.421 2.792 2.877 2.687 2.400 2.179 2.077 + 4.347 4.129 3.830 3.584 3.392 3.150 2.812 2.502 2.433 2.686 3.073 3.239 2.942 2.281 1.637 1.379 1.584 2.005 2.314 2.374 2.306 2.319 2.487 2.702 2.828 2.876 3.011 3.371 3.884 4.287 4.323 3.970 3.446 3.030 2.843 2.809 + 7.037 6.533 5.882 5.516 5.611 5.962 6.170 5.958 5.375 4.718 4.274 4.091 3.974 3.684 3.154 2.541 2.084 1.908 1.932 1.973 1.923 1.855 1.959 2.376 3.065 3.814 4.381 4.644 4.646 4.508 4.313 4.043 3.637 3.099 2.554 2.205 + 8.683 7.907 6.825 6.035 5.857 6.159 6.532 6.632 6.411 6.067 5.801 5.616 5.334 4.785 3.987 3.154 2.533 2.223 2.129 2.083 2.009 1.982 2.151 2.588 3.207 3.811 4.215 4.355 4.293 4.142 3.982 3.824 3.641 3.425 3.215 3.083 + 9.042 8.336 7.376 6.712 6.587 6.808 6.982 6.867 6.540 6.243 6.091 5.939 5.524 4.743 3.794 3.045 2.743 2.831 3.031 3.106 3.062 3.104 3.412 3.939 4.422 4.594 4.404 4.066 3.885 4.008 4.315 4.501 4.311 3.726 3.000 2.504 + 8.347 8.111 7.677 7.162 6.766 6.671 6.897 7.247 7.439 7.316 6.961 6.599 6.364 6.165 5.776 5.083 4.251 3.629 3.482 3.770 4.191 4.450 4.496 4.531 4.775 5.242 5.709 5.926 5.834 5.588 5.384 5.259 5.086 4.740 4.280 3.943 + 8.968 8.840 8.645 8.460 8.329 8.224 8.067 7.787 7.389 6.966 6.643 6.485 6.441 6.373 6.159 5.787 5.363 5.040 4.909 4.969 5.166 5.465 5.872 6.374 6.875 7.202 7.206 6.889 6.427 6.063 5.935 5.989 6.041 5.947 5.729 5.545 + 8.766 8.595 8.385 8.284 8.332 8.421 8.382 8.123 7.700 7.274 7.001 6.927 6.986 7.059 7.059 6.963 6.801 6.617 6.462 6.387 6.442 6.648 6.967 7.304 7.547 7.619 7.518 7.297 7.033 6.787 6.595 6.476 6.439 6.472 6.539 6.590 + 8.638 8.367 7.970 7.634 7.463 7.435 7.451 7.439 7.404 7.385 7.386 7.334 7.140 6.785 6.373 6.071 5.986 6.080 6.191 6.165 5.985 5.793 5.784 6.047 6.493 6.915 7.137 7.142 7.059 7.046 7.146 7.256 7.215 6.958 6.587 6.316 + 8.932 8.198 7.243 6.676 6.733 7.147 7.459 7.443 7.257 7.220 7.433 7.654 7.522 6.940 6.216 5.823 5.981 6.434 6.651 6.283 5.475 4.780 4.726 5.407 6.414 7.158 7.304 6.967 6.566 6.457 6.675 6.936 6.902 6.453 5.796 5.318 + 8.827 8.289 7.602 7.226 7.331 7.686 7.892 7.739 7.364 7.103 7.158 7.408 7.513 7.230 6.647 6.127 5.997 6.269 6.624 6.686 6.349 5.871 5.666 5.949 6.555 7.066 7.147 6.810 6.384 6.219 6.385 6.596 6.456 5.804 4.892 4.232 + 8.910 8.918 8.867 8.685 8.367 7.977 7.607 7.320 7.136 7.054 7.072 7.167 7.259 7.232 7.004 6.603 6.164 5.847 5.730 5.779 5.920 6.137 6.469 6.916 7.343 7.512 7.267 6.707 6.180 6.042 6.369 6.860 7.057 6.713 6.016 5.462 + 8.124 7.784 7.345 7.119 7.249 7.589 7.780 7.488 6.639 5.491 4.480 3.951 3.970 4.334 4.764 5.104 5.376 5.668 5.989 6.237 6.307 6.228 6.178 6.334 6.696 7.058 7.174 6.977 6.656 6.491 6.600 6.806 6.785 6.359 5.688 5.182 + 6.268 5.027 3.778 3.885 5.626 7.929 9.273 8.921 7.416 5.976 5.424 5.625 5.855 5.637 5.201 5.169 5.846 6.858 7.488 7.364 6.814 6.546 6.985 7.893 8.617 8.694 8.240 7.794 7.805 8.269 8.808 9.050 8.917 8.602 8.329 8.195 + 9.200 8.435 7.450 6.909 7.105 7.783 8.394 8.527 8.171 7.616 7.167 6.928 6.826 6.764 6.737 6.788 6.905 7.001 7.009 6.982 7.069 7.361 7.773 8.095 8.180 8.101 8.103 8.379 8.881 9.337 9.477 9.252 8.862 8.565 8.464 8.476 + 8.071 8.081 8.190 8.460 8.813 9.036 8.919 8.418 7.714 7.096 6.772 6.749 6.860 6.913 6.830 6.682 6.606 6.695 6.940 7.259 7.567 7.818 8.011 8.163 8.287 8.395 8.503 8.619 8.736 8.820 8.833 8.755 8.603 8.425 8.275 8.190 + 8.090 7.823 7.564 7.622 8.048 8.549 8.680 8.187 7.228 6.292 5.882 6.169 6.890 7.555 7.791 7.574 7.188 6.975 7.084 7.413 7.755 8.003 8.222 8.549 9.017 9.484 9.727 9.628 9.273 8.897 8.701 8.716 8.816 8.855 8.794 8.716 + 8.193 7.388 6.447 6.154 6.760 7.795 8.469 8.306 7.490 6.651 6.339 6.624 7.141 7.459 7.432 7.239 7.143 7.242 7.428 7.559 7.637 7.807 8.198 8.767 9.310 9.618 9.627 9.442 9.224 9.064 8.946 8.811 8.633 8.440 8.284 8.200 + 5.164 5.288 5.659 6.354 7.235 7.976 8.267 8.043 7.518 7.025 6.785 6.808 6.966 7.127 7.220 7.197 7.005 6.635 6.213 6.011 6.287 7.068 8.069 8.850 9.128 8.966 8.701 8.639 8.817 9.009 8.970 8.677 8.338 8.184 8.254 8.381 + 6.449 6.594 6.906 7.372 7.884 8.252 8.300 7.976 7.419 6.888 6.624 6.705 7.022 7.363 7.554 7.553 7.433 7.303 7.227 7.235 7.358 7.662 8.192 8.889 9.553 9.926 9.858 9.428 8.910 8.597 8.589 8.742 8.789 8.576 8.185 7.879 + 5.543 5.809 6.389 7.255 8.201 8.884 9.029 8.627 7.961 7.410 7.185 7.208 7.216 7.012 6.646 6.368 6.418 6.816 7.355 7.774 7.977 8.105 8.393 8.947 9.621 10.102 10.134 9.707 9.072 8.558 8.363 8.446 8.614 8.688 8.637 8.559 + 4.372 4.423 4.709 5.402 6.439 7.477 8.083 8.024 7.436 6.731 6.319 6.343 6.621 6.830 6.758 6.458 6.170 6.128 6.396 6.864 7.380 7.878 8.391 8.955 9.498 9.836 9.797 9.365 8.720 8.139 7.819 7.770 7.852 7.909 7.885 7.836 + 5.675 5.764 5.911 6.080 6.247 6.399 6.500 6.488 6.326 6.057 5.828 5.815 6.094 6.554 6.932 6.975 6.621 6.068 5.669 5.722 6.296 7.197 8.100 8.735 9.000 8.955 8.722 8.395 8.023 7.650 7.365 7.286 7.488 7.927 8.428 8.760 + 5.281 5.112 4.966 5.063 5.458 5.974 6.323 6.321 6.036 5.735 5.689 5.966 6.386 6.658 6.608 6.307 6.016 6.002 6.356 6.962 7.606 8.131 8.506 8.776 8.951 8.962 8.717 8.212 7.588 7.072 6.852 6.962 7.287 7.653 7.928 8.065 + 3.325 3.498 3.914 4.582 5.340 5.898 6.032 5.769 5.397 5.266 5.530 6.044 6.491 6.626 6.443 6.156 6.015 6.146 6.516 7.026 7.611 8.265 8.965 9.614 10.048 10.121 9.800 9.187 8.476 7.864 7.492 7.422 7.631 8.018 8.424 8.681 + 1.874 2.048 2.516 3.351 4.389 5.231 5.458 4.940 3.992 3.220 3.156 3.909 5.111 6.182 6.732 6.791 6.717 6.863 7.296 7.790 8.066 8.065 8.001 8.148 8.568 9.016 9.133 8.757 8.078 7.505 7.359 7.636 8.059 8.328 8.358 8.290 + 3.248 3.459 3.909 4.575 5.303 5.815 5.839 5.302 4.438 3.709 3.551 4.098 5.090 6.046 6.587 6.674 6.576 6.612 6.884 7.226 7.402 7.356 7.279 7.422 7.835 8.277 8.411 8.103 7.566 7.190 7.215 7.518 7.732 7.580 7.132 6.745 + 3.560 3.779 4.249 4.909 5.507 5.674 5.165 4.097 2.967 2.396 2.753 3.912 5.341 6.432 6.857 6.693 6.280 5.949 5.832 5.882 6.012 6.214 6.539 6.986 7.423 7.642 7.521 7.143 6.757 6.602 6.718 6.912 6.912 6.594 6.093 5.717 + 4.696 4.469 4.267 4.380 4.888 5.592 6.169 6.414 6.349 6.146 5.943 5.743 5.469 5.107 4.776 4.645 4.782 5.069 5.289 5.296 5.142 5.027 5.130 5.458 5.830 6.018 5.911 5.578 5.201 4.938 4.825 4.784 4.709 4.553 4.361 4.228 + 4.631 4.567 4.563 4.743 5.115 5.540 5.837 5.914 5.815 5.655 5.503 5.333 5.062 4.646 4.127 3.595 3.128 2.761 2.514 2.439 2.606 3.044 3.665 4.286 4.718 4.877 4.827 4.709 4.635 4.620 4.600 4.509 4.335 4.127 3.949 3.850 + 5.073 5.588 6.417 7.252 7.806 7.915 7.565 6.869 6.026 5.253 4.717 4.471 4.434 4.447 4.379 4.211 4.025 3.909 3.860 3.780 3.576 3.272 3.020 2.985 3.196 3.504 3.698 3.680 3.542 3.468 3.541 3.647 3.564 3.177 2.621 2.212 + 7.360 7.463 7.811 8.479 9.285 9.837 9.808 9.201 8.365 7.725 7.483 7.524 7.605 7.601 7.579 7.644 7.731 7.589 6.997 6.016 5.023 4.479 4.596 5.191 5.839 6.174 6.100 5.760 5.344 4.933 4.496 3.992 3.461 3.000 2.690 2.544 + 7.675 7.751 8.119 8.919 9.936 10.661 10.669 9.973 9.017 8.324 8.101 8.178 8.281 8.335 8.483 8.809 9.098 8.911 7.982 6.548 5.279 4.816 5.294 6.263 7.057 7.283 7.015 6.577 6.174 5.735 5.075 4.171 3.241 2.570 2.261 2.189 + 8.101 8.072 8.293 8.979 9.958 10.713 10.770 10.101 9.139 8.418 8.170 8.244 8.378 8.503 8.743 9.143 9.430 9.133 8.019 6.419 5.115 4.803 5.568 6.831 7.802 8.046 7.696 7.188 6.813 6.506 6.023 5.261 4.397 3.718 3.366 3.260 + 8.276 8.230 8.412 9.039 9.952 10.650 10.667 9.962 8.957 8.193 7.927 8.030 8.228 8.403 8.636 8.969 9.177 8.854 7.786 6.268 5.017 4.698 5.435 6.716 7.777 8.124 7.787 7.128 6.465 5.852 5.177 4.395 3.647 3.132 2.913 2.876 + 8.287 8.286 8.520 9.163 10.041 10.664 10.582 9.757 8.613 7.723 7.402 7.564 7.909 8.220 8.471 8.676 8.695 8.262 7.245 5.900 4.820 4.563 5.245 6.434 7.442 7.775 7.390 6.598 5.749 5.012 4.371 3.787 3.303 3.000 2.890 2.883 + 8.375 8.490 8.803 9.329 9.887 10.148 9.856 9.041 8.033 7.252 6.947 7.091 7.468 7.865 8.155 8.264 8.087 7.518 6.579 5.528 4.782 4.678 5.233 6.103 6.798 6.978 6.627 5.990 5.352 4.857 4.487 4.154 3.817 3.504 3.268 3.146 + 8.198 8.388 8.754 9.188 9.463 9.324 8.683 7.731 6.858 6.402 6.441 6.784 7.162 7.431 7.614 7.750 7.748 7.400 6.591 5.498 4.579 4.299 4.796 5.749 6.573 6.792 6.328 5.493 4.732 4.321 4.226 4.207 4.028 3.630 3.153 2.831 + 8.025 8.280 8.619 8.769 8.495 7.764 6.817 6.051 5.758 5.899 6.135 6.108 5.753 5.363 5.305 5.650 6.038 5.960 5.220 4.172 3.495 3.667 4.570 5.574 6.018 5.682 4.879 4.121 3.703 3.552 3.426 3.211 3.020 3.024 3.224 3.426 + 8.093 7.743 7.306 7.040 6.933 6.712 6.126 5.237 4.409 4.017 4.121 4.428 4.578 4.465 4.303 4.369 4.685 4.950 4.805 4.193 3.461 3.111 3.397 4.126 4.816 5.056 4.782 4.247 3.773 3.523 3.454 3.443 3.416 3.380 3.364 3.365 + 6.914 6.388 5.886 5.975 6.671 7.379 7.387 6.490 5.154 4.122 3.809 4.042 4.329 4.345 4.184 4.153 4.383 4.647 4.569 4.006 3.211 2.632 2.539 2.831 3.189 3.380 3.426 3.488 3.640 3.779 3.756 3.573 3.412 3.457 3.698 3.923 + 6.588 6.116 5.648 5.675 6.218 6.768 6.715 5.866 4.595 3.510 2.969 2.879 2.919 2.917 2.994 3.352 3.954 4.455 4.468 3.924 3.169 2.693 2.743 3.156 3.553 3.672 3.552 3.400 3.351 3.348 3.263 3.084 2.962 3.049 3.317 3.553 + 6.315 5.693 5.077 5.134 5.932 6.818 6.937 5.945 4.302 2.913 2.435 2.840 3.545 3.945 3.867 3.580 3.448 3.575 3.766 3.767 3.524 3.219 3.068 3.119 3.232 3.238 3.110 2.975 2.981 3.153 3.380 3.513 3.482 3.330 3.156 3.047 + 5.719 5.153 4.516 4.358 4.790 5.388 5.558 5.043 4.131 3.400 3.253 3.643 4.191 4.537 4.590 4.488 4.371 4.226 3.940 3.492 3.035 2.796 2.873 3.145 3.385 3.457 3.408 3.383 3.454 3.545 3.516 3.314 3.024 2.789 2.681 2.660 + 6.090 5.466 4.798 4.730 5.384 6.242 6.571 6.032 4.930 3.935 3.537 3.717 4.075 4.230 4.120 3.942 3.873 3.863 3.710 3.297 2.755 2.375 2.364 2.691 3.140 3.506 3.728 3.857 3.927 3.886 3.670 3.307 2.943 2.727 2.689 2.726 + 7.051 6.531 5.857 5.453 5.462 5.658 5.680 5.357 4.836 4.431 4.340 4.514 4.742 4.858 4.848 4.779 4.659 4.403 3.942 3.355 2.871 2.706 2.890 3.243 3.521 3.611 3.577 3.548 3.559 3.528 3.361 3.088 2.861 2.817 2.943 3.082 + 8.279 7.273 5.993 5.311 5.567 6.355 6.926 6.809 6.141 5.463 5.225 5.458 5.840 6.020 5.877 5.505 5.030 4.501 3.944 3.474 3.277 3.443 3.817 4.071 3.961 3.551 3.173 3.143 3.482 3.902 4.072 3.900 3.581 3.386 3.403 3.496 + 9.231 8.230 6.848 5.879 5.742 6.270 6.941 7.316 7.303 7.094 6.910 6.817 6.754 6.664 6.555 6.427 6.185 5.691 4.929 4.119 3.616 3.636 4.048 4.445 4.446 3.997 3.396 3.035 3.079 3.369 3.598 3.573 3.345 3.095 2.951 2.909 + 8.993 8.245 7.125 6.182 5.843 6.202 7.002 7.794 8.199 8.098 7.675 7.278 7.196 7.459 7.806 7.830 7.252 6.134 4.887 4.050 3.945 4.469 5.142 5.415 5.020 4.123 3.184 2.643 2.642 2.986 3.325 3.393 3.144 2.719 2.316 2.080 + 8.755 8.123 7.237 6.593 6.483 6.854 7.415 7.866 8.063 8.029 7.874 7.722 7.682 7.828 8.127 8.383 8.296 7.652 6.535 5.353 4.604 4.529 4.919 5.256 5.095 4.390 3.503 2.903 2.815 3.081 3.328 3.266 2.863 2.302 1.812 1.541 + 8.492 7.794 6.896 6.404 6.581 7.215 7.857 8.188 8.190 8.036 7.871 7.726 7.601 7.557 7.648 7.769 7.619 6.916 5.711 4.483 3.850 4.082 4.839 5.395 5.202 4.323 3.352 2.911 3.142 3.642 3.852 3.523 2.862 2.263 1.952 1.871 + 8.132 7.210 6.065 5.531 5.938 6.908 7.727 7.922 7.552 7.032 6.714 6.650 6.678 6.675 6.670 6.720 6.735 6.497 5.888 5.091 4.516 4.461 4.823 5.137 4.951 4.217 3.340 2.840 2.933 3.377 3.710 3.621 3.148 2.561 2.113 1.894 + 7.515 6.534 5.403 5.069 5.796 6.981 7.693 7.449 6.532 5.642 5.264 5.340 5.478 5.415 5.241 5.210 5.390 5.552 5.418 4.988 4.587 4.552 4.885 5.213 5.132 4.588 3.926 3.553 3.553 3.628 3.410 2.828 2.174 1.803 1.800 1.931 + 8.536 7.208 5.531 4.676 5.088 6.204 6.987 6.768 5.700 4.500 3.815 3.777 4.073 4.333 4.421 4.398 4.313 4.110 3.766 3.451 3.469 3.972 4.733 5.254 5.151 4.495 3.753 3.384 3.442 3.564 3.341 2.709 1.998 1.596 1.590 1.730 + 4.982 4.797 4.522 4.310 4.301 4.526 4.848 5.016 4.821 4.251 3.539 3.023 2.916 3.154 3.437 3.447 3.076 2.491 2.011 1.882 2.137 2.602 3.029 3.235 3.161 2.865 2.467 2.109 1.908 1.901 2.006 2.047 1.858 1.409 0.863 0.487 + 6.690 5.643 4.296 3.546 3.738 4.457 4.944 4.747 4.047 3.422 3.318 3.688 4.108 4.181 3.849 3.365 3.004 2.833 2.740 2.637 2.593 2.753 3.135 3.531 3.638 3.311 2.696 2.125 1.856 1.903 2.063 2.105 1.937 1.632 1.333 1.157 + 7.682 6.565 5.045 3.994 3.793 4.134 4.380 4.126 3.485 2.873 2.586 2.554 2.502 2.280 2.035 2.045 2.394 2.840 3.003 2.708 2.150 1.724 1.689 1.962 2.215 2.181 1.861 1.487 1.293 1.325 1.451 1.504 1.428 1.280 1.150 1.083 + 5.910 5.203 4.209 3.461 3.240 3.418 3.613 3.514 3.103 2.629 2.381 2.469 2.784 3.131 3.387 3.545 3.638 3.629 3.414 2.927 2.259 1.650 1.351 1.442 1.776 2.075 2.134 1.945 1.677 1.517 1.511 1.536 1.411 1.066 0.616 0.299 + 2.653 3.053 3.649 4.162 4.398 4.330 4.057 3.708 3.375 3.115 2.974 2.986 3.136 3.327 3.424 3.334 3.081 2.787 2.570 2.454 2.362 2.199 1.955 1.728 1.644 1.750 1.958 2.110 2.081 1.860 1.536 1.224 0.998 0.867 0.804 0.779 + 4.027 3.931 3.858 3.930 4.136 4.304 4.218 3.782 3.097 2.411 1.955 1.818 1.924 2.118 2.282 2.383 2.448 2.501 2.526 2.482 2.346 2.145 1.947 1.830 1.838 1.955 2.107 2.182 2.084 1.787 1.360 0.942 0.672 0.602 0.675 0.761 + 5.823 5.479 5.027 4.740 4.699 4.715 4.484 3.843 2.928 2.114 1.773 2.022 2.648 3.242 3.447 3.156 2.545 1.940 1.628 1.701 2.035 2.381 2.513 2.352 1.989 1.615 1.391 1.353 1.405 1.405 1.277 1.061 0.872 0.798 0.832 0.890 + 5.279 4.645 3.860 3.494 3.752 4.333 4.704 4.529 3.894 3.181 2.748 2.708 2.943 3.274 3.583 3.793 3.809 3.535 2.985 2.354 1.928 1.862 2.038 2.140 1.920 1.415 0.916 0.715 0.854 1.102 1.178 0.989 0.685 0.484 0.464 0.521 + 7.856 7.657 7.325 6.922 6.448 5.864 5.177 4.494 3.969 3.698 3.656 3.736 3.860 4.017 4.206 4.341 4.257 3.853 3.243 2.756 2.729 3.245 4.052 4.752 5.109 5.198 5.275 5.478 5.672 5.576 5.078 4.420 4.047 4.234 4.825 5.332 + 9.001 8.794 8.460 8.085 7.683 7.217 6.675 6.119 5.644 5.310 5.134 5.165 5.526 6.328 7.476 8.565 9.044 8.610 7.500 6.411 6.023 6.502 7.384 7.993 8.009 7.714 7.670 8.143 8.801 8.994 8.373 7.267 6.453 6.493 7.233 7.936 + 6.529 5.638 4.315 3.220 2.856 3.291 4.136 4.783 4.785 4.143 3.322 2.980 3.541 4.904 6.457 7.432 7.375 6.422 5.203 4.422 4.417 4.990 5.635 5.947 5.915 5.856 6.076 6.549 6.907 6.741 5.981 5.010 4.397 4.459 5.011 5.515 + 4.948 3.964 2.651 1.807 1.787 2.296 2.717 2.641 2.151 1.675 1.578 1.882 2.322 2.617 2.679 2.600 2.493 2.381 2.234 2.081 2.026 2.145 2.372 2.531 2.501 2.351 2.289 2.460 2.776 2.968 2.819 2.367 1.880 1.627 1.650 1.762 + 3.835 3.669 3.538 3.624 3.856 3.936 3.600 2.889 2.177 1.903 2.234 2.949 3.620 3.921 3.811 3.468 3.090 2.769 2.519 2.375 2.417 2.679 3.056 3.336 3.359 3.171 3.002 3.078 3.435 3.891 4.212 4.303 4.254 4.224 4.277 4.350 + 3.799 3.740 3.711 3.760 3.787 3.605 3.121 2.488 2.041 2.046 2.487 3.067 3.446 3.503 3.399 3.402 3.635 3.977 4.194 4.160 3.960 3.792 3.778 3.871 3.921 3.841 3.691 3.609 3.681 3.862 4.034 4.119 4.133 4.143 4.186 4.230 + 4.616 4.093 3.395 2.971 3.048 3.491 3.924 4.011 3.684 3.171 2.815 2.849 3.269 3.874 4.407 4.693 4.706 4.551 4.405 4.446 4.789 5.432 6.247 7.020 7.534 7.668 7.438 6.983 6.485 6.103 5.928 5.977 6.208 6.535 6.847 7.037 + 4.656 4.633 4.572 4.496 4.480 4.592 4.799 4.938 4.840 4.501 4.145 4.082 4.450 5.065 5.515 5.462 4.907 4.205 3.824 4.045 4.817 5.861 6.875 7.675 8.191 8.389 8.253 7.834 7.301 6.877 6.696 6.706 6.717 6.572 6.297 6.074 + 4.696 4.079 3.228 2.652 2.653 3.134 3.686 3.893 3.635 3.176 2.971 3.329 4.191 5.168 5.818 5.940 5.674 5.360 5.286 5.527 5.980 6.515 7.085 7.694 8.300 8.761 8.922 8.756 8.417 8.135 8.026 7.991 7.813 7.373 6.792 6.375 + 5.714 5.350 4.804 4.313 4.020 3.902 3.824 3.668 3.421 3.191 3.129 3.345 3.835 4.467 5.025 5.295 5.192 4.838 4.538 4.611 5.185 6.071 6.863 7.198 7.003 6.545 6.221 6.259 6.567 6.831 6.796 6.457 6.041 5.787 5.755 5.814 + 6.045 6.043 6.104 6.274 6.501 6.616 6.423 5.828 4.928 3.995 3.369 3.303 3.845 4.798 5.785 6.406 6.425 5.900 5.173 4.696 4.767 5.348 6.084 6.525 6.411 5.831 5.144 4.737 4.789 5.200 5.710 6.080 6.224 6.193 6.100 6.032 + 7.267 6.590 5.729 5.279 5.484 6.072 6.496 6.361 5.680 4.801 4.103 3.742 3.631 3.613 3.622 3.699 3.880 4.110 4.277 4.321 4.307 4.371 4.600 4.954 5.304 5.539 5.639 5.657 5.647 5.627 5.597 5.590 5.669 5.862 6.111 6.289 + 7.124 6.935 6.718 6.630 6.663 6.631 6.328 5.716 4.951 4.265 3.792 3.522 3.383 3.348 3.452 3.702 4.003 4.202 4.214 4.112 4.071 4.199 4.430 4.576 4.514 4.310 4.170 4.244 4.483 4.685 4.693 4.558 4.492 4.665 5.022 5.315 + 4.343 4.523 4.813 5.072 5.127 4.869 4.341 3.746 3.329 3.219 3.347 3.527 3.622 3.657 3.772 4.058 4.440 4.708 4.694 4.423 4.102 3.965 4.091 4.369 4.604 4.673 4.586 4.421 4.224 3.981 3.690 3.421 3.297 3.386 3.617 3.809 + 4.162 4.495 4.911 5.099 4.911 4.458 4.000 3.744 3.703 3.729 3.672 3.528 3.430 3.519 3.795 4.092 4.204 4.058 3.789 3.642 3.786 4.185 4.619 4.852 4.801 4.574 4.374 4.335 4.435 4.543 4.543 4.427 4.286 4.215 4.231 4.272 + 4.242 4.770 5.352 5.470 5.030 4.422 4.142 4.335 4.691 4.768 4.422 3.926 3.678 3.809 4.055 4.029 3.601 3.034 2.740 2.911 3.373 3.779 3.935 3.930 3.974 4.137 4.261 4.130 3.722 3.263 3.036 3.130 3.378 3.541 3.529 3.450 + 3.956 4.038 4.214 4.463 4.696 4.784 4.648 4.337 4.022 3.887 3.995 4.226 4.351 4.192 3.751 3.216 2.825 2.715 2.854 3.102 3.346 3.575 3.848 4.187 4.500 4.628 4.468 4.086 3.697 3.517 3.607 3.824 3.940 3.821 3.537 3.303 + 5.006 4.423 3.684 3.282 3.371 3.670 3.746 3.403 2.832 2.419 2.409 2.728 3.102 3.308 3.329 3.276 3.225 3.136 2.951 2.720 2.605 2.735 3.054 3.339 3.393 3.217 3.012 2.979 3.127 3.265 3.187 2.877 2.519 2.325 2.339 2.424 + 2.931 3.315 3.855 4.268 4.406 4.297 4.048 3.729 3.366 3.024 2.838 2.912 3.171 3.346 3.162 2.595 1.944 1.619 1.803 2.285 2.641 2.607 2.312 2.141 2.367 2.883 3.300 3.303 2.945 2.577 2.499 2.670 2.752 2.461 1.875 1.397 + 2.013 2.081 2.322 2.782 3.306 3.586 3.402 2.840 2.264 2.050 2.292 2.738 3.008 2.921 2.631 2.472 2.650 3.061 3.387 3.378 3.074 2.780 2.822 3.293 3.998 4.603 4.873 4.791 4.510 4.202 3.939 3.685 3.376 3.007 2.654 2.436 + 3.930 3.503 2.934 2.584 2.627 2.953 3.274 3.367 3.226 3.047 3.046 3.294 3.672 3.969 4.034 3.855 3.536 3.216 3.000 2.939 3.054 3.340 3.758 4.224 4.624 4.856 4.876 4.717 4.458 4.192 3.984 3.864 3.829 3.854 3.904 3.941 + 4.715 4.194 3.553 3.245 3.408 3.791 4.025 3.978 3.847 3.931 4.312 4.759 4.936 4.705 4.227 3.786 3.515 3.308 2.984 2.538 2.210 2.292 2.855 3.653 4.295 4.542 4.454 4.285 4.248 4.358 4.481 4.498 4.411 4.311 4.264 4.261 + 3.373 3.289 3.208 3.217 3.300 3.325 3.136 2.696 2.147 1.761 1.784 2.288 3.132 4.038 4.732 5.068 5.069 4.883 4.693 4.639 4.764 5.030 5.350 5.645 5.887 6.098 6.326 6.593 6.873 7.101 7.215 7.193 7.069 6.905 6.764 6.685 + 3.719 3.247 2.679 2.464 2.779 3.388 3.835 3.787 3.266 2.605 2.195 2.224 2.605 3.101 3.501 3.726 3.805 3.802 3.767 3.753 3.829 4.063 4.459 4.932 5.343 5.587 5.662 5.660 5.693 5.808 5.958 6.050 6.013 5.857 5.660 5.526 + 5.229 5.748 6.639 7.615 8.320 8.475 8.030 7.203 6.350 5.735 5.374 5.071 4.620 3.999 3.388 3.022 2.999 3.218 3.487 3.680 3.811 3.960 4.160 4.354 4.461 4.491 4.556 4.787 5.196 5.645 5.922 5.890 5.568 5.106 4.685 4.443 + 5.118 5.208 5.446 5.858 6.332 6.615 6.449 5.745 4.686 3.650 3.007 2.904 3.204 3.599 3.829 3.826 3.716 3.680 3.817 4.108 4.469 4.842 5.207 5.522 5.687 5.585 5.202 4.709 4.403 4.505 4.976 5.506 5.717 5.446 4.879 4.429 + 5.726 5.629 5.754 6.382 7.395 8.284 8.531 8.021 7.113 6.324 5.921 5.797 5.693 5.494 5.316 5.315 5.476 5.638 5.713 5.855 6.337 7.229 8.202 8.708 8.434 7.604 6.842 6.677 7.122 7.699 7.881 7.540 7.000 6.682 6.712 6.865 + 5.516 5.696 6.102 6.741 7.496 8.140 8.441 8.294 7.753 6.986 6.187 5.521 5.115 5.028 5.209 5.479 5.608 5.479 5.218 5.156 5.602 6.584 7.777 8.688 8.992 8.734 8.257 7.914 7.819 7.818 7.694 7.384 7.022 6.788 6.739 6.775 + 4.587 4.975 5.671 6.548 7.449 8.171 8.454 8.070 6.999 5.540 4.230 3.536 3.552 3.931 4.163 3.981 3.570 3.408 3.859 4.887 6.108 7.115 7.768 8.201 8.578 8.870 8.882 8.488 7.820 7.193 6.823 6.621 6.275 5.578 4.685 4.046 + 4.304 4.582 5.131 5.911 6.805 7.608 8.072 8.014 7.424 6.501 5.548 4.797 4.282 3.872 3.441 3.032 2.873 3.209 4.091 5.295 6.454 7.293 7.761 7.988 8.108 8.141 8.031 7.773 7.482 7.288 7.172 6.911 6.236 5.103 3.840 2.996 + 3.637 4.010 4.520 4.890 5.019 4.999 4.946 4.838 4.528 3.930 3.181 2.593 2.414 2.628 2.978 3.203 3.266 3.363 3.709 4.320 4.984 5.451 5.633 5.631 5.588 5.535 5.407 5.187 5.001 5.024 5.259 5.433 5.170 4.326 3.202 2.400 + 2.673 3.051 3.694 4.404 4.961 5.206 5.092 4.693 4.141 3.556 2.992 2.464 1.998 1.664 1.547 1.671 1.970 2.316 2.618 2.891 3.231 3.709 4.267 4.710 4.826 4.548 4.038 3.612 3.543 3.876 4.385 4.706 4.571 3.980 3.218 2.694 + 5.070 4.996 5.056 5.422 5.980 6.337 6.096 5.187 3.947 2.892 2.354 2.287 2.371 2.301 2.010 1.665 1.490 1.595 1.942 2.424 2.955 3.474 3.906 4.164 4.206 4.097 3.986 3.999 4.137 4.281 4.306 4.196 4.054 3.996 4.045 4.115 + 5.535 5.776 6.115 6.335 6.249 5.800 5.099 4.371 3.833 3.569 3.487 3.390 3.108 2.616 2.048 1.615 1.480 1.680 2.123 2.654 3.130 3.466 3.645 3.702 3.705 3.728 3.818 3.958 4.074 4.061 3.853 3.458 2.963 2.486 2.126 1.936 + 3.224 3.896 4.792 5.318 5.135 4.370 3.507 3.034 3.109 3.466 3.640 3.314 2.555 1.758 1.360 1.531 2.076 2.605 2.827 2.750 2.640 2.784 3.255 3.848 4.229 4.181 3.757 3.239 2.940 2.997 3.299 3.579 3.606 3.331 2.914 2.611 + 3.709 3.953 4.460 5.154 5.784 6.032 5.746 5.094 4.471 4.196 4.263 4.352 4.126 3.531 2.853 2.475 2.554 2.906 3.196 3.245 3.181 3.299 3.765 4.442 4.972 5.065 4.711 4.179 3.801 3.743 3.924 4.127 4.169 4.018 3.779 3.606 + 2.750 2.685 2.868 3.564 4.628 5.485 5.539 4.662 3.351 2.383 2.239 2.756 3.290 3.253 2.587 1.787 1.495 1.984 2.966 3.842 4.172 3.988 3.715 3.798 4.353 5.099 5.597 5.580 5.122 4.547 4.178 4.142 4.345 4.602 4.784 4.864 + 3.339 3.328 3.793 5.108 6.945 8.314 8.283 6.758 4.616 3.051 2.676 3.152 3.620 3.529 3.093 3.026 3.824 5.264 6.567 7.032 6.591 5.813 5.403 5.661 6.318 6.832 6.821 6.281 5.494 4.771 4.289 4.074 4.081 4.238 4.448 4.594 + 1.223 1.836 3.255 5.458 7.853 9.434 9.431 7.933 5.907 4.529 4.352 4.988 5.554 5.490 5.031 4.942 5.780 7.326 8.702 9.061 8.279 7.054 6.370 6.742 7.870 8.916 9.149 8.447 7.294 6.342 5.932 5.919 5.897 5.583 5.048 4.631 + 3.099 3.712 4.930 6.597 8.287 9.412 9.539 8.699 7.417 6.381 5.988 6.104 6.261 6.123 5.831 5.909 6.762 8.202 9.441 9.637 8.593 7.014 6.061 6.487 8.041 9.636 10.172 9.375 7.962 7.007 7.046 7.655 7.874 7.086 5.597 4.416 + 2.984 3.594 4.741 6.257 7.869 9.207 9.910 9.783 8.935 7.764 6.745 6.156 5.968 5.981 6.110 6.504 7.359 8.565 9.565 9.662 8.619 7.018 5.972 6.325 7.937 9.716 10.435 9.700 8.244 7.279 7.437 8.217 8.453 7.393 5.442 3.905 + 3.697 4.120 4.841 5.718 6.686 7.712 8.675 9.311 9.345 8.704 7.626 6.535 5.807 5.609 5.927 6.680 7.737 8.817 9.451 9.201 8.049 6.615 5.876 6.478 8.160 9.837 10.386 9.527 8.062 7.199 7.509 8.415 8.696 7.591 5.551 3.944 + 5.240 5.410 5.805 6.493 7.474 8.612 9.627 10.184 10.049 9.215 7.930 6.591 5.601 5.251 5.653 6.704 8.061 9.179 9.513 8.825 7.438 6.160 5.833 6.751 8.389 9.709 9.892 8.945 7.688 7.087 7.461 8.206 8.305 7.217 5.399 4.008 + 3.237 3.904 5.043 6.378 7.684 8.830 9.719 10.227 10.225 9.666 8.672 7.520 6.551 6.056 6.189 6.915 7.961 8.845 9.041 8.284 6.841 5.483 5.070 5.957 7.662 9.129 9.457 8.565 7.240 6.504 6.775 7.528 7.762 6.879 5.257 3.983 + 6.509 6.507 6.666 7.192 8.149 9.328 10.275 10.524 9.903 8.685 7.433 6.629 6.368 6.378 6.339 6.200 6.189 6.497 6.956 7.076 6.473 5.312 4.328 4.298 5.400 7.004 8.141 8.267 7.665 7.134 7.245 7.827 8.165 7.708 6.633 5.736 + 5.615 5.781 6.231 7.061 8.180 9.253 9.828 9.607 8.662 7.417 6.402 5.921 5.909 6.082 6.241 6.439 6.847 7.443 7.859 7.596 6.493 5.018 4.047 4.234 5.457 6.860 7.500 7.096 6.237 5.847 6.339 7.226 7.525 6.649 4.994 3.687 + 5.997 5.954 6.016 6.358 7.021 7.826 8.444 8.573 8.132 7.315 6.486 5.966 5.872 6.101 6.447 6.738 6.888 6.852 6.576 6.023 5.269 4.552 4.178 4.321 4.855 5.406 5.596 5.314 4.788 4.382 4.291 4.384 4.339 3.949 3.334 2.867 + 5.772 5.711 5.630 5.605 5.730 6.058 6.541 7.010 7.243 7.076 6.511 5.728 5.014 4.641 4.744 5.257 5.925 6.388 6.339 5.691 4.671 3.734 3.320 3.577 4.250 4.839 4.940 4.526 3.949 3.641 3.754 4.040 4.062 3.580 2.788 2.184 + 6.356 6.273 6.235 6.407 6.854 7.454 7.930 7.993 7.520 6.646 5.695 4.989 4.679 4.699 4.861 4.995 5.024 4.933 4.718 4.388 4.029 3.827 3.966 4.449 5.012 5.245 4.903 4.132 3.426 3.257 3.693 4.294 4.437 3.821 2.749 1.924 + 4.382 5.123 6.150 6.890 7.044 6.716 6.226 5.817 5.520 5.264 5.046 4.975 5.126 5.399 5.548 5.386 4.964 4.541 4.356 4.429 4.564 4.564 4.415 4.275 4.273 4.347 4.297 4.010 3.618 3.403 3.518 3.803 3.885 3.522 2.854 2.326 + 1.950 2.996 4.546 5.894 6.615 6.740 6.569 6.340 6.067 5.650 5.107 4.664 4.591 4.953 5.511 5.878 5.809 5.364 4.829 4.482 4.408 4.494 4.569 4.530 4.360 4.086 3.737 3.372 3.101 3.034 3.182 3.401 3.474 3.279 2.909 2.617 + 3.515 3.691 4.129 4.864 5.747 6.474 6.772 6.583 6.094 5.584 5.240 5.084 5.052 5.099 5.216 5.356 5.382 5.142 4.624 4.031 3.683 3.778 4.226 4.702 4.890 4.716 4.372 4.122 4.077 4.128 4.079 3.840 3.493 3.195 3.035 2.987 + 2.463 3.059 4.124 5.400 6.527 7.175 7.194 6.707 6.031 5.497 5.269 5.316 5.500 5.699 5.852 5.909 5.792 5.433 4.873 4.313 4.031 4.187 4.685 5.207 5.419 5.197 4.698 4.222 3.990 4.004 4.081 4.010 3.702 3.230 2.766 2.484 + 3.836 4.260 4.993 5.839 6.575 7.018 7.081 6.792 6.280 5.715 5.249 4.966 4.880 4.956 5.136 5.350 5.508 5.513 5.301 4.904 4.470 4.208 4.262 4.597 4.987 5.153 4.945 4.462 3.989 3.797 3.944 4.234 4.378 4.214 3.842 3.539 + 5.817 6.071 6.442 6.738 6.820 6.674 6.400 6.136 5.963 5.862 5.749 5.554 5.293 5.066 4.991 5.107 5.325 5.475 5.416 5.142 4.798 4.587 4.627 4.854 5.066 5.066 4.814 4.468 4.275 4.378 4.689 4.930 4.826 4.315 3.626 3.137 + 5.492 5.775 6.283 6.850 7.207 7.108 6.519 5.704 5.093 4.998 5.387 5.916 6.199 6.096 5.782 5.558 5.569 5.688 5.654 5.335 4.869 4.564 4.639 5.035 5.457 5.595 5.353 4.892 4.485 4.307 4.330 4.372 4.261 3.958 3.582 3.325 + 5.622 5.886 6.400 7.060 7.644 7.897 7.706 7.201 6.677 6.384 6.354 6.414 6.369 6.175 5.946 5.797 5.701 5.504 5.089 4.538 4.103 4.006 4.244 4.576 4.720 4.576 4.291 4.116 4.193 4.454 4.714 4.837 4.824 4.769 4.745 4.749 + 5.506 5.863 6.541 7.390 8.120 8.423 8.181 7.574 6.955 6.583 6.437 6.294 5.974 5.535 5.204 5.125 5.174 5.043 4.537 3.795 3.224 3.163 3.597 4.166 4.469 4.382 4.122 4.002 4.137 4.357 4.398 4.158 3.773 3.469 3.351 3.348 + 6.232 6.124 6.214 6.778 7.712 8.531 8.739 8.246 7.448 6.896 6.853 7.118 7.266 7.050 6.612 6.314 6.386 6.724 7.010 7.028 6.860 6.786 7.001 7.417 7.741 7.731 7.415 7.065 6.973 7.228 7.672 8.042 8.159 8.023 7.778 7.599 + 2.784 3.367 4.457 5.841 7.159 8.035 8.292 8.074 7.733 7.563 7.572 7.513 7.134 6.433 5.691 5.246 5.222 5.448 5.624 5.596 5.467 5.473 5.740 6.151 6.437 6.414 6.137 5.854 5.812 6.066 6.461 6.759 6.807 6.619 6.340 6.144 + 4.669 5.479 6.581 7.327 7.404 7.014 6.650 6.694 7.141 7.669 7.923 7.763 7.302 6.744 6.219 5.743 5.289 4.861 4.483 4.142 3.777 3.349 2.934 2.724 2.905 3.505 4.336 5.090 5.508 5.501 5.140 4.565 3.904 3.260 2.734 2.434 + 5.150 5.622 6.268 6.746 6.947 7.034 7.235 7.590 7.899 7.912 7.568 7.050 6.612 6.354 6.158 5.836 5.326 4.749 4.275 3.952 3.687 3.381 3.076 2.948 3.138 3.594 4.087 4.393 4.461 4.408 4.350 4.243 3.925 3.316 2.578 2.063 + 5.097 5.291 5.647 6.137 6.741 7.412 8.023 8.381 8.348 7.974 7.512 7.270 7.380 7.682 7.824 7.522 6.760 5.790 4.924 4.324 3.942 3.635 3.337 3.103 3.031 3.143 3.364 3.599 3.815 4.026 4.193 4.177 3.818 3.103 2.268 1.702 + 5.351 5.720 6.228 6.635 6.913 7.233 7.733 8.309 8.657 8.548 8.080 7.657 7.668 8.154 8.755 8.968 8.515 7.504 6.286 5.182 4.326 3.714 3.347 3.282 3.540 4.010 4.470 4.750 4.852 4.896 4.932 4.821 4.331 3.399 2.303 1.553 + 3.846 4.786 5.918 6.430 6.177 5.772 5.967 6.922 8.051 8.566 8.207 7.456 7.087 7.465 8.268 8.821 8.691 7.980 7.101 6.350 5.708 5.050 4.447 4.200 4.532 5.287 5.981 6.195 5.933 5.572 5.430 5.405 5.057 4.091 2.764 1.792 + 3.691 3.659 3.765 4.207 5.032 6.105 7.203 8.156 8.886 9.341 9.432 9.079 8.348 7.539 7.078 7.248 7.941 8.668 8.854 8.242 7.087 6.002 5.550 5.883 6.680 7.414 7.717 7.586 7.281 7.046 6.885 6.563 5.833 4.696 3.482 2.692 + 3.719 3.928 4.341 4.965 5.807 6.833 7.916 8.846 9.413 9.506 9.166 8.542 7.828 7.226 6.948 7.170 7.916 8.929 9.696 9.709 8.837 7.507 6.495 6.401 7.209 8.286 8.856 8.591 7.809 7.138 6.913 6.874 6.418 5.215 3.611 2.456 + 4.825 4.527 4.252 4.419 5.240 6.568 7.983 9.049 9.553 9.552 9.235 8.743 8.117 7.415 6.845 6.741 7.327 8.453 9.572 10.050 9.616 8.601 7.724 7.561 8.109 8.819 9.068 8.682 8.057 7.759 7.953 8.186 7.754 6.355 4.475 3.127 + 2.203 2.839 3.748 4.559 5.239 6.062 7.228 8.523 9.387 9.361 8.502 7.368 6.579 6.365 6.500 6.644 6.720 6.942 7.514 8.322 8.977 9.173 8.981 8.769 8.811 8.996 8.949 8.451 7.732 7.290 7.375 7.668 7.494 6.458 4.904 3.741 + 4.041 4.315 4.732 5.178 5.679 6.355 7.234 8.104 8.591 8.423 7.656 6.663 5.886 5.557 5.617 5.858 6.135 6.453 6.883 7.442 8.055 8.633 9.123 9.478 9.587 9.291 8.552 7.607 6.918 6.853 7.342 7.826 7.620 6.473 4.851 3.674 + 3.455 3.523 3.891 4.757 6.012 7.218 7.891 7.853 7.339 6.785 6.472 6.331 6.079 5.537 4.843 4.382 4.490 5.194 6.209 7.169 7.887 8.417 8.891 9.317 9.522 9.306 8.669 7.883 7.333 7.227 7.424 7.507 7.086 6.103 4.921 4.117 + 3.786 3.737 3.808 4.177 4.836 5.553 6.021 6.075 5.807 5.472 5.269 5.187 5.038 4.665 4.128 3.716 3.756 4.371 5.386 6.458 7.317 7.919 8.384 8.798 9.065 8.970 8.391 7.483 6.639 6.225 6.302 6.562 6.565 6.091 5.331 4.758 + 3.544 3.574 3.693 3.939 4.252 4.483 4.506 4.333 4.128 4.101 4.346 4.763 5.123 5.232 5.060 4.755 4.525 4.507 4.719 5.101 5.599 6.188 6.820 7.359 7.596 7.359 6.655 5.715 4.883 4.415 4.319 4.367 4.273 3.906 3.393 3.021 + 4.110 4.437 4.953 5.433 5.661 5.552 5.210 4.862 4.695 4.710 4.725 4.551 4.189 3.871 3.891 4.341 5.004 5.502 5.589 5.344 5.096 5.144 5.521 5.997 6.292 6.317 6.207 6.156 6.220 6.280 6.185 5.921 5.631 5.482 5.503 5.578 + 5.249 5.379 5.626 5.914 6.090 6.002 5.625 5.118 4.729 4.609 4.694 4.776 4.704 4.539 4.511 4.800 5.333 5.798 5.870 5.475 4.862 4.430 4.436 4.831 5.340 5.690 5.803 5.801 5.865 6.075 6.362 6.586 6.654 6.571 6.425 6.320 + 5.327 6.162 7.354 8.267 8.506 8.100 7.378 6.677 6.133 5.697 5.309 5.028 5.004 5.327 5.908 6.513 6.911 7.024 6.941 6.825 6.788 6.852 6.989 7.190 7.473 7.843 8.248 8.591 8.779 8.783 8.640 8.422 8.191 7.985 7.829 7.743 + 7.039 7.226 7.499 7.711 7.741 7.526 7.067 6.431 5.763 5.280 5.188 5.559 6.251 6.961 7.416 7.551 7.538 7.623 7.908 8.266 8.475 8.439 8.306 8.350 8.726 9.318 9.820 9.983 9.812 9.528 9.359 9.335 9.302 9.105 8.774 8.512 + 7.314 7.114 6.857 6.731 6.833 7.094 7.306 7.255 6.871 6.297 5.824 5.726 6.089 6.758 7.429 7.836 7.898 7.740 7.578 7.555 7.660 7.763 7.750 7.631 7.539 7.626 7.931 8.333 8.621 8.643 8.410 8.093 7.898 7.925 8.108 8.271 + 6.136 6.519 7.042 7.406 7.479 7.366 7.284 7.348 7.483 7.506 7.336 7.108 7.083 7.421 7.996 8.441 8.403 7.828 7.028 6.487 6.518 7.054 7.720 8.119 8.109 7.863 7.675 7.704 7.865 7.942 7.808 7.555 7.413 7.535 7.851 8.116 + 5.076 5.278 5.565 5.800 5.934 6.040 6.239 6.580 6.973 7.244 7.265 7.060 6.790 6.626 6.608 6.612 6.464 6.110 5.705 5.525 5.771 6.399 7.135 7.646 7.760 7.560 7.283 7.124 7.090 7.025 6.752 6.221 5.544 4.903 4.441 4.210 + 3.365 3.886 4.846 6.052 7.190 7.901 7.931 7.302 6.343 5.551 5.314 5.669 6.282 6.685 6.600 6.134 5.682 5.614 6.003 6.598 7.064 7.260 7.328 7.509 7.878 8.234 8.268 7.840 7.130 6.497 6.183 6.112 5.993 5.604 5.026 4.588 + 7.415 7.118 6.815 6.866 7.414 8.240 8.884 8.945 8.358 7.453 6.736 6.564 6.933 7.534 8.012 8.218 8.256 8.323 8.502 8.705 8.796 8.766 8.771 8.986 9.405 9.797 9.876 9.548 9.004 8.568 8.419 8.431 8.302 7.840 7.174 6.680 + 6.172 5.710 5.170 5.008 5.383 6.026 6.449 6.329 5.763 5.185 5.034 5.422 6.069 6.531 6.539 6.184 5.813 5.761 6.119 6.706 7.241 7.547 7.624 7.589 7.536 7.487 7.427 7.380 7.417 7.566 7.728 7.686 7.252 6.437 5.517 4.906 + 5.402 5.239 5.122 5.267 5.675 6.078 6.119 5.631 4.794 4.038 3.762 4.064 4.689 5.208 5.304 4.960 4.435 4.073 4.098 4.511 5.132 5.729 6.123 6.236 6.085 5.749 5.350 5.015 4.835 4.816 4.865 4.834 4.611 4.202 3.747 3.447 + 5.017 4.644 4.279 4.366 5.033 5.958 6.598 6.574 5.937 5.101 4.527 4.407 4.587 4.742 4.647 4.341 4.070 4.102 4.556 5.350 6.276 7.115 7.723 8.054 8.146 8.084 7.961 7.834 7.698 7.486 7.118 6.556 5.839 5.091 4.470 4.118 + 5.045 4.887 4.883 5.332 6.183 6.978 7.174 6.573 5.505 4.605 4.351 4.735 5.316 5.591 5.380 4.925 4.654 4.840 5.414 6.076 6.551 6.787 6.927 7.134 7.429 7.687 7.774 7.672 7.490 7.336 7.190 6.896 6.294 5.398 4.459 3.852 + 3.296 3.877 4.742 5.535 6.093 6.465 6.734 6.834 6.596 5.979 5.237 4.816 5.013 5.708 6.424 6.690 6.402 5.883 5.606 5.826 6.451 7.188 7.798 8.207 8.414 8.381 8.048 7.476 6.918 6.669 6.795 7.004 6.836 6.070 4.974 4.171 + 3.553 4.811 6.560 7.794 7.926 7.096 5.939 5.081 4.752 4.791 4.924 5.036 5.196 5.488 5.843 6.058 5.975 5.638 5.301 5.269 5.709 6.565 7.584 8.436 8.832 8.640 7.954 7.094 6.465 6.328 6.612 6.934 6.850 6.199 5.255 4.567 + 4.886 5.755 6.971 7.833 7.896 7.194 6.134 5.197 4.674 4.608 4.886 5.355 5.878 6.329 6.608 6.690 6.655 6.639 6.743 6.966 7.239 7.511 7.801 8.135 8.455 8.604 8.448 8.029 7.594 7.421 7.573 7.806 7.745 7.208 6.400 5.800 + 4.989 6.090 7.408 7.917 7.277 6.031 5.047 4.773 4.964 5.076 4.860 4.574 4.642 5.154 5.753 5.999 5.837 5.675 5.975 6.787 7.675 8.126 8.030 7.751 7.738 8.067 8.391 8.313 7.820 7.307 7.184 7.455 7.714 7.558 7.010 6.518 + 5.338 6.055 7.032 7.670 7.620 6.959 6.059 5.292 4.826 4.619 4.567 4.624 4.793 5.038 5.242 5.267 5.064 4.737 4.481 4.474 4.793 5.403 6.184 6.964 7.543 7.753 7.557 7.125 6.769 6.752 7.084 7.480 7.561 7.155 6.463 5.935 + 6.052 6.389 6.821 7.043 6.902 6.458 5.887 5.314 4.752 4.174 3.634 3.284 3.267 3.570 3.985 4.224 4.116 3.727 3.331 3.256 3.715 4.704 5.997 7.225 8.009 8.125 7.632 6.880 6.342 6.332 6.780 7.263 7.295 6.695 5.755 5.056 + 4.294 5.283 6.557 7.213 6.780 5.518 4.184 3.472 3.563 4.082 4.464 4.391 3.975 3.585 3.499 3.674 3.816 3.668 3.269 2.982 3.260 4.302 5.869 7.366 8.168 7.987 7.045 5.950 5.344 5.522 6.272 7.028 7.248 6.772 5.920 5.274 + 6.104 6.902 7.819 8.036 7.232 5.820 4.604 4.161 4.446 4.902 4.942 4.388 3.540 2.874 2.657 2.791 2.967 2.965 2.852 2.926 3.494 4.634 6.098 7.406 8.077 7.883 6.994 5.925 5.272 5.373 6.084 6.859 7.110 6.617 5.696 4.984 + 7.392 7.520 7.803 8.201 8.543 8.599 8.252 7.624 7.007 6.648 6.556 6.520 6.313 5.897 5.449 5.178 5.126 5.144 5.073 4.958 5.072 5.693 6.815 8.051 8.846 8.850 8.170 7.298 6.777 6.840 7.276 7.618 7.471 6.787 5.890 5.267 + 6.098 6.755 7.841 8.965 9.703 9.791 9.263 8.449 7.791 7.568 7.741 8.003 8.016 7.637 6.975 6.264 5.678 5.248 4.934 4.749 4.800 5.194 5.902 6.721 7.377 7.696 7.706 7.584 7.512 7.550 7.627 7.620 7.466 7.201 6.928 6.757 + 6.206 6.669 7.459 8.322 8.964 9.158 8.859 8.243 7.619 7.260 7.244 7.424 7.545 7.413 7.014 6.481 5.968 5.542 5.187 4.897 4.769 4.967 5.586 6.509 7.405 7.912 7.868 7.437 6.993 6.850 7.026 7.234 7.116 6.538 5.731 5.151 + 3.995 4.562 5.433 6.245 6.732 6.824 6.601 6.190 5.704 5.249 4.940 4.856 4.962 5.075 4.958 4.488 3.774 3.106 2.773 2.882 3.317 3.865 4.375 4.827 5.263 5.682 5.997 6.108 5.990 5.720 5.404 5.090 4.755 4.376 4.007 3.770 + 3.892 4.320 5.186 6.361 7.467 7.989 7.580 6.348 4.851 3.768 3.473 3.824 4.316 4.478 4.190 3.694 3.342 3.306 3.488 3.679 3.785 3.918 4.275 4.928 5.720 6.347 6.578 6.407 6.044 5.741 5.618 5.600 5.524 5.294 4.974 4.740 + 4.336 3.911 3.581 3.911 4.968 6.205 6.863 6.559 5.568 4.573 4.130 4.279 4.624 4.730 4.491 4.143 3.982 4.069 4.204 4.175 4.010 4.000 4.443 5.344 6.352 6.984 6.973 6.450 5.822 5.451 5.395 5.400 5.137 4.491 3.679 3.114 + 3.461 3.432 3.454 3.626 3.980 4.425 4.781 4.887 4.720 4.447 4.331 4.561 5.103 5.696 6.013 5.859 5.298 4.603 4.093 3.968 4.260 4.870 5.641 6.399 6.968 7.207 7.077 6.698 6.298 6.070 6.016 5.932 5.567 4.847 3.996 3.414 + 1.782 2.281 3.171 4.230 5.163 5.693 5.697 5.259 4.621 4.042 3.686 3.592 3.733 4.066 4.527 4.988 5.265 5.225 4.910 4.566 4.511 4.917 5.677 6.474 7.003 7.177 7.141 7.118 7.200 7.280 7.153 6.692 5.953 5.134 4.459 4.086 + 2.727 3.469 4.726 6.108 7.192 7.674 7.474 6.741 5.749 4.758 3.929 3.335 3.028 3.055 3.406 3.946 4.432 4.639 4.517 4.250 4.132 4.354 4.868 5.423 5.757 5.772 5.568 5.314 5.103 4.896 4.615 4.242 3.863 3.586 3.452 3.415 + 2.114 2.612 3.383 4.093 4.467 4.413 4.040 3.565 3.177 2.942 2.803 2.662 2.476 2.296 2.214 2.278 2.432 2.550 2.533 2.408 2.328 2.479 2.934 3.574 4.136 4.366 4.180 3.711 3.214 2.890 2.759 2.666 2.420 1.960 1.421 1.055 + 4.281 3.956 3.596 3.495 3.663 3.807 3.620 3.073 2.454 2.095 2.071 2.149 2.037 1.687 1.351 1.330 1.670 2.098 2.269 2.094 1.838 1.885 2.378 3.069 3.510 3.414 2.877 2.280 1.980 2.048 2.260 2.305 2.019 1.474 0.898 0.537 + 4.266 3.954 3.531 3.252 3.247 3.431 3.580 3.509 3.218 2.885 2.706 2.721 2.766 2.620 2.208 1.700 1.394 1.471 1.835 2.183 2.264 2.093 1.939 2.072 2.495 2.913 2.968 2.560 1.953 1.559 1.588 1.859 1.963 1.632 0.994 0.485 + 2.775 3.458 4.182 4.250 3.544 2.610 2.144 2.363 2.850 2.993 2.580 1.979 1.755 2.125 2.753 3.087 2.867 2.334 1.952 1.951 2.143 2.172 1.907 1.592 1.594 2.013 2.565 2.825 2.613 2.131 1.750 1.667 1.779 1.847 1.767 1.650 + 2.772 3.386 3.980 3.894 3.070 2.109 1.712 2.047 2.641 2.876 2.591 2.203 2.257 2.856 3.542 3.726 3.236 2.454 1.934 1.895 2.095 2.161 2.009 1.908 2.139 2.627 2.961 2.797 2.235 1.757 1.765 2.164 2.436 2.140 1.370 0.712 + 4.129 3.866 3.572 3.543 3.918 4.549 5.064 5.100 4.555 3.682 2.946 2.734 3.102 3.753 4.248 4.294 3.911 3.360 2.924 2.725 2.693 2.690 2.645 2.592 2.599 2.685 2.813 2.947 3.097 3.282 3.450 3.456 3.149 2.522 1.788 1.292 + 3.701 3.767 4.128 4.999 6.311 7.663 8.543 8.657 8.082 7.188 6.388 5.948 5.956 6.373 7.080 7.855 8.369 8.294 7.510 6.242 4.989 4.243 4.184 4.598 5.065 5.291 5.299 5.353 5.680 6.223 6.624 6.449 5.489 3.940 2.347 1.342 + 2.426 3.259 4.649 6.179 7.478 8.358 8.834 9.022 9.009 8.791 8.337 7.710 7.140 6.945 7.335 8.208 9.126 9.516 9.008 7.685 6.070 4.840 4.436 4.839 5.641 6.359 6.751 6.918 7.126 7.498 7.837 7.718 6.811 5.196 3.427 2.269 + 2.209 3.385 5.172 6.819 7.855 8.294 8.460 8.636 8.820 8.794 8.394 7.728 7.164 7.096 7.667 8.659 9.588 9.950 9.473 8.251 6.727 5.502 5.053 5.490 6.494 7.521 8.143 8.306 8.287 8.382 8.564 8.433 7.533 5.810 3.824 2.486 + 1.786 3.077 5.041 6.845 7.938 8.291 8.239 8.132 8.083 7.993 7.765 7.476 7.361 7.636 8.322 9.206 9.925 10.132 9.636 8.506 7.087 5.906 5.442 5.858 6.881 7.947 8.567 8.645 8.487 8.464 8.603 8.487 7.584 5.785 3.666 2.224 + 3.178 4.182 5.683 7.019 7.807 8.110 8.264 8.535 8.902 9.128 9.011 8.583 8.109 7.902 8.122 8.682 9.297 9.619 9.386 8.553 7.355 6.247 5.700 5.931 6.758 7.704 8.332 8.537 8.562 8.692 8.884 8.693 7.615 5.599 3.291 1.740 + 3.870 4.718 6.025 7.268 8.108 8.518 8.687 8.798 8.899 8.924 8.807 8.565 8.299 8.147 8.237 8.636 9.264 9.838 9.932 9.220 7.776 6.173 5.214 5.408 6.579 7.961 8.751 8.702 8.255 8.059 8.310 8.484 7.770 5.858 3.391 1.649 + 1.354 2.825 5.042 7.054 8.274 8.721 8.795 8.852 8.956 8.967 8.771 8.421 8.072 7.863 7.875 8.172 8.781 9.566 10.138 9.988 8.879 7.165 5.709 5.328 6.179 7.616 8.685 8.882 8.494 8.230 8.450 8.742 8.266 6.591 4.275 2.592 + 3.029 4.361 6.132 7.342 7.715 7.793 8.262 9.194 9.960 9.867 8.870 7.660 7.055 7.320 8.060 8.720 9.123 9.483 9.941 10.204 9.766 8.524 7.116 6.514 7.171 8.545 9.530 9.455 8.703 8.303 8.838 9.737 9.692 7.913 5.048 2.865 + 2.814 3.964 5.461 6.451 6.793 7.091 7.989 9.436 10.658 10.861 9.958 8.627 7.685 7.415 7.514 7.613 7.749 8.255 9.193 10.015 9.939 8.747 7.186 6.457 7.168 8.722 9.793 9.515 8.259 7.254 7.363 8.195 8.427 7.102 4.664 2.729 + 2.284 2.902 3.851 4.825 5.758 6.802 8.037 9.242 9.973 9.898 9.076 7.912 6.859 6.161 5.869 6.016 6.685 7.821 9.013 9.578 9.040 7.617 6.220 5.822 6.679 8.083 8.929 8.646 7.660 6.950 7.084 7.638 7.556 6.173 3.960 2.273 + 2.876 3.095 3.562 4.327 5.407 6.696 7.902 8.645 8.673 8.048 7.122 6.292 5.745 5.425 5.245 5.297 5.822 6.892 8.139 8.866 8.541 7.290 5.909 5.299 5.761 6.765 7.416 7.229 6.518 6.034 6.201 6.643 6.503 5.268 3.363 1.928 + 2.072 3.050 4.309 5.158 5.578 6.138 7.238 8.495 8.962 8.022 6.087 4.346 3.764 4.282 4.997 5.128 4.803 4.851 5.833 7.307 8.121 7.521 5.946 4.708 4.794 5.937 6.890 6.647 5.417 4.388 4.491 5.386 5.722 4.464 2.024 0.059 + 3.969 3.790 3.723 4.171 5.361 7.103 8.777 9.634 9.244 7.812 6.069 4.802 4.359 4.517 4.805 4.977 5.197 5.779 6.745 7.653 7.904 7.270 6.156 5.313 5.236 5.780 6.337 6.393 5.953 5.439 5.195 5.093 4.651 3.558 2.101 1.046 + 3.053 3.514 4.304 5.271 6.325 7.405 8.358 8.900 8.750 7.859 6.514 5.197 4.309 3.977 4.102 4.553 5.276 6.207 7.108 7.569 7.270 6.299 5.208 4.668 4.974 5.811 6.516 6.613 6.149 5.556 5.168 4.871 4.239 3.018 1.509 0.446 + 2.347 2.644 3.341 4.494 5.947 7.303 8.085 8.018 7.214 6.112 5.210 4.757 4.662 4.665 4.629 4.687 5.098 5.933 6.890 7.432 7.194 6.317 5.408 5.117 5.655 6.643 7.412 7.506 6.975 6.222 5.585 5.043 4.305 3.192 1.933 1.074 + 3.025 3.449 4.251 5.311 6.419 7.291 7.663 7.416 6.669 5.745 5.001 4.630 4.577 4.644 4.698 4.806 5.150 5.796 6.528 6.934 6.713 5.955 5.136 4.783 5.080 5.727 6.188 6.112 5.571 4.924 4.448 4.081 3.523 2.592 1.491 0.727 + 4.718 4.330 4.029 4.349 5.398 6.702 7.513 7.348 6.338 5.109 4.303 4.135 4.326 4.446 4.339 4.258 4.581 5.382 6.243 6.527 5.899 4.660 3.585 3.358 4.056 5.098 5.712 5.517 4.768 4.068 3.815 3.888 3.806 3.226 2.304 1.597 + 3.553 3.824 4.356 5.114 5.984 6.735 7.047 6.668 5.633 4.347 3.405 3.215 3.702 4.369 4.698 4.573 4.350 4.489 5.074 5.657 5.621 4.752 3.501 2.685 2.841 3.801 4.840 5.273 4.963 4.322 3.853 3.685 3.539 3.097 2.401 1.857 + 3.620 3.779 3.991 4.160 4.293 4.488 4.794 5.115 5.245 5.031 4.513 3.913 3.482 3.346 3.478 3.786 4.193 4.630 4.974 5.036 4.691 4.029 3.376 3.100 3.344 3.908 4.396 4.527 4.330 4.057 3.900 3.792 3.479 2.809 1.957 1.351 + 4.457 4.180 3.917 4.003 4.523 5.220 5.679 5.630 5.132 4.504 4.059 3.892 3.865 3.790 3.628 3.528 3.676 4.093 4.579 4.837 4.694 4.227 3.699 3.360 3.284 3.356 3.416 3.401 3.379 3.436 3.541 3.524 3.197 2.539 1.771 1.251 + 1.624 1.811 2.252 2.988 3.928 4.822 5.359 5.345 4.830 4.098 3.514 3.308 3.470 3.796 4.059 4.174 4.216 4.313 4.497 4.651 4.597 4.242 3.667 3.083 2.702 2.621 2.806 3.157 3.566 3.929 4.116 3.977 3.425 2.542 1.613 1.015 + 5.147 4.947 4.515 3.924 3.429 3.318 3.650 4.134 4.331 4.040 3.495 3.175 3.374 3.938 4.426 4.537 4.391 4.372 4.693 5.126 5.191 4.642 3.763 3.159 3.213 3.721 4.081 3.869 3.245 2.791 2.927 3.455 3.717 3.219 2.147 1.267 + 4.250 4.268 4.246 4.172 4.148 4.301 4.612 4.846 4.716 4.151 3.429 2.999 3.125 3.665 4.198 4.378 4.217 4.016 4.038 4.232 4.291 3.976 3.388 2.916 2.902 3.331 3.855 4.100 3.978 3.691 3.457 3.246 2.816 2.010 1.017 0.317 + 4.474 4.133 3.789 3.807 4.249 4.793 4.997 4.668 4.023 3.502 3.414 3.710 4.064 4.188 4.071 3.963 4.116 4.526 4.908 4.924 4.459 3.731 3.132 2.953 3.200 3.634 3.975 4.092 4.032 3.904 3.737 3.444 2.919 2.176 1.413 0.924 + 3.763 3.276 2.732 2.609 3.024 3.644 3.998 3.893 3.566 3.436 3.709 4.190 4.468 4.299 3.833 3.483 3.563 4.016 4.458 4.499 4.052 3.379 2.876 2.785 3.064 3.477 3.794 3.916 3.869 3.707 3.449 3.080 2.609 2.101 1.667 1.417 + 2.178 2.107 2.091 2.286 2.751 3.367 3.872 4.017 3.738 3.225 2.818 2.790 3.167 3.727 4.179 4.374 4.381 4.369 4.424 4.461 4.316 3.937 3.473 3.181 3.218 3.506 3.792 3.852 3.655 3.344 3.071 2.853 2.577 2.156 1.667 1.329 + 4.459 3.353 1.956 1.267 1.734 2.959 4.075 4.428 4.012 3.356 3.024 3.179 3.565 3.830 3.872 3.885 4.110 4.562 4.980 5.048 4.675 4.077 3.603 3.475 3.640 3.853 3.876 3.640 3.244 2.847 2.541 2.319 2.125 1.922 1.733 1.614 + 3.950 3.777 3.523 3.327 3.299 3.446 3.654 3.759 3.670 3.451 3.296 3.380 3.716 4.133 4.408 4.444 4.344 4.304 4.421 4.585 4.558 4.188 3.565 2.992 2.766 2.964 3.398 3.752 3.801 3.523 3.053 2.548 2.095 1.714 1.419 1.251 + 5.161 4.423 3.571 3.300 3.779 4.525 4.844 4.444 3.654 3.087 3.094 3.493 3.811 3.769 3.543 3.554 4.025 4.711 5.083 4.781 3.940 3.087 2.719 2.924 3.367 3.599 3.420 2.990 2.639 2.579 2.755 2.925 2.875 2.568 2.159 1.874 + 3.780 3.147 2.370 2.031 2.349 3.051 3.651 3.862 3.774 3.684 3.765 3.915 3.909 3.680 3.432 3.470 3.888 4.438 4.694 4.399 3.678 2.943 2.586 2.702 3.074 3.380 3.430 3.254 3.003 2.798 2.654 2.519 2.357 2.180 2.030 1.947 + 4.552 3.845 3.038 2.810 3.334 4.156 4.629 4.471 3.946 3.536 3.470 3.553 3.450 3.095 2.800 2.944 3.546 4.158 4.217 3.532 2.485 1.733 1.696 2.261 2.943 3.307 3.285 3.122 3.083 3.198 3.277 3.116 2.686 2.138 1.670 1.412 + 2.447 2.473 2.585 2.861 3.327 3.906 4.422 4.677 4.575 4.192 3.733 3.398 3.244 3.174 3.051 2.846 2.679 2.716 3.000 3.378 3.598 3.508 3.181 2.861 2.769 2.933 3.183 3.300 3.184 2.908 2.618 2.403 2.247 2.088 1.918 1.799 + 2.415 2.056 1.633 1.522 1.913 2.670 3.415 3.786 3.669 3.254 2.891 2.840 3.118 3.530 3.833 3.917 3.850 3.787 3.817 3.896 3.894 3.723 3.417 3.108 2.930 2.920 3.009 3.089 3.090 3.008 2.870 2.692 2.467 2.202 1.947 1.787 + 2.451 2.578 2.782 3.002 3.205 3.385 3.536 3.631 3.631 3.533 3.396 3.320 3.375 3.561 3.807 4.036 4.210 4.334 4.411 4.401 4.243 3.911 3.470 3.059 2.814 2.782 2.903 3.061 3.152 3.133 3.003 2.776 2.462 2.099 1.762 1.556 + 3.196 2.784 2.407 2.541 3.235 4.021 4.297 3.827 2.959 2.350 2.456 3.199 4.068 4.536 4.429 3.980 3.570 3.416 3.461 3.498 3.379 3.116 2.829 2.630 2.557 2.583 2.660 2.737 2.754 2.660 2.460 2.240 2.129 2.197 2.387 2.547 + 4.222 3.465 2.701 2.707 3.542 4.467 4.631 3.851 2.768 2.252 2.622 3.410 3.862 3.660 3.177 3.046 3.500 4.130 4.282 3.698 2.773 2.191 2.312 2.879 3.299 3.198 2.718 2.312 2.287 2.547 2.749 2.665 2.372 2.114 2.031 2.055 + 2.930 3.099 3.346 3.564 3.708 3.805 3.886 3.932 3.884 3.718 3.492 3.305 3.213 3.172 3.086 2.917 2.739 2.685 2.811 3.021 3.133 3.032 2.780 2.571 2.564 2.745 2.942 2.968 2.780 2.493 2.261 2.141 2.067 1.947 1.773 1.639 + 2.211 2.163 2.211 2.501 3.031 3.610 3.972 3.947 3.568 3.027 2.554 2.302 2.312 2.545 2.920 3.334 3.668 3.826 3.785 3.625 3.479 3.440 3.487 3.496 3.349 3.032 2.657 2.383 2.293 2.341 2.391 2.320 2.095 1.780 1.486 1.313 + 2.364 1.953 1.483 1.359 1.711 2.331 2.892 3.221 3.358 3.401 3.325 3.025 2.511 2.041 1.981 2.485 3.291 3.871 3.854 3.332 2.785 2.661 2.988 3.366 3.339 2.808 2.111 1.709 1.791 2.144 2.376 2.262 1.892 1.521 1.316 1.258 + 1.630 1.661 1.849 2.280 2.844 3.268 3.319 3.011 2.595 2.358 2.395 2.574 2.691 2.677 2.635 2.704 2.895 3.069 3.084 2.946 2.806 2.797 2.883 2.877 2.629 2.202 1.861 1.860 2.209 2.646 2.822 2.552 1.923 1.194 0.613 0.307 + 2.898 2.364 1.811 1.813 2.493 3.400 3.875 3.584 2.773 2.034 1.828 2.161 2.663 2.948 2.919 2.766 2.727 2.858 3.025 3.081 3.031 3.014 3.129 3.306 3.340 3.077 2.571 2.062 1.798 1.846 2.045 2.128 1.914 1.427 0.870 0.503 + 3.463 2.476 1.312 0.910 1.570 2.726 3.441 3.177 2.174 1.193 0.874 1.293 2.034 2.623 2.889 2.970 3.035 3.067 2.919 2.550 2.154 2.033 2.313 2.796 3.096 2.951 2.436 1.886 1.619 1.697 1.914 1.988 1.771 1.329 0.859 0.565 + 3.396 2.797 2.164 2.123 2.795 3.664 3.993 3.436 2.320 1.384 1.198 1.761 2.570 3.069 3.063 2.785 2.607 2.699 2.927 3.036 2.913 2.677 2.544 2.614 2.779 2.835 2.661 2.321 1.994 1.809 1.740 1.636 1.351 0.875 0.355 0.016 + 2.698 2.234 1.766 1.811 2.482 3.370 3.862 3.634 2.900 2.222 2.048 2.379 2.815 2.926 2.609 2.148 1.942 2.162 2.622 2.952 2.916 2.588 2.268 2.223 2.476 2.804 2.928 2.723 2.284 1.822 1.496 1.315 1.182 1.005 0.794 0.643 + 2.321 1.678 1.009 1.019 1.894 3.134 3.949 3.887 3.154 2.406 2.197 2.573 3.109 3.315 3.025 2.474 2.046 1.953 2.120 2.319 2.396 2.368 2.350 2.408 2.498 2.515 2.399 2.174 1.911 1.662 1.439 1.241 1.080 0.977 0.933 0.925 + 2.891 2.884 2.915 3.024 3.188 3.310 3.254 2.939 2.402 1.804 1.358 1.223 1.419 1.823 2.239 2.497 2.530 2.382 2.151 1.922 1.724 1.549 1.396 1.307 1.352 1.573 1.925 2.275 2.456 2.365 2.026 1.576 1.186 0.962 0.894 0.899 + 1.020 1.203 1.465 1.699 1.880 2.053 2.234 2.333 2.203 1.787 1.228 0.808 0.763 1.102 1.603 1.980 2.088 1.992 1.866 1.828 1.863 1.883 1.843 1.789 1.799 1.887 1.979 1.978 1.858 1.675 1.498 1.327 1.101 0.780 0.425 0.185 + 0.709 0.413 0.134 0.217 0.737 1.424 1.897 1.964 1.755 1.560 1.566 1.722 1.846 1.855 1.869 2.096 2.604 3.190 3.506 3.308 2.653 1.858 1.269 1.036 1.065 1.145 1.132 1.026 0.920 0.876 0.870 0.812 0.637 0.359 0.070 -0.113 + 1.610 1.578 1.629 1.855 2.190 2.416 2.326 1.899 1.335 0.918 0.830 1.062 1.473 1.929 2.365 2.743 2.990 2.986 2.668 2.120 1.563 1.226 1.193 1.362 1.543 1.613 1.579 1.531 1.522 1.507 1.383 1.088 0.661 0.216 -0.134 -0.320 + 2.609 2.223 1.793 1.710 2.090 2.668 3.008 2.834 2.228 1.539 1.124 1.115 1.401 1.772 2.077 2.263 2.313 2.186 1.833 1.282 0.688 0.271 0.187 0.432 0.852 1.238 1.444 1.425 1.219 0.901 0.562 0.291 0.160 0.183 0.298 0.398 + 1.279 1.259 1.343 1.667 2.250 2.915 3.350 3.283 2.665 1.742 0.946 0.655 0.980 1.714 2.465 2.907 2.941 2.699 2.387 2.120 1.866 1.527 1.075 0.614 0.316 0.290 0.489 0.732 0.822 0.672 0.351 0.022 -0.167 -0.172 -0.062 0.039 + 1.092 0.267 -0.671 -0.881 -0.072 1.271 2.286 2.414 1.804 1.128 1.010 1.544 2.267 2.578 2.210 1.397 0.646 0.343 0.523 0.925 1.243 1.337 1.269 1.187 1.200 1.326 1.515 1.699 1.813 1.797 1.611 1.258 0.796 0.324 -0.054 -0.261 + 3.430 2.241 0.775 0.110 0.634 1.785 2.589 2.496 1.793 1.296 1.619 2.669 3.763 4.203 3.802 2.932 2.151 1.768 1.712 1.727 1.641 1.464 1.281 1.112 0.900 0.621 0.359 0.255 0.373 0.621 0.816 0.829 0.673 0.461 0.298 0.220 + 1.335 1.237 1.339 1.895 2.786 3.539 3.703 3.253 2.628 2.359 2.621 3.102 3.306 3.005 2.419 1.984 1.937 2.104 2.084 1.640 0.939 0.413 0.395 0.849 1.420 1.730 1.662 1.388 1.167 1.119 1.158 1.105 0.855 0.453 0.048 -0.202 + 3.932 3.597 3.087 2.656 2.534 2.790 3.258 3.613 3.573 3.098 2.429 1.915 1.768 1.927 2.139 2.174 1.984 1.687 1.419 1.224 1.077 0.996 1.077 1.396 1.860 2.184 2.081 1.517 0.791 0.344 0.411 0.835 1.194 1.169 0.806 0.460 + 1.466 1.348 1.330 1.632 2.248 2.892 3.192 2.959 2.321 1.629 1.206 1.156 1.362 1.629 1.835 1.966 2.038 2.017 1.830 1.447 0.964 0.574 0.460 0.669 1.083 1.491 1.703 1.643 1.350 0.938 0.530 0.220 0.053 0.018 0.059 0.105 + 4.898 4.078 3.041 2.495 2.671 3.145 3.200 2.426 1.061 -0.182 -0.640 -0.143 0.933 2.004 2.680 2.924 2.915 2.809 2.620 2.307 1.922 1.643 1.644 1.929 2.287 2.436 2.221 1.727 1.203 0.867 0.756 0.727 0.587 0.259 -0.153 -0.441 + 2.209 1.876 1.417 1.082 0.971 0.974 0.882 0.589 0.189 -0.077 0.003 0.463 1.148 1.826 2.325 2.597 2.687 2.657 2.544 2.369 2.165 1.983 1.863 1.798 1.744 1.654 1.522 1.388 1.298 1.262 1.238 1.161 0.989 0.742 0.494 0.338 + 3.550 3.304 3.076 3.118 3.393 3.563 3.287 2.546 1.712 1.276 1.466 2.082 2.670 2.878 2.683 2.338 2.119 2.121 2.245 2.352 2.389 2.396 2.401 2.365 2.220 1.962 1.675 1.464 1.353 1.268 1.118 0.897 0.700 0.624 0.673 0.747 + 4.305 4.361 4.524 4.808 5.093 5.140 4.730 3.833 2.682 1.674 1.154 1.225 1.708 2.276 2.658 2.769 2.705 2.618 2.591 2.599 2.570 2.471 2.345 2.272 2.288 2.345 2.344 2.205 1.932 1.612 1.354 1.229 1.233 1.314 1.405 1.461 + 1.830 2.106 2.495 2.806 2.971 3.058 3.156 3.254 3.246 3.052 2.727 2.443 2.353 2.472 2.683 2.863 2.989 3.124 3.297 3.431 3.403 3.191 2.950 2.903 3.143 3.512 3.709 3.532 3.048 2.539 2.249 2.190 2.159 1.961 1.613 1.333 + 1.600 1.463 1.397 1.633 2.205 2.868 3.231 3.029 2.326 1.497 0.987 1.021 1.473 1.993 2.279 2.281 2.189 2.237 2.494 2.830 3.068 3.162 3.237 3.441 3.762 3.990 3.879 3.376 2.701 2.196 2.059 2.190 2.294 2.143 1.782 1.479 + 0.895 1.025 1.309 1.747 2.261 2.689 2.862 2.708 2.334 1.982 1.893 2.140 2.566 2.880 2.859 2.503 2.032 1.726 1.730 1.975 2.268 2.457 2.534 2.592 2.701 2.829 2.878 2.794 2.635 2.522 2.508 2.509 2.369 2.013 1.548 1.216 + 4.390 3.935 3.303 2.813 2.568 2.428 2.217 1.941 1.791 1.923 2.253 2.476 2.336 1.873 1.427 1.356 1.732 2.285 2.646 2.657 2.485 2.422 2.601 2.875 2.971 2.758 2.374 2.102 2.115 2.331 2.492 2.376 1.954 1.383 0.875 0.587 + 3.470 3.383 3.119 2.642 2.103 1.772 1.826 2.174 2.510 2.568 2.335 2.049 1.968 2.145 2.402 2.531 2.497 2.454 2.569 2.834 3.068 3.099 2.934 2.744 2.676 2.685 2.584 2.249 1.786 1.474 1.514 1.827 2.111 2.109 1.838 1.572 + 4.263 3.389 2.263 1.664 1.951 2.831 3.617 3.755 3.203 2.404 1.922 2.059 2.705 3.196 3.428 3.947 4.656 5.328 5.755 5.906 5.938 6.059 6.337 6.644 6.770 6.611 6.273 6.000 5.991 6.272 6.694 7.060 7.247 7.257 7.178 7.108 + 2.025 1.823 1.607 1.615 1.946 2.450 2.796 2.693 2.127 1.431 1.101 1.468 2.441 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 4.368 3.804 3.062 2.599 2.590 2.824 2.924 2.691 2.271 2.011 2.160 2.662 3.210 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.022 2.914 2.794 2.739 2.702 2.556 2.258 1.954 1.903 2.266 2.942 3.622 4.025 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.505 3.257 2.874 2.501 2.227 2.048 1.915 1.807 1.772 1.888 2.187 2.615 3.053 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.499 2.803 1.948 1.561 1.846 2.455 2.820 2.656 2.182 1.896 2.127 2.769 3.400 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 1.665 1.718 1.681 1.424 0.991 0.616 0.568 0.952 1.631 2.335 2.847 3.131 3.289 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.066 1.514 0.818 0.475 0.699 1.288 1.822 2.008 1.883 1.743 1.883 2.381 3.079 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.385 1.567 0.517 -0.027 0.307 1.314 2.430 3.161 3.365 3.229 3.028 2.926 2.932 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.774 3.442 2.995 2.719 2.783 3.141 3.595 3.933 4.060 4.019 3.927 3.883 3.914 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.115 2.418 2.914 3.443 3.861 4.099 4.160 4.101 3.991 3.902 3.899 4.030 4.299 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.653 2.893 3.225 3.468 3.542 3.513 3.519 3.650 3.890 4.147 4.339 4.446 4.500 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.685 3.584 3.524 3.634 3.878 4.060 3.998 3.700 3.372 3.253 3.426 3.776 4.134 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.770 3.256 2.546 2.070 2.093 2.562 3.165 3.554 3.573 3.347 3.176 3.322 3.848 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 4.634 4.055 3.490 3.560 4.315 5.150 5.320 4.578 3.375 2.472 2.337 2.871 3.641 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.004 2.933 2.896 3.027 3.381 3.876 4.323 4.540 4.477 4.265 4.142 4.311 4.799 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 3.057 3.257 3.454 3.435 3.188 2.936 2.957 3.358 3.987 4.568 4.928 5.126 5.359 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.199 2.576 3.035 3.240 3.105 2.859 2.843 3.224 3.864 4.464 4.823 4.987 5.168 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 4.303 3.857 3.351 3.180 3.372 3.582 3.475 3.092 2.851 3.150 3.969 4.860 5.331 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 4.476 3.884 3.095 2.581 2.535 2.778 2.988 3.001 2.930 3.003 3.322 3.774 4.163 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.175 1.748 1.223 1.011 1.310 1.991 2.733 3.259 3.486 3.497 3.409 3.291 3.191 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.504 2.598 2.775 3.002 3.231 3.414 3.529 3.595 3.652 3.741 3.884 4.086 4.346 4.659 4.999 5.305 5.505 5.567 5.543 5.554 5.720 6.058 6.459 6.748 6.808 6.675 6.516 6.520 6.764 7.158 7.502 7.612 7.424 7.021 6.587 6.311 + 3.175 3.116 3.074 3.143 3.360 3.661 3.915 4.008 3.950 3.890 4.031 4.475 5.122 5.698 5.922 5.697 5.194 4.760 4.718 5.186 6.026 6.940 7.623 7.887 7.706 7.202 6.605 6.183 6.144 6.526 7.144 7.657 7.762 7.391 6.779 6.322 + 3.426 3.256 3.094 3.136 3.411 3.749 3.915 3.805 3.539 3.366 3.487 3.918 4.490 4.969 5.180 5.085 4.787 4.484 4.403 4.706 5.388 6.239 6.917 7.133 6.837 6.260 5.765 5.612 5.795 6.091 6.257 6.211 6.054 5.941 5.935 5.974 + 5.617 4.994 4.213 3.804 3.921 4.248 4.323 3.974 3.485 3.333 3.764 4.563 5.228 5.372 5.000 4.456 4.114 4.116 4.334 4.563 4.700 4.776 4.844 4.877 4.798 4.602 4.418 4.441 4.771 5.317 5.837 6.100 6.024 5.704 5.333 5.095 + 4.689 4.521 4.331 4.259 4.293 4.257 3.972 3.439 2.880 2.600 2.781 3.372 4.156 4.907 5.511 5.958 6.260 6.393 6.328 6.099 5.827 5.657 5.667 5.816 5.996 6.107 6.115 6.026 5.841 5.544 5.135 4.671 4.260 3.987 3.867 3.838 + 3.818 3.493 3.137 3.091 3.443 3.946 4.208 3.997 3.414 2.815 2.555 2.775 3.373 4.140 4.905 5.586 6.123 6.429 6.414 6.090 5.620 5.262 5.209 5.463 5.836 6.090 6.098 5.908 5.669 5.493 5.359 5.139 4.721 4.120 3.504 3.111 + 4.709 4.294 3.683 3.202 3.099 3.383 3.790 3.942 3.612 2.915 2.268 2.110 2.583 3.424 4.157 4.427 4.221 3.808 3.474 3.307 3.201 3.033 2.826 2.717 2.789 2.949 2.992 2.807 2.509 2.348 2.473 2.765 2.922 2.731 2.281 1.908 + 4.985 4.787 4.369 3.767 3.130 2.667 2.502 2.570 2.661 2.598 2.384 2.198 2.222 2.470 2.759 2.857 2.677 2.345 2.090 2.054 2.193 2.340 2.359 2.244 2.104 2.048 2.106 2.232 2.360 2.452 2.485 2.427 2.239 1.926 1.580 1.350 + 5.604 5.245 4.923 5.003 5.403 5.616 5.177 4.128 3.024 2.477 2.658 3.208 3.618 3.678 3.576 3.604 3.824 4.052 4.147 4.263 4.726 5.637 6.618 7.023 6.496 5.345 4.364 4.209 4.883 5.796 6.338 6.410 6.437 6.864 7.658 8.306 + 5.586 5.022 4.368 4.120 4.328 4.558 4.310 3.493 2.506 1.882 1.850 2.222 2.658 2.997 3.310 3.679 3.996 4.053 3.843 3.707 4.096 5.111 6.288 6.898 6.562 5.613 4.845 4.839 5.486 6.136 6.248 5.914 5.753 6.279 7.343 8.212 + 4.156 3.456 2.594 2.167 2.315 2.621 2.522 1.855 1.043 0.754 1.329 2.491 3.556 3.969 3.685 3.106 2.669 2.489 2.345 1.997 1.493 1.171 1.365 2.069 2.882 3.286 3.030 2.310 1.616 1.368 1.639 2.146 2.493 2.471 2.175 1.904 + 2.197 2.234 2.442 2.893 3.421 3.665 3.344 2.526 1.645 1.229 1.524 2.337 3.199 3.708 3.769 3.559 3.313 3.119 2.912 2.628 2.335 2.207 2.373 2.772 3.183 3.385 3.329 3.171 3.143 3.372 3.794 4.206 4.418 4.374 4.179 4.014 + 4.643 4.038 3.294 2.939 3.108 3.432 3.374 2.697 1.688 0.932 0.875 1.516 2.468 3.281 3.725 3.837 3.749 3.523 3.144 2.637 2.159 1.930 2.077 2.526 3.068 3.526 3.874 4.213 4.628 5.072 5.376 5.378 5.041 4.490 3.943 3.609 + 4.685 4.586 4.487 4.488 4.586 4.636 4.442 3.911 3.164 2.495 2.188 2.319 2.696 3.002 3.030 2.826 2.626 2.630 2.820 2.982 2.912 2.619 2.335 2.306 2.555 2.845 2.889 2.627 2.310 2.293 2.703 3.295 3.622 3.416 2.832 2.340 + 4.457 4.137 3.823 3.861 4.271 4.687 4.649 3.987 2.983 2.154 1.861 2.052 2.362 2.442 2.244 2.016 2.040 2.368 2.775 2.965 2.835 2.559 2.437 2.631 3.039 3.377 3.412 3.142 2.770 2.533 2.509 2.573 2.521 2.251 1.859 1.572 + 6.045 5.819 5.534 5.402 5.520 5.771 5.890 5.646 5.028 4.283 3.755 3.638 3.832 4.030 3.975 3.676 3.387 3.371 3.658 4.015 4.172 4.085 3.999 4.217 4.800 5.467 5.813 5.657 5.208 4.869 4.867 5.031 4.948 4.367 3.477 2.806 + 12.291 12.020 11.610 11.238 11.013 10.887 10.678 10.209 9.473 8.688 8.160 8.050 8.234 8.402 8.326 8.087 8.018 8.404 9.176 9.909 10.146 9.796 9.247 9.069 9.538 10.410 11.117 11.247 10.873 10.454 10.418 10.800 11.263 11.444 11.288 11.067 + 13.355 13.937 14.643 14.918 14.525 13.655 12.687 11.869 11.205 10.614 10.126 9.894 10.001 10.316 10.587 10.693 10.806 11.238 12.094 13.071 13.644 13.499 12.836 12.236 12.189 12.704 13.351 13.670 13.573 13.360 13.366 13.602 13.752 13.520 12.969 12.503 + 13.643 14.391 15.417 16.110 16.108 15.452 14.442 13.394 12.506 11.893 11.636 11.742 12.049 12.268 12.198 11.962 11.987 12.668 13.966 15.329 16.059 15.864 15.096 14.463 14.443 14.939 15.455 15.624 15.550 15.621 15.997 16.292 15.838 14.339 12.313 10.855 + 14.020 14.847 15.993 16.806 16.906 16.340 15.416 14.428 13.539 12.844 12.451 12.427 12.656 12.848 12.761 12.485 12.462 13.146 14.550 16.108 17.039 16.954 16.162 15.413 15.283 15.756 16.361 16.689 16.774 16.946 17.334 17.540 16.910 15.184 12.943 11.354 + 13.839 14.864 16.243 17.152 17.177 16.484 15.518 14.586 13.744 12.988 12.450 12.327 12.601 12.934 12.934 12.595 12.428 13.062 14.612 16.423 17.500 17.317 16.266 15.334 15.268 16.000 16.829 17.168 17.092 17.148 17.622 18.050 17.523 15.595 12.924 10.983 + 13.742 14.838 16.304 17.247 17.235 16.468 15.435 14.460 13.578 12.761 12.156 12.001 12.308 12.719 12.788 12.464 12.268 12.884 14.475 16.381 17.564 17.449 16.428 15.518 15.487 16.239 17.027 17.247 17.028 17.010 17.543 18.134 17.779 15.943 13.273 11.301 + 13.659 14.791 16.278 17.185 17.088 16.249 15.210 14.291 13.461 12.633 11.956 11.732 12.042 12.536 12.704 12.417 12.164 12.664 14.144 15.983 17.141 17.032 16.043 15.195 15.235 16.015 16.740 16.820 16.475 16.448 17.121 17.913 17.677 15.788 12.941 10.816 + 13.666 14.633 15.869 16.540 16.287 15.379 14.333 13.453 12.708 12.003 11.448 11.286 11.571 11.991 12.126 11.907 11.801 12.412 13.847 15.458 16.303 15.959 14.931 14.231 14.478 15.373 16.046 15.953 15.430 15.332 16.069 17.013 16.931 15.140 12.327 10.204 + 12.161 12.745 13.488 13.888 13.745 13.254 12.775 12.514 12.414 12.301 12.079 11.778 11.442 11.044 10.569 10.167 10.154 10.771 11.888 12.980 13.476 13.208 12.567 12.155 12.259 12.616 12.720 12.381 11.982 12.125 12.981 13.962 14.116 12.959 11.016 9.530 + 11.396 11.395 11.169 10.518 9.516 8.508 7.852 7.639 7.649 7.564 7.236 6.751 6.294 5.974 5.788 5.735 5.895 6.349 7.018 7.628 7.888 7.748 7.463 7.370 7.553 7.760 7.665 7.262 6.974 7.303 8.295 9.341 9.574 8.592 6.894 5.591 + 10.878 10.840 10.484 9.592 8.320 7.144 6.468 6.283 6.219 5.921 5.369 4.830 4.522 4.385 4.226 4.056 4.212 5.036 6.405 7.623 7.907 7.075 5.790 5.042 5.306 6.138 6.640 6.355 5.746 5.747 6.760 8.089 8.421 7.006 4.478 2.509 + 11.732 11.386 10.644 9.574 8.456 7.634 7.210 6.929 6.396 5.482 4.484 3.865 3.799 3.997 4.018 3.779 3.712 4.355 5.726 7.126 7.641 6.952 5.673 4.870 5.133 6.081 6.750 6.540 5.795 5.445 6.033 7.071 7.394 6.248 4.107 2.412 + 11.467 11.121 10.415 9.433 8.409 7.612 7.128 6.787 6.326 5.660 4.972 4.516 4.334 4.201 3.903 3.564 3.643 4.510 5.971 7.251 7.543 6.704 5.433 4.716 4.993 5.804 6.263 5.933 5.260 5.135 5.949 7.067 7.277 5.892 3.504 1.659 + 11.116 11.153 11.027 10.529 9.642 8.551 7.481 6.548 5.779 5.243 5.097 5.451 6.171 6.872 7.179 7.041 6.791 6.840 7.276 7.751 7.809 7.354 6.800 6.706 7.220 7.871 7.962 7.239 6.211 5.765 6.382 7.666 8.644 8.595 7.687 6.822 + 11.121 11.913 12.799 12.998 12.296 11.169 10.292 9.954 9.916 9.782 9.456 9.212 9.331 9.745 10.087 10.099 9.954 10.107 10.791 11.688 12.158 11.844 11.078 10.626 10.984 11.895 12.560 12.400 11.619 11.038 11.324 12.347 13.289 13.411 12.745 12.045 + 11.630 12.072 12.600 12.797 12.510 11.913 11.293 10.798 10.385 9.974 9.614 9.447 9.522 9.693 9.757 9.703 9.816 10.443 11.615 12.891 13.625 13.480 12.725 12.038 11.961 12.482 13.114 13.382 13.249 13.105 13.336 13.926 14.465 14.557 14.211 13.836 + 11.842 12.875 14.163 14.785 14.389 13.361 12.370 11.789 11.504 11.229 10.893 10.695 10.789 11.018 11.048 10.781 10.587 11.025 12.259 13.753 14.627 14.394 13.418 12.614 12.637 13.324 13.906 13.803 13.206 12.883 13.367 14.344 14.867 14.245 12.764 11.530 + 12.974 13.942 15.177 15.849 15.624 14.792 13.869 13.110 12.422 11.685 11.060 10.901 11.345 12.042 12.401 12.160 11.721 11.853 12.969 14.658 15.948 16.106 15.254 14.223 13.804 14.077 14.461 14.385 13.887 13.549 13.836 14.529 14.852 14.223 12.883 11.785 + 13.331 14.351 15.645 16.337 16.084 15.219 14.308 13.616 12.992 12.234 11.460 11.068 11.295 11.892 12.288 12.152 11.787 11.903 12.939 14.566 15.881 16.147 15.416 14.446 14.004 14.221 14.583 14.540 14.085 13.712 13.833 14.246 14.255 13.364 11.860 10.689 + 13.254 14.338 15.709 16.437 16.173 15.296 14.435 13.870 13.407 12.762 11.999 11.516 11.610 12.097 12.449 12.332 12.011 12.146 13.139 14.656 15.830 16.004 15.308 14.527 14.373 14.850 15.326 15.203 14.527 13.899 13.809 14.056 13.893 12.784 11.049 9.726 + 13.031 14.152 15.531 16.176 15.752 14.735 13.845 13.374 13.047 12.482 11.705 11.166 11.241 11.781 12.221 12.171 11.872 12.006 13.004 14.522 15.649 15.696 14.824 13.900 13.695 14.204 14.725 14.602 13.883 13.231 13.175 13.483 13.324 12.106 10.189 8.725 + 12.529 13.548 14.729 15.105 14.401 13.169 12.189 11.773 11.621 11.299 10.774 10.431 10.586 11.065 11.340 11.126 10.780 11.029 12.220 13.846 14.869 14.618 13.414 12.298 12.096 12.692 13.206 12.910 11.957 11.219 11.366 12.121 12.455 11.583 9.807 8.363 + 10.864 11.232 11.563 11.418 10.708 9.739 8.895 8.320 7.887 7.454 7.073 6.919 7.021 7.152 7.049 6.775 6.783 7.539 8.989 10.430 11.002 10.416 9.244 8.457 8.582 9.259 9.630 9.202 8.361 8.016 8.680 9.868 10.445 9.650 7.872 6.413 + 10.965 10.817 10.296 9.256 7.908 6.742 6.143 6.064 6.087 5.816 5.211 4.555 4.114 3.872 3.632 3.362 3.371 4.055 5.425 6.899 7.655 7.295 6.210 5.280 5.138 5.655 6.128 5.985 5.339 4.861 5.103 5.929 6.612 6.528 5.756 5.025 + 10.298 10.257 9.774 8.532 6.771 5.262 4.745 5.338 6.424 7.147 7.043 6.300 5.455 4.895 4.618 4.431 4.292 4.406 4.978 5.897 6.714 6.980 6.624 6.007 5.596 5.581 5.781 5.906 5.882 5.896 6.125 6.473 6.597 6.243 5.550 4.992 + 9.808 9.970 9.903 9.238 8.042 6.843 6.208 6.278 6.666 6.806 6.413 5.643 4.871 4.342 4.044 3.878 3.878 4.206 4.910 5.731 6.210 6.047 5.391 4.753 4.596 4.965 5.507 5.832 5.876 5.911 6.206 6.707 7.053 6.939 6.441 5.992 + 8.206 8.399 8.536 8.344 7.764 7.008 6.373 6.008 5.822 5.617 5.289 4.913 4.650 4.578 4.622 4.644 4.585 4.520 4.563 4.733 4.917 4.977 4.883 4.754 4.750 4.927 5.185 5.370 5.418 5.417 5.532 5.865 6.375 6.917 7.344 7.571 + 8.734 9.160 9.517 9.246 8.202 6.772 5.554 4.893 4.693 4.618 4.447 4.235 4.165 4.281 4.395 4.286 3.964 3.721 3.888 4.516 5.289 5.761 5.725 5.371 5.116 5.242 5.682 6.116 6.263 6.128 5.978 6.124 6.687 7.526 8.341 8.836 + 8.649 9.186 9.536 8.947 7.387 5.630 4.619 4.680 5.312 5.692 5.406 4.727 4.239 4.219 4.405 4.342 3.920 3.539 3.730 4.597 5.644 6.174 5.892 5.165 4.706 4.975 5.850 6.797 7.356 7.464 7.388 7.400 7.548 7.705 7.765 7.755 + 10.152 10.168 9.949 9.311 8.435 7.798 7.770 8.260 8.761 8.789 8.304 7.723 7.519 7.783 8.161 8.218 7.850 7.366 7.171 7.381 7.743 7.932 7.890 7.880 8.196 8.845 9.523 9.915 10.000 10.051 10.329 10.776 11.051 10.868 10.324 9.852 + 11.165 11.487 11.761 11.610 11.019 10.349 9.983 9.968 9.997 9.748 9.224 8.753 8.651 8.897 9.156 9.123 8.847 8.687 8.943 9.534 10.052 10.153 9.909 9.749 10.051 10.774 11.495 11.818 11.752 11.679 11.952 12.517 12.951 12.880 12.369 11.889 + 10.688 11.464 12.400 12.792 12.419 11.636 10.959 10.586 10.318 9.898 9.358 8.984 8.951 9.065 8.940 8.479 8.129 8.564 10.014 11.893 13.143 13.074 11.962 10.840 10.646 11.471 12.578 13.122 12.904 12.465 12.482 13.104 13.848 14.128 13.849 13.464 + 12.171 13.039 14.123 14.657 14.343 13.484 12.606 11.977 11.492 10.963 10.437 10.181 10.362 10.790 11.071 11.031 10.973 11.432 12.611 14.048 14.907 14.672 13.631 12.664 12.502 13.120 13.819 13.914 13.365 12.771 12.758 13.374 14.059 14.220 13.806 13.333 + 13.223 13.974 14.981 15.630 15.610 15.038 14.239 13.452 12.749 12.166 11.831 11.875 12.222 12.532 12.451 11.983 11.599 11.900 13.069 14.619 15.713 15.812 15.106 14.323 14.099 14.477 14.977 15.131 14.930 14.768 14.938 15.230 15.069 14.094 12.625 11.522 + 13.448 14.369 15.617 16.445 16.460 15.782 14.809 13.861 13.050 12.406 12.021 12.008 12.302 12.601 12.596 12.311 12.176 12.699 13.953 15.404 16.280 16.206 15.526 14.988 15.080 15.617 15.990 15.812 15.326 15.139 15.527 16.012 15.697 14.113 11.821 10.131 + 13.470 14.451 15.791 16.704 16.766 16.095 15.112 14.171 13.402 12.825 12.503 12.509 12.764 12.985 12.903 12.583 12.478 13.077 14.420 15.935 16.831 16.737 16.013 15.426 15.467 15.949 16.258 16.011 15.462 15.231 15.602 16.095 15.800 14.239 11.963 10.281 + 13.365 14.411 15.851 16.857 16.968 16.290 15.267 14.292 13.525 12.987 12.708 12.723 12.937 13.089 12.953 12.623 12.544 13.169 14.496 15.943 16.748 16.594 15.878 15.371 15.527 16.100 16.423 16.087 15.364 14.935 15.175 15.688 15.598 14.379 12.460 11.005 + 13.421 14.428 15.794 16.698 16.691 15.900 14.781 13.740 12.951 12.440 12.229 12.321 12.575 12.712 12.551 12.272 12.384 13.300 14.865 16.320 16.841 16.230 15.128 14.489 14.761 15.507 15.847 15.327 14.383 13.928 14.422 15.319 15.463 14.157 11.916 10.180 + 13.412 14.116 15.111 15.830 15.878 15.213 14.100 12.929 12.041 11.615 11.621 11.832 11.929 11.707 11.284 11.111 11.677 13.074 14.784 15.939 15.932 14.912 13.716 13.224 13.666 14.471 14.803 14.339 13.564 13.313 13.946 14.921 15.209 14.212 12.380 10.943 + 12.684 13.258 13.987 14.349 14.092 13.387 12.645 12.205 12.107 12.128 11.977 11.492 10.733 9.943 9.456 9.570 10.393 11.721 13.049 13.801 13.671 12.857 11.944 11.506 11.699 12.191 12.507 12.474 12.375 12.639 13.346 14.024 13.977 12.904 11.269 10.054 + 12.514 13.297 14.368 15.075 15.027 14.276 13.193 12.170 11.422 10.956 10.683 10.502 10.337 10.166 10.070 10.239 10.862 11.916 13.047 13.723 13.598 12.830 12.020 11.780 12.249 13.000 13.429 13.318 13.028 13.138 13.825 14.577 14.568 13.398 11.561 10.183 + 13.360 13.667 14.241 14.896 15.243 14.861 13.614 11.867 10.354 9.722 10.079 10.906 11.450 11.304 10.733 10.447 11.018 12.388 13.869 14.658 14.440 13.604 12.903 12.856 13.362 13.856 13.836 13.318 12.816 12.878 13.558 14.305 14.378 13.464 12.000 10.903 + 13.633 13.979 14.567 15.168 15.459 15.152 14.185 12.828 11.585 10.906 10.896 11.246 11.472 11.303 10.921 10.833 11.457 12.734 14.099 14.868 14.751 14.070 13.499 13.513 14.012 14.426 14.237 13.460 12.654 12.438 12.906 13.472 13.314 12.079 10.267 8.937 + 13.627 14.158 14.956 15.626 15.829 15.427 14.519 13.395 12.425 11.907 11.918 12.253 12.528 12.445 12.041 11.724 11.990 13.003 14.379 15.395 15.512 14.804 13.915 13.547 13.898 14.532 14.796 14.416 13.728 13.328 13.447 13.652 13.190 11.705 9.690 8.238 + 13.583 14.289 15.277 16.002 16.137 15.695 14.902 13.992 13.137 12.488 12.197 12.303 12.620 12.801 12.633 12.295 12.297 13.048 14.412 15.693 16.138 15.574 14.587 14.044 14.350 15.117 15.548 15.198 14.386 13.851 13.963 14.258 13.799 12.082 9.666 7.897 + 13.387 14.241 15.342 15.984 15.888 15.311 14.672 14.144 13.601 12.923 12.263 11.943 12.095 12.459 12.621 12.486 12.459 13.082 14.422 15.837 16.438 15.884 14.740 14.022 14.291 15.149 15.639 15.186 14.160 13.502 13.718 14.252 13.895 11.952 9.071 6.925 + 13.483 14.249 15.169 15.554 15.204 14.486 13.910 13.635 13.392 12.858 12.057 11.362 11.133 11.371 11.779 12.128 12.524 13.240 14.295 15.254 15.544 15.015 14.183 13.818 14.235 14.960 15.165 14.483 13.423 12.902 13.292 13.902 13.475 11.362 8.303 6.048 + 12.645 13.390 14.246 14.477 13.853 12.791 11.961 11.720 11.887 11.988 11.705 11.113 10.540 10.277 10.406 10.873 11.609 12.526 13.410 13.918 13.797 13.154 12.481 12.306 12.724 13.268 13.286 12.537 11.447 10.728 10.683 10.845 10.340 8.711 6.474 4.850 + 9.188 10.247 11.315 11.235 9.776 7.840 6.690 6.894 7.913 8.666 8.483 7.614 6.893 6.936 7.644 8.395 8.660 8.441 8.149 8.134 8.360 8.506 8.319 7.845 7.321 6.901 6.550 6.186 5.878 5.814 6.048 6.306 6.124 5.265 4.032 3.123 + 8.974 9.740 10.410 10.058 8.548 6.666 5.427 5.209 5.509 5.502 4.835 3.922 3.510 3.968 4.992 5.938 6.411 6.522 6.620 6.830 6.913 6.564 5.808 5.040 4.668 4.718 4.837 4.686 4.319 4.132 4.407 4.931 5.118 4.552 3.454 2.573 + 9.987 10.502 10.838 10.275 8.761 7.003 5.853 5.607 5.835 5.874 5.463 4.922 4.761 5.149 5.783 6.236 6.384 6.447 6.642 6.856 6.726 6.071 5.183 4.635 4.720 5.123 5.179 4.537 3.578 3.119 3.630 4.713 5.373 4.902 3.562 2.418 + 9.619 10.053 10.264 9.591 8.045 6.358 5.357 5.246 5.491 5.371 4.670 3.850 3.574 4.064 4.911 5.493 5.550 5.362 5.387 5.759 6.153 6.136 5.617 4.927 4.470 4.325 4.226 3.929 3.551 3.497 4.007 4.797 5.214 4.805 3.790 2.942 + 8.513 8.977 9.392 9.182 8.199 6.836 5.680 5.058 4.867 4.788 4.634 4.478 4.493 4.717 5.018 5.271 5.523 5.924 6.494 6.979 7.016 6.481 5.672 5.107 5.085 5.418 5.606 5.323 4.734 4.353 4.526 5.070 5.405 5.088 4.263 3.563 + 8.932 8.797 8.348 7.485 6.411 5.587 5.395 5.816 6.425 6.713 6.475 5.927 5.483 5.397 5.610 5.877 6.020 6.058 6.116 6.254 6.406 6.474 6.452 6.417 6.399 6.297 5.969 5.418 4.889 4.707 4.985 5.464 5.682 5.357 4.656 4.087 + 8.372 9.068 9.765 9.712 8.807 7.734 7.391 8.127 9.427 10.331 10.200 9.196 8.098 7.664 8.077 8.903 9.524 9.623 9.342 9.067 9.081 9.384 9.769 10.000 9.947 9.597 9.026 8.379 7.852 7.606 7.656 7.823 7.838 7.554 7.080 6.715 + 8.200 8.574 8.815 8.400 7.328 6.198 5.752 6.257 7.263 7.946 7.750 6.795 5.740 5.249 5.508 6.158 6.652 6.684 6.365 6.058 6.052 6.368 6.785 7.034 6.963 6.592 6.070 5.587 5.304 5.281 5.443 5.601 5.560 5.253 4.814 4.494 + 8.717 7.963 6.927 6.208 6.101 6.394 6.540 6.090 5.053 3.909 3.257 3.365 3.979 4.532 4.591 4.191 3.766 3.770 4.292 4.990 5.391 5.286 4.872 4.547 4.537 4.724 4.798 4.590 4.259 4.143 4.414 4.876 5.103 4.820 4.176 3.646 + 6.551 6.392 6.146 5.914 5.769 5.713 5.687 5.607 5.419 5.126 4.783 4.467 4.239 4.125 4.123 4.222 4.418 4.707 5.065 5.423 5.669 5.693 5.441 4.977 4.466 4.114 4.059 4.298 4.682 4.994 5.053 4.800 4.310 3.738 3.252 2.978 + 4.450 5.034 5.795 6.237 6.137 5.650 5.107 4.729 4.504 4.321 4.160 4.127 4.313 4.638 4.879 4.880 4.720 4.670 4.936 5.439 5.849 5.856 5.438 4.878 4.519 4.482 4.610 4.656 4.530 4.354 4.300 4.389 4.462 4.354 4.082 3.848 + 4.479 5.058 5.808 6.229 6.092 5.568 5.032 4.743 4.681 4.640 4.457 4.156 3.893 3.791 3.843 3.969 4.129 4.372 4.759 5.244 5.658 5.819 5.669 5.310 4.909 4.581 4.341 4.178 4.124 4.239 4.507 4.778 4.841 4.594 4.160 3.825 + 5.463 5.669 5.871 5.849 5.569 5.187 4.872 4.647 4.414 4.137 3.957 4.088 4.580 5.184 5.514 5.377 4.977 4.767 5.069 5.782 6.457 6.670 6.351 5.794 5.351 5.131 4.979 4.726 4.428 4.322 4.549 4.936 5.087 4.736 4.036 3.474 + 6.506 6.114 5.683 5.580 5.839 6.117 6.009 5.431 4.720 4.358 4.555 5.073 5.446 5.379 4.999 4.724 4.899 5.505 6.191 6.579 6.544 6.264 6.005 5.882 5.790 5.555 5.141 4.717 4.527 4.675 5.023 5.267 5.156 4.665 4.026 3.582 + 6.059 6.002 5.981 6.080 6.262 6.360 6.198 5.736 5.142 4.688 4.557 4.703 4.886 4.870 4.619 4.346 4.338 4.717 5.312 5.765 5.798 5.429 4.962 4.756 4.953 5.383 5.713 5.704 5.376 4.948 4.637 4.490 4.389 4.207 3.948 3.750 + 7.447 6.658 5.607 4.961 5.044 5.621 6.103 6.017 5.371 4.631 4.338 4.675 5.316 5.701 5.490 4.848 4.317 4.379 5.068 5.938 6.407 6.203 5.535 4.896 4.668 4.861 5.190 5.358 5.301 5.171 5.116 5.100 4.935 4.498 3.905 3.474 + 7.593 6.830 5.810 5.159 5.167 5.617 6.011 5.982 5.546 5.023 4.736 4.760 4.931 5.041 5.036 5.028 5.152 5.421 5.712 5.882 5.890 5.804 5.709 5.624 5.499 5.302 5.086 4.972 5.046 5.269 5.486 5.516 5.276 4.829 4.354 4.053 + 5.447 5.740 6.198 6.592 6.678 6.324 5.618 4.876 4.484 4.673 5.355 6.157 6.651 6.619 6.178 5.677 5.453 5.619 6.021 6.381 6.494 6.338 6.049 5.790 5.647 5.606 5.598 5.573 5.526 5.474 5.426 5.364 5.264 5.125 4.982 4.889 + 6.238 6.119 6.065 6.244 6.599 6.848 6.702 6.127 5.416 4.982 5.052 5.492 5.930 6.048 5.823 5.517 5.446 5.727 6.205 6.598 6.710 6.556 6.296 6.078 5.931 5.779 5.559 5.302 5.118 5.094 5.201 5.299 5.236 4.971 4.613 4.359 + 6.221 6.126 6.048 6.105 6.307 6.520 6.560 6.332 5.922 5.550 5.429 5.625 6.027 6.435 6.693 6.772 6.742 6.681 6.614 6.519 6.388 6.265 6.214 6.239 6.251 6.117 5.780 5.333 4.985 4.904 5.080 5.304 5.320 5.019 4.542 4.185 + 7.820 7.759 7.616 7.364 6.996 6.540 6.062 5.655 5.410 5.384 5.572 5.887 6.187 6.340 6.295 6.117 5.960 5.971 6.195 6.549 6.871 7.021 6.956 6.736 6.462 6.208 5.998 5.820 5.672 5.568 5.521 5.521 5.530 5.516 5.477 5.442 + 7.657 7.037 6.262 5.896 6.157 6.764 7.173 7.001 6.294 5.458 4.932 4.897 5.216 5.606 5.867 5.973 6.011 6.062 6.144 6.240 6.339 6.439 6.503 6.451 6.219 5.837 5.461 5.289 5.423 5.788 6.159 6.295 6.086 5.605 5.070 4.725 + 8.344 7.733 6.926 6.443 6.519 6.926 7.146 6.775 5.851 4.858 4.389 4.723 5.624 6.521 6.919 6.736 6.296 6.031 6.126 6.411 6.559 6.384 5.997 5.677 5.607 5.728 5.825 5.767 5.638 5.646 5.889 6.209 6.303 5.994 5.426 4.980 + 9.320 8.468 7.335 6.618 6.597 6.943 7.021 6.431 5.360 4.458 4.336 5.099 6.266 7.129 7.259 6.772 6.177 5.959 6.241 6.763 7.151 7.213 7.037 6.833 6.718 6.626 6.426 6.105 5.823 5.782 6.027 6.365 6.496 6.262 5.792 5.419 + 7.477 8.271 9.548 10.824 11.658 11.824 11.357 10.476 9.448 8.491 7.768 7.428 7.604 8.333 9.446 10.564 11.253 11.276 10.755 10.102 9.736 9.805 10.112 10.315 10.218 9.917 9.681 9.690 9.858 9.913 9.641 9.077 8.478 8.101 8.002 8.034 + 7.369 7.763 8.682 10.130 11.742 12.861 12.912 11.785 9.909 7.985 6.618 6.119 6.536 7.745 9.444 11.110 12.102 11.986 10.873 9.440 8.515 8.498 9.101 9.637 9.625 9.179 8.832 8.984 9.485 9.766 9.393 8.499 7.692 7.506 7.915 8.382 + 6.565 6.097 5.681 5.968 7.233 9.123 10.801 11.396 10.471 8.257 5.568 3.452 2.731 3.618 5.595 7.663 8.874 8.884 8.136 7.524 7.730 8.718 9.789 10.156 9.592 8.598 7.962 8.083 8.651 8.979 8.661 7.976 7.645 8.156 9.274 10.189 + 6.732 6.691 6.631 6.634 6.841 7.359 8.118 8.807 9.012 8.491 7.405 6.308 5.839 6.327 7.568 8.951 9.850 10.006 9.626 9.162 8.948 8.989 9.030 8.823 8.358 7.872 7.637 7.738 7.998 8.136 7.995 7.657 7.358 7.283 7.411 7.562 + 8.133 7.884 7.749 8.129 9.093 10.301 11.266 11.701 11.664 11.425 11.237 11.220 11.409 11.826 12.424 12.991 13.174 12.720 11.746 10.760 10.327 10.603 11.161 11.312 10.680 9.547 8.637 8.517 9.120 9.805 9.885 9.164 8.019 7.015 6.459 6.276 + 10.869 11.073 11.384 11.700 12.009 12.427 13.108 14.085 15.166 15.993 16.269 15.990 15.495 15.237 15.433 15.863 16.008 15.454 14.252 12.922 12.068 11.903 12.079 11.974 11.217 10.032 9.103 9.065 10.011 11.389 12.358 12.302 11.163 9.405 7.719 6.709 + 11.432 11.704 12.082 12.371 12.526 12.724 13.254 14.271 15.600 16.761 17.258 16.935 16.142 15.523 15.550 16.152 16.741 16.648 15.658 14.200 13.041 12.696 13.025 13.353 13.006 11.864 10.479 9.680 9.957 11.089 12.264 12.590 11.635 9.674 7.531 6.153 + 11.761 11.885 12.104 12.371 12.664 13.044 13.656 14.607 15.794 16.829 17.219 16.738 15.693 14.818 14.783 15.660 16.807 17.309 16.682 15.270 14.002 13.665 14.284 15.109 15.216 14.243 12.663 11.411 11.171 11.880 12.792 13.010 12.072 10.211 8.195 6.905 + 12.167 12.341 12.629 12.956 13.294 13.707 14.319 15.193 16.197 16.983 17.175 16.655 15.729 15.001 14.968 15.645 16.514 16.889 16.436 15.430 14.541 14.297 14.668 15.092 14.937 14.005 12.690 11.672 11.408 11.806 12.320 12.337 11.574 10.225 8.821 7.938 + 12.600 12.774 13.046 13.344 13.683 14.171 14.916 15.888 16.850 17.441 17.376 16.657 15.628 14.820 14.664 15.231 16.188 17.001 17.263 16.939 16.351 15.923 15.860 15.989 15.900 15.269 14.153 12.997 12.347 12.451 13.034 13.446 13.100 11.895 10.340 9.258 + 12.862 13.016 13.290 13.673 14.207 14.933 15.777 16.526 16.917 16.812 16.286 15.566 14.880 14.368 14.112 14.200 14.702 15.542 16.414 16.897 16.745 16.101 15.409 15.038 14.934 14.656 13.813 12.528 11.468 11.322 12.143 13.156 13.286 12.037 9.986 8.432 + 13.138 13.434 13.951 14.596 15.295 15.962 16.452 16.588 16.280 15.633 14.910 14.346 13.982 13.694 13.412 13.297 13.656 14.622 15.899 16.867 17.034 16.446 15.655 15.218 15.168 14.988 14.150 12.760 11.632 11.631 12.796 14.087 14.085 12.171 9.193 6.970 + 12.847 13.295 14.030 14.819 15.461 15.810 15.755 15.250 14.385 13.431 12.716 12.400 12.345 12.256 12.009 11.859 12.275 13.468 15.058 16.245 16.419 15.693 14.828 14.555 14.871 15.009 14.176 12.417 10.770 10.435 11.637 13.220 13.460 11.510 8.254 5.772 + 13.075 13.646 14.465 15.102 15.273 14.943 14.263 13.442 12.671 12.107 11.834 11.792 11.771 11.569 11.219 11.080 11.589 12.841 14.363 15.367 15.372 14.648 14.030 14.181 14.922 15.304 14.436 12.403 10.375 9.711 10.746 12.353 12.766 11.055 8.016 5.660 + 13.327 13.834 14.608 15.316 15.705 15.657 15.162 14.284 13.192 12.180 11.550 11.409 11.551 11.617 11.435 11.246 11.536 12.555 13.970 15.018 15.129 14.457 13.794 13.849 14.528 14.917 14.094 12.073 9.993 9.249 10.252 11.932 12.518 11.024 8.174 5.925 + 13.854 14.355 15.073 15.662 15.932 15.880 15.545 14.903 13.952 12.865 11.998 11.655 11.805 12.079 12.107 11.906 11.922 12.612 13.938 15.292 15.971 15.797 15.278 15.101 15.418 15.641 15.009 13.424 11.736 11.092 11.867 13.170 13.478 11.941 9.231 7.128 + 13.808 14.364 15.132 15.708 15.926 15.872 15.667 15.278 14.585 13.622 12.690 12.157 12.122 12.297 12.293 12.047 11.956 12.529 13.852 15.400 16.426 16.596 16.245 15.995 16.089 16.110 15.430 13.955 12.427 11.861 12.573 13.724 13.894 12.309 9.634 7.580 + 13.520 14.193 15.110 15.762 15.924 15.719 15.378 14.966 14.374 13.549 12.676 12.080 11.921 12.026 12.053 11.867 11.736 12.112 13.184 14.628 15.824 16.360 16.326 16.135 16.040 15.871 15.265 14.178 13.108 12.724 13.188 13.839 13.636 12.067 9.724 7.986 + 14.022 14.352 14.809 15.160 15.314 15.308 15.156 14.751 13.973 12.886 11.818 11.158 11.046 11.255 11.405 11.344 11.314 11.734 12.782 14.171 15.361 15.991 16.136 16.126 16.139 15.998 15.411 14.412 13.511 13.312 13.890 14.549 14.286 12.652 10.281 8.541 + 13.980 14.244 14.507 14.502 14.227 13.931 13.837 13.891 13.797 13.307 12.483 11.658 11.139 10.949 10.868 10.720 10.608 10.846 11.636 12.833 14.020 14.838 15.231 15.379 15.404 15.204 14.606 13.690 12.900 12.725 13.199 13.711 13.405 11.917 9.810 8.276 + 14.245 14.197 14.000 13.606 13.140 12.848 12.876 13.111 13.237 12.984 12.355 11.604 11.012 10.661 10.420 10.154 9.914 9.943 10.458 11.436 12.596 13.586 14.186 14.364 14.174 13.660 12.883 12.038 11.450 11.378 11.747 12.094 11.858 10.832 9.415 8.394 + 15.056 14.829 14.257 13.301 12.173 11.273 10.908 11.040 11.304 11.302 10.905 10.328 9.900 9.778 9.844 9.869 9.755 9.622 9.683 10.040 10.599 11.147 11.488 11.501 11.116 10.317 9.225 8.187 7.682 8.029 9.071 10.161 10.546 9.913 8.674 7.704 + 15.309 14.866 14.030 12.954 11.899 11.163 10.919 11.090 11.370 11.398 10.985 10.239 9.496 9.105 9.208 9.655 10.103 10.241 9.998 9.609 9.469 9.856 10.677 11.428 11.449 10.361 8.411 6.453 5.492 6.058 7.807 9.693 10.619 10.166 8.860 7.781 + 15.202 14.813 14.114 13.247 12.391 11.730 11.392 11.389 11.573 11.676 11.445 10.816 9.998 9.376 9.270 9.690 10.307 10.676 10.575 10.195 10.005 10.369 11.185 11.870 11.719 10.441 8.455 6.723 6.178 7.128 9.031 10.813 11.528 10.936 9.623 8.591 + 14.907 14.619 14.091 13.403 12.664 12.008 11.579 11.457 11.566 11.656 11.426 10.751 9.833 9.129 9.041 9.598 10.398 10.888 10.799 10.375 10.184 10.638 11.589 12.362 12.224 10.947 9.049 7.505 7.130 8.071 9.730 11.161 11.646 11.088 10.011 9.194 + 14.337 14.145 13.785 13.309 12.797 12.343 12.026 11.853 11.735 11.508 11.044 10.369 9.694 9.309 9.382 9.811 10.271 10.442 10.271 10.046 10.193 10.937 12.069 13.025 13.248 12.575 11.380 10.352 10.064 10.618 11.599 12.350 12.388 11.686 10.667 9.942 + 14.111 13.865 13.438 12.969 12.649 12.621 12.861 13.132 13.097 12.540 11.548 10.502 9.854 9.825 10.248 10.675 10.685 10.195 9.538 9.266 9.787 11.090 12.715 13.999 14.450 14.007 13.066 12.233 11.976 12.360 13.020 13.397 13.086 12.097 10.873 10.040 + 12.997 13.070 13.070 12.881 12.581 12.410 12.540 12.861 13.008 12.636 11.739 10.711 10.082 10.105 10.556 10.890 10.668 9.918 9.142 8.983 9.780 11.328 13.006 14.154 14.444 14.027 13.392 13.051 13.237 13.783 14.223 14.053 13.039 11.379 9.654 8.557 + 12.573 12.914 13.268 13.274 12.866 12.333 12.058 12.163 12.378 12.269 11.628 10.678 9.924 9.745 10.069 10.429 10.340 9.715 8.980 8.780 9.504 10.988 12.610 13.702 13.972 13.643 13.247 13.235 13.685 14.284 14.557 14.167 13.099 11.660 10.319 9.519 + 12.682 13.054 13.458 13.507 13.090 12.458 11.992 11.868 11.904 11.737 11.159 10.334 9.679 9.518 9.796 10.105 10.026 9.493 8.901 8.829 9.606 11.038 12.517 13.427 13.548 13.168 12.844 12.992 13.615 14.326 14.617 14.179 13.061 11.615 10.311 9.549 + 12.738 13.069 13.435 13.501 13.171 12.642 12.196 11.929 11.676 11.201 10.472 9.753 9.402 9.556 9.970 10.184 9.894 9.231 8.706 8.851 9.834 11.320 12.692 13.446 13.486 13.133 12.871 13.027 13.587 14.235 14.550 14.247 13.312 12.010 10.773 10.024 + 12.446 12.814 13.254 13.423 13.200 12.748 12.332 12.063 11.812 11.375 10.710 10.024 9.617 9.611 9.823 9.911 9.674 9.262 9.107 9.611 10.831 12.400 13.733 14.371 14.234 13.628 13.034 12.833 13.112 13.650 14.047 13.938 13.189 11.978 10.734 9.950 + 12.722 13.077 13.535 13.775 13.626 13.168 12.635 12.208 11.893 11.548 11.061 10.483 10.014 9.835 9.945 10.155 10.268 10.297 10.510 11.228 12.512 13.988 14.997 14.996 13.936 12.334 10.970 10.416 10.723 11.461 12.042 12.089 11.593 10.825 10.117 9.709 + 12.638 13.021 13.555 13.909 13.838 13.323 12.578 11.888 11.411 11.086 10.729 10.251 9.784 9.592 9.835 10.390 10.938 11.251 11.428 11.812 12.625 13.623 14.136 13.529 11.762 9.551 7.963 7.711 8.690 10.107 11.080 11.206 10.701 10.060 9.636 9.470 + 12.728 13.074 13.582 13.956 13.922 13.380 12.476 11.513 10.756 10.270 9.932 9.615 9.367 9.397 9.858 10.628 11.341 11.665 11.609 11.529 11.795 12.371 12.734 12.239 10.692 8.615 6.959 6.455 7.121 8.305 9.207 9.427 9.119 8.702 8.460 8.394 + 12.817 13.117 13.566 13.894 13.829 13.264 12.377 11.548 11.091 11.001 10.949 10.583 9.886 9.253 9.188 9.852 10.887 11.688 11.899 11.683 11.510 11.654 11.874 11.602 10.489 8.811 7.340 6.778 7.223 8.119 8.718 8.628 8.004 7.289 6.808 6.610 + 12.793 13.103 13.573 13.926 13.867 13.281 12.374 11.578 11.232 11.276 11.270 10.779 9.815 8.910 8.709 9.411 10.565 11.439 11.649 11.448 11.412 11.806 12.242 12.006 10.766 9.009 7.749 7.726 8.806 10.096 10.690 10.367 9.640 9.190 9.241 9.471 + 12.882 13.237 13.736 14.069 14.002 13.512 12.797 12.132 11.668 11.326 10.898 10.262 9.551 9.080 9.095 9.551 10.149 10.598 10.892 11.295 12.032 12.951 13.495 13.092 11.655 9.775 8.379 8.105 8.867 9.963 10.607 10.458 9.741 8.942 8.404 8.175 + 13.271 13.566 13.949 14.158 14.043 13.643 13.106 12.552 11.990 11.357 10.635 9.915 9.362 9.105 9.158 9.443 9.887 10.502 11.357 12.464 13.660 14.607 14.941 14.471 13.319 11.884 10.671 10.044 10.072 10.517 10.970 11.062 10.636 9.814 8.928 8.361 + 13.861 13.799 13.698 13.571 13.401 13.142 12.756 12.247 11.655 11.034 10.411 9.797 9.221 8.755 8.508 8.569 8.961 9.632 10.493 11.452 12.419 13.260 13.788 13.810 13.251 12.262 11.217 10.552 10.529 11.059 11.718 11.972 11.486 10.340 9.012 8.131 + 14.381 14.331 14.065 13.422 12.437 11.364 10.515 10.031 9.798 9.540 9.046 8.324 7.599 7.164 7.208 7.707 8.436 9.079 9.384 9.304 9.039 8.923 9.183 9.727 10.140 9.958 9.068 7.901 7.219 7.571 8.814 10.124 10.539 9.680 8.081 6.845 + 14.543 14.340 13.883 13.148 12.209 11.231 10.388 9.765 9.328 8.968 8.572 8.084 7.530 7.033 6.798 7.024 7.754 8.763 9.598 9.838 9.402 8.675 8.263 8.540 9.315 9.935 9.799 8.872 7.768 7.289 7.789 8.872 9.720 9.758 9.118 8.488 + 14.474 14.271 13.858 13.220 12.360 11.344 10.344 9.588 9.238 9.246 9.341 9.178 8.595 7.770 7.142 7.110 7.731 8.639 9.279 9.302 8.810 8.279 8.187 8.642 9.296 9.610 9.275 8.467 7.725 7.564 8.099 8.972 9.636 9.759 9.446 9.110 + 13.994 13.989 13.741 13.028 11.914 10.761 9.964 9.651 9.605 9.472 9.049 8.410 7.787 7.365 7.181 7.174 7.295 7.527 7.828 8.103 8.282 8.418 8.671 9.124 9.610 9.754 9.287 8.373 7.614 7.642 8.585 9.881 10.657 10.410 9.427 8.569 + 13.120 12.990 12.561 11.722 10.644 9.738 9.370 9.550 9.891 9.885 9.270 8.206 7.134 6.458 6.320 6.596 7.056 7.520 7.903 8.186 8.392 8.582 8.826 9.120 9.315 9.174 8.569 7.675 6.950 6.856 7.492 8.476 9.193 9.255 8.793 8.333 + 11.022 10.976 10.611 9.726 8.523 7.563 7.339 7.844 8.546 8.797 8.351 7.523 6.890 6.802 7.147 7.523 7.621 7.461 7.293 7.333 7.584 7.902 8.168 8.362 8.484 8.443 8.093 7.416 6.639 6.138 6.154 6.584 7.049 7.213 7.052 6.835 + 9.745 9.658 9.242 8.335 7.167 6.309 6.243 6.934 7.778 8.029 7.356 6.085 4.936 4.493 4.826 5.537 6.120 6.316 6.203 6.030 6.002 6.178 6.498 6.846 7.078 7.041 6.648 5.984 5.323 4.987 5.115 5.543 5.919 5.975 5.741 5.494 + 7.107 7.255 7.157 6.467 5.359 4.526 4.669 5.884 7.487 8.450 8.128 6.707 5.038 4.035 4.084 4.900 5.832 6.343 6.295 5.930 5.631 5.675 6.098 6.694 7.115 7.050 6.415 5.451 4.633 4.381 4.769 5.452 5.903 5.807 5.300 4.846 + 5.127 5.732 6.356 6.356 5.629 4.740 4.470 5.159 6.407 7.371 7.394 6.463 5.164 4.213 3.976 4.320 4.819 5.104 5.071 4.863 4.717 4.811 5.179 5.695 6.112 6.176 5.790 5.130 4.584 4.502 4.918 5.479 5.687 5.289 4.508 3.891 + 7.234 7.536 7.956 8.270 8.381 8.364 8.355 8.416 8.485 8.458 8.312 8.141 8.074 8.162 8.343 8.520 8.662 8.827 9.080 9.399 9.658 9.742 9.675 9.643 9.876 10.466 11.273 11.986 12.306 12.103 11.462 10.599 9.741 9.041 8.567 8.332 + 8.312 8.853 9.589 10.107 10.242 10.141 10.061 10.108 10.174 10.111 9.936 9.849 10.048 10.523 11.055 11.401 11.496 11.462 11.443 11.451 11.396 11.272 11.272 11.671 12.568 13.720 14.672 15.098 15.042 14.846 14.823 14.976 15.034 14.760 14.228 13.797 + 9.046 9.236 9.481 9.629 9.627 9.546 9.476 9.429 9.335 9.145 8.926 8.845 9.042 9.505 10.068 10.541 10.847 11.062 11.310 11.639 11.994 12.306 12.613 13.067 13.820 14.868 16.011 16.958 17.503 17.634 17.507 17.317 17.188 17.142 17.145 17.156 + 9.217 9.038 8.759 8.514 8.436 8.571 8.822 8.995 8.945 8.704 8.490 8.556 8.982 9.592 10.080 10.242 10.136 10.033 10.197 10.709 11.461 12.308 13.221 14.288 15.557 16.897 18.015 18.638 18.708 18.423 18.093 17.936 17.979 18.118 18.238 18.296 + 9.328 9.582 9.880 9.954 9.678 9.155 8.651 8.419 8.546 8.932 9.372 9.699 9.854 9.880 9.867 9.896 10.032 10.332 10.839 11.565 12.469 13.471 14.489 15.477 16.424 17.310 18.067 18.579 18.743 18.562 18.173 17.802 17.646 17.757 18.020 18.228 + 9.669 10.002 10.328 10.291 9.854 9.318 9.012 8.994 9.042 8.952 8.800 8.890 9.418 10.197 10.760 10.776 10.391 10.157 10.582 11.706 13.083 14.190 14.871 15.403 16.153 17.165 18.089 18.490 18.259 17.703 17.270 17.178 17.291 17.342 17.224 17.075 + 10.992 10.690 10.120 9.407 8.783 8.468 8.509 8.727 8.863 8.813 8.725 8.846 9.253 9.749 10.036 10.038 10.046 10.506 11.615 13.093 14.361 15.001 15.092 15.118 15.535 16.371 17.220 17.615 17.432 16.964 16.633 16.628 16.805 16.900 16.814 16.684 + 12.745 11.850 10.638 9.809 9.659 9.922 10.068 9.801 9.290 8.973 9.128 9.612 9.989 9.928 9.512 9.192 9.440 10.392 11.766 13.096 14.060 14.648 15.078 15.570 16.183 16.803 17.263 17.463 17.413 17.203 16.946 16.741 16.644 16.661 16.743 16.813 + 10.817 10.384 9.857 9.607 9.708 9.884 9.790 9.355 8.875 8.744 9.077 9.565 9.717 9.306 8.616 8.278 8.795 10.144 11.781 13.052 13.664 13.861 14.172 14.948 16.078 17.080 17.483 17.179 16.473 15.823 15.493 15.407 15.281 14.920 14.400 14.013 + 11.636 11.084 10.233 9.429 8.912 8.696 8.611 8.462 8.182 7.861 7.642 7.571 7.566 7.504 7.386 7.386 7.745 8.567 9.699 10.821 11.685 12.293 12.862 13.585 14.394 14.962 14.949 14.303 13.348 12.554 12.186 12.119 11.983 11.522 10.839 10.325 + 13.331 13.388 13.577 13.966 14.520 15.062 15.340 15.181 14.615 13.874 13.240 12.857 12.649 12.442 12.168 11.983 12.150 12.788 13.689 14.413 14.602 14.268 13.778 13.531 13.606 13.673 13.295 12.336 11.139 10.276 10.089 10.413 10.736 10.642 10.168 9.731 + 13.933 13.904 14.050 14.604 15.598 16.754 17.585 17.695 17.053 16.040 15.192 14.822 14.821 14.819 14.572 14.240 14.270 14.978 16.185 17.275 17.658 17.245 16.509 16.039 15.991 15.946 15.326 14.007 12.539 11.736 11.953 12.729 13.131 12.553 11.261 10.203 + 13.202 13.379 13.749 14.372 15.320 16.545 17.758 18.489 18.376 17.458 16.207 15.213 14.766 14.710 14.701 14.618 14.712 15.335 16.495 17.705 18.316 18.064 17.293 16.632 16.408 16.355 15.940 14.978 13.931 13.540 14.085 14.992 15.223 14.181 12.316 10.860 + 12.376 12.827 13.553 14.389 15.334 16.452 17.627 18.467 18.537 17.751 16.531 15.524 15.107 15.135 15.187 15.074 15.074 15.650 16.889 18.249 18.924 18.517 17.401 16.383 15.979 15.998 15.830 15.167 14.406 14.286 15.060 16.043 16.058 14.483 11.959 10.047 + 12.206 12.718 13.404 13.967 14.479 15.294 16.587 18.005 18.833 18.570 17.385 16.005 15.131 14.931 15.063 15.160 15.260 15.719 16.724 17.934 18.662 18.457 17.511 16.464 15.807 15.472 15.050 14.394 13.944 14.351 15.695 17.111 17.311 15.679 12.973 10.914 + 12.303 12.568 12.929 13.293 13.816 14.773 16.180 17.586 18.296 17.908 16.668 15.310 14.504 14.393 14.635 14.859 15.059 15.536 16.468 17.580 18.282 18.155 17.320 16.303 15.542 15.050 14.560 14.005 13.762 14.325 15.671 16.986 17.143 15.648 13.210 11.366 + 11.659 11.978 12.443 12.940 13.576 14.574 15.934 17.248 17.900 17.537 16.391 15.135 14.371 14.223 14.383 14.522 14.659 15.098 16.022 17.177 17.981 17.987 17.241 16.202 15.311 14.659 14.085 13.560 13.399 13.993 15.272 16.480 16.617 15.258 13.058 11.399 + 12.037 12.225 12.560 13.065 13.862 15.030 16.374 17.389 17.546 16.707 15.299 14.051 13.464 13.496 13.714 13.776 13.773 14.098 14.993 16.205 17.119 17.238 16.568 15.547 14.616 13.883 13.203 12.544 12.216 12.627 13.772 14.999 15.376 14.450 12.725 11.377 + 12.166 12.293 12.563 13.043 13.830 14.907 15.993 16.591 16.284 15.068 13.429 12.027 11.239 10.954 10.798 10.574 10.487 10.939 12.068 13.516 14.659 15.089 14.906 14.515 14.169 13.723 12.878 11.674 10.687 10.635 11.699 13.198 14.018 13.503 12.046 10.817 + 9.519 9.725 10.220 11.067 12.176 13.244 13.854 13.686 12.731 11.330 9.993 9.104 8.712 8.578 8.428 8.205 8.120 8.450 9.288 10.437 11.551 12.376 12.855 13.042 12.935 12.441 11.537 10.463 9.705 9.697 10.459 11.500 12.129 11.963 11.231 10.587 + 8.540 7.846 6.904 6.367 6.729 8.004 9.661 10.888 11.073 10.173 8.732 7.499 6.931 6.958 7.150 7.153 6.992 7.015 7.542 8.542 9.624 10.317 10.395 9.966 9.312 8.653 8.074 7.625 7.418 7.577 8.062 8.585 8.751 8.372 7.657 7.096 + 5.468 5.587 5.823 6.264 7.089 8.371 9.825 10.818 10.755 9.559 7.812 6.349 5.633 5.459 5.275 4.828 4.493 4.929 6.374 8.246 9.501 9.459 8.375 7.204 6.784 7.172 7.726 7.813 7.429 7.135 7.398 8.022 8.270 7.590 6.231 5.132 + 5.997 5.636 5.259 5.334 6.134 7.502 8.875 9.589 9.288 8.159 6.794 5.771 5.280 5.084 4.848 4.531 4.479 5.115 6.489 8.107 9.219 9.350 8.621 7.608 6.873 6.587 6.549 6.517 6.502 6.711 7.234 7.815 7.988 7.489 6.561 5.832 + 4.990 5.234 5.623 6.073 6.594 7.219 7.851 8.205 7.972 7.095 5.902 4.927 4.554 4.769 5.254 5.719 6.150 6.751 7.635 8.598 9.217 9.222 8.786 8.443 8.684 9.567 10.683 11.486 11.693 11.409 10.920 10.394 9.796 9.054 8.276 7.756 + 5.389 5.504 5.620 5.705 5.951 6.622 7.710 8.752 9.071 8.310 6.798 5.400 4.912 5.498 6.637 7.602 8.030 8.099 8.217 8.563 8.938 9.037 8.836 8.695 9.051 10.007 11.200 12.067 12.271 11.891 11.260 10.646 10.092 9.528 8.975 8.610 + 4.553 4.626 4.802 5.175 5.871 6.924 8.127 9.029 9.152 8.323 6.842 5.341 4.414 4.283 4.751 5.435 6.060 6.567 7.006 7.362 7.519 7.387 7.029 6.645 6.417 6.365 6.372 6.343 6.331 6.476 6.814 7.155 7.197 6.786 6.107 5.590 + 4.789 4.511 4.143 4.014 4.459 5.611 7.233 8.743 9.481 9.094 7.770 6.137 4.897 4.442 4.707 5.335 5.966 6.434 6.749 6.965 7.071 7.014 6.784 6.455 6.142 5.933 5.866 5.969 6.281 6.795 7.372 7.743 7.647 7.046 6.218 5.628 + 4.554 4.685 4.915 5.271 5.871 6.806 7.938 8.852 9.070 8.393 7.093 5.748 4.860 4.569 4.694 5.027 5.550 6.363 7.418 8.362 8.715 8.251 7.218 6.183 5.603 5.520 5.658 5.786 5.980 6.489 7.350 8.154 8.287 7.460 6.074 5.017 + 7.661 7.813 8.148 8.636 9.131 9.431 9.438 9.270 9.177 9.340 9.694 9.974 9.955 9.682 9.485 9.723 10.483 11.457 12.142 12.192 11.667 10.980 10.607 10.780 11.388 12.125 12.734 13.147 13.452 13.740 13.991 14.083 13.907 13.482 12.982 12.647 + 7.722 7.667 7.844 8.507 9.554 10.531 10.981 10.824 10.417 10.235 10.462 10.868 11.068 10.917 10.665 10.732 11.310 12.160 12.792 12.852 12.396 11.821 11.544 11.714 12.183 12.700 13.131 13.505 13.894 14.273 14.506 14.451 14.085 13.531 13.000 12.680 + 5.608 5.584 5.662 5.969 6.495 7.075 7.509 7.716 7.776 7.831 7.944 8.044 8.014 7.833 7.636 7.629 7.917 8.400 8.827 8.975 8.803 8.477 8.248 8.290 8.621 9.141 9.738 10.356 10.980 11.569 12.015 12.181 11.992 11.516 10.964 10.599 + 7.347 7.841 8.558 9.151 9.426 9.440 9.387 9.411 9.491 9.494 9.320 9.004 8.690 8.516 8.514 8.607 8.689 8.703 8.654 8.569 8.466 8.354 8.274 8.313 8.570 9.105 9.900 10.863 11.860 12.736 13.331 13.515 13.247 12.638 11.949 11.497 + 9.306 10.259 11.583 12.540 12.738 12.310 11.683 11.185 10.846 10.522 10.137 9.791 9.629 9.644 9.658 9.505 9.234 9.106 9.351 9.925 10.502 10.738 10.572 10.286 10.273 10.717 11.461 12.168 12.596 12.744 12.764 12.772 12.756 12.645 12.451 12.293 + 11.826 12.573 13.633 14.470 14.798 14.669 14.263 13.660 12.826 11.804 10.847 10.275 10.191 10.341 10.332 10.034 9.772 10.070 11.150 12.633 13.763 13.978 13.323 12.360 11.671 11.449 11.526 11.745 12.218 13.154 14.418 15.334 15.071 13.366 10.951 9.201 + 12.382 12.807 13.570 14.497 15.332 15.793 15.664 14.921 13.788 12.663 11.907 11.619 11.582 11.453 11.065 10.617 10.555 11.204 12.453 13.760 14.496 14.374 13.619 12.745 12.162 11.944 11.934 12.022 12.299 12.900 13.708 14.254 13.995 12.786 11.135 9.955 + 12.697 12.878 13.318 14.059 14.975 15.751 16.027 15.612 14.635 13.477 12.534 11.964 11.629 11.276 10.815 10.455 10.557 11.310 12.503 13.601 14.100 13.869 13.217 12.625 12.386 12.448 12.586 12.684 12.864 13.298 13.911 14.288 13.936 12.730 11.145 10.025 + 12.753 12.733 12.896 13.483 14.523 15.702 16.464 16.342 15.310 13.861 12.700 12.250 12.356 12.477 12.219 11.744 11.666 12.467 13.956 15.290 15.600 14.713 13.307 12.352 12.306 12.801 13.094 12.852 12.504 12.773 13.839 14.931 14.854 13.055 10.292 8.231 + 12.592 12.603 12.706 13.064 13.830 14.963 16.094 16.652 16.246 15.014 13.588 12.646 12.404 12.523 12.536 12.384 12.517 13.404 14.910 16.194 16.317 15.074 13.258 12.044 12.020 12.733 13.199 12.902 12.310 12.391 13.539 14.976 15.284 13.677 10.876 8.708 + 12.574 12.433 12.379 12.727 13.648 14.978 16.209 16.749 16.301 15.095 13.743 12.813 12.458 12.427 12.434 12.518 13.009 14.104 15.459 16.273 15.889 14.404 12.703 11.796 12.007 12.741 13.078 12.667 12.079 12.242 13.448 14.884 15.198 13.684 11.053 9.024 + 12.757 12.520 12.371 12.725 13.755 15.196 16.434 16.863 16.275 14.999 13.667 12.780 12.431 12.395 12.475 12.743 13.398 14.383 15.176 15.072 13.807 11.958 10.656 10.741 12.025 13.378 13.642 12.644 11.393 11.216 12.535 14.369 15.068 13.727 11.060 8.942 + 12.511 12.102 11.706 11.820 12.605 13.750 14.703 15.056 14.767 14.084 13.286 12.520 11.851 11.424 11.488 12.192 13.326 14.278 14.367 13.351 11.707 10.390 10.196 11.170 12.544 13.282 12.849 11.619 10.590 10.616 11.739 13.135 13.744 13.079 11.617 10.448 + 9.919 9.954 10.095 10.428 10.991 11.749 12.598 13.386 13.921 14.002 13.511 12.536 11.441 10.759 10.908 11.892 13.202 14.062 13.889 12.690 11.082 9.914 9.713 10.365 11.228 11.620 11.300 10.610 10.187 10.453 11.289 12.107 12.282 11.616 10.505 9.671 + 9.187 8.854 8.402 8.112 8.158 8.528 9.082 9.644 10.044 10.126 9.778 9.038 8.172 7.617 7.740 8.563 9.684 10.502 10.606 10.048 9.279 8.811 8.876 9.340 9.913 10.429 10.956 11.667 12.617 13.653 14.525 15.072 15.321 15.413 15.465 15.503 + 8.999 8.733 8.361 8.071 7.940 7.914 7.909 7.920 8.014 8.228 8.483 8.625 8.574 8.420 8.372 8.575 8.969 9.315 9.395 9.189 8.891 8.761 8.937 9.387 10.006 10.743 11.624 12.657 13.745 14.717 15.463 16.033 16.593 17.249 17.916 18.353 + 8.533 8.090 7.554 7.318 7.484 7.816 7.999 7.950 7.867 7.988 8.301 8.507 8.303 7.699 7.081 6.912 7.335 8.034 8.484 8.379 7.884 7.501 7.679 8.495 9.654 10.761 11.618 12.313 13.063 14.004 15.076 16.096 16.891 17.398 17.660 17.762 + 6.927 7.087 7.480 8.097 8.733 9.059 8.873 8.303 7.744 7.559 7.786 8.113 8.157 7.815 7.366 7.236 7.625 8.317 8.848 8.887 8.509 8.128 8.172 8.758 9.642 10.466 11.071 11.618 12.430 13.686 15.227 16.629 17.475 17.633 17.341 17.031 + 7.131 7.529 8.009 8.240 8.179 8.080 8.205 8.532 8.752 8.559 7.952 7.257 6.841 6.819 7.019 7.214 7.378 7.673 8.220 8.884 9.345 9.392 9.156 9.024 9.311 9.990 10.765 11.402 11.983 12.820 14.084 15.537 16.653 17.043 16.809 16.459 + 6.375 6.135 5.967 6.207 6.883 7.648 8.027 7.786 7.113 6.465 6.228 6.456 6.883 7.185 7.225 7.128 7.124 7.342 7.721 8.086 8.298 8.348 8.328 8.348 8.471 8.723 9.130 9.735 10.553 11.531 12.531 13.384 13.972 14.278 14.379 14.388 + 3.332 4.347 6.000 7.702 8.898 9.285 8.909 8.108 7.325 6.890 6.873 7.080 7.203 7.041 6.642 6.272 6.216 6.552 7.068 7.412 7.354 6.975 6.609 6.592 7.007 7.642 8.189 8.515 8.763 9.198 9.935 10.795 11.430 11.609 11.413 11.170 + 3.828 5.349 7.417 8.811 8.929 8.111 7.224 6.923 7.210 7.598 7.636 7.302 6.937 6.876 7.148 7.500 7.671 7.610 7.462 7.375 7.366 7.363 7.345 7.403 7.644 8.077 8.599 9.123 9.669 10.314 11.008 11.483 11.406 10.682 9.637 8.876 + 3.985 5.757 8.132 9.670 9.699 8.689 7.707 7.493 7.956 8.435 8.392 7.876 7.391 7.368 7.775 8.214 8.335 8.153 7.971 8.045 8.340 8.610 8.696 8.715 8.962 9.637 10.658 11.741 12.616 13.175 13.433 13.395 13.022 12.341 11.564 11.039 + 7.009 7.605 8.409 8.935 8.937 8.556 8.162 8.043 8.191 8.349 8.250 7.847 7.352 7.066 7.155 7.547 8.022 8.390 8.625 8.856 9.247 9.874 10.688 11.569 12.419 13.210 13.966 14.705 15.381 15.880 16.065 15.848 15.255 14.447 13.680 13.214 + 8.242 8.984 10.001 10.728 10.939 10.847 10.838 11.092 11.443 11.570 11.329 10.881 10.531 10.446 10.534 10.580 10.493 10.405 10.534 10.968 11.584 12.179 12.679 13.199 13.910 14.836 15.797 16.540 16.933 17.029 16.961 16.791 16.478 15.994 15.450 15.080 + 8.272 9.014 10.147 11.200 11.863 12.113 12.131 12.109 12.125 12.156 12.158 12.117 12.031 11.883 11.665 11.431 11.307 11.415 11.752 12.175 12.514 12.739 13.016 13.571 14.473 15.515 16.346 16.719 16.668 16.442 16.257 16.118 15.850 15.333 14.686 14.225 + 12.701 12.748 12.953 13.363 13.811 13.973 13.611 12.790 11.855 11.164 10.812 10.605 10.303 9.901 9.681 9.965 10.778 11.746 12.341 12.294 11.822 11.475 11.715 12.562 13.578 14.199 14.136 13.549 12.881 12.516 12.518 12.645 12.574 12.174 11.603 11.188 + 13.028 13.363 13.980 14.705 15.220 15.205 14.556 13.503 12.481 11.823 11.539 11.361 11.046 10.647 10.503 10.937 11.928 13.051 13.763 13.804 13.363 12.874 12.614 12.469 12.065 11.163 9.972 9.085 9.073 10.013 11.346 12.172 11.823 10.309 8.361 7.019 + 13.359 13.438 13.706 14.199 14.707 14.849 14.359 13.334 12.206 11.426 11.124 11.060 10.895 10.556 10.341 10.677 11.711 13.117 14.279 14.697 14.298 13.400 12.403 11.507 10.679 9.886 9.310 9.321 10.171 11.658 13.066 13.495 12.403 10.018 7.311 5.529 + 13.155 13.071 13.168 13.617 14.175 14.278 13.520 12.067 10.595 9.763 9.693 9.938 9.965 9.697 9.598 10.210 11.574 13.091 13.959 13.809 12.974 12.164 11.854 11.941 11.937 11.495 10.763 10.265 10.424 11.158 11.895 11.955 11.021 9.337 7.568 6.451 + 11.403 11.360 11.511 11.978 12.458 12.359 11.312 9.576 7.915 7.003 6.902 7.088 7.018 6.691 6.663 7.494 9.141 10.886 11.882 11.821 11.130 10.528 10.387 10.468 10.250 9.509 8.570 8.035 8.242 8.961 9.576 9.562 8.833 7.721 6.693 6.099 + 10.324 9.662 8.809 8.241 7.993 7.694 7.039 6.184 5.622 5.641 5.947 5.879 5.090 4.002 3.550 4.361 6.123 7.760 8.303 7.688 6.761 6.488 7.115 8.012 8.330 7.805 6.962 6.585 6.975 7.715 8.111 7.830 7.141 6.564 6.364 6.393 + 10.131 10.200 10.020 9.244 7.832 6.181 4.901 4.417 4.661 5.125 5.229 4.750 3.977 3.490 3.715 4.613 5.730 6.550 6.871 6.898 7.012 7.416 7.973 8.345 8.307 7.936 7.539 7.388 7.503 7.681 7.709 7.562 7.404 7.406 7.573 7.739 + 9.835 9.662 9.343 8.912 8.410 7.890 7.433 7.119 6.971 6.907 6.773 6.467 6.054 5.775 5.896 6.499 7.374 8.125 8.426 8.255 7.905 7.783 8.111 8.784 9.454 9.783 9.661 9.247 8.817 8.555 8.443 8.317 8.016 7.519 6.979 6.626 + 11.902 11.929 12.122 12.571 13.138 13.474 13.270 12.514 11.545 10.817 10.565 10.658 10.765 10.694 10.601 10.872 11.752 13.059 14.230 14.708 14.360 13.585 13.004 12.977 13.348 13.629 13.462 12.957 12.603 12.811 13.469 13.922 13.443 11.851 9.776 8.318 + 12.843 12.492 12.312 12.835 14.051 15.322 15.848 15.295 14.036 12.816 12.157 12.020 11.993 11.789 11.562 11.763 12.672 14.052 15.260 15.720 15.354 14.593 13.979 13.717 13.560 13.115 12.286 11.450 11.190 11.810 13.006 14.007 14.083 13.073 11.540 10.423 + 12.906 12.458 12.174 12.714 14.138 15.758 16.607 16.162 14.721 13.138 12.158 11.925 12.030 12.019 11.862 11.964 12.732 14.098 15.458 16.109 15.797 14.910 14.121 13.806 13.732 13.324 12.267 10.923 10.147 10.608 12.159 13.810 14.397 13.453 11.606 10.165 + 12.889 12.565 12.426 13.020 14.404 15.986 16.905 16.639 15.374 13.837 12.750 12.355 12.371 12.376 12.250 12.277 12.840 13.986 15.283 16.102 16.108 15.502 14.815 14.421 14.217 13.763 12.781 11.552 10.811 11.158 12.481 13.887 14.303 13.292 11.454 10.037 + 13.136 12.793 12.617 13.154 14.450 15.916 16.719 16.388 15.142 13.687 12.681 12.304 12.264 12.182 11.977 11.932 12.397 13.430 14.687 15.656 16.024 15.848 15.422 14.976 14.501 13.854 13.014 12.247 11.969 12.407 13.328 14.110 14.139 13.255 11.923 10.950 + 13.142 12.824 12.669 13.178 14.359 15.630 16.225 15.766 14.523 13.164 12.247 11.865 11.732 11.547 11.301 11.267 11.722 12.686 13.892 14.972 15.669 15.894 15.653 14.973 13.940 12.791 11.910 11.666 12.163 13.114 13.955 14.148 13.479 12.174 10.778 9.889 + 13.023 12.753 12.650 13.158 14.257 15.384 15.820 15.234 13.922 12.557 11.681 11.371 11.324 11.225 11.057 11.083 11.568 12.503 13.599 14.506 15.045 15.249 15.206 14.904 14.253 13.267 12.211 11.543 11.630 12.447 13.508 14.116 13.784 12.554 11.011 9.958 + 12.706 12.569 12.621 13.173 14.155 15.069 15.315 14.645 13.351 12.049 11.234 10.983 11.009 10.985 10.840 10.785 11.094 11.854 12.900 13.947 14.771 15.268 15.376 15.004 14.089 12.758 11.427 10.674 10.910 12.049 13.453 14.241 13.801 12.199 10.191 8.820 + 12.369 12.460 12.765 13.358 14.094 14.617 14.569 13.849 12.707 11.589 10.861 10.596 10.607 10.644 10.612 10.630 10.917 11.622 12.707 13.960 15.073 15.736 15.705 14.879 13.382 11.616 10.182 9.653 10.269 11.741 13.324 14.165 13.755 12.234 10.352 9.077 + 12.292 12.822 13.623 14.322 14.613 14.377 13.692 12.759 11.802 11.011 10.496 10.267 10.254 10.357 10.540 10.863 11.437 12.306 13.348 14.296 14.869 14.902 14.391 13.421 12.105 10.616 9.285 8.607 9.026 10.579 12.674 14.276 14.483 13.149 11.071 9.547 + 12.400 13.193 14.256 14.917 14.805 14.045 13.077 12.292 11.787 11.421 11.061 10.774 10.776 11.197 11.894 12.489 12.622 12.232 11.615 11.227 11.350 11.877 12.348 12.234 11.286 9.732 8.212 7.461 7.905 9.392 11.219 12.473 12.525 11.397 9.774 8.620 + 12.537 12.927 13.531 14.049 14.168 13.720 12.803 11.773 11.068 10.959 11.379 11.970 12.306 12.155 11.576 10.825 10.149 9.657 9.340 9.186 9.240 9.530 9.929 10.117 9.744 8.724 7.417 6.521 6.673 7.989 9.901 11.428 11.757 10.770 9.143 7.940 + 12.058 12.405 12.967 13.490 13.669 13.312 12.503 11.613 11.097 11.182 11.681 12.107 12.003 11.258 10.149 9.107 8.408 8.049 7.881 7.836 8.005 8.491 9.170 9.642 9.460 8.508 7.201 6.317 6.516 7.873 9.774 11.247 11.548 10.617 9.113 8.010 + 11.872 12.405 13.178 13.762 13.819 13.300 12.470 11.759 11.488 11.665 11.984 12.035 11.579 10.686 9.655 8.787 8.215 7.903 7.790 7.904 8.320 8.993 9.642 9.836 9.283 8.110 6.890 6.360 6.962 8.538 10.367 11.560 11.560 10.452 8.917 7.843 + 11.660 12.322 13.325 14.173 14.443 14.014 13.153 12.360 12.054 12.288 12.711 12.811 12.275 11.192 9.956 8.974 8.420 8.227 8.269 8.522 9.035 9.741 10.333 10.385 9.674 8.444 7.361 7.129 8.033 9.716 11.368 12.190 11.827 10.528 8.985 7.968 + 11.917 12.425 13.302 14.258 14.918 14.980 14.417 13.543 12.848 12.689 13.037 13.491 13.548 12.933 11.748 10.381 9.251 8.623 8.561 8.991 9.745 10.550 11.032 10.847 9.896 8.497 7.320 7.052 7.983 9.776 11.599 12.560 12.188 10.695 8.860 7.627 + 12.801 12.951 13.368 14.101 14.952 15.513 15.431 14.690 13.683 12.966 12.875 13.299 13.764 13.765 13.100 11.970 10.827 10.094 9.964 10.361 11.030 11.645 11.902 11.610 10.774 9.662 8.753 8.538 9.243 10.644 12.110 12.908 12.599 11.310 9.695 8.597 + 13.001 12.747 12.663 13.203 14.389 15.697 16.393 16.061 14.926 13.703 13.103 13.364 14.127 14.721 14.611 13.710 12.373 11.157 10.511 10.587 11.207 11.972 12.432 12.275 11.472 10.318 9.323 8.967 9.440 10.517 11.648 12.244 11.986 11.000 9.790 8.976 + 12.468 12.322 12.361 12.951 14.134 15.507 16.439 16.479 15.662 14.493 13.641 13.534 14.128 14.965 15.453 15.203 14.226 12.916 11.830 11.388 11.649 12.279 12.744 12.622 11.857 10.795 9.968 9.768 10.219 10.990 11.609 11.744 11.349 10.638 9.928 9.498 + 12.608 12.341 12.165 12.534 13.644 15.231 16.656 17.253 16.730 15.373 13.922 13.160 13.465 14.567 15.707 16.084 15.346 13.816 12.295 11.558 11.869 12.828 13.649 13.685 12.837 11.569 10.566 10.265 10.613 11.177 11.492 11.358 10.898 10.383 10.014 9.842 + 12.487 12.337 12.264 12.573 13.442 14.752 16.077 16.858 16.700 15.631 14.166 13.080 12.984 13.937 15.360 16.341 16.199 14.937 13.268 12.162 12.204 13.208 14.357 14.780 14.136 12.807 11.565 11.008 11.179 11.636 11.844 11.568 10.957 10.336 9.929 9.757 + 12.072 11.889 11.797 12.140 13.066 14.401 15.731 16.611 16.775 16.234 15.259 14.286 13.751 13.897 14.621 15.469 15.861 15.445 14.372 13.250 12.758 13.172 14.142 14.921 14.876 13.927 12.581 11.554 11.277 11.642 12.140 12.237 11.706 10.714 9.680 9.033 + 12.242 12.054 11.963 12.309 13.209 14.449 15.618 16.333 16.413 15.899 15.002 14.041 13.388 13.349 13.987 14.987 15.747 15.714 14.785 13.448 12.501 12.515 13.416 14.531 15.067 14.680 13.696 12.834 12.662 13.179 13.826 13.886 12.962 11.237 9.380 8.188 + 12.293 11.966 11.724 12.042 13.054 14.426 15.591 16.115 15.916 15.207 14.307 13.497 13.015 13.051 13.645 14.555 15.255 15.214 14.293 12.937 11.946 11.928 12.836 13.983 14.534 14.115 13.068 12.163 12.007 12.605 13.377 13.576 12.794 11.210 9.475 8.357 + 12.006 11.544 11.197 11.610 12.924 14.623 15.903 16.228 15.614 14.489 13.343 12.502 12.146 12.390 13.230 14.373 15.207 15.104 13.905 12.183 10.955 10.976 12.163 13.615 14.276 13.717 12.439 11.453 11.500 12.501 13.635 13.931 12.907 10.848 8.620 7.196 + 11.466 11.277 11.315 11.986 13.234 14.480 15.028 14.561 13.334 11.934 10.886 10.431 10.591 11.307 12.433 13.607 14.256 13.885 12.523 10.881 9.981 10.436 11.944 13.448 13.907 13.074 11.683 10.875 11.332 12.773 14.166 14.435 13.147 10.729 8.190 6.593 + 10.880 11.109 11.550 12.106 12.567 12.691 12.354 11.643 10.803 10.083 9.623 9.466 9.640 10.165 10.953 11.702 11.971 11.471 10.358 9.247 8.843 9.427 10.601 11.546 11.615 10.824 9.842 9.488 10.121 11.379 12.439 12.567 11.554 9.788 7.999 6.896 + 11.287 11.464 11.860 12.437 12.978 13.170 12.821 12.026 11.115 10.419 10.075 10.021 10.172 10.544 11.187 11.983 12.559 12.480 11.615 10.354 9.427 9.400 10.238 11.308 11.850 11.555 10.803 10.356 10.762 11.909 13.064 13.348 12.307 10.208 7.912 6.432 + 11.868 11.749 11.829 12.389 13.311 14.086 14.199 13.538 12.457 11.463 10.846 10.589 10.585 10.869 11.563 12.585 13.473 13.603 12.703 11.213 10.082 10.097 11.265 12.773 13.605 13.319 12.356 11.657 11.894 12.952 14.019 14.168 12.985 10.808 8.516 7.070 + 12.078 11.806 11.747 12.371 13.613 14.828 15.275 14.688 13.437 12.169 11.318 10.925 10.860 11.126 11.857 13.017 14.142 14.527 13.775 12.241 10.905 10.676 11.679 13.142 13.991 13.696 12.666 11.888 12.123 13.301 14.568 14.895 13.769 11.506 9.055 7.488 + 12.214 11.822 11.635 12.258 13.667 15.141 15.805 15.305 14.006 12.614 11.620 11.093 10.917 11.124 11.892 13.195 14.523 15.085 14.417 12.872 11.478 11.186 12.126 13.497 14.228 13.838 12.796 12.086 12.385 13.525 14.640 14.817 13.710 11.706 9.646 8.367 + 12.141 11.959 12.015 12.708 13.961 15.189 15.723 15.300 14.200 12.943 11.899 11.174 10.801 10.937 11.769 13.185 14.608 15.270 14.789 13.550 12.487 12.376 13.214 14.238 14.560 13.900 12.791 12.100 12.306 13.137 13.818 13.679 12.592 10.976 9.467 8.583 + 12.296 12.346 12.610 13.226 14.111 14.930 15.281 14.946 14.016 12.822 11.755 11.113 11.046 11.567 12.548 13.722 14.724 15.244 15.195 14.759 14.254 13.884 13.593 13.140 12.366 11.406 10.662 10.531 11.093 12.007 12.694 12.680 11.860 10.526 9.200 8.387 + 12.193 12.384 12.770 13.341 14.026 14.655 14.964 14.720 13.892 12.757 11.794 11.429 11.779 12.614 13.562 14.371 14.999 15.470 15.675 15.347 14.284 12.617 10.844 9.534 8.942 8.866 8.893 8.803 8.753 9.051 9.724 10.327 10.228 9.167 7.592 6.431 + 11.871 12.139 12.649 13.329 14.038 14.551 14.618 14.090 13.066 11.919 11.134 11.040 11.619 12.550 13.461 14.160 14.653 14.946 14.863 14.112 12.581 10.590 8.808 7.824 7.714 7.996 8.062 7.720 7.353 7.527 8.375 9.335 9.542 8.568 6.887 5.595 + 11.496 11.742 12.281 13.090 13.962 14.536 14.486 13.744 12.594 11.533 10.995 11.122 11.748 12.567 13.338 13.953 14.345 14.362 13.785 12.506 10.730 8.969 7.774 7.367 7.485 7.578 7.255 6.607 6.140 6.335 7.188 8.132 8.429 7.760 6.519 5.556 + 11.572 11.765 12.251 13.054 13.956 14.533 14.412 13.562 12.384 11.482 11.283 11.777 12.577 13.228 13.509 13.496 13.353 13.079 12.454 11.264 9.587 7.877 6.714 6.399 6.721 7.108 7.065 6.555 5.996 5.879 6.318 6.916 7.070 6.484 5.448 4.648 + 11.697 11.961 12.531 13.370 14.242 14.767 14.642 13.889 12.912 12.272 12.322 12.962 13.716 14.084 13.896 13.385 12.933 12.693 12.433 11.740 10.422 8.759 7.354 6.692 6.754 7.046 7.005 6.471 5.800 5.535 5.895 6.552 6.887 6.523 5.667 4.963 + 11.667 11.856 12.339 13.147 14.057 14.627 14.481 13.625 12.531 11.872 12.052 12.902 13.786 14.061 13.544 12.626 11.922 11.753 11.872 11.683 10.756 9.220 7.691 6.789 6.659 6.897 6.942 6.583 6.124 6.072 6.618 7.398 7.758 7.318 6.335 5.536 + 10.119 10.431 11.131 12.199 13.356 14.099 13.994 13.024 11.714 10.864 11.019 12.051 13.212 13.649 13.037 11.828 10.886 10.785 11.326 11.691 11.113 9.527 7.654 6.435 6.298 6.867 7.344 7.214 6.652 6.283 6.556 7.300 7.877 7.778 7.103 6.477 + 10.784 11.246 12.084 13.117 14.079 14.649 14.573 13.832 12.769 11.985 11.999 12.853 13.989 14.582 14.139 12.911 11.728 11.347 11.822 12.436 12.291 11.060 9.257 7.788 7.188 7.223 7.207 6.729 6.077 5.967 6.814 8.244 9.342 9.423 8.645 7.864 + 11.191 11.599 12.282 13.052 13.736 14.177 14.214 13.748 12.892 12.049 11.742 12.244 13.278 14.114 14.074 13.078 11.755 10.975 11.143 11.854 12.214 11.569 10.026 8.336 7.270 7.042 7.277 7.471 7.480 7.575 8.057 8.858 9.545 9.715 9.396 9.024 + 9.816 10.483 11.506 12.509 13.269 13.729 13.827 13.430 12.518 11.423 10.797 11.177 12.457 13.804 14.210 13.294 11.668 10.478 10.470 11.364 12.095 11.715 10.178 8.332 7.168 7.023 7.431 7.673 7.474 7.172 7.279 7.910 8.670 9.055 8.954 8.708 + 10.240 11.019 12.165 13.209 13.957 14.472 14.757 14.581 13.705 12.321 11.179 11.115 12.315 13.996 14.929 14.410 12.871 11.527 11.339 12.204 13.068 12.878 11.480 9.687 8.501 8.247 8.416 8.285 7.670 7.067 7.094 7.831 8.721 9.119 8.905 8.542 + 11.510 11.960 12.676 13.437 14.118 14.661 14.941 14.731 13.881 12.578 11.401 11.001 11.622 12.846 13.841 13.961 13.225 12.276 11.839 12.147 12.785 13.065 12.585 11.510 10.363 9.590 9.263 9.145 8.989 8.755 8.575 8.568 8.702 8.849 8.918 8.925 + 11.769 12.040 12.577 13.319 14.105 14.683 14.796 14.311 13.328 12.167 11.255 10.926 11.270 12.090 13.001 13.614 13.711 13.320 12.672 12.075 11.763 11.790 12.018 12.191 12.069 11.563 10.796 10.046 9.596 9.560 9.809 10.044 9.989 9.574 8.992 8.576 + 11.862 11.817 12.047 12.820 13.976 14.932 15.088 14.286 12.920 11.629 10.858 10.677 10.927 11.478 12.286 13.229 13.970 14.087 13.424 12.334 11.513 11.491 12.191 12.963 13.087 12.360 11.253 10.536 10.671 11.473 12.277 12.426 11.698 10.379 9.036 8.211 + 11.953 11.917 12.152 12.908 14.015 14.911 15.049 14.321 13.124 12.018 11.328 11.035 11.015 11.285 11.974 13.032 14.029 14.350 13.689 12.403 11.345 11.233 12.074 13.144 13.567 13.020 11.984 11.328 11.612 12.658 13.700 13.952 13.118 11.521 9.859 8.824 + 12.381 12.201 12.148 12.493 13.136 13.637 13.591 12.984 12.175 11.542 11.170 10.896 10.642 10.633 11.208 12.368 13.544 13.911 13.073 11.504 10.288 10.301 11.503 12.958 13.582 13.000 11.802 11.018 11.275 12.352 13.413 13.673 12.909 11.504 10.105 9.263 + 10.984 11.261 11.745 12.257 12.541 12.394 11.832 11.116 10.569 10.312 10.177 9.893 9.407 9.019 9.165 10.000 11.155 11.920 11.764 10.754 9.538 8.869 9.073 9.873 10.691 11.145 11.317 11.602 12.303 13.333 14.256 14.605 14.199 13.244 12.200 11.536 + 8.939 9.256 9.783 10.299 10.506 10.190 9.392 8.434 7.730 7.498 7.605 7.713 7.605 7.418 7.543 8.264 9.430 10.482 10.828 10.301 9.299 8.507 8.410 8.986 9.805 10.443 10.827 11.270 12.159 13.578 15.160 16.294 16.520 15.847 14.770 13.986 + 8.545 8.803 9.274 9.797 10.072 9.815 8.989 7.906 7.052 6.731 6.842 6.993 6.876 6.570 6.490 6.993 8.000 8.973 9.314 8.850 8.003 7.485 7.772 8.771 9.960 10.839 11.325 11.772 12.628 14.022 15.608 16.783 17.090 16.528 15.563 14.851 + 8.028 8.285 8.740 9.255 9.611 9.598 9.140 8.369 7.574 7.031 6.841 6.900 7.019 7.099 7.204 7.468 7.932 8.440 8.727 8.627 8.235 7.881 7.920 8.490 9.443 10.480 11.404 12.259 13.249 14.496 15.843 16.893 17.260 16.875 16.087 15.477 + 9.526 9.561 9.569 9.489 9.327 9.171 9.132 9.241 9.397 9.409 9.125 8.568 7.966 7.652 7.862 8.568 9.449 10.056 10.065 9.481 8.644 8.046 8.046 8.695 9.750 10.885 11.910 12.870 13.922 15.118 16.265 16.987 16.980 16.265 15.249 14.526 + 9.639 9.110 8.621 8.741 9.449 10.115 10.080 9.270 8.264 7.758 7.927 8.319 8.355 7.946 7.610 7.966 9.075 10.285 10.730 10.066 8.775 7.790 7.785 8.741 10.119 11.399 12.462 13.514 14.709 15.864 16.557 16.464 15.626 14.420 13.325 12.695 + 10.397 9.641 8.810 8.633 9.222 9.979 10.161 9.537 8.549 7.838 7.636 7.622 7.348 6.799 6.494 7.002 8.325 9.758 10.394 9.856 8.609 7.605 7.578 8.574 10.056 11.390 12.253 12.659 12.722 12.465 11.868 11.037 10.244 9.751 9.607 9.634 + 10.821 10.484 10.073 9.877 9.972 10.193 10.322 10.283 10.147 9.962 9.628 8.991 8.090 7.277 7.031 7.559 8.540 9.285 9.238 8.410 7.388 6.880 7.175 7.954 8.577 8.600 8.082 7.469 7.206 7.409 7.851 8.195 8.246 8.041 7.753 7.560 + 12.244 12.234 12.053 11.525 10.639 9.623 8.829 8.510 8.632 8.885 8.886 8.460 7.785 7.281 7.327 7.982 8.935 9.696 9.906 9.539 8.865 8.235 7.852 7.696 7.615 7.480 7.276 7.077 6.963 6.968 7.091 7.330 7.689 8.134 8.562 8.830 + 12.811 12.915 12.803 12.175 11.103 10.046 9.490 9.541 9.837 9.870 9.420 8.727 8.266 8.338 8.838 9.387 9.655 9.591 9.380 9.215 9.133 9.037 8.837 8.542 8.221 7.892 7.515 7.085 6.721 6.628 6.927 7.521 8.132 8.505 8.594 8.553 + 13.415 13.268 12.807 11.948 10.910 10.130 9.917 10.148 10.330 10.007 9.174 8.319 8.035 8.534 9.476 10.248 10.441 10.122 9.690 9.500 9.583 9.691 9.565 9.166 8.670 8.287 8.097 8.054 8.093 8.219 8.466 8.805 9.120 9.295 9.313 9.271 + 13.716 13.547 13.130 12.439 11.613 10.912 10.518 10.376 10.237 9.877 9.323 8.850 8.772 9.173 9.840 10.433 10.752 10.857 10.963 11.208 11.513 11.647 11.410 10.789 9.948 9.109 8.430 7.984 7.793 7.860 8.148 8.550 8.912 9.119 9.166 9.144 + 13.444 13.343 12.991 12.281 11.327 10.430 9.830 9.512 9.238 8.811 8.307 8.047 8.302 9.017 9.802 10.229 10.174 9.907 9.857 10.260 10.979 11.614 11.790 11.363 10.446 9.309 8.280 7.690 7.800 8.652 9.942 11.074 11.467 10.945 9.907 9.098 + 13.265 13.033 12.625 12.114 11.543 10.917 10.248 9.586 9.033 8.694 8.622 8.781 9.067 9.347 9.514 9.520 9.404 9.284 9.328 9.664 10.276 10.942 11.300 11.027 10.056 8.682 7.459 6.936 7.361 8.542 9.946 10.976 11.275 10.883 10.180 9.661 + 13.249 12.902 12.444 12.158 12.144 12.249 12.196 11.796 11.098 10.347 9.833 9.727 10.004 10.469 10.847 10.906 10.575 10.014 9.563 9.553 10.060 10.784 11.181 10.820 9.706 8.344 7.434 7.424 8.233 9.354 10.230 10.602 10.585 10.456 10.398 10.407 + 12.912 12.658 12.462 12.661 13.291 14.007 14.318 13.929 12.954 11.818 10.993 10.745 11.040 11.616 12.118 12.240 11.859 11.119 10.413 10.180 10.596 11.371 11.853 11.453 10.102 8.391 7.229 7.255 8.417 10.036 11.284 11.691 11.337 10.644 10.024 9.691 + 13.430 13.170 12.961 13.131 13.709 14.349 14.580 14.147 13.176 12.068 11.247 10.953 11.203 11.833 12.545 12.974 12.821 12.052 11.016 10.303 10.340 11.019 11.676 11.532 10.312 8.540 7.246 7.268 8.669 10.714 12.382 13.012 12.600 11.635 10.691 10.145 + 13.512 13.280 13.125 13.349 13.921 14.458 14.526 13.972 13.004 11.996 11.234 10.854 10.920 11.463 12.364 13.232 13.516 12.912 11.718 10.757 10.771 11.745 12.777 12.718 11.128 8.746 7.024 7.065 8.806 11.110 12.654 12.846 12.054 11.085 10.483 10.275 + 13.266 13.274 13.381 13.653 14.019 14.278 14.231 13.805 13.086 12.252 11.509 11.063 11.102 11.694 12.654 13.522 13.784 13.245 12.259 11.543 11.645 12.446 13.162 12.908 11.429 9.400 8.001 8.085 9.571 11.535 12.897 13.124 12.441 11.473 10.731 10.377 + 12.905 13.021 13.278 13.658 14.036 14.223 14.068 13.548 12.774 11.925 11.195 10.777 10.841 11.437 12.373 13.198 13.424 12.870 11.877 11.144 11.213 12.008 12.793 12.688 11.362 9.362 7.795 7.573 8.791 10.710 12.288 12.855 12.412 11.447 10.522 9.995 + 12.528 12.857 13.386 13.907 14.218 14.203 13.864 13.289 12.581 11.830 11.148 10.720 10.760 11.367 12.352 13.242 13.528 13.030 12.092 11.392 11.440 12.143 12.794 12.567 11.159 9.095 7.430 7.061 8.139 10.012 11.687 12.440 12.157 11.236 10.249 9.646 + 12.422 12.889 13.608 14.250 14.532 14.338 13.745 12.942 12.110 11.365 10.798 10.539 10.748 11.480 12.532 13.443 13.737 13.269 12.396 11.771 11.860 12.537 13.107 12.799 11.371 9.369 7.798 7.456 8.415 10.022 11.373 11.887 11.555 10.778 10.025 9.594 + 12.171 12.674 13.484 14.258 14.641 14.436 13.728 12.827 12.058 11.562 11.288 11.173 11.306 11.858 12.816 13.788 14.168 13.612 12.424 11.440 11.392 12.257 13.172 13.080 11.618 9.498 8.014 8.056 9.442 11.110 11.975 11.716 10.854 10.152 9.948 10.021 + 13.127 13.348 13.690 13.978 14.018 13.707 13.099 12.386 11.774 11.360 11.124 11.038 11.165 11.613 12.361 13.127 13.476 13.135 12.282 11.489 11.313 11.815 12.437 12.389 11.287 9.521 8.049 7.739 8.760 10.485 11.933 12.393 11.780 10.544 9.313 8.577 + 13.149 13.264 13.397 13.407 13.205 12.807 12.323 11.875 11.502 11.160 10.811 10.547 10.581 11.082 11.956 12.787 13.067 12.574 11.602 10.802 10.704 11.276 11.908 11.867 10.893 9.445 8.391 8.373 9.349 10.666 11.560 11.674 11.191 10.562 10.118 9.927 + 12.378 12.140 11.842 11.691 11.753 11.902 11.926 11.677 11.172 10.571 10.094 9.937 10.202 10.840 11.613 12.147 12.114 11.465 10.540 9.893 9.910 10.486 11.042 10.933 9.955 8.562 7.581 7.640 8.729 10.221 11.320 11.565 11.028 10.139 9.344 8.906 + 9.226 9.645 10.341 11.082 11.637 11.863 11.741 11.342 10.761 10.088 9.443 9.028 9.078 9.702 10.702 11.584 11.827 11.264 10.281 9.590 9.702 10.494 11.237 11.136 9.975 8.356 7.311 7.569 9.035 10.877 12.113 12.232 11.404 10.210 9.201 8.662 + 10.004 10.047 10.197 10.490 10.866 11.192 11.353 11.317 11.095 10.680 10.067 9.370 8.892 8.992 9.799 10.996 11.954 12.163 11.652 10.988 10.800 11.205 11.654 11.379 10.099 8.368 7.228 7.428 8.837 10.546 11.552 11.441 10.545 9.532 8.859 8.583 + 10.458 10.591 10.900 11.384 11.927 12.346 12.520 12.460 12.257 11.964 11.571 11.107 10.750 10.772 11.310 12.152 12.806 12.863 12.360 11.793 11.706 12.166 12.623 12.340 11.056 9.329 8.200 8.430 9.907 11.716 12.794 12.633 11.499 10.082 8.975 8.416 + 9.683 9.837 10.284 11.101 12.124 12.998 13.427 13.373 13.027 12.588 12.111 11.585 11.128 11.028 11.526 12.506 13.467 13.870 13.603 13.101 12.947 13.283 13.581 13.067 11.470 9.426 8.119 8.400 10.107 12.154 13.322 13.076 11.786 10.276 9.177 8.664 + 11.517 10.973 10.561 10.996 12.344 13.932 14.894 14.843 14.061 13.119 12.366 11.797 11.346 11.177 11.605 12.686 13.965 14.744 14.673 14.099 13.749 14.005 14.449 14.191 12.735 10.594 9.028 9.072 10.673 12.704 13.825 13.451 12.023 10.466 9.431 8.999 + 11.666 10.937 10.337 10.790 12.431 14.452 15.760 15.816 14.921 13.784 12.877 12.201 11.602 11.178 11.294 12.166 13.502 14.642 15.113 15.041 14.967 15.217 15.471 15.010 13.479 11.406 9.925 9.873 11.066 12.420 12.846 12.099 10.855 10.001 9.852 10.027 + 13.259 12.637 12.027 12.140 13.152 14.570 15.648 15.945 15.531 14.743 13.833 12.872 11.950 11.358 11.458 12.339 13.633 14.747 15.336 15.560 15.817 16.217 16.339 15.579 13.827 11.797 10.607 10.906 12.300 13.632 13.900 13.018 11.769 11.037 11.055 11.345 + 13.584 12.746 11.806 11.633 12.533 14.035 15.286 15.683 15.216 14.307 13.397 12.679 12.155 11.853 11.900 12.391 13.216 14.097 14.803 15.320 15.769 16.147 16.183 15.536 14.178 12.607 11.588 11.601 12.435 13.313 13.462 12.659 11.306 10.041 9.250 8.929 + 13.534 12.595 11.437 10.962 11.603 13.045 14.493 15.235 15.055 14.240 13.266 12.470 11.943 11.642 11.534 11.650 12.024 12.645 13.465 14.417 15.392 16.173 16.449 15.973 14.786 13.311 12.178 11.852 12.315 13.052 13.360 12.769 11.289 9.366 7.626 6.608 + 13.270 12.464 11.452 11.004 11.526 12.800 14.170 14.982 14.947 14.216 13.180 12.206 11.493 11.076 10.901 10.902 11.048 11.374 11.981 12.958 14.240 15.507 16.249 16.038 14.846 13.162 11.770 11.289 11.794 12.762 13.403 13.121 11.833 9.958 8.170 7.095 + 13.229 12.564 11.708 11.292 11.686 12.769 14.010 14.803 14.807 14.094 13.032 12.040 11.366 11.019 10.856 10.737 10.648 10.725 11.177 12.139 13.532 15.000 16.007 16.064 15.007 13.168 11.282 10.147 10.198 11.215 12.404 12.805 11.844 9.698 7.249 5.633 + 13.339 12.703 11.849 11.328 11.458 12.152 13.008 13.583 13.630 13.171 12.419 11.649 11.081 10.804 10.745 10.703 10.489 10.110 9.865 10.200 11.369 13.127 14.724 15.294 14.413 12.432 10.317 9.077 9.157 10.214 11.382 11.826 11.198 9.766 8.195 7.192 + 13.042 12.390 11.535 11.010 11.042 11.442 11.852 12.055 12.069 11.988 11.786 11.338 10.627 9.892 9.496 9.601 9.970 10.144 9.876 9.421 9.365 10.088 11.325 12.244 12.051 10.641 8.759 7.517 7.634 8.965 10.641 11.668 11.523 10.386 8.943 7.975 + 11.715 11.074 10.249 9.811 10.031 10.726 11.447 11.824 11.780 11.469 11.070 10.644 10.171 9.682 9.322 9.245 9.464 9.814 10.082 10.188 10.230 10.337 10.459 10.322 9.628 8.354 6.907 5.960 6.039 7.164 8.782 10.075 10.434 9.805 8.703 7.883 + 11.352 10.818 10.105 9.636 9.575 9.752 9.876 9.808 9.647 9.555 9.538 9.416 9.019 8.413 7.921 7.878 8.353 9.083 9.682 9.951 9.979 9.980 10.004 9.836 9.181 7.984 6.603 5.647 5.597 6.481 7.850 9.055 9.626 9.499 8.996 8.582 + 8.017 8.595 9.312 9.632 9.329 8.644 8.066 7.931 8.162 8.342 8.068 7.280 6.323 5.692 5.686 6.222 6.944 7.515 7.847 8.106 8.504 9.065 9.548 9.599 9.009 7.903 6.716 5.978 6.031 6.863 8.124 9.329 10.102 10.342 10.227 10.058 + 7.754 7.888 8.121 8.373 8.537 8.529 8.349 8.075 7.776 7.427 6.913 6.153 5.243 4.473 4.174 4.491 5.281 6.215 7.009 7.585 8.030 8.412 8.649 8.566 8.091 7.408 6.877 6.791 7.141 7.609 7.790 7.457 6.689 5.772 5.009 4.591 + 5.805 6.555 7.650 8.507 8.684 8.129 7.196 6.421 6.184 6.472 6.900 6.966 6.401 5.352 4.307 3.803 4.116 5.139 6.479 7.693 8.490 8.795 8.698 8.356 7.933 7.575 7.392 7.415 7.566 7.669 7.525 7.020 6.189 5.217 4.364 3.867 + 6.350 6.846 7.538 8.018 8.018 7.558 6.895 6.344 6.085 6.086 6.164 6.125 5.879 5.479 5.091 4.907 5.069 5.606 6.420 7.318 8.080 8.542 8.655 8.488 8.181 7.877 7.675 7.604 7.618 7.604 7.418 6.933 6.121 5.109 4.163 3.587 + 7.356 7.733 8.284 8.695 8.697 8.208 7.388 6.553 5.994 5.803 5.843 5.862 5.694 5.369 5.088 5.069 5.410 6.053 6.850 7.640 8.285 8.659 8.662 8.290 7.705 7.209 7.086 7.410 7.954 8.303 8.104 7.271 6.024 4.733 3.726 3.191 + 6.554 7.041 7.900 8.841 9.420 9.248 8.275 6.906 5.770 5.292 5.392 5.593 5.452 4.952 4.526 4.681 5.567 6.845 7.953 8.518 8.557 8.346 8.125 7.935 7.698 7.407 7.200 7.222 7.435 7.583 7.366 6.677 5.681 4.692 3.965 3.601 + 6.405 7.447 8.836 9.657 9.372 8.151 6.694 5.728 5.535 5.847 6.121 5.979 5.452 4.906 4.733 5.072 5.764 6.518 7.134 7.587 7.944 8.215 8.301 8.085 7.573 6.961 6.535 6.480 6.742 7.050 7.075 6.626 5.749 4.686 3.753 3.213 + 6.463 7.346 8.516 9.187 8.911 7.842 6.579 5.721 5.478 5.600 5.647 5.357 4.839 4.457 4.535 5.122 5.977 6.759 7.251 7.447 7.474 7.438 7.345 7.140 6.817 6.472 6.248 6.222 6.326 6.381 6.207 5.743 5.073 4.373 3.815 3.512 + 5.642 6.504 7.786 8.834 9.124 8.540 7.415 6.311 5.657 5.508 5.573 5.502 5.185 4.837 4.795 5.223 5.968 6.701 7.178 7.399 7.520 7.631 7.641 7.391 6.881 6.367 6.191 6.467 6.931 7.106 6.678 5.749 4.756 4.116 3.925 3.957 + 7.095 7.393 7.895 8.390 8.596 8.316 7.618 6.846 6.398 6.406 6.616 6.599 6.140 5.482 5.166 5.601 6.703 7.931 8.681 8.714 8.260 7.756 7.474 7.365 7.225 6.959 6.686 6.585 6.670 6.729 6.503 5.907 5.113 4.397 3.937 3.738 + 7.595 7.444 7.285 7.253 7.335 7.381 7.273 7.058 6.915 6.964 7.110 7.102 6.780 6.285 6.017 6.338 7.250 8.331 9.014 8.981 8.387 7.723 7.457 7.724 8.292 8.775 8.908 8.669 8.209 7.692 7.185 6.673 6.137 5.608 5.172 4.924 + 7.833 7.722 7.675 7.856 8.222 8.524 8.507 8.131 7.597 7.162 6.917 6.752 6.520 6.255 6.197 6.595 7.437 8.380 8.947 8.871 8.290 7.646 7.373 7.613 8.164 8.662 8.830 8.610 8.129 7.557 7.003 6.503 6.057 5.677 5.394 5.242 + 7.235 7.801 8.705 9.550 9.936 9.667 8.905 8.085 7.630 7.629 7.774 7.630 7.034 6.280 5.913 6.277 7.219 8.180 8.621 8.399 7.808 7.275 7.021 6.982 6.994 7.017 7.145 7.419 7.663 7.572 6.985 6.093 5.336 5.058 5.227 5.481 + 7.162 8.047 9.364 10.455 10.806 10.335 9.408 8.580 8.208 8.215 8.194 7.783 7.023 6.379 6.398 7.250 8.534 9.529 9.692 9.026 8.028 7.296 7.114 7.348 7.655 7.790 7.724 7.536 7.240 6.764 6.087 5.364 4.873 4.795 5.039 5.298 + 6.062 7.474 9.485 10.986 11.264 10.396 9.108 8.207 8.017 8.211 8.162 7.515 6.527 5.904 6.252 7.578 9.225 10.305 10.293 9.328 8.038 7.063 6.663 6.686 6.837 6.952 7.047 7.147 7.141 6.817 6.087 5.128 4.308 3.909 3.914 4.048 + 5.754 7.185 9.266 10.915 11.378 10.621 9.241 8.006 7.363 7.249 7.287 7.173 6.936 6.889 7.330 8.252 9.306 10.020 10.114 9.653 8.953 8.333 7.917 7.630 7.346 7.038 6.795 6.710 6.763 6.800 6.641 6.212 5.589 4.946 4.445 4.180 + 5.303 6.381 8.083 9.717 10.684 10.744 10.076 9.123 8.305 7.810 7.583 7.489 7.493 7.698 8.202 8.924 9.569 9.800 9.484 8.810 8.156 7.814 7.784 7.813 7.636 7.206 6.732 6.492 6.592 6.874 7.029 6.816 6.215 5.414 4.686 4.262 + 5.091 6.178 7.911 9.585 10.541 10.490 9.674 8.718 8.222 8.369 8.832 9.069 8.774 8.122 7.597 7.576 8.017 8.523 8.703 8.485 8.109 7.846 7.723 7.530 7.094 6.526 6.174 6.319 6.890 7.467 7.596 7.127 6.294 5.486 4.958 4.732 + 6.102 7.269 8.945 10.216 10.466 9.709 8.524 7.634 7.450 7.853 8.362 8.510 8.166 7.578 7.142 7.103 7.406 7.798 8.056 8.148 8.198 8.314 8.446 8.405 8.038 7.407 6.806 6.589 6.918 7.618 8.244 8.332 7.669 6.430 5.103 4.254 + 6.712 7.916 9.483 10.386 10.189 9.296 8.532 8.436 8.870 9.228 8.994 8.151 7.131 6.424 6.232 6.438 6.832 7.323 7.930 8.619 9.199 9.404 9.106 8.424 7.657 7.085 6.836 6.898 7.190 7.599 7.939 7.946 7.399 6.327 5.098 4.274 + 6.594 7.665 9.141 10.156 10.221 9.515 8.687 8.349 8.653 9.231 9.511 9.140 8.212 7.166 6.481 6.399 6.847 7.556 8.247 8.752 9.018 9.043 8.829 8.388 7.784 7.154 6.687 6.536 6.731 7.138 7.490 7.514 7.072 6.261 5.384 4.818 + 6.311 7.493 9.056 10.013 9.925 9.149 8.454 8.369 8.807 9.241 9.196 8.626 7.870 7.320 7.124 7.167 7.276 7.401 7.609 7.949 8.344 8.646 8.749 8.650 8.404 8.044 7.603 7.187 6.991 7.164 7.613 7.960 7.765 6.887 5.681 4.815 + 5.765 7.168 9.093 10.389 10.398 9.340 8.069 7.436 7.739 8.620 9.402 9.559 8.997 8.014 7.050 6.456 6.379 6.780 7.492 8.290 8.956 9.338 9.387 9.145 8.698 8.140 7.577 7.140 6.961 7.078 7.349 7.483 7.205 6.473 5.566 4.939 + 5.791 6.756 8.282 9.728 10.505 10.365 9.535 8.595 8.132 8.372 9.045 9.573 9.469 8.668 7.552 6.684 6.449 6.863 7.647 8.454 9.058 9.386 9.437 9.217 8.756 8.162 7.633 7.352 7.367 7.532 7.595 7.347 6.756 5.973 5.247 4.816 + 6.485 6.811 7.390 8.101 8.791 9.298 9.484 9.308 8.897 8.527 8.470 8.788 9.231 9.380 8.961 8.106 7.311 7.097 7.612 8.505 9.186 9.260 8.784 8.150 7.725 7.571 7.486 7.280 6.993 6.836 6.918 7.061 6.912 6.277 5.367 4.696 + 6.390 6.859 7.462 7.859 8.023 8.204 8.584 9.001 9.068 8.590 7.858 7.463 7.777 8.570 9.176 9.077 8.380 7.736 7.751 8.445 9.252 9.542 9.166 8.522 8.117 8.078 8.095 7.812 7.234 6.730 6.615 6.764 6.689 6.021 4.941 4.107 + 6.434 6.782 7.271 7.685 7.987 8.281 8.603 8.798 8.643 8.134 7.620 7.575 8.178 9.074 9.602 9.328 8.447 7.649 7.571 8.270 9.186 9.610 9.241 8.371 7.568 7.200 7.208 7.288 7.221 7.038 6.878 6.752 6.503 5.999 5.345 4.872 + 6.190 5.959 5.653 5.586 6.093 7.254 8.657 9.527 9.252 7.940 6.474 5.928 6.724 8.274 9.438 9.453 8.539 7.658 7.647 8.507 9.468 9.722 9.134 8.281 7.838 7.947 8.163 7.979 7.376 6.816 6.702 6.892 6.781 5.914 4.533 3.470 + 4.320 5.021 5.971 6.674 7.004 7.211 7.551 7.923 7.926 7.292 6.262 5.490 5.528 6.344 7.345 7.894 7.839 7.592 7.683 8.248 8.916 9.176 8.848 8.204 7.663 7.401 7.265 7.047 6.773 6.683 6.900 7.168 6.990 6.091 4.779 3.807 + 5.079 5.336 5.594 5.644 5.575 5.703 6.206 6.855 7.166 6.852 6.155 5.688 5.907 6.688 7.436 7.632 7.322 7.074 7.435 8.397 9.364 9.659 9.083 8.047 7.180 6.814 6.826 6.909 6.945 7.063 7.364 7.648 7.491 6.658 5.441 4.538 + 5.313 5.590 5.778 5.580 5.166 5.064 5.615 6.536 7.069 6.654 5.488 4.435 4.316 5.215 6.437 7.144 7.085 6.747 6.822 7.526 8.403 8.772 8.360 7.518 6.859 6.704 6.887 7.040 7.025 7.034 7.285 7.677 7.798 7.338 6.464 5.763 + 5.730 5.681 5.620 5.664 5.979 6.629 7.412 7.903 7.735 6.941 6.003 5.521 5.727 6.301 6.663 6.514 6.136 6.145 6.912 8.172 9.195 9.378 8.739 7.865 7.397 7.517 7.900 8.114 8.044 7.924 7.990 8.130 7.949 7.180 6.057 5.218 + 5.448 5.424 5.326 5.224 5.388 6.098 7.288 8.419 8.789 8.107 6.802 5.756 5.631 6.359 7.258 7.658 7.483 7.252 7.539 8.394 9.278 9.551 9.034 8.145 7.496 7.379 7.610 7.827 7.884 7.935 8.145 8.381 8.259 7.535 6.448 5.631 + 5.589 5.414 5.127 4.926 5.144 6.034 7.476 8.892 9.549 9.080 7.805 6.561 6.112 6.613 7.554 8.211 8.214 7.781 7.440 7.546 8.007 8.425 8.478 8.172 7.788 7.607 7.708 7.977 8.264 8.486 8.595 8.501 8.088 7.355 6.523 5.961 + 4.760 4.461 4.058 3.915 4.428 5.767 7.649 9.377 10.215 9.870 8.711 7.512 6.907 6.984 7.344 7.527 7.417 7.267 7.375 7.748 8.085 8.087 7.762 7.435 7.434 7.788 8.215 8.409 8.329 8.189 8.181 8.220 7.999 7.323 6.385 5.698 + 4.239 4.431 4.692 4.991 5.523 6.546 8.023 9.450 10.147 9.790 8.731 7.744 7.409 7.663 7.955 7.831 7.388 7.155 7.525 8.301 8.827 8.599 7.754 6.973 6.862 7.416 8.073 8.282 8.027 7.781 7.951 8.389 8.489 7.797 6.548 5.559 + 4.565 4.835 5.228 5.615 6.038 6.673 7.613 8.693 9.520 9.736 9.274 8.404 7.544 7.004 6.869 7.069 7.494 8.038 8.548 8.810 8.656 8.127 7.508 7.160 7.246 7.618 7.963 8.096 8.120 8.278 8.647 8.962 8.801 7.980 6.812 5.959 + 5.630 5.607 5.552 5.530 5.727 6.337 7.365 8.507 9.264 9.241 8.416 7.171 6.070 5.554 5.760 6.538 7.574 8.512 9.033 8.940 8.274 7.361 6.693 6.639 7.186 7.937 8.403 8.387 8.114 7.998 8.225 8.543 8.462 7.725 6.607 5.771 + 6.853 6.647 6.312 6.019 5.994 6.388 7.133 7.912 8.321 8.123 7.404 6.506 5.804 5.511 5.655 6.182 7.026 8.065 9.036 9.564 9.380 8.556 7.538 6.880 6.867 7.341 7.874 8.151 8.199 8.275 8.521 8.740 8.540 7.729 6.592 5.763 + 7.431 6.954 6.196 5.489 5.167 5.404 6.090 6.870 7.328 7.228 6.643 5.884 5.293 5.078 5.274 5.823 6.644 7.620 8.539 9.120 9.152 8.657 7.926 7.349 7.168 7.346 7.669 7.964 8.233 8.567 8.936 9.099 8.750 7.821 6.650 5.833 + 7.263 6.676 5.946 5.634 6.019 6.930 7.905 8.520 8.610 8.254 7.602 6.756 5.808 4.972 4.600 4.997 6.159 7.646 8.787 9.074 8.500 7.545 6.840 6.734 7.102 7.529 7.683 7.586 7.552 7.867 8.474 8.962 8.865 8.051 6.894 6.060 + 5.810 5.405 4.936 4.848 5.375 6.368 7.372 7.907 7.758 7.067 6.191 5.447 4.959 4.698 4.648 4.907 5.615 6.742 7.969 8.810 8.913 8.324 7.476 6.882 6.792 7.065 7.368 7.503 7.561 7.772 8.205 8.614 8.603 7.997 7.057 6.356 + 3.853 3.752 3.607 3.536 3.682 4.127 4.798 5.460 5.828 5.737 5.246 4.599 4.074 3.846 3.966 4.417 5.170 6.159 7.217 8.075 8.479 8.356 7.883 7.381 7.110 7.125 7.308 7.524 7.738 7.991 8.262 8.394 8.181 7.571 6.790 6.241 + 3.099 3.146 3.286 3.601 4.152 4.899 5.641 6.071 5.951 5.297 4.421 3.765 3.633 4.027 4.704 5.401 6.022 6.647 7.360 8.088 8.602 8.684 8.306 7.663 7.040 6.640 6.519 6.635 6.936 7.362 7.784 7.982 7.751 7.077 6.229 5.641 + 4.109 3.718 3.271 3.218 3.792 4.809 5.716 5.936 5.264 4.056 3.026 2.774 3.382 4.408 5.261 5.677 5.882 6.323 7.202 8.233 8.847 8.658 7.789 6.788 6.202 6.203 6.562 6.943 7.215 7.479 7.842 8.193 8.249 7.838 7.134 6.589 + 3.249 3.098 2.972 3.106 3.623 4.418 5.173 5.529 5.315 4.672 3.992 3.673 3.878 4.450 5.066 5.492 5.739 6.010 6.476 7.087 7.573 7.654 7.269 6.655 6.204 6.209 6.686 7.396 8.014 8.322 8.293 8.046 7.738 7.478 7.309 7.229 + 2.303 1.961 1.690 2.008 3.123 4.728 6.145 6.731 6.284 5.159 4.020 3.409 3.453 3.888 4.355 4.707 5.067 5.631 6.396 7.087 7.350 7.051 6.417 5.893 5.826 6.247 6.898 7.478 7.854 8.082 8.249 8.319 8.163 7.717 7.131 6.712 + 4.328 3.909 3.368 3.113 3.400 4.148 4.973 5.421 5.281 4.724 4.177 3.998 4.210 4.517 4.591 4.396 4.257 4.595 5.537 6.742 7.605 7.696 7.082 6.268 5.828 6.016 6.660 7.380 7.889 8.148 8.266 8.316 8.265 8.059 7.755 7.525 + 3.901 3.172 2.287 1.966 2.539 3.701 4.732 5.020 4.488 3.620 3.075 3.195 3.784 4.310 4.362 3.978 3.611 3.754 4.543 5.650 6.528 6.813 6.557 6.138 5.958 6.171 6.653 7.174 7.589 7.889 8.103 8.189 8.050 7.658 7.153 6.797 + 3.811 3.148 2.339 2.041 2.570 3.676 4.723 5.145 4.827 4.138 3.616 3.555 3.831 4.083 4.078 3.956 4.121 4.892 6.188 7.523 8.323 8.325 7.735 7.045 6.674 6.722 7.005 7.294 7.515 7.737 8.009 8.226 8.187 7.798 7.217 6.786 + 4.320 3.709 2.889 2.422 2.687 3.638 4.821 5.644 5.735 5.154 4.314 3.673 3.451 3.558 3.792 4.087 4.597 5.517 6.803 8.066 8.767 8.586 7.680 6.605 5.967 6.045 6.676 7.445 7.991 8.200 8.174 8.065 7.950 7.829 7.705 7.618 + 1.620 2.149 2.871 3.410 3.658 3.806 4.097 4.546 4.924 4.997 4.769 4.477 4.354 4.410 4.481 4.486 4.603 5.146 6.214 7.462 8.261 8.162 7.268 6.187 5.583 5.718 6.347 7.019 7.464 7.714 7.907 8.023 7.867 7.308 6.523 5.944 + 2.707 2.258 1.849 2.026 2.910 4.076 4.889 5.010 4.626 4.245 4.230 4.520 4.740 4.602 4.211 4.013 4.424 5.463 6.705 7.570 7.723 7.267 6.612 6.161 6.078 6.275 6.583 6.911 7.268 7.660 7.983 8.045 7.694 6.975 6.159 5.619 + 2.212 2.003 1.930 2.351 3.268 4.275 4.863 4.813 4.339 3.870 3.689 3.747 3.810 3.744 3.686 3.921 4.614 5.638 6.648 7.321 7.548 7.431 7.149 6.831 6.554 6.396 6.452 6.759 7.214 7.593 7.682 7.431 6.975 6.525 6.221 6.085 + 3.244 3.601 4.113 4.569 4.936 5.323 5.774 6.115 6.058 5.480 4.611 3.906 3.699 3.954 4.345 4.614 4.833 5.317 6.249 7.385 8.147 8.066 7.182 6.050 5.339 5.356 5.903 6.531 6.925 7.067 7.089 7.029 6.772 6.227 5.535 5.040 + 6.444 6.304 6.353 6.882 7.765 8.469 8.465 7.678 6.563 5.739 5.511 5.696 5.889 5.873 5.805 6.014 6.642 7.474 8.103 8.250 7.946 7.426 6.908 6.464 6.104 5.910 6.032 6.524 7.196 7.677 7.672 7.197 6.561 6.107 5.954 5.966 + 6.664 6.620 6.797 7.434 8.438 9.367 9.740 9.390 8.579 7.775 7.315 7.243 7.406 7.667 7.992 8.366 8.667 8.685 8.295 7.611 6.939 6.546 6.458 6.481 6.421 6.296 6.319 6.668 7.265 7.795 7.947 7.667 7.186 6.804 6.651 6.642 + 5.513 5.827 6.428 7.269 8.270 9.293 10.124 10.526 10.345 9.636 8.683 7.882 7.544 7.742 8.300 8.928 9.388 9.570 9.468 9.100 8.480 7.653 6.754 5.998 5.593 5.628 6.024 6.587 7.107 7.440 7.524 7.360 6.991 6.507 6.046 5.763 + 5.614 5.922 6.568 7.562 8.823 10.118 11.083 11.351 10.751 9.459 7.984 6.947 6.762 7.401 8.426 9.253 9.502 9.189 8.631 8.178 7.950 7.800 7.501 6.984 6.444 6.200 6.434 7.017 7.565 7.699 7.301 6.587 5.935 5.610 5.607 5.707 + 7.296 7.205 7.280 7.815 8.869 10.139 11.100 11.306 10.664 9.493 8.351 7.723 7.789 8.367 9.061 9.489 9.467 9.054 8.461 7.902 7.481 7.179 6.922 6.681 6.514 6.512 6.706 7.002 7.211 7.166 6.835 6.353 5.927 5.702 5.670 5.710 + 7.513 7.302 7.170 7.481 8.378 9.619 10.671 11.010 10.458 9.313 8.186 7.631 7.829 8.517 9.216 9.553 9.476 9.193 8.957 8.855 8.782 8.584 8.218 7.795 7.483 7.374 7.436 7.563 7.669 7.716 7.674 7.484 7.084 6.500 5.889 5.494 + 6.141 6.549 7.397 8.632 10.003 11.093 11.515 11.142 10.196 9.128 8.367 8.113 8.299 8.712 9.142 9.468 9.629 9.576 9.273 8.752 8.161 7.715 7.573 7.727 7.989 8.115 7.974 7.629 7.276 7.085 7.064 7.055 6.868 6.444 5.924 5.565 + 5.328 6.267 7.816 9.480 10.814 11.558 11.648 11.163 10.270 9.214 8.292 7.777 7.803 8.298 9.019 9.683 10.082 10.137 9.854 9.282 8.512 7.709 7.095 6.859 7.034 7.452 7.846 8.013 7.931 7.719 7.493 7.252 6.906 6.407 5.862 5.497 + 7.210 7.462 8.014 8.869 9.889 10.779 11.198 10.934 10.038 8.824 7.730 7.116 7.123 7.647 8.424 9.161 9.646 9.784 9.593 9.167 8.642 8.164 7.844 7.726 7.774 7.896 7.998 8.017 7.939 7.763 7.479 7.060 6.500 5.864 5.290 4.945 + 7.341 7.869 8.717 9.584 10.224 10.520 10.452 10.040 9.317 8.385 7.463 6.862 6.843 7.452 8.448 9.408 9.949 9.929 9.499 8.968 8.599 8.467 8.464 8.422 8.252 7.997 7.777 7.678 7.678 7.654 7.456 7.000 6.319 5.553 4.892 4.511 + 8.382 8.596 9.011 9.568 10.139 10.531 10.545 10.060 9.092 7.823 6.555 5.627 5.299 5.654 6.556 7.692 8.695 9.309 9.482 9.366 9.192 9.129 9.196 9.294 9.307 9.193 8.998 8.786 8.564 8.266 7.803 7.140 6.341 5.545 4.912 4.564 + 8.482 8.105 7.758 7.910 8.668 9.637 10.169 9.818 8.655 7.213 6.132 5.765 6.038 6.613 7.178 7.622 8.002 8.365 8.638 8.679 8.431 8.033 7.764 7.852 8.305 8.898 9.316 9.354 9.007 8.413 7.718 6.977 6.178 5.346 4.608 4.163 + 8.085 8.240 8.569 9.065 9.634 10.071 10.118 9.582 8.465 7.017 5.650 4.762 4.559 4.983 5.781 6.656 7.393 7.898 8.161 8.207 8.086 7.884 7.701 7.606 7.574 7.500 7.273 6.882 6.436 6.081 5.875 5.731 5.493 5.086 4.607 4.278 + 7.412 6.904 6.234 5.851 5.999 6.548 7.078 7.154 6.596 5.580 4.534 3.903 3.933 4.584 5.579 6.556 7.217 7.440 7.286 6.944 6.613 6.409 6.332 6.306 6.258 6.175 6.097 6.065 6.058 5.995 5.782 5.378 4.833 4.260 3.793 3.533 + 6.708 6.452 6.201 6.288 6.853 7.710 8.418 8.533 7.879 6.667 5.377 4.507 4.325 4.776 5.575 6.390 6.993 7.301 7.331 7.138 6.788 6.362 5.954 5.636 5.428 5.292 5.188 5.119 5.128 5.235 5.369 5.367 5.080 4.509 3.849 3.407 + 4.438 4.841 5.551 6.369 7.023 7.288 7.108 6.625 6.056 5.535 5.061 4.618 4.328 4.446 5.142 6.256 7.274 7.637 7.153 6.177 5.371 5.202 5.604 6.067 6.090 5.596 4.966 4.688 4.935 5.437 5.716 5.468 4.752 3.881 3.176 2.802 + 4.612 4.861 5.267 5.707 6.095 6.394 6.580 6.601 6.387 5.921 5.306 4.767 4.557 4.829 5.548 6.509 7.426 8.053 8.271 8.099 7.666 7.149 6.701 6.397 6.221 6.095 5.950 5.783 5.657 5.644 5.747 5.877 5.914 5.799 5.590 5.429 + 3.931 4.657 5.855 7.100 7.951 8.137 7.681 6.877 6.110 5.627 5.414 5.276 5.056 4.819 4.840 5.394 6.497 7.818 8.829 9.108 8.583 7.558 6.509 5.822 5.614 5.750 5.987 6.135 6.145 6.089 6.086 6.222 6.510 6.885 7.235 7.445 + 3.815 4.621 5.909 7.164 7.906 7.917 7.348 6.615 6.125 6.013 6.082 6.007 5.650 5.220 5.138 5.682 6.716 7.723 8.151 7.811 7.020 6.376 6.341 6.935 7.756 8.277 8.196 7.588 6.795 6.186 5.949 6.050 6.326 6.609 6.806 6.900 + 4.959 5.528 6.412 7.237 7.682 7.602 7.047 6.207 5.325 4.614 4.204 4.102 4.225 4.483 4.866 5.448 6.283 7.256 8.054 8.336 7.997 7.332 6.889 7.093 7.911 8.837 9.255 8.893 8.013 7.172 6.767 6.744 6.714 6.352 5.721 5.220 + 5.837 6.548 7.610 8.551 9.060 9.086 8.725 8.062 7.156 6.130 5.231 4.727 4.721 5.078 5.564 6.069 6.672 7.472 8.336 8.876 8.749 8.033 7.300 7.240 8.095 9.409 10.343 10.316 9.433 8.335 7.620 7.360 7.142 6.559 5.673 4.989 + 7.082 6.855 6.681 6.881 7.518 8.274 8.614 8.163 6.991 5.610 4.623 4.315 4.499 4.754 4.854 5.007 5.644 6.942 8.504 9.545 9.497 8.527 7.499 7.339 8.306 9.768 10.707 10.516 9.443 8.301 7.738 7.715 7.641 7.010 5.940 5.096 + 7.341 7.213 7.186 7.522 8.255 9.052 9.341 8.672 7.082 5.167 3.749 3.337 3.801 4.531 4.965 5.065 5.289 6.103 7.446 8.674 9.074 8.511 7.608 7.271 7.926 9.155 10.058 10.013 9.171 8.247 7.820 7.804 7.585 6.687 5.319 4.279 + 6.246 6.313 6.620 7.317 8.302 9.144 9.285 8.404 6.712 4.902 3.753 3.623 4.237 4.942 5.251 5.232 5.403 6.217 7.575 8.821 9.260 8.760 7.906 7.543 8.090 9.205 10.092 10.176 9.539 8.752 8.293 8.101 7.689 6.700 5.358 4.376 + 4.493 5.339 6.660 7.954 8.857 9.232 9.068 8.367 7.182 5.743 4.489 3.869 4.039 4.743 5.514 6.052 6.433 6.950 7.736 8.545 8.930 8.673 8.058 7.697 8.037 8.973 9.931 10.328 10.016 9.302 8.585 7.977 7.277 6.296 5.190 4.429 + 2.846 4.308 6.443 8.263 9.242 9.488 9.372 9.053 8.386 7.248 5.876 4.804 4.439 4.701 5.144 5.426 5.665 6.274 7.438 8.760 9.507 9.264 8.371 7.692 7.874 8.788 9.665 9.816 9.236 8.529 8.237 8.265 7.975 6.882 5.261 4.039 + 4.067 4.557 5.445 6.557 7.656 8.467 8.737 8.335 7.343 6.060 4.879 4.092 3.770 3.799 4.059 4.551 5.359 6.461 7.586 8.305 8.327 7.763 7.101 6.862 7.206 7.819 8.191 8.054 7.583 7.194 7.111 7.130 6.794 5.857 4.601 3.695 + 4.821 5.691 6.934 7.910 8.262 8.059 7.611 7.155 6.717 6.206 5.606 5.038 4.662 4.552 4.689 5.059 5.686 6.534 7.368 7.787 7.486 6.560 5.538 5.041 5.313 6.040 6.623 6.703 6.444 6.314 6.571 6.939 6.823 5.885 4.463 3.398 + 4.684 5.679 7.139 8.355 8.870 8.652 7.957 7.063 6.134 5.264 4.581 4.231 4.258 4.550 4.936 5.356 5.908 6.672 7.486 7.935 7.649 6.667 5.522 4.888 5.066 5.754 6.327 6.396 6.118 5.979 6.243 6.610 6.443 5.387 3.817 2.648 + 5.017 6.049 7.519 8.625 8.834 8.144 6.963 5.792 4.943 4.467 4.261 4.200 4.208 4.279 4.470 4.884 5.596 6.523 7.371 7.744 7.408 6.516 5.580 5.142 5.397 6.058 6.598 6.674 6.368 6.034 5.913 5.879 5.557 4.731 3.632 2.839 + 3.794 4.798 6.275 7.505 8.007 7.725 6.915 5.902 4.928 4.160 3.723 3.666 3.882 4.134 4.247 4.294 4.562 5.262 6.224 6.898 6.765 5.814 4.658 4.113 4.549 5.591 6.425 6.479 5.862 5.180 4.919 4.978 4.799 3.961 2.680 1.707 + 5.002 5.486 6.278 7.082 7.580 7.558 7.006 6.124 5.219 4.543 4.170 4.005 3.912 3.874 4.023 4.522 5.359 6.252 6.757 6.562 5.736 4.736 4.128 4.211 4.817 5.447 5.651 5.350 4.854 4.563 4.608 4.735 4.527 3.794 2.789 2.064 + 3.695 4.635 6.045 7.280 7.888 7.785 7.157 6.261 5.288 4.378 3.671 3.297 3.294 3.573 4.000 4.522 5.184 5.998 6.783 7.179 6.904 6.042 5.077 4.589 4.822 5.495 6.045 6.099 5.751 5.411 5.357 5.438 5.209 4.393 3.232 2.376 + 3.772 4.763 6.219 7.418 7.857 7.479 6.589 5.591 4.764 4.189 3.816 3.562 3.362 3.213 3.189 3.425 4.020 4.895 5.741 6.164 5.964 5.337 4.784 4.744 5.235 5.830 6.006 5.608 4.987 4.685 4.913 5.312 5.232 4.328 2.938 1.897 + 3.441 4.063 5.016 5.886 6.355 6.340 5.964 5.425 4.861 4.304 3.739 3.197 2.787 2.656 2.898 3.485 4.258 4.999 5.519 5.730 5.657 5.405 5.090 4.787 4.526 4.316 4.189 4.196 4.368 4.648 4.863 4.793 4.304 3.467 2.571 1.991 + 3.215 3.911 4.912 5.712 6.012 5.831 5.383 4.859 4.336 3.835 3.401 3.097 2.927 2.822 2.750 2.831 3.293 4.230 5.380 6.189 6.185 5.388 4.360 3.805 4.006 4.613 4.974 4.732 4.141 3.801 4.053 4.595 4.720 3.979 2.659 1.627 + 4.047 4.596 5.318 5.774 5.795 5.535 5.224 4.903 4.396 3.569 2.578 1.855 1.812 2.529 3.698 4.867 5.729 6.212 6.348 6.124 5.509 4.627 3.843 3.581 4.003 4.833 5.537 5.738 5.489 5.159 5.030 5.001 4.688 3.847 2.708 1.880 + 3.594 3.711 4.104 4.835 5.634 5.988 5.531 4.395 3.184 2.546 2.697 3.294 3.788 3.928 3.973 4.415 5.464 6.761 7.578 7.379 6.256 4.891 4.076 4.160 4.867 5.577 5.818 5.571 5.185 5.011 5.085 5.106 4.713 3.816 2.726 1.979 + 2.172 3.363 4.933 5.894 5.829 5.116 4.513 4.472 4.803 4.925 4.445 3.528 2.771 2.706 3.398 4.444 5.312 5.700 5.640 5.340 4.974 4.616 4.306 4.125 4.160 4.408 4.743 4.997 5.080 5.003 4.797 4.422 3.799 2.939 2.050 1.474 + 3.591 4.249 5.074 5.506 5.389 5.057 4.983 5.308 5.698 5.651 4.969 3.982 3.315 3.421 4.251 5.326 6.094 6.267 5.911 5.287 4.655 4.182 3.968 4.068 4.455 4.974 5.391 5.533 5.390 5.088 4.735 4.301 3.663 2.790 1.876 1.276 + 3.761 4.094 4.544 4.881 5.082 5.354 5.911 6.711 7.369 7.388 6.549 5.152 3.907 3.497 4.136 5.423 6.613 7.100 6.775 6.014 5.346 5.076 5.134 5.230 5.145 4.903 4.704 4.709 4.862 4.925 4.658 4.004 3.122 2.269 1.644 1.329 + 3.676 4.026 4.467 4.746 4.886 5.163 5.800 6.663 7.258 7.112 6.198 5.059 4.470 4.892 6.133 7.485 8.200 7.959 6.993 5.830 4.923 4.427 4.252 4.248 4.352 4.577 4.919 5.276 5.482 5.389 4.943 4.202 3.299 2.403 1.685 1.285 + 4.359 4.442 4.553 4.658 4.819 5.173 5.797 6.570 7.154 7.171 6.484 5.392 4.542 4.560 5.632 7.315 8.755 9.185 8.398 6.849 5.352 4.565 4.649 5.282 5.980 6.436 6.647 6.770 6.888 6.894 6.574 5.796 4.632 3.347 2.267 1.658 + 5.669 5.081 4.399 4.212 4.756 5.775 6.765 7.336 7.383 6.998 6.322 5.534 4.949 4.994 5.949 7.601 9.182 9.779 8.966 7.171 5.416 4.612 4.947 5.868 6.615 6.841 6.777 6.874 7.286 7.692 7.574 6.673 5.203 3.664 2.500 1.906 + 6.374 5.944 5.433 5.306 5.841 6.921 8.076 8.742 8.573 7.643 6.401 5.432 5.164 5.689 6.754 7.905 8.690 8.822 8.276 7.285 6.253 5.585 5.495 5.897 6.453 6.792 6.760 6.517 6.392 6.579 6.911 6.912 6.147 4.601 2.814 1.616 + 5.911 5.729 5.579 5.723 6.257 7.026 7.704 7.971 7.659 6.800 5.611 4.442 3.697 3.706 4.542 5.906 7.204 7.828 7.514 6.509 5.421 4.823 4.891 5.337 5.674 5.599 5.202 4.850 4.860 5.221 5.568 5.428 4.548 3.087 1.563 0.595 + 5.570 6.062 6.765 7.316 7.503 7.361 7.070 6.757 6.377 5.779 4.905 3.936 3.260 3.246 3.988 5.202 6.353 6.943 6.775 6.027 5.109 4.410 4.098 4.084 4.153 4.149 4.087 4.112 4.343 4.723 4.988 4.799 3.969 2.632 1.238 0.348 + 2.416 3.677 5.483 6.912 7.458 7.267 6.860 6.616 6.476 6.090 5.226 4.069 3.135 2.897 3.429 4.362 5.141 5.382 5.054 4.418 3.814 3.467 3.411 3.526 3.629 3.587 3.397 3.205 3.209 3.491 3.882 4.009 3.529 2.425 1.104 0.205 + 1.189 1.976 3.111 4.043 4.505 4.644 4.806 5.163 5.510 5.427 4.669 3.462 2.442 2.242 3.039 4.400 5.553 5.892 5.351 4.394 3.648 3.467 3.733 4.014 3.923 3.406 2.756 2.381 2.500 2.997 3.498 3.617 3.180 2.319 1.391 0.798 + 3.803 3.729 3.704 3.844 4.137 4.446 4.633 4.659 4.564 4.366 4.029 3.550 3.095 2.977 3.421 4.304 5.129 5.331 4.717 3.668 2.885 2.860 3.497 4.198 4.349 3.801 2.952 2.392 2.431 2.905 3.372 3.483 3.205 2.752 2.363 2.160 + 3.832 4.066 4.397 4.650 4.724 4.636 4.460 4.235 3.930 3.507 3.016 2.631 2.568 2.936 3.634 4.373 4.842 4.880 4.558 4.108 3.773 3.676 3.799 4.055 4.378 4.753 5.173 5.583 5.869 5.918 5.695 5.278 4.818 4.449 4.228 4.136 + 2.945 3.495 4.219 4.670 4.672 4.394 4.119 3.962 3.796 3.451 2.959 2.578 2.568 2.939 3.414 3.662 3.571 3.320 3.183 3.269 3.447 3.512 3.414 3.315 3.418 3.751 4.123 4.294 4.189 3.953 3.792 3.780 3.811 3.737 3.545 3.375 + 1.899 2.539 3.502 4.328 4.651 4.379 3.707 2.979 2.485 2.328 2.427 2.625 2.815 2.978 3.142 3.301 3.396 3.368 3.233 3.094 3.084 3.254 3.533 3.770 3.849 3.765 3.614 3.505 3.471 3.463 3.408 3.284 3.133 3.018 2.968 2.959 + 3.307 3.305 3.426 3.763 4.223 4.529 4.409 3.812 2.981 2.301 2.048 2.229 2.635 3.026 3.302 3.513 3.737 3.962 4.081 4.005 3.776 3.569 3.562 3.800 4.149 4.398 4.412 4.226 3.996 3.863 3.840 3.805 3.616 3.234 2.785 2.480 + 4.156 4.552 5.189 5.773 5.965 5.559 4.656 3.637 2.936 2.726 2.818 2.849 2.631 2.331 2.316 2.796 3.594 4.259 4.445 4.196 3.894 3.907 4.276 4.713 4.902 4.797 4.637 4.677 4.911 5.066 4.860 4.286 3.623 3.193 3.086 3.133 + 2.912 3.624 4.652 5.427 5.517 4.869 3.825 2.891 2.422 2.427 2.631 2.746 2.717 2.752 3.106 3.816 4.627 5.178 5.288 5.093 4.904 4.919 5.062 5.080 4.815 4.384 4.091 4.157 4.501 4.791 4.719 4.244 3.605 3.105 2.870 2.818 + 0.560 1.782 3.560 4.989 5.479 5.059 4.261 3.697 3.659 4.002 4.339 4.358 4.029 3.581 3.316 3.411 3.843 4.443 5.009 5.404 5.590 5.600 5.500 5.340 5.140 4.889 4.578 4.227 3.890 3.631 3.473 3.389 3.314 3.208 3.082 2.993 + 1.670 2.630 3.971 4.920 5.016 4.382 3.596 3.262 3.599 4.334 4.945 5.048 4.657 4.126 3.865 4.051 4.553 5.079 5.411 5.534 5.573 5.647 5.759 5.826 5.778 5.624 5.419 5.176 4.831 4.314 3.657 3.036 2.674 2.673 2.916 3.144 + 2.744 3.296 3.980 4.305 4.103 3.655 3.450 3.792 4.576 5.393 5.832 5.750 5.296 4.757 4.379 4.290 4.527 5.065 5.795 6.510 6.965 7.011 6.706 6.288 6.007 5.947 5.991 5.934 5.656 5.192 4.673 4.200 3.786 3.405 3.074 2.871 + 2.636 3.964 5.493 5.963 5.078 3.715 3.102 3.740 5.034 5.911 5.793 5.022 4.421 4.478 4.969 5.315 5.250 5.106 5.431 6.373 7.453 7.971 7.643 6.850 6.269 6.256 6.572 6.674 6.244 5.443 4.680 4.187 3.847 3.420 2.873 2.463 + 3.837 4.874 6.079 6.517 6.039 5.387 5.464 6.450 7.598 7.883 6.904 5.225 3.875 3.504 3.959 4.598 4.964 5.162 5.611 6.506 7.539 8.155 8.062 7.487 6.935 6.728 6.766 6.708 6.355 5.813 5.318 4.940 4.511 3.856 3.067 2.507 + 3.773 4.334 5.067 5.580 5.853 6.207 6.899 7.754 8.232 7.910 6.913 5.875 5.423 5.672 6.178 6.399 6.214 6.008 6.266 7.063 7.955 8.367 8.093 7.454 6.976 6.926 7.129 7.206 6.948 6.457 5.941 5.439 4.778 3.830 2.770 2.047 + 3.463 3.896 4.545 5.135 5.527 5.781 6.050 6.405 6.737 6.839 6.577 6.026 5.437 5.068 5.011 5.161 5.341 5.475 5.646 5.999 6.566 7.177 7.547 7.478 7.019 6.445 6.067 6.004 6.105 6.054 5.601 4.718 3.607 2.555 1.783 1.389 + 2.737 3.662 4.860 5.594 5.663 5.510 5.758 6.588 7.550 7.950 7.446 6.323 5.227 4.643 4.591 4.766 4.920 5.091 5.486 6.186 6.992 7.579 7.777 7.695 7.576 7.549 7.527 7.345 6.958 6.477 6.006 5.488 4.737 3.677 2.539 1.782 + 3.714 4.053 4.482 4.756 4.889 5.156 5.810 6.791 7.692 8.038 7.640 6.722 5.734 5.024 4.665 4.531 4.525 4.693 5.155 5.930 6.851 7.654 8.147 8.287 8.144 7.792 7.287 6.715 6.219 5.929 5.817 5.655 5.160 4.249 3.188 2.465 + 4.328 4.864 5.562 6.009 6.118 6.176 6.552 7.314 8.123 8.475 8.087 7.081 5.861 4.810 4.103 3.735 3.683 3.980 4.647 5.573 6.515 7.235 7.643 7.814 7.851 7.773 7.533 7.145 6.752 6.523 6.444 6.242 5.570 4.338 2.912 1.944 + 4.443 5.038 5.768 6.121 5.977 5.697 5.784 6.434 7.364 8.035 8.048 7.370 6.259 5.031 3.919 3.087 2.697 2.860 3.510 4.355 5.041 5.409 5.612 5.940 6.501 7.068 7.276 6.982 6.448 6.113 6.150 6.231 5.775 4.512 2.842 1.647 + 4.834 4.946 5.101 5.248 5.418 5.695 6.097 6.491 6.640 6.367 5.699 4.866 4.148 3.694 3.469 3.341 3.230 3.181 3.311 3.705 4.346 5.131 5.915 6.555 6.922 6.931 6.607 6.123 5.737 5.621 5.705 5.679 5.208 4.224 3.054 2.255 + 1.790 2.378 3.257 4.055 4.578 4.903 5.229 5.649 6.026 6.088 5.661 4.841 3.956 3.357 3.192 3.341 3.536 3.586 3.512 3.525 3.865 4.612 5.603 6.502 6.965 6.831 6.210 5.423 4.830 4.623 4.723 4.844 4.699 4.205 3.555 3.097 + 3.002 3.289 3.679 3.968 4.098 4.188 4.395 4.743 5.078 5.192 5.002 4.615 4.237 4.001 3.882 3.759 3.561 3.357 3.306 3.522 3.972 4.488 4.871 5.001 4.875 4.579 4.231 3.945 3.798 3.795 3.848 3.799 3.512 2.982 2.384 1.984 + 2.484 2.996 3.640 3.975 3.868 3.578 3.511 3.852 4.388 4.687 4.439 3.707 2.879 2.386 2.445 2.972 3.712 4.419 4.966 5.330 5.544 5.649 5.679 5.643 5.503 5.188 4.665 4.013 3.423 3.083 3.024 3.071 2.962 2.564 2.005 1.596 + 5.000 4.689 4.192 3.673 3.238 2.928 2.779 2.863 3.242 3.866 4.525 4.946 4.985 4.756 4.578 4.750 5.329 6.091 6.701 6.952 6.885 6.702 6.570 6.487 6.322 5.965 5.459 4.984 4.726 4.740 4.914 5.057 5.031 4.826 4.553 4.364 + 3.386 3.263 3.129 3.107 3.226 3.420 3.616 3.827 4.134 4.567 5.014 5.266 5.188 4.882 4.670 4.884 5.607 6.576 7.334 7.545 7.218 6.690 6.378 6.500 6.956 7.443 7.700 7.671 7.509 7.417 7.488 7.653 7.763 7.724 7.573 7.442 + 1.751 2.397 3.383 4.254 4.648 4.490 4.026 3.661 3.700 4.152 4.756 5.190 5.333 5.346 5.533 6.065 6.818 7.455 7.690 7.526 7.262 7.274 7.727 8.458 9.108 9.383 9.249 8.919 8.671 8.652 8.813 8.981 9.006 8.860 8.635 8.472 + 2.026 2.891 4.054 4.830 4.926 4.590 4.312 4.379 4.693 4.954 4.989 4.897 4.902 5.118 5.473 5.851 6.267 6.849 7.653 8.506 9.101 9.261 9.133 9.072 9.323 9.779 10.086 9.990 9.603 9.306 9.382 9.724 9.917 9.639 8.993 8.455 + 3.438 3.642 3.970 4.320 4.641 4.953 5.304 5.702 6.080 6.317 6.321 6.100 5.790 5.603 5.734 6.261 7.092 7.990 8.668 8.928 8.770 8.405 8.147 8.242 8.734 9.443 10.083 10.432 10.441 10.232 9.982 9.813 9.744 9.728 9.722 9.714 + 6.003 5.751 5.400 5.168 5.200 5.472 5.805 5.975 5.876 5.592 5.347 5.341 5.624 6.090 6.593 7.078 7.603 8.230 8.902 9.438 9.670 9.607 9.461 9.494 9.800 10.221 10.477 10.409 10.118 9.873 9.879 10.106 10.329 10.346 10.162 9.974 + 4.766 5.038 5.517 6.037 6.355 6.296 5.920 5.548 5.551 6.037 6.711 7.077 6.852 6.255 5.898 6.329 7.574 9.079 10.100 10.242 9.731 9.193 9.154 9.664 10.311 10.601 10.351 9.806 9.412 9.457 9.874 10.317 10.437 10.133 9.605 9.209 + 6.790 6.431 6.066 6.045 6.366 6.679 6.648 6.317 6.103 6.401 7.176 7.938 8.171 7.824 7.404 7.560 8.505 9.789 10.632 10.540 9.688 8.754 8.368 8.651 9.198 9.489 9.330 8.978 8.867 9.207 9.784 10.118 9.818 8.885 7.733 6.950 + 8.872 8.253 7.428 6.889 6.828 7.043 7.190 7.115 6.966 6.996 7.271 7.594 7.700 7.556 7.430 7.658 8.306 9.049 9.391 9.068 8.274 7.517 7.223 7.417 7.739 7.768 7.368 6.792 6.457 6.610 7.129 7.621 7.710 7.300 6.641 6.155 + 12.526 12.074 11.596 11.562 12.067 12.735 13.022 12.635 11.706 10.606 9.622 8.801 8.096 7.591 7.541 8.129 9.176 10.112 10.328 9.638 8.474 7.592 7.520 8.157 8.870 9.003 8.401 7.530 7.110 7.553 8.627 9.607 9.789 8.994 7.706 6.751 + 13.400 12.891 12.412 12.571 13.501 14.710 15.439 15.212 14.133 12.729 11.526 10.756 10.375 10.309 10.589 11.249 12.105 12.701 12.568 11.613 10.286 9.318 9.212 9.857 10.617 10.828 10.330 9.597 9.360 10.009 11.234 12.194 12.102 10.815 8.985 7.675 + 12.820 12.556 12.391 12.755 13.773 15.106 16.124 16.292 15.495 14.087 12.646 11.655 11.302 11.520 12.127 12.936 13.726 14.199 14.051 13.165 11.799 10.518 9.872 10.006 10.538 10.864 10.677 10.272 10.332 11.306 12.879 14.022 13.685 11.640 8.819 6.808 + 12.484 12.316 12.164 12.299 12.916 13.965 15.092 15.747 15.449 14.069 11.972 9.888 8.589 8.514 9.581 11.254 12.808 13.655 13.557 12.655 11.353 10.111 9.252 8.862 8.819 8.928 9.078 9.302 9.694 10.237 10.684 10.643 9.829 8.332 6.677 5.591 + 12.606 12.314 12.028 12.123 12.765 13.773 14.711 15.114 14.713 13.539 11.901 10.286 9.212 9.050 9.847 11.247 12.613 13.328 13.130 12.247 11.219 10.529 10.293 10.249 10.043 9.564 9.065 8.970 9.506 10.467 11.276 11.315 10.312 8.525 6.640 5.443 + 12.256 12.102 11.877 11.781 12.092 12.957 14.160 15.098 15.096 13.897 11.931 10.127 9.343 9.832 11.140 12.464 13.185 13.152 12.601 11.857 11.120 10.460 9.916 9.540 9.343 9.249 9.169 9.139 9.338 9.895 10.638 11.056 10.607 9.186 7.354 6.070 + 12.372 12.100 11.722 11.543 11.885 12.868 14.209 15.260 15.353 14.253 12.400 10.700 9.975 10.467 11.735 12.994 13.628 13.485 12.816 11.991 11.249 10.651 10.168 9.773 9.459 9.219 9.082 9.149 9.557 10.317 11.153 11.542 11.015 9.555 7.746 6.501 + 12.538 12.268 11.894 11.718 12.059 13.042 14.419 15.588 15.895 15.052 13.396 11.744 10.919 11.254 12.412 13.641 14.259 14.025 13.182 12.203 11.464 11.064 10.864 10.649 10.295 9.852 9.524 9.564 10.113 11.044 11.927 12.196 11.473 9.861 7.999 6.758 + 12.697 12.502 12.215 12.064 12.355 13.270 14.631 15.866 16.285 15.550 13.970 12.376 11.613 12.003 13.174 14.339 14.825 14.440 13.489 12.493 11.851 11.663 11.751 11.803 11.545 10.902 10.093 9.583 9.826 10.916 12.366 13.272 12.854 11.040 8.654 6.982 + 12.710 12.539 12.268 12.096 12.321 13.159 14.485 15.756 16.267 15.625 14.093 12.506 11.759 12.231 13.537 14.809 15.269 14.694 13.476 12.293 11.666 11.690 12.070 12.354 12.215 11.625 10.870 10.400 10.578 11.417 12.487 13.097 12.700 11.288 9.491 8.249 + 12.659 12.516 12.272 12.098 12.291 13.098 14.420 15.719 16.268 15.658 14.161 12.636 11.981 12.526 13.822 14.964 15.216 14.460 13.191 12.128 11.740 12.026 12.591 12.934 12.714 11.920 10.874 10.092 10.021 10.750 11.870 12.634 12.398 11.078 9.294 8.034 + 12.377 12.274 12.049 11.824 11.930 12.702 14.100 15.536 16.169 15.512 13.888 12.286 11.695 12.392 13.767 14.796 14.778 13.774 12.451 11.545 11.385 11.787 12.296 12.490 12.165 11.367 10.361 9.575 9.441 10.128 11.320 12.277 12.262 11.082 9.325 8.042 + 12.268 12.143 11.891 11.658 11.791 12.611 14.044 15.464 16.025 15.286 13.637 12.105 11.641 12.427 13.764 14.623 14.396 13.272 11.986 11.233 11.222 11.672 12.120 12.229 11.892 11.183 10.308 9.604 9.456 10.067 11.198 12.173 12.259 11.220 9.587 8.373 + 12.401 12.262 11.997 11.770 11.932 12.790 14.242 15.643 16.150 15.354 13.686 12.199 11.826 12.695 14.048 14.822 14.433 13.137 11.745 10.989 11.059 11.620 12.157 12.323 12.039 11.402 10.607 9.929 9.688 10.075 10.928 11.705 11.785 10.940 9.593 8.585 + 12.523 12.420 12.196 11.982 12.121 12.935 14.333 15.668 16.096 15.238 13.580 12.201 11.990 12.969 14.284 14.884 14.308 12.960 11.698 11.150 11.333 11.810 12.121 12.085 11.752 11.226 10.587 10.002 9.768 10.131 10.964 11.663 11.496 10.203 8.333 6.968 + 12.808 12.622 12.297 12.037 12.197 13.041 14.403 15.618 15.911 15.006 13.436 12.226 12.132 13.064 14.163 14.491 13.735 12.384 11.264 10.898 11.217 11.771 12.159 12.243 12.054 11.610 10.919 10.158 9.725 9.991 10.879 11.730 11.693 10.421 8.479 7.036 + 12.903 12.557 12.046 11.719 11.967 12.941 14.330 15.427 15.579 14.696 13.396 12.575 12.715 13.502 14.086 13.782 12.615 11.261 10.475 10.527 11.108 11.714 12.062 12.168 12.088 11.713 10.890 9.763 8.886 8.864 9.768 10.889 11.184 10.126 8.234 6.766 + 12.852 12.288 11.557 11.229 11.694 12.885 14.270 15.144 15.089 14.260 13.283 12.800 12.995 13.471 13.571 12.905 11.647 10.382 9.672 9.694 10.225 10.910 11.507 11.912 12.019 11.663 10.769 9.584 8.674 8.568 9.314 10.326 10.766 10.198 8.969 7.980 + 12.692 11.893 10.962 10.716 11.486 12.885 14.123 14.607 14.330 13.780 13.472 13.529 13.633 13.343 12.492 11.324 10.293 9.731 9.667 9.911 10.277 10.708 11.206 11.668 11.827 11.417 10.421 9.196 8.311 8.185 8.792 9.665 10.217 10.150 9.643 9.186 + 12.596 11.736 10.725 10.381 10.964 12.030 12.900 13.264 13.366 13.615 14.042 14.152 13.348 11.544 9.386 7.846 7.532 8.271 9.317 9.959 10.019 9.836 9.854 10.188 10.551 10.531 9.942 8.950 7.933 7.237 7.037 7.342 8.051 8.978 9.856 10.394 + 11.829 11.335 10.681 10.263 10.239 10.476 10.761 11.027 11.355 11.755 11.981 11.618 10.440 8.703 7.093 6.284 6.458 7.186 7.774 7.805 7.436 7.209 7.563 8.446 9.337 9.647 9.140 8.093 7.082 6.616 6.871 7.680 8.702 9.629 10.283 10.610 + 8.721 8.392 7.895 7.472 7.327 7.521 7.940 8.351 8.538 8.410 8.028 7.547 7.120 6.843 6.749 6.840 7.080 7.387 7.646 7.783 7.843 7.991 8.382 8.973 9.469 9.475 8.808 7.714 6.787 6.588 7.248 8.353 9.243 9.489 9.186 8.818 + 8.414 7.976 7.265 6.541 6.057 5.967 6.279 6.863 7.505 7.980 8.124 7.894 7.398 6.865 6.543 6.575 6.902 7.285 7.449 7.277 6.911 6.678 6.854 7.438 8.119 8.467 8.251 7.627 7.046 6.939 7.400 8.116 8.614 8.613 8.232 7.871 + 9.970 8.920 7.367 6.063 5.520 5.778 6.492 7.230 7.713 7.881 7.788 7.507 7.113 6.737 6.556 6.685 7.056 7.408 7.455 7.112 6.592 6.272 6.416 6.969 7.587 7.901 7.797 7.497 7.383 7.691 8.307 8.840 8.900 8.388 7.595 7.012 + 10.206 8.980 7.432 6.612 6.874 7.658 8.053 7.598 6.617 5.837 5.708 6.058 6.365 6.307 6.056 6.043 6.474 7.092 7.420 7.234 6.792 6.599 6.925 7.553 7.978 7.867 7.367 6.974 7.114 7.805 8.662 9.212 9.213 8.769 8.195 7.813 + 9.862 8.960 7.728 6.900 6.859 7.398 7.920 7.906 7.288 6.453 5.906 5.877 6.183 6.432 6.370 6.089 5.912 6.102 6.635 7.240 7.652 7.830 7.952 8.193 8.518 8.692 8.518 8.084 7.773 7.975 8.746 9.706 10.296 10.208 9.634 9.118 + 9.282 9.020 8.483 7.730 6.948 6.392 6.217 6.361 6.588 6.680 6.592 6.462 6.450 6.575 6.701 6.681 6.517 6.389 6.513 6.967 7.628 8.264 8.683 8.815 8.685 8.360 7.943 7.597 7.543 7.943 8.755 9.694 10.385 10.608 10.455 10.241 + 9.050 8.603 7.905 7.239 6.827 6.738 6.888 7.106 7.231 7.169 6.926 6.594 6.321 6.235 6.373 6.645 6.885 6.969 6.923 6.927 7.189 7.760 8.452 8.914 8.868 8.308 7.548 7.043 7.122 7.795 8.757 9.579 9.950 9.838 9.466 9.165 + 9.526 8.475 7.104 6.286 6.357 6.919 7.266 6.998 6.318 5.761 5.684 5.973 6.224 6.166 5.909 5.793 6.028 6.478 6.821 6.890 6.865 7.108 7.789 8.663 9.228 9.122 8.444 7.706 7.462 7.917 8.796 9.569 9.808 9.454 8.810 8.329 + 9.483 9.172 8.657 8.105 7.673 7.462 7.486 7.668 7.855 7.866 7.584 7.047 6.462 6.098 6.113 6.428 6.778 6.911 6.794 6.659 6.814 7.375 8.136 8.685 8.708 8.231 7.619 7.329 7.600 8.318 9.118 9.636 9.711 9.431 9.036 8.767 + 9.570 9.104 8.349 7.609 7.216 7.388 8.094 9.037 9.771 9.934 9.453 8.595 7.805 7.431 7.514 7.787 7.878 7.586 7.028 6.554 6.500 6.949 7.668 8.264 8.435 8.159 7.678 7.335 7.357 7.738 8.284 8.745 8.961 8.928 8.764 8.630 + 9.116 8.575 7.793 7.216 7.202 7.828 8.834 9.758 10.185 9.978 9.347 8.706 8.404 8.510 8.776 8.824 8.421 7.653 6.875 6.482 6.652 7.230 7.840 8.122 7.946 7.458 6.958 6.702 6.774 7.089 7.491 7.861 8.162 8.400 8.581 8.684 + 7.851 7.423 6.883 6.675 7.100 8.143 9.472 10.612 11.189 11.109 10.584 10.006 9.723 9.844 10.173 10.318 9.939 8.977 7.730 6.699 6.291 6.566 7.208 7.733 7.805 7.427 6.894 6.561 6.600 6.915 7.251 7.384 7.248 6.938 6.615 6.418 + 8.711 8.162 7.425 7.045 7.449 8.686 10.339 11.710 12.191 11.622 10.404 9.261 8.805 9.173 9.976 10.575 10.489 9.669 8.473 7.413 6.858 6.867 7.226 7.604 7.730 7.509 7.044 6.572 6.334 6.438 6.779 7.091 7.113 6.768 6.237 5.846 + 7.101 7.054 7.044 7.229 7.783 8.780 10.066 11.256 11.892 11.710 10.838 9.764 9.068 9.068 9.630 10.253 10.388 9.771 8.571 7.274 6.395 6.201 6.592 7.194 7.580 7.502 7.006 6.383 5.979 5.987 6.335 6.741 6.903 6.709 6.304 5.985 + 8.640 7.851 6.874 6.477 7.057 8.405 9.907 10.975 11.358 11.154 10.612 9.952 9.337 8.922 8.839 9.068 9.341 9.239 8.486 7.223 6.004 5.461 5.849 6.837 7.718 7.890 7.267 6.310 5.667 5.712 6.303 6.916 7.039 6.526 5.686 5.063 + 7.978 7.357 6.633 6.453 7.126 8.424 9.777 10.662 10.881 10.568 9.999 9.412 8.959 8.741 8.794 9.019 9.146 8.857 8.029 6.908 6.020 5.836 6.420 7.349 7.979 7.883 7.125 6.180 5.584 5.575 5.973 6.362 6.386 5.982 5.385 4.956 + 8.342 7.676 6.919 6.785 7.582 9.003 10.354 11.032 10.864 10.117 9.243 8.607 8.373 8.527 8.930 9.333 9.417 8.931 7.893 6.676 5.844 5.805 6.510 7.452 7.999 7.814 7.062 6.253 5.861 6.009 6.430 6.699 6.531 5.947 5.232 4.753 + 6.822 6.821 6.922 7.282 8.025 9.125 10.339 11.246 11.424 10.702 9.331 7.924 7.161 7.387 8.374 9.424 9.790 9.143 7.789 6.468 5.863 6.163 6.973 7.623 7.634 7.020 6.215 5.728 5.787 6.222 6.632 6.672 6.252 5.543 4.842 4.418 + 6.817 6.617 6.408 6.480 7.055 8.137 9.445 10.499 10.840 10.293 9.097 7.824 7.085 7.182 7.929 8.752 9.027 8.454 7.240 5.967 5.242 5.345 6.088 6.959 7.443 7.316 6.734 6.084 5.721 5.758 6.028 6.226 6.112 5.668 5.100 4.709 + 4.882 5.192 5.652 6.112 6.605 7.303 8.284 9.311 9.879 9.559 8.381 6.949 6.108 6.382 7.577 8.874 9.358 8.633 7.067 5.521 4.766 5.011 5.850 6.624 6.882 6.619 6.165 5.866 5.834 5.931 5.950 5.800 5.556 5.352 5.258 5.240 + 6.038 5.910 5.674 5.433 5.409 5.835 6.764 7.937 8.860 9.102 8.592 7.706 7.036 6.987 7.491 8.051 8.093 7.372 6.149 5.021 4.529 4.826 5.612 6.355 6.626 6.335 5.722 5.161 4.922 5.041 5.348 5.601 5.642 5.463 5.192 4.998 + 6.520 5.978 5.335 5.156 5.731 6.890 8.147 8.999 9.188 8.765 8.008 7.292 6.960 7.186 7.852 8.525 8.647 7.888 6.437 4.969 4.240 4.568 5.599 6.556 6.797 6.247 5.383 4.812 4.810 5.187 5.538 5.600 5.418 5.205 5.104 5.095 + 7.327 6.849 6.208 5.862 6.139 7.041 8.216 9.145 9.427 9.012 8.229 7.585 7.450 7.830 8.365 8.569 8.141 7.162 6.036 5.237 5.025 5.312 5.761 6.026 5.952 5.636 5.310 5.163 5.229 5.403 5.541 5.567 5.494 5.392 5.313 5.277 + 6.619 5.904 5.007 4.629 5.168 6.446 7.824 8.622 8.552 7.860 7.120 6.826 7.081 7.600 7.959 7.905 7.472 6.884 6.352 5.954 5.680 5.529 5.537 5.702 5.895 5.899 5.577 5.037 4.618 4.648 5.168 5.854 6.235 6.059 5.496 5.018 + 5.987 6.179 6.396 6.498 6.544 6.733 7.157 7.636 7.829 7.558 7.027 6.696 6.890 7.502 8.052 8.081 7.511 6.672 5.988 5.644 5.528 5.453 5.386 5.444 5.668 5.872 5.768 5.275 4.694 4.507 4.945 5.721 6.225 6.037 5.315 4.678 + 6.564 6.573 6.601 6.710 7.001 7.517 8.127 8.523 8.413 7.774 6.948 6.440 6.558 7.159 7.741 7.808 7.233 6.329 5.588 5.332 5.528 5.897 6.161 6.204 6.063 5.816 5.521 5.250 5.118 5.235 5.574 5.918 5.978 5.623 5.026 4.570 + 6.768 6.763 6.883 7.258 7.867 8.499 8.852 8.721 8.127 7.306 6.587 6.229 6.312 6.725 7.219 7.509 7.396 6.860 6.107 5.488 5.331 5.735 6.485 7.151 7.339 6.952 6.270 5.783 5.880 6.584 7.516 8.117 7.993 7.163 6.063 5.300 + 6.182 6.253 6.602 7.368 8.349 9.029 8.928 7.975 6.591 5.400 4.822 4.871 5.280 5.780 6.255 6.670 6.930 6.872 6.458 5.955 5.873 6.612 8.085 9.660 10.533 10.287 9.213 8.137 7.846 8.549 9.729 10.498 10.190 8.806 7.021 5.792 + 5.889 5.537 5.547 6.616 8.636 10.606 11.345 10.403 8.392 6.484 5.530 5.564 6.015 6.324 6.372 6.370 6.462 6.500 6.261 5.834 5.723 6.477 8.144 10.064 11.261 11.155 10.012 8.761 8.313 8.922 10.034 10.721 10.327 8.894 7.112 5.905 + 6.911 6.582 6.667 7.833 9.843 11.534 11.701 10.108 7.731 5.999 5.703 6.495 7.346 7.475 6.912 6.260 6.008 6.108 6.172 6.042 6.075 6.831 8.450 10.342 11.538 11.433 10.294 9.080 8.726 9.460 10.677 11.406 10.996 9.522 7.708 6.488 + 7.064 7.137 7.624 8.798 10.433 11.784 12.062 11.016 9.155 7.408 6.501 6.525 7.006 7.353 7.285 6.921 6.552 6.363 6.367 6.561 7.060 8.031 9.449 10.935 11.886 11.871 10.992 9.889 9.337 9.700 10.633 11.296 10.935 9.438 7.474 6.103 + 8.336 8.012 7.997 8.901 10.607 12.190 12.574 11.368 9.188 7.188 6.227 6.354 6.966 7.400 7.422 7.223 7.075 7.043 7.047 7.122 7.547 8.617 10.269 11.939 12.860 12.622 11.527 10.421 10.104 10.754 11.797 12.301 11.618 9.820 7.686 6.259 + 7.355 7.148 7.314 8.401 10.274 12.038 12.648 11.686 9.678 7.679 6.520 6.327 6.641 6.932 7.002 6.987 7.051 7.182 7.274 7.380 7.787 8.783 10.288 11.750 12.459 12.086 10.991 10.020 9.922 10.803 12.040 12.694 12.136 10.454 8.422 7.057 + 7.224 7.554 8.359 9.688 11.246 12.429 12.656 11.761 10.121 8.427 7.252 6.768 6.764 6.909 6.994 6.991 6.951 6.905 6.887 7.027 7.546 8.595 10.033 11.374 12.023 11.685 10.641 9.641 9.439 10.261 11.601 12.509 12.213 10.654 8.588 7.145 diff -Nru sphinxbase-0.8/test/regression/crontab sphinxbase-0.8+5prealpha/test/regression/crontab --- sphinxbase-0.8/test/regression/crontab 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/crontab 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -# This crontab is installed at sphinx@batman -# -# Use this as a template. The actual crontab files are located -# at ~sphinx/script/crontab.regression.batman (or .mangueira) -MAILTO=sphinx+regression@cs.cmu.edu -0 0 * * * $HOME/script/DailyDoxygen.sh -0 1 * * * (. $HOME/.profile; svn up $SF_ROOT/sphinx3/src/tests/regression/run_dailySTD.sh; $SF_ROOT/sphinx3/src/tests/regression/run_dailySTD.sh) -0 0 * * 3,7 (. $HOME/.profile; svn up $SF_ROOT/sphinx3/src/tests/regression/run_PERFFULL.sh; $SF_ROOT/sphinx3/src/tests/regression/run_PERFFULL.sh) -20 07 * * * (. $HOME/.profile; svn up $SF_ROOT/sphinxbase/test/regression/tutorial-check.sh; qsub -o $SF_ROOT/regression/`hostname`/tutorial.out -j oe $SF_ROOT/sphinxbase/test/regression/tutorial-check.sh) -20 05 * * * (. $HOME/.profile; svn up $SF_ROOT/sphinxbase/test/regression/launchCompileCheck.sh; $SF_ROOT/sphinxbase/test/regression/launchCompileCheck.sh) diff -Nru sphinxbase-0.8/test/regression/Makefile.am sphinxbase-0.8+5prealpha/test/regression/Makefile.am --- sphinxbase-0.8/test/regression/Makefile.am 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/Makefile.am 2015-03-24 17:32:31.000000000 +0000 @@ -1,5 +1,4 @@ EXTRA_DIST = \ - testfuncs_cygwin.sh \ chan3.cepview \ chan3-dither.cepview \ chan3.logspec \ @@ -12,8 +11,6 @@ chan3.wav \ chan3.sph \ chan3.f0 \ - tutorial-check.sh \ - crontab \ polite.gram \ test.gram \ test.command.fsg \ @@ -33,9 +30,19 @@ # Disable sphinx_fe tests for now if fixed-point due to imprecision if FIXED_POINT -TESTS = $(srcdir)/test-cepview.sh $(srcdir)/test-sphinx_pitch.sh +TESTS = test-cepview.sh test-sphinx_pitch.sh else -TESTS = $(srcdir)/test-*.sh +TESTS = \ + test-cepview.sh \ + test-sphinx_fe-ctl.sh \ + test-sphinx_fe-dct.sh \ + test-sphinx_fe-dither-seed.sh \ + test-sphinx_fe-logspec2cep.sh \ + test-sphinx_fe-logspec.sh \ + test-sphinx_fe.sh \ + test-sphinx_fe-smoothspec.sh \ + test-sphinx_jsgf2fsg.sh \ + test-sphinx_pitch.sh endif EXTRA_DIST += $(TESTS) diff -Nru sphinxbase-0.8/test/regression/Makefile.in sphinxbase-0.8+5prealpha/test/regression/Makefile.in --- sphinxbase-0.8/test/regression/Makefile.in 2012-12-12 17:28:54.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -34,15 +78,14 @@ build_triplet = @build@ host_triplet = @host@ subdir = test/regression -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/testfuncs.sh.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(srcdir)/testfuncs.sh.in $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -50,13 +93,234 @@ $(top_builddir)/include/sphinx_config.h CONFIG_CLEAN_FILES = testfuncs.sh CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -70,6 +334,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -79,9 +344,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -89,15 +352,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -113,27 +375,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -166,14 +434,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -182,13 +453,12 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = testfuncs_cygwin.sh chan3.cepview chan3-dither.cepview \ - chan3.logspec chan3-logspec.cepview chan3-smoothspec.cepview \ - chan3.ctl chan3.mfc chan3.raw chan3.2chan.wav chan3.wav \ - chan3.sph chan3.f0 tutorial-check.sh crontab polite.gram \ - test.gram test.command.fsg test.kleene.fsg \ - test.nestedRightRecursion.fsg test.nulltest.fsg \ - test.rightRecursion.fsg $(TESTS) +EXTRA_DIST = chan3.cepview chan3-dither.cepview chan3.logspec \ + chan3-logspec.cepview chan3-smoothspec.cepview chan3.ctl \ + chan3.mfc chan3.raw chan3.2chan.wav chan3.wav chan3.sph \ + chan3.f0 polite.gram test.gram test.command.fsg \ + test.kleene.fsg test.nestedRightRecursion.fsg \ + test.nulltest.fsg test.rightRecursion.fsg $(TESTS) CLEANFILES = test*.err test*.out \ test-sphinx_fe.mfc \ test-sphinx_fe.cepview \ @@ -198,13 +468,25 @@ chan3.wav.mfc \ chan3.raw.mfc -@FIXED_POINT_FALSE@TESTS = $(srcdir)/test-*.sh +@FIXED_POINT_FALSE@TESTS = \ +@FIXED_POINT_FALSE@ test-cepview.sh \ +@FIXED_POINT_FALSE@ test-sphinx_fe-ctl.sh \ +@FIXED_POINT_FALSE@ test-sphinx_fe-dct.sh \ +@FIXED_POINT_FALSE@ test-sphinx_fe-dither-seed.sh \ +@FIXED_POINT_FALSE@ test-sphinx_fe-logspec2cep.sh \ +@FIXED_POINT_FALSE@ test-sphinx_fe-logspec.sh \ +@FIXED_POINT_FALSE@ test-sphinx_fe.sh \ +@FIXED_POINT_FALSE@ test-sphinx_fe-smoothspec.sh \ +@FIXED_POINT_FALSE@ test-sphinx_jsgf2fsg.sh \ +@FIXED_POINT_FALSE@ test-sphinx_pitch.sh + # Disable sphinx_fe tests for now if fixed-point due to imprecision -@FIXED_POINT_TRUE@TESTS = $(srcdir)/test-cepview.sh $(srcdir)/test-sphinx_pitch.sh +@FIXED_POINT_TRUE@TESTS = test-cepview.sh test-sphinx_pitch.sh all: all-am .SUFFIXES: +.SUFFIXES: .log .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -214,9 +496,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/regression/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/regression/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/regression/Makefile + $(AUTOMAKE) --foreign test/regression/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -243,104 +525,238 @@ clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: -ctags: CTAGS -CTAGS: +ctags CTAGS: +cscope cscopelist: -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ + +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test-cepview.sh.log: test-cepview.sh + @p='test-cepview.sh'; \ + b='test-cepview.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-sphinx_fe-ctl.sh.log: test-sphinx_fe-ctl.sh + @p='test-sphinx_fe-ctl.sh'; \ + b='test-sphinx_fe-ctl.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-sphinx_fe-dct.sh.log: test-sphinx_fe-dct.sh + @p='test-sphinx_fe-dct.sh'; \ + b='test-sphinx_fe-dct.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-sphinx_fe-dither-seed.sh.log: test-sphinx_fe-dither-seed.sh + @p='test-sphinx_fe-dither-seed.sh'; \ + b='test-sphinx_fe-dither-seed.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-sphinx_fe-logspec2cep.sh.log: test-sphinx_fe-logspec2cep.sh + @p='test-sphinx_fe-logspec2cep.sh'; \ + b='test-sphinx_fe-logspec2cep.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-sphinx_fe-logspec.sh.log: test-sphinx_fe-logspec.sh + @p='test-sphinx_fe-logspec.sh'; \ + b='test-sphinx_fe-logspec.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-sphinx_fe.sh.log: test-sphinx_fe.sh + @p='test-sphinx_fe.sh'; \ + b='test-sphinx_fe.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-sphinx_fe-smoothspec.sh.log: test-sphinx_fe-smoothspec.sh + @p='test-sphinx_fe-smoothspec.sh'; \ + b='test-sphinx_fe-smoothspec.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-sphinx_jsgf2fsg.sh.log: test-sphinx_jsgf2fsg.sh + @p='test-sphinx_jsgf2fsg.sh'; \ + b='test-sphinx_jsgf2fsg.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test-sphinx_pitch.sh.log: test-sphinx_pitch.sh + @p='test-sphinx_pitch.sh'; \ + b='test-sphinx_pitch.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -387,11 +803,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -472,15 +896,16 @@ .MAKE: check-am install-am install-strip .PHONY: all all-am check check-TESTS check-am clean clean-generic \ - clean-libtool distclean distclean-generic distclean-libtool \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + clean-libtool cscopelist-am ctags-am distclean \ + distclean-generic distclean-libtool distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am recheck tags-am \ uninstall uninstall-am diff -Nru sphinxbase-0.8/test/regression/test.command.fsg sphinxbase-0.8+5prealpha/test/regression/test.command.fsg --- sphinxbase-0.8/test/regression/test.command.fsg 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/test.command.fsg 2015-03-24 17:26:35.000000000 +0000 @@ -1,49 +1,24 @@ FSG_BEGIN -NUM_STATES 33 +NUM_STATES 10 START_STATE 0 -FINAL_STATE 1 -TRANSITION 0 2 1.000000 -TRANSITION 2 4 1.000000 -TRANSITION 3 14 1.000000 -TRANSITION 4 7 0.200004 oh -TRANSITION 4 10 0.200004 could -TRANSITION 4 12 0.200004 kindly -TRANSITION 4 13 0.200004 please -TRANSITION 4 6 0.200004 -TRANSITION 5 3 1.000000 -TRANSITION 6 5 1.000000 -TRANSITION 7 8 1.000000 mighty -TRANSITION 8 9 1.000000 computer -TRANSITION 9 5 1.000000 -TRANSITION 10 11 1.000000 you -TRANSITION 11 5 1.000000 -TRANSITION 12 5 1.000000 -TRANSITION 13 5 1.000000 -TRANSITION 14 20 0.500041 -TRANSITION 14 16 0.500041 -TRANSITION 15 24 1.000000 -TRANSITION 16 18 0.500041 stop -TRANSITION 16 19 0.500041 stop -TRANSITION 17 15 1.000000 -TRANSITION 18 17 1.000000 -TRANSITION 19 16 1.000000 -TRANSITION 19 17 1.000000 -TRANSITION 20 23 0.500041 go -TRANSITION 20 22 0.500041 -TRANSITION 21 15 1.000000 -TRANSITION 22 21 1.000000 -TRANSITION 23 20 1.000000 -TRANSITION 23 21 1.000000 -TRANSITION 24 26 1.000000 -TRANSITION 25 1 1.000000 -TRANSITION 26 29 0.250016 thank -TRANSITION 26 31 0.250016 thanks -TRANSITION 26 32 0.250016 please -TRANSITION 26 28 0.250016 -TRANSITION 27 25 1.000000 -TRANSITION 28 27 1.000000 -TRANSITION 29 30 1.000000 you -TRANSITION 30 27 1.000000 -TRANSITION 31 27 1.000000 -TRANSITION 32 27 1.000000 +FINAL_STATE 8 +TRANSITION 0 1 1.000000 please +TRANSITION 0 1 1.000000 kindly +TRANSITION 0 2 1.000000 oh +TRANSITION 0 4 1.000000 could +TRANSITION 0 1 1.000000 +TRANSITION 1 5 1.000000 stop +TRANSITION 1 6 1.000000 stop +TRANSITION 1 7 1.000000 go +TRANSITION 1 5 1.000000 +TRANSITION 2 3 1.000000 mighty +TRANSITION 3 1 1.000000 computer +TRANSITION 4 1 1.000000 you +TRANSITION 5 8 1.000000 please +TRANSITION 5 8 1.000000 thanks +TRANSITION 5 9 1.000000 thank +TRANSITION 5 8 1.000000 +TRANSITION 6 1 1.000000 +TRANSITION 7 1 1.000000 +TRANSITION 9 8 1.000000 you FSG_END diff -Nru sphinxbase-0.8/test/regression/testfuncs_cygwin.sh sphinxbase-0.8+5prealpha/test/regression/testfuncs_cygwin.sh --- sphinxbase-0.8/test/regression/testfuncs_cygwin.sh 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/testfuncs_cygwin.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -# Utility functions and parameters for regression tests - -# Predefined directories you may need -: ${CONFIGURATION:=Debug} -builddir="../../bin/$CONFIGURATION" -sourcedir="../.." -tests=$sourcedir/test - -# Automatically report failures on exit -failures="" -trap "report_failures" 0 - -run_program() { - program=`basename $1` - shift - "$builddir/$program" $@ -} - -debug_program() { - program=`basename $1` - shift - gdb --args "$builddir/$program" $@ -} - -memcheck_program() { - program=`basename $1` - shift - valgrind --leak-check=full "$builddir/$program" $@ -} - -pass() { - title="$1" - echo "$title PASSED" -} - -fail() { - title="$1" - echo "$title FAILED" - failures="$failures,$title" -} - -compare_table() { - title="$1" - shift - if perl "$tests/compare_table.pl" $@ | grep SUCCESS >/dev/null 2>&1; then - pass "$title" - else - fail "$title" - fi -} - -report_failures() { - if test x"$failures" = x; then - echo "All sub-tests passed" - exit 0 - else - echo "Sub-tests failed:$failures" | sed -e 's/,/ /g' - exit 1 - fi -} diff -Nru sphinxbase-0.8/test/regression/test.kleene.fsg sphinxbase-0.8+5prealpha/test/regression/test.kleene.fsg --- sphinxbase-0.8/test/regression/test.kleene.fsg 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/test.kleene.fsg 2015-03-24 17:26:35.000000000 +0000 @@ -1,22 +1,14 @@ FSG_BEGIN -NUM_STATES 14 +NUM_STATES 7 START_STATE 0 -FINAL_STATE 1 -TRANSITION 0 2 1.000000 -TRANSITION 2 4 0.500041 -TRANSITION 2 5 0.500041 -TRANSITION 3 12 1.000000 don't -TRANSITION 4 3 1.000000 -TRANSITION 5 7 0.333356 oh -TRANSITION 5 10 0.333356 kindly -TRANSITION 5 11 0.333356 please -TRANSITION 6 2 1.000000 -TRANSITION 6 3 1.000000 -TRANSITION 7 8 1.000000 mighty -TRANSITION 8 9 1.000000 computer -TRANSITION 9 6 1.000000 -TRANSITION 10 6 1.000000 -TRANSITION 11 6 1.000000 -TRANSITION 12 13 1.000000 crash -TRANSITION 13 1 1.000000 +FINAL_STATE 6 +TRANSITION 0 2 1.000000 oh +TRANSITION 0 4 1.000000 please +TRANSITION 0 4 1.000000 kindly +TRANSITION 0 1 1.000000 +TRANSITION 1 5 1.000000 don't +TRANSITION 2 3 1.000000 mighty +TRANSITION 3 4 1.000000 computer +TRANSITION 4 0 1.000000 +TRANSITION 5 6 1.000000 crash FSG_END diff -Nru sphinxbase-0.8/test/regression/test.nestedRightRecursion.fsg sphinxbase-0.8+5prealpha/test/regression/test.nestedRightRecursion.fsg --- sphinxbase-0.8/test/regression/test.nestedRightRecursion.fsg 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/test.nestedRightRecursion.fsg 2015-03-24 17:26:35.000000000 +0000 @@ -1,13 +1,7 @@ FSG_BEGIN -NUM_STATES 6 +NUM_STATES 2 START_STATE 0 FINAL_STATE 1 -TRANSITION 0 5 0.500041 something -TRANSITION 0 2 0.500041 -TRANSITION 2 4 0.500041 another -TRANSITION 2 0 0.500041 -TRANSITION 2 3 1.000000 -TRANSITION 3 1 1.000000 -TRANSITION 4 3 1.000000 -TRANSITION 5 1 1.000000 +TRANSITION 0 1 1.000000 something +TRANSITION 0 1 1.000000 another FSG_END diff -Nru sphinxbase-0.8/test/regression/test.nulltest.fsg sphinxbase-0.8+5prealpha/test/regression/test.nulltest.fsg --- sphinxbase-0.8/test/regression/test.nulltest.fsg 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/test.nulltest.fsg 2015-03-24 17:26:35.000000000 +0000 @@ -1,42 +1,17 @@ FSG_BEGIN -NUM_STATES 35 +NUM_STATES 10 START_STATE 0 -FINAL_STATE 1 -TRANSITION 0 2 1.000000 -TRANSITION 2 4 1.000000 -TRANSITION 3 13 1.000000 +FINAL_STATE 9 +TRANSITION 0 1 1.000000 one +TRANSITION 1 2 1.000000 and +TRANSITION 1 2 1.000000 +TRANSITION 2 3 1.000000 one +TRANSITION 3 4 1.000000 two +TRANSITION 4 5 1.000000 and TRANSITION 4 5 1.000000 -TRANSITION 5 7 1.000000 one -TRANSITION 6 3 1.000000 +TRANSITION 5 6 1.000000 two +TRANSITION 6 7 1.000000 three +TRANSITION 7 8 1.000000 and TRANSITION 7 8 1.000000 -TRANSITION 8 11 0.500041 and -TRANSITION 8 10 0.500041 -TRANSITION 9 12 1.000000 one -TRANSITION 10 9 1.000000 -TRANSITION 11 9 1.000000 -TRANSITION 12 6 1.000000 -TRANSITION 13 15 1.000000 -TRANSITION 14 24 1.000000 -TRANSITION 15 16 1.000000 -TRANSITION 16 18 1.000000 two -TRANSITION 17 14 1.000000 -TRANSITION 18 19 1.000000 -TRANSITION 19 22 0.500041 and -TRANSITION 19 21 0.500041 -TRANSITION 20 23 1.000000 two -TRANSITION 21 20 1.000000 -TRANSITION 22 20 1.000000 -TRANSITION 23 17 1.000000 -TRANSITION 24 26 1.000000 -TRANSITION 25 1 1.000000 -TRANSITION 26 27 1.000000 -TRANSITION 27 29 1.000000 three -TRANSITION 28 25 1.000000 -TRANSITION 29 30 1.000000 -TRANSITION 30 33 0.500041 and -TRANSITION 30 32 0.500041 -TRANSITION 31 34 1.000000 three -TRANSITION 32 31 1.000000 -TRANSITION 33 31 1.000000 -TRANSITION 34 28 1.000000 +TRANSITION 8 9 1.000000 three FSG_END diff -Nru sphinxbase-0.8/test/regression/test.rightRecursion.fsg sphinxbase-0.8+5prealpha/test/regression/test.rightRecursion.fsg --- sphinxbase-0.8/test/regression/test.rightRecursion.fsg 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/test.rightRecursion.fsg 2015-03-24 17:26:35.000000000 +0000 @@ -1,21 +1,11 @@ FSG_BEGIN -NUM_STATES 13 +NUM_STATES 3 START_STATE 0 -FINAL_STATE 1 -TRANSITION 0 2 0.500041 -TRANSITION 0 9 0.500041 -TRANSITION 2 4 1.000000 -TRANSITION 3 1 1.000000 -TRANSITION 4 6 0.500041 start -TRANSITION 4 7 0.500041 stop -TRANSITION 5 8 1.000000 and -TRANSITION 6 5 1.000000 -TRANSITION 7 5 1.000000 -TRANSITION 8 0 1.000000 -TRANSITION 8 3 1.000000 -TRANSITION 9 11 0.500041 start -TRANSITION 9 12 0.500041 stop -TRANSITION 10 1 1.000000 -TRANSITION 11 10 1.000000 -TRANSITION 12 10 1.000000 +FINAL_STATE 0 +TRANSITION 0 0 1.000000 stop +TRANSITION 0 0 1.000000 start +TRANSITION 0 1 1.000000 stop +TRANSITION 0 1 1.000000 start +TRANSITION 1 2 1.000000 and +TRANSITION 2 0 1.000000 FSG_END diff -Nru sphinxbase-0.8/test/regression/test-sphinx_jsgf2fsg.sh sphinxbase-0.8+5prealpha/test/regression/test-sphinx_jsgf2fsg.sh --- sphinxbase-0.8/test/regression/test-sphinx_jsgf2fsg.sh 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/test-sphinx_jsgf2fsg.sh 2015-03-24 17:26:35.000000000 +0000 @@ -11,7 +11,7 @@ export JSGF_PATH for r in $rules; do run_program sphinx_jsgf2fsg/sphinx_jsgf2fsg \ - -jsgf $tests/regression/test.gram -rule $r -fsg $r.out 2>>$tmpout + -jsgf $tests/regression/test.gram -toprule $r -fsg $r.out 2>>$tmpout compare_table $r $r.out $tests/regression/$r.fsg done diff -Nru sphinxbase-0.8/test/regression/tutorial-check.sh sphinxbase-0.8+5prealpha/test/regression/tutorial-check.sh --- sphinxbase-0.8/test/regression/tutorial-check.sh 2012-12-05 14:05:39.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/regression/tutorial-check.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,119 +0,0 @@ -#!/bin/bash -x - -# Check if we're running under PBS and print information useful for debugging -if [ -n "$PBS_ENVIRONMENT" ]; then - echo "" - echo "This job was submitted by user: $PBS_O_LOGNAME" - echo "This job was submitted to host: $PBS_O_HOST" - echo "This job was submitted to queue: $PBS_O_QUEUE" - echo "PBS working directory: $PBS_O_WORKDIR" - echo "PBS job id: $PBS_JOBID" - echo "PBS job name: $PBS_JOBNAME" - echo "PBS environment: $PBS_ENVIRONMENT" - echo "" - echo "This script is running on `hostname` " - echo "" -fi - -# make sure that /usr/ucb is here, towards the beginning, to make sure -# that the 'ps' command in Solaris is compatible with the gnu one. -export PATH=/usr/ucb:/usr/local/bin:${PATH} - -loopUntilSuccess () { - cmd=$@ - # start loop to download code - count=0; - - while ! $cmd; do - count=`expr $count + 1` - if [ $count -gt 50 ]; then - # not successful, and we attempted it too many times. Clean up and leave. - return $count - fi - done -} - -# Check that we have all executables -if ! WGET=`command -v wget 2>&1`; then exit 1; fi -if ! SVN=`command -v svn 2>&1`; then exit 1; fi -if ! PERL=`command -v perl 2>&1`; then exit 1; fi -if ! MAKE=`command -v gmake 2>&1`; then - if ! MAKE=`command -v make 2>&1`; then exit 1; fi -fi -if ! TAR=`command -v gtar 2>&1`; then - if ! TAR=`command -v tar 2>&1`; then exit 1; fi -fi -if ! MAIL=`command -v mhmail 2>&1`; then - if ! MAIL=`command -v mailx 2>&1`; then - if ! MAIL=`command -v sendmail 2>&1`; then - if ! MAIL=`command -v mutt 2>&1`; then exit 1; fi - fi - fi -fi - -# Create temp directory -temp_dir=/tmp/temp$$ -mkdir $temp_dir -pushd $temp_dir > /dev/null - -LOG=$temp_dir/log.txt -echo > $LOG -MAILLIST=cmusphinx-results@lists.sourceforge.net - -# Get the data -${WGET} -q http://www.speech.cs.cmu.edu/databases/an4/an4_sphere.tar.gz -${TAR} -xzf an4_sphere.tar.gz -/bin/rm an4_sphere.tar.gz - -# Get sphinxbase -if (loopUntilSuccess ${SVN} co https://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/trunk/sphinxbase > /dev/null && -cd sphinxbase && -./autogen.sh && -./autogen.sh CFLAGS="-O2 -Wall" --prefix=`(cd ..; pwd)`/build && -${MAKE} all install) >> $LOG 2>&1 ; then - -# Get the trainer -if (loopUntilSuccess ${SVN} co https://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/trunk/SphinxTrain > /dev/null && -cd SphinxTrain && -./configure CFLAGS="-O2 -Wall" --with-sphinxbase=$temp_dir/sphinxbase && -${MAKE} && -${PERL} scripts_pl/setup_tutorial.pl an4) >> $LOG 2>&1 ; then - -# Get the decoder -if (loopUntilSuccess ${SVN} co https://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/trunk/sphinx3 > /dev/null && -cd sphinx3 && -./autogen.sh && -./autogen.sh CFLAGS="-O2 -Wall" --prefix=`(cd ..; pwd)`/build --with-sphinxbase=$temp_dir/sphinxbase && -${MAKE} all install && -${PERL} scripts/setup_tutorial.pl an4) >> $LOG 2>&1 ; then - -# Run it -cd an4 && -perl scripts_pl/make_feats.pl -ctl etc/an4_train.fileids >> $LOG 2>&1 && -perl scripts_pl/make_feats.pl -ctl etc/an4_test.fileids >> $LOG 2>&1 && -perl scripts_pl/RunAll.pl >> $LOG 2>&1 && -perl scripts_pl/decode/slave.pl >> $LOG 2>&1 - -# end of if (sphinx3) -fi -# end of if (SphinxTrain) -fi -# end of sphinxbase -fi - -# Check whether the Word Error Rate is reasonable, hardwired for now -if SER=`grep 'SENTENCE ERROR' $LOG 2>&1`; then -SUCCESS=`echo $SER | awk '{d = $(3) - 57};{if (d < 0) d = -d};{if (d < 2) print "1"}'`; -fi; - -# Send mail if we failed -if test x${SUCCESS} == x ; then -cat `find $temp_dir/an4/logdir/ -type f -print | tail -1` >> ${LOG} -$MAIL -s "Tutorial failed" ${MAILLIST} < ${LOG} -else -echo $SER | $MAIL -s "Tutorial succeded" ${MAILLIST} -fi - -# Remove what we created -popd > /dev/null -/bin/rm -rf $temp_dir diff -Nru sphinxbase-0.8/test/unit/Makefile.am sphinxbase-0.8+5prealpha/test/unit/Makefile.am --- sphinxbase-0.8/test/unit/Makefile.am 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -6,7 +6,7 @@ maybe_threads = test_thread endif -SUBDIRS=test_ad \ +SUBDIRS = \ test_alloc \ test_bitvec \ test_case \ diff -Nru sphinxbase-0.8/test/unit/Makefile.in sphinxbase-0.8+5prealpha/test/unit/Makefile.in --- sphinxbase-0.8/test/unit/Makefile.in 2012-12-12 17:28:54.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -34,15 +78,14 @@ build_triplet = @build@ host_triplet = @host@ subdir = test/unit -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/testfuncs.sh.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -50,26 +93,63 @@ $(top_builddir)/include/sphinx_config.h CONFIG_CLEAN_FILES = testfuncs.sh CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive 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_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = test_ad test_alloc test_bitvec test_case test_string \ - test_cmdln test_hash test_matrix test_fe test_feat \ - test_lineiter test_logmath test_ngram test_fsg test_util \ - test_thread +DIST_SUBDIRS = test_alloc test_bitvec test_case test_string test_cmdln \ + test_hash test_matrix test_fe test_feat test_lineiter \ + test_logmath test_ngram test_fsg test_util test_thread DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -98,6 +178,7 @@ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -111,6 +192,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -120,9 +202,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -130,15 +210,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -154,27 +233,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -207,14 +292,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -225,7 +313,7 @@ top_srcdir = @top_srcdir@ @USE_LAPACK_TRUE@maybe_lapack = test_matrix @USE_THREADS_TRUE@maybe_threads = test_thread -SUBDIRS = test_ad \ +SUBDIRS = \ test_alloc \ test_bitvec \ test_case \ @@ -254,9 +342,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/Makefile + $(AUTOMAKE) --foreign test/unit/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -285,22 +373,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -315,57 +406,12 @@ $(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: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -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) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -381,12 +427,7 @@ 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -398,15 +439,11 @@ $$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; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -415,6 +452,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -451,13 +503,10 @@ 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 \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -492,10 +541,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -573,22 +627,20 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_ad/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_ad/Makefile.am --- sphinxbase-0.8/test/unit/test_ad/Makefile.am 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ad/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -check_PROGRAMS = test_ad_read test_ad_copy - -TESTS = test_ad_read test_ad_copy -INCLUDES = \ - -I$(top_srcdir)/include/sphinxbase \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/include \ - -DTESTDATADIR=\"$(top_srcdir)/test/regression\" - -noinst_HEADERS = test_macros.h - -LDADD = ${top_builddir}/src/libsphinxbase/libsphinxbase.la \ - ${top_builddir}/src/libsphinxad/libsphinxad.la diff -Nru sphinxbase-0.8/test/unit/test_ad/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_ad/Makefile.in --- sphinxbase-0.8/test/unit/test_ad/Makefile.in 2012-12-12 17:28:54.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ad/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,607 +0,0 @@ -# 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@ -check_PROGRAMS = test_ad_read$(EXEEXT) test_ad_copy$(EXEEXT) -TESTS = test_ad_read$(EXEEXT) test_ad_copy$(EXEEXT) -subdir = test/unit/test_ad -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/include/config.h \ - $(top_builddir)/include/sphinx_config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -test_ad_copy_SOURCES = test_ad_copy.c -test_ad_copy_OBJECTS = test_ad_copy.$(OBJEXT) -test_ad_copy_LDADD = $(LDADD) -test_ad_copy_DEPENDENCIES = \ - ${top_builddir}/src/libsphinxbase/libsphinxbase.la \ - ${top_builddir}/src/libsphinxad/libsphinxad.la -test_ad_read_SOURCES = test_ad_read.c -test_ad_read_OBJECTS = test_ad_read.$(OBJEXT) -test_ad_read_LDADD = $(LDADD) -test_ad_read_DEPENDENCIES = \ - ${top_builddir}/src/libsphinxbase/libsphinxbase.la \ - ${top_builddir}/src/libsphinxad/libsphinxad.la -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --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 $@ -SOURCES = test_ad_copy.c test_ad_read.c -DIST_SOURCES = test_ad_copy.c test_ad_read.c -HEADERS = $(noinst_HEADERS) -ETAGS = etags -CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -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@ -HAVE_CYTHON = @HAVE_CYTHON@ -HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBOBJS = @LTLIBOBJS@ -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@ -PKG_CONFIG = @PKG_CONFIG@ -PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ -RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ -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_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ -ad_files = @ad_files@ -ad_libs = @ad_libs@ -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@ -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_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -INCLUDES = \ - -I$(top_srcdir)/include/sphinxbase \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/include \ - -DTESTDATADIR=\"$(top_srcdir)/test/regression\" - -noinst_HEADERS = test_macros.h -LDADD = ${top_builddir}/src/libsphinxbase/libsphinxbase.la \ - ${top_builddir}/src/libsphinxad/libsphinxad.la - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_ad/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_ad/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -test_ad_copy$(EXEEXT): $(test_ad_copy_OBJECTS) $(test_ad_copy_DEPENDENCIES) - @rm -f test_ad_copy$(EXEEXT) - $(LINK) $(test_ad_copy_OBJECTS) $(test_ad_copy_LDADD) $(LIBS) -test_ad_read$(EXEEXT): $(test_ad_read_OBJECTS) $(test_ad_read_DEPENDENCIES) - @rm -f test_ad_read$(EXEEXT) - $(LINK) $(test_ad_read_OBJECTS) $(test_ad_read_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ad_copy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ad_read.Po@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 $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -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 - -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ - fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ - else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ - fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ - else \ - skipped="($$skip tests were not run)"; \ - fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(HEADERS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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-checkPROGRAMS clean-generic clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru sphinxbase-0.8/test/unit/test_ad/test_ad_copy.c sphinxbase-0.8+5prealpha/test/unit/test_ad/test_ad_copy.c --- sphinxbase-0.8/test/unit/test_ad/test_ad_copy.c 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ad/test_ad_copy.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ -/* -*- c-basic-offset: 4 -*- */ - -#include "config.h" -#include "ad.h" -#include "cont_ad.h" -#include "ckd_alloc.h" -#include "byteorder.h" -#include "test_macros.h" - -#include -#include - -#ifndef WORDS_BIGENDIAN -#define WORDS_BIGENDIAN 0 -#endif - -int -main(int argc, char *argv[]) -{ - cont_ad_t *cont; - FILE *infp; - int16 buf[512]; - int listening; - int k, n_calib_samp; - int16 *calib, *cptr; - - TEST_ASSERT(infp = fopen(TESTDATADIR "/chan3.raw", "rb")); - TEST_ASSERT(cont = cont_ad_init(NULL, NULL)); - - n_calib_samp = cont_ad_calib_size(cont); - calib = ckd_malloc(n_calib_samp * 2); - printf("Reading %d calibration samples\n", n_calib_samp); - TEST_ASSERT(fread(calib, 2, n_calib_samp, infp) == n_calib_samp); - printf("Calibrating...\n"); - TEST_EQUAL(0, cont_ad_calib_loop(cont, calib, n_calib_samp)); - printf("Calibrated!\n"); - - listening = FALSE; - cptr = calib; - while (1) { - /* Use up the calibration samples first. */ - if (n_calib_samp) { - k = n_calib_samp; - if (k > 512) - k = 512; - memcpy(buf, cptr, 512 * 2); - cptr += k; - n_calib_samp -= k; - if (k < 512) - k = fread(buf + k, 2, 512-k, infp); - } - else { - k = fread(buf, 2, 512, infp); - } - - /* End of file. */ - if (k < 256) { /* FIXME: It should do something useful with fewer samples. */ - if (listening) { - printf("End of file at %.3f seconds\n", - (double)(cont->read_ts - k) / 16000); - } - break; - } - - k = cont_ad_read(cont, buf, k); - - if (cont->state == CONT_AD_STATE_SIL) { - /* Has there been enough silence to cut the utterance? */ - if (listening && cont->seglen > 8000) { - printf("End of utterance at %.3f seconds\n", - (double)(cont->read_ts - k - cont->seglen) / 16000); - listening = FALSE; - } - } - else { - if (!listening) { - printf("Start of utterance at %.3f seconds\n", - (double)(cont->read_ts - k) / 16000); - listening = TRUE; - } - } - } - - ckd_free(calib); - cont_ad_close(cont); - fclose(infp); - return 0; -} diff -Nru sphinxbase-0.8/test/unit/test_ad/test_ad_read.c sphinxbase-0.8+5prealpha/test/unit/test_ad/test_ad_read.c --- sphinxbase-0.8/test/unit/test_ad/test_ad_read.c 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ad/test_ad_read.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -/* -*- c-basic-offset: 4 -*- */ -#include "config.h" -#include "ad.h" -#include "cont_ad.h" -#include "byteorder.h" -#include "test_macros.h" - -#include - -#ifndef WORDS_BIGENDIAN -#define WORDS_BIGENDIAN 0 -#endif - -FILE *infp; - -static int32 -file_ad_read(ad_rec_t * r, int16 * buf, int32 max) -{ - int32 i, k; - - k = fread(buf, sizeof(int16), max, infp); - if (WORDS_BIGENDIAN) { - for (i = 0; i < k; i++) { - SWAP_INT16(&buf[i]); - } - } - - return ((k > 0) ? k : -1); -} - -int -main(int argc, char *argv[]) -{ - cont_ad_t *cont; - ad_rec_t ad; - int16 buf[512]; - int listening; - - ad.sps = 16000; - ad.bps = 2; - - TEST_ASSERT(infp = fopen(TESTDATADIR "/chan3.raw", "rb")); - TEST_ASSERT(cont = cont_ad_init(&ad, file_ad_read)); - - printf("Calibrating ..."); - fflush(stdout); - if (cont_ad_calib(cont) < 0) - printf(" failed; file too short?\n"); - else - printf(" done after %ld samples\n", ftell(infp) / 2); - rewind(infp); - - listening = FALSE; - while (1) { - int k = cont_ad_read(cont, buf, 512); - /* End of file. */ - if (k < 0) { - if (listening) { - printf("End of file at %.3f seconds\n", - (double)(cont->read_ts - k) / 16000); - } - break; - } - - if (cont->state == CONT_AD_STATE_SIL) { - /* Has there been enough silence to cut the utterance? */ - if (listening && cont->seglen > 8000) { - printf("End of utterance at %.3f seconds\n", - (double)(cont->read_ts - k - cont->seglen) / 16000); - listening = FALSE; - } - } - else { - if (!listening) { - printf("Start of utterance at %.3f seconds\n", - (double)(cont->read_ts - k) / 16000); - listening = TRUE; - } - } - } - - cont_ad_close(cont); - fclose(infp); - return 0; -} diff -Nru sphinxbase-0.8/test/unit/test_ad/test_macros.h sphinxbase-0.8+5prealpha/test/unit/test_ad/test_macros.h --- sphinxbase-0.8/test/unit/test_ad/test_macros.h 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ad/test_macros.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -#include -#include - -#include "logmath.h" - -#define EPSILON 0.01 -#define TEST_ASSERT(x) if (!(x)) { fprintf(stderr, "FAIL: %s\n", #x); exit(1); } -#define TEST_EQUAL(a,b) TEST_ASSERT((a) == (b)) -#define TEST_EQUAL_FLOAT(a,b) TEST_ASSERT(fabs((a) - (b)) < EPSILON) -#define LOG_EPSILON 20 -#define TEST_EQUAL_LOG(a,b) TEST_ASSERT(abs((a) - (b)) < LOG_EPSILON) diff -Nru sphinxbase-0.8/test/unit/test_alloc/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_alloc/Makefile.am --- sphinxbase-0.8/test/unit/test_alloc/Makefile.am 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_alloc/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -3,7 +3,7 @@ TESTS = test_ckd_alloc test_ckd_alloc_catch test_ckd_alloc_fail.sh test_ckd_alloc_abort.sh \ test_listelem_alloc -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ diff -Nru sphinxbase-0.8/test/unit/test_alloc/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_alloc/Makefile.in --- sphinxbase-0.8/test/unit/test_alloc/Makefile.in 2012-12-12 17:28:54.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_alloc/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -41,15 +85,15 @@ test_ckd_alloc_fail.sh test_ckd_alloc_abort.sh \ test_listelem_alloc$(EXEEXT) subdir = test/unit/test_alloc -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -62,6 +106,10 @@ test_ckd_alloc_LDADD = $(LDADD) test_ckd_alloc_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = test_ckd_alloc_abort_SOURCES = test_ckd_alloc_abort.c test_ckd_alloc_abort_OBJECTS = test_ckd_alloc_abort.$(OBJEXT) test_ckd_alloc_abort_LDADD = $(LDADD) @@ -82,33 +130,279 @@ test_listelem_alloc_LDADD = $(LDADD) test_listelem_alloc_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = test_ckd_alloc.c test_ckd_alloc_abort.c \ test_ckd_alloc_catch.c test_ckd_alloc_fail.c \ test_listelem_alloc.c DIST_SOURCES = test_ckd_alloc.c test_ckd_alloc_abort.c \ test_ckd_alloc_catch.c test_ckd_alloc_fail.c \ test_listelem_alloc.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -122,6 +416,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -131,9 +426,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -141,15 +434,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -165,27 +457,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -218,14 +516,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -234,7 +535,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -246,7 +547,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -256,9 +557,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_alloc/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_alloc/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_alloc/Makefile + $(AUTOMAKE) --foreign test/unit/test_alloc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -286,21 +587,26 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_ckd_alloc$(EXEEXT): $(test_ckd_alloc_OBJECTS) $(test_ckd_alloc_DEPENDENCIES) + +test_ckd_alloc$(EXEEXT): $(test_ckd_alloc_OBJECTS) $(test_ckd_alloc_DEPENDENCIES) $(EXTRA_test_ckd_alloc_DEPENDENCIES) @rm -f test_ckd_alloc$(EXEEXT) - $(LINK) $(test_ckd_alloc_OBJECTS) $(test_ckd_alloc_LDADD) $(LIBS) -test_ckd_alloc_abort$(EXEEXT): $(test_ckd_alloc_abort_OBJECTS) $(test_ckd_alloc_abort_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_ckd_alloc_OBJECTS) $(test_ckd_alloc_LDADD) $(LIBS) + +test_ckd_alloc_abort$(EXEEXT): $(test_ckd_alloc_abort_OBJECTS) $(test_ckd_alloc_abort_DEPENDENCIES) $(EXTRA_test_ckd_alloc_abort_DEPENDENCIES) @rm -f test_ckd_alloc_abort$(EXEEXT) - $(LINK) $(test_ckd_alloc_abort_OBJECTS) $(test_ckd_alloc_abort_LDADD) $(LIBS) -test_ckd_alloc_catch$(EXEEXT): $(test_ckd_alloc_catch_OBJECTS) $(test_ckd_alloc_catch_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_ckd_alloc_abort_OBJECTS) $(test_ckd_alloc_abort_LDADD) $(LIBS) + +test_ckd_alloc_catch$(EXEEXT): $(test_ckd_alloc_catch_OBJECTS) $(test_ckd_alloc_catch_DEPENDENCIES) $(EXTRA_test_ckd_alloc_catch_DEPENDENCIES) @rm -f test_ckd_alloc_catch$(EXEEXT) - $(LINK) $(test_ckd_alloc_catch_OBJECTS) $(test_ckd_alloc_catch_LDADD) $(LIBS) -test_ckd_alloc_fail$(EXEEXT): $(test_ckd_alloc_fail_OBJECTS) $(test_ckd_alloc_fail_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_ckd_alloc_catch_OBJECTS) $(test_ckd_alloc_catch_LDADD) $(LIBS) + +test_ckd_alloc_fail$(EXEEXT): $(test_ckd_alloc_fail_OBJECTS) $(test_ckd_alloc_fail_DEPENDENCIES) $(EXTRA_test_ckd_alloc_fail_DEPENDENCIES) @rm -f test_ckd_alloc_fail$(EXEEXT) - $(LINK) $(test_ckd_alloc_fail_OBJECTS) $(test_ckd_alloc_fail_LDADD) $(LIBS) -test_listelem_alloc$(EXEEXT): $(test_listelem_alloc_OBJECTS) $(test_listelem_alloc_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_ckd_alloc_fail_OBJECTS) $(test_ckd_alloc_fail_LDADD) $(LIBS) + +test_listelem_alloc$(EXEEXT): $(test_listelem_alloc_OBJECTS) $(test_listelem_alloc_DEPENDENCIES) $(EXTRA_test_listelem_alloc_DEPENDENCIES) @rm -f test_listelem_alloc$(EXEEXT) - $(LINK) $(test_listelem_alloc_OBJECTS) $(test_listelem_alloc_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_listelem_alloc_OBJECTS) $(test_listelem_alloc_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -315,25 +621,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_listelem_alloc.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -341,26 +647,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -372,15 +667,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -389,101 +680,215 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + color_start= color_end=; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ - else \ - skipped="($$skip tests were not run)"; \ - fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_ckd_alloc.log: test_ckd_alloc$(EXEEXT) + @p='test_ckd_alloc$(EXEEXT)'; \ + b='test_ckd_alloc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_ckd_alloc_catch.log: test_ckd_alloc_catch$(EXEEXT) + @p='test_ckd_alloc_catch$(EXEEXT)'; \ + b='test_ckd_alloc_catch'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_ckd_alloc_fail.sh.log: test_ckd_alloc_fail.sh + @p='test_ckd_alloc_fail.sh'; \ + b='test_ckd_alloc_fail.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_ckd_alloc_abort.sh.log: test_ckd_alloc_abort.sh + @p='test_ckd_alloc_abort.sh'; \ + b='test_ckd_alloc_abort.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_listelem_alloc.log: test_listelem_alloc$(EXEEXT) + @p='test_listelem_alloc$(EXEEXT)'; \ + b='test_listelem_alloc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -531,11 +936,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: @@ -619,9 +1032,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -631,7 +1044,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_bitvec/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_bitvec/Makefile.am --- sphinxbase-0.8/test/unit/test_bitvec/Makefile.am 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_bitvec/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -1,7 +1,7 @@ check_PROGRAMS = test_bitvec TESTS = test_bitvec -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ diff -Nru sphinxbase-0.8/test/unit/test_bitvec/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_bitvec/Makefile.in --- sphinxbase-0.8/test/unit/test_bitvec/Makefile.in 2012-12-12 17:28:54.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_bitvec/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,15 +81,15 @@ check_PROGRAMS = test_bitvec$(EXEEXT) TESTS = test_bitvec$(EXEEXT) subdir = test/unit/test_bitvec -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -58,29 +102,279 @@ test_bitvec_LDADD = $(LDADD) test_bitvec_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = test_bitvec.c DIST_SOURCES = test_bitvec.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -94,6 +388,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -103,9 +398,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -113,15 +406,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -137,27 +429,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -190,14 +488,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -206,7 +507,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -217,7 +518,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -227,9 +528,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_bitvec/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_bitvec/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_bitvec/Makefile + $(AUTOMAKE) --foreign test/unit/test_bitvec/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -257,9 +558,10 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_bitvec$(EXEEXT): $(test_bitvec_OBJECTS) $(test_bitvec_DEPENDENCIES) + +test_bitvec$(EXEEXT): $(test_bitvec_OBJECTS) $(test_bitvec_DEPENDENCIES) $(EXTRA_test_bitvec_DEPENDENCIES) @rm -f test_bitvec$(EXEEXT) - $(LINK) $(test_bitvec_OBJECTS) $(test_bitvec_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_bitvec_OBJECTS) $(test_bitvec_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -270,25 +572,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bitvec.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -296,26 +598,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -327,15 +618,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -344,101 +631,187 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_bitvec.log: test_bitvec$(EXEEXT) + @p='test_bitvec$(EXEEXT)'; \ + b='test_bitvec'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -486,11 +859,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: @@ -574,9 +955,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -586,7 +967,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_bitvec/test_bitvec.c sphinxbase-0.8+5prealpha/test/unit/test_bitvec/test_bitvec.c --- sphinxbase-0.8/test/unit/test_bitvec/test_bitvec.c 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_bitvec/test_bitvec.c 2015-03-24 17:26:34.000000000 +0000 @@ -52,7 +52,7 @@ TEST_EQUAL(6, bitvec_count_set(bv, 13)); bv = bitvec_realloc(bv, 13, 2000); for (i = 0; i < 2000; i++) { -// printf("%d %d\n", i, bitvec_is_set(bv, i) != 0); + /* printf("%d %d\n", i, bitvec_is_set(bv, i) != 0); */ } printf("Bits set after realloc %d\n", bitvec_count_set(bv, 2000)); TEST_EQUAL(6, bitvec_count_set(bv, 2000)); diff -Nru sphinxbase-0.8/test/unit/test_case/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_case/Makefile.am --- sphinxbase-0.8/test/unit/test_case/Makefile.am 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_case/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -1,7 +1,7 @@ check_PROGRAMS = chgCase -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include diff -Nru sphinxbase-0.8/test/unit/test_case/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_case/Makefile.in --- sphinxbase-0.8/test/unit/test_case/Makefile.in 2012-12-12 17:28:54.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_case/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,14 +79,14 @@ host_triplet = @host@ check_PROGRAMS = chgCase$(EXEEXT) subdir = test/unit/test_case -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -55,28 +99,276 @@ chgCase_LDADD = $(LDADD) chgCase_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = chgCase.c DIST_SOURCES = chgCase.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -90,6 +382,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -99,9 +392,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,15 +400,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -133,27 +423,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -186,14 +482,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -202,7 +501,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include @@ -222,7 +521,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -232,9 +531,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_case/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_case/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_case/Makefile + $(AUTOMAKE) --foreign test/unit/test_case/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -262,9 +561,10 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -chgCase$(EXEEXT): $(chgCase_OBJECTS) $(chgCase_DEPENDENCIES) + +chgCase$(EXEEXT): $(chgCase_OBJECTS) $(chgCase_DEPENDENCIES) $(EXTRA_chgCase_DEPENDENCIES) @rm -f chgCase$(EXEEXT) - $(LINK) $(chgCase_OBJECTS) $(chgCase_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(chgCase_OBJECTS) $(chgCase_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -275,25 +575,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chgCase.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -301,26 +601,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -332,15 +621,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -349,101 +634,180 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -491,11 +855,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: @@ -579,9 +951,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -591,7 +963,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_cmdln/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_cmdln/Makefile.am --- sphinxbase-0.8/test/unit/test_cmdln/Makefile.am 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_cmdln/Makefile.am 2015-03-24 17:32:30.000000000 +0000 @@ -1,12 +1,13 @@ check_PROGRAMS = cmdln_parse cmdln_parse_multiple cmdln_parse_r -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include LDADD = ${top_builddir}/src/libsphinxbase/libsphinxbase.la -lm +CLEANFILES = _test*.err _test*.out TESTS = _test_parse_badargs.test \ _test_parse_defaults_r.test \ diff -Nru sphinxbase-0.8/test/unit/test_cmdln/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_cmdln/Makefile.in --- sphinxbase-0.8/test/unit/test_cmdln/Makefile.in 2012-12-12 17:28:55.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_cmdln/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -36,14 +80,14 @@ check_PROGRAMS = cmdln_parse$(EXEEXT) cmdln_parse_multiple$(EXEEXT) \ cmdln_parse_r$(EXEEXT) subdir = test/unit/test_cmdln -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -56,6 +100,10 @@ cmdln_parse_LDADD = $(LDADD) cmdln_parse_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = cmdln_parse_multiple_SOURCES = cmdln_parse_multiple.c cmdln_parse_multiple_OBJECTS = cmdln_parse_multiple.$(OBJEXT) cmdln_parse_multiple_LDADD = $(LDADD) @@ -66,28 +114,272 @@ cmdln_parse_r_LDADD = $(LDADD) cmdln_parse_r_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = cmdln_parse.c cmdln_parse_multiple.c cmdln_parse_r.c DIST_SOURCES = cmdln_parse.c cmdln_parse_multiple.c cmdln_parse_r.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -101,6 +393,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -110,9 +403,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -120,15 +411,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -144,27 +434,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -197,14 +493,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -213,12 +512,13 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include LDADD = ${top_builddir}/src/libsphinxbase/libsphinxbase.la -lm +CLEANFILES = _test*.err _test*.out TESTS = _test_parse_badargs.test \ _test_parse_defaults_r.test \ _test_parse_defaults.test \ @@ -235,7 +535,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -245,9 +545,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_cmdln/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_cmdln/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_cmdln/Makefile + $(AUTOMAKE) --foreign test/unit/test_cmdln/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -275,15 +575,18 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -cmdln_parse$(EXEEXT): $(cmdln_parse_OBJECTS) $(cmdln_parse_DEPENDENCIES) + +cmdln_parse$(EXEEXT): $(cmdln_parse_OBJECTS) $(cmdln_parse_DEPENDENCIES) $(EXTRA_cmdln_parse_DEPENDENCIES) @rm -f cmdln_parse$(EXEEXT) - $(LINK) $(cmdln_parse_OBJECTS) $(cmdln_parse_LDADD) $(LIBS) -cmdln_parse_multiple$(EXEEXT): $(cmdln_parse_multiple_OBJECTS) $(cmdln_parse_multiple_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(cmdln_parse_OBJECTS) $(cmdln_parse_LDADD) $(LIBS) + +cmdln_parse_multiple$(EXEEXT): $(cmdln_parse_multiple_OBJECTS) $(cmdln_parse_multiple_DEPENDENCIES) $(EXTRA_cmdln_parse_multiple_DEPENDENCIES) @rm -f cmdln_parse_multiple$(EXEEXT) - $(LINK) $(cmdln_parse_multiple_OBJECTS) $(cmdln_parse_multiple_LDADD) $(LIBS) -cmdln_parse_r$(EXEEXT): $(cmdln_parse_r_OBJECTS) $(cmdln_parse_r_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(cmdln_parse_multiple_OBJECTS) $(cmdln_parse_multiple_LDADD) $(LIBS) + +cmdln_parse_r$(EXEEXT): $(cmdln_parse_r_OBJECTS) $(cmdln_parse_r_DEPENDENCIES) $(EXTRA_cmdln_parse_r_DEPENDENCIES) @rm -f cmdln_parse_r$(EXEEXT) - $(LINK) $(cmdln_parse_r_OBJECTS) $(cmdln_parse_r_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(cmdln_parse_r_OBJECTS) $(cmdln_parse_r_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -296,25 +599,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmdln_parse_r.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -322,26 +625,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -353,15 +645,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -370,101 +658,180 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -512,13 +879,22 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -600,9 +976,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -612,7 +988,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_cmdln/_test_parse_badargs.test sphinxbase-0.8+5prealpha/test/unit/test_cmdln/_test_parse_badargs.test --- sphinxbase-0.8/test/unit/test_cmdln/_test_parse_badargs.test 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_cmdln/_test_parse_badargs.test 2015-03-24 17:26:34.000000000 +0000 @@ -11,4 +11,4 @@ sed -ne 's,^ERROR:.*line [0-9]*:,ERROR:,p' < $testname.out > $testname.tmp.out \ && mv $testname.tmp.out $testname.out compare_table defaults $testname.out $tests/unit/test_cmdln/$testname.res 100 -rm -f $testname.out +#rm -f $testname.out diff -Nru sphinxbase-0.8/test/unit/test_fe/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_fe/Makefile.am --- sphinxbase-0.8/test/unit/test_fe/Makefile.am 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_fe/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -1,7 +1,7 @@ check_PROGRAMS = test_fe test_pitch TESTS = test_fe test_pitch -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ diff -Nru sphinxbase-0.8/test/unit/test_fe/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_fe/Makefile.in --- sphinxbase-0.8/test/unit/test_fe/Makefile.in 2012-12-12 17:28:55.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_fe/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,15 +81,15 @@ check_PROGRAMS = test_fe$(EXEEXT) test_pitch$(EXEEXT) TESTS = test_fe$(EXEEXT) test_pitch$(EXEEXT) subdir = test/unit/test_fe -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -58,34 +102,284 @@ test_fe_LDADD = $(LDADD) test_fe_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = test_pitch_SOURCES = test_pitch.c test_pitch_OBJECTS = test_pitch.$(OBJEXT) test_pitch_LDADD = $(LDADD) test_pitch_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = test_fe.c test_pitch.c DIST_SOURCES = test_fe.c test_pitch.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -99,6 +393,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -108,9 +403,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -118,15 +411,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -142,27 +434,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -195,14 +493,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -211,7 +512,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -222,7 +523,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -232,9 +533,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_fe/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_fe/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_fe/Makefile + $(AUTOMAKE) --foreign test/unit/test_fe/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -262,12 +563,14 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_fe$(EXEEXT): $(test_fe_OBJECTS) $(test_fe_DEPENDENCIES) + +test_fe$(EXEEXT): $(test_fe_OBJECTS) $(test_fe_DEPENDENCIES) $(EXTRA_test_fe_DEPENDENCIES) @rm -f test_fe$(EXEEXT) - $(LINK) $(test_fe_OBJECTS) $(test_fe_LDADD) $(LIBS) -test_pitch$(EXEEXT): $(test_pitch_OBJECTS) $(test_pitch_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_fe_OBJECTS) $(test_fe_LDADD) $(LIBS) + +test_pitch$(EXEEXT): $(test_pitch_OBJECTS) $(test_pitch_DEPENDENCIES) $(EXTRA_test_pitch_DEPENDENCIES) @rm -f test_pitch$(EXEEXT) - $(LINK) $(test_pitch_OBJECTS) $(test_pitch_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_pitch_OBJECTS) $(test_pitch_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -279,25 +582,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_pitch.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -305,26 +608,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -336,15 +628,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -353,101 +641,194 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_fe.log: test_fe$(EXEEXT) + @p='test_fe$(EXEEXT)'; \ + b='test_fe'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_pitch.log: test_pitch$(EXEEXT) + @p='test_pitch$(EXEEXT)'; \ + b='test_pitch'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -495,11 +876,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: @@ -583,9 +972,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -595,7 +984,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_fe/test_fe.c sphinxbase-0.8+5prealpha/test/unit/test_fe/test_fe.c --- sphinxbase-0.8/test/unit/test_fe/test_fe.c 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_fe/test_fe.c 2015-03-24 17:32:30.000000000 +0000 @@ -10,197 +10,209 @@ int main(int argc, char *argv[]) { - static const arg_t fe_args[] = { - waveform_to_cepstral_command_line_macro(), - { NULL, 0, NULL, NULL } - }; - FILE *raw; - cmd_ln_t *config; - fe_t *fe; - int16 buf[1024]; - int16 const *inptr; - int32 frame_shift, frame_size; - mfcc_t **cepbuf1, **cepbuf2, **cptr; - int32 nfr, i; - size_t nsamp; - - TEST_ASSERT(config = cmd_ln_parse_r(NULL, fe_args, argc, argv, FALSE)); - TEST_ASSERT(fe = fe_init_auto_r(config)); - - TEST_EQUAL(fe_get_output_size(fe), DEFAULT_NUM_CEPSTRA); - - fe_get_input_size(fe, &frame_shift, &frame_size); - TEST_EQUAL(frame_shift, DEFAULT_FRAME_SHIFT); - TEST_EQUAL(frame_size, (int)(DEFAULT_WINDOW_LENGTH*DEFAULT_SAMPLING_RATE)); - - TEST_ASSERT(raw = fopen(TESTDATADIR "/chan3.raw", "rb")); - - TEST_EQUAL(0, fe_start_utt(fe)); - TEST_EQUAL(1024, fread(buf, sizeof(int16), 1024, raw)); - - nsamp = 1024; - TEST_ASSERT(fe_process_frames(fe, NULL, &nsamp, NULL, &nfr) >= 0); - TEST_EQUAL(1024, nsamp); - TEST_EQUAL(4, nfr); - - cepbuf1 = ckd_calloc_2d(5, DEFAULT_NUM_CEPSTRA, sizeof(**cepbuf1)); - inptr = &buf[0]; - nfr = 1; - - printf("frame_size %d frame_shift %d\n", frame_size, frame_shift); - /* Process the first frame. */ - TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, &cepbuf1[0], &nfr) >= 0); - printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, nfr); - TEST_EQUAL(nfr, 1); - - /* Note that this next one won't actually consume any frames - * of input, because it already got sufficient overflow - * samples last time around. This is implementation-dependent - * so we shouldn't actually test for it. */ - TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, &cepbuf1[1], &nfr) >= 0); - printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, nfr); - TEST_EQUAL(nfr, 1); - - TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, &cepbuf1[2], &nfr) >= 0); - printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, nfr); - TEST_EQUAL(nfr, 1); - - TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, &cepbuf1[3], &nfr) >= 0); - printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, nfr); - TEST_EQUAL(nfr, 1); - - TEST_ASSERT(fe_end_utt(fe, cepbuf1[4], &nfr) >= 0); - printf("nfr %d\n", nfr); - TEST_EQUAL(nfr, 1); - - /* What we *should* test is that the output we get by - * processing one frame at a time is exactly the same as what - * we get from doing them all at once. So let's do that */ - cepbuf2 = ckd_calloc_2d(5, DEFAULT_NUM_CEPSTRA, sizeof(**cepbuf2)); - inptr = &buf[0]; - nfr = 5; - nsamp = 1024; - TEST_EQUAL(0, fe_start_utt(fe)); - TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, cepbuf2, &nfr) >= 0); - printf("nfr %d\n", nfr); - TEST_EQUAL(nfr, 4); - nfr = 1; - TEST_ASSERT(fe_end_utt(fe, cepbuf2[4], &nfr) >= 0); - printf("nfr %d\n", nfr); - TEST_EQUAL(nfr, 1); - - for (i = 0; i < 5; ++i) { - int j; - printf("%d: ", i); - for (j = 0; j < DEFAULT_NUM_CEPSTRA; ++j) { - printf("%.2f,%.2f ", - MFCC2FLOAT(cepbuf1[i][j]), - MFCC2FLOAT(cepbuf2[i][j])); - TEST_EQUAL_FLOAT(cepbuf1[i][j], cepbuf2[i][j]); - } - printf("\n"); - } - - /* Now, also test to make sure that even if we feed data in - * little tiny bits we can still make things work. */ - memset(cepbuf2[0], 0, 5 * DEFAULT_NUM_CEPSTRA * sizeof(**cepbuf2)); - inptr = &buf[0]; - cptr = &cepbuf2[0]; - nfr = 5; - i = 5; - nsamp = 256; - TEST_EQUAL(0, fe_start_utt(fe)); - TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, cptr, &i) >= 0); - printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, i); - cptr += i; - nfr -= i; - i = nfr; - nsamp = 256; - TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, cptr, &i) >= 0); - printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, i); - cptr += i; - nfr -= i; - i = nfr; - nsamp = 256; - TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, cptr, &i) >= 0); - printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, i); - cptr += i; - nfr -= i; - i = nfr; - nsamp = 256; - TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, cptr, &i) >= 0); - printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, i); - cptr += i; - nfr -= i; - TEST_ASSERT(fe_end_utt(fe, *cptr, &nfr) >= 0); - printf("nfr %d\n", nfr); - TEST_EQUAL(nfr, 1); - - for (i = 0; i < 5; ++i) { - int j; - printf("%d: ", i); - for (j = 0; j < DEFAULT_NUM_CEPSTRA; ++j) { - printf("%.2f,%.2f ", - MFCC2FLOAT(cepbuf1[i][j]), - MFCC2FLOAT(cepbuf2[i][j])); - TEST_EQUAL_FLOAT(cepbuf1[i][j], cepbuf2[i][j]); - } - printf("\n"); - } - - /* And now, finally, test fe_process_utt() */ - inptr = &buf[0]; - i = 0; - TEST_EQUAL(0, fe_start_utt(fe)); - TEST_ASSERT(fe_process_utt(fe, inptr, 256, &cptr, &nfr) >= 0); - printf("i %d nfr %d\n", i, nfr); - if (nfr) - memcpy(cepbuf2[i], cptr[0], nfr * DEFAULT_NUM_CEPSTRA * sizeof(**cptr)); - ckd_free_2d(cptr); - i += nfr; - inptr += 256; - TEST_ASSERT(fe_process_utt(fe, inptr, 256, &cptr, &nfr) >= 0); - printf("i %d nfr %d\n", i, nfr); - if (nfr) - memcpy(cepbuf2[i], cptr[0], nfr * DEFAULT_NUM_CEPSTRA * sizeof(**cptr)); - ckd_free_2d(cptr); - i += nfr; - inptr += 256; - TEST_ASSERT(fe_process_utt(fe, inptr, 256, &cptr, &nfr) >= 0); - printf("i %d nfr %d\n", i, nfr); - if (nfr) - memcpy(cepbuf2[i], cptr[0], nfr * DEFAULT_NUM_CEPSTRA * sizeof(**cptr)); - ckd_free_2d(cptr); - i += nfr; - inptr += 256; - TEST_ASSERT(fe_process_utt(fe, inptr, 256, &cptr, &nfr) >= 0); - printf("i %d nfr %d\n", i, nfr); - if (nfr) - memcpy(cepbuf2[i], cptr[0], nfr * DEFAULT_NUM_CEPSTRA * sizeof(**cptr)); - ckd_free_2d(cptr); - i += nfr; - inptr += 256; - TEST_ASSERT(fe_end_utt(fe, cepbuf2[i], &nfr) >= 0); - printf("i %d nfr %d\n", i, nfr); - TEST_EQUAL(nfr, 1); - - for (i = 0; i < 5; ++i) { - int j; - printf("%d: ", i); - for (j = 0; j < DEFAULT_NUM_CEPSTRA; ++j) { - printf("%.2f,%.2f ", - MFCC2FLOAT(cepbuf1[i][j]), - MFCC2FLOAT(cepbuf2[i][j])); - TEST_EQUAL_FLOAT(cepbuf1[i][j], cepbuf2[i][j]); - } - printf("\n"); - } - - ckd_free_2d(cepbuf1); - ckd_free_2d(cepbuf2); - fclose(raw); - fe_free(fe); - cmd_ln_free_r(config); + static const arg_t fe_args[] = { + waveform_to_cepstral_command_line_macro(), + { NULL, 0, NULL, NULL } + }; + FILE *raw; + cmd_ln_t *config; + fe_t *fe; + int16 buf[1024]; + int16 const *inptr; + int32 frame_shift, frame_size; + mfcc_t **cepbuf1, **cepbuf2, **cptr; + int32 nfr, i; + size_t nsamp; + + TEST_ASSERT(config = cmd_ln_parse_r(NULL, fe_args, argc, argv, FALSE)); + TEST_ASSERT(fe = fe_init_auto_r(config)); + + TEST_EQUAL(fe_get_output_size(fe), DEFAULT_NUM_CEPSTRA); + + fe_get_input_size(fe, &frame_shift, &frame_size); + TEST_EQUAL(frame_shift, DEFAULT_FRAME_SHIFT); + TEST_EQUAL(frame_size, (int)(DEFAULT_WINDOW_LENGTH*DEFAULT_SAMPLING_RATE)); + + TEST_ASSERT(raw = fopen(TESTDATADIR "/chan3.raw", "rb")); + + fe_start_stream(fe); + TEST_EQUAL(0, fe_start_utt(fe)); + TEST_EQUAL(1024, fread(buf, sizeof(int16), 1024, raw)); + + nsamp = 1024; + TEST_ASSERT(fe_process_frames(fe, NULL, &nsamp, NULL, &nfr, NULL) >= 0); + TEST_EQUAL(1024, nsamp); + TEST_EQUAL(4, nfr); + + cepbuf1 = ckd_calloc_2d(5, DEFAULT_NUM_CEPSTRA, sizeof(**cepbuf1)); + inptr = &buf[0]; + nfr = 1; + + printf("frame_size %d frame_shift %d\n", frame_size, frame_shift); + /* Process the first frame. */ + TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, &cepbuf1[0], &nfr, NULL) >= 0); + printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, nfr); + /* First frame assumed to be unvoiced to init noise reduction */ + TEST_EQUAL(nfr, 0); + + /* Note that this next one won't actually consume any frames + * of input, because it already got sufficient overflow + * samples last time around. This is implementation-dependent + * so we shouldn't actually test for it. + * First 1024 samples of chan3.raw is silence, nfr is expected to stay 0 */ + nfr = 1; + TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, &cepbuf1[1], &nfr, NULL) >= 0); + printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, nfr); + TEST_EQUAL(nfr, 0); + + nfr = 1; + TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, &cepbuf1[2], &nfr, NULL) >= 0); + printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, nfr); + TEST_EQUAL(nfr, 0); + + nfr = 1; + TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, &cepbuf1[3], &nfr, NULL) >= 0); + printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, nfr); + TEST_EQUAL(nfr, 0); + + nfr = 1; + TEST_ASSERT(fe_end_utt(fe, cepbuf1[4], &nfr) >= 0); + printf("nfr %d\n", nfr); + TEST_EQUAL(nfr, 0); + + /* What we *should* test is that the output we get by + * processing one frame at a time is exactly the same as what + * we get from doing them all at once. So let's do that */ + cepbuf2 = ckd_calloc_2d(5, DEFAULT_NUM_CEPSTRA, sizeof(**cepbuf2)); + inptr = &buf[0]; + nfr = 5; + nsamp = 1024; + fe_start_stream(fe); + TEST_EQUAL(0, fe_start_utt(fe)); + TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, cepbuf2, &nfr, NULL) >= 0); + /* First 1024 samples of chan3.raw is silence, nfr is expected to stay 0 */ + printf("nfr %d\n", nfr); + TEST_EQUAL(nfr, 0); + nfr = 1; + TEST_ASSERT(fe_end_utt(fe, cepbuf2[4], &nfr) >= 0); + printf("nfr %d\n", nfr); + TEST_EQUAL(nfr, 0); + + /* output features stored in cepbuf[4] by fe_end_utt + * should be the same */ + printf("%d: ", 4); + for (i = 0; i < DEFAULT_NUM_CEPSTRA; ++i) { + printf("%.2f,%.2f ", + MFCC2FLOAT(cepbuf1[4][i]), + MFCC2FLOAT(cepbuf2[4][i])); + TEST_EQUAL_FLOAT(cepbuf1[4][i], cepbuf2[4][i]); + } + printf("\n"); + + /* Now, also test to make sure that even if we feed data in + * little tiny bits we can still make things work. */ + memset(cepbuf2[0], 0, 5 * DEFAULT_NUM_CEPSTRA * sizeof(**cepbuf2)); + inptr = &buf[0]; + cptr = &cepbuf2[0]; + nfr = 5; + i = 5; + nsamp = 256; + fe_start_stream(fe); + TEST_EQUAL(0, fe_start_utt(fe)); + TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, cptr, &i, NULL) >= 0); + printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, i); + cptr += i; + nfr -= i; + i = nfr; + nsamp = 256; + TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, cptr, &i, NULL) >= 0); + printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, i); + cptr += i; + nfr -= i; + i = nfr; + nsamp = 256; + TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, cptr, &i, NULL) >= 0); + printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, i); + cptr += i; + nfr -= i; + i = nfr; + nsamp = 256; + TEST_ASSERT(fe_process_frames(fe, &inptr, &nsamp, cptr, &i, NULL) >= 0); + printf("inptr %d nsamp %d nfr %d\n", inptr - buf, nsamp, i); + cptr += i; + nfr -= i; + printf("nfr %d\n", nfr); + TEST_EQUAL(nfr, 5); + /* inptr contains unvoiced audio, + * no out feature frames will be produced */ + TEST_ASSERT(fe_end_utt(fe, *cptr, &nfr) >= 0); + printf("nfr %d\n", nfr); + TEST_EQUAL(nfr, 0); + + /* fe_process_frames overwrites features if frame is unvoiced, + * so for cepbuf2 last frame is at 0 and previous are lost */ + printf("%d: ", 4); + for (i = 0; i < DEFAULT_NUM_CEPSTRA; ++i) { + printf("%.2f,%.2f ", + MFCC2FLOAT(cepbuf1[4][i]), + MFCC2FLOAT(cepbuf2[0][i])); + TEST_EQUAL_FLOAT(cepbuf1[4][i], cepbuf2[0][i]); + } + printf("\n"); + + /* And now, finally, test fe_process_utt() */ + inptr = &buf[0]; + i = 0; + fe_start_stream(fe); + TEST_EQUAL(0, fe_start_utt(fe)); + TEST_ASSERT(fe_process_utt(fe, inptr, 256, &cptr, &nfr) >= 0); + printf("i %d nfr %d\n", i, nfr); + if (nfr) + memcpy(cepbuf2[i], cptr[0], nfr * DEFAULT_NUM_CEPSTRA * sizeof(**cptr)); + ckd_free_2d(cptr); + i += nfr; + inptr += 256; + TEST_ASSERT(fe_process_utt(fe, inptr, 256, &cptr, &nfr) >= 0); + printf("i %d nfr %d\n", i, nfr); + if (nfr) + memcpy(cepbuf2[i], cptr[0], nfr * DEFAULT_NUM_CEPSTRA * sizeof(**cptr)); + ckd_free_2d(cptr); + i += nfr; + inptr += 256; + TEST_ASSERT(fe_process_utt(fe, inptr, 256, &cptr, &nfr) >= 0); + printf("i %d nfr %d\n", i, nfr); + if (nfr) + memcpy(cepbuf2[i], cptr[0], nfr * DEFAULT_NUM_CEPSTRA * sizeof(**cptr)); + ckd_free_2d(cptr); + i += nfr; + inptr += 256; + TEST_ASSERT(fe_process_utt(fe, inptr, 256, &cptr, &nfr) >= 0); + printf("i %d nfr %d\n", i, nfr); + if (nfr) + memcpy(cepbuf2[i], cptr[0], nfr * DEFAULT_NUM_CEPSTRA * sizeof(**cptr)); + ckd_free_2d(cptr); + i += nfr; + inptr += 256; + TEST_ASSERT(fe_end_utt(fe, cepbuf2[i], &nfr) >= 0); + printf("i %d nfr %d\n", i, nfr); + TEST_EQUAL(nfr, 0); + + /* fe_process_utt overwrites features if frame is unvoiced, + * so for cepbuf2 last frame is at 0 and previous are lost */ + printf("%d: ", 4); + for (i = 0; i < DEFAULT_NUM_CEPSTRA; ++i) { + printf("%.2f,%.2f ", + MFCC2FLOAT(cepbuf1[4][i]), + MFCC2FLOAT(cepbuf2[0][i])); + TEST_EQUAL_FLOAT(cepbuf1[4][i], cepbuf2[0][i]); + } + printf("\n"); + + ckd_free_2d(cepbuf1); + ckd_free_2d(cepbuf2); + fclose(raw); + fe_free(fe); + cmd_ln_free_r(config); - return 0; + return 0; } diff -Nru sphinxbase-0.8/test/unit/test_feat/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_feat/Makefile.am --- sphinxbase-0.8/test/unit/test_feat/Makefile.am 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_feat/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -1,7 +1,7 @@ check_PROGRAMS = test_feat test_feat_live test_feat_fe test_subvq noinst_HEADERS = test_macros.h -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ diff -Nru sphinxbase-0.8/test/unit/test_feat/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_feat/Makefile.in --- sphinxbase-0.8/test/unit/test_feat/Makefile.in 2012-12-12 17:28:55.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_feat/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -39,15 +83,15 @@ TESTS = _test_feat.test test_feat_live$(EXEEXT) test_feat_fe$(EXEEXT) \ test_subvq$(EXEEXT) subdir = test/unit/test_feat -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -60,6 +104,10 @@ test_feat_LDADD = $(LDADD) test_feat_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = test_feat_fe_SOURCES = test_feat_fe.c test_feat_fe_OBJECTS = test_feat_fe.$(OBJEXT) test_feat_fe_LDADD = $(LDADD) @@ -75,30 +123,276 @@ test_subvq_LDADD = $(LDADD) test_subvq_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = test_feat.c test_feat_fe.c test_feat_live.c test_subvq.c DIST_SOURCES = test_feat.c test_feat_fe.c test_feat_live.c \ test_subvq.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -112,6 +406,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -121,9 +416,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -131,15 +424,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -155,27 +447,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -208,14 +506,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -225,7 +526,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = test_macros.h -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -237,7 +538,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -247,9 +548,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_feat/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_feat/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_feat/Makefile + $(AUTOMAKE) --foreign test/unit/test_feat/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -277,18 +578,22 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_feat$(EXEEXT): $(test_feat_OBJECTS) $(test_feat_DEPENDENCIES) + +test_feat$(EXEEXT): $(test_feat_OBJECTS) $(test_feat_DEPENDENCIES) $(EXTRA_test_feat_DEPENDENCIES) @rm -f test_feat$(EXEEXT) - $(LINK) $(test_feat_OBJECTS) $(test_feat_LDADD) $(LIBS) -test_feat_fe$(EXEEXT): $(test_feat_fe_OBJECTS) $(test_feat_fe_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_feat_OBJECTS) $(test_feat_LDADD) $(LIBS) + +test_feat_fe$(EXEEXT): $(test_feat_fe_OBJECTS) $(test_feat_fe_DEPENDENCIES) $(EXTRA_test_feat_fe_DEPENDENCIES) @rm -f test_feat_fe$(EXEEXT) - $(LINK) $(test_feat_fe_OBJECTS) $(test_feat_fe_LDADD) $(LIBS) -test_feat_live$(EXEEXT): $(test_feat_live_OBJECTS) $(test_feat_live_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_feat_fe_OBJECTS) $(test_feat_fe_LDADD) $(LIBS) + +test_feat_live$(EXEEXT): $(test_feat_live_OBJECTS) $(test_feat_live_DEPENDENCIES) $(EXTRA_test_feat_live_DEPENDENCIES) @rm -f test_feat_live$(EXEEXT) - $(LINK) $(test_feat_live_OBJECTS) $(test_feat_live_LDADD) $(LIBS) -test_subvq$(EXEEXT): $(test_subvq_OBJECTS) $(test_subvq_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_feat_live_OBJECTS) $(test_feat_live_LDADD) $(LIBS) + +test_subvq$(EXEEXT): $(test_subvq_OBJECTS) $(test_subvq_DEPENDENCIES) $(EXTRA_test_subvq_DEPENDENCIES) @rm -f test_subvq$(EXEEXT) - $(LINK) $(test_subvq_OBJECTS) $(test_subvq_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_subvq_OBJECTS) $(test_subvq_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -302,25 +607,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_subvq.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -328,26 +633,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -359,15 +653,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -376,101 +666,201 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_feat_live.log: test_feat_live$(EXEEXT) + @p='test_feat_live$(EXEEXT)'; \ + b='test_feat_live'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_feat_fe.log: test_feat_fe$(EXEEXT) + @p='test_feat_fe$(EXEEXT)'; \ + b='test_feat_fe'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_subvq.log: test_subvq$(EXEEXT) + @p='test_subvq$(EXEEXT)'; \ + b='test_subvq'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -518,11 +908,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -607,9 +1005,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -619,7 +1017,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_feat/test_feat_fe.c sphinxbase-0.8+5prealpha/test/unit/test_feat/test_feat_fe.c --- sphinxbase-0.8/test/unit/test_feat/test_feat_fe.c 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_feat/test_feat_fe.c 2015-03-24 17:26:34.000000000 +0000 @@ -38,7 +38,7 @@ /* Determine how much data and how many MFCC frames we need. */ fseek(raw, 0, SEEK_END); nsamp = ftell(raw) / sizeof(int16); - fe_process_frames(fe, NULL, &nsamp, NULL, &total_frames); + fe_process_frames(fe, NULL, &nsamp, NULL, &total_frames, NULL); printf("%d samples, %d + 1 frames\n", nsamp, total_frames); total_frames++; /* For the possible fe_end_utt() frame */ cepbuf = ckd_calloc_2d(total_frames + 1, fe_get_output_size(fe), sizeof(**cepbuf)); @@ -52,7 +52,7 @@ int16 const *bptr = buf; while (nsamp) { int32 ncep = nfr; - fe_process_frames(fe, &bptr, &nsamp, cptr, &ncep); + fe_process_frames(fe, &bptr, &nsamp, cptr, &ncep, NULL); cptr += ncep; nfr -= ncep; } diff -Nru sphinxbase-0.8/test/unit/test_fsg/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_fsg/Makefile.am --- sphinxbase-0.8/test/unit/test_fsg/Makefile.am 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_fsg/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -5,7 +5,7 @@ TESTS = $(check_PROGRAMS) -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ diff -Nru sphinxbase-0.8/test/unit/test_fsg/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_fsg/Makefile.in --- sphinxbase-0.8/test/unit/test_fsg/Makefile.in 2012-12-12 17:28:55.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_fsg/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,15 +81,15 @@ check_PROGRAMS = test_fsg_read$(EXEEXT) test_fsg_jsgf$(EXEEXT) \ test_fsg_write_fsm$(EXEEXT) subdir = test/unit/test_fsg -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -58,6 +102,10 @@ test_fsg_jsgf_LDADD = $(LDADD) test_fsg_jsgf_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = test_fsg_read_SOURCES = test_fsg_read.c test_fsg_read_OBJECTS = test_fsg_read.$(OBJEXT) test_fsg_read_LDADD = $(LDADD) @@ -68,29 +116,275 @@ test_fsg_write_fsm_LDADD = $(LDADD) test_fsg_write_fsm_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = test_fsg_jsgf.c test_fsg_read.c test_fsg_write_fsm.c DIST_SOURCES = test_fsg_jsgf.c test_fsg_read.c test_fsg_write_fsm.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -104,6 +398,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -113,9 +408,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -123,15 +416,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -147,27 +439,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -200,14 +498,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -217,7 +518,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ TESTS = $(check_PROGRAMS) -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -229,7 +530,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -239,9 +540,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_fsg/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_fsg/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_fsg/Makefile + $(AUTOMAKE) --foreign test/unit/test_fsg/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -269,15 +570,18 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_fsg_jsgf$(EXEEXT): $(test_fsg_jsgf_OBJECTS) $(test_fsg_jsgf_DEPENDENCIES) + +test_fsg_jsgf$(EXEEXT): $(test_fsg_jsgf_OBJECTS) $(test_fsg_jsgf_DEPENDENCIES) $(EXTRA_test_fsg_jsgf_DEPENDENCIES) @rm -f test_fsg_jsgf$(EXEEXT) - $(LINK) $(test_fsg_jsgf_OBJECTS) $(test_fsg_jsgf_LDADD) $(LIBS) -test_fsg_read$(EXEEXT): $(test_fsg_read_OBJECTS) $(test_fsg_read_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_fsg_jsgf_OBJECTS) $(test_fsg_jsgf_LDADD) $(LIBS) + +test_fsg_read$(EXEEXT): $(test_fsg_read_OBJECTS) $(test_fsg_read_DEPENDENCIES) $(EXTRA_test_fsg_read_DEPENDENCIES) @rm -f test_fsg_read$(EXEEXT) - $(LINK) $(test_fsg_read_OBJECTS) $(test_fsg_read_LDADD) $(LIBS) -test_fsg_write_fsm$(EXEEXT): $(test_fsg_write_fsm_OBJECTS) $(test_fsg_write_fsm_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_fsg_read_OBJECTS) $(test_fsg_read_LDADD) $(LIBS) + +test_fsg_write_fsm$(EXEEXT): $(test_fsg_write_fsm_OBJECTS) $(test_fsg_write_fsm_DEPENDENCIES) $(EXTRA_test_fsg_write_fsm_DEPENDENCIES) @rm -f test_fsg_write_fsm$(EXEEXT) - $(LINK) $(test_fsg_write_fsm_OBJECTS) $(test_fsg_write_fsm_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_fsg_write_fsm_OBJECTS) $(test_fsg_write_fsm_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -290,25 +594,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_fsg_write_fsm.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -316,26 +620,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -347,15 +640,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -364,101 +653,201 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_fsg_read.log: test_fsg_read$(EXEEXT) + @p='test_fsg_read$(EXEEXT)'; \ + b='test_fsg_read'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_fsg_jsgf.log: test_fsg_jsgf$(EXEEXT) + @p='test_fsg_jsgf$(EXEEXT)'; \ + b='test_fsg_jsgf'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_fsg_write_fsm.log: test_fsg_write_fsm$(EXEEXT) + @p='test_fsg_write_fsm$(EXEEXT)'; \ + b='test_fsg_write_fsm'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -506,11 +895,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: @@ -594,9 +991,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -606,7 +1003,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_fsg/test_fsg_jsgf.c sphinxbase-0.8+5prealpha/test/unit/test_fsg/test_fsg_jsgf.c --- sphinxbase-0.8/test/unit/test_fsg/test_fsg_jsgf.c 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_fsg/test_fsg_jsgf.c 2015-03-24 17:26:34.000000000 +0000 @@ -17,7 +17,7 @@ /* Test loading */ jsgf = jsgf_parse_file(LMDIR "/polite.gram", NULL); TEST_ASSERT(jsgf); - rule = jsgf_get_rule(jsgf, ""); + rule = jsgf_get_rule(jsgf, "polite.startPolite"); TEST_ASSERT(rule); fsg = jsgf_build_fsg(jsgf, rule, lmath, 7.5); TEST_ASSERT(fsg); @@ -40,6 +40,15 @@ TEST_ASSERT(jsgf); jsgf_grammar_free(jsgf); + jsgf = jsgf_parse_string("#JSGF V1.0; grammar test; public = yes | no;", NULL); + TEST_ASSERT(jsgf); + rule = jsgf_get_rule(jsgf, "test.choice"); + TEST_ASSERT(rule); + fsg = jsgf_build_fsg(jsgf, rule, lmath, 7.5); + fsg_model_write(fsg, stdout); + fsg_model_free(fsg); + jsgf_grammar_free(jsgf); + logmath_free(lmath); return 0; diff -Nru sphinxbase-0.8/test/unit/test_fsg/test_fsg_write_fsm.c sphinxbase-0.8+5prealpha/test/unit/test_fsg/test_fsg_write_fsm.c --- sphinxbase-0.8/test/unit/test_fsg/test_fsg_write_fsm.c 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_fsg/test_fsg_write_fsm.c 2015-03-24 17:26:34.000000000 +0000 @@ -15,7 +15,7 @@ lmath = logmath_init(1.0001, 0, 0); jsgf = jsgf_parse_file(LMDIR "/polite.gram", NULL); TEST_ASSERT(jsgf); - rule = jsgf_get_rule(jsgf, ""); + rule = jsgf_get_rule(jsgf, "polite.startPolite"); TEST_ASSERT(rule); fsg = jsgf_build_fsg(jsgf, rule, lmath, 7.5); TEST_ASSERT(fsg); diff -Nru sphinxbase-0.8/test/unit/test_hash/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_hash/Makefile.am --- sphinxbase-0.8/test/unit/test_hash/Makefile.am 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_hash/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -2,7 +2,7 @@ noinst_HEADERS = test_macros.h -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include diff -Nru sphinxbase-0.8/test/unit/test_hash/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_hash/Makefile.in --- sphinxbase-0.8/test/unit/test_hash/Makefile.in 2012-12-12 17:28:55.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_hash/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -39,15 +83,15 @@ TESTS = test_hash_iter$(EXEEXT) _hash_delete1.test _hash_delete2.test \ _hash_delete3.test _hash_delete4.test _hash_delete5.test subdir = test/unit/test_hash -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -60,6 +104,10 @@ deletehash_LDADD = $(LDADD) deletehash_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = displayhash_SOURCES = displayhash.c displayhash_OBJECTS = displayhash.$(OBJEXT) displayhash_LDADD = $(LDADD) @@ -70,29 +118,275 @@ test_hash_iter_LDADD = $(LDADD) test_hash_iter_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = deletehash.c displayhash.c test_hash_iter.c DIST_SOURCES = deletehash.c displayhash.c test_hash_iter.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -106,6 +400,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -115,9 +410,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -125,15 +418,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -149,27 +441,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -202,14 +500,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -219,7 +520,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = test_macros.h -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include @@ -241,7 +542,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -251,9 +552,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_hash/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_hash/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_hash/Makefile + $(AUTOMAKE) --foreign test/unit/test_hash/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -281,15 +582,18 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -deletehash$(EXEEXT): $(deletehash_OBJECTS) $(deletehash_DEPENDENCIES) + +deletehash$(EXEEXT): $(deletehash_OBJECTS) $(deletehash_DEPENDENCIES) $(EXTRA_deletehash_DEPENDENCIES) @rm -f deletehash$(EXEEXT) - $(LINK) $(deletehash_OBJECTS) $(deletehash_LDADD) $(LIBS) -displayhash$(EXEEXT): $(displayhash_OBJECTS) $(displayhash_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(deletehash_OBJECTS) $(deletehash_LDADD) $(LIBS) + +displayhash$(EXEEXT): $(displayhash_OBJECTS) $(displayhash_DEPENDENCIES) $(EXTRA_displayhash_DEPENDENCIES) @rm -f displayhash$(EXEEXT) - $(LINK) $(displayhash_OBJECTS) $(displayhash_LDADD) $(LIBS) -test_hash_iter$(EXEEXT): $(test_hash_iter_OBJECTS) $(test_hash_iter_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(displayhash_OBJECTS) $(displayhash_LDADD) $(LIBS) + +test_hash_iter$(EXEEXT): $(test_hash_iter_OBJECTS) $(test_hash_iter_DEPENDENCIES) $(EXTRA_test_hash_iter_DEPENDENCIES) @rm -f test_hash_iter$(EXEEXT) - $(LINK) $(test_hash_iter_OBJECTS) $(test_hash_iter_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_hash_iter_OBJECTS) $(test_hash_iter_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -302,25 +606,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_hash_iter.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -328,26 +632,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -359,15 +652,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -376,101 +665,187 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_hash_iter.log: test_hash_iter$(EXEEXT) + @p='test_hash_iter$(EXEEXT)'; \ + b='test_hash_iter'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -518,11 +893,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -607,9 +990,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -619,7 +1002,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_lineiter/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_lineiter/Makefile.am --- sphinxbase-0.8/test/unit/test_lineiter/Makefile.am 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_lineiter/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -1,7 +1,7 @@ check_PROGRAMS = test_lineiter TESTS = test_lineiter -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ diff -Nru sphinxbase-0.8/test/unit/test_lineiter/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_lineiter/Makefile.in --- sphinxbase-0.8/test/unit/test_lineiter/Makefile.in 2012-12-12 17:28:55.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_lineiter/Makefile.in 2015-05-14 15:58:10.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,15 +81,15 @@ check_PROGRAMS = test_lineiter$(EXEEXT) TESTS = test_lineiter$(EXEEXT) subdir = test/unit/test_lineiter -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -58,29 +102,279 @@ test_lineiter_LDADD = $(LDADD) test_lineiter_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = test_lineiter.c DIST_SOURCES = test_lineiter.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -94,6 +388,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -103,9 +398,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -113,15 +406,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -137,27 +429,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -190,14 +488,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -206,7 +507,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -219,7 +520,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -229,9 +530,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_lineiter/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_lineiter/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_lineiter/Makefile + $(AUTOMAKE) --foreign test/unit/test_lineiter/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -259,9 +560,10 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_lineiter$(EXEEXT): $(test_lineiter_OBJECTS) $(test_lineiter_DEPENDENCIES) + +test_lineiter$(EXEEXT): $(test_lineiter_OBJECTS) $(test_lineiter_DEPENDENCIES) $(EXTRA_test_lineiter_DEPENDENCIES) @rm -f test_lineiter$(EXEEXT) - $(LINK) $(test_lineiter_OBJECTS) $(test_lineiter_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_lineiter_OBJECTS) $(test_lineiter_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -272,25 +574,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lineiter.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -298,26 +600,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -329,15 +620,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -346,101 +633,187 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_lineiter.log: test_lineiter$(EXEEXT) + @p='test_lineiter$(EXEEXT)'; \ + b='test_lineiter'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -488,11 +861,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -577,9 +958,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -589,7 +970,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_lineiter/test_lineiter.c sphinxbase-0.8+5prealpha/test/unit/test_lineiter/test_lineiter.c --- sphinxbase-0.8/test/unit/test_lineiter/test_lineiter.c 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_lineiter/test_lineiter.c 2015-03-24 17:26:34.000000000 +0000 @@ -21,7 +21,7 @@ lineiter_free(li); - rewind(fp); + fseek(fp, 0L, SEEK_SET); for (i = 0, li = lineiter_start_clean(fp); i < 3 && li; li = lineiter_next(li), i++) { printf ("Clean line is %s\n", li->buf); diff -Nru sphinxbase-0.8/test/unit/test_logmath/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_logmath/Makefile.am --- sphinxbase-0.8/test/unit/test_logmath/Makefile.am 2012-12-05 14:04:49.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_logmath/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -1,7 +1,7 @@ check_PROGRAMS = test_log_int16 test_log_int8 test_log_shifted TESTS = test_log_int16 test_log_int8 test_log_shifted -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include diff -Nru sphinxbase-0.8/test/unit/test_logmath/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_logmath/Makefile.in --- sphinxbase-0.8/test/unit/test_logmath/Makefile.in 2012-12-12 17:28:55.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_logmath/Makefile.in 2015-05-14 15:58:11.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -39,15 +83,15 @@ TESTS = test_log_int16$(EXEEXT) test_log_int8$(EXEEXT) \ test_log_shifted$(EXEEXT) subdir = test/unit/test_logmath -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -60,6 +104,10 @@ test_log_int16_LDADD = $(LDADD) test_log_int16_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = test_log_int8_SOURCES = test_log_int8.c test_log_int8_OBJECTS = test_log_int8.$(OBJEXT) test_log_int8_LDADD = $(LDADD) @@ -70,29 +118,275 @@ test_log_shifted_LDADD = $(LDADD) test_log_shifted_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = test_log_int16.c test_log_int8.c test_log_shifted.c DIST_SOURCES = test_log_int16.c test_log_int8.c test_log_shifted.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -106,6 +400,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -115,9 +410,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -125,15 +418,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -149,27 +441,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -202,14 +500,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -218,7 +519,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include @@ -229,7 +530,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -239,9 +540,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_logmath/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_logmath/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_logmath/Makefile + $(AUTOMAKE) --foreign test/unit/test_logmath/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -269,15 +570,18 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_log_int16$(EXEEXT): $(test_log_int16_OBJECTS) $(test_log_int16_DEPENDENCIES) + +test_log_int16$(EXEEXT): $(test_log_int16_OBJECTS) $(test_log_int16_DEPENDENCIES) $(EXTRA_test_log_int16_DEPENDENCIES) @rm -f test_log_int16$(EXEEXT) - $(LINK) $(test_log_int16_OBJECTS) $(test_log_int16_LDADD) $(LIBS) -test_log_int8$(EXEEXT): $(test_log_int8_OBJECTS) $(test_log_int8_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_log_int16_OBJECTS) $(test_log_int16_LDADD) $(LIBS) + +test_log_int8$(EXEEXT): $(test_log_int8_OBJECTS) $(test_log_int8_DEPENDENCIES) $(EXTRA_test_log_int8_DEPENDENCIES) @rm -f test_log_int8$(EXEEXT) - $(LINK) $(test_log_int8_OBJECTS) $(test_log_int8_LDADD) $(LIBS) -test_log_shifted$(EXEEXT): $(test_log_shifted_OBJECTS) $(test_log_shifted_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_log_int8_OBJECTS) $(test_log_int8_LDADD) $(LIBS) + +test_log_shifted$(EXEEXT): $(test_log_shifted_OBJECTS) $(test_log_shifted_DEPENDENCIES) $(EXTRA_test_log_shifted_DEPENDENCIES) @rm -f test_log_shifted$(EXEEXT) - $(LINK) $(test_log_shifted_OBJECTS) $(test_log_shifted_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_log_shifted_OBJECTS) $(test_log_shifted_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -290,25 +594,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_log_shifted.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -316,26 +620,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -347,15 +640,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -364,101 +653,201 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_log_int16.log: test_log_int16$(EXEEXT) + @p='test_log_int16$(EXEEXT)'; \ + b='test_log_int16'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_log_int8.log: test_log_int8$(EXEEXT) + @p='test_log_int8$(EXEEXT)'; \ + b='test_log_int8'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_log_shifted.log: test_log_shifted$(EXEEXT) + @p='test_log_shifted$(EXEEXT)'; \ + b='test_log_shifted'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -506,11 +895,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -595,9 +992,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -607,7 +1004,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_matrix/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_matrix/Makefile.am --- sphinxbase-0.8/test/unit/test_matrix/Makefile.am 2012-12-05 14:04:50.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_matrix/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -5,7 +5,7 @@ test_invert_SRCS = test_invert.c test_determinant_SRCS = test_determinant.c -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include diff -Nru sphinxbase-0.8/test/unit/test_matrix/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_matrix/Makefile.in --- sphinxbase-0.8/test/unit/test_matrix/Makefile.in 2012-12-12 17:28:55.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_matrix/Makefile.in 2015-05-14 15:58:11.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -36,14 +80,14 @@ check_PROGRAMS = test_solve$(EXEEXT) test_invert$(EXEEXT) \ test_determinant$(EXEEXT) subdir = test/unit/test_matrix -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -56,6 +100,10 @@ test_determinant_LDADD = $(LDADD) test_determinant_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = test_invert_SOURCES = test_invert.c test_invert_OBJECTS = test_invert.$(OBJEXT) test_invert_LDADD = $(LDADD) @@ -66,28 +114,272 @@ test_solve_LDADD = $(LDADD) test_solve_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = test_determinant.c test_invert.c test_solve.c DIST_SOURCES = test_determinant.c test_invert.c test_solve.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -101,6 +393,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -110,9 +403,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -120,15 +411,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -144,27 +434,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -197,14 +493,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -216,7 +515,7 @@ test_solve_SRCS = test_solve.c test_invert_SRCS = test_invert.c test_determinant_SRCS = test_determinant.c -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include @@ -237,7 +536,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -247,9 +546,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_matrix/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_matrix/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_matrix/Makefile + $(AUTOMAKE) --foreign test/unit/test_matrix/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -277,15 +576,18 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_determinant$(EXEEXT): $(test_determinant_OBJECTS) $(test_determinant_DEPENDENCIES) + +test_determinant$(EXEEXT): $(test_determinant_OBJECTS) $(test_determinant_DEPENDENCIES) $(EXTRA_test_determinant_DEPENDENCIES) @rm -f test_determinant$(EXEEXT) - $(LINK) $(test_determinant_OBJECTS) $(test_determinant_LDADD) $(LIBS) -test_invert$(EXEEXT): $(test_invert_OBJECTS) $(test_invert_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_determinant_OBJECTS) $(test_determinant_LDADD) $(LIBS) + +test_invert$(EXEEXT): $(test_invert_OBJECTS) $(test_invert_DEPENDENCIES) $(EXTRA_test_invert_DEPENDENCIES) @rm -f test_invert$(EXEEXT) - $(LINK) $(test_invert_OBJECTS) $(test_invert_LDADD) $(LIBS) -test_solve$(EXEEXT): $(test_solve_OBJECTS) $(test_solve_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_invert_OBJECTS) $(test_invert_LDADD) $(LIBS) + +test_solve$(EXEEXT): $(test_solve_OBJECTS) $(test_solve_DEPENDENCIES) $(EXTRA_test_solve_DEPENDENCIES) @rm -f test_solve$(EXEEXT) - $(LINK) $(test_solve_OBJECTS) $(test_solve_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_solve_OBJECTS) $(test_solve_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -298,25 +600,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_solve.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -324,26 +626,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -355,15 +646,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -372,101 +659,180 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -514,11 +880,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -603,9 +977,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -615,7 +989,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/100_2.arpa.DMP and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/100_2.arpa.DMP differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/100_2.arpa.gz and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/100_2.arpa.gz differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/100.arpa.bz2 and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/100.arpa.bz2 differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/100.arpa.DMP and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/100.arpa.DMP differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/100.arpa.gz and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/100.arpa.gz differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/100.lm.bin and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/100.lm.bin differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/100.lm.bz2 and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/100.lm.bz2 differ diff -Nru sphinxbase-0.8/test/unit/test_ngram/100.lmctl sphinxbase-0.8+5prealpha/test/unit/test_ngram/100.lmctl --- sphinxbase-0.8/test/unit/test_ngram/100.lmctl 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/100.lmctl 2015-07-14 21:46:11.000000000 +0000 @@ -1,4 +1,4 @@ { 100.probdef } -100.arpa.DMP 100 { scylla zero } -100_2.arpa.gz 100_2 +100.lm.dmp 100 { scylla zero } +102.lm.gz 102 turtle.lm turtle Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/100.lm.dmp and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/100.lm.dmp differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/100.lm.gz and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/100.lm.gz differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/102.lm.dmp and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/102.lm.dmp differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/102.lm.gz and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/102.lm.gz differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/104.lm.gz and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/104.lm.gz differ diff -Nru sphinxbase-0.8/test/unit/test_ngram/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_ngram/Makefile.am --- sphinxbase-0.8/test/unit/test_ngram/Makefile.am 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/Makefile.am 2015-08-05 11:17:26.000000000 +0000 @@ -1,18 +1,15 @@ check_PROGRAMS = \ test_lm_read \ - test_lm_mmap \ test_lm_score \ test_lm_add \ - test_lm_recode \ test_lm_casefold \ test_lm_class \ test_lm_set \ - test_lm_iter \ test_lm_write TESTS = $(check_PROGRAMS) -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -22,16 +19,19 @@ noinst_HEADERS = test_macros.h -EXTRA_DIST = 100.arpa.gz \ - 100.arpa.bz2 \ - 100.arpa.DMP \ +EXTRA_DIST = \ + 100.lm.gz \ + 100.lm.bz2 \ + 100.lm.dmp \ + 100.lm.bin \ 100.probdef \ 100.lmctl \ - 100_2.arpa.gz \ - 100_2.arpa.DMP \ + 102.lm.gz \ + 102.lm.dmp \ + 104.lm.gz \ turtle.lm \ - turtle.lm.DMP \ + turtle.lm.dmp \ turtle.ug.lm \ - turtle.ug.lm.DMP + turtle.ug.lm.dmp -CLEANFILES = 100.tmp.arpa 100.tmp.DMP +CLEANFILES = 100.tmp.lm.bin 100.tmp.lm turtle.ug.tmp.lm.bin diff -Nru sphinxbase-0.8/test/unit/test_ngram/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_ngram/Makefile.in --- sphinxbase-0.8/test/unit/test_ngram/Makefile.in 2012-12-12 17:28:55.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/Makefile.in 2015-08-05 11:17:46.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -34,21 +78,20 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -check_PROGRAMS = test_lm_read$(EXEEXT) test_lm_mmap$(EXEEXT) \ - test_lm_score$(EXEEXT) test_lm_add$(EXEEXT) \ - test_lm_recode$(EXEEXT) test_lm_casefold$(EXEEXT) \ +check_PROGRAMS = test_lm_read$(EXEEXT) test_lm_score$(EXEEXT) \ + test_lm_add$(EXEEXT) test_lm_casefold$(EXEEXT) \ test_lm_class$(EXEEXT) test_lm_set$(EXEEXT) \ - test_lm_iter$(EXEEXT) test_lm_write$(EXEEXT) + test_lm_write$(EXEEXT) subdir = test/unit/test_ngram -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -61,6 +104,10 @@ test_lm_add_LDADD = $(LDADD) test_lm_add_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = test_lm_casefold_SOURCES = test_lm_casefold.c test_lm_casefold_OBJECTS = test_lm_casefold.$(OBJEXT) test_lm_casefold_LDADD = $(LDADD) @@ -71,26 +118,11 @@ test_lm_class_LDADD = $(LDADD) test_lm_class_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la -test_lm_iter_SOURCES = test_lm_iter.c -test_lm_iter_OBJECTS = test_lm_iter.$(OBJEXT) -test_lm_iter_LDADD = $(LDADD) -test_lm_iter_DEPENDENCIES = \ - ${top_builddir}/src/libsphinxbase/libsphinxbase.la -test_lm_mmap_SOURCES = test_lm_mmap.c -test_lm_mmap_OBJECTS = test_lm_mmap.$(OBJEXT) -test_lm_mmap_LDADD = $(LDADD) -test_lm_mmap_DEPENDENCIES = \ - ${top_builddir}/src/libsphinxbase/libsphinxbase.la test_lm_read_SOURCES = test_lm_read.c test_lm_read_OBJECTS = test_lm_read.$(OBJEXT) test_lm_read_LDADD = $(LDADD) test_lm_read_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la -test_lm_recode_SOURCES = test_lm_recode.c -test_lm_recode_OBJECTS = test_lm_recode.$(OBJEXT) -test_lm_recode_LDADD = $(LDADD) -test_lm_recode_DEPENDENCIES = \ - ${top_builddir}/src/libsphinxbase/libsphinxbase.la test_lm_score_SOURCES = test_lm_score.c test_lm_score_OBJECTS = test_lm_score.$(OBJEXT) test_lm_score_LDADD = $(LDADD) @@ -106,33 +138,277 @@ test_lm_write_LDADD = $(LDADD) test_lm_write_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = test_lm_add.c test_lm_casefold.c test_lm_class.c \ - test_lm_iter.c test_lm_mmap.c test_lm_read.c test_lm_recode.c \ - test_lm_score.c test_lm_set.c test_lm_write.c + test_lm_read.c test_lm_score.c test_lm_set.c test_lm_write.c DIST_SOURCES = test_lm_add.c test_lm_casefold.c test_lm_class.c \ - test_lm_iter.c test_lm_mmap.c test_lm_read.c test_lm_recode.c \ - test_lm_score.c test_lm_set.c test_lm_write.c + test_lm_read.c test_lm_score.c test_lm_set.c test_lm_write.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -146,6 +422,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -155,9 +432,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -165,15 +440,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -189,27 +463,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -242,14 +522,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -259,7 +542,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ TESTS = $(check_PROGRAMS) -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -267,23 +550,26 @@ LDADD = ${top_builddir}/src/libsphinxbase/libsphinxbase.la noinst_HEADERS = test_macros.h -EXTRA_DIST = 100.arpa.gz \ - 100.arpa.bz2 \ - 100.arpa.DMP \ +EXTRA_DIST = \ + 100.lm.gz \ + 100.lm.bz2 \ + 100.lm.dmp \ + 100.lm.bin \ 100.probdef \ 100.lmctl \ - 100_2.arpa.gz \ - 100_2.arpa.DMP \ + 102.lm.gz \ + 102.lm.dmp \ + 104.lm.gz \ turtle.lm \ - turtle.lm.DMP \ + turtle.lm.dmp \ turtle.ug.lm \ - turtle.ug.lm.DMP + turtle.ug.lm.dmp -CLEANFILES = 100.tmp.arpa 100.tmp.DMP +CLEANFILES = 100.tmp.lm.bin 100.tmp.lm turtle.ug.tmp.lm.bin all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -293,9 +579,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_ngram/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_ngram/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_ngram/Makefile + $(AUTOMAKE) --foreign test/unit/test_ngram/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -323,36 +609,34 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_lm_add$(EXEEXT): $(test_lm_add_OBJECTS) $(test_lm_add_DEPENDENCIES) + +test_lm_add$(EXEEXT): $(test_lm_add_OBJECTS) $(test_lm_add_DEPENDENCIES) $(EXTRA_test_lm_add_DEPENDENCIES) @rm -f test_lm_add$(EXEEXT) - $(LINK) $(test_lm_add_OBJECTS) $(test_lm_add_LDADD) $(LIBS) -test_lm_casefold$(EXEEXT): $(test_lm_casefold_OBJECTS) $(test_lm_casefold_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_lm_add_OBJECTS) $(test_lm_add_LDADD) $(LIBS) + +test_lm_casefold$(EXEEXT): $(test_lm_casefold_OBJECTS) $(test_lm_casefold_DEPENDENCIES) $(EXTRA_test_lm_casefold_DEPENDENCIES) @rm -f test_lm_casefold$(EXEEXT) - $(LINK) $(test_lm_casefold_OBJECTS) $(test_lm_casefold_LDADD) $(LIBS) -test_lm_class$(EXEEXT): $(test_lm_class_OBJECTS) $(test_lm_class_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_lm_casefold_OBJECTS) $(test_lm_casefold_LDADD) $(LIBS) + +test_lm_class$(EXEEXT): $(test_lm_class_OBJECTS) $(test_lm_class_DEPENDENCIES) $(EXTRA_test_lm_class_DEPENDENCIES) @rm -f test_lm_class$(EXEEXT) - $(LINK) $(test_lm_class_OBJECTS) $(test_lm_class_LDADD) $(LIBS) -test_lm_iter$(EXEEXT): $(test_lm_iter_OBJECTS) $(test_lm_iter_DEPENDENCIES) - @rm -f test_lm_iter$(EXEEXT) - $(LINK) $(test_lm_iter_OBJECTS) $(test_lm_iter_LDADD) $(LIBS) -test_lm_mmap$(EXEEXT): $(test_lm_mmap_OBJECTS) $(test_lm_mmap_DEPENDENCIES) - @rm -f test_lm_mmap$(EXEEXT) - $(LINK) $(test_lm_mmap_OBJECTS) $(test_lm_mmap_LDADD) $(LIBS) -test_lm_read$(EXEEXT): $(test_lm_read_OBJECTS) $(test_lm_read_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_lm_class_OBJECTS) $(test_lm_class_LDADD) $(LIBS) + +test_lm_read$(EXEEXT): $(test_lm_read_OBJECTS) $(test_lm_read_DEPENDENCIES) $(EXTRA_test_lm_read_DEPENDENCIES) @rm -f test_lm_read$(EXEEXT) - $(LINK) $(test_lm_read_OBJECTS) $(test_lm_read_LDADD) $(LIBS) -test_lm_recode$(EXEEXT): $(test_lm_recode_OBJECTS) $(test_lm_recode_DEPENDENCIES) - @rm -f test_lm_recode$(EXEEXT) - $(LINK) $(test_lm_recode_OBJECTS) $(test_lm_recode_LDADD) $(LIBS) -test_lm_score$(EXEEXT): $(test_lm_score_OBJECTS) $(test_lm_score_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_lm_read_OBJECTS) $(test_lm_read_LDADD) $(LIBS) + +test_lm_score$(EXEEXT): $(test_lm_score_OBJECTS) $(test_lm_score_DEPENDENCIES) $(EXTRA_test_lm_score_DEPENDENCIES) @rm -f test_lm_score$(EXEEXT) - $(LINK) $(test_lm_score_OBJECTS) $(test_lm_score_LDADD) $(LIBS) -test_lm_set$(EXEEXT): $(test_lm_set_OBJECTS) $(test_lm_set_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_lm_score_OBJECTS) $(test_lm_score_LDADD) $(LIBS) + +test_lm_set$(EXEEXT): $(test_lm_set_OBJECTS) $(test_lm_set_DEPENDENCIES) $(EXTRA_test_lm_set_DEPENDENCIES) @rm -f test_lm_set$(EXEEXT) - $(LINK) $(test_lm_set_OBJECTS) $(test_lm_set_LDADD) $(LIBS) -test_lm_write$(EXEEXT): $(test_lm_write_OBJECTS) $(test_lm_write_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_lm_set_OBJECTS) $(test_lm_set_LDADD) $(LIBS) + +test_lm_write$(EXEEXT): $(test_lm_write_OBJECTS) $(test_lm_write_DEPENDENCIES) $(EXTRA_test_lm_write_DEPENDENCIES) @rm -f test_lm_write$(EXEEXT) - $(LINK) $(test_lm_write_OBJECTS) $(test_lm_write_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_lm_write_OBJECTS) $(test_lm_write_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -363,34 +647,31 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lm_add.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lm_casefold.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lm_class.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lm_iter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lm_mmap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lm_read.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lm_recode.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lm_score.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lm_set.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lm_write.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -398,26 +679,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -429,15 +699,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -446,101 +712,229 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_lm_read.log: test_lm_read$(EXEEXT) + @p='test_lm_read$(EXEEXT)'; \ + b='test_lm_read'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_lm_score.log: test_lm_score$(EXEEXT) + @p='test_lm_score$(EXEEXT)'; \ + b='test_lm_score'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_lm_add.log: test_lm_add$(EXEEXT) + @p='test_lm_add$(EXEEXT)'; \ + b='test_lm_add'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_lm_casefold.log: test_lm_casefold$(EXEEXT) + @p='test_lm_casefold$(EXEEXT)'; \ + b='test_lm_casefold'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_lm_class.log: test_lm_class$(EXEEXT) + @p='test_lm_class$(EXEEXT)'; \ + b='test_lm_class'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_lm_set.log: test_lm_set$(EXEEXT) + @p='test_lm_set$(EXEEXT)'; \ + b='test_lm_set'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_lm_write.log: test_lm_write$(EXEEXT) + @p='test_lm_write$(EXEEXT)'; \ + b='test_lm_write'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -588,11 +982,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -677,9 +1079,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -689,7 +1091,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_ngram/test_lm_add.c sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_add.c --- sphinxbase-0.8/test/unit/test_ngram/test_lm_add.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_add.c 2015-07-14 21:46:11.000000000 +0000 @@ -15,19 +15,11 @@ wid = ngram_model_add_word(model, "foobie", 1.0); score = ngram_score(model, "foobie", NULL); - TEST_EQUAL_LOG(score, logmath_log(lmath, 1.0/400.0)); /* #unigrams */ + TEST_EQUAL_LOG(score, logmath_log(lmath, 1.0/401)); /* #unigrams */ wid = ngram_model_add_word(model, "quux", 0.5); score = ngram_score(model, "quux", NULL); - TEST_EQUAL_LOG(score, logmath_log(lmath, 0.5/400.0)); /* #unigrams */ - - ngram_model_apply_weights(model, 1.0, 1.0, 0.9); - score = ngram_score(model, "quux", NULL); - TEST_EQUAL_LOG(score, logmath_log(lmath, 0.5/400.0*0.9 + 1.0/400.0*0.1)); - - wid = ngram_model_add_word(model, "bazbar", 0.5); - score = ngram_score(model, "bazbar", NULL); - TEST_EQUAL_LOG(score, logmath_log(lmath, 0.5/400.0*0.9 + 1.0/400.0*0.1)); + TEST_EQUAL_LOG(score, logmath_log(lmath, 0.5/402)); /* #unigrams */ } int @@ -38,11 +30,11 @@ lmath = logmath_init(1.0001, 0, 0); - model = ngram_model_read(NULL, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); + model = ngram_model_read(NULL, LMDIR "/100.lm.dmp", NGRAM_BIN, lmath); run_tests(lmath, model); ngram_model_free(model); - model = ngram_model_read(NULL, LMDIR "/100.arpa.gz", NGRAM_ARPA, lmath); + model = ngram_model_read(NULL, LMDIR "/100.lm.gz", NGRAM_ARPA, lmath); run_tests(lmath, model); ngram_model_free(model); diff -Nru sphinxbase-0.8/test/unit/test_ngram/test_lm_casefold.c sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_casefold.c --- sphinxbase-0.8/test/unit/test_ngram/test_lm_casefold.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_casefold.c 2015-07-14 21:46:11.000000000 +0000 @@ -1,44 +1,44 @@ -#include -#include -#include - -#include "test_macros.h" - -#include -#include -#include - -int -main(int argc, char *argv[]) -{ - logmath_t *lmath; - ngram_model_t *model; - - /* Initialize a logmath object to pass to ngram_read */ - lmath = logmath_init(1.0001, 0, 0); - - /* Read a language model */ - model = ngram_model_read(NULL, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); - TEST_ASSERT(model); - - ngram_model_casefold(model, NGRAM_UPPER); - - TEST_EQUAL(0, strcmp("", ngram_word(model, 5))); - TEST_EQUAL(0, strcmp("BE", ngram_word(model, 42))); - TEST_EQUAL(0, strcmp("FLOORED", ngram_word(model, 130))); - TEST_EQUAL(0, strcmp("ZERO", ngram_word(model, 398))); - TEST_EQUAL(0, strcmp("~", ngram_word(model, 399))); - - ngram_model_casefold(model, NGRAM_LOWER); - - TEST_EQUAL(0, strcmp("", ngram_word(model, 5))); - TEST_EQUAL(0, strcmp("be", ngram_word(model, 42))); - TEST_EQUAL(0, strcmp("floored", ngram_word(model, 130))); - TEST_EQUAL(0, strcmp("zero", ngram_word(model, 398))); - TEST_EQUAL(0, strcmp("~", ngram_word(model, 399))); - - ngram_model_free(model); - logmath_free(lmath); - - return 0; -} +#include +#include +#include + +#include "test_macros.h" + +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + logmath_t *lmath; + ngram_model_t *model; + + /* Initialize a logmath object to pass to ngram_read */ + lmath = logmath_init(1.0001, 0, 0); + + /* Read a language model */ + model = ngram_model_read(NULL, LMDIR "/100.lm.dmp", NGRAM_BIN, lmath); + TEST_ASSERT(model); + + ngram_model_casefold(model, NGRAM_UPPER); + + TEST_EQUAL(0, strcmp("", ngram_word(model, 5))); + TEST_EQUAL(0, strcmp("BE", ngram_word(model, 42))); + TEST_EQUAL(0, strcmp("FLOORED", ngram_word(model, 130))); + TEST_EQUAL(0, strcmp("ZERO", ngram_word(model, 398))); + TEST_EQUAL(0, strcmp("~", ngram_word(model, 399))); + + ngram_model_casefold(model, NGRAM_LOWER); + + TEST_EQUAL(0, strcmp("", ngram_word(model, 5))); + TEST_EQUAL(0, strcmp("be", ngram_word(model, 42))); + TEST_EQUAL(0, strcmp("floored", ngram_word(model, 130))); + TEST_EQUAL(0, strcmp("zero", ngram_word(model, 398))); + TEST_EQUAL(0, strcmp("~", ngram_word(model, 399))); + + ngram_model_free(model); + logmath_free(lmath); + + return 0; +} diff -Nru sphinxbase-0.8/test/unit/test_ngram/test_lm_class.c sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_class.c --- sphinxbase-0.8/test/unit/test_ngram/test_lm_class.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_class.c 2015-07-14 21:46:11.000000000 +0000 @@ -109,11 +109,11 @@ lmath = logmath_init(1.0001, 0, 0); - model = ngram_model_read(NULL, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); + model = ngram_model_read(NULL, LMDIR "/100.lm.dmp", NGRAM_BIN, lmath); run_tests(lmath, model); ngram_model_free(model); - model = ngram_model_read(NULL, LMDIR "/100.arpa.gz", NGRAM_ARPA, lmath); + model = ngram_model_read(NULL, LMDIR "/100.lm.gz", NGRAM_ARPA, lmath); run_tests(lmath, model); ngram_model_free(model); diff -Nru sphinxbase-0.8/test/unit/test_ngram/test_lm_iter.c sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_iter.c --- sphinxbase-0.8/test/unit/test_ngram/test_lm_iter.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_iter.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,135 +0,0 @@ -#include -#include -#include - -#include "test_macros.h" - -#include -#include -#include -#include - -int -main(int argc, char *argv[]) -{ - logmath_t *lmath; - ngram_model_t *model; - ngram_iter_t *itor; - int i; - - /* Initialize a logmath object to pass to ngram_read */ - lmath = logmath_init(1.0001, 0, 0); - /* Read a language model */ - model = ngram_model_read(NULL, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); - TEST_ASSERT(model); - - for (i = 0, itor = ngram_model_mgrams(model, 0); - itor; ++i, itor = ngram_iter_next(itor)) { - int32 score, bowt; - int32 const *wids = ngram_iter_get(itor, &score, &bowt); - - /* - printf("%.4f %s %.4f\n", - logmath_log_to_log10(lmath, score), - ngram_word(model, wids[0]), - logmath_log_to_log10(lmath, bowt)); - */ - - if (i == 0) TEST_EQUAL(wids[0], ngram_wid(model, "")); - if (i == 1) TEST_EQUAL(wids[0], ngram_wid(model, "'s")); - } - - for (i = 0, itor = ngram_model_mgrams(model, 1); - itor; ++i, itor = ngram_iter_next(itor)) { - int32 score, bowt; - int32 const *wids = ngram_iter_get(itor, &score, &bowt); - - /* - printf("%.4f %s %s %.4f\n", - logmath_log_to_log10(lmath, score), - ngram_word(model, wids[0]), - ngram_word(model, wids[1]), - logmath_log_to_log10(lmath, bowt)); - */ - - /* FIXME: These tests are not sufficient - actually we - * need to make sure all word IDs line up - * correctly. */ - if (i == 0) TEST_EQUAL(wids[0], ngram_wid(model, "'s")); - if (i == 0) TEST_EQUAL(wids[1], ngram_wid(model, "an")); - if (i == 1) TEST_EQUAL(wids[0], ngram_wid(model, "'s")); - if (i == 1) TEST_EQUAL(wids[1], ngram_wid(model, "going")); - } - - for (i = 0, itor = ngram_model_mgrams(model, 2); - itor; ++i, itor = ngram_iter_next(itor)) { - int32 score, bowt; - int32 const *wids = ngram_iter_get(itor, &score, &bowt); - - /* - printf("%.4f %s %s %s\n", - logmath_log_to_log10(lmath, score), - ngram_word(model, wids[0]), - ngram_word(model, wids[1]), - ngram_word(model, wids[2])); - */ - - /* FIXME: These tests are not sufficient - actually we - * need to make sure all word IDs line up - * correctly. */ - if (i == 0) TEST_EQUAL(wids[0], ngram_wid(model, "'s")); - if (i == 0) TEST_EQUAL(wids[1], ngram_wid(model, "an")); - if (i == 0) TEST_EQUAL(wids[2], ngram_wid(model, "r")); - if (i == 1) TEST_EQUAL(wids[0], ngram_wid(model, "'s")); - if (i == 1) TEST_EQUAL(wids[1], ngram_wid(model, "going")); - if (i == 1) TEST_EQUAL(wids[2], ngram_wid(model, "so")); - } - - { - ngram_iter_t *itor2, *itor3; - int32 score, bowt; - int32 const *wids; - - /* Test the boundary condition - successors of last 1-gram. */ - itor = ngram_ng_iter(model, ngram_model_get_counts(model)[0] - 1, - NULL, 0); - wids = ngram_iter_get(itor, &score, &bowt); - printf("%.4f %s %.4f\n", - logmath_log_to_log10(lmath, score), - ngram_word(model, wids[0]), - logmath_log_to_log10(lmath, bowt)); - TEST_EQUAL(wids[0], ngram_wid(model, "~")); - - for (itor2 = ngram_iter_successors(itor); - itor2; itor2 = ngram_iter_next(itor2)) { - wids = ngram_iter_get(itor2, &score, &bowt); - printf("%.4f %s %s %.4f\n", - logmath_log_to_log10(lmath, score), - ngram_word(model, wids[0]), - ngram_word(model, wids[1]), - logmath_log_to_log10(lmath, bowt)); - TEST_EQUAL(wids[0], ngram_wid(model, "~")); - TEST_EQUAL(wids[1], ngram_wid(model, "eleven")); - } - itor2 = ngram_iter_successors(itor); - for (itor3 = ngram_iter_successors(itor2); - itor3; itor3 = ngram_iter_next(itor3)) { - wids = ngram_iter_get(itor3, &score, &bowt); - printf("%.4f %s %s %s\n", - logmath_log_to_log10(lmath, score), - ngram_word(model, wids[0]), - ngram_word(model, wids[1]), - ngram_word(model, wids[2])); - TEST_EQUAL(wids[0], ngram_wid(model, "~")); - TEST_EQUAL(wids[1], ngram_wid(model, "eleven")); - TEST_EQUAL(wids[2], ngram_wid(model, "per")); - } - ngram_iter_free(itor2); - ngram_iter_free(itor); - } - - TEST_EQUAL(0, ngram_model_free(model)); - logmath_free(lmath); - - return 0; -} diff -Nru sphinxbase-0.8/test/unit/test_ngram/test_lm_mmap.c sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_mmap.c --- sphinxbase-0.8/test/unit/test_ngram/test_lm_mmap.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_mmap.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,111 +0,0 @@ -#include -#include -#include - -#include "test_macros.h" - -#include -#include -#include - -static const arg_t defn[] = { - { "-mmap", ARG_BOOLEAN, "yes", "use mmap" }, - { "-lw", ARG_FLOAT32, "1.0", "language weight" }, - { "-wip", ARG_FLOAT32, "1.0", "word insertion penalty" }, - { "-uw", ARG_FLOAT32, "1.0", "unigram weight" }, - { NULL, 0, NULL, NULL } -}; - -int -main(int argc, char *argv[]) -{ - logmath_t *lmath; - ngram_model_t *model; - cmd_ln_t *config; - int32 n_used; - - /* Initialize a logmath object to pass to ngram_read */ - lmath = logmath_init(1.0001, 0, 0); - /* Initialize a cmd_ln_t with -mmap yes */ - config = cmd_ln_parse_r(NULL, defn, 0, NULL, FALSE); - - /* Read a language model (this won't mmap) */ - model = ngram_model_read(config, LMDIR "/100.arpa.gz", NGRAM_ARPA, lmath); - TEST_ASSERT(model); - TEST_EQUAL(ngram_wid(model, ""), 0); - TEST_EQUAL(ngram_wid(model, "absolute"), 13); - TEST_EQUAL(strcmp(ngram_word(model, 13), "absolute"), 0); - /* Test unigrams. */ - TEST_EQUAL(ngram_score(model, "", NULL), -75346); - TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, ""), - NGRAM_INVALID_WID, &n_used), -75346); - TEST_EQUAL(n_used, 1); - TEST_EQUAL(ngram_score(model, "sphinxtrain", NULL), -64208); - TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, "sphinxtrain"), - NGRAM_INVALID_WID, &n_used), -64208); - TEST_EQUAL(n_used, 1); - /* Test bigrams. */ - TEST_EQUAL(ngram_score(model, "huggins", "david", NULL), -831); - /* Test trigrams. */ - TEST_EQUAL_LOG(ngram_score(model, "daines", "huggins", "david", NULL), -9450); - - ngram_model_free(model); - - /* Read a language model (this will mmap) */ - model = ngram_model_read(config, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); - TEST_ASSERT(model); - TEST_EQUAL(ngram_wid(model, ""), 0); - TEST_EQUAL(strcmp(ngram_word(model, 0), ""), 0); - TEST_EQUAL(ngram_wid(model, "absolute"), 13); - TEST_EQUAL(strcmp(ngram_word(model, 13), "absolute"), 0); - /* Test unigrams. */ - TEST_EQUAL(ngram_score(model, "", NULL), -75346); - TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, ""), - NGRAM_INVALID_WID, &n_used), -75346); - TEST_EQUAL(n_used, 1); - TEST_EQUAL(ngram_score(model, "sphinxtrain", NULL), -64208); - TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, "sphinxtrain"), - NGRAM_INVALID_WID, &n_used), -64208); - TEST_EQUAL(n_used, 1); - /* Test bigrams. */ - TEST_EQUAL(ngram_score(model, "huggins", "david", NULL), -831); - /* Test trigrams. */ - TEST_EQUAL(ngram_score(model, "daines", "huggins", "david", NULL), -9452); - - ngram_model_free(model); - - /* Test language weights on the command line. */ - cmd_ln_set_float32_r(config, "-lw", 2.0); - cmd_ln_set_float32_r(config, "-wip", 0.5); - model = ngram_model_read(config, LMDIR "/100.arpa.gz", NGRAM_ARPA, lmath); - TEST_ASSERT(model); - TEST_EQUAL(ngram_wid(model, ""), 0); - TEST_EQUAL(ngram_wid(model, "absolute"), 13); - TEST_EQUAL(strcmp(ngram_word(model, 13), "absolute"), 0); - /* Test unigrams. */ - TEST_EQUAL(ngram_score(model, "", NULL), -75346 - * 2 + logmath_log(lmath, 0.5)); - TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, ""), - NGRAM_INVALID_WID, &n_used), -75346 - * 2 + logmath_log(lmath, 0.5)); - TEST_EQUAL(n_used, 1); - TEST_EQUAL(ngram_score(model, "sphinxtrain", NULL), -64208 - * 2 + logmath_log(lmath, 0.5)); - TEST_EQUAL(ngram_bg_score(model, ngram_wid(model, "sphinxtrain"), - NGRAM_INVALID_WID, &n_used), -64208 - * 2 + logmath_log(lmath, 0.5)); - TEST_EQUAL(n_used, 1); - /* Test bigrams. */ - TEST_EQUAL(ngram_score(model, "huggins", "david", NULL), - -831 * 2 + logmath_log(lmath, 0.5)); - /* Test trigrams. */ - TEST_EQUAL_LOG(ngram_score(model, "daines", "huggins", "david", NULL), - -9450 * 2 + logmath_log(lmath, 0.5)); - - ngram_model_free(model); - - logmath_free(lmath); - cmd_ln_free_r(config); - - return 0; -} diff -Nru sphinxbase-0.8/test/unit/test_ngram/test_lm_read.c sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_read.c --- sphinxbase-0.8/test/unit/test_ngram/test_lm_read.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_read.c 2015-08-05 11:17:26.000000000 +0000 @@ -50,28 +50,40 @@ /* Initialize a logmath object to pass to ngram_read */ lmath = logmath_init(1.0001, 0, 0); + + /* Read a language model */ + model = ngram_model_read(NULL, LMDIR "/turtle.ug.lm", NGRAM_ARPA, lmath); + test_lm_ug_vals(model); + TEST_EQUAL(0, ngram_model_free(model)); + /* Read a language model */ - model = ngram_model_read(NULL, LMDIR "/100.arpa.bz2", NGRAM_ARPA, lmath); + model = ngram_model_read(NULL, LMDIR "/turtle.ug.lm.dmp", NGRAM_BIN, lmath); + test_lm_ug_vals(model); + TEST_EQUAL(0, ngram_model_free(model)); + + /* Read a language model with missing backoffs */ + model = ngram_model_read(NULL, LMDIR "/104.lm.gz", NGRAM_ARPA, lmath); + TEST_EQUAL(0, ngram_model_free(model)); + + /* Read a language model */ + model = ngram_model_read(NULL, LMDIR "/100.lm.bz2", NGRAM_ARPA, lmath); test_lm_vals(model); TEST_EQUAL(0, ngram_model_free(model)); /* Read a language model */ - model = ngram_model_read(NULL, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); + model = ngram_model_read(NULL, LMDIR "/100.lm.bin", NGRAM_BIN, lmath); test_lm_vals(model); + TEST_EQUAL(0, ngram_model_free(model)); + /* Read a language model */ + model = ngram_model_read(NULL, LMDIR "/100.lm.dmp", NGRAM_BIN, lmath); + test_lm_vals(model); /* Test refcounting. */ model = ngram_model_retain(model); TEST_EQUAL(1, ngram_model_free(model)); TEST_EQUAL(ngram_score(model, "daines", "huggins", "david", NULL), -9452); TEST_EQUAL(0, ngram_model_free(model)); - /* Read a language model */ - model = ngram_model_read(NULL, LMDIR "/turtle.ug.lm", NGRAM_ARPA, lmath); - test_lm_ug_vals(model); - - /* Read a language model */ - model = ngram_model_read(NULL, LMDIR "/turtle.ug.lm.DMP", NGRAM_DMP, lmath); - test_lm_ug_vals(model); logmath_free(lmath); diff -Nru sphinxbase-0.8/test/unit/test_ngram/test_lm_recode.c sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_recode.c --- sphinxbase-0.8/test/unit/test_ngram/test_lm_recode.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_recode.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -#include -#include -#include - -#include "test_macros.h" - -#include -#include -#include - -int -main(int argc, char *argv[]) -{ - logmath_t *lmath; - ngram_model_t *model; - - /* Initialize a logmath object to pass to ngram_read */ - lmath = logmath_init(1.0001, 0, 0); - - /* Read a language model */ - model = ngram_model_read(NULL, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); - TEST_ASSERT(model); - - ngram_model_recode(model, "iso8859-1", "utf-8"); - TEST_EQUAL(strcmp(ngram_word(model, 0), ""), 0); - ngram_model_free(model); - logmath_free(lmath); - - return 0; -} diff -Nru sphinxbase-0.8/test/unit/test_ngram/test_lm_score.c sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_score.c --- sphinxbase-0.8/test/unit/test_ngram/test_lm_score.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_score.c 2015-07-14 21:46:11.000000000 +0000 @@ -25,22 +25,22 @@ TEST_EQUAL(n_used, 1); /* Apply weights. */ - ngram_model_apply_weights(model, 7.5, 0.5, 1.0); + ngram_model_apply_weights(model, 7.5, 0.5); /* -9452 * 7.5 + log(0.5) = -77821 */ TEST_EQUAL_LOG(ngram_score(model, "daines", "huggins", "david", NULL), -77821); /* Recover original score. */ - TEST_EQUAL_LOG(ngram_prob(model, "daines", "huggins", "david", NULL), + TEST_EQUAL_LOG(ngram_probv(model, "daines", "huggins", "david", NULL), -9452); - TEST_EQUAL_LOG(ngram_prob(model, "huggins", "david", NULL), -831); + TEST_EQUAL_LOG(ngram_probv(model, "huggins", "david", NULL), -831); /* Un-apply weights. */ - ngram_model_apply_weights(model, 1.0, 1.0, 1.0); + ngram_model_apply_weights(model, 1.0, 1.0); TEST_EQUAL_LOG(ngram_score(model, "daines", "huggins", "david", NULL), -9452); TEST_EQUAL_LOG(ngram_score(model, "huggins", "david", NULL), -831); /* Recover original score. */ - TEST_EQUAL_LOG(ngram_prob(model, "daines", "huggins", "david", NULL), + TEST_EQUAL_LOG(ngram_probv(model, "daines", "huggins", "david", NULL), -9452); /* Pre-weighting, this should give the "raw" score. */ @@ -75,11 +75,11 @@ lmath = logmath_init(1.0001, 0, 0); - model = ngram_model_read(NULL, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); + model = ngram_model_read(NULL, LMDIR "/100.lm.bin", NGRAM_BIN, lmath); run_tests(model); ngram_model_free(model); - model = ngram_model_read(NULL, LMDIR "/100.arpa.gz", NGRAM_ARPA, lmath); + model = ngram_model_read(NULL, LMDIR "/100.lm.gz", NGRAM_ARPA, lmath); run_tests(model); ngram_model_free(model); diff -Nru sphinxbase-0.8/test/unit/test_ngram/test_lm_set.c sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_set.c --- sphinxbase-0.8/test/unit/test_ngram/test_lm_set.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_set.c 2015-07-14 21:46:11.000000000 +0000 @@ -15,7 +15,7 @@ logmath_t *lmath; ngram_model_t *lms[3]; ngram_model_t *lmset; - const char *names[] = { "100", "100_2" }; + const char *names[] = { "100", "102" }; const char *words[] = { "", "ROBOMAN", @@ -29,12 +29,12 @@ lmath = logmath_init(1.0001, 0, 0); - lms[0] = ngram_model_read(NULL, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); - lms[1] = ngram_model_read(NULL, LMDIR "/100_2.arpa.DMP", NGRAM_DMP, lmath); + lms[0] = ngram_model_read(NULL, LMDIR "/100.lm.dmp", NGRAM_BIN, lmath); + lms[1] = ngram_model_read(NULL, LMDIR "/102.lm.dmp", NGRAM_BIN, lmath); lmset = ngram_model_set_init(NULL, lms, (char **)names, NULL, 2); TEST_ASSERT(lmset); - TEST_EQUAL(ngram_model_set_select(lmset, "100_2"), lms[1]); + TEST_EQUAL(ngram_model_set_select(lmset, "102"), lms[1]); TEST_EQUAL(ngram_model_set_select(lmset, "100"), lms[0]); TEST_EQUAL(ngram_score(lmset, "sphinxtrain", NULL), logmath_log10_to_log(lmath, -2.7884)); @@ -43,7 +43,7 @@ TEST_EQUAL_LOG(ngram_score(lmset, "daines", "huggins", "david", NULL), logmath_log10_to_log(lmath, -0.4105)); - TEST_EQUAL(ngram_model_set_select(lmset, "100_2"), lms[1]); + TEST_EQUAL(ngram_model_set_select(lmset, "102"), lms[1]); TEST_EQUAL(ngram_score(lmset, "sphinxtrain", NULL), logmath_log10_to_log(lmath, -2.8192)); TEST_EQUAL(ngram_score(lmset, "huggins", "david", NULL), @@ -66,7 +66,7 @@ + 0.4 * pow(10, -2.8192))); /* Test switching back to selected mode. */ - TEST_EQUAL(ngram_model_set_select(lmset, "100_2"), lms[1]); + TEST_EQUAL(ngram_model_set_select(lmset, "102"), lms[1]); TEST_EQUAL(ngram_score(lmset, "sphinxtrain", NULL), logmath_log10_to_log(lmath, -2.8192)); TEST_EQUAL(ngram_score(lmset, "huggins", "david", NULL), @@ -92,14 +92,14 @@ /* Test adding and removing language models with preserved * word ID mappings. */ - lms[0] = ngram_model_read(NULL, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); - lms[1] = ngram_model_read(NULL, LMDIR "/100_2.arpa.DMP", NGRAM_DMP, lmath); + lms[0] = ngram_model_read(NULL, LMDIR "/100.lm.dmp", NGRAM_BIN, lmath); + lms[1] = ngram_model_read(NULL, LMDIR "/102.lm.dmp", NGRAM_BIN, lmath); lms[2] = ngram_model_read(NULL, LMDIR "/turtle.lm", NGRAM_ARPA, lmath); lmset = ngram_model_set_init(NULL, lms, (char **)names, NULL, 1); { int32 wid; wid = ngram_wid(lmset, "sphinxtrain"); - TEST_ASSERT(ngram_model_set_add(lmset, lms[1], "100_2", 1.0, TRUE)); + TEST_ASSERT(ngram_model_set_add(lmset, lms[1], "102", 1.0, TRUE)); /* Verify that it is the same. */ TEST_EQUAL(wid, ngram_wid(lmset, "sphinxtrain")); /* Now add another model and verify that its words @@ -108,7 +108,7 @@ TEST_EQUAL(wid, ngram_wid(lmset, "sphinxtrain")); TEST_EQUAL(ngram_unknown_wid(lmset), ngram_wid(lmset, "FORWARD")); /* Remove language model, make sure this doesn't break horribly. */ - TEST_EQUAL(lms[1], ngram_model_set_remove(lmset, "100_2", TRUE)); + TEST_EQUAL(lms[1], ngram_model_set_remove(lmset, "102", TRUE)); ngram_model_free(lms[1]); TEST_EQUAL(wid, ngram_wid(lmset, "sphinxtrain")); /* Now enable remapping of word IDs and verify that it works. */ @@ -151,7 +151,7 @@ (1.0 / 3.0) * pow(10, -2.7884) + (1.0 / 3.0) * pow(10, -2.8192))); - ngram_model_set_select(lmset, "100_2"); + ngram_model_set_select(lmset, "102"); TEST_EQUAL(ngram_score(lmset, "sphinxtrain", NULL), logmath_log10_to_log(lmath, -2.8192)); TEST_EQUAL(ngram_score(lmset, "huggins", "david", NULL), diff -Nru sphinxbase-0.8/test/unit/test_ngram/test_lm_write.c sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_write.c --- sphinxbase-0.8/test/unit/test_ngram/test_lm_write.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_ngram/test_lm_write.c 2015-07-14 21:46:11.000000000 +0000 @@ -46,44 +46,43 @@ /* Initialize a logmath object to pass to ngram_read */ lmath = logmath_init(1.0001, 0, 0); - /* Convert ARPA to DMP */ - E_INFO("Converting ARPA to DMP\n"); - model = ngram_model_read(NULL, LMDIR "/100.arpa.bz2", NGRAM_ARPA, lmath); + E_INFO("Converting ARPA to BIN\n"); + model = ngram_model_read(NULL, LMDIR "/100.lm.bz2", NGRAM_ARPA, lmath); test_lm_vals(model); - TEST_EQUAL(0, ngram_model_write(model, "100.tmp.DMP", NGRAM_DMP)); + TEST_EQUAL(0, ngram_model_write(model, "100.tmp.lm.bin", NGRAM_BIN)); ngram_model_free(model); - /* Convert DMP to ARPA */ - E_INFO("Converting DMP to ARPA\n"); - model = ngram_model_read(NULL, LMDIR "/100.arpa.DMP", NGRAM_DMP, lmath); + E_INFO("Converting BIN to ARPA\n"); + model = ngram_model_read(NULL, LMDIR "/100.lm.bin", NGRAM_BIN, lmath); test_lm_vals(model); - TEST_EQUAL(0, ngram_model_write(model, "100.tmp.arpa", NGRAM_ARPA)); + TEST_EQUAL(0, ngram_model_write(model, "100.tmp.lm", NGRAM_ARPA)); ngram_model_free(model); - /* Test converted DMP */ - E_INFO("Testing converted DMP\n"); - model = ngram_model_read(NULL, "100.tmp.DMP", NGRAM_DMP, lmath); + E_INFO("Testing converted BIN\n"); + model = ngram_model_read(NULL, "100.tmp.lm.bin", NGRAM_BIN, lmath); test_lm_vals(model); ngram_model_free(model); - /* Test converted ARPA */ E_INFO("Testing converted ARPA\n"); - model = ngram_model_read(NULL, "100.tmp.arpa", NGRAM_ARPA, lmath); + model = ngram_model_read(NULL, "100.tmp.lm", NGRAM_ARPA, lmath); test_lm_vals(model); ngram_model_free(model); - /* Convert DMP back to ARPA*/ - E_INFO("Converting ARPA back to DMP\n"); - model = ngram_model_read(NULL, "100.tmp.arpa", NGRAM_ARPA, lmath); + E_INFO("Converting ARPA back to BIN\n"); + model = ngram_model_read(NULL, "100.tmp.lm", NGRAM_ARPA, lmath); test_lm_vals(model); - TEST_EQUAL(0, ngram_model_write(model, "100.tmp.DMP", NGRAM_DMP)); + TEST_EQUAL(0, ngram_model_write(model, "100.tmp.lm.bin", NGRAM_BIN)); ngram_model_free(model); - /* Convert ARPA back to DMP */ - E_INFO("Converting DMP back to ARPA\n"); - model = ngram_model_read(NULL, "100.tmp.DMP", NGRAM_DMP, lmath); + E_INFO("Converting BIN back to ARPA\n"); + model = ngram_model_read(NULL, "100.tmp.lm.bin", NGRAM_BIN, lmath); test_lm_vals(model); - TEST_EQUAL(0, ngram_model_write(model, "100.tmp.arpa", NGRAM_ARPA)); + TEST_EQUAL(0, ngram_model_write(model, "100.tmp.lm", NGRAM_ARPA)); + ngram_model_free(model); + + E_INFO("Converting unigram ARPA to BIN\n"); + model = ngram_model_read(NULL, LMDIR "/turtle.ug.lm", NGRAM_ARPA, lmath); + TEST_EQUAL(0, ngram_model_write(model, "turtle.ug.tmp.lm.bin", NGRAM_BIN)); ngram_model_free(model); logmath_free(lmath); Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/turtle.lm.dmp and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/turtle.lm.dmp differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/turtle.lm.DMP and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/turtle.lm.DMP differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/turtle.ug.lm.dmp and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/turtle.ug.lm.dmp differ Binary files /tmp/tmpwXcq0g/WDAWTZkjb5/sphinxbase-0.8/test/unit/test_ngram/turtle.ug.lm.DMP and /tmp/tmpwXcq0g/fgfMAORTvF/sphinxbase-0.8+5prealpha/test/unit/test_ngram/turtle.ug.lm.DMP differ diff -Nru sphinxbase-0.8/test/unit/test_string/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_string/Makefile.am --- sphinxbase-0.8/test/unit/test_string/Makefile.am 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_string/Makefile.am 2015-03-24 17:26:34.000000000 +0000 @@ -1,6 +1,6 @@ check_PROGRAMS = strtest test_atof -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ diff -Nru sphinxbase-0.8/test/unit/test_string/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_string/Makefile.in --- sphinxbase-0.8/test/unit/test_string/Makefile.in 2012-12-12 17:28:56.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_string/Makefile.in 2015-05-14 15:58:11.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,14 +81,14 @@ TESTS = _fread_line.test _nextword.test _str2words.test \ _string_join.test _string_trim.test test_atof$(EXEEXT) subdir = test/unit/test_string -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -57,33 +101,283 @@ strtest_LDADD = $(LDADD) strtest_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = test_atof_SOURCES = test_atof.c test_atof_OBJECTS = test_atof.$(OBJEXT) test_atof_LDADD = $(LDADD) test_atof_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = strtest.c test_atof.c DIST_SOURCES = strtest.c test_atof.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -97,6 +391,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -106,9 +401,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -116,15 +409,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -140,27 +432,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -193,14 +491,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -209,7 +510,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -226,7 +527,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -236,9 +537,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_string/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_string/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_string/Makefile + $(AUTOMAKE) --foreign test/unit/test_string/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -266,12 +567,14 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -strtest$(EXEEXT): $(strtest_OBJECTS) $(strtest_DEPENDENCIES) + +strtest$(EXEEXT): $(strtest_OBJECTS) $(strtest_DEPENDENCIES) $(EXTRA_strtest_DEPENDENCIES) @rm -f strtest$(EXEEXT) - $(LINK) $(strtest_OBJECTS) $(strtest_LDADD) $(LIBS) -test_atof$(EXEEXT): $(test_atof_OBJECTS) $(test_atof_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(strtest_OBJECTS) $(strtest_LDADD) $(LIBS) + +test_atof$(EXEEXT): $(test_atof_OBJECTS) $(test_atof_DEPENDENCIES) $(EXTRA_test_atof_DEPENDENCIES) @rm -f test_atof$(EXEEXT) - $(LINK) $(test_atof_OBJECTS) $(test_atof_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_atof_OBJECTS) $(test_atof_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -283,25 +586,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_atof.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -309,26 +612,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -340,15 +632,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -357,101 +645,187 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_atof.log: test_atof$(EXEEXT) + @p='test_atof$(EXEEXT)'; \ + b='test_atof'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -499,11 +873,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: @@ -587,9 +969,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -599,7 +981,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_string/strtest.c sphinxbase-0.8+5prealpha/test/unit/test_string/strtest.c --- sphinxbase-0.8/test/unit/test_string/strtest.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_string/strtest.c 2015-03-24 17:26:34.000000000 +0000 @@ -36,7 +36,7 @@ return 1; } line = fread_line(fp, &len); - printf("len = %d orig = %d\n", len, + printf("len = %zd orig = %zd\n", len, strlen("Hello world!\n")); if (strcmp(line, "Hello world!\n") != 0) { printf("'%s' != 'Hello world!\\n'\n", line); @@ -45,7 +45,7 @@ ckd_free(line); line = fread_line(fp, &len); /* A line of exactly 127 characters. */ - printf("len = %d orig = %d\n", len, + printf("len = %zd orig = %zd\n", len, strlen("123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456\n")); if (strcmp(line, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456\n") != 0) { printf("'%s' != '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456\\n'\n", line); @@ -54,7 +54,7 @@ ckd_free(line); /* A very long line. */ line = fread_line(fp, &len); - printf("len = %d orig = %d\n", len, + printf("len = %zd orig = %zd\n", len, strlen("All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. \n")); if (strcmp(line, "All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. \n") != 0) { printf("'%s' != 'All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. \\n'\n", line); @@ -93,7 +93,7 @@ } } else if (!strcmp(argv[1], "str2words")) { - char *line = strdup(" foo bar baz argh"); + char *line = ckd_salloc(" foo bar baz argh"); char **words; int n; @@ -119,7 +119,7 @@ return 0; } else if (!strcmp(argv[1], "nextword")) { - char *line = strdup(" \tfoo bar\nbaz argh"); + char *line = ckd_salloc(" \tfoo bar\nbaz argh"); char *word; const char *delim = " \t\n"; char delimfound; @@ -174,7 +174,7 @@ printf("didn't get -1 at end of string\n"); } - line = strdup("FOO!"); + line = ckd_salloc("FOO!"); n = nextword(line, delim, &word, &delimfound); if (strcmp(word, "FOO!") != 0) { printf("%s != FOO!\n", word); diff -Nru sphinxbase-0.8/test/unit/test_thread/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_thread/Makefile.am --- sphinxbase-0.8/test/unit/test_thread/Makefile.am 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_thread/Makefile.am 2015-03-24 17:32:30.000000000 +0000 @@ -1,12 +1,11 @@ check_PROGRAMS = \ test_thread \ - test_tls_log \ test_event \ test_msgq TESTS = $(check_PROGRAMS) -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ diff -Nru sphinxbase-0.8/test/unit/test_thread/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_thread/Makefile.in --- sphinxbase-0.8/test/unit/test_thread/Makefile.in 2012-12-12 17:28:56.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_thread/Makefile.in 2015-05-14 15:58:11.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -34,18 +78,18 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -check_PROGRAMS = test_thread$(EXEEXT) test_tls_log$(EXEEXT) \ - test_event$(EXEEXT) test_msgq$(EXEEXT) +check_PROGRAMS = test_thread$(EXEEXT) test_event$(EXEEXT) \ + test_msgq$(EXEEXT) subdir = test/unit/test_thread -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -58,6 +102,10 @@ test_event_LDADD = $(LDADD) test_event_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = test_msgq_SOURCES = test_msgq.c test_msgq_OBJECTS = test_msgq.$(OBJEXT) test_msgq_LDADD = $(LDADD) @@ -68,34 +116,275 @@ test_thread_LDADD = $(LDADD) test_thread_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la -test_tls_log_SOURCES = test_tls_log.c -test_tls_log_OBJECTS = test_tls_log.$(OBJEXT) -test_tls_log_LDADD = $(LDADD) -test_tls_log_DEPENDENCIES = \ - ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = test_event.c test_msgq.c test_thread.c test_tls_log.c -DIST_SOURCES = test_event.c test_msgq.c test_thread.c test_tls_log.c +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = test_event.c test_msgq.c test_thread.c +DIST_SOURCES = test_event.c test_msgq.c test_thread.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -109,6 +398,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -118,9 +408,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -128,15 +416,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -152,27 +439,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -205,14 +498,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -222,7 +518,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ TESTS = $(check_PROGRAMS) -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -234,7 +530,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -244,9 +540,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_thread/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_thread/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_thread/Makefile + $(AUTOMAKE) --foreign test/unit/test_thread/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -274,18 +570,18 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_event$(EXEEXT): $(test_event_OBJECTS) $(test_event_DEPENDENCIES) + +test_event$(EXEEXT): $(test_event_OBJECTS) $(test_event_DEPENDENCIES) $(EXTRA_test_event_DEPENDENCIES) @rm -f test_event$(EXEEXT) - $(LINK) $(test_event_OBJECTS) $(test_event_LDADD) $(LIBS) -test_msgq$(EXEEXT): $(test_msgq_OBJECTS) $(test_msgq_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_event_OBJECTS) $(test_event_LDADD) $(LIBS) + +test_msgq$(EXEEXT): $(test_msgq_OBJECTS) $(test_msgq_DEPENDENCIES) $(EXTRA_test_msgq_DEPENDENCIES) @rm -f test_msgq$(EXEEXT) - $(LINK) $(test_msgq_OBJECTS) $(test_msgq_LDADD) $(LIBS) -test_thread$(EXEEXT): $(test_thread_OBJECTS) $(test_thread_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_msgq_OBJECTS) $(test_msgq_LDADD) $(LIBS) + +test_thread$(EXEEXT): $(test_thread_OBJECTS) $(test_thread_DEPENDENCIES) $(EXTRA_test_thread_DEPENDENCIES) @rm -f test_thread$(EXEEXT) - $(LINK) $(test_thread_OBJECTS) $(test_thread_LDADD) $(LIBS) -test_tls_log$(EXEEXT): $(test_tls_log_OBJECTS) $(test_tls_log_DEPENDENCIES) - @rm -f test_tls_log$(EXEEXT) - $(LINK) $(test_tls_log_OBJECTS) $(test_tls_log_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_thread_OBJECTS) $(test_thread_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -296,28 +592,27 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_event.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_msgq.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_thread.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_tls_log.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -325,26 +620,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -356,15 +640,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -373,101 +653,201 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_thread.log: test_thread$(EXEEXT) + @p='test_thread$(EXEEXT)'; \ + b='test_thread'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_event.log: test_event$(EXEEXT) + @p='test_event$(EXEEXT)'; \ + b='test_event'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_msgq.log: test_msgq$(EXEEXT) + @p='test_msgq$(EXEEXT)'; \ + b='test_msgq'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -515,11 +895,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -604,9 +992,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -616,7 +1004,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_thread/test_tls_log.c sphinxbase-0.8+5prealpha/test/unit/test_thread/test_tls_log.c --- sphinxbase-0.8/test/unit/test_thread/test_tls_log.c 2012-12-05 14:04:51.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_thread/test_tls_log.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#include "test_macros.h" - -static const arg_t fe_args[] = { - waveform_to_cepstral_command_line_macro(), - { NULL, 0, NULL, NULL } -}; - -static int -process(sbthread_t *th) -{ - FILE *raw, *logfh; - int16 *buf; - mfcc_t **cepbuf; - size_t nsamps; - fe_t *fe; - long fsize; - int32 nfr; - char outfile[16]; - - sprintf(outfile, "%03ld.log", (long)sbthread_arg(th)); - if ((logfh = fopen(outfile, "w")) == NULL) - return -1; - err_set_logfp(logfh); - if ((fe = fe_init_auto_r(sbthread_config(th))) == NULL) - return -1; - if ((raw = fopen(TESTDATADIR "/chan3.raw", "rb")) == NULL) - return -1; - fseek(raw, 0, SEEK_END); - fsize = ftell(raw); - fseek(raw, 0, SEEK_SET); - buf = ckd_malloc(fsize); - fread(buf, 1, fsize, raw); - nsamps = fsize / 2; - - fe_process_utt(fe, buf, nsamps, &cepbuf, &nfr); - E_INFO("nfr = %d\n", nfr); - fe_free_2d(cepbuf); - ckd_free(buf); - fclose(raw); - fe_free(fe); - fclose(logfh); - - return 0; -} - -int -main(int argc, char *argv[]) -{ - sbthread_t *threads[10]; - cmd_ln_t *config; - int i; - - E_INFO("Processing chan3.raw in 10 threads\n"); - if ((config = cmd_ln_parse_r(NULL, fe_args, 0, NULL, FALSE)) == NULL) - return -1; - for (i = 0; i < 10; ++i) { - config = cmd_ln_retain(config); - threads[i] = sbthread_start(config, process, (void *)(long)i); - } - for (i = 0; i < 10; ++i) { - int rv; - rv = sbthread_wait(threads[i]); - E_INFO("Thread %d exited with status %d\n", i, rv); - sbthread_free(threads[i]); - } - /* Now check to make sure they all created logfiles with the - * correct contents. */ - for (i = 0; i < 10; ++i) { - char logfile[16], line[256]; - FILE *logfh; - - sprintf(logfile, "%03d.log", i); - TEST_ASSERT(logfh = fopen(logfile, "r")); - while (fgets(line, sizeof(line), logfh)) { - string_trim(line, STRING_BOTH); - printf("%s: |%s|\n", logfile, line); - TEST_EQUAL(0, strcmp(line, "INFO: test_tls_log.c(44): nfr = 1436")); - } - fclose(logfh); - } - cmd_ln_free_r(config); - return 0; -} diff -Nru sphinxbase-0.8/test/unit/test_util/Makefile.am sphinxbase-0.8+5prealpha/test/unit/test_util/Makefile.am --- sphinxbase-0.8/test/unit/test_util/Makefile.am 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_util/Makefile.am 2015-07-05 00:26:49.000000000 +0000 @@ -1,6 +1,7 @@ check_PROGRAMS = \ test_fopen \ test_huff_code \ + test_bitarr \ test_bit_encode \ test_build_directory \ test_heap \ @@ -9,7 +10,7 @@ TESTS = $(check_PROGRAMS) -INCLUDES = \ +AM_CFLAGS =\ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ diff -Nru sphinxbase-0.8/test/unit/test_util/Makefile.in sphinxbase-0.8+5prealpha/test/unit/test_util/Makefile.in --- sphinxbase-0.8/test/unit/test_util/Makefile.in 2012-12-12 17:28:56.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_util/Makefile.in 2015-07-05 00:28:19.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.13.4 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,19 +79,19 @@ build_triplet = @build@ host_triplet = @host@ check_PROGRAMS = test_fopen$(EXEEXT) test_huff_code$(EXEEXT) \ - test_bit_encode$(EXEEXT) test_build_directory$(EXEEXT) \ - test_heap$(EXEEXT) test_filename$(EXEEXT) \ - test_readfile$(EXEEXT) + test_bitarr$(EXEEXT) test_bit_encode$(EXEEXT) \ + test_build_directory$(EXEEXT) test_heap$(EXEEXT) \ + test_filename$(EXEEXT) test_readfile$(EXEEXT) subdir = test/unit/test_util -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_swig.m4 \ + $(top_srcdir)/m4/ax_python_devel.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -60,6 +104,15 @@ test_bit_encode_LDADD = $(LDADD) test_bit_encode_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +test_bitarr_SOURCES = test_bitarr.c +test_bitarr_OBJECTS = test_bitarr.$(OBJEXT) +test_bitarr_LDADD = $(LDADD) +test_bitarr_DEPENDENCIES = \ + ${top_builddir}/src/libsphinxbase/libsphinxbase.la test_build_directory_SOURCES = test_build_directory.c test_build_directory_OBJECTS = test_build_directory.$(OBJEXT) test_build_directory_LDADD = $(LDADD) @@ -90,32 +143,279 @@ test_readfile_LDADD = $(LDADD) test_readfile_DEPENDENCIES = \ ${top_builddir}/src/libsphinxbase/libsphinxbase.la +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = test_bit_encode.c test_build_directory.c test_filename.c \ - test_fopen.c test_heap.c test_huff_code.c test_readfile.c -DIST_SOURCES = test_bit_encode.c test_build_directory.c \ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = test_bit_encode.c test_bitarr.c test_build_directory.c \ + test_filename.c test_fopen.c test_heap.c test_huff_code.c \ + test_readfile.c +DIST_SOURCES = test_bit_encode.c test_bitarr.c test_build_directory.c \ test_filename.c test_fopen.c test_heap.c test_huff_code.c \ test_readfile.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -129,6 +429,7 @@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -138,9 +439,7 @@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ -HAVE_CYTHON = @HAVE_CYTHON@ HAVE_DOXYGEN = @HAVE_DOXYGEN@ -HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -148,15 +447,14 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -172,27 +470,33 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ PYTHON = @PYTHON@ -PYTHON_CONFIG = @PYTHON_CONFIG@ +PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ +PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ +PYTHON_LDFLAGS = @PYTHON_LDFLAGS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@ -SAMPLERATE_LIBS = @SAMPLERATE_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ -SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ -SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ +SWIG = @SWIG@ +SWIG_LIB = @SWIG_LIB@ 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_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ad_backend = @ad_backend@ +ad_cppflags = @ad_cppflags@ ad_files = @ad_files@ ad_libs = @ad_libs@ am__include = @am__include@ @@ -225,14 +529,17 @@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -242,7 +549,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ TESTS = $(check_PROGRAMS) -INCLUDES = \ +AM_CFLAGS = \ -I$(top_srcdir)/include/sphinxbase \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ @@ -255,7 +562,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -265,9 +572,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/test_util/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/unit/test_util/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/unit/test_util/Makefile + $(AUTOMAKE) --foreign test/unit/test_util/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -295,27 +602,38 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -test_bit_encode$(EXEEXT): $(test_bit_encode_OBJECTS) $(test_bit_encode_DEPENDENCIES) + +test_bit_encode$(EXEEXT): $(test_bit_encode_OBJECTS) $(test_bit_encode_DEPENDENCIES) $(EXTRA_test_bit_encode_DEPENDENCIES) @rm -f test_bit_encode$(EXEEXT) - $(LINK) $(test_bit_encode_OBJECTS) $(test_bit_encode_LDADD) $(LIBS) -test_build_directory$(EXEEXT): $(test_build_directory_OBJECTS) $(test_build_directory_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_bit_encode_OBJECTS) $(test_bit_encode_LDADD) $(LIBS) + +test_bitarr$(EXEEXT): $(test_bitarr_OBJECTS) $(test_bitarr_DEPENDENCIES) $(EXTRA_test_bitarr_DEPENDENCIES) + @rm -f test_bitarr$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_bitarr_OBJECTS) $(test_bitarr_LDADD) $(LIBS) + +test_build_directory$(EXEEXT): $(test_build_directory_OBJECTS) $(test_build_directory_DEPENDENCIES) $(EXTRA_test_build_directory_DEPENDENCIES) @rm -f test_build_directory$(EXEEXT) - $(LINK) $(test_build_directory_OBJECTS) $(test_build_directory_LDADD) $(LIBS) -test_filename$(EXEEXT): $(test_filename_OBJECTS) $(test_filename_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_build_directory_OBJECTS) $(test_build_directory_LDADD) $(LIBS) + +test_filename$(EXEEXT): $(test_filename_OBJECTS) $(test_filename_DEPENDENCIES) $(EXTRA_test_filename_DEPENDENCIES) @rm -f test_filename$(EXEEXT) - $(LINK) $(test_filename_OBJECTS) $(test_filename_LDADD) $(LIBS) -test_fopen$(EXEEXT): $(test_fopen_OBJECTS) $(test_fopen_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_filename_OBJECTS) $(test_filename_LDADD) $(LIBS) + +test_fopen$(EXEEXT): $(test_fopen_OBJECTS) $(test_fopen_DEPENDENCIES) $(EXTRA_test_fopen_DEPENDENCIES) @rm -f test_fopen$(EXEEXT) - $(LINK) $(test_fopen_OBJECTS) $(test_fopen_LDADD) $(LIBS) -test_heap$(EXEEXT): $(test_heap_OBJECTS) $(test_heap_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_fopen_OBJECTS) $(test_fopen_LDADD) $(LIBS) + +test_heap$(EXEEXT): $(test_heap_OBJECTS) $(test_heap_DEPENDENCIES) $(EXTRA_test_heap_DEPENDENCIES) @rm -f test_heap$(EXEEXT) - $(LINK) $(test_heap_OBJECTS) $(test_heap_LDADD) $(LIBS) -test_huff_code$(EXEEXT): $(test_huff_code_OBJECTS) $(test_huff_code_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_heap_OBJECTS) $(test_heap_LDADD) $(LIBS) + +test_huff_code$(EXEEXT): $(test_huff_code_OBJECTS) $(test_huff_code_DEPENDENCIES) $(EXTRA_test_huff_code_DEPENDENCIES) @rm -f test_huff_code$(EXEEXT) - $(LINK) $(test_huff_code_OBJECTS) $(test_huff_code_LDADD) $(LIBS) -test_readfile$(EXEEXT): $(test_readfile_OBJECTS) $(test_readfile_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(test_huff_code_OBJECTS) $(test_huff_code_LDADD) $(LIBS) + +test_readfile$(EXEEXT): $(test_readfile_OBJECTS) $(test_readfile_DEPENDENCIES) $(EXTRA_test_readfile_DEPENDENCIES) @rm -f test_readfile$(EXEEXT) - $(LINK) $(test_readfile_OBJECTS) $(test_readfile_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(test_readfile_OBJECTS) $(test_readfile_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -324,6 +642,7 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bit_encode.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bitarr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_build_directory.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_filename.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_fopen.Po@am__quote@ @@ -332,25 +651,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_readfile.Po@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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -358,26 +677,15 @@ clean-libtool: -rm -rf .libs _libs -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 +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 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; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -389,15 +697,11 @@ $$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; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -406,101 +710,236 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +test_fopen.log: test_fopen$(EXEEXT) + @p='test_fopen$(EXEEXT)'; \ + b='test_fopen'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_huff_code.log: test_huff_code$(EXEEXT) + @p='test_huff_code$(EXEEXT)'; \ + b='test_huff_code'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_bitarr.log: test_bitarr$(EXEEXT) + @p='test_bitarr$(EXEEXT)'; \ + b='test_bitarr'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_bit_encode.log: test_bit_encode$(EXEEXT) + @p='test_bit_encode$(EXEEXT)'; \ + b='test_bit_encode'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_build_directory.log: test_build_directory$(EXEEXT) + @p='test_build_directory$(EXEEXT)'; \ + b='test_build_directory'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_heap.log: test_heap$(EXEEXT) + @p='test_heap$(EXEEXT)'; \ + b='test_heap'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_filename.log: test_filename$(EXEEXT) + @p='test_filename$(EXEEXT)'; \ + b='test_filename'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +test_readfile.log: test_readfile$(EXEEXT) + @p='test_readfile$(EXEEXT)'; \ + b='test_readfile'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -548,11 +987,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -637,9 +1084,9 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ @@ -649,7 +1096,7 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am + recheck tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru sphinxbase-0.8/test/unit/test_util/test_bitarr.c sphinxbase-0.8+5prealpha/test/unit/test_util/test_bitarr.c --- sphinxbase-0.8/test/unit/test_util/test_bitarr.c 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_util/test_bitarr.c 2015-07-05 00:26:49.000000000 +0000 @@ -0,0 +1,36 @@ +/** + * @file test_bitarr.c Test bit array io + */ + +#include "bitarr.h" +#include "test_macros.h" + +#include +#include +#include + +typedef union { + float f; + uint32 i; +} float_enc; + +int +main(int argc, char *argv[]) +{ + float_enc neg1 = { -1.0 }, pos1 = { 1.0 }; + uint64 test57 = 0x123456789abcdefULL; + char mem[57+8]; + bitarr_address_t address; + //sign bit should be 0x80000000 + TEST_EQUAL((neg1.i ^ pos1.i), 0x80000000); + memset(mem, 0, sizeof(mem)); + address.base = mem; + for (address.offset = 0; address.offset < 57 * 8; address.offset += 57) { + bitarr_write_int57(address, 57, test57); + } + for (address.offset = 0; address.offset < 57 * 8; address.offset += 57) { + TEST_EQUAL(test57, bitarr_read_int57(address, 57, ((1ULL << 57) - 1))); + } + // TODO: more checks. + return 0; +} diff -Nru sphinxbase-0.8/test/unit/test_util/test_filename.c sphinxbase-0.8+5prealpha/test/unit/test_util/test_filename.c --- sphinxbase-0.8/test/unit/test_util/test_filename.c 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_util/test_filename.c 2015-03-24 17:26:34.000000000 +0000 @@ -14,22 +14,30 @@ int main(int argc, char *argv[]) { +#if defined(_WIN32) || defined(__CYGWIN__) + char const testname[] = "\\foo\\bar\\baz\\quux.argh"; + char const testname2[] = "foo\\bar\\baz"; + char const testname3[] = "\\foo"; + char const result1[] = "\\foo\\bar\\baz"; + char const result2[] = "foo\\bar"; +#else char const testname[] = "/foo/bar/baz/quux.argh"; char const testname2[] = "foo/bar/baz"; char const testname3[] = "/foo"; + char const result1[] = "/foo/bar/baz"; + char const result2[] = "foo/bar"; +#endif char testout[32]; - - path2basename(testname, testout); - TEST_EQUAL(0, strcmp("quux.argh", testout)); + TEST_EQUAL(0, strcmp("quux.argh", path2basename(testname))); path2dirname(testname, testout); - TEST_EQUAL(0, strcmp("/foo/bar/baz", testout)); + TEST_EQUAL(0, strcmp(result1, testout)); path2dirname(testname2, testout); - TEST_EQUAL(0, strcmp("foo/bar", testout)); + TEST_EQUAL(0, strcmp(result2, testout)); path2dirname(testname3, testout); - TEST_EQUAL(0, strcmp("", testout)); + TEST_EQUAL(0, strcmp(".", testout)); return 0; } diff -Nru sphinxbase-0.8/test/unit/test_util/test_fopen.c sphinxbase-0.8+5prealpha/test/unit/test_util/test_fopen.c --- sphinxbase-0.8/test/unit/test_util/test_fopen.c 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_util/test_fopen.c 2015-07-14 21:46:11.000000000 +0000 @@ -16,25 +16,25 @@ char line[256], *c; int ispipe; - fh = fopen_comp(LMDIR "/100.arpa.gz", "r", &ispipe); + fh = fopen_comp(LMDIR "/100.lm.gz", "r", &ispipe); TEST_ASSERT(fh != NULL); c = fgets(line, sizeof(line), fh); TEST_EQUAL('#', line[0]); fclose_comp(fh, ispipe); - fh = fopen_compchk(LMDIR "/100.arpa.gz", &ispipe); + fh = fopen_compchk(LMDIR "/100.lm.gz", &ispipe); TEST_ASSERT(fh != NULL); c = fgets(line, sizeof(line), fh); TEST_EQUAL('#', line[0]); fclose_comp(fh, ispipe); - fh = fopen_compchk(LMDIR "/100.arpa.bz2", &ispipe); + fh = fopen_compchk(LMDIR "/100.lm.bz2", &ispipe); TEST_ASSERT(fh != NULL); c = fgets(line, sizeof(line), fh); TEST_EQUAL('#', line[0]); fclose_comp(fh, ispipe); - fh = fopen_compchk(LMDIR "/100.arpa", &ispipe); + fh = fopen_compchk(LMDIR "/100.lm", &ispipe); TEST_ASSERT(fh != NULL); c = fgets(line, sizeof(line), fh); TEST_EQUAL('#', line[0]); diff -Nru sphinxbase-0.8/test/unit/test_util/test_readfile.c sphinxbase-0.8+5prealpha/test/unit/test_util/test_readfile.c --- sphinxbase-0.8/test/unit/test_util/test_readfile.c 2012-12-05 14:04:52.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test/unit/test_util/test_readfile.c 2015-03-24 17:26:34.000000000 +0000 @@ -15,7 +15,7 @@ int main(int argc, char *argv[]) { - int nsamps; + size_t nsamps; int16 *data; data = bio_read_wavfile(TESTDATADIR, "chan3", ".wav", 44, FALSE, &nsamps); diff -Nru sphinxbase-0.8/test-driver sphinxbase-0.8+5prealpha/test-driver --- sphinxbase-0.8/test-driver 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/test-driver 2015-03-24 17:27:13.000000000 +0000 @@ -0,0 +1,127 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2012-06-27.10; # UTC + +# Copyright (C) 2011-2013 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <$log_file 2>&1 +estatus=$? +if test $enable_hard_errors = no && test $estatus -eq 99; then + estatus=1 +fi + +case $estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -Nru sphinxbase-0.8/win32/sphinxbase/sphinxbase.vcxproj sphinxbase-0.8+5prealpha/win32/sphinxbase/sphinxbase.vcxproj --- sphinxbase-0.8/win32/sphinxbase/sphinxbase.vcxproj 2012-12-05 14:06:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/win32/sphinxbase/sphinxbase.vcxproj 2015-08-05 11:17:26.000000000 +0000 @@ -9,71 +9,69 @@ Release Win32 + + Debug + x64 + + + Release + x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} sphinxbase - - Application - - - Application - - - DynamicLibrary - false - MultiByte - - + DynamicLibrary false MultiByte + v110 - + - - - - + + Win32 + X64 + MachineX64 + MachineX86 + - <_ProjectFileVersion>10.0.30319.1 - ../../bin/Release\ - .\Release\ - false - ../../bin/Debug\ - .\Debug\ - true + $(SolutionDir)\bin\$(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ - + + false + + NDEBUG;%(PreprocessorDefinitions) true true - Win32 - .\../../bin/Release/sphinxbase.tlb + $(TargetEnv) + .\../../bin/$(Configuration)/$(Platform)/sphinxbase.tlb MaxSpeed - OnlyExplicitInline + AnySuitable ../../include/win32;../../include;%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_WINDOWS;_USRDLL;SPHINXBASE_EXPORTS;HAVE_CONFIG_H;SPHINXDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - true + NDEBUG;_USRDLL;SPHINXBASE_EXPORTS;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) MultiThreadedDLL true - .\Release/sphinxbase.pch - .\Release/ - .\Release/ - .\Release/ + .\$(Configuration)\$(Platform)/sphinxbase.pch + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ Level3 true + ProgramDatabase NDEBUG;%(PreprocessorDefinitions) @@ -81,41 +79,37 @@ winmm.lib;%(AdditionalDependencies) - ../../bin/Release/sphinxbase.dll + ../../bin/$(Configuration)/$(Platform)/sphinxbase.dll true - ../../bin/Release/sphinxbase.pdb + ../../bin/$(Configuration)/$(Platform)/sphinxbase.pdb false - ../../bin/Release/sphinxbase.lib - MachineX86 + ../../bin/$(Configuration)/$(Platform)/sphinxbase.lib + $(MachineArch) - - true - .\../../bin/Release/sphinxbase.bsc - - + _DEBUG;%(PreprocessorDefinitions) true true - Win32 - .\../../bin/Debug/sphinxbase.tlb + $(TargetEnv) + .\../../bin/$(Configuration)/$(Platform)/sphinxbase.tlb Disabled ../../include/win32;../../include;%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_WINDOWS;_USRDLL;SPHINXBASE_EXPORTS;HAVE_CONFIG_H;SPHINXDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + _DEBUG;_USRDLL;SPHINXBASE_EXPORTS;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL - .\Debug/sphinxbase.pch - .\Debug/ - .\Debug/ - .\Debug/ + .\$(Configuration)\$(Platform)/sphinxbase.pch + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ Level3 true EditAndContinue @@ -126,321 +120,133 @@ winmm.lib;%(AdditionalDependencies) - ../../bin/Debug/sphinxbase.dll + ../../bin/$(Configuration)/$(Platform)/sphinxbase.dll true true - ../../bin/Debug/sphinxbase.pdb + ../../bin/$(Configuration)/$(Platform)/sphinxbase.pdb false - ../../bin/Debug/sphinxbase.lib - MachineX86 + ../../bin/$(Configuration)/$(Platform)/sphinxbase.lib + $(MachineArch) + false - - true - .\../../bin/Debug/sphinxbase.bsc - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - + + + + + + + + + + + + + + + + - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - + + + + + + + + + + + + + + + + + + + + + + - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - + - - - - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - + + + - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - + + + + diff -Nru sphinxbase-0.8/win32/sphinxbase/sphinxbase.vcxproj.filters sphinxbase-0.8+5prealpha/win32/sphinxbase/sphinxbase.vcxproj.filters --- sphinxbase-0.8/win32/sphinxbase/sphinxbase.vcxproj.filters 2012-12-05 14:06:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/win32/sphinxbase/sphinxbase.vcxproj.filters 2015-07-05 00:26:49.000000000 +0000 @@ -20,9 +20,6 @@ Source Files - - Source Files - Source Files @@ -38,18 +35,12 @@ Source Files - - Source Files - Source Files Source Files - - Source Files - Source Files @@ -98,9 +89,6 @@ Source Files - - Source Files - Source Files @@ -116,9 +104,6 @@ Source Files - - Source Files - Source Files @@ -131,99 +116,99 @@ Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + + Source Files + + Source Files Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + + Source Files + + Source Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files Header Files - - Header Files - - - Header Files - - + Header Files - + Header Files @@ -241,128 +226,122 @@ Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - - Header Files - - - Header Files - - - Header Files - - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files + + + \ No newline at end of file diff -Nru sphinxbase-0.8/win32/sphinx_cepview/sphinx_cepview.vcxproj sphinxbase-0.8+5prealpha/win32/sphinx_cepview/sphinx_cepview.vcxproj --- sphinxbase-0.8/win32/sphinx_cepview/sphinx_cepview.vcxproj 2012-12-05 14:06:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/win32/sphinx_cepview/sphinx_cepview.vcxproj 2015-08-05 11:17:26.000000000 +0000 @@ -9,133 +9,114 @@ Release Win32 + + Debug + x64 + + + Release + x64 + + {06364F13-FBCE-4E2B-9289-0DD39E246205} - - Application - - - Application - - - Application - false - MultiByte - - + Application - false MultiByte + v110 - - - - + - + + Win32 + X64 + MachineX64 + MachineX86 + - <_ProjectFileVersion>10.0.30319.1 - .\../../bin/Debug\ - .\Debug\ - true - .\../../bin/Release\ - .\Release\ - false + $(SolutionDir)\bin\$(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + + + false - + - .\../../bin/Debug/sphinx_cepview.tlb + .\../../bin/$(Configuration)/$(Platform)/sphinx_cepview.tlb Disabled ../../include/win32;../../include;../../src/libsphinxbase/fe;%(AdditionalIncludeDirectories) - _DEBUG;_CONSOLE;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + _DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL - .\Debug/sphinx_cepview.pch - .\Debug/ - .\Debug/ - .\Debug/ + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ Level3 true EditAndContinue - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - .\../../bin/Debug/sphinx_cepview.exe true true - .\../../bin/Debug/sphinx_cepview.pdb + .\../../bin/$(Configuration)/$(Platform)/sphinx_cepview.pdb Console false - MachineX86 + $(MachineArch) + false - - true - .\../../bin/Debug/sphinx_cepview.bsc - - + - .\../../bin/Release/sphinx_cepview.tlb + .\../../bin/$(Configuration)/$(Platform)/sphinx_cepview.tlb MaxSpeed - OnlyExplicitInline + Default ../../include/win32;../../include;../../src/libsphinxbase/fe;%(AdditionalIncludeDirectories) - NDEBUG;_CONSOLE;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) - true + _CONSOLE;NDEBUG;HAVE_CONFIG_H;%(PreprocessorDefinitions) MultiThreadedDLL true - .\Release/sphinx_cepview.pch - .\Release/ - .\Release/ - .\Release/ + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ Level3 true + ProgramDatabase + Default + false - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - .\../../bin/Release/sphinx_cepview.exe true - .\../../bin/Release/sphinx_cepview.pdb + .\../../bin/$(Configuration)/$(Platform)/sphinx_cepview.pdb Console false - MachineX86 + $(MachineArch) - - true - .\../../bin/Release/sphinx_cepview.bsc - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) diff -Nru sphinxbase-0.8/win32/sphinx_fe/sphinx_fe.vcxproj sphinxbase-0.8+5prealpha/win32/sphinx_fe/sphinx_fe.vcxproj --- sphinxbase-0.8/win32/sphinx_fe/sphinx_fe.vcxproj 2012-12-05 14:06:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/win32/sphinx_fe/sphinx_fe.vcxproj 2015-08-05 11:17:26.000000000 +0000 @@ -9,63 +9,60 @@ Release Win32 + + Debug + x64 + + + Release + x64 + + {D088C451-BB4D-4379-AFFA-C7523DBD35DD} - - Application - - - Application - - - Application - false - MultiByte - - + Application - false MultiByte + v110 - + - - - - + + Win32 + X64 + MachineX64 + MachineX86 + - <_ProjectFileVersion>10.0.30319.1 - .\../../bin/Debug\ - .\Debug\ - true - .\../../bin/Release\ - .\Release\ - false + $(SolutionDir)\bin\$(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ - + + false + + - .\../../bin/Debug/sphinx_fe.tlb + .\../../bin/$(Configuration)/$(Platform)/sphinx_fe.tlb Disabled ../../include/win32;../../include;../../src/libsphinxbase/fe;%(AdditionalIncludeDirectories) - _DEBUG;_CONSOLE;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + _DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL - .\Debug/sphinx_fe.pch - .\Debug/ - .\Debug/ - .\Debug/ + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ Level3 true EditAndContinue @@ -75,67 +72,55 @@ 0x0409 - .\../../bin/Debug/sphinx_fe.exe true true - .\../../bin/Debug/sphinx_fe.pdb + .\../../bin/$(Configuration)/$(Platform)/sphinx_fe.pdb Console false - MachineX86 + $(MachineArch) + false - - true - .\../../bin/Debug/sphinx_fe.bsc - - + - .\../../bin/Release/sphinx_fe.tlb + .\../../bin/$(Configuration)/$(Platform)/sphinx_fe.tlb MaxSpeed - OnlyExplicitInline + Default ../../include/win32;../../include;../../src/libsphinxbase/fe;%(AdditionalIncludeDirectories) - NDEBUG;_CONSOLE;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) - true + NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) MultiThreadedDLL true - .\Release/sphinx_fe.pch - .\Release/ - .\Release/ - .\Release/ + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ + .\$(Configuration)\$(Platform)/ Level3 true + ProgramDatabase + Default + false - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - .\../../bin/Release/sphinx_fe.exe true - .\../../bin/Release/sphinx_fe.pdb + .\../../bin/$(Configuration)/$(Platform)/sphinx_fe.pdb Console false - MachineX86 + $(MachineArch) - - true - .\../../bin/Release/sphinx_fe.bsc - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) diff -Nru sphinxbase-0.8/win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj sphinxbase-0.8+5prealpha/win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj --- sphinxbase-0.8/win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj 2012-12-05 14:06:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/win32/sphinx_jsgf2fsg/sphinx_jsgf2fsg.vcxproj 2015-03-24 17:32:31.000000000 +0000 @@ -9,43 +9,51 @@ Release Win32 + + Debug + x64 + + + Release + x64 + + {0E6AF9F5-8904-4873-8856-7216415782B4} sphinx_jsgf2fsg Win32Proj - - Application - - + Application + MultiByte + v110 - + - - - - + + Win32 + X64 + MachineX64 + MachineX86 + - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)\bin\$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)\bin\$(Configuration)\ - $(Configuration)\ - false + $(SolutionDir)\bin\$(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ - + + false + + Disabled ../../include;../../include/win32;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -60,28 +68,30 @@ false - MachineX86 + $(MachineArch) + false - + ../../include;../../include/win32;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) MultiThreadedDLL Level3 ProgramDatabase + Default + false - true Console true true false - MachineX86 + $(MachineArch) @@ -95,4 +105,4 @@ - \ No newline at end of file + \ No newline at end of file diff -Nru sphinxbase-0.8/win32/sphinx_lm_convert/sphinx_lm_convert.vcxproj sphinxbase-0.8+5prealpha/win32/sphinx_lm_convert/sphinx_lm_convert.vcxproj --- sphinxbase-0.8/win32/sphinx_lm_convert/sphinx_lm_convert.vcxproj 2012-12-05 14:06:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/win32/sphinx_lm_convert/sphinx_lm_convert.vcxproj 2015-07-05 00:26:49.000000000 +0000 @@ -9,52 +9,50 @@ Release Win32 + + Debug + x64 + + + Release + x64 + {AFB07B69-EDC1-4E99-B0F3-E6B14FF07C5D} sphinx_lm_convert Win32Proj - - - Application - - - Application - - + Application - Unicode - true - - - Application - Unicode + MultiByte + v110 + - - - - + - + + Win32 + X64 + MachineX64 + MachineX86 + - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)\bin\$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)\bin\$(Configuration)\ - $(Configuration)\ - false + $(SolutionDir)\bin\$(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ - + + false + + Disabled ../../include;../../include/win32;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -66,25 +64,27 @@ true Console - MachineX86 + $(MachineArch) + false - + ../../include;../../include/win32;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) MultiThreadedDLL Level3 ProgramDatabase + Default + false - true Console true true - MachineX86 + $(MachineArch) diff -Nru sphinxbase-0.8/win32/sphinx_pitch/sphinx_pitch.vcxproj sphinxbase-0.8+5prealpha/win32/sphinx_pitch/sphinx_pitch.vcxproj --- sphinxbase-0.8/win32/sphinx_pitch/sphinx_pitch.vcxproj 2012-12-05 14:06:10.000000000 +0000 +++ sphinxbase-0.8+5prealpha/win32/sphinx_pitch/sphinx_pitch.vcxproj 2015-03-24 17:32:31.000000000 +0000 @@ -9,46 +9,51 @@ Release Win32 + + Debug + x64 + + + Release + x64 + + {AF17E630-A43F-4E0A-9BC4-67CD4E2E7FA1} sphinx_pitch Win32Proj - - Application - Unicode - true - - + Application - Unicode + MultiByte + v110 - + - - - - + + Win32 + X64 + MachineX64 + MachineX86 + - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)\bin\$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)\bin\$(Configuration)\ - $(Configuration)\ - false + $(SolutionDir)\bin\$(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ - + + false + + Disabled ../../include;../../include/win32;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -60,28 +65,30 @@ true Console - MachineX86 + $(MachineArch) + false - + MaxSpeed true ../../include;../../include/win32;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) MultiThreadedDLL true Level3 + Default + false ProgramDatabase - true Console true true - MachineX86 + $(MachineArch) diff -Nru sphinxbase-0.8/win32/sphinx_seg/sphinx_seg.vcxproj sphinxbase-0.8+5prealpha/win32/sphinx_seg/sphinx_seg.vcxproj --- sphinxbase-0.8/win32/sphinx_seg/sphinx_seg.vcxproj 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/win32/sphinx_seg/sphinx_seg.vcxproj 2015-08-05 11:17:26.000000000 +0000 @@ -0,0 +1,103 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + {2f025ead-99bd-40f5-b2cc-f0a28cad7f2d} + + + + {42DFD84F-14DB-42D1-B14D-B8C5ABCBA0E8} + Win32Proj + sphinx_seg + + + + Application + MultiByte + v110 + + + + + + + + + Win32 + X64 + MachineX64 + MachineX86 + + + $(SolutionDir)\bin\$(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + + + false + + + + Disabled + ../../include;../../include/win32;../../src/libsphinxbase/fe;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + + + true + Console + $(MachineArch) + false + + + + + Level3 + + + MaxSpeed + true + true + _CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + ../../include/win32;../../include;../../src/libsphinxbase/fe;%(AdditionalIncludeDirectories) + Default + false + ProgramDatabase + + + Console + true + true + + + + + + diff -Nru sphinxbase-0.8/win32/sphinx_seg/sphinx_seg.vcxproj.filters sphinxbase-0.8+5prealpha/win32/sphinx_seg/sphinx_seg.vcxproj.filters --- sphinxbase-0.8/win32/sphinx_seg/sphinx_seg.vcxproj.filters 1970-01-01 00:00:00.000000000 +0000 +++ sphinxbase-0.8+5prealpha/win32/sphinx_seg/sphinx_seg.vcxproj.filters 2015-08-05 11:17:26.000000000 +0000 @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + diff -Nru sphinxbase-0.8/ylwrap sphinxbase-0.8+5prealpha/ylwrap --- sphinxbase-0.8/ylwrap 2012-12-05 14:08:08.000000000 +0000 +++ sphinxbase-0.8+5prealpha/ylwrap 2015-03-24 17:27:12.000000000 +0000 @@ -1,10 +1,9 @@ #! /bin/sh # ylwrap - wrapper for lex/yacc invocations. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-12-21.17; # UTC -# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, -# 2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # Written by Tom Tromey . # @@ -30,9 +29,41 @@ # bugs to or send patches to # . +get_dirname () +{ + case $1 in + */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';; + # Otherwise, we want the empty string (not "."). + esac +} + +# guard FILE +# ---------- +# The CPP macro used to guard inclusion of FILE. +guard() +{ + printf '%s\n' "$1" \ + | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \ + -e 's/__*/_/g' +} + +# quote_for_sed [STRING] +# ---------------------- +# Return STRING (or stdin) quoted to be used as a sed pattern. +quote_for_sed () +{ + case $# in + 0) cat;; + 1) printf '%s\n' "$1";; + esac \ + | sed -e 's|[][\\.*]|\\&|g' +} + case "$1" in '') - echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 + echo "$0: No files given. Try '$0 --help' for more information." 1>&2 exit 1 ;; --basedir) @@ -67,6 +98,8 @@ # The input. input="$1" shift +# We'll later need for a correct munging of "#line" directives. +input_sub_rx=`get_dirname "$input" | quote_for_sed` case "$input" in [\\/]* | ?:[\\/]*) # Absolute path; do nothing. @@ -76,15 +109,47 @@ input="`pwd`/$input" ;; esac +input_rx=`get_dirname "$input" | quote_for_sed` + +# Since DOS filename conventions don't allow two dots, +# the DOS version of Bison writes out y_tab.c instead of y.tab.c +# and y_tab.h instead of y.tab.h. Test to see if this is the case. +y_tab_nodot=false +if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot=true +fi + +# The parser itself, the first file, is the destination of the .y.c +# rule in the Makefile. +parser=$1 + +# A sed program to s/FROM/TO/g for all the FROM/TO so that, for +# instance, we rename #include "y.tab.h" into #include "parse.h" +# during the conversion from y.tab.c to parse.c. +sed_fix_filenames= + +# Also rename header guards, as Bison 2.7 for instance uses its header +# guard in its implementation file. +sed_fix_header_guards= -pairlist= while test "$#" -ne 0; do if test "$1" = "--"; then shift break fi - pairlist="$pairlist $1" + from=$1 + # Handle y_tab.c and y_tab.h output by DOS + if $y_tab_nodot; then + case $from in + "y.tab.c") from=y_tab.c;; + "y.tab.h") from=y_tab.h;; + esac + fi + shift + to=$1 shift + sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;" + sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;" done # The program to run. @@ -99,7 +164,11 @@ # FIXME: add hostname here for parallel makes that run commands on # other machines. But that might take us over the 14-char limit. dirname=ylwrap$$ -trap "cd '`pwd`'; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15 +do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret' +trap "ret=129; $do_exit" 1 +trap "ret=130; $do_exit" 2 +trap "ret=141; $do_exit" 13 +trap "ret=143; $do_exit" 15 mkdir $dirname || exit 1 cd $dirname @@ -111,98 +180,56 @@ ret=$? if test $ret -eq 0; then - set X $pairlist - shift - first=yes - # Since DOS filename conventions don't allow two dots, - # the DOS version of Bison writes out y_tab.c instead of y.tab.c - # and y_tab.h instead of y.tab.h. Test to see if this is the case. - y_tab_nodot="no" - if test -f y_tab.c || test -f y_tab.h; then - y_tab_nodot="yes" - fi - - # The directory holding the input. - input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` - # Quote $INPUT_DIR so we can use it in a regexp. - # FIXME: really we should care about more than `.' and `\'. - input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` - - while test "$#" -ne 0; do - from="$1" - # Handle y_tab.c and y_tab.h output by DOS - if test $y_tab_nodot = "yes"; then - if test $from = "y.tab.c"; then - from="y_tab.c" - else - if test $from = "y.tab.h"; then - from="y_tab.h" - fi - fi - fi + for from in * + do + to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"` if test -f "$from"; then # If $2 is an absolute path name, then just use that, - # otherwise prepend `../'. - case "$2" in - [\\/]* | ?:[\\/]*) target="$2";; - *) target="../$2";; + # otherwise prepend '../'. + case $to in + [\\/]* | ?:[\\/]*) target=$to;; + *) target="../$to";; esac - # We do not want to overwrite a header file if it hasn't - # changed. This avoid useless recompilations. However the - # parser itself (the first file) should always be updated, - # because it is the destination of the .y.c rule in the - # Makefile. Divert the output of all other files to a temporary - # file so we can compare them to existing versions. - if test $first = no; then - realtarget="$target" - target="tmp-`echo $target | sed s/.*[\\/]//g`" + # Do not overwrite unchanged header files to avoid useless + # recompilations. Always update the parser itself: it is the + # destination of the .y.c rule in the Makefile. Divert the + # output of all other files to a temporary file so we can + # compare them to existing versions. + if test $from != $parser; then + realtarget="$target" + target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'` fi - # Edit out `#line' or `#' directives. - # - # We don't want the resulting debug information to point at - # an absolute srcdir; it is better for it to just mention the - # .y file with no path. - # - # We want to use the real output file name, not yy.lex.c for - # instance. - # - # We want the include guards to be adjusted too. - FROM=`echo "$from" | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ - -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` - TARGET=`echo "$2" | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ - -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` - - sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ - -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? - - # Check whether header files must be updated. - if test $first = no; then - if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then - echo "$2" is unchanged - rm -f "$target" - else - echo updating "$2" + + # Munge "#line" or "#" directives. Don't let the resulting + # debug information point at an absolute srcdir. Use the real + # output file name, not yy.lex.c for instance. Adjust the + # include guards too. + sed -e "/^#/!b" \ + -e "s|$input_rx|$input_sub_rx|" \ + -e "$sed_fix_filenames" \ + -e "$sed_fix_header_guards" \ + "$from" >"$target" || ret=$? + + # Check whether files must be updated. + if test "$from" != "$parser"; then + if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then + echo "$to is unchanged" + rm -f "$target" + else + echo "updating $to" mv -f "$target" "$realtarget" fi fi else - # A missing file is only an error for the first file. This - # is a blatant hack to let us support using "yacc -d". If -d - # is not specified, we don't want an error when the header - # file is "missing". - if test $first = yes; then + # A missing file is only an error for the parser. This is a + # blatant hack to let us support using "yacc -d". If -d is not + # specified, don't fail when the header file is "missing". + if test "$from" = "$parser"; then ret=1 fi fi - shift - shift - first=no done -else - ret=$? fi # Remove the directory.